@discordeno/bot 21.0.0-next.bcd8d4d → 21.0.0-next.c4f2fc2

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 (56) hide show
  1. package/README.md +1 -1
  2. package/dist/cjs/constants.cjs +2 -2
  3. package/dist/cjs/desiredProperties.cjs +79 -1
  4. package/dist/cjs/helpers.cjs +28 -7
  5. package/dist/cjs/transformers/application.cjs +2 -1
  6. package/dist/cjs/transformers/automodActionExecution.cjs +3 -3
  7. package/dist/cjs/transformers/component.cjs +184 -64
  8. package/dist/cjs/transformers/index.cjs +2 -1
  9. package/dist/cjs/transformers/interaction.cjs +7 -2
  10. package/dist/cjs/transformers/lobby.cjs +41 -0
  11. package/dist/cjs/transformers/reverse/component.cjs +100 -11
  12. package/dist/cjs/transformers/role.cjs +3 -2
  13. package/dist/cjs/transformers/user.cjs +23 -1
  14. package/dist/cjs/transformers.cjs +13 -1
  15. package/dist/cjs/utils.cjs +5 -5
  16. package/dist/esm/constants.js +2 -2
  17. package/dist/esm/desiredProperties.js +79 -1
  18. package/dist/esm/helpers.js +28 -7
  19. package/dist/esm/transformers/application.js +2 -1
  20. package/dist/esm/transformers/automodActionExecution.js +3 -3
  21. package/dist/esm/transformers/component.js +170 -61
  22. package/dist/esm/transformers/index.js +2 -1
  23. package/dist/esm/transformers/interaction.js +7 -2
  24. package/dist/esm/transformers/lobby.js +23 -0
  25. package/dist/esm/transformers/reverse/component.js +86 -8
  26. package/dist/esm/transformers/role.js +3 -2
  27. package/dist/esm/transformers/types.js +2 -2
  28. package/dist/esm/transformers/user.js +17 -1
  29. package/dist/esm/transformers.js +15 -3
  30. package/dist/esm/utils.js +5 -5
  31. package/dist/types/constants.d.ts.map +1 -1
  32. package/dist/types/desiredProperties.d.ts +16 -5
  33. package/dist/types/desiredProperties.d.ts.map +1 -1
  34. package/dist/types/helpers.d.ts +17 -11
  35. package/dist/types/helpers.d.ts.map +1 -1
  36. package/dist/types/transformers/application.d.ts.map +1 -1
  37. package/dist/types/transformers/automodActionExecution.d.ts.map +1 -1
  38. package/dist/types/transformers/component.d.ts +3 -1
  39. package/dist/types/transformers/component.d.ts.map +1 -1
  40. package/dist/types/transformers/index.d.ts +1 -0
  41. package/dist/types/transformers/index.d.ts.map +1 -1
  42. package/dist/types/transformers/interaction.d.ts.map +1 -1
  43. package/dist/types/transformers/lobby.d.ts +5 -0
  44. package/dist/types/transformers/lobby.d.ts.map +1 -0
  45. package/dist/types/transformers/reverse/component.d.ts +3 -1
  46. package/dist/types/transformers/reverse/component.d.ts.map +1 -1
  47. package/dist/types/transformers/role.d.ts.map +1 -1
  48. package/dist/types/transformers/types.d.ts +95 -4
  49. package/dist/types/transformers/types.d.ts.map +1 -1
  50. package/dist/types/transformers/user.d.ts +4 -2
  51. package/dist/types/transformers/user.d.ts.map +1 -1
  52. package/dist/types/transformers.d.ts +16 -2
  53. package/dist/types/transformers.d.ts.map +1 -1
  54. package/dist/types/utils.d.ts +1 -1
  55. package/dist/types/utils.d.ts.map +1 -1
  56. package/package.json +5 -5
@@ -45,7 +45,10 @@ const baseInteraction = {
45
45
  // If user provides an object, determine if it should be an autocomplete or a modal response
46
46
  if (response.title) type = _types.InteractionResponseTypes.Modal;
47
47
  if (this.type === _types.InteractionTypes.ApplicationCommandAutocomplete) type = _types.InteractionResponseTypes.ApplicationCommandAutocompleteResult;
48
- if (type === _types.InteractionResponseTypes.ChannelMessageWithSource && options?.isPrivate) response.flags = _types.MessageFlags.Ephemeral;
48
+ if (type === _types.InteractionResponseTypes.ChannelMessageWithSource && options?.isPrivate) {
49
+ response.flags ??= 0;
50
+ response.flags |= _types.MessageFlags.Ephemeral;
51
+ }
49
52
  // Since this has already been given a response, any further responses must be followups.
50
53
  if (this.acknowledged) return await this.bot.helpers.sendFollowupMessage(this.token, response);
51
54
  // Modals cannot be chained
@@ -135,12 +138,14 @@ function transformInteraction(bot, payload) {
135
138
  });
136
139
  if (props.channelId && payload.interaction.channel_id) interaction.channelId = bot.transformers.snowflake(payload.interaction.channel_id);
137
140
  if (props.member && guildId && payload.interaction.member) interaction.member = bot.transformers.member(bot, payload.interaction.member, guildId, user.id);
141
+ if (props.entitlements && payload.interaction.entitlements) interaction.entitlements = payload.interaction.entitlements.map((e)=>bot.transformers.entitlement(bot, e));
138
142
  if (props.authorizingIntegrationOwners && payload.interaction.authorizing_integration_owners) {
139
143
  interaction.authorizingIntegrationOwners = {};
140
144
  if (payload.interaction.authorizing_integration_owners['0']) interaction.authorizingIntegrationOwners[_types.DiscordApplicationIntegrationType.GuildInstall] = bot.transformers.snowflake(payload.interaction.authorizing_integration_owners['0']);
141
145
  if (payload.interaction.authorizing_integration_owners['1']) interaction.authorizingIntegrationOwners[_types.DiscordApplicationIntegrationType.UserInstall] = bot.transformers.snowflake(payload.interaction.authorizing_integration_owners['1']);
142
146
  }
143
147
  if (props.context && payload.interaction.context) interaction.context = payload.interaction.context;
148
+ if (props.attachmentSizeLimit && payload.interaction.attachment_size_limit) interaction.attachmentSizeLimit = payload.interaction.attachment_size_limit;
144
149
  if (props.data && payload.interaction.data) {
145
150
  interaction.data = {
146
151
  type: payload.interaction.data.type,
@@ -271,4 +276,4 @@ function transformInteractionResource(bot, payload) {
271
276
  return bot.transformers.customizers.interactionResource(bot, payload.interactionResource, resource);
272
277
  }
273
278
 
274
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvaW50ZXJhY3Rpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlLFxuICB0eXBlIERpc2NvcmRJbnRlcmFjdGlvbixcbiAgdHlwZSBEaXNjb3JkSW50ZXJhY3Rpb25DYWxsYmFjayxcbiAgdHlwZSBEaXNjb3JkSW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlLFxuICB0eXBlIERpc2NvcmRJbnRlcmFjdGlvbkRhdGFPcHRpb24sXG4gIHR5cGUgRGlzY29yZEludGVyYWN0aW9uRGF0YVJlc29sdmVkLFxuICB0eXBlIERpc2NvcmRJbnRlcmFjdGlvblJlc291cmNlLFxuICBJbnRlcmFjdGlvblJlc3BvbnNlVHlwZXMsXG4gIEludGVyYWN0aW9uVHlwZXMsXG4gIE1lc3NhZ2VGbGFncyxcbn0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnXG5pbXBvcnQgeyBDb2xsZWN0aW9uIH0gZnJvbSAnQGRpc2NvcmRlbm8vdXRpbHMnXG5pbXBvcnQgdHlwZSB7XG4gIEJvdCxcbiAgRGlzY29yZENoYW5uZWwsXG4gIEludGVyYWN0aW9uLFxuICBJbnRlcmFjdGlvbkNhbGxiYWNrLFxuICBJbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2UsXG4gIEludGVyYWN0aW9uRGF0YU9wdGlvbixcbiAgSW50ZXJhY3Rpb25EYXRhUmVzb2x2ZWQsXG4gIEludGVyYWN0aW9uUmVzb2x2ZWRDaGFubmVsLFxuICBJbnRlcmFjdGlvblJlc291cmNlLFxuICBJbnRlcm5hbEJvdCxcbiAgTWVtYmVyLFxuICBNZXNzYWdlLFxufSBmcm9tICcuLi9pbmRleC5qcydcblxuZXhwb3J0IGNvbnN0IGJhc2VJbnRlcmFjdGlvbjogSW50ZXJuYWxCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydpbnRlcmFjdGlvbiddID0ge1xuICAvLyBUaGlzIGFsbG93cyB0eXBlc2NyaXB0IHRvIHN0aWxsIGNoZWNrIGZvciB0eXBlIGVycm9ycyBvbiBmdW5jdGlvbnMgYmVsb3dcbiAgLi4uKHVuZGVmaW5lZCBhcyB1bmtub3duIGFzIEludGVybmFsQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnaW50ZXJhY3Rpb24nXSksXG5cbiAgYXN5bmMgcmVzcG9uZChyZXNwb25zZSwgb3B0aW9ucykge1xuICAgIGxldCB0eXBlID0gSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLkNoYW5uZWxNZXNzYWdlV2l0aFNvdXJjZVxuXG4gICAgLy8gSWYgdXNlciBwcm92aWRlcyBhIHN0cmluZywgY2hhbmdlIGl0IHRvIGEgcmVzcG9uc2Ugb2JqZWN0XG4gICAgaWYgKHR5cGVvZiByZXNwb25zZSA9PT0gJ3N0cmluZycpIHJlc3BvbnNlID0geyBjb250ZW50OiByZXNwb25zZSB9XG5cbiAgICAvLyBJZiB1c2VyIHByb3ZpZGVzIGFuIG9iamVjdCwgZGV0ZXJtaW5lIGlmIGl0IHNob3VsZCBiZSBhbiBhdXRvY29tcGxldGUgb3IgYSBtb2RhbCByZXNwb25zZVxuICAgIGlmIChyZXNwb25zZS50aXRsZSkgdHlwZSA9IEludGVyYWN0aW9uUmVzcG9uc2VUeXBlcy5Nb2RhbFxuICAgIGlmICh0aGlzLnR5cGUgPT09IEludGVyYWN0aW9uVHlwZXMuQXBwbGljYXRpb25Db21tYW5kQXV0b2NvbXBsZXRlKSB0eXBlID0gSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLkFwcGxpY2F0aW9uQ29tbWFuZEF1dG9jb21wbGV0ZVJlc3VsdFxuICAgIGlmICh0eXBlID09PSBJbnRlcmFjdGlvblJlc3BvbnNlVHlwZXMuQ2hhbm5lbE1lc3NhZ2VXaXRoU291cmNlICYmIG9wdGlvbnM/LmlzUHJpdmF0ZSkgcmVzcG9uc2UuZmxhZ3MgPSBNZXNzYWdlRmxhZ3MuRXBoZW1lcmFsXG5cbiAgICAvLyBTaW5jZSB0aGlzIGhhcyBhbHJlYWR5IGJlZW4gZ2l2ZW4gYSByZXNwb25zZSwgYW55IGZ1cnRoZXIgcmVzcG9uc2VzIG11c3QgYmUgZm9sbG93dXBzLlxuICAgIGlmICh0aGlzLmFja25vd2xlZGdlZCkgcmV0dXJuIGF3YWl0IHRoaXMuYm90LmhlbHBlcnMuc2VuZEZvbGxvd3VwTWVzc2FnZSh0aGlzLnRva2VuLCByZXNwb25zZSlcblxuICAgIC8vIE1vZGFscyBjYW5ub3QgYmUgY2hhaW5lZFxuICAgIGlmICh0aGlzLnR5cGUgPT09IEludGVyYWN0aW9uVHlwZXMuTW9kYWxTdWJtaXQgJiYgdHlwZSA9PT0gSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLk1vZGFsKVxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgcmVzcG9uZCB0byBhIG1vZGFsIGludGVyYWN0aW9uIHdpdGggYW5vdGhlciBtb2RhbC4nKVxuXG4gICAgdGhpcy5hY2tub3dsZWRnZWQgPSB0cnVlXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuYm90LmhlbHBlcnMuc2VuZEludGVyYWN0aW9uUmVzcG9uc2UodGhpcy5pZCwgdGhpcy50b2tlbiwgeyB0eXBlLCBkYXRhOiByZXNwb25zZSB9LCB7IHdpdGhSZXNwb25zZTogb3B0aW9ucz8ud2l0aFJlc3BvbnNlIH0pXG4gIH0sXG4gIGFzeW5jIGVkaXQocmVzcG9uc2UsIG1lc3NhZ2VJZCwgb3B0aW9ucykge1xuICAgIGlmICh0aGlzLnR5cGUgPT09IEludGVyYWN0aW9uVHlwZXMuQXBwbGljYXRpb25Db21tYW5kQXV0b2NvbXBsZXRlKSB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBlZGl0IGFuIGF1dG9jb21wbGV0ZSBpbnRlcmFjdGlvbi4nKVxuXG4gICAgLy8gSWYgdXNlciBwcm92aWRlcyBhIHN0cmluZywgY2hhbmdlIGl0IHRvIGEgcmVzcG9uc2Ugb2JqZWN0XG4gICAgaWYgKHR5cGVvZiByZXNwb25zZSA9PT0gJ3N0cmluZycpIHJlc3BvbnNlID0geyBjb250ZW50OiByZXNwb25zZSB9XG5cbiAgICBpZiAobWVzc2FnZUlkKSB7XG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy5ib3Q/LmhlbHBlcnMuZWRpdEZvbGxvd3VwTWVzc2FnZSh0aGlzLnRva2VuLCBtZXNzYWdlSWQsIHJlc3BvbnNlKVxuICAgIH1cblxuICAgIGlmICghdGhpcy5hY2tub3dsZWRnZWQpIHtcbiAgICAgIGlmICh0aGlzLnR5cGUgIT09IEludGVyYWN0aW9uVHlwZXMuTWVzc2FnZUNvbXBvbmVudCAmJiB0aGlzLnR5cGUgIT09IEludGVyYWN0aW9uVHlwZXMuTW9kYWxTdWJtaXQpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIlRoaXMgaW50ZXJhY3Rpb24gaGFzIG5vdCBiZWVuIHJlc3BvbmRlZCB0byB5ZXQgYW5kIHRoaXMgaXNuJ3QgYSBNZXNzYWdlQ29tcG9uZW50IG9yIE1vZGFsU3VibWl0IGludGVyYWN0aW9uLlwiKVxuXG4gICAgICB0aGlzLmFja25vd2xlZGdlZCA9IHRydWVcbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLmJvdC5oZWxwZXJzLnNlbmRJbnRlcmFjdGlvblJlc3BvbnNlKFxuICAgICAgICB0aGlzLmlkLFxuICAgICAgICB0aGlzLnRva2VuLFxuICAgICAgICB7IHR5cGU6IEludGVyYWN0aW9uUmVzcG9uc2VUeXBlcy5VcGRhdGVNZXNzYWdlLCBkYXRhOiByZXNwb25zZSB9LFxuICAgICAgICBvcHRpb25zLFxuICAgICAgKVxuICAgIH1cblxuICAgIHJldHVybiBhd2FpdCB0aGlzLmJvdC5oZWxwZXJzLmVkaXRPcmlnaW5hbEludGVyYWN0aW9uUmVzcG9uc2UodGhpcy50b2tlbiwgcmVzcG9uc2UpXG4gIH0sXG4gIGFzeW5jIGRlZmVyRWRpdChvcHRpb25zKSB7XG4gICAgaWYgKHRoaXMudHlwZSA9PT0gSW50ZXJhY3Rpb25UeXBlcy5BcHBsaWNhdGlvbkNvbW1hbmRBdXRvY29tcGxldGUpIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGVkaXQgYW4gYXV0b2NvbXBsZXRlIGludGVyYWN0aW9uLicpXG4gICAgaWYgKHRoaXMuYWNrbm93bGVkZ2VkKSB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBkZWZlciBhbiBhbHJlYWR5IHJlc3BvbmRlZCBpbnRlcmFjdGlvbi4nKVxuXG4gICAgaWYgKHRoaXMudHlwZSAhPT0gSW50ZXJhY3Rpb25UeXBlcy5NZXNzYWdlQ29tcG9uZW50ICYmIHRoaXMudHlwZSAhPT0gSW50ZXJhY3Rpb25UeXBlcy5Nb2RhbFN1Ym1pdClcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkNhbm5vdCBkZWZlciB0byB0aGVuIGVkaXQgYW4gaW50ZXJhY3Rpb24gdGhhdCBpc24ndCBhIE1lc3NhZ2VDb21wb25lbnQgb3IgTW9kYWxTdWJtaXQgaW50ZXJhY3Rpb24uXCIpXG5cbiAgICB0aGlzLmFja25vd2xlZGdlZCA9IHRydWVcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5ib3QuaGVscGVycy5zZW5kSW50ZXJhY3Rpb25SZXNwb25zZSh0aGlzLmlkLCB0aGlzLnRva2VuLCB7IHR5cGU6IEludGVyYWN0aW9uUmVzcG9uc2VUeXBlcy5EZWZlcnJlZFVwZGF0ZU1lc3NhZ2UgfSwgb3B0aW9ucylcbiAgfSxcbiAgYXN5bmMgZGVmZXIoaXNQcml2YXRlLCBvcHRpb25zKSB7XG4gICAgaWYgKHRoaXMuYWNrbm93bGVkZ2VkKSB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBkZWZlciBhbiBhbHJlYWR5IHJlc3BvbmRlZCBpbnRlcmFjdGlvbi4nKVxuXG4gICAgdGhpcy5hY2tub3dsZWRnZWQgPSB0cnVlXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuYm90LmhlbHBlcnMuc2VuZEludGVyYWN0aW9uUmVzcG9uc2UoXG4gICAgICB0aGlzLmlkLFxuICAgICAgdGhpcy50b2tlbixcbiAgICAgIHtcbiAgICAgICAgdHlwZTogSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLkRlZmVycmVkQ2hhbm5lbE1lc3NhZ2VXaXRoU291cmNlLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgZmxhZ3M6IGlzUHJpdmF0ZSA/IE1lc3NhZ2VGbGFncy5FcGhlbWVyYWwgOiB1bmRlZmluZWQsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgb3B0aW9ucyxcbiAgICApXG4gIH0sXG4gIGFzeW5jIGRlbGV0ZShtZXNzYWdlSWQpIHtcbiAgICBpZiAodGhpcy50eXBlID09PSBJbnRlcmFjdGlvblR5cGVzLkFwcGxpY2F0aW9uQ29tbWFuZEF1dG9jb21wbGV0ZSkgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgZGVsZXRlIGFuIGF1dG9jb21wbGV0ZSBpbnRlcmFjdGlvbicpXG5cbiAgICBpZiAobWVzc2FnZUlkKSByZXR1cm4gYXdhaXQgdGhpcy5ib3Q/LmhlbHBlcnMuZGVsZXRlRm9sbG93dXBNZXNzYWdlKHRoaXMudG9rZW4sIG1lc3NhZ2VJZClcbiAgICBlbHNlIHJldHVybiBhd2FpdCB0aGlzLmJvdD8uaGVscGVycy5kZWxldGVPcmlnaW5hbEludGVyYWN0aW9uUmVzcG9uc2UodGhpcy50b2tlbilcbiAgfSxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybUludGVyYWN0aW9uKFxuICBib3Q6IEludGVybmFsQm90LFxuICBwYXlsb2FkOiB7IGludGVyYWN0aW9uOiBEaXNjb3JkSW50ZXJhY3Rpb247IHNoYXJkSWQ6IG51bWJlciB9LFxuKTogdHlwZW9mIGJvdC50cmFuc2Zvcm1lcnMuJGluZmVycmVkVHlwZXMuaW50ZXJhY3Rpb24ge1xuICBjb25zdCBndWlsZElkID0gcGF5bG9hZC5pbnRlcmFjdGlvbi5ndWlsZF9pZCA/IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaW50ZXJhY3Rpb24uZ3VpbGRfaWQpIDogdW5kZWZpbmVkXG4gIGNvbnN0IHVzZXIgPSBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCBwYXlsb2FkLmludGVyYWN0aW9uLm1lbWJlcj8udXNlciA/PyBwYXlsb2FkLmludGVyYWN0aW9uLnVzZXIhKVxuXG4gIGNvbnN0IGludGVyYWN0aW9uOiBJbnRlcmFjdGlvbiA9IE9iamVjdC5jcmVhdGUoYmFzZUludGVyYWN0aW9uKVxuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuaW50ZXJhY3Rpb25cbiAgLy8gVHlwZXNjcmlwdCBoYXMgYW4gaGFyZCB0aW1lIHdpdGggdGhpcywgc28gd2UgbmVlZCB0byB0ZWxsIGhpbSBmb3Igc3VyZSB0aGlzIGlzIGEgQm90XG4gIGludGVyYWN0aW9uLmJvdCA9IGJvdCBhcyB1bmtub3duIGFzIEJvdFxuICBpbnRlcmFjdGlvbi5hY2tub3dsZWRnZWQgPSBmYWxzZVxuXG4gIGlmIChwcm9wcy5pZCAmJiBwYXlsb2FkLmludGVyYWN0aW9uLmlkKSBpbnRlcmFjdGlvbi5pZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaW50ZXJhY3Rpb24uaWQpXG4gIGlmIChwcm9wcy5hcHBsaWNhdGlvbklkICYmIHBheWxvYWQuaW50ZXJhY3Rpb24uYXBwbGljYXRpb25faWQpXG4gICAgaW50ZXJhY3Rpb24uYXBwbGljYXRpb25JZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaW50ZXJhY3Rpb24uYXBwbGljYXRpb25faWQpXG4gIGlmIChwcm9wcy50eXBlICYmIHBheWxvYWQuaW50ZXJhY3Rpb24udHlwZSkgaW50ZXJhY3Rpb24udHlwZSA9IHBheWxvYWQuaW50ZXJhY3Rpb24udHlwZVxuICBpZiAocHJvcHMudG9rZW4gJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi50b2tlbikgaW50ZXJhY3Rpb24udG9rZW4gPSBwYXlsb2FkLmludGVyYWN0aW9uLnRva2VuXG4gIGlmIChwcm9wcy52ZXJzaW9uICYmIHBheWxvYWQuaW50ZXJhY3Rpb24udmVyc2lvbikgaW50ZXJhY3Rpb24udmVyc2lvbiA9IHBheWxvYWQuaW50ZXJhY3Rpb24udmVyc2lvblxuICBpZiAocHJvcHMubG9jYWxlICYmIHBheWxvYWQuaW50ZXJhY3Rpb24ubG9jYWxlKSBpbnRlcmFjdGlvbi5sb2NhbGUgPSBwYXlsb2FkLmludGVyYWN0aW9uLmxvY2FsZVxuICBpZiAocHJvcHMuZ3VpbGRMb2NhbGUgJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi5ndWlsZF9sb2NhbGUpIGludGVyYWN0aW9uLmd1aWxkTG9jYWxlID0gcGF5bG9hZC5pbnRlcmFjdGlvbi5ndWlsZF9sb2NhbGVcbiAgaWYgKHByb3BzLmd1aWxkICYmIHBheWxvYWQuaW50ZXJhY3Rpb24uZ3VpbGQpXG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvciBwYXlsb2FkLmludGVyYWN0aW9uLmd1aWxkIGlzIGEgUGFydGlhbDxEaXNjb3JkR3VpbGQ+XG4gICAgaW50ZXJhY3Rpb24uZ3VpbGQgPSBib3QudHJhbnNmb3JtZXJzLmd1aWxkKGJvdCwgeyBndWlsZDogcGF5bG9hZC5pbnRlcmFjdGlvbi5ndWlsZCwgc2hhcmRJZDogcGF5bG9hZC5zaGFyZElkIH0pXG4gIGlmIChwcm9wcy5ndWlsZElkICYmIGd1aWxkSWQpIGludGVyYWN0aW9uLmd1aWxkSWQgPSBndWlsZElkXG4gIGlmIChwcm9wcy51c2VyICYmIHVzZXIpIGludGVyYWN0aW9uLnVzZXIgPSB1c2VyXG4gIGlmIChwcm9wcy5hcHBQZXJtaXNzaW9ucyAmJiBwYXlsb2FkLmludGVyYWN0aW9uLmFwcF9wZXJtaXNzaW9ucylcbiAgICBpbnRlcmFjdGlvbi5hcHBQZXJtaXNzaW9ucyA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaW50ZXJhY3Rpb24uYXBwX3Blcm1pc3Npb25zKVxuICBpZiAocHJvcHMubWVzc2FnZSAmJiBwYXlsb2FkLmludGVyYWN0aW9uLm1lc3NhZ2UpXG4gICAgaW50ZXJhY3Rpb24ubWVzc2FnZSA9IGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHsgbWVzc2FnZTogcGF5bG9hZC5pbnRlcmFjdGlvbi5tZXNzYWdlLCBzaGFyZElkOiAwIH0pXG4gIGlmIChwcm9wcy5jaGFubmVsICYmIHBheWxvYWQuaW50ZXJhY3Rpb24uY2hhbm5lbClcbiAgICBpbnRlcmFjdGlvbi5jaGFubmVsID0gYm90LnRyYW5zZm9ybWVycy5jaGFubmVsKGJvdCwgeyBjaGFubmVsOiBwYXlsb2FkLmludGVyYWN0aW9uLmNoYW5uZWwgYXMgRGlzY29yZENoYW5uZWwsIGd1aWxkSWQgfSlcbiAgaWYgKHByb3BzLmNoYW5uZWxJZCAmJiBwYXlsb2FkLmludGVyYWN0aW9uLmNoYW5uZWxfaWQpIGludGVyYWN0aW9uLmNoYW5uZWxJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaW50ZXJhY3Rpb24uY2hhbm5lbF9pZClcbiAgaWYgKHByb3BzLm1lbWJlciAmJiBndWlsZElkICYmIHBheWxvYWQuaW50ZXJhY3Rpb24ubWVtYmVyKVxuICAgIGludGVyYWN0aW9uLm1lbWJlciA9IGJvdC50cmFuc2Zvcm1lcnMubWVtYmVyKGJvdCwgcGF5bG9hZC5pbnRlcmFjdGlvbi5tZW1iZXIsIGd1aWxkSWQsIHVzZXIuaWQpXG4gIGlmIChwcm9wcy5hdXRob3JpemluZ0ludGVncmF0aW9uT3duZXJzICYmIHBheWxvYWQuaW50ZXJhY3Rpb24uYXV0aG9yaXppbmdfaW50ZWdyYXRpb25fb3duZXJzKSB7XG4gICAgaW50ZXJhY3Rpb24uYXV0aG9yaXppbmdJbnRlZ3JhdGlvbk93bmVycyA9IHt9XG5cbiAgICBpZiAocGF5bG9hZC5pbnRlcmFjdGlvbi5hdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnNbJzAnXSlcbiAgICAgIGludGVyYWN0aW9uLmF1dGhvcml6aW5nSW50ZWdyYXRpb25Pd25lcnNbRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlLkd1aWxkSW5zdGFsbF0gPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShcbiAgICAgICAgcGF5bG9hZC5pbnRlcmFjdGlvbi5hdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnNbJzAnXSxcbiAgICAgIClcbiAgICBpZiAocGF5bG9hZC5pbnRlcmFjdGlvbi5hdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnNbJzEnXSlcbiAgICAgIGludGVyYWN0aW9uLmF1dGhvcml6aW5nSW50ZWdyYXRpb25Pd25lcnNbRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlLlVzZXJJbnN0YWxsXSA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKFxuICAgICAgICBwYXlsb2FkLmludGVyYWN0aW9uLmF1dGhvcml6aW5nX2ludGVncmF0aW9uX293bmVyc1snMSddLFxuICAgICAgKVxuICB9XG4gIGlmIChwcm9wcy5jb250ZXh0ICYmIHBheWxvYWQuaW50ZXJhY3Rpb24uY29udGV4dCkgaW50ZXJhY3Rpb24uY29udGV4dCA9IHBheWxvYWQuaW50ZXJhY3Rpb24uY29udGV4dFxuICBpZiAocHJvcHMuZGF0YSAmJiBwYXlsb2FkLmludGVyYWN0aW9uLmRhdGEpIHtcbiAgICBpbnRlcmFjdGlvbi5kYXRhID0ge1xuICAgICAgdHlwZTogcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLnR5cGUsXG4gICAgICBjb21wb25lbnRUeXBlOiBwYXlsb2FkLmludGVyYWN0aW9uLmRhdGEuY29tcG9uZW50X3R5cGUsXG4gICAgICBjdXN0b21JZDogcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLmN1c3RvbV9pZCxcbiAgICAgIGNvbXBvbmVudHM6IHBheWxvYWQuaW50ZXJhY3Rpb24uZGF0YS5jb21wb25lbnRzPy5tYXAoKGNvbXBvbmVudCkgPT4gYm90LnRyYW5zZm9ybWVycy5jb21wb25lbnQoYm90LCBjb21wb25lbnQpKSxcbiAgICAgIHZhbHVlczogcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLnZhbHVlcyxcbiAgICAgIGlkOiBwYXlsb2FkLmludGVyYWN0aW9uLmRhdGEuaWQgPyBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmludGVyYWN0aW9uLmRhdGEuaWQpIDogdW5kZWZpbmVkLFxuICAgICAgbmFtZTogcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLm5hbWUsXG4gICAgICByZXNvbHZlZDogcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLnJlc29sdmVkXG4gICAgICAgID8gYm90LnRyYW5zZm9ybWVycy5pbnRlcmFjdGlvbkRhdGFSZXNvbHZlZChib3QsIHsgcmVzb2x2ZWQ6IHBheWxvYWQuaW50ZXJhY3Rpb24uZGF0YS5yZXNvbHZlZCwgc2hhcmRJZDogcGF5bG9hZC5zaGFyZElkLCBndWlsZElkIH0pXG4gICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgb3B0aW9uczogcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLm9wdGlvbnM/Lm1hcCgob3B0KSA9PiBib3QudHJhbnNmb3JtZXJzLmludGVyYWN0aW9uRGF0YU9wdGlvbnMoYm90LCBvcHQpKSxcbiAgICAgIHRhcmdldElkOiBwYXlsb2FkLmludGVyYWN0aW9uLmRhdGEudGFyZ2V0X2lkID8gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLnRhcmdldF9pZCkgOiB1bmRlZmluZWQsXG4gICAgfVxuICB9XG5cbiAgLy8gVHlwZXNjcmlwdCBoYXMgYW4gaGFyZCB0aW1lIHdpdGggaW50ZXJhY3Rpb24uYm90LCBzbyB3ZSBuZWVkIHRvIHRlbGwgaGltIGZvciBzdXJlIHRoaXMgaW50ZXJhY3Rpb24gaXMgdGhlIG9mIHRoZSBjb3JyZWN0IHR5cGVcbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMuaW50ZXJhY3Rpb24oYm90LCBwYXlsb2FkLCBpbnRlcmFjdGlvbiBhcyB1bmtub3duIGFzIHR5cGVvZiBib3QudHJhbnNmb3JtZXJzLiRpbmZlcnJlZFR5cGVzLmludGVyYWN0aW9uKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtSW50ZXJhY3Rpb25EYXRhT3B0aW9uKGJvdDogQm90LCBvcHRpb246IERpc2NvcmRJbnRlcmFjdGlvbkRhdGFPcHRpb24pOiBJbnRlcmFjdGlvbkRhdGFPcHRpb24ge1xuICBjb25zdCBvcHQgPSB7XG4gICAgbmFtZTogb3B0aW9uLm5hbWUsXG4gICAgdHlwZTogb3B0aW9uLnR5cGUsXG4gICAgdmFsdWU6IG9wdGlvbi52YWx1ZSxcbiAgICBvcHRpb25zOiBvcHRpb24ub3B0aW9ucyxcbiAgICBmb2N1c2VkOiBvcHRpb24uZm9jdXNlZCxcbiAgfSBhcyBJbnRlcmFjdGlvbkRhdGFPcHRpb25cblxuICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jdXN0b21pemVycy5pbnRlcmFjdGlvbkRhdGFPcHRpb25zKGJvdCwgb3B0aW9uLCBvcHQpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1JbnRlcmFjdGlvbkRhdGFSZXNvbHZlZChcbiAgYm90OiBJbnRlcm5hbEJvdCxcbiAgcGF5bG9hZDogeyByZXNvbHZlZDogRGlzY29yZEludGVyYWN0aW9uRGF0YVJlc29sdmVkOyBzaGFyZElkOiBudW1iZXI7IGd1aWxkSWQ/OiBiaWdpbnQgfSxcbik6IEludGVyYWN0aW9uRGF0YVJlc29sdmVkIHtcbiAgY29uc3QgdHJhbnNmb3JtZWQ6IEludGVyYWN0aW9uRGF0YVJlc29sdmVkID0ge31cblxuICBpZiAocGF5bG9hZC5yZXNvbHZlZC5tZXNzYWdlcykge1xuICAgIHRyYW5zZm9ybWVkLm1lc3NhZ2VzID0gbmV3IENvbGxlY3Rpb24oXG4gICAgICBPYmplY3QuZW50cmllcyhwYXlsb2FkLnJlc29sdmVkLm1lc3NhZ2VzKS5tYXAoKFtfaWQsIHZhbHVlXSkgPT4ge1xuICAgICAgICBjb25zdCBtZXNzYWdlOiBNZXNzYWdlID0gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlKGJvdCwgeyBtZXNzYWdlOiB2YWx1ZSwgc2hhcmRJZDogcGF5bG9hZC5zaGFyZElkIH0pXG4gICAgICAgIHJldHVybiBbbWVzc2FnZS5pZCwgbWVzc2FnZV1cbiAgICAgIH0pLFxuICAgIClcbiAgfVxuXG4gIGlmIChwYXlsb2FkLnJlc29sdmVkLnVzZXJzKSB7XG4gICAgdHJhbnNmb3JtZWQudXNlcnMgPSBuZXcgQ29sbGVjdGlvbihcbiAgICAgIE9iamVjdC5lbnRyaWVzKHBheWxvYWQucmVzb2x2ZWQudXNlcnMpLm1hcCgoW19pZCwgdmFsdWVdKSA9PiB7XG4gICAgICAgIGNvbnN0IHVzZXIgPSBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCB2YWx1ZSlcbiAgICAgICAgcmV0dXJuIFt1c2VyLmlkLCB1c2VyXVxuICAgICAgfSksXG4gICAgKVxuICB9XG5cbiAgaWYgKHBheWxvYWQuZ3VpbGRJZCAmJiBwYXlsb2FkLnJlc29sdmVkLm1lbWJlcnMpIHtcbiAgICB0cmFuc2Zvcm1lZC5tZW1iZXJzID0gbmV3IENvbGxlY3Rpb24oXG4gICAgICBPYmplY3QuZW50cmllcyhwYXlsb2FkLnJlc29sdmVkLm1lbWJlcnMpLm1hcCgoW2lkLCB2YWx1ZV0pID0+IHtcbiAgICAgICAgY29uc3QgbWVtYmVyOiBNZW1iZXIgPSBib3QudHJhbnNmb3JtZXJzLm1lbWJlcihib3QsIHZhbHVlLCBwYXlsb2FkLmd1aWxkSWQhLCBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShpZCkpXG4gICAgICAgIHJldHVybiBbbWVtYmVyLmlkLCBtZW1iZXJdXG4gICAgICB9KSxcbiAgICApXG4gIH1cblxuICBpZiAocGF5bG9hZC5ndWlsZElkICYmIHBheWxvYWQucmVzb2x2ZWQucm9sZXMpIHtcbiAgICB0cmFuc2Zvcm1lZC5yb2xlcyA9IG5ldyBDb2xsZWN0aW9uKFxuICAgICAgT2JqZWN0LmVudHJpZXMocGF5bG9hZC5yZXNvbHZlZC5yb2xlcykubWFwKChbX2lkLCB2YWx1ZV0pID0+IHtcbiAgICAgICAgY29uc3Qgcm9sZSA9IGJvdC50cmFuc2Zvcm1lcnMucm9sZShib3QsIHsgcm9sZTogdmFsdWUsIGd1aWxkSWQ6IHBheWxvYWQuZ3VpbGRJZCEgfSlcbiAgICAgICAgcmV0dXJuIFtyb2xlLmlkLCByb2xlXVxuICAgICAgfSksXG4gICAgKVxuICB9XG5cbiAgaWYgKHBheWxvYWQucmVzb2x2ZWQuY2hhbm5lbHMpIHtcbiAgICB0cmFuc2Zvcm1lZC5jaGFubmVscyA9IG5ldyBDb2xsZWN0aW9uKFxuICAgICAgT2JqZWN0LmVudHJpZXMocGF5bG9hZC5yZXNvbHZlZC5jaGFubmVscykubWFwKChbX2lkLCB2YWx1ZV0pID0+IHtcbiAgICAgICAgY29uc3QgY2hhbm5lbCA9IGJvdC50cmFuc2Zvcm1lcnMuY2hhbm5lbChib3QsIHsgY2hhbm5lbDogdmFsdWUgfSkgYXMgSW50ZXJhY3Rpb25SZXNvbHZlZENoYW5uZWxcbiAgICAgICAgcmV0dXJuIFtjaGFubmVsLmlkLCBjaGFubmVsXVxuICAgICAgfSksXG4gICAgKVxuICB9XG5cbiAgaWYgKHBheWxvYWQucmVzb2x2ZWQuYXR0YWNobWVudHMpIHtcbiAgICB0cmFuc2Zvcm1lZC5hdHRhY2htZW50cyA9IG5ldyBDb2xsZWN0aW9uKFxuICAgICAgT2JqZWN0LmVudHJpZXMocGF5bG9hZC5yZXNvbHZlZC5hdHRhY2htZW50cykubWFwKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgY29uc3QgaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShrZXkpXG4gICAgICAgIHJldHVybiBbaWQsIGJvdC50cmFuc2Zvcm1lcnMuYXR0YWNobWVudChib3QsIHZhbHVlKV1cbiAgICAgIH0pLFxuICAgIClcbiAgfVxuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLmludGVyYWN0aW9uRGF0YVJlc29sdmVkKGJvdCwgcGF5bG9hZCwgdHJhbnNmb3JtZWQpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1JbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2UoXG4gIGJvdDogSW50ZXJuYWxCb3QsXG4gIHBheWxvYWQ6IHsgaW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlOiBEaXNjb3JkSW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlOyBzaGFyZElkOiBudW1iZXIgfSxcbik6IHR5cGVvZiBib3QudHJhbnNmb3JtZXJzLiRpbmZlcnJlZFR5cGVzLmludGVyYWN0aW9uQ2FsbGJhY2tSZXNwb25zZSB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5pbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2VcbiAgY29uc3QgcmVzcG9uc2UgPSB7fSBhcyBJbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2VcblxuICBpZiAocHJvcHMuaW50ZXJhY3Rpb24gJiYgcGF5bG9hZC5pbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2UuaW50ZXJhY3Rpb24pXG4gICAgcmVzcG9uc2UuaW50ZXJhY3Rpb24gPSBib3QudHJhbnNmb3JtZXJzLmludGVyYWN0aW9uQ2FsbGJhY2soYm90LCBwYXlsb2FkLmludGVyYWN0aW9uQ2FsbGJhY2tSZXNwb25zZS5pbnRlcmFjdGlvbilcbiAgaWYgKHByb3BzLnJlc291cmNlICYmIHBheWxvYWQuaW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlLnJlc291cmNlKVxuICAgIHJlc3BvbnNlLnJlc291cmNlID0gYm90LnRyYW5zZm9ybWVycy5pbnRlcmFjdGlvblJlc291cmNlKGJvdCwge1xuICAgICAgaW50ZXJhY3Rpb25SZXNvdXJjZTogcGF5bG9hZC5pbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2UucmVzb3VyY2UsXG4gICAgICBzaGFyZElkOiBwYXlsb2FkLnNoYXJkSWQsXG4gICAgfSlcblxuICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jdXN0b21pemVycy5pbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2UoYm90LCBwYXlsb2FkLmludGVyYWN0aW9uQ2FsbGJhY2tSZXNwb25zZSwgcmVzcG9uc2UpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1JbnRlcmFjdGlvbkNhbGxiYWNrKFxuICBib3Q6IEludGVybmFsQm90LFxuICBwYXlsb2FkOiBEaXNjb3JkSW50ZXJhY3Rpb25DYWxsYmFjayxcbik6IHR5cGVvZiBib3QudHJhbnNmb3JtZXJzLiRpbmZlcnJlZFR5cGVzLmludGVyYWN0aW9uQ2FsbGJhY2sge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuaW50ZXJhY3Rpb25DYWxsYmFja1xuICBjb25zdCBjYWxsYmFjayA9IHt9IGFzIEludGVyYWN0aW9uQ2FsbGJhY2tcblxuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5pZCkgY2FsbGJhY2suaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmlkKVxuICBpZiAocHJvcHMudHlwZSAmJiBwYXlsb2FkLnR5cGUpIGNhbGxiYWNrLnR5cGUgPSBwYXlsb2FkLnR5cGVcbiAgaWYgKHByb3BzLmFjdGl2aXR5SW5zdGFuY2VJZCAmJiBwYXlsb2FkLmFjdGl2aXR5X2luc3RhbmNlX2lkKSBjYWxsYmFjay5hY3Rpdml0eUluc3RhbmNlSWQgPSBwYXlsb2FkLmFjdGl2aXR5X2luc3RhbmNlX2lkXG4gIGlmIChwcm9wcy5yZXNwb25zZU1lc3NhZ2VJZCAmJiBwYXlsb2FkLnJlc3BvbnNlX21lc3NhZ2VfaWQpIGNhbGxiYWNrLnJlc3BvbnNlTWVzc2FnZUlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5yZXNwb25zZV9tZXNzYWdlX2lkKVxuICBpZiAocHJvcHMucmVzcG9uc2VNZXNzYWdlRXBoZW1lcmFsICYmIHBheWxvYWQucmVzcG9uc2VfbWVzc2FnZV9lcGhlbWVyYWwpIGNhbGxiYWNrLnJlc3BvbnNlTWVzc2FnZUVwaGVtZXJhbCA9IHBheWxvYWQucmVzcG9uc2VfbWVzc2FnZV9lcGhlbWVyYWxcbiAgaWYgKHByb3BzLnJlc3BvbnNlTWVzc2FnZUxvYWRpbmcgJiYgcGF5bG9hZC5yZXNwb25zZV9tZXNzYWdlX2xvYWRpbmcpIGNhbGxiYWNrLnJlc3BvbnNlTWVzc2FnZUxvYWRpbmcgPSBwYXlsb2FkLnJlc3BvbnNlX21lc3NhZ2VfbG9hZGluZ1xuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLmludGVyYWN0aW9uQ2FsbGJhY2soYm90LCBwYXlsb2FkLCBjYWxsYmFjaylcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybUludGVyYWN0aW9uUmVzb3VyY2UoXG4gIGJvdDogSW50ZXJuYWxCb3QsXG4gIHBheWxvYWQ6IHsgaW50ZXJhY3Rpb25SZXNvdXJjZTogRGlzY29yZEludGVyYWN0aW9uUmVzb3VyY2U7IHNoYXJkSWQ6IG51bWJlciB9LFxuKTogdHlwZW9mIGJvdC50cmFuc2Zvcm1lcnMuJGluZmVycmVkVHlwZXMuaW50ZXJhY3Rpb25SZXNvdXJjZSB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5pbnRlcmFjdGlvblJlc291cmNlXG4gIGNvbnN0IHJlc291cmNlID0ge30gYXMgSW50ZXJhY3Rpb25SZXNvdXJjZVxuXG4gIGlmIChwcm9wcy50eXBlICYmIHBheWxvYWQuaW50ZXJhY3Rpb25SZXNvdXJjZS50eXBlKSByZXNvdXJjZS50eXBlID0gcGF5bG9hZC5pbnRlcmFjdGlvblJlc291cmNlLnR5cGVcbiAgaWYgKHByb3BzLmFjdGl2aXR5SW5zdGFuY2UgJiYgcGF5bG9hZC5pbnRlcmFjdGlvblJlc291cmNlLmFjdGl2aXR5X2luc3RhbmNlKVxuICAgIHJlc291cmNlLmFjdGl2aXR5SW5zdGFuY2UgPSBwYXlsb2FkLmludGVyYWN0aW9uUmVzb3VyY2UuYWN0aXZpdHlfaW5zdGFuY2VcbiAgaWYgKHByb3BzLm1lc3NhZ2UgJiYgcGF5bG9hZC5pbnRlcmFjdGlvblJlc291cmNlLm1lc3NhZ2UpXG4gICAgcmVzb3VyY2UubWVzc2FnZSA9IGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHsgbWVzc2FnZTogcGF5bG9hZC5pbnRlcmFjdGlvblJlc291cmNlLm1lc3NhZ2UsIHNoYXJkSWQ6IHBheWxvYWQuc2hhcmRJZCB9KVxuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLmludGVyYWN0aW9uUmVzb3VyY2UoYm90LCBwYXlsb2FkLmludGVyYWN0aW9uUmVzb3VyY2UsIHJlc291cmNlKVxufVxuIl0sIm5hbWVzIjpbImJhc2VJbnRlcmFjdGlvbiIsInRyYW5zZm9ybUludGVyYWN0aW9uIiwidHJhbnNmb3JtSW50ZXJhY3Rpb25DYWxsYmFjayIsInRyYW5zZm9ybUludGVyYWN0aW9uQ2FsbGJhY2tSZXNwb25zZSIsInRyYW5zZm9ybUludGVyYWN0aW9uRGF0YU9wdGlvbiIsInRyYW5zZm9ybUludGVyYWN0aW9uRGF0YVJlc29sdmVkIiwidHJhbnNmb3JtSW50ZXJhY3Rpb25SZXNvdXJjZSIsInVuZGVmaW5lZCIsInJlc3BvbmQiLCJyZXNwb25zZSIsIm9wdGlvbnMiLCJ0eXBlIiwiSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzIiwiQ2hhbm5lbE1lc3NhZ2VXaXRoU291cmNlIiwiY29udGVudCIsInRpdGxlIiwiTW9kYWwiLCJJbnRlcmFjdGlvblR5cGVzIiwiQXBwbGljYXRpb25Db21tYW5kQXV0b2NvbXBsZXRlIiwiQXBwbGljYXRpb25Db21tYW5kQXV0b2NvbXBsZXRlUmVzdWx0IiwiaXNQcml2YXRlIiwiZmxhZ3MiLCJNZXNzYWdlRmxhZ3MiLCJFcGhlbWVyYWwiLCJhY2tub3dsZWRnZWQiLCJib3QiLCJoZWxwZXJzIiwic2VuZEZvbGxvd3VwTWVzc2FnZSIsInRva2VuIiwiTW9kYWxTdWJtaXQiLCJFcnJvciIsInNlbmRJbnRlcmFjdGlvblJlc3BvbnNlIiwiaWQiLCJkYXRhIiwid2l0aFJlc3BvbnNlIiwiZWRpdCIsIm1lc3NhZ2VJZCIsImVkaXRGb2xsb3d1cE1lc3NhZ2UiLCJNZXNzYWdlQ29tcG9uZW50IiwiVXBkYXRlTWVzc2FnZSIsImVkaXRPcmlnaW5hbEludGVyYWN0aW9uUmVzcG9uc2UiLCJkZWZlckVkaXQiLCJEZWZlcnJlZFVwZGF0ZU1lc3NhZ2UiLCJkZWZlciIsIkRlZmVycmVkQ2hhbm5lbE1lc3NhZ2VXaXRoU291cmNlIiwiZGVsZXRlIiwiZGVsZXRlRm9sbG93dXBNZXNzYWdlIiwiZGVsZXRlT3JpZ2luYWxJbnRlcmFjdGlvblJlc3BvbnNlIiwicGF5bG9hZCIsImd1aWxkSWQiLCJpbnRlcmFjdGlvbiIsImd1aWxkX2lkIiwidHJhbnNmb3JtZXJzIiwic25vd2ZsYWtlIiwidXNlciIsIm1lbWJlciIsIk9iamVjdCIsImNyZWF0ZSIsInByb3BzIiwiZGVzaXJlZFByb3BlcnRpZXMiLCJhcHBsaWNhdGlvbklkIiwiYXBwbGljYXRpb25faWQiLCJ2ZXJzaW9uIiwibG9jYWxlIiwiZ3VpbGRMb2NhbGUiLCJndWlsZF9sb2NhbGUiLCJndWlsZCIsInNoYXJkSWQiLCJhcHBQZXJtaXNzaW9ucyIsImFwcF9wZXJtaXNzaW9ucyIsIm1lc3NhZ2UiLCJjaGFubmVsIiwiY2hhbm5lbElkIiwiY2hhbm5lbF9pZCIsImF1dGhvcml6aW5nSW50ZWdyYXRpb25Pd25lcnMiLCJhdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnMiLCJEaXNjb3JkQXBwbGljYXRpb25JbnRlZ3JhdGlvblR5cGUiLCJHdWlsZEluc3RhbGwiLCJVc2VySW5zdGFsbCIsImNvbnRleHQiLCJjb21wb25lbnRUeXBlIiwiY29tcG9uZW50X3R5cGUiLCJjdXN0b21JZCIsImN1c3RvbV9pZCIsImNvbXBvbmVudHMiLCJtYXAiLCJjb21wb25lbnQiLCJ2YWx1ZXMiLCJuYW1lIiwicmVzb2x2ZWQiLCJpbnRlcmFjdGlvbkRhdGFSZXNvbHZlZCIsIm9wdCIsImludGVyYWN0aW9uRGF0YU9wdGlvbnMiLCJ0YXJnZXRJZCIsInRhcmdldF9pZCIsImN1c3RvbWl6ZXJzIiwib3B0aW9uIiwidmFsdWUiLCJmb2N1c2VkIiwidHJhbnNmb3JtZWQiLCJtZXNzYWdlcyIsIkNvbGxlY3Rpb24iLCJlbnRyaWVzIiwiX2lkIiwidXNlcnMiLCJtZW1iZXJzIiwicm9sZXMiLCJyb2xlIiwiY2hhbm5lbHMiLCJhdHRhY2htZW50cyIsImtleSIsImF0dGFjaG1lbnQiLCJpbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2UiLCJpbnRlcmFjdGlvbkNhbGxiYWNrIiwicmVzb3VyY2UiLCJpbnRlcmFjdGlvblJlc291cmNlIiwiY2FsbGJhY2siLCJhY3Rpdml0eUluc3RhbmNlSWQiLCJhY3Rpdml0eV9pbnN0YW5jZV9pZCIsInJlc3BvbnNlTWVzc2FnZUlkIiwicmVzcG9uc2VfbWVzc2FnZV9pZCIsInJlc3BvbnNlTWVzc2FnZUVwaGVtZXJhbCIsInJlc3BvbnNlX21lc3NhZ2VfZXBoZW1lcmFsIiwicmVzcG9uc2VNZXNzYWdlTG9hZGluZyIsInJlc3BvbnNlX21lc3NhZ2VfbG9hZGluZyIsImFjdGl2aXR5SW5zdGFuY2UiLCJhY3Rpdml0eV9pbnN0YW5jZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7SUE0QmFBLGVBQWU7ZUFBZkE7O0lBb0ZHQyxvQkFBb0I7ZUFBcEJBOztJQWtLQUMsNEJBQTRCO2VBQTVCQTs7SUFsQkFDLG9DQUFvQztlQUFwQ0E7O0lBM0VBQyw4QkFBOEI7ZUFBOUJBOztJQVlBQyxnQ0FBZ0M7ZUFBaENBOztJQWtHQUMsNEJBQTRCO2VBQTVCQTs7O3VCQXhSVDt1QkFDb0I7QUFnQnBCLE1BQU1OLGtCQUFnRjtJQUMzRiwyRUFBMkU7SUFDM0UsR0FBSU8sU0FBUztJQUViLE1BQU1DLFNBQVFDLFFBQVEsRUFBRUMsT0FBTztRQUM3QixJQUFJQyxPQUFPQywrQkFBd0IsQ0FBQ0Msd0JBQXdCO1FBRTVELDREQUE0RDtRQUM1RCxJQUFJLE9BQU9KLGFBQWEsVUFBVUEsV0FBVztZQUFFSyxTQUFTTDtRQUFTO1FBRWpFLDRGQUE0RjtRQUM1RixJQUFJQSxTQUFTTSxLQUFLLEVBQUVKLE9BQU9DLCtCQUF3QixDQUFDSSxLQUFLO1FBQ3pELElBQUksSUFBSSxDQUFDTCxJQUFJLEtBQUtNLHVCQUFnQixDQUFDQyw4QkFBOEIsRUFBRVAsT0FBT0MsK0JBQXdCLENBQUNPLG9DQUFvQztRQUN2SSxJQUFJUixTQUFTQywrQkFBd0IsQ0FBQ0Msd0JBQXdCLElBQUlILFNBQVNVLFdBQVdYLFNBQVNZLEtBQUssR0FBR0MsbUJBQVksQ0FBQ0MsU0FBUztRQUU3SCx5RkFBeUY7UUFDekYsSUFBSSxJQUFJLENBQUNDLFlBQVksRUFBRSxPQUFPLE1BQU0sSUFBSSxDQUFDQyxHQUFHLENBQUNDLE9BQU8sQ0FBQ0MsbUJBQW1CLENBQUMsSUFBSSxDQUFDQyxLQUFLLEVBQUVuQjtRQUVyRiwyQkFBMkI7UUFDM0Is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
279
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvaW50ZXJhY3Rpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlLFxuICB0eXBlIERpc2NvcmRJbnRlcmFjdGlvbixcbiAgdHlwZSBEaXNjb3JkSW50ZXJhY3Rpb25DYWxsYmFjayxcbiAgdHlwZSBEaXNjb3JkSW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlLFxuICB0eXBlIERpc2NvcmRJbnRlcmFjdGlvbkRhdGFPcHRpb24sXG4gIHR5cGUgRGlzY29yZEludGVyYWN0aW9uRGF0YVJlc29sdmVkLFxuICB0eXBlIERpc2NvcmRJbnRlcmFjdGlvblJlc291cmNlLFxuICBJbnRlcmFjdGlvblJlc3BvbnNlVHlwZXMsXG4gIEludGVyYWN0aW9uVHlwZXMsXG4gIE1lc3NhZ2VGbGFncyxcbn0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnXG5pbXBvcnQgeyBDb2xsZWN0aW9uIH0gZnJvbSAnQGRpc2NvcmRlbm8vdXRpbHMnXG5pbXBvcnQgdHlwZSB7XG4gIEJvdCxcbiAgRGlzY29yZENoYW5uZWwsXG4gIEludGVyYWN0aW9uLFxuICBJbnRlcmFjdGlvbkNhbGxiYWNrLFxuICBJbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2UsXG4gIEludGVyYWN0aW9uRGF0YU9wdGlvbixcbiAgSW50ZXJhY3Rpb25EYXRhUmVzb2x2ZWQsXG4gIEludGVyYWN0aW9uUmVzb2x2ZWRDaGFubmVsLFxuICBJbnRlcmFjdGlvblJlc291cmNlLFxuICBJbnRlcm5hbEJvdCxcbiAgTWVtYmVyLFxuICBNZXNzYWdlLFxufSBmcm9tICcuLi9pbmRleC5qcydcblxuZXhwb3J0IGNvbnN0IGJhc2VJbnRlcmFjdGlvbjogSW50ZXJuYWxCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydpbnRlcmFjdGlvbiddID0ge1xuICAvLyBUaGlzIGFsbG93cyB0eXBlc2NyaXB0IHRvIHN0aWxsIGNoZWNrIGZvciB0eXBlIGVycm9ycyBvbiBmdW5jdGlvbnMgYmVsb3dcbiAgLi4uKHVuZGVmaW5lZCBhcyB1bmtub3duIGFzIEludGVybmFsQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnaW50ZXJhY3Rpb24nXSksXG5cbiAgYXN5bmMgcmVzcG9uZChyZXNwb25zZSwgb3B0aW9ucykge1xuICAgIGxldCB0eXBlID0gSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLkNoYW5uZWxNZXNzYWdlV2l0aFNvdXJjZVxuXG4gICAgLy8gSWYgdXNlciBwcm92aWRlcyBhIHN0cmluZywgY2hhbmdlIGl0IHRvIGEgcmVzcG9uc2Ugb2JqZWN0XG4gICAgaWYgKHR5cGVvZiByZXNwb25zZSA9PT0gJ3N0cmluZycpIHJlc3BvbnNlID0geyBjb250ZW50OiByZXNwb25zZSB9XG5cbiAgICAvLyBJZiB1c2VyIHByb3ZpZGVzIGFuIG9iamVjdCwgZGV0ZXJtaW5lIGlmIGl0IHNob3VsZCBiZSBhbiBhdXRvY29tcGxldGUgb3IgYSBtb2RhbCByZXNwb25zZVxuICAgIGlmIChyZXNwb25zZS50aXRsZSkgdHlwZSA9IEludGVyYWN0aW9uUmVzcG9uc2VUeXBlcy5Nb2RhbFxuICAgIGlmICh0aGlzLnR5cGUgPT09IEludGVyYWN0aW9uVHlwZXMuQXBwbGljYXRpb25Db21tYW5kQXV0b2NvbXBsZXRlKSB0eXBlID0gSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLkFwcGxpY2F0aW9uQ29tbWFuZEF1dG9jb21wbGV0ZVJlc3VsdFxuICAgIGlmICh0eXBlID09PSBJbnRlcmFjdGlvblJlc3BvbnNlVHlwZXMuQ2hhbm5lbE1lc3NhZ2VXaXRoU291cmNlICYmIG9wdGlvbnM/LmlzUHJpdmF0ZSkge1xuICAgICAgcmVzcG9uc2UuZmxhZ3MgPz89IDBcbiAgICAgIHJlc3BvbnNlLmZsYWdzIHw9IE1lc3NhZ2VGbGFncy5FcGhlbWVyYWxcbiAgICB9XG5cbiAgICAvLyBTaW5jZSB0aGlzIGhhcyBhbHJlYWR5IGJlZW4gZ2l2ZW4gYSByZXNwb25zZSwgYW55IGZ1cnRoZXIgcmVzcG9uc2VzIG11c3QgYmUgZm9sbG93dXBzLlxuICAgIGlmICh0aGlzLmFja25vd2xlZGdlZCkgcmV0dXJuIGF3YWl0IHRoaXMuYm90LmhlbHBlcnMuc2VuZEZvbGxvd3VwTWVzc2FnZSh0aGlzLnRva2VuLCByZXNwb25zZSlcblxuICAgIC8vIE1vZGFscyBjYW5ub3QgYmUgY2hhaW5lZFxuICAgIGlmICh0aGlzLnR5cGUgPT09IEludGVyYWN0aW9uVHlwZXMuTW9kYWxTdWJtaXQgJiYgdHlwZSA9PT0gSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLk1vZGFsKVxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgcmVzcG9uZCB0byBhIG1vZGFsIGludGVyYWN0aW9uIHdpdGggYW5vdGhlciBtb2RhbC4nKVxuXG4gICAgdGhpcy5hY2tub3dsZWRnZWQgPSB0cnVlXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuYm90LmhlbHBlcnMuc2VuZEludGVyYWN0aW9uUmVzcG9uc2UodGhpcy5pZCwgdGhpcy50b2tlbiwgeyB0eXBlLCBkYXRhOiByZXNwb25zZSB9LCB7IHdpdGhSZXNwb25zZTogb3B0aW9ucz8ud2l0aFJlc3BvbnNlIH0pXG4gIH0sXG4gIGFzeW5jIGVkaXQocmVzcG9uc2UsIG1lc3NhZ2VJZCwgb3B0aW9ucykge1xuICAgIGlmICh0aGlzLnR5cGUgPT09IEludGVyYWN0aW9uVHlwZXMuQXBwbGljYXRpb25Db21tYW5kQXV0b2NvbXBsZXRlKSB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBlZGl0IGFuIGF1dG9jb21wbGV0ZSBpbnRlcmFjdGlvbi4nKVxuXG4gICAgLy8gSWYgdXNlciBwcm92aWRlcyBhIHN0cmluZywgY2hhbmdlIGl0IHRvIGEgcmVzcG9uc2Ugb2JqZWN0XG4gICAgaWYgKHR5cGVvZiByZXNwb25zZSA9PT0gJ3N0cmluZycpIHJlc3BvbnNlID0geyBjb250ZW50OiByZXNwb25zZSB9XG5cbiAgICBpZiAobWVzc2FnZUlkKSB7XG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy5ib3Q/LmhlbHBlcnMuZWRpdEZvbGxvd3VwTWVzc2FnZSh0aGlzLnRva2VuLCBtZXNzYWdlSWQsIHJlc3BvbnNlKVxuICAgIH1cblxuICAgIGlmICghdGhpcy5hY2tub3dsZWRnZWQpIHtcbiAgICAgIGlmICh0aGlzLnR5cGUgIT09IEludGVyYWN0aW9uVHlwZXMuTWVzc2FnZUNvbXBvbmVudCAmJiB0aGlzLnR5cGUgIT09IEludGVyYWN0aW9uVHlwZXMuTW9kYWxTdWJtaXQpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIlRoaXMgaW50ZXJhY3Rpb24gaGFzIG5vdCBiZWVuIHJlc3BvbmRlZCB0byB5ZXQgYW5kIHRoaXMgaXNuJ3QgYSBNZXNzYWdlQ29tcG9uZW50IG9yIE1vZGFsU3VibWl0IGludGVyYWN0aW9uLlwiKVxuXG4gICAgICB0aGlzLmFja25vd2xlZGdlZCA9IHRydWVcbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLmJvdC5oZWxwZXJzLnNlbmRJbnRlcmFjdGlvblJlc3BvbnNlKFxuICAgICAgICB0aGlzLmlkLFxuICAgICAgICB0aGlzLnRva2VuLFxuICAgICAgICB7IHR5cGU6IEludGVyYWN0aW9uUmVzcG9uc2VUeXBlcy5VcGRhdGVNZXNzYWdlLCBkYXRhOiByZXNwb25zZSB9LFxuICAgICAgICBvcHRpb25zLFxuICAgICAgKVxuICAgIH1cblxuICAgIHJldHVybiBhd2FpdCB0aGlzLmJvdC5oZWxwZXJzLmVkaXRPcmlnaW5hbEludGVyYWN0aW9uUmVzcG9uc2UodGhpcy50b2tlbiwgcmVzcG9uc2UpXG4gIH0sXG4gIGFzeW5jIGRlZmVyRWRpdChvcHRpb25zKSB7XG4gICAgaWYgKHRoaXMudHlwZSA9PT0gSW50ZXJhY3Rpb25UeXBlcy5BcHBsaWNhdGlvbkNvbW1hbmRBdXRvY29tcGxldGUpIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGVkaXQgYW4gYXV0b2NvbXBsZXRlIGludGVyYWN0aW9uLicpXG4gICAgaWYgKHRoaXMuYWNrbm93bGVkZ2VkKSB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBkZWZlciBhbiBhbHJlYWR5IHJlc3BvbmRlZCBpbnRlcmFjdGlvbi4nKVxuXG4gICAgaWYgKHRoaXMudHlwZSAhPT0gSW50ZXJhY3Rpb25UeXBlcy5NZXNzYWdlQ29tcG9uZW50ICYmIHRoaXMudHlwZSAhPT0gSW50ZXJhY3Rpb25UeXBlcy5Nb2RhbFN1Ym1pdClcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkNhbm5vdCBkZWZlciB0byB0aGVuIGVkaXQgYW4gaW50ZXJhY3Rpb24gdGhhdCBpc24ndCBhIE1lc3NhZ2VDb21wb25lbnQgb3IgTW9kYWxTdWJtaXQgaW50ZXJhY3Rpb24uXCIpXG5cbiAgICB0aGlzLmFja25vd2xlZGdlZCA9IHRydWVcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5ib3QuaGVscGVycy5zZW5kSW50ZXJhY3Rpb25SZXNwb25zZSh0aGlzLmlkLCB0aGlzLnRva2VuLCB7IHR5cGU6IEludGVyYWN0aW9uUmVzcG9uc2VUeXBlcy5EZWZlcnJlZFVwZGF0ZU1lc3NhZ2UgfSwgb3B0aW9ucylcbiAgfSxcbiAgYXN5bmMgZGVmZXIoaXNQcml2YXRlLCBvcHRpb25zKSB7XG4gICAgaWYgKHRoaXMuYWNrbm93bGVkZ2VkKSB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBkZWZlciBhbiBhbHJlYWR5IHJlc3BvbmRlZCBpbnRlcmFjdGlvbi4nKVxuXG4gICAgdGhpcy5hY2tub3dsZWRnZWQgPSB0cnVlXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuYm90LmhlbHBlcnMuc2VuZEludGVyYWN0aW9uUmVzcG9uc2UoXG4gICAgICB0aGlzLmlkLFxuICAgICAgdGhpcy50b2tlbixcbiAgICAgIHtcbiAgICAgICAgdHlwZTogSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLkRlZmVycmVkQ2hhbm5lbE1lc3NhZ2VXaXRoU291cmNlLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgZmxhZ3M6IGlzUHJpdmF0ZSA/IE1lc3NhZ2VGbGFncy5FcGhlbWVyYWwgOiB1bmRlZmluZWQsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgb3B0aW9ucyxcbiAgICApXG4gIH0sXG4gIGFzeW5jIGRlbGV0ZShtZXNzYWdlSWQpIHtcbiAgICBpZiAodGhpcy50eXBlID09PSBJbnRlcmFjdGlvblR5cGVzLkFwcGxpY2F0aW9uQ29tbWFuZEF1dG9jb21wbGV0ZSkgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgZGVsZXRlIGFuIGF1dG9jb21wbGV0ZSBpbnRlcmFjdGlvbicpXG5cbiAgICBpZiAobWVzc2FnZUlkKSByZXR1cm4gYXdhaXQgdGhpcy5ib3Q/LmhlbHBlcnMuZGVsZXRlRm9sbG93dXBNZXNzYWdlKHRoaXMudG9rZW4sIG1lc3NhZ2VJZClcbiAgICBlbHNlIHJldHVybiBhd2FpdCB0aGlzLmJvdD8uaGVscGVycy5kZWxldGVPcmlnaW5hbEludGVyYWN0aW9uUmVzcG9uc2UodGhpcy50b2tlbilcbiAgfSxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybUludGVyYWN0aW9uKFxuICBib3Q6IEludGVybmFsQm90LFxuICBwYXlsb2FkOiB7IGludGVyYWN0aW9uOiBEaXNjb3JkSW50ZXJhY3Rpb247IHNoYXJkSWQ6IG51bWJlciB9LFxuKTogdHlwZW9mIGJvdC50cmFuc2Zvcm1lcnMuJGluZmVycmVkVHlwZXMuaW50ZXJhY3Rpb24ge1xuICBjb25zdCBndWlsZElkID0gcGF5bG9hZC5pbnRlcmFjdGlvbi5ndWlsZF9pZCA/IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaW50ZXJhY3Rpb24uZ3VpbGRfaWQpIDogdW5kZWZpbmVkXG4gIGNvbnN0IHVzZXIgPSBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCBwYXlsb2FkLmludGVyYWN0aW9uLm1lbWJlcj8udXNlciA/PyBwYXlsb2FkLmludGVyYWN0aW9uLnVzZXIhKVxuXG4gIGNvbnN0IGludGVyYWN0aW9uOiBJbnRlcmFjdGlvbiA9IE9iamVjdC5jcmVhdGUoYmFzZUludGVyYWN0aW9uKVxuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuaW50ZXJhY3Rpb25cbiAgLy8gVHlwZXNjcmlwdCBoYXMgYW4gaGFyZCB0aW1lIHdpdGggdGhpcywgc28gd2UgbmVlZCB0byB0ZWxsIGhpbSBmb3Igc3VyZSB0aGlzIGlzIGEgQm90XG4gIGludGVyYWN0aW9uLmJvdCA9IGJvdCBhcyB1bmtub3duIGFzIEJvdFxuICBpbnRlcmFjdGlvbi5hY2tub3dsZWRnZWQgPSBmYWxzZVxuXG4gIGlmIChwcm9wcy5pZCAmJiBwYXlsb2FkLmludGVyYWN0aW9uLmlkKSBpbnRlcmFjdGlvbi5pZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaW50ZXJhY3Rpb24uaWQpXG4gIGlmIChwcm9wcy5hcHBsaWNhdGlvbklkICYmIHBheWxvYWQuaW50ZXJhY3Rpb24uYXBwbGljYXRpb25faWQpXG4gICAgaW50ZXJhY3Rpb24uYXBwbGljYXRpb25JZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaW50ZXJhY3Rpb24uYXBwbGljYXRpb25faWQpXG4gIGlmIChwcm9wcy50eXBlICYmIHBheWxvYWQuaW50ZXJhY3Rpb24udHlwZSkgaW50ZXJhY3Rpb24udHlwZSA9IHBheWxvYWQuaW50ZXJhY3Rpb24udHlwZVxuICBpZiAocHJvcHMudG9rZW4gJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi50b2tlbikgaW50ZXJhY3Rpb24udG9rZW4gPSBwYXlsb2FkLmludGVyYWN0aW9uLnRva2VuXG4gIGlmIChwcm9wcy52ZXJzaW9uICYmIHBheWxvYWQuaW50ZXJhY3Rpb24udmVyc2lvbikgaW50ZXJhY3Rpb24udmVyc2lvbiA9IHBheWxvYWQuaW50ZXJhY3Rpb24udmVyc2lvblxuICBpZiAocHJvcHMubG9jYWxlICYmIHBheWxvYWQuaW50ZXJhY3Rpb24ubG9jYWxlKSBpbnRlcmFjdGlvbi5sb2NhbGUgPSBwYXlsb2FkLmludGVyYWN0aW9uLmxvY2FsZVxuICBpZiAocHJvcHMuZ3VpbGRMb2NhbGUgJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi5ndWlsZF9sb2NhbGUpIGludGVyYWN0aW9uLmd1aWxkTG9jYWxlID0gcGF5bG9hZC5pbnRlcmFjdGlvbi5ndWlsZF9sb2NhbGVcbiAgaWYgKHByb3BzLmd1aWxkICYmIHBheWxvYWQuaW50ZXJhY3Rpb24uZ3VpbGQpXG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvciBwYXlsb2FkLmludGVyYWN0aW9uLmd1aWxkIGlzIGEgUGFydGlhbDxEaXNjb3JkR3VpbGQ+XG4gICAgaW50ZXJhY3Rpb24uZ3VpbGQgPSBib3QudHJhbnNmb3JtZXJzLmd1aWxkKGJvdCwgeyBndWlsZDogcGF5bG9hZC5pbnRlcmFjdGlvbi5ndWlsZCwgc2hhcmRJZDogcGF5bG9hZC5zaGFyZElkIH0pXG4gIGlmIChwcm9wcy5ndWlsZElkICYmIGd1aWxkSWQpIGludGVyYWN0aW9uLmd1aWxkSWQgPSBndWlsZElkXG4gIGlmIChwcm9wcy51c2VyICYmIHVzZXIpIGludGVyYWN0aW9uLnVzZXIgPSB1c2VyXG4gIGlmIChwcm9wcy5hcHBQZXJtaXNzaW9ucyAmJiBwYXlsb2FkLmludGVyYWN0aW9uLmFwcF9wZXJtaXNzaW9ucylcbiAgICBpbnRlcmFjdGlvbi5hcHBQZXJtaXNzaW9ucyA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaW50ZXJhY3Rpb24uYXBwX3Blcm1pc3Npb25zKVxuICBpZiAocHJvcHMubWVzc2FnZSAmJiBwYXlsb2FkLmludGVyYWN0aW9uLm1lc3NhZ2UpXG4gICAgaW50ZXJhY3Rpb24ubWVzc2FnZSA9IGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHsgbWVzc2FnZTogcGF5bG9hZC5pbnRlcmFjdGlvbi5tZXNzYWdlLCBzaGFyZElkOiAwIH0pXG4gIGlmIChwcm9wcy5jaGFubmVsICYmIHBheWxvYWQuaW50ZXJhY3Rpb24uY2hhbm5lbClcbiAgICBpbnRlcmFjdGlvbi5jaGFubmVsID0gYm90LnRyYW5zZm9ybWVycy5jaGFubmVsKGJvdCwgeyBjaGFubmVsOiBwYXlsb2FkLmludGVyYWN0aW9uLmNoYW5uZWwgYXMgRGlzY29yZENoYW5uZWwsIGd1aWxkSWQgfSlcbiAgaWYgKHByb3BzLmNoYW5uZWxJZCAmJiBwYXlsb2FkLmludGVyYWN0aW9uLmNoYW5uZWxfaWQpIGludGVyYWN0aW9uLmNoYW5uZWxJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaW50ZXJhY3Rpb24uY2hhbm5lbF9pZClcbiAgaWYgKHByb3BzLm1lbWJlciAmJiBndWlsZElkICYmIHBheWxvYWQuaW50ZXJhY3Rpb24ubWVtYmVyKVxuICAgIGludGVyYWN0aW9uLm1lbWJlciA9IGJvdC50cmFuc2Zvcm1lcnMubWVtYmVyKGJvdCwgcGF5bG9hZC5pbnRlcmFjdGlvbi5tZW1iZXIsIGd1aWxkSWQsIHVzZXIuaWQpXG4gIGlmIChwcm9wcy5lbnRpdGxlbWVudHMgJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi5lbnRpdGxlbWVudHMpXG4gICAgaW50ZXJhY3Rpb24uZW50aXRsZW1lbnRzID0gcGF5bG9hZC5pbnRlcmFjdGlvbi5lbnRpdGxlbWVudHMubWFwKChlKSA9PiBib3QudHJhbnNmb3JtZXJzLmVudGl0bGVtZW50KGJvdCwgZSkpXG4gIGlmIChwcm9wcy5hdXRob3JpemluZ0ludGVncmF0aW9uT3duZXJzICYmIHBheWxvYWQuaW50ZXJhY3Rpb24uYXV0aG9yaXppbmdfaW50ZWdyYXRpb25fb3duZXJzKSB7XG4gICAgaW50ZXJhY3Rpb24uYXV0aG9yaXppbmdJbnRlZ3JhdGlvbk93bmVycyA9IHt9XG5cbiAgICBpZiAocGF5bG9hZC5pbnRlcmFjdGlvbi5hdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnNbJzAnXSlcbiAgICAgIGludGVyYWN0aW9uLmF1dGhvcml6aW5nSW50ZWdyYXRpb25Pd25lcnNbRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlLkd1aWxkSW5zdGFsbF0gPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShcbiAgICAgICAgcGF5bG9hZC5pbnRlcmFjdGlvbi5hdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnNbJzAnXSxcbiAgICAgIClcbiAgICBpZiAocGF5bG9hZC5pbnRlcmFjdGlvbi5hdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnNbJzEnXSlcbiAgICAgIGludGVyYWN0aW9uLmF1dGhvcml6aW5nSW50ZWdyYXRpb25Pd25lcnNbRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlLlVzZXJJbnN0YWxsXSA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKFxuICAgICAgICBwYXlsb2FkLmludGVyYWN0aW9uLmF1dGhvcml6aW5nX2ludGVncmF0aW9uX293bmVyc1snMSddLFxuICAgICAgKVxuICB9XG4gIGlmIChwcm9wcy5jb250ZXh0ICYmIHBheWxvYWQuaW50ZXJhY3Rpb24uY29udGV4dCkgaW50ZXJhY3Rpb24uY29udGV4dCA9IHBheWxvYWQuaW50ZXJhY3Rpb24uY29udGV4dFxuICBpZiAocHJvcHMuYXR0YWNobWVudFNpemVMaW1pdCAmJiBwYXlsb2FkLmludGVyYWN0aW9uLmF0dGFjaG1lbnRfc2l6ZV9saW1pdClcbiAgICBpbnRlcmFjdGlvbi5hdHRhY2htZW50U2l6ZUxpbWl0ID0gcGF5bG9hZC5pbnRlcmFjdGlvbi5hdHRhY2htZW50X3NpemVfbGltaXRcbiAgaWYgKHByb3BzLmRhdGEgJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhKSB7XG4gICAgaW50ZXJhY3Rpb24uZGF0YSA9IHtcbiAgICAgIHR5cGU6IHBheWxvYWQuaW50ZXJhY3Rpb24uZGF0YS50eXBlLFxuICAgICAgY29tcG9uZW50VHlwZTogcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLmNvbXBvbmVudF90eXBlLFxuICAgICAgY3VzdG9tSWQ6IHBheWxvYWQuaW50ZXJhY3Rpb24uZGF0YS5jdXN0b21faWQsXG4gICAgICBjb21wb25lbnRzOiBwYXlsb2FkLmludGVyYWN0aW9uLmRhdGEuY29tcG9uZW50cz8ubWFwKChjb21wb25lbnQpID0+IGJvdC50cmFuc2Zvcm1lcnMuY29tcG9uZW50KGJvdCwgY29tcG9uZW50KSksXG4gICAgICB2YWx1ZXM6IHBheWxvYWQuaW50ZXJhY3Rpb24uZGF0YS52YWx1ZXMsXG4gICAgICBpZDogcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLmlkID8gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLmlkKSA6IHVuZGVmaW5lZCxcbiAgICAgIG5hbWU6IHBheWxvYWQuaW50ZXJhY3Rpb24uZGF0YS5uYW1lLFxuICAgICAgcmVzb2x2ZWQ6IHBheWxvYWQuaW50ZXJhY3Rpb24uZGF0YS5yZXNvbHZlZFxuICAgICAgICA/IGJvdC50cmFuc2Zvcm1lcnMuaW50ZXJhY3Rpb25EYXRhUmVzb2x2ZWQoYm90LCB7IHJlc29sdmVkOiBwYXlsb2FkLmludGVyYWN0aW9uLmRhdGEucmVzb2x2ZWQsIHNoYXJkSWQ6IHBheWxvYWQuc2hhcmRJZCwgZ3VpbGRJZCB9KVxuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgIG9wdGlvbnM6IHBheWxvYWQuaW50ZXJhY3Rpb24uZGF0YS5vcHRpb25zPy5tYXAoKG9wdCkgPT4gYm90LnRyYW5zZm9ybWVycy5pbnRlcmFjdGlvbkRhdGFPcHRpb25zKGJvdCwgb3B0KSksXG4gICAgICB0YXJnZXRJZDogcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLnRhcmdldF9pZCA/IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaW50ZXJhY3Rpb24uZGF0YS50YXJnZXRfaWQpIDogdW5kZWZpbmVkLFxuICAgIH1cbiAgfVxuXG4gIC8vIFR5cGVzY3JpcHQgaGFzIGFuIGhhcmQgdGltZSB3aXRoIGludGVyYWN0aW9uLmJvdCwgc28gd2UgbmVlZCB0byB0ZWxsIGhpbSBmb3Igc3VyZSB0aGlzIGludGVyYWN0aW9uIGlzIHRoZSBvZiB0aGUgY29ycmVjdCB0eXBlXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLmludGVyYWN0aW9uKGJvdCwgcGF5bG9hZCwgaW50ZXJhY3Rpb24gYXMgdW5rbm93biBhcyB0eXBlb2YgYm90LnRyYW5zZm9ybWVycy4kaW5mZXJyZWRUeXBlcy5pbnRlcmFjdGlvbilcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybUludGVyYWN0aW9uRGF0YU9wdGlvbihib3Q6IEJvdCwgb3B0aW9uOiBEaXNjb3JkSW50ZXJhY3Rpb25EYXRhT3B0aW9uKTogSW50ZXJhY3Rpb25EYXRhT3B0aW9uIHtcbiAgY29uc3Qgb3B0ID0ge1xuICAgIG5hbWU6IG9wdGlvbi5uYW1lLFxuICAgIHR5cGU6IG9wdGlvbi50eXBlLFxuICAgIHZhbHVlOiBvcHRpb24udmFsdWUsXG4gICAgb3B0aW9uczogb3B0aW9uLm9wdGlvbnMsXG4gICAgZm9jdXNlZDogb3B0aW9uLmZvY3VzZWQsXG4gIH0gYXMgSW50ZXJhY3Rpb25EYXRhT3B0aW9uXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMuaW50ZXJhY3Rpb25EYXRhT3B0aW9ucyhib3QsIG9wdGlvbiwgb3B0KVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtSW50ZXJhY3Rpb25EYXRhUmVzb2x2ZWQoXG4gIGJvdDogSW50ZXJuYWxCb3QsXG4gIHBheWxvYWQ6IHsgcmVzb2x2ZWQ6IERpc2NvcmRJbnRlcmFjdGlvbkRhdGFSZXNvbHZlZDsgc2hhcmRJZDogbnVtYmVyOyBndWlsZElkPzogYmlnaW50IH0sXG4pOiBJbnRlcmFjdGlvbkRhdGFSZXNvbHZlZCB7XG4gIGNvbnN0IHRyYW5zZm9ybWVkOiBJbnRlcmFjdGlvbkRhdGFSZXNvbHZlZCA9IHt9XG5cbiAgaWYgKHBheWxvYWQucmVzb2x2ZWQubWVzc2FnZXMpIHtcbiAgICB0cmFuc2Zvcm1lZC5tZXNzYWdlcyA9IG5ldyBDb2xsZWN0aW9uKFxuICAgICAgT2JqZWN0LmVudHJpZXMocGF5bG9hZC5yZXNvbHZlZC5tZXNzYWdlcykubWFwKChbX2lkLCB2YWx1ZV0pID0+IHtcbiAgICAgICAgY29uc3QgbWVzc2FnZTogTWVzc2FnZSA9IGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHsgbWVzc2FnZTogdmFsdWUsIHNoYXJkSWQ6IHBheWxvYWQuc2hhcmRJZCB9KVxuICAgICAgICByZXR1cm4gW21lc3NhZ2UuaWQsIG1lc3NhZ2VdXG4gICAgICB9KSxcbiAgICApXG4gIH1cblxuICBpZiAocGF5bG9hZC5yZXNvbHZlZC51c2Vycykge1xuICAgIHRyYW5zZm9ybWVkLnVzZXJzID0gbmV3IENvbGxlY3Rpb24oXG4gICAgICBPYmplY3QuZW50cmllcyhwYXlsb2FkLnJlc29sdmVkLnVzZXJzKS5tYXAoKFtfaWQsIHZhbHVlXSkgPT4ge1xuICAgICAgICBjb25zdCB1c2VyID0gYm90LnRyYW5zZm9ybWVycy51c2VyKGJvdCwgdmFsdWUpXG4gICAgICAgIHJldHVybiBbdXNlci5pZCwgdXNlcl1cbiAgICAgIH0pLFxuICAgIClcbiAgfVxuXG4gIGlmIChwYXlsb2FkLmd1aWxkSWQgJiYgcGF5bG9hZC5yZXNvbHZlZC5tZW1iZXJzKSB7XG4gICAgdHJhbnNmb3JtZWQubWVtYmVycyA9IG5ldyBDb2xsZWN0aW9uKFxuICAgICAgT2JqZWN0LmVudHJpZXMocGF5bG9hZC5yZXNvbHZlZC5tZW1iZXJzKS5tYXAoKFtpZCwgdmFsdWVdKSA9PiB7XG4gICAgICAgIGNvbnN0IG1lbWJlcjogTWVtYmVyID0gYm90LnRyYW5zZm9ybWVycy5tZW1iZXIoYm90LCB2YWx1ZSwgcGF5bG9hZC5ndWlsZElkISwgYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoaWQpKVxuICAgICAgICByZXR1cm4gW21lbWJlci5pZCwgbWVtYmVyXVxuICAgICAgfSksXG4gICAgKVxuICB9XG5cbiAgaWYgKHBheWxvYWQuZ3VpbGRJZCAmJiBwYXlsb2FkLnJlc29sdmVkLnJvbGVzKSB7XG4gICAgdHJhbnNmb3JtZWQucm9sZXMgPSBuZXcgQ29sbGVjdGlvbihcbiAgICAgIE9iamVjdC5lbnRyaWVzKHBheWxvYWQucmVzb2x2ZWQucm9sZXMpLm1hcCgoW19pZCwgdmFsdWVdKSA9PiB7XG4gICAgICAgIGNvbnN0IHJvbGUgPSBib3QudHJhbnNmb3JtZXJzLnJvbGUoYm90LCB7IHJvbGU6IHZhbHVlLCBndWlsZElkOiBwYXlsb2FkLmd1aWxkSWQhIH0pXG4gICAgICAgIHJldHVybiBbcm9sZS5pZCwgcm9sZV1cbiAgICAgIH0pLFxuICAgIClcbiAgfVxuXG4gIGlmIChwYXlsb2FkLnJlc29sdmVkLmNoYW5uZWxzKSB7XG4gICAgdHJhbnNmb3JtZWQuY2hhbm5lbHMgPSBuZXcgQ29sbGVjdGlvbihcbiAgICAgIE9iamVjdC5lbnRyaWVzKHBheWxvYWQucmVzb2x2ZWQuY2hhbm5lbHMpLm1hcCgoW19pZCwgdmFsdWVdKSA9PiB7XG4gICAgICAgIGNvbnN0IGNoYW5uZWwgPSBib3QudHJhbnNmb3JtZXJzLmNoYW5uZWwoYm90LCB7IGNoYW5uZWw6IHZhbHVlIH0pIGFzIEludGVyYWN0aW9uUmVzb2x2ZWRDaGFubmVsXG4gICAgICAgIHJldHVybiBbY2hhbm5lbC5pZCwgY2hhbm5lbF1cbiAgICAgIH0pLFxuICAgIClcbiAgfVxuXG4gIGlmIChwYXlsb2FkLnJlc29sdmVkLmF0dGFjaG1lbnRzKSB7XG4gICAgdHJhbnNmb3JtZWQuYXR0YWNobWVudHMgPSBuZXcgQ29sbGVjdGlvbihcbiAgICAgIE9iamVjdC5lbnRyaWVzKHBheWxvYWQucmVzb2x2ZWQuYXR0YWNobWVudHMpLm1hcCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICAgIGNvbnN0IGlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2Uoa2V5KVxuICAgICAgICByZXR1cm4gW2lkLCBib3QudHJhbnNmb3JtZXJzLmF0dGFjaG1lbnQoYm90LCB2YWx1ZSldXG4gICAgICB9KSxcbiAgICApXG4gIH1cblxuICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jdXN0b21pemVycy5pbnRlcmFjdGlvbkRhdGFSZXNvbHZlZChib3QsIHBheWxvYWQsIHRyYW5zZm9ybWVkKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtSW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlKFxuICBib3Q6IEludGVybmFsQm90LFxuICBwYXlsb2FkOiB7IGludGVyYWN0aW9uQ2FsbGJhY2tSZXNwb25zZTogRGlzY29yZEludGVyYWN0aW9uQ2FsbGJhY2tSZXNwb25zZTsgc2hhcmRJZDogbnVtYmVyIH0sXG4pOiB0eXBlb2YgYm90LnRyYW5zZm9ybWVycy4kaW5mZXJyZWRUeXBlcy5pbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2Uge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuaW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlXG4gIGNvbnN0IHJlc3BvbnNlID0ge30gYXMgSW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlXG5cbiAgaWYgKHByb3BzLmludGVyYWN0aW9uICYmIHBheWxvYWQuaW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlLmludGVyYWN0aW9uKVxuICAgIHJlc3BvbnNlLmludGVyYWN0aW9uID0gYm90LnRyYW5zZm9ybWVycy5pbnRlcmFjdGlvbkNhbGxiYWNrKGJvdCwgcGF5bG9hZC5pbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2UuaW50ZXJhY3Rpb24pXG4gIGlmIChwcm9wcy5yZXNvdXJjZSAmJiBwYXlsb2FkLmludGVyYWN0aW9uQ2FsbGJhY2tSZXNwb25zZS5yZXNvdXJjZSlcbiAgICByZXNwb25zZS5yZXNvdXJjZSA9IGJvdC50cmFuc2Zvcm1lcnMuaW50ZXJhY3Rpb25SZXNvdXJjZShib3QsIHtcbiAgICAgIGludGVyYWN0aW9uUmVzb3VyY2U6IHBheWxvYWQuaW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlLnJlc291cmNlLFxuICAgICAgc2hhcmRJZDogcGF5bG9hZC5zaGFyZElkLFxuICAgIH0pXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMuaW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlKGJvdCwgcGF5bG9hZC5pbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2UsIHJlc3BvbnNlKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtSW50ZXJhY3Rpb25DYWxsYmFjayhcbiAgYm90OiBJbnRlcm5hbEJvdCxcbiAgcGF5bG9hZDogRGlzY29yZEludGVyYWN0aW9uQ2FsbGJhY2ssXG4pOiB0eXBlb2YgYm90LnRyYW5zZm9ybWVycy4kaW5mZXJyZWRUeXBlcy5pbnRlcmFjdGlvbkNhbGxiYWNrIHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmludGVyYWN0aW9uQ2FsbGJhY2tcbiAgY29uc3QgY2FsbGJhY2sgPSB7fSBhcyBJbnRlcmFjdGlvbkNhbGxiYWNrXG5cbiAgaWYgKHByb3BzLmlkICYmIHBheWxvYWQuaWQpIGNhbGxiYWNrLmlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pZClcbiAgaWYgKHByb3BzLnR5cGUgJiYgcGF5bG9hZC50eXBlKSBjYWxsYmFjay50eXBlID0gcGF5bG9hZC50eXBlXG4gIGlmIChwcm9wcy5hY3Rpdml0eUluc3RhbmNlSWQgJiYgcGF5bG9hZC5hY3Rpdml0eV9pbnN0YW5jZV9pZCkgY2FsbGJhY2suYWN0aXZpdHlJbnN0YW5jZUlkID0gcGF5bG9hZC5hY3Rpdml0eV9pbnN0YW5jZV9pZFxuICBpZiAocHJvcHMucmVzcG9uc2VNZXNzYWdlSWQgJiYgcGF5bG9hZC5yZXNwb25zZV9tZXNzYWdlX2lkKSBjYWxsYmFjay5yZXNwb25zZU1lc3NhZ2VJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQucmVzcG9uc2VfbWVzc2FnZV9pZClcbiAgaWYgKHByb3BzLnJlc3BvbnNlTWVzc2FnZUVwaGVtZXJhbCAmJiBwYXlsb2FkLnJlc3BvbnNlX21lc3NhZ2VfZXBoZW1lcmFsKSBjYWxsYmFjay5yZXNwb25zZU1lc3NhZ2VFcGhlbWVyYWwgPSBwYXlsb2FkLnJlc3BvbnNlX21lc3NhZ2VfZXBoZW1lcmFsXG4gIGlmIChwcm9wcy5yZXNwb25zZU1lc3NhZ2VMb2FkaW5nICYmIHBheWxvYWQucmVzcG9uc2VfbWVzc2FnZV9sb2FkaW5nKSBjYWxsYmFjay5yZXNwb25zZU1lc3NhZ2VMb2FkaW5nID0gcGF5bG9hZC5yZXNwb25zZV9tZXNzYWdlX2xvYWRpbmdcblxuICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jdXN0b21pemVycy5pbnRlcmFjdGlvbkNhbGxiYWNrKGJvdCwgcGF5bG9hZCwgY2FsbGJhY2spXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1JbnRlcmFjdGlvblJlc291cmNlKFxuICBib3Q6IEludGVybmFsQm90LFxuICBwYXlsb2FkOiB7IGludGVyYWN0aW9uUmVzb3VyY2U6IERpc2NvcmRJbnRlcmFjdGlvblJlc291cmNlOyBzaGFyZElkOiBudW1iZXIgfSxcbik6IHR5cGVvZiBib3QudHJhbnNmb3JtZXJzLiRpbmZlcnJlZFR5cGVzLmludGVyYWN0aW9uUmVzb3VyY2Uge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuaW50ZXJhY3Rpb25SZXNvdXJjZVxuICBjb25zdCByZXNvdXJjZSA9IHt9IGFzIEludGVyYWN0aW9uUmVzb3VyY2VcblxuICBpZiAocHJvcHMudHlwZSAmJiBwYXlsb2FkLmludGVyYWN0aW9uUmVzb3VyY2UudHlwZSkgcmVzb3VyY2UudHlwZSA9IHBheWxvYWQuaW50ZXJhY3Rpb25SZXNvdXJjZS50eXBlXG4gIGlmIChwcm9wcy5hY3Rpdml0eUluc3RhbmNlICYmIHBheWxvYWQuaW50ZXJhY3Rpb25SZXNvdXJjZS5hY3Rpdml0eV9pbnN0YW5jZSlcbiAgICByZXNvdXJjZS5hY3Rpdml0eUluc3RhbmNlID0gcGF5bG9hZC5pbnRlcmFjdGlvblJlc291cmNlLmFjdGl2aXR5X2luc3RhbmNlXG4gIGlmIChwcm9wcy5tZXNzYWdlICYmIHBheWxvYWQuaW50ZXJhY3Rpb25SZXNvdXJjZS5tZXNzYWdlKVxuICAgIHJlc291cmNlLm1lc3NhZ2UgPSBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2UoYm90LCB7IG1lc3NhZ2U6IHBheWxvYWQuaW50ZXJhY3Rpb25SZXNvdXJjZS5tZXNzYWdlLCBzaGFyZElkOiBwYXlsb2FkLnNoYXJkSWQgfSlcblxuICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jdXN0b21pemVycy5pbnRlcmFjdGlvblJlc291cmNlKGJvdCwgcGF5bG9hZC5pbnRlcmFjdGlvblJlc291cmNlLCByZXNvdXJjZSlcbn1cbiJdLCJuYW1lcyI6WyJiYXNlSW50ZXJhY3Rpb24iLCJ0cmFuc2Zvcm1JbnRlcmFjdGlvbiIsInRyYW5zZm9ybUludGVyYWN0aW9uQ2FsbGJhY2siLCJ0cmFuc2Zvcm1JbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2UiLCJ0cmFuc2Zvcm1JbnRlcmFjdGlvbkRhdGFPcHRpb24iLCJ0cmFuc2Zvcm1JbnRlcmFjdGlvbkRhdGFSZXNvbHZlZCIsInRyYW5zZm9ybUludGVyYWN0aW9uUmVzb3VyY2UiLCJ1bmRlZmluZWQiLCJyZXNwb25kIiwicmVzcG9uc2UiLCJvcHRpb25zIiwidHlwZSIsIkludGVyYWN0aW9uUmVzcG9uc2VUeXBlcyIsIkNoYW5uZWxNZXNzYWdlV2l0aFNvdXJjZSIsImNvbnRlbnQiLCJ0aXRsZSIsIk1vZGFsIiwiSW50ZXJhY3Rpb25UeXBlcyIsIkFwcGxpY2F0aW9uQ29tbWFuZEF1dG9jb21wbGV0ZSIsIkFwcGxpY2F0aW9uQ29tbWFuZEF1dG9jb21wbGV0ZVJlc3VsdCIsImlzUHJpdmF0ZSIsImZsYWdzIiwiTWVzc2FnZUZsYWdzIiwiRXBoZW1lcmFsIiwiYWNrbm93bGVkZ2VkIiwiYm90IiwiaGVscGVycyIsInNlbmRGb2xsb3d1cE1lc3NhZ2UiLCJ0b2tlbiIsIk1vZGFsU3VibWl0IiwiRXJyb3IiLCJzZW5kSW50ZXJhY3Rpb25SZXNwb25zZSIsImlkIiwiZGF0YSIsIndpdGhSZXNwb25zZSIsImVkaXQiLCJtZXNzYWdlSWQiLCJlZGl0Rm9sbG93dXBNZXNzYWdlIiwiTWVzc2FnZUNvbXBvbmVudCIsIlVwZGF0ZU1lc3NhZ2UiLCJlZGl0T3JpZ2luYWxJbnRlcmFjdGlvblJlc3BvbnNlIiwiZGVmZXJFZGl0IiwiRGVmZXJyZWRVcGRhdGVNZXNzYWdlIiwiZGVmZXIiLCJEZWZlcnJlZENoYW5uZWxNZXNzYWdlV2l0aFNvdXJjZSIsImRlbGV0ZSIsImRlbGV0ZUZvbGxvd3VwTWVzc2FnZSIsImRlbGV0ZU9yaWdpbmFsSW50ZXJhY3Rpb25SZXNwb25zZSIsInBheWxvYWQiLCJndWlsZElkIiwiaW50ZXJhY3Rpb24iLCJndWlsZF9pZCIsInRyYW5zZm9ybWVycyIsInNub3dmbGFrZSIsInVzZXIiLCJtZW1iZXIiLCJPYmplY3QiLCJjcmVhdGUiLCJwcm9wcyIsImRlc2lyZWRQcm9wZXJ0aWVzIiwiYXBwbGljYXRpb25JZCIsImFwcGxpY2F0aW9uX2lkIiwidmVyc2lvbiIsImxvY2FsZSIsImd1aWxkTG9jYWxlIiwiZ3VpbGRfbG9jYWxlIiwiZ3VpbGQiLCJzaGFyZElkIiwiYXBwUGVybWlzc2lvbnMiLCJhcHBfcGVybWlzc2lvbnMiLCJtZXNzYWdlIiwiY2hhbm5lbCIsImNoYW5uZWxJZCIsImNoYW5uZWxfaWQiLCJlbnRpdGxlbWVudHMiLCJtYXAiLCJlIiwiZW50aXRsZW1lbnQiLCJhdXRob3JpemluZ0ludGVncmF0aW9uT3duZXJzIiwiYXV0aG9yaXppbmdfaW50ZWdyYXRpb25fb3duZXJzIiwiRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlIiwiR3VpbGRJbnN0YWxsIiwiVXNlckluc3RhbGwiLCJjb250ZXh0IiwiYXR0YWNobWVudFNpemVMaW1pdCIsImF0dGFjaG1lbnRfc2l6ZV9saW1pdCIsImNvbXBvbmVudFR5cGUiLCJjb21wb25lbnRfdHlwZSIsImN1c3RvbUlkIiwiY3VzdG9tX2lkIiwiY29tcG9uZW50cyIsImNvbXBvbmVudCIsInZhbHVlcyIsIm5hbWUiLCJyZXNvbHZlZCIsImludGVyYWN0aW9uRGF0YVJlc29sdmVkIiwib3B0IiwiaW50ZXJhY3Rpb25EYXRhT3B0aW9ucyIsInRhcmdldElkIiwidGFyZ2V0X2lkIiwiY3VzdG9taXplcnMiLCJvcHRpb24iLCJ2YWx1ZSIsImZvY3VzZWQiLCJ0cmFuc2Zvcm1lZCIsIm1lc3NhZ2VzIiwiQ29sbGVjdGlvbiIsImVudHJpZXMiLCJfaWQiLCJ1c2VycyIsIm1lbWJlcnMiLCJyb2xlcyIsInJvbGUiLCJjaGFubmVscyIsImF0dGFjaG1lbnRzIiwia2V5IiwiYXR0YWNobWVudCIsImludGVyYWN0aW9uQ2FsbGJhY2tSZXNwb25zZSIsImludGVyYWN0aW9uQ2FsbGJhY2siLCJyZXNvdXJjZSIsImludGVyYWN0aW9uUmVzb3VyY2UiLCJjYWxsYmFjayIsImFjdGl2aXR5SW5zdGFuY2VJZCIsImFjdGl2aXR5X2luc3RhbmNlX2lkIiwicmVzcG9uc2VNZXNzYWdlSWQiLCJyZXNwb25zZV9tZXNzYWdlX2lkIiwicmVzcG9uc2VNZXNzYWdlRXBoZW1lcmFsIiwicmVzcG9uc2VfbWVzc2FnZV9lcGhlbWVyYWwiLCJyZXNwb25zZU1lc3NhZ2VMb2FkaW5nIiwicmVzcG9uc2VfbWVzc2FnZV9sb2FkaW5nIiwiYWN0aXZpdHlJbnN0YW5jZSIsImFjdGl2aXR5X2luc3RhbmNlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztJQTRCYUEsZUFBZTtlQUFmQTs7SUF1RkdDLG9CQUFvQjtlQUFwQkE7O0lBc0tBQyw0QkFBNEI7ZUFBNUJBOztJQWxCQUMsb0NBQW9DO2VBQXBDQTs7SUEzRUFDLDhCQUE4QjtlQUE5QkE7O0lBWUFDLGdDQUFnQztlQUFoQ0E7O0lBa0dBQyw0QkFBNEI7ZUFBNUJBOzs7dUJBL1JUO3VCQUNvQjtBQWdCcEIsTUFBTU4sa0JBQWdGO0lBQzNGLDJFQUEyRTtJQUMzRSxHQUFJTyxTQUFTO0lBRWIsTUFBTUMsU0FBUUMsUUFBUSxFQUFFQyxPQUFPO1FBQzdCLElBQUlDLE9BQU9DLCtCQUF3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
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: all[name]
9
+ });
10
+ }
11
+ _export(exports, {
12
+ transformLobby: function() {
13
+ return transformLobby;
14
+ },
15
+ transformLobbyMember: function() {
16
+ return transformLobbyMember;
17
+ }
18
+ });
19
+ const _index = require("../index.cjs");
20
+ function transformLobby(bot, payload) {
21
+ const props = bot.transformers.desiredProperties.lobby;
22
+ const lobby = {};
23
+ if (props.id && payload.id) lobby.id = bot.transformers.snowflake(payload.id);
24
+ if (props.applicationId && payload.application_id) lobby.applicationId = bot.transformers.snowflake(payload.application_id);
25
+ if (props.metadata && payload.metadata) lobby.metadata = payload.metadata;
26
+ if (props.members && payload.members) lobby.members = payload.members.map((member)=>bot.transformers.lobbyMember(bot, member));
27
+ if (props.linkedChannel && payload.linked_channel) lobby.linkedChannel = bot.transformers.channel(bot, {
28
+ channel: payload.linked_channel
29
+ });
30
+ return bot.transformers.customizers.lobby(bot, payload, lobby);
31
+ }
32
+ function transformLobbyMember(bot, payload) {
33
+ const props = bot.transformers.desiredProperties.lobbyMember;
34
+ const lobbyMember = {};
35
+ if (props.id && payload.id) lobbyMember.id = bot.transformers.snowflake(payload.id);
36
+ if (props.metadata && payload.metadata) lobbyMember.metadata = payload.metadata;
37
+ if (props.flags && payload.flags) lobbyMember.flags = new _index.ToggleBitfield(payload.flags);
38
+ return bot.transformers.customizers.lobbyMember(bot, payload, lobbyMember);
39
+ }
40
+
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvbG9iYnkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBEaXNjb3JkTG9iYnksIERpc2NvcmRMb2JieU1lbWJlciB9IGZyb20gJ0BkaXNjb3JkZW5vL3R5cGVzJ1xuaW1wb3J0IHsgdHlwZSBJbnRlcm5hbEJvdCwgdHlwZSBMb2JieSwgdHlwZSBMb2JieU1lbWJlciwgVG9nZ2xlQml0ZmllbGQgfSBmcm9tICcuLi9pbmRleC5qcydcblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybUxvYmJ5KGJvdDogSW50ZXJuYWxCb3QsIHBheWxvYWQ6IERpc2NvcmRMb2JieSk6IExvYmJ5IHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmxvYmJ5XG4gIGNvbnN0IGxvYmJ5ID0ge30gYXMgTG9iYnlcblxuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5pZCkgbG9iYnkuaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmlkKVxuICBpZiAocHJvcHMuYXBwbGljYXRpb25JZCAmJiBwYXlsb2FkLmFwcGxpY2F0aW9uX2lkKSBsb2JieS5hcHBsaWNhdGlvbklkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5hcHBsaWNhdGlvbl9pZClcbiAgaWYgKHByb3BzLm1ldGFkYXRhICYmIHBheWxvYWQubWV0YWRhdGEpIGxvYmJ5Lm1ldGFkYXRhID0gcGF5bG9hZC5tZXRhZGF0YVxuICBpZiAocHJvcHMubWVtYmVycyAmJiBwYXlsb2FkLm1lbWJlcnMpIGxvYmJ5Lm1lbWJlcnMgPSBwYXlsb2FkLm1lbWJlcnMubWFwKChtZW1iZXIpID0+IGJvdC50cmFuc2Zvcm1lcnMubG9iYnlNZW1iZXIoYm90LCBtZW1iZXIpKVxuICBpZiAocHJvcHMubGlua2VkQ2hhbm5lbCAmJiBwYXlsb2FkLmxpbmtlZF9jaGFubmVsKSBsb2JieS5saW5rZWRDaGFubmVsID0gYm90LnRyYW5zZm9ybWVycy5jaGFubmVsKGJvdCwgeyBjaGFubmVsOiBwYXlsb2FkLmxpbmtlZF9jaGFubmVsIH0pXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMubG9iYnkoYm90LCBwYXlsb2FkLCBsb2JieSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybUxvYmJ5TWVtYmVyKGJvdDogSW50ZXJuYWxCb3QsIHBheWxvYWQ6IERpc2NvcmRMb2JieU1lbWJlcik6IExvYmJ5TWVtYmVyIHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmxvYmJ5TWVtYmVyXG4gIGNvbnN0IGxvYmJ5TWVtYmVyID0ge30gYXMgTG9iYnlNZW1iZXJcblxuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5pZCkgbG9iYnlNZW1iZXIuaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmlkKVxuICBpZiAocHJvcHMubWV0YWRhdGEgJiYgcGF5bG9hZC5tZXRhZGF0YSkgbG9iYnlNZW1iZXIubWV0YWRhdGEgPSBwYXlsb2FkLm1ldGFkYXRhXG4gIGlmIChwcm9wcy5mbGFncyAmJiBwYXlsb2FkLmZsYWdzKSBsb2JieU1lbWJlci5mbGFncyA9IG5ldyBUb2dnbGVCaXRmaWVsZChwYXlsb2FkLmZsYWdzKVxuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLmxvYmJ5TWVtYmVyKGJvdCwgcGF5bG9hZCwgbG9iYnlNZW1iZXIpXG59XG4iXSwibmFtZXMiOlsidHJhbnNmb3JtTG9iYnkiLCJ0cmFuc2Zvcm1Mb2JieU1lbWJlciIsImJvdCIsInBheWxvYWQiLCJwcm9wcyIsInRyYW5zZm9ybWVycyIsImRlc2lyZWRQcm9wZXJ0aWVzIiwibG9iYnkiLCJpZCIsInNub3dmbGFrZSIsImFwcGxpY2F0aW9uSWQiLCJhcHBsaWNhdGlvbl9pZCIsIm1ldGFkYXRhIiwibWVtYmVycyIsIm1hcCIsIm1lbWJlciIsImxvYmJ5TWVtYmVyIiwibGlua2VkQ2hhbm5lbCIsImxpbmtlZF9jaGFubmVsIiwiY2hhbm5lbCIsImN1c3RvbWl6ZXJzIiwiZmxhZ3MiLCJUb2dnbGVCaXRmaWVsZCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7SUFHZ0JBLGNBQWM7ZUFBZEE7O0lBYUFDLG9CQUFvQjtlQUFwQkE7Ozt1QkFmK0Q7QUFFeEUsU0FBU0QsZUFBZUUsR0FBZ0IsRUFBRUMsT0FBcUI7SUFDcEUsTUFBTUMsUUFBUUYsSUFBSUcsWUFBWSxDQUFDQyxpQkFBaUIsQ0FBQ0MsS0FBSztJQUN0RCxNQUFNQSxRQUFRLENBQUM7SUFFZixJQUFJSCxNQUFNSSxFQUFFLElBQUlMLFFBQVFLLEVBQUUsRUFBRUQsTUFBTUMsRUFBRSxHQUFHTixJQUFJRyxZQUFZLENBQUNJLFNBQVMsQ0FBQ04sUUFBUUssRUFBRTtJQUM1RSxJQUFJSixNQUFNTSxhQUFhLElBQUlQLFFBQVFRLGNBQWMsRUFBRUosTUFBTUcsYUFBYSxHQUFHUixJQUFJRyxZQUFZLENBQUNJLFNBQVMsQ0FBQ04sUUFBUVEsY0FBYztJQUMxSCxJQUFJUCxNQUFNUSxRQUFRLElBQUlULFFBQVFTLFFBQVEsRUFBRUwsTUFBTUssUUFBUSxHQUFHVCxRQUFRUyxRQUFRO0lBQ3pFLElBQUlSLE1BQU1TLE9BQU8sSUFBSVYsUUFBUVUsT0FBTyxFQUFFTixNQUFNTSxPQUFPLEdBQUdWLFFBQVFVLE9BQU8sQ0FBQ0MsR0FBRyxDQUFDLENBQUNDLFNBQVdiLElBQUlHLFlBQVksQ0FBQ1csV0FBVyxDQUFDZCxLQUFLYTtJQUN4SCxJQUFJWCxNQUFNYSxhQUFhLElBQUlkLFFBQVFlLGNBQWMsRUFBRVgsTUFBTVUsYUFBYSxHQUFHZixJQUFJRyxZQUFZLENBQUNjLE9BQU8sQ0FBQ2pCLEtBQUs7UUFBRWlCLFNBQVNoQixRQUFRZSxjQUFjO0lBQUM7SUFFekksT0FBT2hCLElBQUlHLFlBQVksQ0FBQ2UsV0FBVyxDQUFDYixLQUFLLENBQUNMLEtBQUtDLFNBQVNJO0FBQzFEO0FBRU8sU0FBU04scUJBQXFCQyxHQUFnQixFQUFFQyxPQUEyQjtJQUNoRixNQUFNQyxRQUFRRixJQUFJRyxZQUFZLENBQUNDLGlCQUFpQixDQUFDVSxXQUFXO0lBQzVELE1BQU1BLGNBQWMsQ0FBQztJQUVyQixJQUFJWixNQUFNSSxFQUFFLElBQUlMLFFBQVFLLEVBQUUsRUFBRVEsWUFBWVIsRUFBRSxHQUFHTixJQUFJRyxZQUFZLENBQUNJLFNBQVMsQ0FBQ04sUUFBUUssRUFBRTtJQUNsRixJQUFJSixNQUFNUSxRQUFRLElBQUlULFFBQVFTLFFBQVEsRUFBRUksWUFBWUosUUFBUSxHQUFHVCxRQUFRUyxRQUFRO0lBQy9FLElBQUlSLE1BQU1pQixLQUFLLElBQUlsQixRQUFRa0IsS0FBSyxFQUFFTCxZQUFZSyxLQUFLLEdBQUcsSUFBSUMscUJBQWMsQ0FBQ25CLFFBQVFrQixLQUFLO0lBRXRGLE9BQU9uQixJQUFJRyxZQUFZLENBQUNlLFdBQVcsQ0FBQ0osV0FBVyxDQUFDZCxLQUFLQyxTQUFTYTtBQUNoRSJ9
@@ -2,10 +2,21 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
- Object.defineProperty(exports, "transformComponentToDiscordComponent", {
6
- enumerable: true,
7
- get: function() {
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: all[name]
9
+ });
10
+ }
11
+ _export(exports, {
12
+ transformComponentToDiscordComponent: function() {
8
13
  return transformComponentToDiscordComponent;
14
+ },
15
+ transformMediaGalleryItemToDiscordMediaGalleryItem: function() {
16
+ return transformMediaGalleryItemToDiscordMediaGalleryItem;
17
+ },
18
+ transformUnfurledMediaItemToDiscordUnfurledMediaItem: function() {
19
+ return transformUnfurledMediaItemToDiscordUnfurledMediaItem;
9
20
  }
10
21
  });
11
22
  const _types = require("@discordeno/types");
@@ -16,27 +27,69 @@ function transformComponentToDiscordComponent(bot, payload) {
16
27
  return transformActionRow(bot, payload);
17
28
  case _types.MessageComponentTypes.Button:
18
29
  return transformButtonComponent(bot, payload);
19
- case _types.MessageComponentTypes.InputText:
30
+ case _types.MessageComponentTypes.Container:
31
+ return transformContainerComponent(bot, payload);
32
+ case _types.MessageComponentTypes.TextInput:
20
33
  return transformInputTextComponent(bot, payload);
21
- case _types.MessageComponentTypes.SelectMenu:
22
- case _types.MessageComponentTypes.SelectMenuChannels:
23
- case _types.MessageComponentTypes.SelectMenuRoles:
24
- case _types.MessageComponentTypes.SelectMenuUsers:
25
- case _types.MessageComponentTypes.SelectMenuUsersAndRoles:
34
+ case _types.MessageComponentTypes.StringSelect:
35
+ case _types.MessageComponentTypes.ChannelSelect:
36
+ case _types.MessageComponentTypes.RoleSelect:
37
+ case _types.MessageComponentTypes.UserSelect:
38
+ case _types.MessageComponentTypes.MentionableSelect:
26
39
  return transformSelectMenuComponent(bot, payload);
40
+ case _types.MessageComponentTypes.Section:
41
+ return transformSectionComponent(bot, payload);
42
+ case _types.MessageComponentTypes.File:
43
+ return transformFileComponent(bot, payload);
44
+ case _types.MessageComponentTypes.MediaGallery:
45
+ return transformMediaGalleryComponent(bot, payload);
46
+ case _types.MessageComponentTypes.Thumbnail:
47
+ return transformThumbnailComponent(bot, payload);
48
+ case _types.MessageComponentTypes.Separator:
49
+ case _types.MessageComponentTypes.TextDisplay:
50
+ // As of now they are compatible
51
+ return payload;
27
52
  }
28
53
  }
54
+ function transformUnfurledMediaItemToDiscordUnfurledMediaItem(bot, payload) {
55
+ return {
56
+ url: payload.url,
57
+ proxy_url: payload.proxyUrl,
58
+ height: payload.height,
59
+ width: payload.width,
60
+ content_type: payload.contentType,
61
+ attachment_id: payload.attachmentId ? bot.transformers.reverse.snowflake(payload.attachmentId) : undefined
62
+ };
63
+ }
64
+ function transformMediaGalleryItemToDiscordMediaGalleryItem(bot, payload) {
65
+ return {
66
+ media: bot.transformers.reverse.unfurledMediaItem(bot, payload.media),
67
+ description: payload.description,
68
+ spoiler: payload.spoiler
69
+ };
70
+ }
29
71
  function transformActionRow(bot, payload) {
30
72
  return {
31
73
  type: _types.MessageComponentTypes.ActionRow,
74
+ id: payload.id,
32
75
  // The actionRow.components type is kinda annoying, so we need a cast for this
33
76
  components: payload.components?.map((component)=>bot.transformers.reverse.component(bot, component)) ?? []
34
77
  };
35
78
  }
79
+ function transformContainerComponent(bot, payload) {
80
+ return {
81
+ type: _types.MessageComponentTypes.Container,
82
+ id: payload.id,
83
+ accent_color: payload.accentColor,
84
+ spoiler: payload.spoiler,
85
+ components: payload.components?.map((component)=>bot.transformers.reverse.component(bot, component)) ?? []
86
+ };
87
+ }
36
88
  function transformButtonComponent(bot, payload) {
37
89
  // Since Component is a merge of all components, some casts are necessary
38
90
  return {
39
91
  type: _types.MessageComponentTypes.Button,
92
+ id: payload.id,
40
93
  style: payload.style,
41
94
  custom_id: payload.customId,
42
95
  disabled: payload.disabled,
@@ -53,7 +106,8 @@ function transformButtonComponent(bot, payload) {
53
106
  function transformInputTextComponent(_bot, payload) {
54
107
  // Since Component is a merge of all components, some casts are necessary
55
108
  return {
56
- type: _types.MessageComponentTypes.InputText,
109
+ type: _types.MessageComponentTypes.TextInput,
110
+ id: payload.id,
57
111
  style: payload.style,
58
112
  custom_id: payload.customId,
59
113
  label: payload.label,
@@ -67,6 +121,7 @@ function transformInputTextComponent(_bot, payload) {
67
121
  function transformSelectMenuComponent(bot, payload) {
68
122
  return {
69
123
  type: payload.type,
124
+ id: payload.id,
70
125
  custom_id: payload.customId,
71
126
  channel_types: payload.channelTypes,
72
127
  default_values: payload.defaultValues?.map((defaultValue)=>({
@@ -90,5 +145,39 @@ function transformSelectMenuComponent(bot, payload) {
90
145
  placeholder: payload.placeholder
91
146
  };
92
147
  }
148
+ function transformSectionComponent(bot, payload) {
149
+ return {
150
+ type: _types.MessageComponentTypes.Section,
151
+ id: payload.id,
152
+ components: payload.components?.map((component)=>bot.transformers.reverse.component(bot, component)),
153
+ accessory: payload.accessory ? bot.transformers.reverse.component(bot, payload.accessory) : undefined
154
+ };
155
+ }
156
+ function transformFileComponent(bot, payload) {
157
+ return {
158
+ type: _types.MessageComponentTypes.File,
159
+ id: payload.id,
160
+ file: bot.transformers.reverse.unfurledMediaItem(bot, payload.file),
161
+ spoiler: payload.spoiler,
162
+ name: payload.name,
163
+ size: payload.size
164
+ };
165
+ }
166
+ function transformMediaGalleryComponent(bot, payload) {
167
+ return {
168
+ type: _types.MessageComponentTypes.MediaGallery,
169
+ id: payload.id,
170
+ items: payload.items?.map((item)=>bot.transformers.reverse.mediaGalleryItem(bot, item)) ?? []
171
+ };
172
+ }
173
+ function transformThumbnailComponent(bot, payload) {
174
+ return {
175
+ type: _types.MessageComponentTypes.Thumbnail,
176
+ id: payload.id,
177
+ media: bot.transformers.reverse.unfurledMediaItem(bot, payload.media),
178
+ description: payload.description,
179
+ spoiler: payload.spoiler
180
+ };
181
+ }
93
182
 
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvcmV2ZXJzZS9jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBEaXNjb3JkQnV0dG9uQ29tcG9uZW50LCB0eXBlIERpc2NvcmRNZXNzYWdlQ29tcG9uZW50LCBNZXNzYWdlQ29tcG9uZW50VHlwZXMsIHR5cGUgVGV4dFN0eWxlcyB9IGZyb20gJ0BkaXNjb3JkZW5vL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBCb3QsIEJ1dHRvblN0eWxlcywgQ29tcG9uZW50LCBEaXNjb3JkQWN0aW9uUm93LCBEaXNjb3JkSW5wdXRUZXh0Q29tcG9uZW50LCBEaXNjb3JkU2VsZWN0TWVudUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2luZGV4LmpzJ1xuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtQ29tcG9uZW50VG9EaXNjb3JkQ29tcG9uZW50KGJvdDogQm90LCBwYXlsb2FkOiBDb21wb25lbnQpOiBEaXNjb3JkTWVzc2FnZUNvbXBvbmVudCB7XG4gIC8vIFRoaXMgc3dpdGNoIHNob3VsZCBpbmNsdWRlIGFsbCBjYXNlc1xuICBzd2l0Y2ggKHBheWxvYWQudHlwZSkge1xuICAgIGNhc2UgTWVzc2FnZUNvbXBvbmVudFR5cGVzLkFjdGlvblJvdzpcbiAgICAgIHJldHVybiB0cmFuc2Zvcm1BY3Rpb25Sb3coYm90LCBwYXlsb2FkKVxuICAgIGNhc2UgTWVzc2FnZUNvbXBvbmVudFR5cGVzLkJ1dHRvbjpcbiAgICAgIHJldHVybiB0cmFuc2Zvcm1CdXR0b25Db21wb25lbnQoYm90LCBwYXlsb2FkKVxuICAgIGNhc2UgTWVzc2FnZUNvbXBvbmVudFR5cGVzLklucHV0VGV4dDpcbiAgICAgIHJldHVybiB0cmFuc2Zvcm1JbnB1dFRleHRDb21wb25lbnQoYm90LCBwYXlsb2FkKVxuICAgIGNhc2UgTWVzc2FnZUNvbXBvbmVudFR5cGVzLlNlbGVjdE1lbnU6XG4gICAgY2FzZSBNZXNzYWdlQ29tcG9uZW50VHlwZXMuU2VsZWN0TWVudUNoYW5uZWxzOlxuICAgIGNhc2UgTWVzc2FnZUNvbXBvbmVudFR5cGVzLlNlbGVjdE1lbnVSb2xlczpcbiAgICBjYXNlIE1lc3NhZ2VDb21wb25lbnRUeXBlcy5TZWxlY3RNZW51VXNlcnM6XG4gICAgY2FzZSBNZXNzYWdlQ29tcG9uZW50VHlwZXMuU2VsZWN0TWVudVVzZXJzQW5kUm9sZXM6XG4gICAgICByZXR1cm4gdHJhbnNmb3JtU2VsZWN0TWVudUNvbXBvbmVudChib3QsIHBheWxvYWQpXG4gIH1cbn1cblxuZnVuY3Rpb24gdHJhbnNmb3JtQWN0aW9uUm93KGJvdDogQm90LCBwYXlsb2FkOiBDb21wb25lbnQpOiBEaXNjb3JkQWN0aW9uUm93IHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBNZXNzYWdlQ29tcG9uZW50VHlwZXMuQWN0aW9uUm93LFxuICAgIC8vIFRoZSBhY3Rpb25Sb3cuY29tcG9uZW50cyB0eXBlIGlzIGtpbmRhIGFubm95aW5nLCBzbyB3ZSBuZWVkIGEgY2FzdCBmb3IgdGhpc1xuICAgIGNvbXBvbmVudHM6IChwYXlsb2FkLmNvbXBvbmVudHM/Lm1hcCgoY29tcG9uZW50KSA9PiBib3QudHJhbnNmb3JtZXJzLnJldmVyc2UuY29tcG9uZW50KGJvdCwgY29tcG9uZW50KSkgPz8gW10pIGFzIERpc2NvcmRBY3Rpb25Sb3dbJ2NvbXBvbmVudHMnXSxcbiAgfVxufVxuXG5mdW5jdGlvbiB0cmFuc2Zvcm1CdXR0b25Db21wb25lbnQoYm90OiBCb3QsIHBheWxvYWQ6IENvbXBvbmVudCk6IERpc2NvcmRCdXR0b25Db21wb25lbnQge1xuICAvLyBTaW5jZSBDb21wb25lbnQgaXMgYSBtZXJnZSBvZiBhbGwgY29tcG9uZW50cywgc29tZSBjYXN0cyBhcmUgbmVjZXNzYXJ5XG4gIHJldHVybiB7XG4gICAgdHlwZTogTWVzc2FnZUNvbXBvbmVudFR5cGVzLkJ1dHRvbixcbiAgICBzdHlsZTogcGF5bG9hZC5zdHlsZSBhcyBCdXR0b25TdHlsZXMsXG4gICAgY3VzdG9tX2lkOiBwYXlsb2FkLmN1c3RvbUlkLFxuICAgIGRpc2FibGVkOiBwYXlsb2FkLmRpc2FibGVkLFxuICAgIGVtb2ppOiBwYXlsb2FkLmVtb2ppXG4gICAgICA/IHtcbiAgICAgICAgICBpZDogcGF5bG9hZC5lbW9qaS5pZCA/IGJvdC50cmFuc2Zvcm1lcnMucmV2ZXJzZS5zbm93Zmxha2UocGF5bG9hZC5lbW9qaS5pZCkgOiB1bmRlZmluZWQsXG4gICAgICAgICAgbmFtZTogcGF5bG9hZC5lbW9qaS5uYW1lLFxuICAgICAgICAgIGFuaW1hdGVkOiBwYXlsb2FkLmVtb2ppLmFuaW1hdGVkLFxuICAgICAgICB9XG4gICAgICA6IHVuZGVmaW5lZCxcbiAgICBsYWJlbDogcGF5bG9hZC5sYWJlbCxcbiAgICB1cmw6IHBheWxvYWQudXJsLFxuICAgIHNrdV9pZDogcGF5bG9hZC5za3VJZCA/IGJvdC50cmFuc2Zvcm1lcnMucmV2ZXJzZS5zbm93Zmxha2UocGF5bG9hZC5za3VJZCkgOiB1bmRlZmluZWQsXG4gIH1cbn1cblxuZnVuY3Rpb24gdHJhbnNmb3JtSW5wdXRUZXh0Q29tcG9uZW50KF9ib3Q6IEJvdCwgcGF5bG9hZDogQ29tcG9uZW50KTogRGlzY29yZElucHV0VGV4dENvbXBvbmVudCB7XG4gIC8vIFNpbmNlIENvbXBvbmVudCBpcyBhIG1lcmdlIG9mIGFsbCBjb21wb25lbnRzLCBzb21lIGNhc3RzIGFyZSBuZWNlc3NhcnlcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBNZXNzYWdlQ29tcG9uZW50VHlwZXMuSW5wdXRUZXh0LFxuICAgIHN0eWxlOiBwYXlsb2FkLnN0eWxlIGFzIFRleHRTdHlsZXMsXG4gICAgY3VzdG9tX2lkOiBwYXlsb2FkLmN1c3RvbUlkISxcbiAgICBsYWJlbDogcGF5bG9hZC5sYWJlbCEsXG4gICAgdmFsdWU6IHBheWxvYWQudmFsdWUsXG4gICAgbWF4X2xlbmd0aDogcGF5bG9hZC5tYXhMZW5ndGgsXG4gICAgbWluX2xlbmd0aDogcGF5bG9hZC5taW5MZW5ndGgsXG4gICAgcGxhY2Vob2xkZXI6IHBheWxvYWQucGxhY2Vob2xkZXIsXG4gICAgcmVxdWlyZWQ6IHBheWxvYWQucmVxdWlyZWQsXG4gIH1cbn1cblxuZnVuY3Rpb24gdHJhbnNmb3JtU2VsZWN0TWVudUNvbXBvbmVudChib3Q6IEJvdCwgcGF5bG9hZDogQ29tcG9uZW50KTogRGlzY29yZFNlbGVjdE1lbnVDb21wb25lbnQge1xuICByZXR1cm4ge1xuICAgIHR5cGU6IHBheWxvYWQudHlwZSBhcyBEaXNjb3JkU2VsZWN0TWVudUNvbXBvbmVudFsndHlwZSddLFxuICAgIGN1c3RvbV9pZDogcGF5bG9hZC5jdXN0b21JZCEsXG4gICAgY2hhbm5lbF90eXBlczogcGF5bG9hZC5jaGFubmVsVHlwZXMsXG4gICAgZGVmYXVsdF92YWx1ZXM6IHBheWxvYWQuZGVmYXVsdFZhbHVlcz8ubWFwKChkZWZhdWx0VmFsdWUpID0+ICh7XG4gICAgICBpZDogYm90LnRyYW5zZm9ybWVycy5yZXZlcnNlLnNub3dmbGFrZShkZWZhdWx0VmFsdWUuaWQpLFxuICAgICAgdHlwZTogZGVmYXVsdFZhbHVlLnR5cGUsXG4gICAgfSkpLFxuICAgIGRpc2FibGVkOiBwYXlsb2FkLmRpc2FibGVkLFxuICAgIG1heF92YWx1ZXM6IHBheWxvYWQubWF4VmFsdWVzLFxuICAgIG1pbl92YWx1ZXM6IHBheWxvYWQubWluVmFsdWVzLFxuICAgIG9wdGlvbnM6IHBheWxvYWQub3B0aW9ucz8ubWFwKChvcHRpb24pID0+ICh7XG4gICAgICBsYWJlbDogb3B0aW9uLmxhYmVsLFxuICAgICAgdmFsdWU6IG9wdGlvbi52YWx1ZSxcbiAgICAgIGRlc2NyaXB0aW9uOiBvcHRpb24uZGVzY3JpcHRpb24sXG4gICAgICBlbW9qaTogb3B0aW9uLmVtb2ppXG4gICAgICAgID8ge1xuICAgICAgICAgICAgaWQ6IG9wdGlvbi5lbW9qaS5pZCA/IGJvdC50cmFuc2Zvcm1lcnMucmV2ZXJzZS5zbm93Zmxha2Uob3B0aW9uLmVtb2ppLmlkKSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIG5hbWU6IG9wdGlvbi5lbW9qaS5uYW1lLFxuICAgICAgICAgICAgYW5pbWF0ZWQ6IG9wdGlvbi5lbW9qaS5hbmltYXRlZCxcbiAgICAgICAgICB9XG4gICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgZGVmYXVsdDogb3B0aW9uLmRlZmF1bHQsXG4gICAgfSkpLFxuICAgIHBsYWNlaG9sZGVyOiBwYXlsb2FkLnBsYWNlaG9sZGVyLFxuICB9XG59XG4iXSwibmFtZXMiOlsidHJhbnNmb3JtQ29tcG9uZW50VG9EaXNjb3JkQ29tcG9uZW50IiwiYm90IiwicGF5bG9hZCIsInR5cGUiLCJNZXNzYWdlQ29tcG9uZW50VHlwZXMiLCJBY3Rpb25Sb3ciLCJ0cmFuc2Zvcm1BY3Rpb25Sb3ciLCJCdXR0b24iLCJ0cmFuc2Zvcm1CdXR0b25Db21wb25lbnQiLCJJbnB1dFRleHQiLCJ0cmFuc2Zvcm1JbnB1dFRleHRDb21wb25lbnQiLCJTZWxlY3RNZW51IiwiU2VsZWN0TWVudUNoYW5uZWxzIiwiU2VsZWN0TWVudVJvbGVzIiwiU2VsZWN0TWVudVVzZXJzIiwiU2VsZWN0TWVudVVzZXJzQW5kUm9sZXMiLCJ0cmFuc2Zvcm1TZWxlY3RNZW51Q29tcG9uZW50IiwiY29tcG9uZW50cyIsIm1hcCIsImNvbXBvbmVudCIsInRyYW5zZm9ybWVycyIsInJldmVyc2UiLCJzdHlsZSIsImN1c3RvbV9pZCIsImN1c3RvbUlkIiwiZGlzYWJsZWQiLCJlbW9qaSIsImlkIiwic25vd2ZsYWtlIiwidW5kZWZpbmVkIiwibmFtZSIsImFuaW1hdGVkIiwibGFiZWwiLCJ1cmwiLCJza3VfaWQiLCJza3VJZCIsIl9ib3QiLCJ2YWx1ZSIsIm1heF9sZW5ndGgiLCJtYXhMZW5ndGgiLCJtaW5fbGVuZ3RoIiwibWluTGVuZ3RoIiwicGxhY2Vob2xkZXIiLCJyZXF1aXJlZCIsImNoYW5uZWxfdHlwZXMiLCJjaGFubmVsVHlwZXMiLCJkZWZhdWx0X3ZhbHVlcyIsImRlZmF1bHRWYWx1ZXMiLCJkZWZhdWx0VmFsdWUiLCJtYXhfdmFsdWVzIiwibWF4VmFsdWVzIiwibWluX3ZhbHVlcyIsIm1pblZhbHVlcyIsIm9wdGlvbnMiLCJvcHRpb24iLCJkZXNjcmlwdGlvbiIsImRlZmF1bHQiXSwibWFwcGluZ3MiOiI7Ozs7K0JBR2dCQTs7O2VBQUFBOzs7dUJBSGtHO0FBRzNHLFNBQVNBLHFDQUFxQ0MsR0FBUSxFQUFFQyxPQUFrQjtJQUMvRSx1Q0FBdUM7SUFDdkMsT0FBUUEsUUFBUUMsSUFBSTtRQUNsQixLQUFLQyw0QkFBcUIsQ0FBQ0MsU0FBUztZQUNsQyxPQUFPQyxtQkFBbUJMLEtBQUtDO1FBQ2pDLEtBQUtFLDRCQUFxQixDQUFDRyxNQUFNO1lBQy9CLE9BQU9DLHlCQUF5QlAsS0FBS0M7UUFDdkMsS0FBS0UsNEJBQXFCLENBQUNLLFNBQVM7WUFDbEMsT0FBT0MsNEJBQTRCVCxLQUFLQztRQUMxQyxLQUFLRSw0QkFBcUIsQ0FBQ08sVUFBVTtRQUNyQyxLQUFLUCw0QkFBcUIsQ0FBQ1Esa0JBQWtCO1FBQzdDLEtBQUtSLDRCQUFxQixDQUFDUyxlQUFlO1FBQzFDLEtBQUtULDRCQUFxQixDQUFDVSxlQUFlO1FBQzFDLEtBQUtWLDRCQUFxQixDQUFDVyx1QkFBdUI7WUFDaEQsT0FBT0MsNkJBQTZCZixLQUFLQztJQUM3QztBQUNGO0FBRUEsU0FBU0ksbUJBQW1CTCxHQUFRLEVBQUVDLE9BQWtCO0lBQ3RELE9BQU87UUFDTEMsTUFBTUMsNEJBQXFCLENBQUNDLFNBQVM7UUFDckMsOEVBQThFO1FBQzlFWSxZQUFhZixRQUFRZSxVQUFVLEVBQUVDLElBQUksQ0FBQ0MsWUFBY2xCLElBQUltQixZQUFZLENBQUNDLE9BQU8sQ0FBQ0YsU0FBUyxDQUFDbEIsS0FBS2tCLGVBQWUsRUFBRTtJQUMvRztBQUNGO0FBRUEsU0FBU1gseUJBQXlCUCxHQUFRLEVBQUVDLE9BQWtCO0lBQzVELHlFQUF5RTtJQUN6RSxPQUFPO1FBQ0xDLE1BQU1DLDRCQUFxQixDQUFDRyxNQUFNO1FBQ2xDZSxPQUFPcEIsUUFBUW9CLEtBQUs7UUFDcEJDLFdBQVdy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
183
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvcmV2ZXJzZS9jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBEaXNjb3JkQnV0dG9uQ29tcG9uZW50LCB0eXBlIERpc2NvcmRNZXNzYWdlQ29tcG9uZW50LCBNZXNzYWdlQ29tcG9uZW50VHlwZXMsIHR5cGUgVGV4dFN0eWxlcyB9IGZyb20gJ0BkaXNjb3JkZW5vL3R5cGVzJ1xuaW1wb3J0IHR5cGUge1xuICBCb3QsXG4gIEJ1dHRvblN0eWxlcyxcbiAgQ29tcG9uZW50LFxuICBEaXNjb3JkQWN0aW9uUm93LFxuICBEaXNjb3JkQ29udGFpbmVyQ29tcG9uZW50LFxuICBEaXNjb3JkRmlsZUNvbXBvbmVudCxcbiAgRGlzY29yZE1lZGlhR2FsbGVyeUNvbXBvbmVudCxcbiAgRGlzY29yZE1lZGlhR2FsbGVyeUl0ZW0sXG4gIERpc2NvcmRTZWN0aW9uQ29tcG9uZW50LFxuICBEaXNjb3JkU2VsZWN0TWVudUNvbXBvbmVudCxcbiAgRGlzY29yZFRleHREaXNwbGF5Q29tcG9uZW50LFxuICBEaXNjb3JkVGV4dElucHV0Q29tcG9uZW50LFxuICBEaXNjb3JkVGh1bWJuYWlsQ29tcG9uZW50LFxuICBEaXNjb3JkVW5mdXJsZWRNZWRpYUl0ZW0sXG4gIE1lZGlhR2FsbGVyeUl0ZW0sXG4gIFVuZnVybGVkTWVkaWFJdGVtLFxufSBmcm9tICcuLi8uLi9pbmRleC5qcydcblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybUNvbXBvbmVudFRvRGlzY29yZENvbXBvbmVudChib3Q6IEJvdCwgcGF5bG9hZDogQ29tcG9uZW50KTogRGlzY29yZE1lc3NhZ2VDb21wb25lbnQge1xuICAvLyBUaGlzIHN3aXRjaCBzaG91bGQgaW5jbHVkZSBhbGwgY2FzZXNcbiAgc3dpdGNoIChwYXlsb2FkLnR5cGUpIHtcbiAgICBjYXNlIE1lc3NhZ2VDb21wb25lbnRUeXBlcy5BY3Rpb25Sb3c6XG4gICAgICByZXR1cm4gdHJhbnNmb3JtQWN0aW9uUm93KGJvdCwgcGF5bG9hZClcbiAgICBjYXNlIE1lc3NhZ2VDb21wb25lbnRUeXBlcy5CdXR0b246XG4gICAgICByZXR1cm4gdHJhbnNmb3JtQnV0dG9uQ29tcG9uZW50KGJvdCwgcGF5bG9hZClcbiAgICBjYXNlIE1lc3NhZ2VDb21wb25lbnRUeXBlcy5Db250YWluZXI6XG4gICAgICByZXR1cm4gdHJhbnNmb3JtQ29udGFpbmVyQ29tcG9uZW50KGJvdCwgcGF5bG9hZClcbiAgICBjYXNlIE1lc3NhZ2VDb21wb25lbnRUeXBlcy5UZXh0SW5wdXQ6XG4gICAgICByZXR1cm4gdHJhbnNmb3JtSW5wdXRUZXh0Q29tcG9uZW50KGJvdCwgcGF5bG9hZClcbiAgICBjYXNlIE1lc3NhZ2VDb21wb25lbnRUeXBlcy5TdHJpbmdTZWxlY3Q6XG4gICAgY2FzZSBNZXNzYWdlQ29tcG9uZW50VHlwZXMuQ2hhbm5lbFNlbGVjdDpcbiAgICBjYXNlIE1lc3NhZ2VDb21wb25lbnRUeXBlcy5Sb2xlU2VsZWN0OlxuICAgIGNhc2UgTWVzc2FnZUNvbXBvbmVudFR5cGVzLlVzZXJTZWxlY3Q6XG4gICAgY2FzZSBNZXNzYWdlQ29tcG9uZW50VHlwZXMuTWVudGlvbmFibGVTZWxlY3Q6XG4gICAgICByZXR1cm4gdHJhbnNmb3JtU2VsZWN0TWVudUNvbXBvbmVudChib3QsIHBheWxvYWQpXG4gICAgY2FzZSBNZXNzYWdlQ29tcG9uZW50VHlwZXMuU2VjdGlvbjpcbiAgICAgIHJldHVybiB0cmFuc2Zvcm1TZWN0aW9uQ29tcG9uZW50KGJvdCwgcGF5bG9hZClcbiAgICBjYXNlIE1lc3NhZ2VDb21wb25lbnRUeXBlcy5GaWxlOlxuICAgICAgcmV0dXJuIHRyYW5zZm9ybUZpbGVDb21wb25lbnQoYm90LCBwYXlsb2FkKVxuICAgIGNhc2UgTWVzc2FnZUNvbXBvbmVudFR5cGVzLk1lZGlhR2FsbGVyeTpcbiAgICAgIHJldHVybiB0cmFuc2Zvcm1NZWRpYUdhbGxlcnlDb21wb25lbnQoYm90LCBwYXlsb2FkKVxuICAgIGNhc2UgTWVzc2FnZUNvbXBvbmVudFR5cGVzLlRodW1ibmFpbDpcbiAgICAgIHJldHVybiB0cmFuc2Zvcm1UaHVtYm5haWxDb21wb25lbnQoYm90LCBwYXlsb2FkKVxuICAgIGNhc2UgTWVzc2FnZUNvbXBvbmVudFR5cGVzLlNlcGFyYXRvcjpcbiAgICBjYXNlIE1lc3NhZ2VDb21wb25lbnRUeXBlcy5UZXh0RGlzcGxheTpcbiAgICAgIC8vIEFzIG9mIG5vdyB0aGV5IGFyZSBjb21wYXRpYmxlXG4gICAgICByZXR1cm4gcGF5bG9hZCBhcyBEaXNjb3JkTWVzc2FnZUNvbXBvbmVudFxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1VbmZ1cmxlZE1lZGlhSXRlbVRvRGlzY29yZFVuZnVybGVkTWVkaWFJdGVtKGJvdDogQm90LCBwYXlsb2FkOiBVbmZ1cmxlZE1lZGlhSXRlbSk6IERpc2NvcmRVbmZ1cmxlZE1lZGlhSXRlbSB7XG4gIHJldHVybiB7XG4gICAgdXJsOiBwYXlsb2FkLnVybCxcbiAgICBwcm94eV91cmw6IHBheWxvYWQucHJveHlVcmwsXG4gICAgaGVpZ2h0OiBwYXlsb2FkLmhlaWdodCxcbiAgICB3aWR0aDogcGF5bG9hZC53aWR0aCxcbiAgICBjb250ZW50X3R5cGU6IHBheWxvYWQuY29udGVudFR5cGUsXG4gICAgYXR0YWNobWVudF9pZDogcGF5bG9hZC5hdHRhY2htZW50SWQgPyBib3QudHJhbnNmb3JtZXJzLnJldmVyc2Uuc25vd2ZsYWtlKHBheWxvYWQuYXR0YWNobWVudElkKSA6IHVuZGVmaW5lZCxcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtTWVkaWFHYWxsZXJ5SXRlbVRvRGlzY29yZE1lZGlhR2FsbGVyeUl0ZW0oYm90OiBCb3QsIHBheWxvYWQ6IE1lZGlhR2FsbGVyeUl0ZW0pOiBEaXNjb3JkTWVkaWFHYWxsZXJ5SXRlbSB7XG4gIHJldHVybiB7XG4gICAgbWVkaWE6IGJvdC50cmFuc2Zvcm1lcnMucmV2ZXJzZS51bmZ1cmxlZE1lZGlhSXRlbShib3QsIHBheWxvYWQubWVkaWEpLFxuICAgIGRlc2NyaXB0aW9uOiBwYXlsb2FkLmRlc2NyaXB0aW9uLFxuICAgIHNwb2lsZXI6IHBheWxvYWQuc3BvaWxlcixcbiAgfVxufVxuXG5mdW5jdGlvbiB0cmFuc2Zvcm1BY3Rpb25Sb3coYm90OiBCb3QsIHBheWxvYWQ6IENvbXBvbmVudCk6IERpc2NvcmRBY3Rpb25Sb3cge1xuICByZXR1cm4ge1xuICAgIHR5cGU6IE1lc3NhZ2VDb21wb25lbnRUeXBlcy5BY3Rpb25Sb3csXG4gICAgaWQ6IHBheWxvYWQuaWQsXG4gICAgLy8gVGhlIGFjdGlvblJvdy5jb21wb25lbnRzIHR5cGUgaXMga2luZGEgYW5ub3lpbmcsIHNvIHdlIG5lZWQgYSBjYXN0IGZvciB0aGlzXG4gICAgY29tcG9uZW50czogKHBheWxvYWQuY29tcG9uZW50cz8ubWFwKChjb21wb25lbnQpID0+IGJvdC50cmFuc2Zvcm1lcnMucmV2ZXJzZS5jb21wb25lbnQoYm90LCBjb21wb25lbnQpKSA/PyBbXSkgYXMgRGlzY29yZEFjdGlvblJvd1snY29tcG9uZW50cyddLFxuICB9XG59XG5cbmZ1bmN0aW9uIHRyYW5zZm9ybUNvbnRhaW5lckNvbXBvbmVudChib3Q6IEJvdCwgcGF5bG9hZDogQ29tcG9uZW50KTogRGlzY29yZENvbnRhaW5lckNvbXBvbmVudCB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogTWVzc2FnZUNvbXBvbmVudFR5cGVzLkNvbnRhaW5lcixcbiAgICBpZDogcGF5bG9hZC5pZCxcbiAgICBhY2NlbnRfY29sb3I6IHBheWxvYWQuYWNjZW50Q29sb3IsXG4gICAgc3BvaWxlcjogcGF5bG9hZC5zcG9pbGVyLFxuICAgIGNvbXBvbmVudHM6IChwYXlsb2FkLmNvbXBvbmVudHM/Lm1hcCgoY29tcG9uZW50KSA9PiBib3QudHJhbnNmb3JtZXJzLnJldmVyc2UuY29tcG9uZW50KGJvdCwgY29tcG9uZW50KSkgPz9cbiAgICAgIFtdKSBhcyBEaXNjb3JkQ29udGFpbmVyQ29tcG9uZW50Wydjb21wb25lbnRzJ10sXG4gIH1cbn1cblxuZnVuY3Rpb24gdHJhbnNmb3JtQnV0dG9uQ29tcG9uZW50KGJvdDogQm90LCBwYXlsb2FkOiBDb21wb25lbnQpOiBEaXNjb3JkQnV0dG9uQ29tcG9uZW50IHtcbiAgLy8gU2luY2UgQ29tcG9uZW50IGlzIGEgbWVyZ2Ugb2YgYWxsIGNvbXBvbmVudHMsIHNvbWUgY2FzdHMgYXJlIG5lY2Vzc2FyeVxuICByZXR1cm4ge1xuICAgIHR5cGU6IE1lc3NhZ2VDb21wb25lbnRUeXBlcy5CdXR0b24sXG4gICAgaWQ6IHBheWxvYWQuaWQsXG4gICAgc3R5bGU6IHBheWxvYWQuc3R5bGUgYXMgQnV0dG9uU3R5bGVzLFxuICAgIGN1c3RvbV9pZDogcGF5bG9hZC5jdXN0b21JZCxcbiAgICBkaXNhYmxlZDogcGF5bG9hZC5kaXNhYmxlZCxcbiAgICBlbW9qaTogcGF5bG9hZC5lbW9qaVxuICAgICAgPyB7XG4gICAgICAgICAgaWQ6IHBheWxvYWQuZW1vamkuaWQgPyBib3QudHJhbnNmb3JtZXJzLnJldmVyc2Uuc25vd2ZsYWtlKHBheWxvYWQuZW1vamkuaWQpIDogdW5kZWZpbmVkLFxuICAgICAgICAgIG5hbWU6IHBheWxvYWQuZW1vamkubmFtZSxcbiAgICAgICAgICBhbmltYXRlZDogcGF5bG9hZC5lbW9qaS5hbmltYXRlZCxcbiAgICAgICAgfVxuICAgICAgOiB1bmRlZmluZWQsXG4gICAgbGFiZWw6IHBheWxvYWQubGFiZWwsXG4gICAgdXJsOiBwYXlsb2FkLnVybCxcbiAgICBza3VfaWQ6IHBheWxvYWQuc2t1SWQgPyBib3QudHJhbnNmb3JtZXJzLnJldmVyc2Uuc25vd2ZsYWtlKHBheWxvYWQuc2t1SWQpIDogdW5kZWZpbmVkLFxuICB9XG59XG5cbmZ1bmN0aW9uIHRyYW5zZm9ybUlucHV0VGV4dENvbXBvbmVudChfYm90OiBCb3QsIHBheWxvYWQ6IENvbXBvbmVudCk6IERpc2NvcmRUZXh0SW5wdXRDb21wb25lbnQge1xuICAvLyBTaW5jZSBDb21wb25lbnQgaXMgYSBtZXJnZSBvZiBhbGwgY29tcG9uZW50cywgc29tZSBjYXN0cyBhcmUgbmVjZXNzYXJ5XG4gIHJldHVybiB7XG4gICAgdHlwZTogTWVzc2FnZUNvbXBvbmVudFR5cGVzLlRleHRJbnB1dCxcbiAgICBpZDogcGF5bG9hZC5pZCxcbiAgICBzdHlsZTogcGF5bG9hZC5zdHlsZSBhcyBUZXh0U3R5bGVzLFxuICAgIGN1c3RvbV9pZDogcGF5bG9hZC5jdXN0b21JZCEsXG4gICAgbGFiZWw6IHBheWxvYWQubGFiZWwhLFxuICAgIHZhbHVlOiBwYXlsb2FkLnZhbHVlLFxuICAgIG1heF9sZW5ndGg6IHBheWxvYWQubWF4TGVuZ3RoLFxuICAgIG1pbl9sZW5ndGg6IHBheWxvYWQubWluTGVuZ3RoLFxuICAgIHBsYWNlaG9sZGVyOiBwYXlsb2FkLnBsYWNlaG9sZGVyLFxuICAgIHJlcXVpcmVkOiBwYXlsb2FkLnJlcXVpcmVkLFxuICB9XG59XG5cbmZ1bmN0aW9uIHRyYW5zZm9ybVNlbGVjdE1lbnVDb21wb25lbnQoYm90OiBCb3QsIHBheWxvYWQ6IENvbXBvbmVudCk6IERpc2NvcmRTZWxlY3RNZW51Q29tcG9uZW50IHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBwYXlsb2FkLnR5cGUgYXMgRGlzY29yZFNlbGVjdE1lbnVDb21wb25lbnRbJ3R5cGUnXSxcbiAgICBpZDogcGF5bG9hZC5pZCxcbiAgICBjdXN0b21faWQ6IHBheWxvYWQuY3VzdG9tSWQhLFxuICAgIGNoYW5uZWxfdHlwZXM6IHBheWxvYWQuY2hhbm5lbFR5cGVzLFxuICAgIGRlZmF1bHRfdmFsdWVzOiBwYXlsb2FkLmRlZmF1bHRWYWx1ZXM/Lm1hcCgoZGVmYXVsdFZhbHVlKSA9PiAoe1xuICAgICAgaWQ6IGJvdC50cmFuc2Zvcm1lcnMucmV2ZXJzZS5zbm93Zmxha2UoZGVmYXVsdFZhbHVlLmlkKSxcbiAgICAgIHR5cGU6IGRlZmF1bHRWYWx1ZS50eXBlLFxuICAgIH0pKSxcbiAgICBkaXNhYmxlZDogcGF5bG9hZC5kaXNhYmxlZCxcbiAgICBtYXhfdmFsdWVzOiBwYXlsb2FkLm1heFZhbHVlcyxcbiAgICBtaW5fdmFsdWVzOiBwYXlsb2FkLm1pblZhbHVlcyxcbiAgICBvcHRpb25zOiBwYXlsb2FkLm9wdGlvbnM/Lm1hcCgob3B0aW9uKSA9PiAoe1xuICAgICAgbGFiZWw6IG9wdGlvbi5sYWJlbCxcbiAgICAgIHZhbHVlOiBvcHRpb24udmFsdWUsXG4gICAgICBkZXNjcmlwdGlvbjogb3B0aW9uLmRlc2NyaXB0aW9uLFxuICAgICAgZW1vamk6IG9wdGlvbi5lbW9qaVxuICAgICAgICA/IHtcbiAgICAgICAgICAgIGlkOiBvcHRpb24uZW1vamkuaWQgPyBib3QudHJhbnNmb3JtZXJzLnJldmVyc2Uuc25vd2ZsYWtlKG9wdGlvbi5lbW9qaS5pZCkgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBuYW1lOiBvcHRpb24uZW1vamkubmFtZSxcbiAgICAgICAgICAgIGFuaW1hdGVkOiBvcHRpb24uZW1vamkuYW5pbWF0ZWQsXG4gICAgICAgICAgfVxuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgIGRlZmF1bHQ6IG9wdGlvbi5kZWZhdWx0LFxuICAgIH0pKSxcbiAgICBwbGFjZWhvbGRlcjogcGF5bG9hZC5wbGFjZWhvbGRlcixcbiAgfVxufVxuXG5mdW5jdGlvbiB0cmFuc2Zvcm1TZWN0aW9uQ29tcG9uZW50KGJvdDogQm90LCBwYXlsb2FkOiBDb21wb25lbnQpOiBEaXNjb3JkU2VjdGlvbkNvbXBvbmVudCB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogTWVzc2FnZUNvbXBvbmVudFR5cGVzLlNlY3Rpb24sXG4gICAgaWQ6IHBheWxvYWQuaWQsXG4gICAgY29tcG9uZW50czogcGF5bG9hZC5jb21wb25lbnRzPy5tYXAoKGNvbXBvbmVudCkgPT4gYm90LnRyYW5zZm9ybWVycy5yZXZlcnNlLmNvbXBvbmVudChib3QsIGNvbXBvbmVudCkpIGFzIERpc2NvcmRUZXh0RGlzcGxheUNvbXBvbmVudFtdLFxuICAgIGFjY2Vzc29yeTogKHBheWxvYWQuYWNjZXNzb3J5ID8gYm90LnRyYW5zZm9ybWVycy5yZXZlcnNlLmNvbXBvbmVudChib3QsIHBheWxvYWQuYWNjZXNzb3J5KSA6IHVuZGVmaW5lZCkgYXMgRGlzY29yZFNlY3Rpb25Db21wb25lbnRbJ2FjY2Vzc29yeSddLFxuICB9XG59XG5cbmZ1bmN0aW9uIHRyYW5zZm9ybUZpbGVDb21wb25lbnQoYm90OiBCb3QsIHBheWxvYWQ6IENvbXBvbmVudCk6IERpc2NvcmRGaWxlQ29tcG9uZW50IHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBNZXNzYWdlQ29tcG9uZW50VHlwZXMuRmlsZSxcbiAgICBpZDogcGF5bG9hZC5pZCxcbiAgICBmaWxlOiBib3QudHJhbnNmb3JtZXJzLnJldmVyc2UudW5mdXJsZWRNZWRpYUl0ZW0oYm90LCBwYXlsb2FkLmZpbGUhKSxcbiAgICBzcG9pbGVyOiBwYXlsb2FkLnNwb2lsZXIsXG4gICAgbmFtZTogcGF5bG9hZC5uYW1lISxcbiAgICBzaXplOiBwYXlsb2FkLnNpemUhLFxuICB9XG59XG5cbmZ1bmN0aW9uIHRyYW5zZm9ybU1lZGlhR2FsbGVyeUNvbXBvbmVudChib3Q6IEJvdCwgcGF5bG9hZDogQ29tcG9uZW50KTogRGlzY29yZE1lZGlhR2FsbGVyeUNvbXBvbmVudCB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogTWVzc2FnZUNvbXBvbmVudFR5cGVzLk1lZGlhR2FsbGVyeSxcbiAgICBpZDogcGF5bG9hZC5pZCxcbiAgICBpdGVtczogcGF5bG9hZC5pdGVtcz8ubWFwKChpdGVtKSA9PiBib3QudHJhbnNmb3JtZXJzLnJldmVyc2UubWVkaWFHYWxsZXJ5SXRlbShib3QsIGl0ZW0pKSA/PyBbXSxcbiAgfVxufVxuXG5mdW5jdGlvbiB0cmFuc2Zvcm1UaHVtYm5haWxDb21wb25lbnQoYm90OiBCb3QsIHBheWxvYWQ6IENvbXBvbmVudCk6IERpc2NvcmRUaHVtYm5haWxDb21wb25lbnQge1xuICByZXR1cm4ge1xuICAgIHR5cGU6IE1lc3NhZ2VDb21wb25lbnRUeXBlcy5UaHVtYm5haWwsXG4gICAgaWQ6IHBheWxvYWQuaWQsXG4gICAgbWVkaWE6IGJvdC50cmFuc2Zvcm1lcnMucmV2ZXJzZS51bmZ1cmxlZE1lZGlhSXRlbShib3QsIHBheWxvYWQubWVkaWEhKSxcbiAgICBkZXNjcmlwdGlvbjogcGF5bG9hZC5kZXNjcmlwdGlvbixcbiAgICBzcG9pbGVyOiBwYXlsb2FkLnNwb2lsZXIsXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJ0cmFuc2Zvcm1Db21wb25lbnRUb0Rpc2NvcmRDb21wb25lbnQiLCJ0cmFuc2Zvcm1NZWRpYUdhbGxlcnlJdGVtVG9EaXNjb3JkTWVkaWFHYWxsZXJ5SXRlbSIsInRyYW5zZm9ybVVuZnVybGVkTWVkaWFJdGVtVG9EaXNjb3JkVW5mdXJsZWRNZWRpYUl0ZW0iLCJib3QiLCJwYXlsb2FkIiwidHlwZSIsIk1lc3NhZ2VDb21wb25lbnRUeXBlcyIsIkFjdGlvblJvdyIsInRyYW5zZm9ybUFjdGlvblJvdyIsIkJ1dHRvbiIsInRyYW5zZm9ybUJ1dHRvbkNvbXBvbmVudCIsIkNvbnRhaW5lciIsInRyYW5zZm9ybUNvbnRhaW5lckNvbXBvbmVudCIsIlRleHRJbnB1dCIsInRyYW5zZm9ybUlucHV0VGV4dENvbXBvbmVudCIsIlN0cmluZ1NlbGVjdCIsIkNoYW5uZWxTZWxlY3QiLCJSb2xlU2VsZWN0IiwiVXNlclNlbGVjdCIsIk1lbnRpb25hYmxlU2VsZWN0IiwidHJhbnNmb3JtU2VsZWN0TWVudUNvbXBvbmVudCIsIlNlY3Rpb24iLCJ0cmFuc2Zvcm1TZWN0aW9uQ29tcG9uZW50IiwiRmlsZSIsInRyYW5zZm9ybUZpbGVDb21wb25lbnQiLCJNZWRpYUdhbGxlcnkiLCJ0cmFuc2Zvcm1NZWRpYUdhbGxlcnlDb21wb25lbnQiLCJUaHVtYm5haWwiLCJ0cmFuc2Zvcm1UaHVtYm5haWxDb21wb25lbnQiLCJTZXBhcmF0b3IiLCJUZXh0RGlzcGxheSIsInVybCIsInByb3h5X3VybCIsInByb3h5VXJsIiwiaGVpZ2h0Iiwid2lkdGgiLCJjb250ZW50X3R5cGUiLCJjb250ZW50VHlwZSIsImF0dGFjaG1lbnRfaWQiLCJhdHRhY2htZW50SWQiLCJ0cmFuc2Zvcm1lcnMiLCJyZXZlcnNlIiwic25vd2ZsYWtlIiwidW5kZWZpbmVkIiwibWVkaWEiLCJ1bmZ1cmxlZE1lZGlhSXRlbSIsImRlc2NyaXB0aW9uIiwic3BvaWxlciIsImlkIiwiY29tcG9uZW50cyIsIm1hcCIsImNvbXBvbmVudCIsImFjY2VudF9jb2xvciIsImFjY2VudENvbG9yIiwic3R5bGUiLCJjdXN0b21faWQiLCJjdXN0b21JZCIsImRpc2FibGVkIiwiZW1vamkiLCJuYW1lIiwiYW5pbWF0ZWQiLCJsYWJlbCIsInNrdV9pZCIsInNrdUlkIiwiX2JvdCIsInZhbHVlIiwibWF4X2xlbmd0aCIsIm1heExlbmd0aCIsIm1pbl9sZW5ndGgiLCJtaW5MZW5ndGgiLCJwbGFjZWhvbGRlciIsInJlcXVpcmVkIiwiY2hhbm5lbF90eXBlcyIsImNoYW5uZWxUeXBlcyIsImRlZmF1bHRfdmFsdWVzIiwiZGVmYXVsdFZhbHVlcyIsImRlZmF1bHRWYWx1ZSIsIm1heF92YWx1ZXMiLCJtYXhWYWx1ZXMiLCJtaW5fdmFsdWVzIiwibWluVmFsdWVzIiwib3B0aW9ucyIsIm9wdGlvbiIsImRlZmF1bHQiLCJhY2Nlc3NvcnkiLCJmaWxlIiwic2l6ZSIsIml0ZW1zIiwiaXRlbSIsIm1lZGlhR2FsbGVyeUl0ZW0iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0lBb0JnQkEsb0NBQW9DO2VBQXBDQTs7SUEyQ0FDLGtEQUFrRDtlQUFsREE7O0lBWEFDLG9EQUFvRDtlQUFwREE7Ozt1QkFwRGtHO0FBb0IzRyxTQUFTRixxQ0FBcUNHLEdBQVEsRUFBRUMsT0FBa0I7SUFDL0UsdUNBQXVDO0lBQ3ZDLE9BQVFBLFFBQVFDLElBQUk7UUFDbEIsS0FBS0MsNEJBQXFCLENBQUNDLFNBQVM7WUFDbEMsT0FBT0MsbUJBQW1CTCxLQUFLQztRQUNqQyxLQUFLRSw0QkFBcUIsQ0FBQ0csTUFBTTtZQUMvQixPQUFP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
@@ -55,7 +55,8 @@ function transformRole(bot, payload) {
55
55
  const role = Object.create(baseRole);
56
56
  const props = bot.transformers.desiredProperties.role;
57
57
  if (props.id && payload.role.id) role.id = bot.transformers.snowflake(payload.role.id);
58
- if (props.name && payload.role.name) role.name = payload.role.name;
58
+ // Role name can be an empty string
59
+ if (props.name && payload.role.name !== undefined) role.name = payload.role.name;
59
60
  if (props.position) role.position = payload.role.position;
60
61
  if (props.guildId && payload.guildId) role.guildId = bot.transformers.snowflake(payload.guildId);
61
62
  if (props.color && payload.role.color !== undefined) role.color = payload.role.color;
@@ -75,4 +76,4 @@ function transformRole(bot, payload) {
75
76
  return bot.transformers.customizers.role(bot, payload.role, role);
76
77
  }
77
78
 
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvcm9sZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEJpZ1N0cmluZywgRGlzY29yZFJvbGUgfSBmcm9tICdAZGlzY29yZGVuby90eXBlcydcbmltcG9ydCB7IHR5cGUgSW50ZXJuYWxCb3QsIHR5cGUgUm9sZSwgaWNvbkhhc2hUb0JpZ0ludCB9IGZyb20gJy4uL2luZGV4LmpzJ1xuaW1wb3J0IHsgUGVybWlzc2lvbnMgfSBmcm9tICcuL3RvZ2dsZXMvUGVybWlzc2lvbnMuanMnXG5pbXBvcnQgeyBSb2xlVG9nZ2xlcyB9IGZyb20gJy4vdG9nZ2xlcy9yb2xlLmpzJ1xuXG5leHBvcnQgY29uc3QgYmFzZVJvbGU6IEludGVybmFsQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsncm9sZSddID0ge1xuICAvLyBUaGlzIGFsbG93cyB0eXBlc2NyaXB0IHRvIHN0aWxsIGNoZWNrIGZvciB0eXBlIGVycm9ycyBvbiBmdW5jdGlvbnMgYmVsb3dcbiAgLi4uKHVuZGVmaW5lZCBhcyB1bmtub3duIGFzIEludGVybmFsQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsncm9sZSddKSxcblxuICBnZXQgdGFncygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgYm90SWQ6IHRoaXMuaW50ZXJuYWxUYWdzPy5ib3RJZCxcbiAgICAgIGludGVncmF0aW9uSWQ6IHRoaXMuaW50ZXJuYWxUYWdzPy5pbnRlZ3JhdGlvbklkLFxuICAgICAgc3Vic2NyaXB0aW9uTGlzdGluZ0lkOiB0aGlzLmludGVybmFsVGFncz8uc3Vic2NyaXB0aW9uTGlzdGluZ0lkLFxuICAgICAgYXZhaWxhYmxlRm9yUHVyY2hhc2U6IHRoaXMudG9nZ2xlcz8uYXZhaWxhYmxlRm9yUHVyY2hhc2UsXG4gICAgICBndWlsZENvbm5lY3Rpb25zOiB0aGlzLnRvZ2dsZXM/Lmd1aWxkQ29ubmVjdGlvbnMsXG4gICAgICBwcmVtaXVtU3Vic2NyaWJlcjogdGhpcy50b2dnbGVzPy5wcmVtaXVtU3Vic2NyaWJlcixcbiAgICB9XG4gIH0sXG4gIC8qKiBJZiB0aGlzIHJvbGUgaXMgc2hvd2VkIHNlcGFyYXRlbHkgaW4gdGhlIHVzZXIgbGlzdGluZyAqL1xuICBnZXQgaG9pc3QoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5oYXMoJ2hvaXN0JylcbiAgfSxcbiAgLyoqIFdoZXRoZXIgdGhpcyByb2xlIGlzIG1hbmFnZWQgYnkgYW4gaW50ZWdyYXRpb24gKi9cbiAgZ2V0IG1hbmFnZWQoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5oYXMoJ21hbmFnZWQnKVxuICB9LFxuICAvKiogV2hldGhlciB0aGlzIHJvbGUgaXMgbWVudGlvbmFibGUgKi9cbiAgZ2V0IG1lbnRpb25hYmxlKCkge1xuICAgIHJldHVybiAhIXRoaXMudG9nZ2xlcz8uaGFzKCdtZW50aW9uYWJsZScpXG4gIH0sXG4gIC8qKiBXaGV0aGVyIHRoaXMgaXMgdGhlIGd1aWxkcyBwcmVtaXVtIHN1YnNjcmliZXIgcm9sZSAqL1xuICBnZXQgcHJlbWl1bVN1YnNjcmliZXIoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5oYXMoJ3ByZW1pdW1TdWJzY3JpYmVyJylcbiAgfSxcbiAgLyoqIFdoZXRoZXIgdGhpcyByb2xlIGlzIGF2YWlsYWJsZSBmb3IgcHVyY2hhc2UuICovXG4gIGdldCBhdmFpbGFibGVGb3JQdXJjaGFzZSgpIHtcbiAgICByZXR1cm4gISF0aGlzLnRvZ2dsZXM/LmhhcygnYXZhaWxhYmxlRm9yUHVyY2hhc2UnKVxuICB9LFxuICAvKiogV2hldGhlciB0aGlzIGlzIGEgZ3VpbGQncyBsaW5rZWQgcm9sZS4gKi9cbiAgZ2V0IGd1aWxkQ29ubmVjdGlvbnMoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5oYXMoJ2d1aWxkQ29ubmVjdGlvbnMnKVxuICB9LFxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtUm9sZShib3Q6IEludGVybmFsQm90LCBwYXlsb2FkOiB7IHJvbGU6IERpc2NvcmRSb2xlOyBndWlsZElkOiBCaWdTdHJpbmcgfSk6IHR5cGVvZiBib3QudHJhbnNmb3JtZXJzLiRpbmZlcnJlZFR5cGVzLnJvbGUge1xuICBjb25zdCByb2xlOiBSb2xlID0gT2JqZWN0LmNyZWF0ZShiYXNlUm9sZSlcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLnJvbGVcbiAgaWYgKHByb3BzLmlkICYmIHBheWxvYWQucm9sZS5pZCkgcm9sZS5pZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQucm9sZS5pZClcbiAgaWYgKHByb3BzLm5hbWUgJiYgcGF5bG9hZC5yb2xlLm5hbWUpIHJvbGUubmFtZSA9IHBheWxvYWQucm9sZS5uYW1lXG4gIGlmIChwcm9wcy5wb3NpdGlvbikgcm9sZS5wb3NpdGlvbiA9IHBheWxvYWQucm9sZS5wb3NpdGlvblxuICBpZiAocHJvcHMuZ3VpbGRJZCAmJiBwYXlsb2FkLmd1aWxkSWQpIHJvbGUuZ3VpbGRJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuZ3VpbGRJZClcbiAgaWYgKHByb3BzLmNvbG9yICYmIHBheWxvYWQucm9sZS5jb2xvciAhPT0gdW5kZWZpbmVkKSByb2xlLmNvbG9yID0gcGF5bG9hZC5yb2xlLmNvbG9yXG4gIGlmIChwcm9wcy5wZXJtaXNzaW9ucyAmJiBwYXlsb2FkLnJvbGUucGVybWlzc2lvbnMpIHJvbGUucGVybWlzc2lvbnMgPSBuZXcgUGVybWlzc2lvbnMocGF5bG9hZC5yb2xlLnBlcm1pc3Npb25zKVxuICBpZiAocHJvcHMuaWNvbiAmJiBwYXlsb2FkLnJvbGUuaWNvbikgcm9sZS5pY29uID0gaWNvbkhhc2hUb0JpZ0ludChwYXlsb2FkLnJvbGUuaWNvbilcbiAgaWYgKHByb3BzLnVuaWNvZGVFbW9qaSAmJiBwYXlsb2FkLnJvbGUudW5pY29kZV9lbW9qaSkgcm9sZS51bmljb2RlRW1vamkgPSBwYXlsb2FkLnJvbGUudW5pY29kZV9lbW9qaVxuICBpZiAocHJvcHMuZmxhZ3MpIHJvbGUuZmxhZ3MgPSBwYXlsb2FkLnJvbGUuZmxhZ3NcbiAgaWYgKHByb3BzLnRhZ3MgJiYgcGF5bG9hZC5yb2xlLnRhZ3MpIHtcbiAgICByb2xlLmludGVybmFsVGFncyA9IHt9XG4gICAgaWYgKHBheWxvYWQucm9sZS50YWdzLmJvdF9pZCkgcm9sZS5pbnRlcm5hbFRhZ3MuYm90SWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLnJvbGUudGFncy5ib3RfaWQpXG4gICAgaWYgKHBheWxvYWQucm9sZS50YWdzLmludGVncmF0aW9uX2lkKSByb2xlLmludGVybmFsVGFncy5pbnRlZ3JhdGlvbklkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5yb2xlLnRhZ3MuaW50ZWdyYXRpb25faWQpXG4gICAgaWYgKHBheWxvYWQucm9sZS50YWdzLnN1YnNjcmlwdGlvbl9saXN0aW5nX2lkKVxuICAgICAgcm9sZS5pbnRlcm5hbFRhZ3Muc3Vic2NyaXB0aW9uTGlzdGluZ0lkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5yb2xlLnRhZ3Muc3Vic2NyaXB0aW9uX2xpc3RpbmdfaWQpXG4gIH1cbiAgaWYgKHByb3BzLnRvZ2dsZXMpIHtcbiAgICByb2xlLnRvZ2dsZXMgPSBuZXcgUm9sZVRvZ2dsZXMocGF5bG9hZC5yb2xlKVxuICB9XG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMucm9sZShib3QsIHBheWxvYWQucm9sZSwgcm9sZSlcbn1cbiJdLCJuYW1lcyI6WyJiYXNlUm9sZSIsInRyYW5zZm9ybVJvbGUiLCJ1bmRlZmluZWQiLCJ0YWdzIiwiYm90SWQiLCJpbnRlcm5hbFRhZ3MiLCJpbnRlZ3JhdGlvbklkIiwic3Vic2NyaXB0aW9uTGlzdGluZ0lkIiwiYXZhaWxhYmxlRm9yUHVyY2hhc2UiLCJ0b2dnbGVzIiwiZ3VpbGRDb25uZWN0aW9ucyIsInByZW1pdW1TdWJzY3JpYmVyIiwiaG9pc3QiLCJoYXMiLCJtYW5hZ2VkIiwibWVudGlvbmFibGUiLCJib3QiLCJwYXlsb2FkIiwicm9sZSIsIk9iamVjdCIsImNyZWF0ZSIsInByb3BzIiwidHJhbnNmb3JtZXJzIiwiZGVzaXJlZFByb3BlcnRpZXMiLCJpZCIsInNub3dmbGFrZSIsIm5hbWUiLCJwb3NpdGlvbiIsImd1aWxkSWQiLCJjb2xvciIsInBlcm1pc3Npb25zIiwiUGVybWlzc2lvbnMiLCJpY29uIiwiaWNvbkhhc2hUb0JpZ0ludCIsInVuaWNvZGVFbW9qaSIsInVuaWNvZGVfZW1vamkiLCJmbGFncyIsImJvdF9pZCIsImludGVncmF0aW9uX2lkIiwic3Vic2NyaXB0aW9uX2xpc3RpbmdfaWQiLCJSb2xlVG9nZ2xlcyIsImN1c3RvbWl6ZXJzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztJQUthQSxRQUFRO2VBQVJBOztJQXdDR0MsYUFBYTtlQUFiQTs7O3VCQTVDOEM7NkJBQ2xDO3NCQUNBO0FBRXJCLE1BQU1ELFdBQWtFO0lBQzdFLDJFQUEyRTtJQUMzRSxHQUFJRSxTQUFTO0lBRWIsSUFBSUMsUUFBTztRQUNULE9BQU87WUFDTEMsT0FBTyxJQUFJLENBQUNDLFlBQVksRUFBRUQ7WUFDMUJFLGVBQWUsSUFBSSxDQUFDRCxZQUFZLEVBQUVDO1lBQ2xDQyx1QkFBdUIsSUFBSSxDQUFDRixZQUFZLEVBQUVFO1lBQzFDQyxzQkFBc0IsSUFBSSxDQUFDQyxPQUFPLEVBQUVEO1lBQ3BDRSxrQkFBa0IsSUFBSSxDQUFDRCxPQUFPLEVBQUVDO1lBQ2hDQyxtQkFBbUIsSUFBSSxDQUFDRixPQUFPLEVBQUVFO1FBQ25DO0lBQ0Y7SUFDQSwwREFBMEQsR0FDMUQsSUFBSUMsU0FBUTtRQUNWLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQ0gsT0FBTyxFQUFFSSxJQUFJO0lBQzdCO0lBQ0EsbURBQW1ELEdBQ25ELElBQUlDLFdBQVU7UUFDWixPQUFPLENBQUMsQ0FB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
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvcm9sZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEJpZ1N0cmluZywgRGlzY29yZFJvbGUgfSBmcm9tICdAZGlzY29yZGVuby90eXBlcydcbmltcG9ydCB7IHR5cGUgSW50ZXJuYWxCb3QsIHR5cGUgUm9sZSwgaWNvbkhhc2hUb0JpZ0ludCB9IGZyb20gJy4uL2luZGV4LmpzJ1xuaW1wb3J0IHsgUGVybWlzc2lvbnMgfSBmcm9tICcuL3RvZ2dsZXMvUGVybWlzc2lvbnMuanMnXG5pbXBvcnQgeyBSb2xlVG9nZ2xlcyB9IGZyb20gJy4vdG9nZ2xlcy9yb2xlLmpzJ1xuXG5leHBvcnQgY29uc3QgYmFzZVJvbGU6IEludGVybmFsQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsncm9sZSddID0ge1xuICAvLyBUaGlzIGFsbG93cyB0eXBlc2NyaXB0IHRvIHN0aWxsIGNoZWNrIGZvciB0eXBlIGVycm9ycyBvbiBmdW5jdGlvbnMgYmVsb3dcbiAgLi4uKHVuZGVmaW5lZCBhcyB1bmtub3duIGFzIEludGVybmFsQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsncm9sZSddKSxcblxuICBnZXQgdGFncygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgYm90SWQ6IHRoaXMuaW50ZXJuYWxUYWdzPy5ib3RJZCxcbiAgICAgIGludGVncmF0aW9uSWQ6IHRoaXMuaW50ZXJuYWxUYWdzPy5pbnRlZ3JhdGlvbklkLFxuICAgICAgc3Vic2NyaXB0aW9uTGlzdGluZ0lkOiB0aGlzLmludGVybmFsVGFncz8uc3Vic2NyaXB0aW9uTGlzdGluZ0lkLFxuICAgICAgYXZhaWxhYmxlRm9yUHVyY2hhc2U6IHRoaXMudG9nZ2xlcz8uYXZhaWxhYmxlRm9yUHVyY2hhc2UsXG4gICAgICBndWlsZENvbm5lY3Rpb25zOiB0aGlzLnRvZ2dsZXM/Lmd1aWxkQ29ubmVjdGlvbnMsXG4gICAgICBwcmVtaXVtU3Vic2NyaWJlcjogdGhpcy50b2dnbGVzPy5wcmVtaXVtU3Vic2NyaWJlcixcbiAgICB9XG4gIH0sXG4gIC8qKiBJZiB0aGlzIHJvbGUgaXMgc2hvd2VkIHNlcGFyYXRlbHkgaW4gdGhlIHVzZXIgbGlzdGluZyAqL1xuICBnZXQgaG9pc3QoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5oYXMoJ2hvaXN0JylcbiAgfSxcbiAgLyoqIFdoZXRoZXIgdGhpcyByb2xlIGlzIG1hbmFnZWQgYnkgYW4gaW50ZWdyYXRpb24gKi9cbiAgZ2V0IG1hbmFnZWQoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5oYXMoJ21hbmFnZWQnKVxuICB9LFxuICAvKiogV2hldGhlciB0aGlzIHJvbGUgaXMgbWVudGlvbmFibGUgKi9cbiAgZ2V0IG1lbnRpb25hYmxlKCkge1xuICAgIHJldHVybiAhIXRoaXMudG9nZ2xlcz8uaGFzKCdtZW50aW9uYWJsZScpXG4gIH0sXG4gIC8qKiBXaGV0aGVyIHRoaXMgaXMgdGhlIGd1aWxkcyBwcmVtaXVtIHN1YnNjcmliZXIgcm9sZSAqL1xuICBnZXQgcHJlbWl1bVN1YnNjcmliZXIoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5oYXMoJ3ByZW1pdW1TdWJzY3JpYmVyJylcbiAgfSxcbiAgLyoqIFdoZXRoZXIgdGhpcyByb2xlIGlzIGF2YWlsYWJsZSBmb3IgcHVyY2hhc2UuICovXG4gIGdldCBhdmFpbGFibGVGb3JQdXJjaGFzZSgpIHtcbiAgICByZXR1cm4gISF0aGlzLnRvZ2dsZXM/LmhhcygnYXZhaWxhYmxlRm9yUHVyY2hhc2UnKVxuICB9LFxuICAvKiogV2hldGhlciB0aGlzIGlzIGEgZ3VpbGQncyBsaW5rZWQgcm9sZS4gKi9cbiAgZ2V0IGd1aWxkQ29ubmVjdGlvbnMoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5oYXMoJ2d1aWxkQ29ubmVjdGlvbnMnKVxuICB9LFxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtUm9sZShib3Q6IEludGVybmFsQm90LCBwYXlsb2FkOiB7IHJvbGU6IERpc2NvcmRSb2xlOyBndWlsZElkOiBCaWdTdHJpbmcgfSk6IHR5cGVvZiBib3QudHJhbnNmb3JtZXJzLiRpbmZlcnJlZFR5cGVzLnJvbGUge1xuICBjb25zdCByb2xlOiBSb2xlID0gT2JqZWN0LmNyZWF0ZShiYXNlUm9sZSlcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLnJvbGVcbiAgaWYgKHByb3BzLmlkICYmIHBheWxvYWQucm9sZS5pZCkgcm9sZS5pZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQucm9sZS5pZClcbiAgLy8gUm9sZSBuYW1lIGNhbiBiZSBhbiBlbXB0eSBzdHJpbmdcbiAgaWYgKHByb3BzLm5hbWUgJiYgcGF5bG9hZC5yb2xlLm5hbWUgIT09IHVuZGVmaW5lZCkgcm9sZS5uYW1lID0gcGF5bG9hZC5yb2xlLm5hbWVcbiAgaWYgKHByb3BzLnBvc2l0aW9uKSByb2xlLnBvc2l0aW9uID0gcGF5bG9hZC5yb2xlLnBvc2l0aW9uXG4gIGlmIChwcm9wcy5ndWlsZElkICYmIHBheWxvYWQuZ3VpbGRJZCkgcm9sZS5ndWlsZElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5ndWlsZElkKVxuICBpZiAocHJvcHMuY29sb3IgJiYgcGF5bG9hZC5yb2xlLmNvbG9yICE9PSB1bmRlZmluZWQpIHJvbGUuY29sb3IgPSBwYXlsb2FkLnJvbGUuY29sb3JcbiAgaWYgKHByb3BzLnBlcm1pc3Npb25zICYmIHBheWxvYWQucm9sZS5wZXJtaXNzaW9ucykgcm9sZS5wZXJtaXNzaW9ucyA9IG5ldyBQZXJtaXNzaW9ucyhwYXlsb2FkLnJvbGUucGVybWlzc2lvbnMpXG4gIGlmIChwcm9wcy5pY29uICYmIHBheWxvYWQucm9sZS5pY29uKSByb2xlLmljb24gPSBpY29uSGFzaFRvQmlnSW50KHBheWxvYWQucm9sZS5pY29uKVxuICBpZiAocHJvcHMudW5pY29kZUVtb2ppICYmIHBheWxvYWQucm9sZS51bmljb2RlX2Vtb2ppKSByb2xlLnVuaWNvZGVFbW9qaSA9IHBheWxvYWQucm9sZS51bmljb2RlX2Vtb2ppXG4gIGlmIChwcm9wcy5mbGFncykgcm9sZS5mbGFncyA9IHBheWxvYWQucm9sZS5mbGFnc1xuICBpZiAocHJvcHMudGFncyAmJiBwYXlsb2FkLnJvbGUudGFncykge1xuICAgIHJvbGUuaW50ZXJuYWxUYWdzID0ge31cbiAgICBpZiAocGF5bG9hZC5yb2xlLnRhZ3MuYm90X2lkKSByb2xlLmludGVybmFsVGFncy5ib3RJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQucm9sZS50YWdzLmJvdF9pZClcbiAgICBpZiAocGF5bG9hZC5yb2xlLnRhZ3MuaW50ZWdyYXRpb25faWQpIHJvbGUuaW50ZXJuYWxUYWdzLmludGVncmF0aW9uSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLnJvbGUudGFncy5pbnRlZ3JhdGlvbl9pZClcbiAgICBpZiAocGF5bG9hZC5yb2xlLnRhZ3Muc3Vic2NyaXB0aW9uX2xpc3RpbmdfaWQpXG4gICAgICByb2xlLmludGVybmFsVGFncy5zdWJzY3JpcHRpb25MaXN0aW5nSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLnJvbGUudGFncy5zdWJzY3JpcHRpb25fbGlzdGluZ19pZClcbiAgfVxuICBpZiAocHJvcHMudG9nZ2xlcykge1xuICAgIHJvbGUudG9nZ2xlcyA9IG5ldyBSb2xlVG9nZ2xlcyhwYXlsb2FkLnJvbGUpXG4gIH1cblxuICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jdXN0b21pemVycy5yb2xlKGJvdCwgcGF5bG9hZC5yb2xlLCByb2xlKVxufVxuIl0sIm5hbWVzIjpbImJhc2VSb2xlIiwidHJhbnNmb3JtUm9sZSIsInVuZGVmaW5lZCIsInRhZ3MiLCJib3RJZCIsImludGVybmFsVGFncyIsImludGVncmF0aW9uSWQiLCJzdWJzY3JpcHRpb25MaXN0aW5nSWQiLCJhdmFpbGFibGVGb3JQdXJjaGFzZSIsInRvZ2dsZXMiLCJndWlsZENvbm5lY3Rpb25zIiwicHJlbWl1bVN1YnNjcmliZXIiLCJob2lzdCIsImhhcyIsIm1hbmFnZWQiLCJtZW50aW9uYWJsZSIsImJvdCIsInBheWxvYWQiLCJyb2xlIiwiT2JqZWN0IiwiY3JlYXRlIiwicHJvcHMiLCJ0cmFuc2Zvcm1lcnMiLCJkZXNpcmVkUHJvcGVydGllcyIsImlkIiwic25vd2ZsYWtlIiwibmFtZSIsInBvc2l0aW9uIiwiZ3VpbGRJZCIsImNvbG9yIiwicGVybWlzc2lvbnMiLCJQZXJtaXNzaW9ucyIsImljb24iLCJpY29uSGFzaFRvQmlnSW50IiwidW5pY29kZUVtb2ppIiwidW5pY29kZV9lbW9qaSIsImZsYWdzIiwiYm90X2lkIiwiaW50ZWdyYXRpb25faWQiLCJzdWJzY3JpcHRpb25fbGlzdGluZ19pZCIsIlJvbGVUb2dnbGVzIiwiY3VzdG9taXplcnMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0lBS2FBLFFBQVE7ZUFBUkE7O0lBd0NHQyxhQUFhO2VBQWJBOzs7dUJBNUM4Qzs2QkFDbEM7c0JBQ0E7QUFFckIsTUFBTUQsV0FBa0U7SUFDN0UsMkVBQTJFO0lBQzNFLEdBQUlFLFNBQVM7SUFFYixJQUFJQyxRQUFPO1FBQ1QsT0FBTztZQUNMQyxPQUFPLElBQUksQ0FBQ0MsWUFBWSxFQUFFRDtZQUMxQkUsZUFBZSxJQUFJLENBQUNELFlBQVksRUFBRUM7WUFDbENDLHVCQUF1QixJQUFJLENBQUNGLFlBQVksRUFBRUU7WUFDMUNDLHNCQUFzQixJQUFJLENBQUNDLE9BQU8sRUFBRUQ7WUFDcENFLGtCQUFrQixJQUFJLENBQUNELE9BQU8sRUFBRUM7WUFDaENDLG1CQUFtQixJQUFJLENBQUNGLE9BQU8sRUFBRUU7UUFDbkM7SUFDRjtJQUNBLDBEQUEwRCxHQUMxRCxJQUFJQyxTQUFRO1FBQ1YsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDSCxPQUFPLEVBQUVJLElBQUk7SUFDN0I7SUFDQSxtREFBbUQsR0FDbkQsSUFBSUMsV0FBVTtRQUNaLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQ0wsT0FBTyxFQUFFSSxJQUFJO0lBQzdCO0lBQ0EscUNBQXFDLEdBQ3JDLElBQUlFLGVBQWM7UUFDaEIsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDTixPQUFPLEVBQUVJLElBQUk7SUFDN0I7SUFDQSx1REFBdUQsR0FDdkQsSUFBSUYscUJBQW9CO1FBQ3RCLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQ0YsT0FBTyxFQUFFSSxJQUFJO0lBQzdCO0lBQ0EsaURBQWlELEdBQ2pELElBQUlMLHdCQUF1QjtRQUN6QixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUNDLE9BQU8sRUFBRUksSUFBSTtJQUM3QjtJQUNBLDJDQUEyQyxHQUMzQyxJQUFJSCxvQkFBbUI7UUFDckIsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDRCxPQUFPLEVBQUVJLElBQUk7SUFDN0I7QUFDRjtBQUVPLFNBQVNaLGNBQWNlLEdBQWdCLEVBQUVDLE9BQWtEO0lBQ2hHLE1BQU1DLE9BQWFDLE9BQU9DLE1BQU0sQ0FBQ3BCO0lBQ2pDLE1BQU1xQixRQUFRTCxJQUFJTSxZQUFZLENBQUNDLGlCQUFpQixDQUFDTCxJQUFJO0lBQ3JELElBQUlHLE1BQU1HLEVBQUUsSUFBSVAsUUFBUUMsSUFBSSxDQUFDTSxFQUFFLEVBQUVOLEtBQUtNLEVBQUUsR0FBR1IsSUFBSU0sWUFBWSxDQUFDRyxTQUFTLENBQUNSLFFBQVFDLElBQUksQ0FBQ00sRUFBRTtJQUNyRixtQ0FBbUM7SUFDbkMsSUFBSUgsTUFBTUssSUFBSSxJQUFJVCxRQUFRQyxJQUFJLENBQUNRLElBQUksS0FBS3hCLFdBQVdnQixLQUFLUSxJQUFJLEdBQUdULFFBQVFDLElBQUksQ0FBQ1EsSUFBSTtJQUNoRixJQUFJTCxNQUFNTSxRQUFRLEVBQUVULEtBQUtTLFFBQVEsR0FBR1YsUUFBUUMsSUFBSSxDQUFDUyxRQUFRO0lBQ3pELElBQUlOLE1BQU1PLE9BQU8sSUFBSVgsUUFBUVcsT0FBTyxFQUFFVixLQUFLVSxPQUFPLEdBQUdaLElBQUlNLFlBQVksQ0FBQ0csU0FBUyxDQUFDUixRQUFRVyxPQUFPO0lBQy9GLElBQUlQLE1BQU1RLEtBQUssSUFBSVosUUFBUUMsSUFBSSxDQUFDVyxLQUFLLEtBQUszQixXQUFXZ0IsS0FBS1csS0FBSyxHQUFHWixRQUFRQyxJQUFJLENBQUNXLEtBQUs7SUFDcEYsSUFBSVIsTUFBTVMsV0FBVyxJQUFJYixRQUFRQyxJQUFJLENBQUNZLFdBQVcsRUFBRVosS0FBS1ksV0FBVyxHQUFHLElBQUlDLHdCQUFXLENBQUNkLFFBQVFDLElBQUksQ0FBQ1ksV0FBVztJQUM5RyxJQUFJVCxNQUFNVyxJQUFJLElBQUlmLFFBQVFDLElBQUksQ0FBQ2MsSUFBSSxFQUFFZCxLQUFLYyxJQUFJLEdBQUdDLElBQUFBLHVCQUFnQixFQUFDaEIsUUFBUUMsSUFBSSxDQUFDYyxJQUFJO0lBQ25GLElBQUlYLE1BQU1hLFlBQVksSUFBSWpCLFFBQVFDLElBQUksQ0FBQ2lCLGFBQWEsRUFBRWpCLEtBQUtnQixZQUFZLEdBQUdqQixRQUFRQyxJQUFJLENBQUNpQixhQUFhO0lBQ3BHLElBQUlkLE1BQU1lLEtBQUssRUFBRWxCLEtBQUtrQixLQUFLLEdBQUduQixRQUFRQyxJQUFJLENBQUNrQixLQUFLO0lBQ2hELElBQUlmLE1BQU1sQixJQUFJLElBQUljLFFBQVFDLElBQUksQ0FBQ2YsSUFBSSxFQUFFO1FBQ25DZSxLQUFLYixZQUFZLEdBQUcsQ0FBQztRQUNyQixJQUFJWSxRQUFRQyxJQUFJLENBQUNmLElBQUksQ0FBQ2tDLE1BQU0sRUFBRW5CLEtBQUtiLFlBQVksQ0FBQ0QsS0FBSyxHQUFHWSxJQUFJTSxZQUFZLENBQUNHLFNBQVMsQ0FBQ1IsUUFBUUMsSUFBSSxDQUFDZixJQUFJLENBQUNrQyxNQUFNO1FBQzNHLElBQUlwQixRQUFRQyxJQUFJLENBQUNmLElBQUksQ0FBQ21DLGNBQWMsRUFBRXBCLEtBQUtiLFlBQVksQ0FBQ0MsYUFBYSxHQUFHVSxJQUFJTSxZQUFZLENBQUNHLFNBQVMsQ0FBQ1IsUUFBUUMsSUFBSSxDQUFDZixJQUFJLENBQUNtQyxjQUFjO1FBQ25JLElBQUlyQixRQUFRQyxJQUFJLENBQUNmLElBQUksQ0FBQ29DLHVCQUF1QixFQUMzQ3JCLEtBQUtiLFlBQVksQ0FBQ0UscUJBQXFCLEdBQUdTLElBQUlNLFlBQVksQ0FBQ0csU0FBUyxDQUFDUixRQUFRQyxJQUFJLENBQUNmLElBQUksQ0FBQ29DLHVCQUF1QjtJQUNsSDtJQUNBLElBQUlsQixNQUFNWixPQUFPLEVBQUU7UUFDakJTLEtBQUtULE9BQU8sR0FBRyxJQUFJK0IsaUJBQVcsQ0FBQ3ZCLFFBQVFDLElBQUk7SUFDN0M7SUFFQSxPQUFPRixJQUFJTSxZQUFZLENBQUNtQixXQUFXLENBQUN2QixJQUFJLENBQUNGLEtBQUtDLFFBQVFDLElBQUksRUFBRUE7QUFDOUQifQ==
@@ -12,6 +12,12 @@ _export(exports, {
12
12
  baseUser: function() {
13
13
  return baseUser;
14
14
  },
15
+ transformCollectibles: function() {
16
+ return transformCollectibles;
17
+ },
18
+ transformNameplate: function() {
19
+ return transformNameplate;
20
+ },
15
21
  transformUser: function() {
16
22
  return transformUser;
17
23
  }
@@ -54,7 +60,23 @@ function transformUser(bot, payload) {
54
60
  if (props.banner && payload.banner) user.banner = (0, _utils.iconHashToBigInt)(payload.banner);
55
61
  if (props.accentColor && payload.accent_color) user.accentColor = payload.accent_color;
56
62
  if (props.avatarDecorationData && payload.avatar_decoration_data) user.avatarDecorationData = bot.transformers.avatarDecorationData(bot, payload.avatar_decoration_data);
63
+ if (props.collectibles && payload.collectibles) user.collectibles = bot.transformers.collectibles(bot, payload.collectibles);
57
64
  return bot.transformers.customizers.user(bot, payload, user);
58
65
  }
66
+ function transformCollectibles(bot, payload) {
67
+ const collectibles = {};
68
+ const props = bot.transformers.desiredProperties.collectibles;
69
+ if (props.nameplate && payload.nameplate) collectibles.nameplate = bot.transformers.nameplate(bot, payload.nameplate);
70
+ return bot.transformers.customizers.collectibles(bot, payload, collectibles);
71
+ }
72
+ function transformNameplate(bot, payload) {
73
+ const nameplate = {};
74
+ const props = bot.transformers.desiredProperties.nameplate;
75
+ if (props.skuId && payload.sku_id) nameplate.skuId = bot.transformers.snowflake(payload.sku_id);
76
+ if (props.asset && payload.asset) nameplate.asset = payload.asset;
77
+ if (props.label && payload.label) nameplate.label = payload.label;
78
+ if (props.palette && payload.palette) nameplate.palette = payload.palette;
79
+ return bot.transformers.customizers.nameplate(bot, payload, nameplate);
80
+ }
59
81
 
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvdXNlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IERpc2NvcmRVc2VyIH0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnXG5pbXBvcnQgeyBpY29uSGFzaFRvQmlnSW50IH0gZnJvbSAnQGRpc2NvcmRlbm8vdXRpbHMnXG5pbXBvcnQgeyB0eXBlIEludGVybmFsQm90LCBUb2dnbGVCaXRmaWVsZCwgdHlwZSBVc2VyLCBVc2VyVG9nZ2xlcyB9IGZyb20gJy4uL2luZGV4LmpzJ1xuXG5leHBvcnQgY29uc3QgYmFzZVVzZXI6IEludGVybmFsQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsndXNlciddID0ge1xuICAvLyBUaGlzIGFsbG93cyB0eXBlc2NyaXB0IHRvIHN0aWxsIGNoZWNrIGZvciB0eXBlIGVycm9ycyBvbiBmdW5jdGlvbnMgYmVsb3dcbiAgLi4uKHVuZGVmaW5lZCBhcyB1bmtub3duIGFzIEludGVybmFsQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsndXNlciddKSxcblxuICBnZXQgdGFnKCkge1xuICAgIHJldHVybiBgJHt0aGlzLnVzZXJuYW1lfSMke3RoaXMuZGlzY3JpbWluYXRvcn1gXG4gIH0sXG4gIGdldCBib3QoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5oYXMoJ2JvdCcpXG4gIH0sXG4gIGdldCBzeXN0ZW0oKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5oYXMoJ3N5c3RlbScpXG4gIH0sXG4gIGdldCBtZmFFbmFibGVkKCkge1xuICAgIHJldHVybiAhIXRoaXMudG9nZ2xlcz8uaGFzKCdtZmFFbmFibGVkJylcbiAgfSxcbiAgZ2V0IHZlcmlmaWVkKCkge1xuICAgIHJldHVybiAhIXRoaXMudG9nZ2xlcz8uaGFzKCd2ZXJpZmllZCcpXG4gIH0sXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1Vc2VyKGJvdDogSW50ZXJuYWxCb3QsIHBheWxvYWQ6IERpc2NvcmRVc2VyKTogdHlwZW9mIGJvdC50cmFuc2Zvcm1lcnMuJGluZmVycmVkVHlwZXMudXNlciB7XG4gIGNvbnN0IHVzZXI6IFVzZXIgPSBPYmplY3QuY3JlYXRlKGJhc2VVc2VyKVxuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMudXNlclxuXG4gIGlmIChwcm9wcy50b2dnbGVzKSB1c2VyLnRvZ2dsZXMgPSBuZXcgVXNlclRvZ2dsZXMocGF5bG9hZClcbiAgaWYgKHByb3BzLmZsYWdzKSB1c2VyLmZsYWdzID0gbmV3IFRvZ2dsZUJpdGZpZWxkKHBheWxvYWQuZmxhZ3MpXG4gIGlmIChwcm9wcy5wdWJsaWNGbGFncykgdXNlci5wdWJsaWNGbGFncyA9IG5ldyBUb2dnbGVCaXRmaWVsZChwYXlsb2FkLnB1YmxpY19mbGFncylcbiAgaWYgKHByb3BzLmlkICYmIHBheWxvYWQuaWQpIHVzZXIuaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmlkKVxuICBpZiAocHJvcHMudXNlcm5hbWUgJiYgcGF5bG9hZC51c2VybmFtZSkgdXNlci51c2VybmFtZSA9IHBheWxvYWQudXNlcm5hbWVcbiAgaWYgKHByb3BzLmdsb2JhbE5hbWUgJiYgcGF5bG9hZC5nbG9iYWxfbmFtZSkgdXNlci5nbG9iYWxOYW1lID0gcGF5bG9hZC5nbG9iYWxfbmFtZVxuICBpZiAocHJvcHMuZGlzY3JpbWluYXRvciAmJiBwYXlsb2FkLmRpc2NyaW1pbmF0b3IpIHVzZXIuZGlzY3JpbWluYXRvciA9IHBheWxvYWQuZGlzY3JpbWluYXRvclxuICBpZiAocHJvcHMubG9jYWxlICYmIHBheWxvYWQubG9jYWxlKSB1c2VyLmxvY2FsZSA9IHBheWxvYWQubG9jYWxlXG4gIGlmIChwcm9wcy5lbWFpbCAmJiBwYXlsb2FkLmVtYWlsKSB1c2VyLmVtYWlsID0gcGF5bG9hZC5lbWFpbFxuICBpZiAocHJvcHMucHJlbWl1bVR5cGUgJiYgcGF5bG9hZC5wcmVtaXVtX3R5cGUpIHVzZXIucHJlbWl1bVR5cGUgPSBwYXlsb2FkLnByZW1pdW1fdHlwZVxuICBpZiAocHJvcHMuYXZhdGFyICYmIHBheWxvYWQuYXZhdGFyKSB1c2VyLmF2YXRhciA9IGljb25IYXNoVG9CaWdJbnQocGF5bG9hZC5hdmF0YXIpXG4gIGlmIChwcm9wcy5iYW5uZXIgJiYgcGF5bG9hZC5iYW5uZXIpIHVzZXIuYmFubmVyID0gaWNvbkhhc2hUb0JpZ0ludChwYXlsb2FkLmJhbm5lcilcbiAgaWYgKHByb3BzLmFjY2VudENvbG9yICYmIHBheWxvYWQuYWNjZW50X2NvbG9yKSB1c2VyLmFjY2VudENvbG9yID0gcGF5bG9hZC5hY2NlbnRfY29sb3JcbiAgaWYgKHByb3BzLmF2YXRhckRlY29yYXRpb25EYXRhICYmIHBheWxvYWQuYXZhdGFyX2RlY29yYXRpb25fZGF0YSlcbiAgICB1c2VyLmF2YXRhckRlY29yYXRpb25EYXRhID0gYm90LnRyYW5zZm9ybWVycy5hdmF0YXJEZWNvcmF0aW9uRGF0YShib3QsIHBheWxvYWQuYXZhdGFyX2RlY29yYXRpb25fZGF0YSlcblxuICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jdXN0b21pemVycy51c2VyKGJvdCwgcGF5bG9hZCwgdXNlcilcbn1cbiJdLCJuYW1lcyI6WyJiYXNlVXNlciIsInRyYW5zZm9ybVVzZXIiLCJ1bmRlZmluZWQiLCJ0YWciLCJ1c2VybmFtZSIsImRpc2NyaW1pbmF0b3IiLCJib3QiLCJ0b2dnbGVzIiwiaGFzIiwic3lzdGVtIiwibWZhRW5hYmxlZCIsInZlcmlmaWVkIiwicGF5bG9hZCIsInVzZXIiLCJPYmplY3QiLCJjcmVhdGUiLCJwcm9wcyIsInRyYW5zZm9ybWVycyIsImRlc2lyZWRQcm9wZXJ0aWVzIiwiVXNlclRvZ2dsZXMiLCJmbGFncyIsIlRvZ2dsZUJpdGZpZWxkIiwicHVibGljRmxhZ3MiLCJwdWJsaWNfZmxhZ3MiLCJpZCIsInNub3dmbGFrZSIsImdsb2JhbE5hbWUiLCJnbG9iYWxfbmFtZSIsImxvY2FsZSIsImVtYWlsIiwicHJlbWl1bVR5cGUiLCJwcmVtaXVtX3R5cGUiLCJhdmF0YXIiLCJpY29uSGFzaFRvQmlnSW50IiwiYmFubmVyIiwiYWNjZW50Q29sb3IiLCJhY2NlbnRfY29sb3IiLCJhdmF0YXJEZWNvcmF0aW9uRGF0YSIsImF2YXRhcl9kZWNvcmF0aW9uX2RhdGEiLCJjdXN0b21pemVycyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7SUFJYUEsUUFBUTtlQUFSQTs7SUFxQkdDLGFBQWE7ZUFBYkE7Ozt1QkF4QmlCO3VCQUN3QztBQUVsRSxNQUFNRCxXQUFrRTtJQUM3RSwyRUFBMkU7SUFDM0UsR0FBSUUsU0FBUztJQUViLElBQUlDLE9BQU07UUFDUixPQUFPLEdBQUcsSUFBSSxDQUFDQyxRQUFRLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQ0MsYUFBYSxFQUFFO0lBQ2pEO0lBQ0EsSUFBSUMsT0FBTTtRQUNSLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQ0MsT0FBTyxFQUFFQyxJQUFJO0lBQzdCO0lBQ0EsSUFBSUMsVUFBUztRQUNYLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQ0YsT0FBTyxFQUFFQyxJQUFJO0lBQzdCO0lBQ0EsSUFBSUUsY0FBYTtRQUNmLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQ0gsT0FBTyxFQUFFQyxJQUFJO0lBQzdCO0lBQ0EsSUFBSUcsWUFBVztRQUNiLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQ0osT0FBTyxFQUFFQyxJQUFJO0lBQzdCO0FBQ0Y7QUFFTyxTQUFTUCxjQUFjSyxHQUFnQixFQUFFTSxPQUFvQjtJQUNsRSxNQUFNQyxPQUFhQyxPQUFPQyxNQUFNLENBQUNmO0lBQ2pDLE1BQU1nQixRQUFRVixJQUFJVyxZQUFZLENBQUNDLGlCQUFpQixDQUFDTCxJQUFJO0lBRXJELElBQUlHLE1BQU1ULE9BQU8sRUFBRU0sS0FBS04sT0FBTyxHQUFHLElBQUlZLGtCQUFXLENBQUNQO0lBQ2xELElBQUlJLE1BQU1JLEtBQUssRUFBRVAsS0FBS08sS0FBSyxHQUFHLElBQUlDLHFCQUFjLENBQUNULFFBQVFRLEtBQUs7SUFDOUQsSUFBSUosTUFBTU0sV0FBVyxFQUFFVCxLQUFLUyxXQUFXLEdBQUcsSUFBSUQscUJBQWMsQ0FBQ1QsUUFBUVcsWUFBWTtJQUNqRixJQUFJUCxNQUFNUSxFQUFFLElBQUlaLFFBQVFZLEVBQUUsRUFBRVgsS0FBS1csRUFBRSxHQUFHbEIsSUFBSVcsWUFBWSxDQUFDUSxTQUFTLENBQUNiLFFBQVFZLEVBQUU7SUFDM0UsSUFBSVIsTUFBTVosUUFBUSxJQUFJUSxRQUFRUixRQUFRLEVBQUVTLEtBQUtULFFBQVEsR0FBR1EsUUFBUVIsUUFBUTtJQUN4RSxJQUFJWSxNQUFNVSxVQUFVLElBQUlkLFFBQVFlLFdBQVcsRUFBRWQsS0FBS2EsVUFBVSxHQUFHZCxRQUFRZSxXQUFXO0lBQ2xGLElBQUlYLE1BQU1YLGFBQWEsSUFBSU8sUUFBUVAsYUFBYSxFQUFFUSxLQUFLUixhQUFhLEdBQUdPLFFBQVFQLGFBQWE7SUFDNUYsSUFBSVcsTUFBTVksTUFBTSxJQUFJaEIsUUFBUWdCLE1BQU0sRUFBRWYsS0FBS2UsTUFBTSxHQUFHaEIsUUFBUWdCLE1BQU07SUFDaEUsSUFBSVosTUFBTWEsS0FBSyxJQUFJakIsUUFBUWlCLEtBQUssRUFBRWhCLEtBQUtnQixLQUFLLEdBQUdqQixRQUFRaUIsS0FBSztJQUM1RCxJQUFJYixNQUFNYyxXQUFXLElBQUlsQixRQUFRbUIsWUFBWSxFQUFFbEIsS0FBS2lCLFdBQVcsR0FBR2xCLFFBQVFtQixZQUFZO0lBQ3RGLElBQUlmLE1BQU1nQixNQUFNLElBQUlwQixRQUFRb0IsTUFBTSxFQUFFbkIsS0FBS21CLE1BQU0sR0FBR0MsSUFBQUEsdUJBQWdCLEVBQUNyQixRQUFRb0IsTUFBTTtJQUNqRixJQUFJaEIsTUFBTWtCLE1BQU0sSUFBSXRCLFFBQVFzQixNQUFNLEVBQUVyQixLQUFLcUIsTUFBTSxHQUFHRCxJQUFBQSx1QkFBZ0IsRUFBQ3JCLFFBQVFzQixNQUFNO0lBQ2pGLElBQUlsQixNQUFNbUIsV0FBVyxJQUFJdkIsUUFBUXdCLFlBQVksRUFBRXZCLEtBQUtzQixXQUFXLEdBQUd2QixRQUFRd0IsWUFBWTtJQUN0RixJQUFJcEIsTUFBTXFCLG9CQUFvQixJQUFJekIsUUFBUTBCLHNCQUFzQixFQUM5RHpCLEtBQUt3QixvQkFBb0IsR0FBRy9CLElBQUlXLFlBQVksQ0FBQ29CLG9CQUFvQixDQUFDL0IsS0FBS00sUUFBUTBCLHNCQUFzQjtJQUV2RyxPQUFPaEMsSUFBSVcsWUFBWSxDQUFDc0IsV0FBVyxDQUFDMUIsSUFBSSxDQUFDUCxLQUFLTSxTQUFTQztBQUN6RCJ9
82
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvdXNlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IERpc2NvcmRDb2xsZWN0aWJsZXMsIERpc2NvcmROYW1lcGxhdGUsIERpc2NvcmRVc2VyIH0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnXG5pbXBvcnQgeyBpY29uSGFzaFRvQmlnSW50IH0gZnJvbSAnQGRpc2NvcmRlbm8vdXRpbHMnXG5pbXBvcnQgeyB0eXBlIENvbGxlY3RpYmxlcywgdHlwZSBJbnRlcm5hbEJvdCwgdHlwZSBOYW1lcGxhdGUsIFRvZ2dsZUJpdGZpZWxkLCB0eXBlIFVzZXIsIFVzZXJUb2dnbGVzIH0gZnJvbSAnLi4vaW5kZXguanMnXG5cbmV4cG9ydCBjb25zdCBiYXNlVXNlcjogSW50ZXJuYWxCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWyd1c2VyJ10gPSB7XG4gIC8vIFRoaXMgYWxsb3dzIHR5cGVzY3JpcHQgdG8gc3RpbGwgY2hlY2sgZm9yIHR5cGUgZXJyb3JzIG9uIGZ1bmN0aW9ucyBiZWxvd1xuICAuLi4odW5kZWZpbmVkIGFzIHVua25vd24gYXMgSW50ZXJuYWxCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWyd1c2VyJ10pLFxuXG4gIGdldCB0YWcoKSB7XG4gICAgcmV0dXJuIGAke3RoaXMudXNlcm5hbWV9IyR7dGhpcy5kaXNjcmltaW5hdG9yfWBcbiAgfSxcbiAgZ2V0IGJvdCgpIHtcbiAgICByZXR1cm4gISF0aGlzLnRvZ2dsZXM/LmhhcygnYm90JylcbiAgfSxcbiAgZ2V0IHN5c3RlbSgpIHtcbiAgICByZXR1cm4gISF0aGlzLnRvZ2dsZXM/Lmhhcygnc3lzdGVtJylcbiAgfSxcbiAgZ2V0IG1mYUVuYWJsZWQoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5oYXMoJ21mYUVuYWJsZWQnKVxuICB9LFxuICBnZXQgdmVyaWZpZWQoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5oYXMoJ3ZlcmlmaWVkJylcbiAgfSxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybVVzZXIoYm90OiBJbnRlcm5hbEJvdCwgcGF5bG9hZDogRGlzY29yZFVzZXIpOiB0eXBlb2YgYm90LnRyYW5zZm9ybWVycy4kaW5mZXJyZWRUeXBlcy51c2VyIHtcbiAgY29uc3QgdXNlcjogVXNlciA9IE9iamVjdC5jcmVhdGUoYmFzZVVzZXIpXG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy51c2VyXG5cbiAgaWYgKHByb3BzLnRvZ2dsZXMpIHVzZXIudG9nZ2xlcyA9IG5ldyBVc2VyVG9nZ2xlcyhwYXlsb2FkKVxuICBpZiAocHJvcHMuZmxhZ3MpIHVzZXIuZmxhZ3MgPSBuZXcgVG9nZ2xlQml0ZmllbGQocGF5bG9hZC5mbGFncylcbiAgaWYgKHByb3BzLnB1YmxpY0ZsYWdzKSB1c2VyLnB1YmxpY0ZsYWdzID0gbmV3IFRvZ2dsZUJpdGZpZWxkKHBheWxvYWQucHVibGljX2ZsYWdzKVxuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5pZCkgdXNlci5pZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaWQpXG4gIGlmIChwcm9wcy51c2VybmFtZSAmJiBwYXlsb2FkLnVzZXJuYW1lKSB1c2VyLnVzZXJuYW1lID0gcGF5bG9hZC51c2VybmFtZVxuICBpZiAocHJvcHMuZ2xvYmFsTmFtZSAmJiBwYXlsb2FkLmdsb2JhbF9uYW1lKSB1c2VyLmdsb2JhbE5hbWUgPSBwYXlsb2FkLmdsb2JhbF9uYW1lXG4gIGlmIChwcm9wcy5kaXNjcmltaW5hdG9yICYmIHBheWxvYWQuZGlzY3JpbWluYXRvcikgdXNlci5kaXNjcmltaW5hdG9yID0gcGF5bG9hZC5kaXNjcmltaW5hdG9yXG4gIGlmIChwcm9wcy5sb2NhbGUgJiYgcGF5bG9hZC5sb2NhbGUpIHVzZXIubG9jYWxlID0gcGF5bG9hZC5sb2NhbGVcbiAgaWYgKHByb3BzLmVtYWlsICYmIHBheWxvYWQuZW1haWwpIHVzZXIuZW1haWwgPSBwYXlsb2FkLmVtYWlsXG4gIGlmIChwcm9wcy5wcmVtaXVtVHlwZSAmJiBwYXlsb2FkLnByZW1pdW1fdHlwZSkgdXNlci5wcmVtaXVtVHlwZSA9IHBheWxvYWQucHJlbWl1bV90eXBlXG4gIGlmIChwcm9wcy5hdmF0YXIgJiYgcGF5bG9hZC5hdmF0YXIpIHVzZXIuYXZhdGFyID0gaWNvbkhhc2hUb0JpZ0ludChwYXlsb2FkLmF2YXRhcilcbiAgaWYgKHByb3BzLmJhbm5lciAmJiBwYXlsb2FkLmJhbm5lcikgdXNlci5iYW5uZXIgPSBpY29uSGFzaFRvQmlnSW50KHBheWxvYWQuYmFubmVyKVxuICBpZiAocHJvcHMuYWNjZW50Q29sb3IgJiYgcGF5bG9hZC5hY2NlbnRfY29sb3IpIHVzZXIuYWNjZW50Q29sb3IgPSBwYXlsb2FkLmFjY2VudF9jb2xvclxuICBpZiAocHJvcHMuYXZhdGFyRGVjb3JhdGlvbkRhdGEgJiYgcGF5bG9hZC5hdmF0YXJfZGVjb3JhdGlvbl9kYXRhKVxuICAgIHVzZXIuYXZhdGFyRGVjb3JhdGlvbkRhdGEgPSBib3QudHJhbnNmb3JtZXJzLmF2YXRhckRlY29yYXRpb25EYXRhKGJvdCwgcGF5bG9hZC5hdmF0YXJfZGVjb3JhdGlvbl9kYXRhKVxuICBpZiAocHJvcHMuY29sbGVjdGlibGVzICYmIHBheWxvYWQuY29sbGVjdGlibGVzKSB1c2VyLmNvbGxlY3RpYmxlcyA9IGJvdC50cmFuc2Zvcm1lcnMuY29sbGVjdGlibGVzKGJvdCwgcGF5bG9hZC5jb2xsZWN0aWJsZXMpXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMudXNlcihib3QsIHBheWxvYWQsIHVzZXIpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1Db2xsZWN0aWJsZXMoYm90OiBJbnRlcm5hbEJvdCwgcGF5bG9hZDogRGlzY29yZENvbGxlY3RpYmxlcyk6IENvbGxlY3RpYmxlcyB7XG4gIGNvbnN0IGNvbGxlY3RpYmxlcyA9IHt9IGFzIENvbGxlY3RpYmxlc1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuY29sbGVjdGlibGVzXG5cbiAgaWYgKHByb3BzLm5hbWVwbGF0ZSAmJiBwYXlsb2FkLm5hbWVwbGF0ZSkgY29sbGVjdGlibGVzLm5hbWVwbGF0ZSA9IGJvdC50cmFuc2Zvcm1lcnMubmFtZXBsYXRlKGJvdCwgcGF5bG9hZC5uYW1lcGxhdGUpXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMuY29sbGVjdGlibGVzKGJvdCwgcGF5bG9hZCwgY29sbGVjdGlibGVzKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtTmFtZXBsYXRlKGJvdDogSW50ZXJuYWxCb3QsIHBheWxvYWQ6IERpc2NvcmROYW1lcGxhdGUpOiBOYW1lcGxhdGUge1xuICBjb25zdCBuYW1lcGxhdGUgPSB7fSBhcyBOYW1lcGxhdGVcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLm5hbWVwbGF0ZVxuXG4gIGlmIChwcm9wcy5za3VJZCAmJiBwYXlsb2FkLnNrdV9pZCkgbmFtZXBsYXRlLnNrdUlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5za3VfaWQpXG4gIGlmIChwcm9wcy5hc3NldCAmJiBwYXlsb2FkLmFzc2V0KSBuYW1lcGxhdGUuYXNzZXQgPSBwYXlsb2FkLmFzc2V0XG4gIGlmIChwcm9wcy5sYWJlbCAmJiBwYXlsb2FkLmxhYmVsKSBuYW1lcGxhdGUubGFiZWwgPSBwYXlsb2FkLmxhYmVsXG4gIGlmIChwcm9wcy5wYWxldHRlICYmIHBheWxvYWQucGFsZXR0ZSkgbmFtZXBsYXRlLnBhbGV0dGUgPSBwYXlsb2FkLnBhbGV0dGVcblxuICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jdXN0b21pemVycy5uYW1lcGxhdGUoYm90LCBwYXlsb2FkLCBuYW1lcGxhdGUpXG59XG4iXSwibmFtZXMiOlsiYmFzZVVzZXIiLCJ0cmFuc2Zvcm1Db2xsZWN0aWJsZXMiLCJ0cmFuc2Zvcm1OYW1lcGxhdGUiLCJ0cmFuc2Zvcm1Vc2VyIiwidW5kZWZpbmVkIiwidGFnIiwidXNlcm5hbWUiLCJkaXNjcmltaW5hdG9yIiwiYm90IiwidG9nZ2xlcyIsImhhcyIsInN5c3RlbSIsIm1mYUVuYWJsZWQiLCJ2ZXJpZmllZCIsInBheWxvYWQiLCJ1c2VyIiwiT2JqZWN0IiwiY3JlYXRlIiwicHJvcHMiLCJ0cmFuc2Zvcm1lcnMiLCJkZXNpcmVkUHJvcGVydGllcyIsIlVzZXJUb2dnbGVzIiwiZmxhZ3MiLCJUb2dnbGVCaXRmaWVsZCIsInB1YmxpY0ZsYWdzIiwicHVibGljX2ZsYWdzIiwiaWQiLCJzbm93Zmxha2UiLCJnbG9iYWxOYW1lIiwiZ2xvYmFsX25hbWUiLCJsb2NhbGUiLCJlbWFpbCIsInByZW1pdW1UeXBlIiwicHJlbWl1bV90eXBlIiwiYXZhdGFyIiwiaWNvbkhhc2hUb0JpZ0ludCIsImJhbm5lciIsImFjY2VudENvbG9yIiwiYWNjZW50X2NvbG9yIiwiYXZhdGFyRGVjb3JhdGlvbkRhdGEiLCJhdmF0YXJfZGVjb3JhdGlvbl9kYXRhIiwiY29sbGVjdGlibGVzIiwiY3VzdG9taXplcnMiLCJuYW1lcGxhdGUiLCJza3VJZCIsInNrdV9pZCIsImFzc2V0IiwibGFiZWwiLCJwYWxldHRlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztJQUlhQSxRQUFRO2VBQVJBOztJQTZDR0MscUJBQXFCO2VBQXJCQTs7SUFTQUMsa0JBQWtCO2VBQWxCQTs7SUFqQ0FDLGFBQWE7ZUFBYkE7Ozt1QkF4QmlCO3VCQUMyRTtBQUVyRyxNQUFNSCxXQUFrRTtJQUM3RSwyRUFBMkU7SUFDM0UsR0FBSUksU0FBUztJQUViLElBQUlDLE9BQU07UUFDUixPQUFPLEdBQUcsSUFBSSxDQUFDQyxRQUFRLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQ0MsYUFBYSxFQUFFO0lBQ2pEO0lBQ0EsSUFBSUMsT0FBTTtRQUNSLE9BQU8sQ0FB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