@discordeno/bot 19.0.0-next.f8f976a → 19.0.0-next.f9bdfce

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 (93) hide show
  1. package/README.md +30 -0
  2. package/dist/cjs/bot.cjs +1 -1
  3. package/dist/cjs/handlers/emojis/GUILD_EMOJIS_UPDATE.cjs +2 -2
  4. package/dist/cjs/handlers/guilds/GUILD_STICKERS_UPDATE.cjs +8 -5
  5. package/dist/cjs/handlers/interactions/INTERACTION_CREATE.cjs +6 -3
  6. package/dist/cjs/handlers/messages/MESSAGE_REACTION_ADD.cjs +4 -2
  7. package/dist/cjs/handlers/messages/MESSAGE_REACTION_REMOVE.cjs +3 -2
  8. package/dist/cjs/transformers/attachment.cjs +2 -1
  9. package/dist/cjs/transformers/avatarDecorationData.cjs +20 -0
  10. package/dist/cjs/transformers/channel.cjs +29 -2
  11. package/dist/cjs/transformers/emoji.cjs +19 -4
  12. package/dist/cjs/transformers/guild.cjs +5 -2
  13. package/dist/cjs/transformers/index.cjs +2 -1
  14. package/dist/cjs/transformers/interaction.cjs +38 -41
  15. package/dist/cjs/transformers/invite.cjs +2 -1
  16. package/dist/cjs/transformers/member.cjs +3 -2
  17. package/dist/cjs/transformers/message.cjs +32 -33
  18. package/dist/cjs/transformers/reverse/member.cjs +7 -2
  19. package/dist/cjs/transformers/sku.cjs +1 -1
  20. package/dist/cjs/transformers/toggles/Permissions.cjs +2 -2
  21. package/dist/cjs/transformers/toggles/channel.cjs +7 -2
  22. package/dist/cjs/transformers/toggles/guild.cjs +74 -52
  23. package/dist/cjs/transformers/user.cjs +2 -2
  24. package/dist/cjs/transformers.cjs +48 -7
  25. package/dist/cjs/typings.cjs +4 -26
  26. package/dist/esm/bot.js +1 -1
  27. package/dist/esm/handlers/emojis/GUILD_EMOJIS_UPDATE.js +2 -2
  28. package/dist/esm/handlers/guilds/GUILD_STICKERS_UPDATE.js +8 -5
  29. package/dist/esm/handlers/interactions/INTERACTION_CREATE.js +6 -3
  30. package/dist/esm/handlers/messages/MESSAGE_REACTION_ADD.js +4 -2
  31. package/dist/esm/handlers/messages/MESSAGE_REACTION_REMOVE.js +3 -2
  32. package/dist/esm/transformers/attachment.js +2 -1
  33. package/dist/esm/transformers/avatarDecorationData.js +10 -0
  34. package/dist/esm/transformers/channel.js +27 -3
  35. package/dist/esm/transformers/emoji.js +8 -1
  36. package/dist/esm/transformers/guild.js +5 -2
  37. package/dist/esm/transformers/index.js +2 -1
  38. package/dist/esm/transformers/interaction.js +37 -40
  39. package/dist/esm/transformers/invite.js +2 -1
  40. package/dist/esm/transformers/member.js +3 -2
  41. package/dist/esm/transformers/message.js +3 -4
  42. package/dist/esm/transformers/reverse/member.js +7 -2
  43. package/dist/esm/transformers/sku.js +1 -1
  44. package/dist/esm/transformers/toggles/Permissions.js +2 -2
  45. package/dist/esm/transformers/toggles/channel.js +7 -2
  46. package/dist/esm/transformers/toggles/guild.js +74 -52
  47. package/dist/esm/transformers/user.js +2 -2
  48. package/dist/esm/transformers.js +51 -10
  49. package/dist/esm/typings.js +1 -15
  50. package/dist/types/bot.d.ts +9 -3
  51. package/dist/types/bot.d.ts.map +1 -1
  52. package/dist/types/handlers/guilds/GUILD_STICKERS_UPDATE.d.ts.map +1 -1
  53. package/dist/types/handlers/interactions/INTERACTION_CREATE.d.ts +1 -1
  54. package/dist/types/handlers/interactions/INTERACTION_CREATE.d.ts.map +1 -1
  55. package/dist/types/handlers/messages/MESSAGE_REACTION_ADD.d.ts.map +1 -1
  56. package/dist/types/handlers/messages/MESSAGE_REACTION_REMOVE.d.ts.map +1 -1
  57. package/dist/types/transformers/attachment.d.ts +2 -0
  58. package/dist/types/transformers/attachment.d.ts.map +1 -1
  59. package/dist/types/transformers/avatarDecorationData.d.ts +9 -0
  60. package/dist/types/transformers/avatarDecorationData.d.ts.map +1 -0
  61. package/dist/types/transformers/channel.d.ts +38 -4
  62. package/dist/types/transformers/channel.d.ts.map +1 -1
  63. package/dist/types/transformers/emoji.d.ts +8 -1
  64. package/dist/types/transformers/emoji.d.ts.map +1 -1
  65. package/dist/types/transformers/guild.d.ts +3 -3
  66. package/dist/types/transformers/guild.d.ts.map +1 -1
  67. package/dist/types/transformers/index.d.ts +1 -0
  68. package/dist/types/transformers/index.d.ts.map +1 -1
  69. package/dist/types/transformers/interaction.d.ts +8 -14
  70. package/dist/types/transformers/interaction.d.ts.map +1 -1
  71. package/dist/types/transformers/invite.d.ts +3 -1
  72. package/dist/types/transformers/invite.d.ts.map +1 -1
  73. package/dist/types/transformers/member.d.ts +4 -1
  74. package/dist/types/transformers/member.d.ts.map +1 -1
  75. package/dist/types/transformers/message.d.ts +2 -2
  76. package/dist/types/transformers/message.d.ts.map +1 -1
  77. package/dist/types/transformers/reverse/member.d.ts.map +1 -1
  78. package/dist/types/transformers/sku.d.ts +2 -2
  79. package/dist/types/transformers/sku.d.ts.map +1 -1
  80. package/dist/types/transformers/toggles/Permissions.d.ts +4 -4
  81. package/dist/types/transformers/toggles/Permissions.d.ts.map +1 -1
  82. package/dist/types/transformers/toggles/channel.d.ts +3 -0
  83. package/dist/types/transformers/toggles/channel.d.ts.map +1 -1
  84. package/dist/types/transformers/toggles/guild.d.ts +50 -35
  85. package/dist/types/transformers/toggles/guild.d.ts.map +1 -1
  86. package/dist/types/transformers/user.d.ts +3 -3
  87. package/dist/types/transformers/user.d.ts.map +1 -1
  88. package/dist/types/transformers.d.ts +50 -8
  89. package/dist/types/transformers.d.ts.map +1 -1
  90. package/dist/types/typings.d.ts +0 -24
  91. package/dist/types/typings.d.ts.map +1 -1
  92. package/package.json +13 -13
  93. package/dist/tsconfig.tsbuildinfo +0 -1
@@ -3,12 +3,15 @@ import { Collection, iconHashToBigInt } from '@discordeno/utils';
3
3
  import { GuildToggles } from './toggles/guild.js';
4
4
  const baseGuild = {
5
5
  get threads () {
6
- if (!this.channels) return;
6
+ if (!this.channels) return new Collection();
7
7
  const threads = this.channels.array().filter((x)=>x.type === ChannelTypes.PublicThread || x.type === ChannelTypes.PrivateThread || x.type === ChannelTypes.AnnouncementThread);
8
8
  return new Collection(threads.map((x)=>[
9
9
  x.id,
10
10
  x
11
11
  ]));
12
+ },
13
+ get features () {
14
+ return this.toggles.features;
12
15
  }
13
16
  };
14
17
  export function transformGuild(bot, payload) {
@@ -130,4 +133,4 @@ export function transformGuild(bot, payload) {
130
133
  return bot.transformers.customizers.guild(bot, payload.guild, guild);
131
134
  }
132
135
 
133
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvZ3VpbGQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbm5lbFR5cGVzLFxuICB0eXBlIERlZmF1bHRNZXNzYWdlTm90aWZpY2F0aW9uTGV2ZWxzLFxuICB0eXBlIERpc2NvcmRHdWlsZCxcbiAgdHlwZSBEaXNjb3JkUHJlc2VuY2VVcGRhdGUsXG4gIHR5cGUgRXhwbGljaXRDb250ZW50RmlsdGVyTGV2ZWxzLFxuICB0eXBlIEd1aWxkRmVhdHVyZXMsXG4gIHR5cGUgR3VpbGROc2Z3TGV2ZWwsXG4gIHR5cGUgTWZhTGV2ZWxzLFxuICB0eXBlIFByZW1pdW1UaWVycyxcbiAgdHlwZSBTeXN0ZW1DaGFubmVsRmxhZ3MsXG4gIHR5cGUgVmVyaWZpY2F0aW9uTGV2ZWxzLFxufSBmcm9tICdAZGlzY29yZGVuby90eXBlcydcbmltcG9ydCB7IENvbGxlY3Rpb24sIGljb25IYXNoVG9CaWdJbnQgfSBmcm9tICdAZGlzY29yZGVuby91dGlscydcbmltcG9ydCB0eXBlIHsgQm90LCBDaGFubmVsLCBNZW1iZXIsIFByZXNlbmNlVXBkYXRlLCBSb2xlLCBTdGFnZUluc3RhbmNlLCBTdGlja2VyLCBWb2ljZVN0YXRlLCBXZWxjb21lU2NyZWVuIH0gZnJvbSAnLi4vaW5kZXguanMnXG5pbXBvcnQgdHlwZSB7IEVtb2ppIH0gZnJvbSAnLi4vdHJhbnNmb3JtZXJzL2Vtb2ppLmpzJ1xuaW1wb3J0IHsgR3VpbGRUb2dnbGVzIH0gZnJvbSAnLi90b2dnbGVzL2d1aWxkLmpzJ1xuXG5jb25zdCBiYXNlR3VpbGQgPSB7XG4gIGdldCB0aHJlYWRzKCkge1xuICAgIGlmICghdGhpcy5jaGFubmVscykgcmV0dXJuXG5cbiAgICBjb25zdCB0aHJlYWRzID0gdGhpcy5jaGFubmVsc1xuICAgICAgLmFycmF5KClcbiAgICAgIC5maWx0ZXIoKHgpID0+IHgudHlwZSA9PT0gQ2hhbm5lbFR5cGVzLlB1YmxpY1RocmVhZCB8fCB4LnR5cGUgPT09IENoYW5uZWxUeXBlcy5Qcml2YXRlVGhyZWFkIHx8IHgudHlwZSA9PT0gQ2hhbm5lbFR5cGVzLkFubm91bmNlbWVudFRocmVhZClcblxuICAgIHJldHVybiBuZXcgQ29sbGVjdGlvbih0aHJlYWRzLm1hcCgoeCkgPT4gW3guaWQsIHhdKSlcbiAgfSxcbn0gYXMgR3VpbGRcblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybUd1aWxkKGJvdDogQm90LCBwYXlsb2FkOiB7IGd1aWxkOiBEaXNjb3JkR3VpbGQgfSAmIHsgc2hhcmRJZDogbnVtYmVyIH0pOiBHdWlsZCB7XG4gIGNvbnN0IGd1aWxkSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmd1aWxkLmlkKVxuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuZ3VpbGRcbiAgY29uc3QgZ3VpbGQ6IEd1aWxkID0gT2JqZWN0LmNyZWF0ZShiYXNlR3VpbGQpXG5cbiAgaWYgKHByb3BzLmFma1RpbWVvdXQgJiYgcGF5bG9hZC5ndWlsZC5hZmtfdGltZW91dCkgZ3VpbGQuYWZrVGltZW91dCA9IHBheWxvYWQuZ3VpbGQuYWZrX3RpbWVvdXRcbiAgaWYgKHByb3BzLmFwcHJveGltYXRlTWVtYmVyQ291bnQgJiYgcGF5bG9hZC5ndWlsZC5hcHByb3hpbWF0ZV9tZW1iZXJfY291bnQpIGd1aWxkLmFwcHJveGltYXRlTWVtYmVyQ291bnQgPSBwYXlsb2FkLmd1aWxkLmFwcHJveGltYXRlX21lbWJlcl9jb3VudFxuICBpZiAocHJvcHMuYXBwcm94aW1hdGVQcmVzZW5jZUNvdW50ICYmIHBheWxvYWQuZ3VpbGQuYXBwcm94aW1hdGVfcHJlc2VuY2VfY291bnQpXG4gICAgZ3VpbGQuYXBwcm94aW1hdGVQcmVzZW5jZUNvdW50ID0gcGF5bG9hZC5ndWlsZC5hcHByb3hpbWF0ZV9wcmVzZW5jZV9jb3VudFxuICBpZiAocHJvcHMuZGVmYXVsdE1lc3NhZ2VOb3RpZmljYXRpb25zKSBndWlsZC5kZWZhdWx0TWVzc2FnZU5vdGlmaWNhdGlvbnMgPSBwYXlsb2FkLmd1aWxkLmRlZmF1bHRfbWVzc2FnZV9ub3RpZmljYXRpb25zXG4gIGlmIChwcm9wcy5kZXNjcmlwdGlvbiAmJiBwYXlsb2FkLmd1aWxkLmRlc2NyaXB0aW9uKSBndWlsZC5kZXNjcmlwdGlvbiA9IHBheWxvYWQuZ3VpbGQuZGVzY3JpcHRpb25cbiAgaWYgKHByb3BzLnRvZ2dsZXMpIGd1aWxkLnRvZ2dsZXMgPSBuZXcgR3VpbGRUb2dnbGVzKHBheWxvYWQuZ3VpbGQpXG4gIGlmIChwcm9wcy5leHBsaWNpdENvbnRlbnRGaWx0ZXIpIGd1aWxkLmV4cGxpY2l0Q29udGVudEZpbHRlciA9IHBheWxvYWQuZ3VpbGQuZXhwbGljaXRfY29udGVudF9maWx0ZXJcbiAgaWYgKHByb3BzLm1heE1lbWJlcnMgJiYgcGF5bG9hZC5ndWlsZC5tYXhfbWVtYmVycykgZ3VpbGQubWF4TWVtYmVycyA9IHBheWxvYWQuZ3VpbGQubWF4X21lbWJlcnNcbiAgaWYgKHByb3BzLm1heFByZXNlbmNlcyAmJiBwYXlsb2FkLmd1aWxkLm1heF9wcmVzZW5jZXMpIGd1aWxkLm1heFByZXNlbmNlcyA9IHBheWxvYWQuZ3VpbGQubWF4X3ByZXNlbmNlcyA/PyB1bmRlZmluZWRcbiAgaWYgKHByb3BzLm1heFZpZGVvQ2hhbm5lbFVzZXJzICYmIHBheWxvYWQuZ3VpbGQubWF4X3ZpZGVvX2NoYW5uZWxfdXNlcnMpIGd1aWxkLm1heFZpZGVvQ2hhbm5lbFVzZXJzID0gcGF5bG9hZC5ndWlsZC5tYXhfdmlkZW9fY2hhbm5lbF91c2Vyc1xuICBpZiAocHJvcHMubWZhTGV2ZWwpIGd1aWxkLm1mYUxldmVsID0gcGF5bG9hZC5ndWlsZC5tZmFfbGV2ZWxcbiAgaWYgKHByb3BzLm5hbWUgJiYgcGF5bG9hZC5ndWlsZC5uYW1lKSBndWlsZC5uYW1lID0gcGF5bG9hZC5ndWlsZC5uYW1lXG4gIGlmIChwcm9wcy5uc2Z3TGV2ZWwpIGd1aWxkLm5zZndMZXZlbCA9IHBheWxvYWQuZ3VpbGQubnNmd19sZXZlbFxuICBpZiAocHJvcHMucHJlZmVycmVkTG9jYWxlICYmIHBheWxvYWQuZ3VpbGQucHJlZmVycmVkX2xvY2FsZSkgZ3VpbGQucHJlZmVycmVkTG9jYWxlID0gcGF5bG9hZC5ndWlsZC5wcmVmZXJyZWRfbG9jYWxlXG4gIGlmIChwcm9wcy5wcmVtaXVtU3Vic2NyaXB0aW9uQ291bnQgJiYgcGF5bG9hZC5ndWlsZC5wcmVtaXVtX3N1YnNjcmlwdGlvbl9jb3VudCAhPT0gdW5kZWZpbmVkKVxuICAgIGd1aWxkLnByZW1pdW1TdWJzY3JpcHRpb25Db3VudCA9IHBheWxvYWQuZ3VpbGQucHJlbWl1bV9zdWJzY3JpcHRpb25fY291bnRcbiAgaWYgKHByb3BzLnByZW1pdW1UaWVyKSBndWlsZC5wcmVtaXVtVGllciA9IHBheWxvYWQuZ3VpbGQucHJlbWl1bV90aWVyXG4gIGlmIChwcm9wcy5zdGFnZUluc3RhbmNlcyAmJiBwYXlsb2FkLmd1aWxkLnN0YWdlX2luc3RhbmNlcylcbiAgICBndWlsZC5zdGFnZUluc3RhbmNlcyA9IHBheWxvYWQuZ3VpbGQuc3RhZ2VfaW5zdGFuY2VzLm1hcCgoc2kpID0+ICh7XG4gICAgICAvKiogVGhlIGlkIG9mIHRoaXMgU3RhZ2UgaW5zdGFuY2UgKi9cbiAgICAgIGlkOiBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShzaS5pZCksXG4gICAgICAvKiogVGhlIGd1aWxkIGlkIG9mIHRoZSBhc3NvY2lhdGVkIFN0YWdlIGNoYW5uZWwgKi9cbiAgICAgIGd1aWxkSWQsXG4gICAgICAvKiogVGhlIGlkIG9mIHRoZSBhc3NvY2lhdGVkIFN0YWdlIGNoYW5uZWwgKi9cbiAgICAgIGNoYW5uZWxJZDogYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2Uoc2kuY2hhbm5lbF9pZCksXG4gICAgICAvKiogVGhlIHRvcGljIG9mIHRoZSBTdGFnZSBpbnN0YW5jZSAoMS0xMjAgY2hhcmFjdGVycykgKi9cbiAgICAgIHRvcGljOiBzaS50b3BpYyxcbiAgICB9KSlcbiAgaWYgKHByb3BzLmNoYW5uZWxzICYmICghIXBheWxvYWQuZ3VpbGQuY2hhbm5lbHMgfHwgISFwYXlsb2FkLmd1aWxkLnRocmVhZHMpKVxuICAgIGd1aWxkLmNoYW5uZWxzID0gbmV3IENvbGxlY3Rpb24oXG4gICAgICBbLi4uKHBheWxvYWQuZ3VpbGQuY2hhbm5lbHMgPz8gW10pLCAuLi4ocGF5bG9hZC5ndWlsZC50aHJlYWRzID8/IFtdKV0ubWFwKChjaGFubmVsKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGJvdC50cmFuc2Zvcm1lcnMuY2hhbm5lbChib3QsIHsgY2hhbm5lbCwgZ3VpbGRJZCB9KVxuICAgICAgICByZXR1cm4gW3Jlc3VsdC5pZCwgcmVzdWx0XVxuICAgICAgfSksXG4gICAgKVxuICBpZiAocHJvcHMubWVtYmVycyAmJiBwYXlsb2FkLmd1aWxkLm1lbWJlcnMpXG4gICAgZ3VpbGQubWVtYmVycyA9IG5ldyBDb2xsZWN0aW9uKFxuICAgICAgcGF5bG9hZC5ndWlsZC5tZW1iZXJzLm1hcCgobWVtYmVyKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGJvdC50cmFuc2Zvcm1lcnMubWVtYmVyKGJvdCwgbWVtYmVyLCBndWlsZElkLCBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShtZW1iZXIudXNlciEuaWQpKVxuICAgICAgICByZXR1cm4gW3Jlc3VsdC5pZCwgcmVzdWx0XVxuICAgICAgfSksXG4gICAgKVxuICBpZiAocHJvcHMucm9sZXMgJiYgcGF5bG9hZC5ndWlsZC5yb2xlcylcbiAgICBndWlsZC5yb2xlcyA9IG5ldyBDb2xsZWN0aW9uKFxuICAgICAgcGF5bG9hZC5ndWlsZC5yb2xlcy5tYXAoKHJvbGUpID0+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYm90LnRyYW5zZm9ybWVycy5yb2xlKGJvdCwgeyByb2xlLCBndWlsZElkIH0pXG4gICAgICAgIHJldHVybiBbcmVzdWx0LmlkLCByZXN1bHRdXG4gICAgICB9KSxcbiAgICApXG4gIGlmIChwcm9wcy5lbW9qaXMgJiYgcGF5bG9hZC5ndWlsZC5lbW9qaXMpXG4gICAgZ3VpbGQuZW1vamlzID0gbmV3IENvbGxlY3Rpb24oXG4gICAgICBwYXlsb2FkLmd1aWxkLmVtb2ppcy5tYXAoKGVtb2ppKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGJvdC50cmFuc2Zvcm1lcnMuZW1vamkoYm90LCBlbW9qaSlcbiAgICAgICAgcmV0dXJuIFtyZXN1bHQuaWQhLCByZXN1bHRdXG4gICAgICB9KSxcbiAgICApXG4gIGlmIChwcm9wcy52b2ljZVN0YXRlcyAmJiBwYXlsb2FkLmd1aWxkLnZvaWNlX3N0YXRlcylcbiAgICBndWlsZC52b2ljZVN0YXRlcyA9IG5ldyBDb2xsZWN0aW9uKFxuICAgICAgcGF5bG9hZC5ndWlsZC52b2ljZV9zdGF0ZXMubWFwKCh2b2ljZVN0YXRlKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGJvdC50cmFuc2Zvcm1lcnMudm9pY2VTdGF0ZShib3QsIHsgdm9pY2VTdGF0ZSwgZ3VpbGRJZCB9KVxuICAgICAgICByZXR1cm4gW3Jlc3VsdC51c2VySWQsIHJlc3VsdF1cbiAgICAgIH0pLFxuICAgIClcbiAgaWYgKHByb3BzLnN0aWNrZXJzICYmIHBheWxvYWQuZ3VpbGQuc3RpY2tlcnMpXG4gICAgZ3VpbGQuc3RpY2tlcnMgPSBuZXcgQ29sbGVjdGlvbihcbiAgICAgIHBheWxvYWQuZ3VpbGQuc3RpY2tlcnM/Lm1hcCgoc3RpY2tlcikgPT4ge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBib3QudHJhbnNmb3JtZXJzLnN0aWNrZXIoYm90LCBzdGlja2VyKVxuICAgICAgICByZXR1cm4gW3Jlc3VsdC5pZCwgcmVzdWx0XVxuICAgICAgfSksXG4gICAgKVxuICBpZiAocHJvcHMuc3lzdGVtQ2hhbm5lbEZsYWdzICYmIHBheWxvYWQuZ3VpbGQuc3lzdGVtX2NoYW5uZWxfZmxhZ3MpIGd1aWxkLnN5c3RlbUNoYW5uZWxGbGFncyA9IHBheWxvYWQuZ3VpbGQuc3lzdGVtX2NoYW5uZWxfZmxhZ3NcbiAgaWYgKHByb3BzLnZhbml0eVVybENvZGUgJiYgcGF5bG9hZC5ndWlsZC52YW5pdHlfdXJsX2NvZGUpIGd1aWxkLnZhbml0eVVybENvZGUgPSBwYXlsb2FkLmd1aWxkLnZhbml0eV91cmxfY29kZVxuICBpZiAocHJvcHMudmVyaWZpY2F0aW9uTGV2ZWwpIGd1aWxkLnZlcmlmaWNhdGlvbkxldmVsID0gcGF5bG9hZC5ndWlsZC52ZXJpZmljYXRpb25fbGV2ZWxcbiAgaWYgKHByb3BzLndlbGNvbWVTY3JlZW4gJiYgcGF5bG9hZC5ndWlsZC53ZWxjb21lX3NjcmVlbilcbiAgICBndWlsZC53ZWxjb21lU2NyZWVuID0ge1xuICAgICAgZGVzY3JpcHRpb246IHBheWxvYWQuZ3VpbGQud2VsY29tZV9zY3JlZW4uZGVzY3JpcHRpb24gPz8gdW5kZWZpbmVkLFxuICAgICAgd2VsY29tZUNoYW5uZWxzOiBwYXlsb2FkLmd1aWxkLndlbGNvbWVfc2NyZWVuLndlbGNvbWVfY2hhbm5lbHMubWFwKCh3YykgPT4gKHtcbiAgICAgICAgY2hhbm5lbElkOiBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZSh3Yy5jaGFubmVsX2lkKSxcbiAgICAgICAgZGVzY3JpcHRpb246IHdjLmRlc2NyaXB0aW9uLFxuICAgICAgICBlbW9qaUlkOiB3Yy5lbW9qaV9pZCA/IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHdjLmVtb2ppX2lkKSA6IHVuZGVmaW5lZCxcbiAgICAgICAgZW1vamlOYW1lOiB3Yy5lbW9qaV9uYW1lID8/IHVuZGVmaW5lZCxcbiAgICAgIH0pKSxcbiAgICB9XG4gIGlmIChwcm9wcy5kaXNjb3ZlcnlTcGxhc2ggJiYgcGF5bG9hZC5ndWlsZC5kaXNjb3Zlcnlfc3BsYXNoKSBndWlsZC5kaXNjb3ZlcnlTcGxhc2ggPSBpY29uSGFzaFRvQmlnSW50KHBheWxvYWQuZ3VpbGQuZGlzY292ZXJ5X3NwbGFzaClcbiAgaWYgKHByb3BzLmpvaW5lZEF0ICYmIHBheWxvYWQuZ3VpbGQuam9pbmVkX2F0KSBndWlsZC5qb2luZWRBdCA9IERhdGUucGFyc2UocGF5bG9hZC5ndWlsZC5qb2luZWRfYXQpXG4gIGlmIChwcm9wcy5tZW1iZXJDb3VudCAmJiBwYXlsb2FkLmd1aWxkLm1lbWJlcl9jb3VudCkgZ3VpbGQubWVtYmVyQ291bnQgPSBwYXlsb2FkLmd1aWxkLm1lbWJlcl9jb3VudCA/PyAwXG4gIGlmIChwcm9wcy5zaGFyZElkKSBndWlsZC5zaGFyZElkID0gcGF5bG9hZC5zaGFyZElkXG4gIGlmIChwcm9wcy5pY29uICYmIHBheWxvYWQuZ3VpbGQuaWNvbikgZ3VpbGQuaWNvbiA9IGljb25IYXNoVG9CaWdJbnQocGF5bG9hZC5ndWlsZC5pY29uKVxuICBpZiAocHJvcHMuYmFubmVyICYmIHBheWxvYWQuZ3VpbGQuYmFubmVyKSBndWlsZC5iYW5uZXIgPSBpY29uSGFzaFRvQmlnSW50KHBheWxvYWQuZ3VpbGQuYmFubmVyKVxuICBpZiAocHJvcHMuc3BsYXNoICYmIHBheWxvYWQuZ3VpbGQuc3BsYXNoKSBndWlsZC5zcGxhc2ggPSBpY29uSGFzaFRvQmlnSW50KHBheWxvYWQuZ3VpbGQuc3BsYXNoKVxuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5ndWlsZC5pZCkgZ3VpbGQuaWQgPSBndWlsZElkXG4gIGlmIChwcm9wcy5vd25lcklkICYmIHBheWxvYWQuZ3VpbGQub3duZXJfaWQpIGd1aWxkLm93bmVySWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmd1aWxkLm93bmVyX2lkKVxuICBpZiAocHJvcHMucGVybWlzc2lvbnMgJiYgcGF5bG9hZC5ndWlsZC5wZXJtaXNzaW9ucykgZ3VpbGQucGVybWlzc2lvbnMgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmd1aWxkLnBlcm1pc3Npb25zKVxuICBpZiAocHJvcHMuYWZrQ2hhbm5lbElkICYmIHBheWxvYWQuZ3VpbGQuYWZrX2NoYW5uZWxfaWQpIGd1aWxkLmFma0NoYW5uZWxJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuZ3VpbGQuYWZrX2NoYW5uZWxfaWQpXG4gIGlmIChwcm9wcy53aWRnZXRDaGFubmVsSWQgJiYgcGF5bG9hZC5ndWlsZC53aWRnZXRfY2hhbm5lbF9pZCkgZ3VpbGQud2lkZ2V0Q2hhbm5lbElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5ndWlsZC53aWRnZXRfY2hhbm5lbF9pZClcbiAgaWYgKHByb3BzLmFwcGxpY2F0aW9uSWQgJiYgcGF5bG9hZC5ndWlsZC5hcHBsaWNhdGlvbl9pZCkgZ3VpbGQuYXBwbGljYXRpb25JZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuZ3VpbGQuYXBwbGljYXRpb25faWQpXG4gIGlmIChwcm9wcy5zeXN0ZW1DaGFubmVsSWQgJiYgcGF5bG9hZC5ndWlsZC5zeXN0ZW1fY2hhbm5lbF9pZCkgZ3VpbGQuc3lzdGVtQ2hhbm5lbElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5ndWlsZC5zeXN0ZW1fY2hhbm5lbF9pZClcbiAgaWYgKHByb3BzLnJ1bGVzQ2hhbm5lbElkICYmIHBheWxvYWQuZ3VpbGQucnVsZXNfY2hhbm5lbF9pZCkgZ3VpbGQucnVsZXNDaGFubmVsSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmd1aWxkLnJ1bGVzX2NoYW5uZWxfaWQpXG4gIGlmIChwcm9wcy5wdWJsaWNVcGRhdGVzQ2hhbm5lbElkICYmIHBheWxvYWQuZ3VpbGQucHVibGljX3VwZGF0ZXNfY2hhbm5lbF9pZClcbiAgICBndWlsZC5wdWJsaWNVcGRhdGVzQ2hhbm5lbElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5ndWlsZC5wdWJsaWNfdXBkYXRlc19jaGFubmVsX2lkKVxuICBpZiAocHJvcHMucHJlbWl1bVByb2dyZXNzQmFyRW5hYmxlZCAmJiBwYXlsb2FkLmd1aWxkLnByZW1pdW1fcHJvZ3Jlc3NfYmFyX2VuYWJsZWQpXG4gICAgZ3VpbGQucHJlbWl1bVByb2dyZXNzQmFyRW5hYmxlZCA9IHBheWxvYWQuZ3VpbGQucHJlbWl1bV9wcm9ncmVzc19iYXJfZW5hYmxlZFxuICBpZiAocHJvcHMubGFyZ2UgJiYgcGF5bG9hZC5ndWlsZC5sYXJnZSkgZ3VpbGQubGFyZ2UgPSBwYXlsb2FkLmd1aWxkLmxhcmdlXG4gIGlmIChwcm9wcy5vd25lciAmJiBwYXlsb2FkLmd1aWxkLm93bmVyKSBndWlsZC5vd25lciA9IHBheWxvYWQuZ3VpbGQub3duZXJcbiAgaWYgKHByb3BzLndpZGdldEVuYWJsZWQgJiYgcGF5bG9hZC5ndWlsZC53aWRnZXRfZW5hYmxlZCkgZ3VpbGQud2lkZ2V0RW5hYmxlZCA9IHBheWxvYWQuZ3VpbGQud2lkZ2V0X2VuYWJsZWRcbiAgaWYgKHByb3BzLnVuYXZhaWxhYmxlICYmIHBheWxvYWQuZ3VpbGQudW5hdmFpbGFibGUpIGd1aWxkLnVuYXZhaWxhYmxlID0gcGF5bG9hZC5ndWlsZC51bmF2YWlsYWJsZVxuICBpZiAocHJvcHMuaWNvbkhhc2ggJiYgcGF5bG9hZC5ndWlsZC5pY29uX2hhc2gpIGd1aWxkLmljb25IYXNoID0gaWNvbkhhc2hUb0JpZ0ludChwYXlsb2FkLmd1aWxkLmljb25faGFzaClcbiAgaWYgKHByb3BzLnByZXNlbmNlcyAmJiBwYXlsb2FkLmd1aWxkLnByZXNlbmNlcylcbiAgICBndWlsZC5wcmVzZW5jZXMgPSBwYXlsb2FkLmd1aWxkLnByZXNlbmNlcz8ubWFwKChwcmVzZW5jZSkgPT4gYm90LnRyYW5zZm9ybWVycy5wcmVzZW5jZShib3QsIHByZXNlbmNlIGFzIERpc2NvcmRQcmVzZW5jZVVwZGF0ZSkpXG4gIGlmIChwcm9wcy5zYWZldHlBbGVydHNDaGFubmVsSWQgJiYgcGF5bG9hZC5ndWlsZC5zYWZldHlfYWxlcnRzX2NoYW5uZWxfaWQpXG4gICAgZ3VpbGQuc2FmZXR5QWxlcnRzQ2hhbm5lbElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5ndWlsZC5zYWZldHlfYWxlcnRzX2NoYW5uZWxfaWQpXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMuZ3VpbGQoYm90LCBwYXlsb2FkLmd1aWxkLCBndWlsZClcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHdWlsZCB7XG4gIC8qKiBHdWlsZCBuYW1lICgyLTEwMCBjaGFyYWN0ZXJzLCBleGNsdWRpbmcgdHJhaWxpbmcgYW5kIGxlYWRpbmcgd2hpdGVzcGFjZSkgKi9cbiAgbmFtZTogc3RyaW5nXG4gIC8qKiBUcnVlIGlmIHRoZSB1c2VyIGlzIHRoZSBvd25lciBvZiB0aGUgZ3VpbGQgKi9cbiAgb3duZXI6IGJvb2xlYW4gfCB1bmRlZmluZWRcbiAgLyoqIEFmayB0aW1lb3V0IGluIHNlY29uZHMgKi9cbiAgYWZrVGltZW91dDogbnVtYmVyXG4gIC8qKiBUcnVlIGlmIHRoZSBzZXJ2ZXIgd2lkZ2V0IGlzIGVuYWJsZWQgKi9cbiAgd2lkZ2V0RW5hYmxlZD86IGJvb2xlYW5cbiAgLyoqIFZlcmlmaWNhdGlvbiBsZXZlbCByZXF1aXJlZCBmb3IgdGhlIGd1aWxkICovXG4gIHZlcmlmaWNhdGlvbkxldmVsOiBWZXJpZmljYXRpb25MZXZlbHNcbiAgLyoqIERlZmF1bHQgbWVzc2FnZSBub3RpZmljYXRpb25zIGxldmVsICovXG4gIGRlZmF1bHRNZXNzYWdlTm90aWZpY2F0aW9uczogRGVmYXVsdE1lc3NhZ2VOb3RpZmljYXRpb25MZXZlbHNcbiAgLyoqIEV4cGxpY2l0IGNvbnRlbnQgZmlsdGVyIGxldmVsICovXG4gIGV4cGxpY2l0Q29udGVudEZpbHRlcjogRXhwbGljaXRDb250ZW50RmlsdGVyTGV2ZWxzXG4gIC8qKiBFbmFibGVkIGd1aWxkIGZlYXR1cmVzICovXG4gIGZlYXR1cmVzOiBHdWlsZEZlYXR1cmVzW11cbiAgLyoqIFJlcXVpcmVkIE1GQSBsZXZlbCBmb3IgdGhlIGd1aWxkICovXG4gIG1mYUxldmVsOiBNZmFMZXZlbHNcbiAgLyoqIFN5c3RlbSBjaGFubmVsIGZsYWdzICovXG4gIHN5c3RlbUNoYW5uZWxGbGFnczogU3lzdGVtQ2hhbm5lbEZsYWdzXG4gIC8qKiBUcnVlIGlmIHRoaXMgaXMgY29uc2lkZXJlZCBhIGxhcmdlIGd1aWxkICovXG4gIGxhcmdlPzogYm9vbGVhblxuICAvKiogVHJ1ZSBpZiB0aGlzIGd1aWxkIGlzIHVuYXZhaWxhYmxlIGR1ZSB0byBhbiBvdXRhZ2UgKi9cbiAgdW5hdmFpbGFibGU/OiBib29sZWFuXG4gIC8qKiBUb3RhbCBudW1iZXIgb2YgbWVtYmVycyBpbiB0aGlzIGd1aWxkICovXG4gIG1lbWJlckNvdW50OiBudW1iZXJcbiAgLyoqIFRoZSBtYXhpbXVtIG51bWJlciBvZiBwcmVzZW5jZXMgZm9yIHRoZSBndWlsZCAodGhlIGRlZmF1bHQgdmFsdWUsIGN1cnJlbnRseSAyNTAwMCwgaXMgaW4gZWZmZWN0IHdoZW4gbnVsbCBpcyByZXR1cm5lZCkgKi9cbiAgbWF4UHJlc2VuY2VzPzogbnVtYmVyXG4gIC8qKiBUaGUgbWF4aW11bSBudW1iZXIgb2YgbWVtYmVycyBmb3IgdGhlIGd1aWxkICovXG4gIG1heE1lbWJlcnM/OiBudW1iZXJcbiAgLyoqIFRoZSB2YW5pdHkgdXJsIGNvZGUgZm9yIHRoZSBndWlsZCAqL1xuICB2YW5pdHlVcmxDb2RlPzogc3RyaW5nXG4gIC8qKiBUaGUgZGVzY3JpcHRpb24gb2YgYSBndWlsZCAqL1xuICBkZXNjcmlwdGlvbj86IHN0cmluZ1xuICB0b2dnbGVzOiBHdWlsZFRvZ2dsZXNcbiAgc2hhcmRJZDogbnVtYmVyXG4gIC8qKiBQcmVtaXVtIHRpZXIgKFNlcnZlciBCb29zdCBsZXZlbCkgKi9cbiAgcHJlbWl1bVRpZXI6IFByZW1pdW1UaWVyc1xuICAvKiogVGhlIG51bWJlciBvZiBib29zdHMgdGhpcyBndWlsZCBjdXJyZW50bHkgaGFzICovXG4gIHByZW1pdW1TdWJzY3JpcHRpb25Db3VudD86IG51bWJlclxuICAvKiogVGhlIG1heGltdW0gYW1vdW50IG9mIHVzZXJzIGluIGEgdmlkZW8gY2hhbm5lbCAqL1xuICBtYXhWaWRlb0NoYW5uZWxVc2Vycz86IG51bWJlclxuICAvKiogTWF4aW11bSBhbW91bnQgb2YgdXNlcnMgaW4gYSBzdGFnZSB2aWRlbyBjaGFubmVsICovXG4gIG1heFN0YWdlVmlkZW9DaGFubmVsVXNlcnM/OiBudW1iZXJcbiAgLyoqIEFwcHJveGltYXRlIG51bWJlciBvZiBtZW1iZXJzIGluIHRoaXMgZ3VpbGQsIHJldHVybmVkIGZyb20gdGhlIEdFVCAvZ3VpbGRzL2lkIGVuZHBvaW50IHdoZW4gd2l0aF9jb3VudHMgaXMgdHJ1ZSAqL1xuICBhcHByb3hpbWF0ZU1lbWJlckNvdW50PzogbnVtYmVyXG4gIC8qKiBBcHByb3hpbWF0ZSBudW1iZXIgb2Ygbm9uLW9mZmxpbmUgbWVtYmVycyBpbiB0aGlzIGd1aWxkLCByZXR1cm5lZCBmcm9tIHRoZSBHRVQgL2d1aWxkcy9pZCBlbmRwb2ludCB3aGVuIHdpdGhfY291bnRzIGlzIHRydWUgKi9cbiAgYXBwcm94aW1hdGVQcmVzZW5jZUNvdW50PzogbnVtYmVyXG4gIC8qKiBHdWlsZCBOU0ZXIGxldmVsICovXG4gIG5zZndMZXZlbDogR3VpbGROc2Z3TGV2ZWxcbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGhhcyB0aGUgYm9vc3QgcHJvZ3Jlc3MgYmFyIGVuYWJsZWQgKi9cbiAgcHJlbWl1bVByb2dyZXNzQmFyRW5hYmxlZDogYm9vbGVhblxuICAvKiogR3VpbGQgaWQgKi9cbiAgaWQ6IGJpZ2ludFxuICAvKiogSWNvbiBoYXNoICovXG4gIGljb24/OiBiaWdpbnRcbiAgLyoqIEljb24gaGFzaCwgcmV0dXJuZWQgd2hlbiBpbiB0aGUgdGVtcGxhdGUgb2JqZWN0ICovXG4gIGljb25IYXNoPzogYmlnaW50XG4gIC8qKiBTcGxhc2ggaGFzaCAqL1xuICBzcGxhc2g/OiBiaWdpbnRcbiAgLyoqIERpc2NvdmVyeSBzcGxhc2ggaGFzaDsgb25seSBwcmVzZW50IGZvciBndWlsZHMgd2l0aCB0aGUgXCJESVNDT1ZFUkFCTEVcIiBmZWF0dXJlICovXG4gIGRpc2NvdmVyeVNwbGFzaD86IGJpZ2ludFxuICAvKiogSWQgb2YgdGhlIG93bmVyICovXG4gIG93bmVySWQ6IGJpZ2ludFxuICAvKiogVG90YWwgcGVybWlzc2lvbnMgZm9yIHRoZSB1c2VyIGluIHRoZSBndWlsZCAoZXhjbHVkZXMgb3ZlcndyaXRlcyBhbmQgaW1wbGljaXQgcGVybWlzc2lvbnMpICovXG4gIHBlcm1pc3Npb25zOiBiaWdpbnRcbiAgLyoqIElkIG9mIGFmayBjaGFubmVsICovXG4gIGFma0NoYW5uZWxJZD86IGJpZ2ludFxuICAvKiogVGhlIGNoYW5uZWwgaWQgdGhhdCB0aGUgd2lkZ2V0IHdpbGwgZ2VuZXJhdGUgYW4gaW52aXRlIHRvLCBvciBudWxsIGlmIHNldCB0byBubyBpbnZpdGUgKi9cbiAgd2lkZ2V0Q2hhbm5lbElkPzogYmlnaW50XG4gIC8qKiBSb2xlcyBpbiB0aGUgZ3VpbGQgKi9cbiAgcm9sZXM6IENvbGxlY3Rpb248YmlnaW50LCBSb2xlPlxuICAvKiogQ3VzdG9tIGd1aWxkIGVtb2ppcyAqL1xuICBlbW9qaXM6IENvbGxlY3Rpb248YmlnaW50LCBFbW9qaT5cbiAgLyoqIEFwcGxpY2F0aW9uIGlkIG9mIHRoZSBndWlsZCBjcmVhdG9yIGlmIGl0IGlzIGJvdC1jcmVhdGVkICovXG4gIGFwcGxpY2F0aW9uSWQ/OiBiaWdpbnRcbiAgLyoqIFRoZSBpZCBvZiB0aGUgY2hhbm5lbCB3aGVyZSBndWlsZCBub3RpY2VzIHN1Y2ggYXMgd2VsY29tZSBtZXNzYWdlcyBhbmQgYm9vc3QgZXZlbnRzIGFyZSBwb3N0ZWQgKi9cbiAgc3lzdGVtQ2hhbm5lbElkPzogYmlnaW50XG4gIC8qKiBUaGUgaWQgb2YgdGhlIGNoYW5uZWwgd2hlcmUgY29tbXVuaXR5IGd1aWxkcyBjYW4gZGlzcGxheSBydWxlcyBhbmQvb3IgZ3VpZGVsaW5lcyAqL1xuICBydWxlc0NoYW5uZWxJZD86IGJpZ2ludFxuICAvKiogV2hlbiB0aGlzIGd1aWxkIHdhcyBqb2luZWQgYXQgKi9cbiAgam9pbmVkQXQ/OiBudW1iZXJcbiAgLyoqIFN0YXRlcyBvZiBtZW1iZXJzIGN1cnJlbnRseSBpbiB2b2ljZSBjaGFubmVsczsgbGFja3MgdGhlIGd1aWxkX2lkIGtleSAqL1xuICB2b2ljZVN0YXRlczogQ29sbGVjdGlvbjxiaWdpbnQsIFZvaWNlU3RhdGU+XG4gIC8qKiBVc2VycyBpbiB0aGUgZ3VpbGQgKi9cbiAgbWVtYmVyczogQ29sbGVjdGlvbjxiaWdpbnQsIE1lbWJlcj5cbiAgLyoqIENoYW5uZWxzIGluIHRoZSBndWlsZCAqL1xuICBjaGFubmVsczogQ29sbGVjdGlvbjxiaWdpbnQsIENoYW5uZWw+XG4gIC8qKiBBbGwgYWN0aXZlIHRocmVhZHMgaW4gdGhlIGd1aWxkIHRoYXQgdGhlIGN1cnJlbnQgdXNlciBoYXMgcGVybWlzc2lvbiB0byB2aWV3ICovXG4gIHRocmVhZHM6IENvbGxlY3Rpb248YmlnaW50LCBDaGFubmVsPlxuICAvKiogUHJlc2VuY2VzIG9mIHRoZSBtZW1iZXJzIGluIHRoZSBndWlsZCwgd2lsbCBvbmx5IGluY2x1ZGUgbm9uLW9mZmxpbmUgbWVtYmVycyBpZiB0aGUgc2l6ZSBpcyBncmVhdGVyIHRoYW4gbGFyZ2UgdGhyZXNob2xkICovXG4gIHByZXNlbmNlcz86IFByZXNlbmNlVXBkYXRlW11cbiAgLyoqIEJhbm5lciBoYXNoICovXG4gIGJhbm5lcj86IGJpZ2ludFxuICAvKiogVGhlIHByZWZlcnJlZCBsb2NhbGUgb2YgYSBDb21tdW5pdHkgZ3VpbGQ7IHVzZWQgaW4gc2VydmVyIGRpc2NvdmVyeSBhbmQgbm90aWNlcyBmcm9tIERpc2NvcmQ7IGRlZmF1bHRzIHRvIFwiZW4tVVNcIiAqL1xuICBwcmVmZXJyZWRMb2NhbGU6IHN0cmluZ1xuICAvKiogVGhlIGlkIG9mIHRoZSBjaGFubmVsIHdoZXJlIGFkbWlucyBhbmQgbW9kZXJhdG9ycyBvZiBDb21tdW5pdHkgZ3VpbGRzIHJlY2VpdmUgbm90aWNlcyBmcm9tIERpc2NvcmQgKi9cbiAgcHVibGljVXBkYXRlc0NoYW5uZWxJZD86IGJpZ2ludFxuICAvKiogVGhlIHdlbGNvbWUgc2NyZWVuIG9mIGEgQ29tbXVuaXR5IGd1aWxkLCBzaG93biB0byBuZXcgbWVtYmVycywgcmV0dXJuZWQgaW4gYW4gSW52aXRlJ3MgZ3VpbGQgb2JqZWN0ICovXG4gIHdlbGNvbWVTY3JlZW4/OiBXZWxjb21lU2NyZWVuXG4gIC8qKiBTdGFnZSBpbnN0YW5jZXMgaW4gdGhlIGd1aWxkICovXG4gIHN0YWdlSW5zdGFuY2VzPzogU3RhZ2VJbnN0YW5jZVtdXG4gIC8qKiBDdXN0b20gZ3VpbGQgc3RpY2tlcnMgKi9cbiAgc3RpY2tlcnM/OiBDb2xsZWN0aW9uPGJpZ2ludCwgU3RpY2tlcj5cbiAgLyoqIFRoZSBpZCBvZiB0aGUgY2hhbm5lbCB3aGVyZSBhZG1pbnMgYW5kIG1vZGVyYXRvcnMgb2YgQ29tbXVuaXR5IGd1aWxkcyByZWNlaXZlIHNhZmV0eSBhbGVydHMgZnJvbSBEaXNjb3JkICovXG4gIHNhZmV0eUFsZXJ0c0NoYW5uZWxJZD86IGJpZ2ludFxufVxuIl0sIm5hbWVzIjpbIkNoYW5uZWxUeXBlcyIsIkNvbGxlY3Rpb24iLCJpY29uSGFzaFRvQmlnSW50IiwiR3VpbGRUb2dnbGVzIiwiYmFzZUd1aWxkIiwidGhyZWFkcyIsImNoYW5uZWxzIiwiYXJyYXkiLCJmaWx0ZXIiLCJ4IiwidHlwZSIsIlB1YmxpY1RocmVhZCIsIlByaXZhdGVUaHJlYWQiLCJBbm5vdW5jZW1lbnRUaHJlYWQiLCJtYXAiLCJpZCIsInRyYW5zZm9ybUd1aWxkIiwiYm90IiwicGF5bG9hZCIsImd1aWxkSWQiLCJ0cmFuc2Zvcm1lcnMiLCJzbm93Zmxha2UiLCJndWlsZCIsInByb3BzIiwiZGVzaXJlZFByb3BlcnRpZXMiLCJPYmplY3QiLCJjcmVhdGUiLCJhZmtUaW1lb3V0IiwiYWZrX3RpbWVvdXQiLCJhcHByb3hpbWF0ZU1lbWJlckNvdW50IiwiYXBwcm94aW1hdGVfbWVtYmVyX2NvdW50IiwiYXBwcm94aW1hdGVQcmVzZW5jZUNvdW50IiwiYXBwcm94aW1hdGVfcHJlc2VuY2VfY291bnQiLCJkZWZhdWx0TWVzc2FnZU5vdGlmaWNhdGlvbnMiLCJkZWZhdWx0X21lc3NhZ2Vfbm90aWZpY2F0aW9ucyIsImRlc2NyaXB0aW9uIiwidG9nZ2xlcyIsImV4cGxpY2l0Q29udGVudEZpbHRlciIsImV4cGxpY2l0X2NvbnRlbnRfZmlsdGVyIiwibWF4TWVtYmVycyIsIm1heF9tZW1iZXJzIiwibWF4UHJlc2VuY2VzIiwibWF4X3ByZXNlbmNlcyIsInVuZGVmaW5lZCIsIm1heFZpZGVvQ2hhbm5lbFVzZXJzIiwibWF4X3ZpZGVvX2NoYW5uZWxfdXNlcnMiLCJtZmFMZXZlbCIsIm1mYV9sZXZlbCIsIm5hbWUiLCJuc2Z3TGV2ZWwiLCJuc2Z3X2xldmVsIiwicHJlZmVycmVkTG9jYWxlIiwicHJlZmVycmVkX2xvY2FsZSIsInByZW1pdW1TdWJzY3JpcHRpb25Db3VudCIsInByZW1pdW1fc3Vic2NyaXB0aW9uX2NvdW50IiwicHJlbWl1bVRpZXIiLCJwcmVtaXVtX3RpZXIiLCJzdGFnZUluc3RhbmNlcyIsInN0YWdlX2luc3RhbmNlcyIsInNpIiwiY2hhbm5lbElkIiwiY2hhbm5lbF9pZCIsInRvcGljIiwiY2hhbm5lbCIsInJlc3VsdCIsIm1lbWJlcnMiLCJtZW1iZXIiLCJ1c2VyIiwicm9sZXMiLCJyb2xlIiwiZW1vamlzIiwiZW1vamkiLCJ2b2ljZVN0YXRlcyIsInZvaWNlX3N0YXRlcyIsInZvaWNlU3RhdGUiLCJ1c2VySWQiLCJzdGlja2VycyIsInN0aWNrZXIiLCJzeXN0ZW1DaGFubmVsRmxhZ3MiLCJzeXN0ZW1fY2hhbm5lbF9mbGFncyIsInZhbml0eVVybENvZGUiLCJ2YW5pdHlfdXJsX2NvZGUiLCJ2ZXJpZmljYXRpb25MZXZlbCIsInZlcmlmaWNhdGlvbl9sZXZlbCIsIndlbGNvbWVTY3JlZW4iLCJ3ZWxjb21lX3NjcmVlbiIsIndlbGNvbWVDaGFubmVscyIsIndlbGNvbWVfY2hhbm5lbHMiLCJ3YyIsImVtb2ppSWQiLCJlbW9qaV9pZCIsImVtb2ppTmFtZSIsImVtb2ppX25hbWUiLCJkaXNjb3ZlcnlTcGxhc2giLCJkaXNjb3Zlcnlfc3BsYXNoIiwiam9pbmVkQXQiLCJqb2luZWRfYXQiLCJEYXRlIiwicGFyc2UiLCJtZW1iZXJDb3VudCIsIm1lbWJlcl9jb3VudCIsInNoYXJkSWQiLCJpY29uIiwiYmFubmVyIiwic3BsYXNoIiwib3duZXJJZCIsIm93bmVyX2lkIiwicGVybWlzc2lvbnMiLCJhZmtDaGFubmVsSWQiLCJhZmtfY2hhbm5lbF9pZCIsIndpZGdldENoYW5uZWxJZCIsIndpZGdldF9jaGFubmVsX2lkIiwiYXBwbGljYXRpb25JZCIsImFwcGxpY2F0aW9uX2lkIiwic3lzdGVtQ2hhbm5lbElkIiwic3lzdGVtX2NoYW5uZWxfaWQiLCJydWxlc0NoYW5uZWxJZCIsInJ1bGVzX2NoYW5uZWxfaWQiLCJwdWJsaWNVcGRhdGVzQ2hhbm5lbElkIiwicHVibGljX3VwZGF0ZXNfY2hhbm5lbF9pZCIsInByZW1pdW1Qcm9ncmVzc0JhckVuYWJsZWQiLCJwcmVtaXVtX3Byb2dyZXNzX2Jhcl9lbmFibGVkIiwibGFyZ2UiLCJvd25lciIsIndpZGdldEVuYWJsZWQiLCJ3aWRnZXRfZW5hYmxlZCIsInVuYXZhaWxhYmxlIiwiaWNvbkhhc2giLCJpY29uX2hhc2giLCJwcmVzZW5jZXMiLCJwcmVzZW5jZSIsInNhZmV0eUFsZXJ0c0NoYW5uZWxJZCIsInNhZmV0eV9hbGVydHNfY2hhbm5lbF9pZCIsImN1c3RvbWl6ZXJzIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUNFQSxZQUFZLFFBV1Asb0JBQW1CO0FBQzFCLFNBQVNDLFVBQVUsRUFBRUMsZ0JBQWdCLFFBQVEsb0JBQW1CO0FBR2hFLFNBQVNDLFlBQVksUUFBUSxxQkFBb0I7QUFFakQsTUFBTUMsWUFBWTtJQUNoQixJQUFJQyxXQUFVO1FBQ1osSUFBSSxDQUFDLElBQUksQ0FBQ0MsUUFBUSxFQUFFO1FBRXBCLE1BQU1ELFVBQVUsSUFBSSxDQUFDQyxRQUFRLENBQzFCQyxLQUFLLEdBQ0xDLE1BQU0sQ0FBQyxDQUFDQyxJQUFNQSxFQUFFQyxJQUFJLEtBQUtWLGFBQWFX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
136
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvZ3VpbGQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbm5lbFR5cGVzLFxuICB0eXBlIERlZmF1bHRNZXNzYWdlTm90aWZpY2F0aW9uTGV2ZWxzLFxuICB0eXBlIERpc2NvcmRHdWlsZCxcbiAgdHlwZSBEaXNjb3JkUHJlc2VuY2VVcGRhdGUsXG4gIHR5cGUgRXhwbGljaXRDb250ZW50RmlsdGVyTGV2ZWxzLFxuICB0eXBlIEd1aWxkTnNmd0xldmVsLFxuICB0eXBlIE1mYUxldmVscyxcbiAgdHlwZSBQcmVtaXVtVGllcnMsXG4gIHR5cGUgU3lzdGVtQ2hhbm5lbEZsYWdzLFxuICB0eXBlIFZlcmlmaWNhdGlvbkxldmVscyxcbn0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnXG5pbXBvcnQgeyBDb2xsZWN0aW9uLCBpY29uSGFzaFRvQmlnSW50IH0gZnJvbSAnQGRpc2NvcmRlbm8vdXRpbHMnXG5pbXBvcnQgdHlwZSB7IEJvdCwgQ2hhbm5lbCwgR3VpbGRGZWF0dXJlS2V5cywgTWVtYmVyLCBQcmVzZW5jZVVwZGF0ZSwgUm9sZSwgU3RhZ2VJbnN0YW5jZSwgU3RpY2tlciwgVm9pY2VTdGF0ZSwgV2VsY29tZVNjcmVlbiB9IGZyb20gJy4uL2luZGV4LmpzJ1xuaW1wb3J0IHR5cGUgeyBFbW9qaSB9IGZyb20gJy4uL3RyYW5zZm9ybWVycy9lbW9qaS5qcydcbmltcG9ydCB7IEd1aWxkVG9nZ2xlcyB9IGZyb20gJy4vdG9nZ2xlcy9ndWlsZC5qcydcblxuY29uc3QgYmFzZUd1aWxkID0ge1xuICBnZXQgdGhyZWFkcygpIHtcbiAgICBpZiAoIXRoaXMuY2hhbm5lbHMpIHJldHVybiBuZXcgQ29sbGVjdGlvbjxiaWdpbnQsIENoYW5uZWw+KClcblxuICAgIGNvbnN0IHRocmVhZHMgPSB0aGlzLmNoYW5uZWxzXG4gICAgICAuYXJyYXkoKVxuICAgICAgLmZpbHRlcigoeCkgPT4geC50eXBlID09PSBDaGFubmVsVHlwZXMuUHVibGljVGhyZWFkIHx8IHgudHlwZSA9PT0gQ2hhbm5lbFR5cGVzLlByaXZhdGVUaHJlYWQgfHwgeC50eXBlID09PSBDaGFubmVsVHlwZXMuQW5ub3VuY2VtZW50VGhyZWFkKVxuXG4gICAgcmV0dXJuIG5ldyBDb2xsZWN0aW9uKHRocmVhZHMubWFwKCh4KSA9PiBbeC5pZCwgeF0pKVxuICB9LFxuICBnZXQgZmVhdHVyZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG9nZ2xlcy5mZWF0dXJlc1xuICB9LFxufSBhcyBHdWlsZFxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtR3VpbGQoYm90OiBCb3QsIHBheWxvYWQ6IHsgZ3VpbGQ6IERpc2NvcmRHdWlsZCB9ICYgeyBzaGFyZElkOiBudW1iZXIgfSk6IEd1aWxkIHtcbiAgY29uc3QgZ3VpbGRJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuZ3VpbGQuaWQpXG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5ndWlsZFxuICBjb25zdCBndWlsZDogR3VpbGQgPSBPYmplY3QuY3JlYXRlKGJhc2VHdWlsZClcblxuICBpZiAocHJvcHMuYWZrVGltZW91dCAmJiBwYXlsb2FkLmd1aWxkLmFma190aW1lb3V0KSBndWlsZC5hZmtUaW1lb3V0ID0gcGF5bG9hZC5ndWlsZC5hZmtfdGltZW91dFxuICBpZiAocHJvcHMuYXBwcm94aW1hdGVNZW1iZXJDb3VudCAmJiBwYXlsb2FkLmd1aWxkLmFwcHJveGltYXRlX21lbWJlcl9jb3VudCkgZ3VpbGQuYXBwcm94aW1hdGVNZW1iZXJDb3VudCA9IHBheWxvYWQuZ3VpbGQuYXBwcm94aW1hdGVfbWVtYmVyX2NvdW50XG4gIGlmIChwcm9wcy5hcHByb3hpbWF0ZVByZXNlbmNlQ291bnQgJiYgcGF5bG9hZC5ndWlsZC5hcHByb3hpbWF0ZV9wcmVzZW5jZV9jb3VudClcbiAgICBndWlsZC5hcHByb3hpbWF0ZVByZXNlbmNlQ291bnQgPSBwYXlsb2FkLmd1aWxkLmFwcHJveGltYXRlX3ByZXNlbmNlX2NvdW50XG4gIGlmIChwcm9wcy5kZWZhdWx0TWVzc2FnZU5vdGlmaWNhdGlvbnMpIGd1aWxkLmRlZmF1bHRNZXNzYWdlTm90aWZpY2F0aW9ucyA9IHBheWxvYWQuZ3VpbGQuZGVmYXVsdF9tZXNzYWdlX25vdGlmaWNhdGlvbnNcbiAgaWYgKHByb3BzLmRlc2NyaXB0aW9uICYmIHBheWxvYWQuZ3VpbGQuZGVzY3JpcHRpb24pIGd1aWxkLmRlc2NyaXB0aW9uID0gcGF5bG9hZC5ndWlsZC5kZXNjcmlwdGlvblxuICBpZiAocHJvcHMudG9nZ2xlcykgZ3VpbGQudG9nZ2xlcyA9IG5ldyBHdWlsZFRvZ2dsZXMocGF5bG9hZC5ndWlsZClcbiAgaWYgKHByb3BzLmV4cGxpY2l0Q29udGVudEZpbHRlcikgZ3VpbGQuZXhwbGljaXRDb250ZW50RmlsdGVyID0gcGF5bG9hZC5ndWlsZC5leHBsaWNpdF9jb250ZW50X2ZpbHRlclxuICBpZiAocHJvcHMubWF4TWVtYmVycyAmJiBwYXlsb2FkLmd1aWxkLm1heF9tZW1iZXJzKSBndWlsZC5tYXhNZW1iZXJzID0gcGF5bG9hZC5ndWlsZC5tYXhfbWVtYmVyc1xuICBpZiAocHJvcHMubWF4UHJlc2VuY2VzICYmIHBheWxvYWQuZ3VpbGQubWF4X3ByZXNlbmNlcykgZ3VpbGQubWF4UHJlc2VuY2VzID0gcGF5bG9hZC5ndWlsZC5tYXhfcHJlc2VuY2VzID8/IHVuZGVmaW5lZFxuICBpZiAocHJvcHMubWF4VmlkZW9DaGFubmVsVXNlcnMgJiYgcGF5bG9hZC5ndWlsZC5tYXhfdmlkZW9fY2hhbm5lbF91c2VycykgZ3VpbGQubWF4VmlkZW9DaGFubmVsVXNlcnMgPSBwYXlsb2FkLmd1aWxkLm1heF92aWRlb19jaGFubmVsX3VzZXJzXG4gIGlmIChwcm9wcy5tZmFMZXZlbCkgZ3VpbGQubWZhTGV2ZWwgPSBwYXlsb2FkLmd1aWxkLm1mYV9sZXZlbFxuICBpZiAocHJvcHMubmFtZSAmJiBwYXlsb2FkLmd1aWxkLm5hbWUpIGd1aWxkLm5hbWUgPSBwYXlsb2FkLmd1aWxkLm5hbWVcbiAgaWYgKHByb3BzLm5zZndMZXZlbCkgZ3VpbGQubnNmd0xldmVsID0gcGF5bG9hZC5ndWlsZC5uc2Z3X2xldmVsXG4gIGlmIChwcm9wcy5wcmVmZXJyZWRMb2NhbGUgJiYgcGF5bG9hZC5ndWlsZC5wcmVmZXJyZWRfbG9jYWxlKSBndWlsZC5wcmVmZXJyZWRMb2NhbGUgPSBwYXlsb2FkLmd1aWxkLnByZWZlcnJlZF9sb2NhbGVcbiAgaWYgKHByb3BzLnByZW1pdW1TdWJzY3JpcHRpb25Db3VudCAmJiBwYXlsb2FkLmd1aWxkLnByZW1pdW1fc3Vic2NyaXB0aW9uX2NvdW50ICE9PSB1bmRlZmluZWQpXG4gICAgZ3VpbGQucHJlbWl1bVN1YnNjcmlwdGlvbkNvdW50ID0gcGF5bG9hZC5ndWlsZC5wcmVtaXVtX3N1YnNjcmlwdGlvbl9jb3VudFxuICBpZiAocHJvcHMucHJlbWl1bVRpZXIpIGd1aWxkLnByZW1pdW1UaWVyID0gcGF5bG9hZC5ndWlsZC5wcmVtaXVtX3RpZXJcbiAgaWYgKHByb3BzLnN0YWdlSW5zdGFuY2VzICYmIHBheWxvYWQuZ3VpbGQuc3RhZ2VfaW5zdGFuY2VzKVxuICAgIGd1aWxkLnN0YWdlSW5zdGFuY2VzID0gcGF5bG9hZC5ndWlsZC5zdGFnZV9pbnN0YW5jZXMubWFwKChzaSkgPT4gKHtcbiAgICAgIC8qKiBUaGUgaWQgb2YgdGhpcyBTdGFnZSBpbnN0YW5jZSAqL1xuICAgICAgaWQ6IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHNpLmlkKSxcbiAgICAgIC8qKiBUaGUgZ3VpbGQgaWQgb2YgdGhlIGFzc29jaWF0ZWQgU3RhZ2UgY2hhbm5lbCAqL1xuICAgICAgZ3VpbGRJZCxcbiAgICAgIC8qKiBUaGUgaWQgb2YgdGhlIGFzc29jaWF0ZWQgU3RhZ2UgY2hhbm5lbCAqL1xuICAgICAgY2hhbm5lbElkOiBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShzaS5jaGFubmVsX2lkKSxcbiAgICAgIC8qKiBUaGUgdG9waWMgb2YgdGhlIFN0YWdlIGluc3RhbmNlICgxLTEyMCBjaGFyYWN0ZXJzKSAqL1xuICAgICAgdG9waWM6IHNpLnRvcGljLFxuICAgIH0pKVxuICBpZiAocHJvcHMuY2hhbm5lbHMgJiYgKCEhcGF5bG9hZC5ndWlsZC5jaGFubmVscyB8fCAhIXBheWxvYWQuZ3VpbGQudGhyZWFkcykpXG4gICAgZ3VpbGQuY2hhbm5lbHMgPSBuZXcgQ29sbGVjdGlvbihcbiAgICAgIFsuLi4ocGF5bG9hZC5ndWlsZC5jaGFubmVscyA/PyBbXSksIC4uLihwYXlsb2FkLmd1aWxkLnRocmVhZHMgPz8gW10pXS5tYXAoKGNoYW5uZWwpID0+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYm90LnRyYW5zZm9ybWVycy5jaGFubmVsKGJvdCwgeyBjaGFubmVsLCBndWlsZElkIH0pXG4gICAgICAgIHJldHVybiBbcmVzdWx0LmlkLCByZXN1bHRdXG4gICAgICB9KSxcbiAgICApXG4gIGlmIChwcm9wcy5tZW1iZXJzICYmIHBheWxvYWQuZ3VpbGQubWVtYmVycylcbiAgICBndWlsZC5tZW1iZXJzID0gbmV3IENvbGxlY3Rpb24oXG4gICAgICBwYXlsb2FkLmd1aWxkLm1lbWJlcnMubWFwKChtZW1iZXIpID0+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYm90LnRyYW5zZm9ybWVycy5tZW1iZXIoYm90LCBtZW1iZXIsIGd1aWxkSWQsIGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKG1lbWJlci51c2VyIS5pZCkpXG4gICAgICAgIHJldHVybiBbcmVzdWx0LmlkLCByZXN1bHRdXG4gICAgICB9KSxcbiAgICApXG4gIGlmIChwcm9wcy5yb2xlcyAmJiBwYXlsb2FkLmd1aWxkLnJvbGVzKVxuICAgIGd1aWxkLnJvbGVzID0gbmV3IENvbGxlY3Rpb24oXG4gICAgICBwYXlsb2FkLmd1aWxkLnJvbGVzLm1hcCgocm9sZSkgPT4ge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBib3QudHJhbnNmb3JtZXJzLnJvbGUoYm90LCB7IHJvbGUsIGd1aWxkSWQgfSlcbiAgICAgICAgcmV0dXJuIFtyZXN1bHQuaWQsIHJlc3VsdF1cbiAgICAgIH0pLFxuICAgIClcbiAgaWYgKHByb3BzLmVtb2ppcyAmJiBwYXlsb2FkLmd1aWxkLmVtb2ppcylcbiAgICBndWlsZC5lbW9qaXMgPSBuZXcgQ29sbGVjdGlvbihcbiAgICAgIHBheWxvYWQuZ3VpbGQuZW1vamlzLm1hcCgoZW1vamkpID0+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYm90LnRyYW5zZm9ybWVycy5lbW9qaShib3QsIGVtb2ppKVxuICAgICAgICByZXR1cm4gW3Jlc3VsdC5pZCEsIHJlc3VsdF1cbiAgICAgIH0pLFxuICAgIClcbiAgaWYgKHByb3BzLnZvaWNlU3RhdGVzICYmIHBheWxvYWQuZ3VpbGQudm9pY2Vfc3RhdGVzKVxuICAgIGd1aWxkLnZvaWNlU3RhdGVzID0gbmV3IENvbGxlY3Rpb24oXG4gICAgICBwYXlsb2FkLmd1aWxkLnZvaWNlX3N0YXRlcy5tYXAoKHZvaWNlU3RhdGUpID0+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYm90LnRyYW5zZm9ybWVycy52b2ljZVN0YXRlKGJvdCwgeyB2b2ljZVN0YXRlLCBndWlsZElkIH0pXG4gICAgICAgIHJldHVybiBbcmVzdWx0LnVzZXJJZCwgcmVzdWx0XVxuICAgICAgfSksXG4gICAgKVxuICBpZiAocHJvcHMuc3RpY2tlcnMgJiYgcGF5bG9hZC5ndWlsZC5zdGlja2VycylcbiAgICBndWlsZC5zdGlja2VycyA9IG5ldyBDb2xsZWN0aW9uKFxuICAgICAgcGF5bG9hZC5ndWlsZC5zdGlja2Vycz8ubWFwKChzdGlja2VyKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGJvdC50cmFuc2Zvcm1lcnMuc3RpY2tlcihib3QsIHN0aWNrZXIpXG4gICAgICAgIHJldHVybiBbcmVzdWx0LmlkLCByZXN1bHRdXG4gICAgICB9KSxcbiAgICApXG4gIGlmIChwcm9wcy5zeXN0ZW1DaGFubmVsRmxhZ3MgJiYgcGF5bG9hZC5ndWlsZC5zeXN0ZW1fY2hhbm5lbF9mbGFncykgZ3VpbGQuc3lzdGVtQ2hhbm5lbEZsYWdzID0gcGF5bG9hZC5ndWlsZC5zeXN0ZW1fY2hhbm5lbF9mbGFnc1xuICBpZiAocHJvcHMudmFuaXR5VXJsQ29kZSAmJiBwYXlsb2FkLmd1aWxkLnZhbml0eV91cmxfY29kZSkgZ3VpbGQudmFuaXR5VXJsQ29kZSA9IHBheWxvYWQuZ3VpbGQudmFuaXR5X3VybF9jb2RlXG4gIGlmIChwcm9wcy52ZXJpZmljYXRpb25MZXZlbCkgZ3VpbGQudmVyaWZpY2F0aW9uTGV2ZWwgPSBwYXlsb2FkLmd1aWxkLnZlcmlmaWNhdGlvbl9sZXZlbFxuICBpZiAocHJvcHMud2VsY29tZVNjcmVlbiAmJiBwYXlsb2FkLmd1aWxkLndlbGNvbWVfc2NyZWVuKVxuICAgIGd1aWxkLndlbGNvbWVTY3JlZW4gPSB7XG4gICAgICBkZXNjcmlwdGlvbjogcGF5bG9hZC5ndWlsZC53ZWxjb21lX3NjcmVlbi5kZXNjcmlwdGlvbiA/PyB1bmRlZmluZWQsXG4gICAgICB3ZWxjb21lQ2hhbm5lbHM6IHBheWxvYWQuZ3VpbGQud2VsY29tZV9zY3JlZW4ud2VsY29tZV9jaGFubmVscy5tYXAoKHdjKSA9PiAoe1xuICAgICAgICBjaGFubmVsSWQ6IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHdjLmNoYW5uZWxfaWQpLFxuICAgICAgICBkZXNjcmlwdGlvbjogd2MuZGVzY3JpcHRpb24sXG4gICAgICAgIGVtb2ppSWQ6IHdjLmVtb2ppX2lkID8gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2Uod2MuZW1vamlfaWQpIDogdW5kZWZpbmVkLFxuICAgICAgICBlbW9qaU5hbWU6IHdjLmVtb2ppX25hbWUgPz8gdW5kZWZpbmVkLFxuICAgICAgfSkpLFxuICAgIH1cbiAgaWYgKHByb3BzLmRpc2NvdmVyeVNwbGFzaCAmJiBwYXlsb2FkLmd1aWxkLmRpc2NvdmVyeV9zcGxhc2gpIGd1aWxkLmRpc2NvdmVyeVNwbGFzaCA9IGljb25IYXNoVG9CaWdJbnQocGF5bG9hZC5ndWlsZC5kaXNjb3Zlcnlfc3BsYXNoKVxuICBpZiAocHJvcHMuam9pbmVkQXQgJiYgcGF5bG9hZC5ndWlsZC5qb2luZWRfYXQpIGd1aWxkLmpvaW5lZEF0ID0gRGF0ZS5wYXJzZShwYXlsb2FkLmd1aWxkLmpvaW5lZF9hdClcbiAgaWYgKHByb3BzLm1lbWJlckNvdW50ICYmIHBheWxvYWQuZ3VpbGQubWVtYmVyX2NvdW50KSBndWlsZC5tZW1iZXJDb3VudCA9IHBheWxvYWQuZ3VpbGQubWVtYmVyX2NvdW50ID8/IDBcbiAgaWYgKHByb3BzLnNoYXJkSWQpIGd1aWxkLnNoYXJkSWQgPSBwYXlsb2FkLnNoYXJkSWRcbiAgaWYgKHByb3BzLmljb24gJiYgcGF5bG9hZC5ndWlsZC5pY29uKSBndWlsZC5pY29uID0gaWNvbkhhc2hUb0JpZ0ludChwYXlsb2FkLmd1aWxkLmljb24pXG4gIGlmIChwcm9wcy5iYW5uZXIgJiYgcGF5bG9hZC5ndWlsZC5iYW5uZXIpIGd1aWxkLmJhbm5lciA9IGljb25IYXNoVG9CaWdJbnQocGF5bG9hZC5ndWlsZC5iYW5uZXIpXG4gIGlmIChwcm9wcy5zcGxhc2ggJiYgcGF5bG9hZC5ndWlsZC5zcGxhc2gpIGd1aWxkLnNwbGFzaCA9IGljb25IYXNoVG9CaWdJbnQocGF5bG9hZC5ndWlsZC5zcGxhc2gpXG4gIGlmIChwcm9wcy5pZCAmJiBwYXlsb2FkLmd1aWxkLmlkKSBndWlsZC5pZCA9IGd1aWxkSWRcbiAgaWYgKHByb3BzLm93bmVySWQgJiYgcGF5bG9hZC5ndWlsZC5vd25lcl9pZCkgZ3VpbGQub3duZXJJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuZ3VpbGQub3duZXJfaWQpXG4gIGlmIChwcm9wcy5wZXJtaXNzaW9ucyAmJiBwYXlsb2FkLmd1aWxkLnBlcm1pc3Npb25zKSBndWlsZC5wZXJtaXNzaW9ucyA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuZ3VpbGQucGVybWlzc2lvbnMpXG4gIGlmIChwcm9wcy5hZmtDaGFubmVsSWQgJiYgcGF5bG9hZC5ndWlsZC5hZmtfY2hhbm5lbF9pZCkgZ3VpbGQuYWZrQ2hhbm5lbElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5ndWlsZC5hZmtfY2hhbm5lbF9pZClcbiAgaWYgKHByb3BzLndpZGdldENoYW5uZWxJZCAmJiBwYXlsb2FkLmd1aWxkLndpZGdldF9jaGFubmVsX2lkKSBndWlsZC53aWRnZXRDaGFubmVsSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmd1aWxkLndpZGdldF9jaGFubmVsX2lkKVxuICBpZiAocHJvcHMuYXBwbGljYXRpb25JZCAmJiBwYXlsb2FkLmd1aWxkLmFwcGxpY2F0aW9uX2lkKSBndWlsZC5hcHBsaWNhdGlvbklkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5ndWlsZC5hcHBsaWNhdGlvbl9pZClcbiAgaWYgKHByb3BzLnN5c3RlbUNoYW5uZWxJZCAmJiBwYXlsb2FkLmd1aWxkLnN5c3RlbV9jaGFubmVsX2lkKSBndWlsZC5zeXN0ZW1DaGFubmVsSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmd1aWxkLnN5c3RlbV9jaGFubmVsX2lkKVxuICBpZiAocHJvcHMucnVsZXNDaGFubmVsSWQgJiYgcGF5bG9hZC5ndWlsZC5ydWxlc19jaGFubmVsX2lkKSBndWlsZC5ydWxlc0NoYW5uZWxJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuZ3VpbGQucnVsZXNfY2hhbm5lbF9pZClcbiAgaWYgKHByb3BzLnB1YmxpY1VwZGF0ZXNDaGFubmVsSWQgJiYgcGF5bG9hZC5ndWlsZC5wdWJsaWNfdXBkYXRlc19jaGFubmVsX2lkKVxuICAgIGd1aWxkLnB1YmxpY1VwZGF0ZXNDaGFubmVsSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmd1aWxkLnB1YmxpY191cGRhdGVzX2NoYW5uZWxfaWQpXG4gIGlmIChwcm9wcy5wcmVtaXVtUHJvZ3Jlc3NCYXJFbmFibGVkICYmIHBheWxvYWQuZ3VpbGQucHJlbWl1bV9wcm9ncmVzc19iYXJfZW5hYmxlZClcbiAgICBndWlsZC5wcmVtaXVtUHJvZ3Jlc3NCYXJFbmFibGVkID0gcGF5bG9hZC5ndWlsZC5wcmVtaXVtX3Byb2dyZXNzX2Jhcl9lbmFibGVkXG4gIGlmIChwcm9wcy5sYXJnZSAmJiBwYXlsb2FkLmd1aWxkLmxhcmdlKSBndWlsZC5sYXJnZSA9IHBheWxvYWQuZ3VpbGQubGFyZ2VcbiAgaWYgKHByb3BzLm93bmVyICYmIHBheWxvYWQuZ3VpbGQub3duZXIpIGd1aWxkLm93bmVyID0gcGF5bG9hZC5ndWlsZC5vd25lclxuICBpZiAocHJvcHMud2lkZ2V0RW5hYmxlZCAmJiBwYXlsb2FkLmd1aWxkLndpZGdldF9lbmFibGVkKSBndWlsZC53aWRnZXRFbmFibGVkID0gcGF5bG9hZC5ndWlsZC53aWRnZXRfZW5hYmxlZFxuICBpZiAocHJvcHMudW5hdmFpbGFibGUgJiYgcGF5bG9hZC5ndWlsZC51bmF2YWlsYWJsZSkgZ3VpbGQudW5hdmFpbGFibGUgPSBwYXlsb2FkLmd1aWxkLnVuYXZhaWxhYmxlXG4gIGlmIChwcm9wcy5pY29uSGFzaCAmJiBwYXlsb2FkLmd1aWxkLmljb25faGFzaCkgZ3VpbGQuaWNvbkhhc2ggPSBpY29uSGFzaFRvQmlnSW50KHBheWxvYWQuZ3VpbGQuaWNvbl9oYXNoKVxuICBpZiAocHJvcHMucHJlc2VuY2VzICYmIHBheWxvYWQuZ3VpbGQucHJlc2VuY2VzKVxuICAgIGd1aWxkLnByZXNlbmNlcyA9IHBheWxvYWQuZ3VpbGQucHJlc2VuY2VzPy5tYXAoKHByZXNlbmNlKSA9PiBib3QudHJhbnNmb3JtZXJzLnByZXNlbmNlKGJvdCwgcHJlc2VuY2UgYXMgRGlzY29yZFByZXNlbmNlVXBkYXRlKSlcbiAgaWYgKHByb3BzLnNhZmV0eUFsZXJ0c0NoYW5uZWxJZCAmJiBwYXlsb2FkLmd1aWxkLnNhZmV0eV9hbGVydHNfY2hhbm5lbF9pZClcbiAgICBndWlsZC5zYWZldHlBbGVydHNDaGFubmVsSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmd1aWxkLnNhZmV0eV9hbGVydHNfY2hhbm5lbF9pZClcblxuICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jdXN0b21pemVycy5ndWlsZChib3QsIHBheWxvYWQuZ3VpbGQsIGd1aWxkKVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEd1aWxkIHtcbiAgLyoqIEd1aWxkIG5hbWUgKDItMTAwIGNoYXJhY3RlcnMsIGV4Y2x1ZGluZyB0cmFpbGluZyBhbmQgbGVhZGluZyB3aGl0ZXNwYWNlKSAqL1xuICBuYW1lOiBzdHJpbmdcbiAgLyoqIFRydWUgaWYgdGhlIHVzZXIgaXMgdGhlIG93bmVyIG9mIHRoZSBndWlsZCAqL1xuICBvd25lcjogYm9vbGVhbiB8IHVuZGVmaW5lZFxuICAvKiogQWZrIHRpbWVvdXQgaW4gc2Vjb25kcyAqL1xuICBhZmtUaW1lb3V0OiBudW1iZXJcbiAgLyoqIFRydWUgaWYgdGhlIHNlcnZlciB3aWRnZXQgaXMgZW5hYmxlZCAqL1xuICB3aWRnZXRFbmFibGVkPzogYm9vbGVhblxuICAvKiogVmVyaWZpY2F0aW9uIGxldmVsIHJlcXVpcmVkIGZvciB0aGUgZ3VpbGQgKi9cbiAgdmVyaWZpY2F0aW9uTGV2ZWw6IFZlcmlmaWNhdGlvbkxldmVsc1xuICAvKiogRGVmYXVsdCBtZXNzYWdlIG5vdGlmaWNhdGlvbnMgbGV2ZWwgKi9cbiAgZGVmYXVsdE1lc3NhZ2VOb3RpZmljYXRpb25zOiBEZWZhdWx0TWVzc2FnZU5vdGlmaWNhdGlvbkxldmVsc1xuICAvKiogRXhwbGljaXQgY29udGVudCBmaWx0ZXIgbGV2ZWwgKi9cbiAgZXhwbGljaXRDb250ZW50RmlsdGVyOiBFeHBsaWNpdENvbnRlbnRGaWx0ZXJMZXZlbHNcbiAgLyoqIEVuYWJsZWQgZ3VpbGQgZmVhdHVyZXMgKi9cbiAgZmVhdHVyZXM6IEd1aWxkRmVhdHVyZUtleXNbXVxuICAvKiogUmVxdWlyZWQgTUZBIGxldmVsIGZvciB0aGUgZ3VpbGQgKi9cbiAgbWZhTGV2ZWw6IE1mYUxldmVsc1xuICAvKiogU3lzdGVtIGNoYW5uZWwgZmxhZ3MgKi9cbiAgc3lzdGVtQ2hhbm5lbEZsYWdzOiBTeXN0ZW1DaGFubmVsRmxhZ3NcbiAgLyoqIFRydWUgaWYgdGhpcyBpcyBjb25zaWRlcmVkIGEgbGFyZ2UgZ3VpbGQgKi9cbiAgbGFyZ2U/OiBib29sZWFuXG4gIC8qKiBUcnVlIGlmIHRoaXMgZ3VpbGQgaXMgdW5hdmFpbGFibGUgZHVlIHRvIGFuIG91dGFnZSAqL1xuICB1bmF2YWlsYWJsZT86IGJvb2xlYW5cbiAgLyoqIFRvdGFsIG51bWJlciBvZiBtZW1iZXJzIGluIHRoaXMgZ3VpbGQgKi9cbiAgbWVtYmVyQ291bnQ6IG51bWJlclxuICAvKiogVGhlIG1heGltdW0gbnVtYmVyIG9mIHByZXNlbmNlcyBmb3IgdGhlIGd1aWxkICh0aGUgZGVmYXVsdCB2YWx1ZSwgY3VycmVudGx5IDI1MDAwLCBpcyBpbiBlZmZlY3Qgd2hlbiBudWxsIGlzIHJldHVybmVkKSAqL1xuICBtYXhQcmVzZW5jZXM/OiBudW1iZXJcbiAgLyoqIFRoZSBtYXhpbXVtIG51bWJlciBvZiBtZW1iZXJzIGZvciB0aGUgZ3VpbGQgKi9cbiAgbWF4TWVtYmVycz86IG51bWJlclxuICAvKiogVGhlIHZhbml0eSB1cmwgY29kZSBmb3IgdGhlIGd1aWxkICovXG4gIHZhbml0eVVybENvZGU/OiBzdHJpbmdcbiAgLyoqIFRoZSBkZXNjcmlwdGlvbiBvZiBhIGd1aWxkICovXG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nXG4gIHRvZ2dsZXM6IEd1aWxkVG9nZ2xlc1xuICBzaGFyZElkOiBudW1iZXJcbiAgLyoqIFByZW1pdW0gdGllciAoU2VydmVyIEJvb3N0IGxldmVsKSAqL1xuICBwcmVtaXVtVGllcjogUHJlbWl1bVRpZXJzXG4gIC8qKiBUaGUgbnVtYmVyIG9mIGJvb3N0cyB0aGlzIGd1aWxkIGN1cnJlbnRseSBoYXMgKi9cbiAgcHJlbWl1bVN1YnNjcmlwdGlvbkNvdW50PzogbnVtYmVyXG4gIC8qKiBUaGUgbWF4aW11bSBhbW91bnQgb2YgdXNlcnMgaW4gYSB2aWRlbyBjaGFubmVsICovXG4gIG1heFZpZGVvQ2hhbm5lbFVzZXJzPzogbnVtYmVyXG4gIC8qKiBNYXhpbXVtIGFtb3VudCBvZiB1c2VycyBpbiBhIHN0YWdlIHZpZGVvIGNoYW5uZWwgKi9cbiAgbWF4U3RhZ2VWaWRlb0NoYW5uZWxVc2Vycz86IG51bWJlclxuICAvKiogQXBwcm94aW1hdGUgbnVtYmVyIG9mIG1lbWJlcnMgaW4gdGhpcyBndWlsZCwgcmV0dXJuZWQgZnJvbSB0aGUgR0VUIC9ndWlsZHMvaWQgZW5kcG9pbnQgd2hlbiB3aXRoX2NvdW50cyBpcyB0cnVlICovXG4gIGFwcHJveGltYXRlTWVtYmVyQ291bnQ/OiBudW1iZXJcbiAgLyoqIEFwcHJveGltYXRlIG51bWJlciBvZiBub24tb2ZmbGluZSBtZW1iZXJzIGluIHRoaXMgZ3VpbGQsIHJldHVybmVkIGZyb20gdGhlIEdFVCAvZ3VpbGRzL2lkIGVuZHBvaW50IHdoZW4gd2l0aF9jb3VudHMgaXMgdHJ1ZSAqL1xuICBhcHByb3hpbWF0ZVByZXNlbmNlQ291bnQ/OiBudW1iZXJcbiAgLyoqIEd1aWxkIE5TRlcgbGV2ZWwgKi9cbiAgbnNmd0xldmVsOiBHdWlsZE5zZndMZXZlbFxuICAvKiogV2hldGhlciB0aGUgZ3VpbGQgaGFzIHRoZSBib29zdCBwcm9ncmVzcyBiYXIgZW5hYmxlZCAqL1xuICBwcmVtaXVtUHJvZ3Jlc3NCYXJFbmFibGVkOiBib29sZWFuXG4gIC8qKiBHdWlsZCBpZCAqL1xuICBpZDogYmlnaW50XG4gIC8qKiBJY29uIGhhc2ggKi9cbiAgaWNvbj86IGJpZ2ludFxuICAvKiogSWNvbiBoYXNoLCByZXR1cm5lZCB3aGVuIGluIHRoZSB0ZW1wbGF0ZSBvYmplY3QgKi9cbiAgaWNvbkhhc2g/OiBiaWdpbnRcbiAgLyoqIFNwbGFzaCBoYXNoICovXG4gIHNwbGFzaD86IGJpZ2ludFxuICAvKiogRGlzY292ZXJ5IHNwbGFzaCBoYXNoOyBvbmx5IHByZXNlbnQgZm9yIGd1aWxkcyB3aXRoIHRoZSBcIkRJU0NPVkVSQUJMRVwiIGZlYXR1cmUgKi9cbiAgZGlzY292ZXJ5U3BsYXNoPzogYmlnaW50XG4gIC8qKiBJZCBvZiB0aGUgb3duZXIgKi9cbiAgb3duZXJJZDogYmlnaW50XG4gIC8qKiBUb3RhbCBwZXJtaXNzaW9ucyBmb3IgdGhlIHVzZXIgaW4gdGhlIGd1aWxkIChleGNsdWRlcyBvdmVyd3JpdGVzIGFuZCBpbXBsaWNpdCBwZXJtaXNzaW9ucykgKi9cbiAgcGVybWlzc2lvbnM6IGJpZ2ludFxuICAvKiogSWQgb2YgYWZrIGNoYW5uZWwgKi9cbiAgYWZrQ2hhbm5lbElkPzogYmlnaW50XG4gIC8qKiBUaGUgY2hhbm5lbCBpZCB0aGF0IHRoZSB3aWRnZXQgd2lsbCBnZW5lcmF0ZSBhbiBpbnZpdGUgdG8sIG9yIG51bGwgaWYgc2V0IHRvIG5vIGludml0ZSAqL1xuICB3aWRnZXRDaGFubmVsSWQ/OiBiaWdpbnRcbiAgLyoqIFJvbGVzIGluIHRoZSBndWlsZCAqL1xuICByb2xlczogQ29sbGVjdGlvbjxiaWdpbnQsIFJvbGU+XG4gIC8qKiBDdXN0b20gZ3VpbGQgZW1vamlzICovXG4gIGVtb2ppczogQ29sbGVjdGlvbjxiaWdpbnQsIEVtb2ppPlxuICAvKiogQXBwbGljYXRpb24gaWQgb2YgdGhlIGd1aWxkIGNyZWF0b3IgaWYgaXQgaXMgYm90LWNyZWF0ZWQgKi9cbiAgYXBwbGljYXRpb25JZD86IGJpZ2ludFxuICAvKiogVGhlIGlkIG9mIHRoZSBjaGFubmVsIHdoZXJlIGd1aWxkIG5vdGljZXMgc3VjaCBhcyB3ZWxjb21lIG1lc3NhZ2VzIGFuZCBib29zdCBldmVudHMgYXJlIHBvc3RlZCAqL1xuICBzeXN0ZW1DaGFubmVsSWQ/OiBiaWdpbnRcbiAgLyoqIFRoZSBpZCBvZiB0aGUgY2hhbm5lbCB3aGVyZSBjb21tdW5pdHkgZ3VpbGRzIGNhbiBkaXNwbGF5IHJ1bGVzIGFuZC9vciBndWlkZWxpbmVzICovXG4gIHJ1bGVzQ2hhbm5lbElkPzogYmlnaW50XG4gIC8qKiBXaGVuIHRoaXMgZ3VpbGQgd2FzIGpvaW5lZCBhdCAqL1xuICBqb2luZWRBdD86IG51bWJlclxuICAvKiogU3RhdGVzIG9mIG1lbWJlcnMgY3VycmVudGx5IGluIHZvaWNlIGNoYW5uZWxzOyBsYWNrcyB0aGUgZ3VpbGRfaWQga2V5ICovXG4gIHZvaWNlU3RhdGVzOiBDb2xsZWN0aW9uPGJpZ2ludCwgVm9pY2VTdGF0ZT5cbiAgLyoqIFVzZXJzIGluIHRoZSBndWlsZCAqL1xuICBtZW1iZXJzOiBDb2xsZWN0aW9uPGJpZ2ludCwgTWVtYmVyPlxuICAvKiogQ2hhbm5lbHMgaW4gdGhlIGd1aWxkICovXG4gIGNoYW5uZWxzOiBDb2xsZWN0aW9uPGJpZ2ludCwgQ2hhbm5lbD5cbiAgLyoqIEFsbCBhY3RpdmUgdGhyZWFkcyBpbiB0aGUgZ3VpbGQgdGhhdCB0aGUgY3VycmVudCB1c2VyIGhhcyBwZXJtaXNzaW9uIHRvIHZpZXcgKi9cbiAgdGhyZWFkczogQ29sbGVjdGlvbjxiaWdpbnQsIENoYW5uZWw+XG4gIC8qKiBQcmVzZW5jZXMgb2YgdGhlIG1lbWJlcnMgaW4gdGhlIGd1aWxkLCB3aWxsIG9ubHkgaW5jbHVkZSBub24tb2ZmbGluZSBtZW1iZXJzIGlmIHRoZSBzaXplIGlzIGdyZWF0ZXIgdGhhbiBsYXJnZSB0aHJlc2hvbGQgKi9cbiAgcHJlc2VuY2VzPzogUHJlc2VuY2VVcGRhdGVbXVxuICAvKiogQmFubmVyIGhhc2ggKi9cbiAgYmFubmVyPzogYmlnaW50XG4gIC8qKiBUaGUgcHJlZmVycmVkIGxvY2FsZSBvZiBhIENvbW11bml0eSBndWlsZDsgdXNlZCBpbiBzZXJ2ZXIgZGlzY292ZXJ5IGFuZCBub3RpY2VzIGZyb20gRGlzY29yZDsgZGVmYXVsdHMgdG8gXCJlbi1VU1wiICovXG4gIHByZWZlcnJlZExvY2FsZTogc3RyaW5nXG4gIC8qKiBUaGUgaWQgb2YgdGhlIGNoYW5uZWwgd2hlcmUgYWRtaW5zIGFuZCBtb2RlcmF0b3JzIG9mIENvbW11bml0eSBndWlsZHMgcmVjZWl2ZSBub3RpY2VzIGZyb20gRGlzY29yZCAqL1xuICBwdWJsaWNVcGRhdGVzQ2hhbm5lbElkPzogYmlnaW50XG4gIC8qKiBUaGUgd2VsY29tZSBzY3JlZW4gb2YgYSBDb21tdW5pdHkgZ3VpbGQsIHNob3duIHRvIG5ldyBtZW1iZXJzLCByZXR1cm5lZCBpbiBhbiBJbnZpdGUncyBndWlsZCBvYmplY3QgKi9cbiAgd2VsY29tZVNjcmVlbj86IFdlbGNvbWVTY3JlZW5cbiAgLyoqIFN0YWdlIGluc3RhbmNlcyBpbiB0aGUgZ3VpbGQgKi9cbiAgc3RhZ2VJbnN0YW5jZXM/OiBTdGFnZUluc3RhbmNlW11cbiAgLyoqIEN1c3RvbSBndWlsZCBzdGlja2VycyAqL1xuICBzdGlja2Vycz86IENvbGxlY3Rpb248YmlnaW50LCBTdGlja2VyPlxuICAvKiogVGhlIGlkIG9mIHRoZSBjaGFubmVsIHdoZXJlIGFkbWlucyBhbmQgbW9kZXJhdG9ycyBvZiBDb21tdW5pdHkgZ3VpbGRzIHJlY2VpdmUgc2FmZXR5IGFsZXJ0cyBmcm9tIERpc2NvcmQgKi9cbiAgc2FmZXR5QWxlcnRzQ2hhbm5lbElkPzogYmlnaW50XG59XG4iXSwibmFtZXMiOlsiQ2hhbm5lbFR5cGVzIiwiQ29sbGVjdGlvbiIsImljb25IYXNoVG9CaWdJbnQiLCJHdWlsZFRvZ2dsZXMiLCJiYXNlR3VpbGQiLCJ0aHJlYWRzIiwiY2hhbm5lbHMiLCJhcnJheSIsImZpbHRlciIsIngiLCJ0eXBlIiwiUHVibGljVGhyZWFkIiwiUHJpdmF0ZVRocmVhZCIsIkFubm91bmNlbWVudFRocmVhZCIsIm1hcCIsImlkIiwiZmVhdHVyZXMiLCJ0b2dnbGVzIiwidHJhbnNmb3JtR3VpbGQiLCJib3QiLCJwYXlsb2FkIiwiZ3VpbGRJZCIsInRyYW5zZm9ybWVycyIsInNub3dmbGFrZSIsImd1aWxkIiwicHJvcHMiLCJkZXNpcmVkUHJvcGVydGllcyIsIk9iamVjdCIsImNyZWF0ZSIsImFma1RpbWVvdXQiLCJhZmtfdGltZW91dCIsImFwcHJveGltYXRlTWVtYmVyQ291bnQiLCJhcHByb3hpbWF0ZV9tZW1iZXJfY291bnQiLCJhcHByb3hpbWF0ZVByZXNlbmNlQ291bnQiLCJhcHByb3hpbWF0ZV9wcmVzZW5jZV9jb3VudCIsImRlZmF1bHRNZXNzYWdlTm90aWZpY2F0aW9ucyIsImRlZmF1bHRfbWVzc2FnZV9ub3RpZmljYXRpb25zIiwiZGVzY3JpcHRpb24iLCJleHBsaWNpdENvbnRlbnRGaWx0ZXIiLCJleHBsaWNpdF9jb250ZW50X2ZpbHRlciIsIm1heE1lbWJlcnMiLCJtYXhfbWVtYmVycyIsIm1heFByZXNlbmNlcyIsIm1heF9wcmVzZW5jZXMiLCJ1bmRlZmluZWQiLCJtYXhWaWRlb0NoYW5uZWxVc2VycyIsIm1heF92aWRlb19jaGFubmVsX3VzZXJzIiwibWZhTGV2ZWwiLCJtZmFfbGV2ZWwiLCJuYW1lIiwibnNmd0xldmVsIiwibnNmd19sZXZlbCIsInByZWZlcnJlZExvY2FsZSIsInByZWZlcnJlZF9sb2NhbGUiLCJwcmVtaXVtU3Vic2NyaXB0aW9uQ291bnQiLCJwcmVtaXVtX3N1YnNjcmlwdGlvbl9jb3VudCIsInByZW1pdW1UaWVyIiwicHJlbWl1bV90aWVyIiwic3RhZ2VJbnN0YW5jZXMiLCJzdGFnZV9pbnN0YW5jZXMiLCJzaSIsImNoYW5uZWxJZCIsImNoYW5uZWxfaWQiLCJ0b3BpYyIsImNoYW5uZWwiLCJyZXN1bHQiLCJtZW1iZXJzIiwibWVtYmVyIiwidXNlciIsInJvbGVzIiwicm9sZSIsImVtb2ppcyIsImVtb2ppIiwidm9pY2VTdGF0ZXMiLCJ2b2ljZV9zdGF0ZXMiLCJ2b2ljZVN0YXRlIiwidXNlcklkIiwic3RpY2tlcnMiLCJzdGlja2VyIiwic3lzdGVtQ2hhbm5lbEZsYWdzIiwic3lzdGVtX2NoYW5uZWxfZmxhZ3MiLCJ2YW5pdHlVcmxDb2RlIiwidmFuaXR5X3VybF9jb2RlIiwidmVyaWZpY2F0aW9uTGV2ZWwiLCJ2ZXJpZmljYXRpb25fbGV2ZWwiLCJ3ZWxjb21lU2NyZWVuIiwid2VsY29tZV9zY3JlZW4iLCJ3ZWxjb21lQ2hhbm5lbHMiLCJ3ZWxjb21lX2NoYW5uZWxzIiwid2MiLCJlbW9qaUlkIiwiZW1vamlfaWQiLCJlbW9qaU5hbWUiLCJlbW9qaV9uYW1lIiwiZGlzY292ZXJ5U3BsYXNoIiwiZGlzY292ZXJ5X3NwbGFzaCIsImpvaW5lZEF0Iiwiam9pbmVkX2F0IiwiRGF0ZSIsInBhcnNlIiwibWVtYmVyQ291bnQiLCJtZW1iZXJfY291bnQiLCJzaGFyZElkIiwiaWNvbiIsImJhbm5lciIsInNwbGFzaCIsIm93bmVySWQiLCJvd25lcl9pZCIsInBlcm1pc3Npb25zIiwiYWZrQ2hhbm5lbElkIiwiYWZrX2NoYW5uZWxfaWQiLCJ3aWRnZXRDaGFubmVsSWQiLCJ3aWRnZXRfY2hhbm5lbF9pZCIsImFwcGxpY2F0aW9uSWQiLCJhcHBsaWNhdGlvbl9pZCIsInN5c3RlbUNoYW5uZWxJZCIsInN5c3RlbV9jaGFubmVsX2lkIiwicnVsZXNDaGFubmVsSWQiLCJydWxlc19jaGFubmVsX2lkIiwicHVibGljVXBkYXRlc0NoYW5uZWxJZCIsInB1YmxpY191cGRhdGVzX2NoYW5uZWxfaWQiLCJwcmVtaXVtUHJvZ3Jlc3NCYXJFbmFibGVkIiwicHJlbWl1bV9wcm9ncmVzc19iYXJfZW5hYmxlZCIsImxhcmdlIiwib3duZXIiLCJ3aWRnZXRFbmFibGVkIiwid2lkZ2V0X2VuYWJsZWQiLCJ1bmF2YWlsYWJsZSIsImljb25IYXNoIiwiaWNvbl9oYXNoIiwicHJlc2VuY2VzIiwicHJlc2VuY2UiLCJzYWZldHlBbGVydHNDaGFubmVsSWQiLCJzYWZldHlfYWxlcnRzX2NoYW5uZWxfaWQiLCJjdXN0b21pemVycyJdLCJtYXBwaW5ncyI6IkFBQUEsU0FDRUEsWUFBWSxRQVVQLG9CQUFtQjtBQUMxQixTQUFTQyxVQUFVLEVBQUVDLGdCQUFnQixRQUFRLG9CQUFtQjtBQUdoRSxTQUFTQyxZQUFZLFFBQVEscUJBQW9CO0FBRWpELE1BQU1DLFlBQVk7SUFDaEIsSUFBSUMsV0FBVTtRQUNaLElBQUksQ0FBQyxJQUFJLENBQUNDLFFB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
@@ -8,6 +8,7 @@ export * from './attachment.js';
8
8
  export * from './auditLogEntry.js';
9
9
  export * from './automodActionExecution.js';
10
10
  export * from './automodRule.js';
11
+ export * from './avatarDecorationData.js';
11
12
  export * from './channel.js';
12
13
  export * from './component.js';
13
14
  export * from './embed.js';
@@ -42,4 +43,4 @@ export * from './welcomeScreen.js';
42
43
  export * from './widget.js';
43
44
  export * from './widgetSettings.js';
44
45
 
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hY3Rpdml0eS5qcydcbmV4cG9ydCAqIGZyb20gJy4vYXBwbGljYXRpb24uanMnXG5leHBvcnQgKiBmcm9tICcuL2FwcGxpY2F0aW9uQ29tbWFuZC5qcydcbmV4cG9ydCAqIGZyb20gJy4vYXBwbGljYXRpb25Db21tYW5kT3B0aW9uLmpzJ1xuZXhwb3J0ICogZnJvbSAnLi9hcHBsaWNhdGlvbkNvbW1hbmRPcHRpb25DaG9pY2UuanMnXG5leHBvcnQgKiBmcm9tICcuL2FwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb24uanMnXG5leHBvcnQgKiBmcm9tICcuL2F0dGFjaG1lbnQuanMnXG5leHBvcnQgKiBmcm9tICcuL2F1ZGl0TG9nRW50cnkuanMnXG5leHBvcnQgKiBmcm9tICcuL2F1dG9tb2RBY3Rpb25FeGVjdXRpb24uanMnXG5leHBvcnQgKiBmcm9tICcuL2F1dG9tb2RSdWxlLmpzJ1xuZXhwb3J0ICogZnJvbSAnLi9jaGFubmVsLmpzJ1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnQuanMnXG5leHBvcnQgKiBmcm9tICcuL2VtYmVkLmpzJ1xuZXhwb3J0ICogZnJvbSAnLi9lbW9qaS5qcydcbmV4cG9ydCAqIGZyb20gJy4vZW50aXRsZW1lbnQuanMnXG5leHBvcnQgKiBmcm9tICcuL2dhdGV3YXlCb3QuanMnXG5leHBvcnQgKiBmcm9tICcuL2d1aWxkLmpzJ1xuZXhwb3J0ICogZnJvbSAnLi9pbnRlZ3JhdGlvbi5qcydcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJhY3Rpb24uanMnXG5leHBvcnQgKiBmcm9tICcuL2ludml0ZS5qcydcbmV4cG9ydCAqIGZyb20gJy4vbWVtYmVyLmpzJ1xuZXhwb3J0ICogZnJvbSAnLi9tZXNzYWdlLmpzJ1xuZXhwb3J0ICogZnJvbSAnLi9vbmJvYXJkaW5nLmpzJ1xuZXhwb3J0ICogZnJvbSAnLi9wb2xsLmpzJ1xuZXhwb3J0ICogZnJvbSAnLi9wcmVzZW5jZS5qcydcbmV4cG9ydCAqIGZyb20gJy4vcmV2ZXJzZS9pbmRleC5qcydcbmV4cG9ydCAqIGZyb20gJy4vcm9sZS5qcydcbmV4cG9ydCAqIGZyb20gJy4vc2NoZWR1bGVkRXZlbnQuanMnXG5leHBvcnQgKiBmcm9tICcuL3NrdS5qcydcbmV4cG9ydCAqIGZyb20gJy4vc3RhZ2VJbnN0YW5jZS5qcydcbmV4cG9ydCAqIGZyb20gJy4vc3RhZ2VJbnZpdGVJbnN0YW5jZS5qcydcbmV4cG9ydCAqIGZyb20gJy4vc3RpY2tlci5qcydcbmV4cG9ydCAqIGZyb20gJy4vdGVhbS5qcydcbmV4cG9ydCAqIGZyb20gJy4vdGVtcGxhdGUuanMnXG5leHBvcnQgKiBmcm9tICcuL3RocmVhZE1lbWJlci5qcydcbmV4cG9ydCAqIGZyb20gJy4vdG9nZ2xlcy9pbmRleC5qcydcbmV4cG9ydCAqIGZyb20gJy4vdXNlci5qcydcbmV4cG9ydCAqIGZyb20gJy4vdm9pY2VSZWdpb24uanMnXG5leHBvcnQgKiBmcm9tICcuL3ZvaWNlU3RhdGUuanMnXG5leHBvcnQgKiBmcm9tICcuL3dlYmhvb2suanMnXG5leHBvcnQgKiBmcm9tICcuL3dlbGNvbWVTY3JlZW4uanMnXG5leHBvcnQgKiBmcm9tICcuL3dpZGdldC5qcydcbmV4cG9ydCAqIGZyb20gJy4vd2lkZ2V0U2V0dGluZ3MuanMnXG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxnQkFBZTtBQUM3QixjQUFjLG1CQUFrQjtBQUNoQyxjQUFjLDBCQUF5QjtBQUN2QyxjQUFjLGdDQUErQjtBQUM3QyxjQUFjLHNDQUFxQztBQUNuRCxjQUFjLG9DQUFtQztBQUNqRCxjQUFjLGtCQUFpQjtBQUMvQixjQUFjLHFCQUFvQjtBQUNsQyxjQUFjLDhCQUE2QjtBQUMzQyxjQUFjLG1CQUFrQjtBQUNoQyxjQUFjLGVBQWM7QUFDNUIsY0FBYyxpQkFBZ0I7QUFDOUIsY0FBYyxhQUFZO0FBQzFCLGNBQWMsYUFBWTtBQUMxQixjQUFjLG1CQUFrQjtBQUNoQyxjQUFjLGtCQUFpQjtBQUMvQixjQUFjLGFBQVk7QUFDMUIsY0FBYyxtQkFBa0I7QUFDaEMsY0FBYyxtQkFBa0I7QUFDaEMsY0FBYyxjQUFhO0FBQzNCLGNBQWMsY0FBYTtBQUMzQixjQUFjLGVBQWM7QUFDNUIsY0FBYyxrQkFBaUI7QUFDL0IsY0FBYyxZQUFXO0FBQ3pCLGNBQWMsZ0JBQWU7QUFDN0IsY0FBYyxxQkFBb0I7QUFDbEMsY0FBYyxZQUFXO0FBQ3pCLGNBQWMsc0JBQXFCO0FBQ25DLGNBQWMsV0FBVTtBQUN4QixjQUFjLHFCQUFvQjtBQUNsQyxjQUFjLDJCQUEwQjtBQUN4QyxjQUFjLGVBQWM7QUFDNUIsY0FBYyxZQUFXO0FBQ3pCLGNBQWMsZ0JBQWU7QUFDN0IsY0FBYyxvQkFBbUI7QUFDakMsY0FBYyxxQkFBb0I7QUFDbEMsY0FBYyxZQUFXO0FBQ3pCLGNBQWMsbUJBQWtCO0FBQ2hDLGNBQWMsa0JBQWlCO0FBQy9CLGNBQWMsZUFBYztBQUM1QixjQUFjLHFCQUFvQjtBQUNsQyxjQUFjLGNBQWE7QUFDM0IsY0FBYyxzQkFBcUIifQ==
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hY3Rpdml0eS5qcydcbmV4cG9ydCAqIGZyb20gJy4vYXBwbGljYXRpb24uanMnXG5leHBvcnQgKiBmcm9tICcuL2FwcGxpY2F0aW9uQ29tbWFuZC5qcydcbmV4cG9ydCAqIGZyb20gJy4vYXBwbGljYXRpb25Db21tYW5kT3B0aW9uLmpzJ1xuZXhwb3J0ICogZnJvbSAnLi9hcHBsaWNhdGlvbkNvbW1hbmRPcHRpb25DaG9pY2UuanMnXG5leHBvcnQgKiBmcm9tICcuL2FwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb24uanMnXG5leHBvcnQgKiBmcm9tICcuL2F0dGFjaG1lbnQuanMnXG5leHBvcnQgKiBmcm9tICcuL2F1ZGl0TG9nRW50cnkuanMnXG5leHBvcnQgKiBmcm9tICcuL2F1dG9tb2RBY3Rpb25FeGVjdXRpb24uanMnXG5leHBvcnQgKiBmcm9tICcuL2F1dG9tb2RSdWxlLmpzJ1xuZXhwb3J0ICogZnJvbSAnLi9hdmF0YXJEZWNvcmF0aW9uRGF0YS5qcydcbmV4cG9ydCAqIGZyb20gJy4vY2hhbm5lbC5qcydcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50LmpzJ1xuZXhwb3J0ICogZnJvbSAnLi9lbWJlZC5qcydcbmV4cG9ydCAqIGZyb20gJy4vZW1vamkuanMnXG5leHBvcnQgKiBmcm9tICcuL2VudGl0bGVtZW50LmpzJ1xuZXhwb3J0ICogZnJvbSAnLi9nYXRld2F5Qm90LmpzJ1xuZXhwb3J0ICogZnJvbSAnLi9ndWlsZC5qcydcbmV4cG9ydCAqIGZyb20gJy4vaW50ZWdyYXRpb24uanMnXG5leHBvcnQgKiBmcm9tICcuL2ludGVyYWN0aW9uLmpzJ1xuZXhwb3J0ICogZnJvbSAnLi9pbnZpdGUuanMnXG5leHBvcnQgKiBmcm9tICcuL21lbWJlci5qcydcbmV4cG9ydCAqIGZyb20gJy4vbWVzc2FnZS5qcydcbmV4cG9ydCAqIGZyb20gJy4vb25ib2FyZGluZy5qcydcbmV4cG9ydCAqIGZyb20gJy4vcG9sbC5qcydcbmV4cG9ydCAqIGZyb20gJy4vcHJlc2VuY2UuanMnXG5leHBvcnQgKiBmcm9tICcuL3JldmVyc2UvaW5kZXguanMnXG5leHBvcnQgKiBmcm9tICcuL3JvbGUuanMnXG5leHBvcnQgKiBmcm9tICcuL3NjaGVkdWxlZEV2ZW50LmpzJ1xuZXhwb3J0ICogZnJvbSAnLi9za3UuanMnXG5leHBvcnQgKiBmcm9tICcuL3N0YWdlSW5zdGFuY2UuanMnXG5leHBvcnQgKiBmcm9tICcuL3N0YWdlSW52aXRlSW5zdGFuY2UuanMnXG5leHBvcnQgKiBmcm9tICcuL3N0aWNrZXIuanMnXG5leHBvcnQgKiBmcm9tICcuL3RlYW0uanMnXG5leHBvcnQgKiBmcm9tICcuL3RlbXBsYXRlLmpzJ1xuZXhwb3J0ICogZnJvbSAnLi90aHJlYWRNZW1iZXIuanMnXG5leHBvcnQgKiBmcm9tICcuL3RvZ2dsZXMvaW5kZXguanMnXG5leHBvcnQgKiBmcm9tICcuL3VzZXIuanMnXG5leHBvcnQgKiBmcm9tICcuL3ZvaWNlUmVnaW9uLmpzJ1xuZXhwb3J0ICogZnJvbSAnLi92b2ljZVN0YXRlLmpzJ1xuZXhwb3J0ICogZnJvbSAnLi93ZWJob29rLmpzJ1xuZXhwb3J0ICogZnJvbSAnLi93ZWxjb21lU2NyZWVuLmpzJ1xuZXhwb3J0ICogZnJvbSAnLi93aWRnZXQuanMnXG5leHBvcnQgKiBmcm9tICcuL3dpZGdldFNldHRpbmdzLmpzJ1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsZ0JBQWU7QUFDN0IsY0FBYyxtQkFBa0I7QUFDaEMsY0FBYywwQkFBeUI7QUFDdkMsY0FBYyxnQ0FBK0I7QUFDN0MsY0FBYyxzQ0FBcUM7QUFDbkQsY0FBYyxvQ0FBbUM7QUFDakQsY0FBYyxrQkFBaUI7QUFDL0IsY0FBYyxxQkFBb0I7QUFDbEMsY0FBYyw4QkFBNkI7QUFDM0MsY0FBYyxtQkFBa0I7QUFDaEMsY0FBYyw0QkFBMkI7QUFDekMsY0FBYyxlQUFjO0FBQzVCLGNBQWMsaUJBQWdCO0FBQzlCLGNBQWMsYUFBWTtBQUMxQixjQUFjLGFBQVk7QUFDMUIsY0FBYyxtQkFBa0I7QUFDaEMsY0FBYyxrQkFBaUI7QUFDL0IsY0FBYyxhQUFZO0FBQzFCLGNBQWMsbUJBQWtCO0FBQ2hDLGNBQWMsbUJBQWtCO0FBQ2hDLGNBQWMsY0FBYTtBQUMzQixjQUFjLGNBQWE7QUFDM0IsY0FBYyxlQUFjO0FBQzVCLGNBQWMsa0JBQWlCO0FBQy9CLGNBQWMsWUFBVztBQUN6QixjQUFjLGdCQUFlO0FBQzdCLGNBQWMscUJBQW9CO0FBQ2xDLGNBQWMsWUFBVztBQUN6QixjQUFjLHNCQUFxQjtBQUNuQyxjQUFjLFdBQVU7QUFDeEIsY0FBYyxxQkFBb0I7QUFDbEMsY0FBYywyQkFBMEI7QUFDeEMsY0FBYyxlQUFjO0FBQzVCLGNBQWMsWUFBVztBQUN6QixjQUFjLGdCQUFlO0FBQzdCLGNBQWMsb0JBQW1CO0FBQ2pDLGNBQWMscUJBQW9CO0FBQ2xDLGNBQWMsWUFBVztBQUN6QixjQUFjLG1CQUFrQjtBQUNoQyxjQUFjLGtCQUFpQjtBQUMvQixjQUFjLGVBQWM7QUFDNUIsY0FBYyxxQkFBb0I7QUFDbEMsY0FBYyxjQUFhO0FBQzNCLGNBQWMsc0JBQXFCIn0=
@@ -1,7 +1,6 @@
1
- import { InteractionResponseTypes, InteractionTypes } from '@discordeno/types';
1
+ import { InteractionResponseTypes, InteractionTypes, MessageFlags } from '@discordeno/types';
2
2
  import { Collection } from '@discordeno/utils';
3
3
  import { DiscordApplicationIntegrationType } from '../index.js';
4
- import { MessageFlags } from '../typings.js';
5
4
  const baseInteraction = {
6
5
  async respond (response, options) {
7
6
  let type = InteractionResponseTypes.ChannelMessageWithSource;
@@ -61,13 +60,6 @@ const baseInteraction = {
61
60
  }
62
61
  });
63
62
  },
64
- async premiumRequired () {
65
- if (this.acknowledged) throw new Error('Cannot respond to an already responded interaction.');
66
- this.acknowledged = true;
67
- return await this.bot.helpers.sendInteractionResponse(this.id, this.token, {
68
- type: InteractionResponseTypes.PremiumRequired
69
- });
70
- },
71
63
  async delete (messageId) {
72
64
  if (this.type === InteractionTypes.ApplicationCommandAutocomplete) throw new Error('Cannot delete an autocomplete interaction');
73
65
  if (messageId) return await this.bot?.helpers.deleteFollowupMessage(this.token, messageId);
@@ -75,47 +67,52 @@ const baseInteraction = {
75
67
  }
76
68
  };
77
69
  export function transformInteraction(bot, payload) {
78
- const guildId = payload.guild_id ? bot.transformers.snowflake(payload.guild_id) : undefined;
79
- const user = bot.transformers.user(bot, payload.member?.user ?? payload.user);
70
+ const guildId = payload.interaction.guild_id ? bot.transformers.snowflake(payload.interaction.guild_id) : undefined;
71
+ const user = bot.transformers.user(bot, payload.interaction.member?.user ?? payload.interaction.user);
80
72
  const interaction = Object.create(baseInteraction);
81
73
  const props = bot.transformers.desiredProperties.interaction;
82
74
  interaction.bot = bot;
83
75
  interaction.acknowledged = false;
84
- if (props.id && payload.id) interaction.id = bot.transformers.snowflake(payload.id);
85
- if (props.applicationId && payload.application_id) interaction.applicationId = bot.transformers.snowflake(payload.application_id);
86
- if (props.type && payload.type) interaction.type = payload.type;
87
- if (props.token && payload.token) interaction.token = payload.token;
88
- if (props.version && payload.version) interaction.version = payload.version;
89
- if (props.locale && payload.locale) interaction.locale = payload.locale;
90
- if (props.guildLocale && payload.guild_locale) interaction.guildLocale = payload.guild_locale;
76
+ if (props.id && payload.interaction.id) interaction.id = bot.transformers.snowflake(payload.interaction.id);
77
+ if (props.applicationId && payload.interaction.application_id) interaction.applicationId = bot.transformers.snowflake(payload.interaction.application_id);
78
+ if (props.type && payload.interaction.type) interaction.type = payload.interaction.type;
79
+ if (props.token && payload.interaction.token) interaction.token = payload.interaction.token;
80
+ if (props.version && payload.interaction.version) interaction.version = payload.interaction.version;
81
+ if (props.locale && payload.interaction.locale) interaction.locale = payload.interaction.locale;
82
+ if (props.guildLocale && payload.interaction.guild_locale) interaction.guildLocale = payload.interaction.guild_locale;
83
+ if (props.guild && payload.interaction.guild) // @ts-expect-error payload.interaction.guild is a Partial<DiscordGuild>
84
+ interaction.guild = bot.transformers.guild(bot, {
85
+ guild: payload.interaction.guild,
86
+ shardId: payload.shardId
87
+ });
91
88
  if (props.guildId && guildId) interaction.guildId = guildId;
92
89
  if (props.user && user) interaction.user = user;
93
- if (props.appPermissions && payload.app_permissions) interaction.appPermissions = bot.transformers.snowflake(payload.app_permissions);
94
- if (props.message && payload.message) interaction.message = bot.transformers.message(bot, payload.message);
95
- if (props.channel && payload.channel) interaction.channel = bot.transformers.channel(bot, {
96
- channel: payload.channel,
90
+ if (props.appPermissions && payload.interaction.app_permissions) interaction.appPermissions = bot.transformers.snowflake(payload.interaction.app_permissions);
91
+ if (props.message && payload.interaction.message) interaction.message = bot.transformers.message(bot, payload.interaction.message);
92
+ if (props.channel && payload.interaction.channel) interaction.channel = bot.transformers.channel(bot, {
93
+ channel: payload.interaction.channel,
97
94
  guildId
98
95
  });
99
- if (props.channelId && payload.channel_id) interaction.channelId = bot.transformers.snowflake(payload.channel_id);
100
- if (props.member && guildId && payload.member) interaction.member = bot.transformers.member(bot, payload.member, guildId, user.id);
101
- if (props.authorizingIntegrationOwners && payload.authorizing_integration_owners) {
96
+ if (props.channelId && payload.interaction.channel_id) interaction.channelId = bot.transformers.snowflake(payload.interaction.channel_id);
97
+ if (props.member && guildId && payload.interaction.member) interaction.member = bot.transformers.member(bot, payload.interaction.member, guildId, user.id);
98
+ if (props.authorizingIntegrationOwners && payload.interaction.authorizing_integration_owners) {
102
99
  interaction.authorizingIntegrationOwners = {};
103
- if (payload.authorizing_integration_owners['0']) interaction.authorizingIntegrationOwners[DiscordApplicationIntegrationType.GuildInstall] = bot.transformers.snowflake(payload.authorizing_integration_owners['0']);
104
- if (payload.authorizing_integration_owners['1']) interaction.authorizingIntegrationOwners[DiscordApplicationIntegrationType.UserInstall] = bot.transformers.snowflake(payload.authorizing_integration_owners['1']);
100
+ if (payload.interaction.authorizing_integration_owners['0']) interaction.authorizingIntegrationOwners[DiscordApplicationIntegrationType.GuildInstall] = bot.transformers.snowflake(payload.interaction.authorizing_integration_owners['0']);
101
+ if (payload.interaction.authorizing_integration_owners['1']) interaction.authorizingIntegrationOwners[DiscordApplicationIntegrationType.UserInstall] = bot.transformers.snowflake(payload.interaction.authorizing_integration_owners['1']);
105
102
  }
106
- if (props.context && payload.context) interaction.context = payload.context;
107
- if (props.data && payload.data) {
103
+ if (props.context && payload.interaction.context) interaction.context = payload.interaction.context;
104
+ if (props.data && payload.interaction.data) {
108
105
  interaction.data = {
109
- type: payload.data.type,
110
- componentType: payload.data.component_type,
111
- customId: payload.data.custom_id,
112
- components: payload.data.components?.map((component)=>bot.transformers.component(bot, component)),
113
- values: payload.data.values,
114
- id: payload.data.id ? bot.transformers.snowflake(payload.data.id) : undefined,
115
- name: payload.data.name,
116
- resolved: payload.data.resolved ? transformInteractionDataResolved(bot, payload.data.resolved, guildId) : undefined,
117
- options: payload.data.options?.map((opt)=>bot.transformers.interactionDataOptions(bot, opt)),
118
- targetId: payload.data.target_id ? bot.transformers.snowflake(payload.data.target_id) : undefined
106
+ type: payload.interaction.data.type,
107
+ componentType: payload.interaction.data.component_type,
108
+ customId: payload.interaction.data.custom_id,
109
+ components: payload.interaction.data.components?.map((component)=>bot.transformers.component(bot, component)),
110
+ values: payload.interaction.data.values,
111
+ id: payload.interaction.data.id ? bot.transformers.snowflake(payload.interaction.data.id) : undefined,
112
+ name: payload.interaction.data.name,
113
+ resolved: payload.interaction.data.resolved ? transformInteractionDataResolved(bot, payload.interaction.data.resolved, guildId) : undefined,
114
+ options: payload.interaction.data.options?.map((opt)=>bot.transformers.interactionDataOptions(bot, opt)),
115
+ targetId: payload.interaction.data.target_id ? bot.transformers.snowflake(payload.interaction.data.target_id) : undefined
119
116
  };
120
117
  }
121
118
  return bot.transformers.customizers.interaction(bot, payload, interaction);
@@ -198,4 +195,4 @@ export function transformInteractionDataResolved(bot, resolved, guildId) {
198
195
  return transformed;
199
196
  }
200
197
 
201
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvaW50ZXJhY3Rpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLFxuICBJbnRlcmFjdGlvblR5cGVzLFxuICB0eXBlIEFwcGxpY2F0aW9uQ29tbWFuZE9wdGlvblR5cGVzLFxuICB0eXBlIEFwcGxpY2F0aW9uQ29tbWFuZFR5cGVzLFxuICB0eXBlIEJpZ1N0cmluZyxcbiAgdHlwZSBDaGFubmVsVHlwZXMsXG4gIHR5cGUgRGlzY29yZEludGVyYWN0aW9uLFxuICB0eXBlIERpc2NvcmRJbnRlcmFjdGlvbkRhdGFPcHRpb24sXG4gIHR5cGUgSW50ZXJhY3Rpb25DYWxsYmFja0RhdGEsXG4gIHR5cGUgTWVzc2FnZUNvbXBvbmVudFR5cGVzLFxufSBmcm9tICdAZGlzY29yZGVuby90eXBlcydcbmltcG9ydCB7IENvbGxlY3Rpb24gfSBmcm9tICdAZGlzY29yZGVuby91dGlscydcbmltcG9ydCB7XG4gIHR5cGUgQm90LFxuICB0eXBlIENoYW5uZWwsXG4gIHR5cGUgQ29tcG9uZW50LFxuICBEaXNjb3JkQXBwbGljYXRpb25JbnRlZ3JhdGlvblR5cGUsXG4gIHR5cGUgRGlzY29yZENoYW5uZWwsXG4gIHR5cGUgRGlzY29yZEludGVyYWN0aW9uQ29udGV4dFR5cGUsXG59IGZyb20gJy4uL2luZGV4LmpzJ1xuaW1wb3J0IHsgTWVzc2FnZUZsYWdzLCB0eXBlIERpc2NvcmRJbnRlcmFjdGlvbkRhdGFSZXNvbHZlZCB9IGZyb20gJy4uL3R5cGluZ3MuanMnXG5pbXBvcnQgdHlwZSB7IEF0dGFjaG1lbnQgfSBmcm9tICcuL2F0dGFjaG1lbnQuanMnXG5pbXBvcnQgdHlwZSB7IE1lbWJlciB9IGZyb20gJy4vbWVtYmVyLmpzJ1xuaW1wb3J0IHR5cGUgeyBNZXNzYWdlIH0gZnJvbSAnLi9tZXNzYWdlLmpzJ1xuaW1wb3J0IHR5cGUgeyBSb2xlIH0gZnJvbSAnLi9yb2xlLmpzJ1xuaW1wb3J0IHR5cGUgeyBVc2VyIH0gZnJvbSAnLi91c2VyLmpzJ1xuXG5leHBvcnQgaW50ZXJmYWNlIEludGVyYWN0aW9uIGV4dGVuZHMgQmFzZUludGVyYWN0aW9uIHtcbiAgLyoqIFRoZSBib3Qgb2JqZWN0ICovXG4gIGJvdDogQm90XG4gIC8qKiBXaGV0aGVyIG9yIG5vdCB0aGlzIGludGVyYWN0aW9uIGhhcyBiZWVuIHJlc3BvbmRlZCB0by4gKi9cbiAgYWNrbm93bGVkZ2VkOiBib29sZWFuXG4gIC8qKiBJZCBvZiB0aGUgaW50ZXJhY3Rpb24gKi9cbiAgaWQ6IGJpZ2ludFxuICAvKiogSWQgb2YgdGhlIGFwcGxpY2F0aW9uIHRoaXMgaW50ZXJhY3Rpb24gaXMgZm9yICovXG4gIGFwcGxpY2F0aW9uSWQ6IGJpZ2ludFxuICAvKiogVGhlIHR5cGUgb2YgaW50ZXJhY3Rpb24gKi9cbiAgdHlwZTogSW50ZXJhY3Rpb25UeXBlc1xuICAvKiogVGhlIGd1aWxkIGl0IHdhcyBzZW50IGZyb20gKi9cbiAgZ3VpbGRJZD86IGJpZ2ludFxuICAvKiogVGhlIGNoYW5uZWwgaXQgd2FzIHNlbnQgZnJvbSAqL1xuICBjaGFubmVsOiBQYXJ0aWFsPENoYW5uZWw+XG4gIC8qKlxuICAgKiBUaGUgSUQgb2YgY2hhbm5lbCBpdCB3YXMgc2VudCBmcm9tXG4gICAqXG4gICAqIEByZW1hcmtzXG4gICAqIEl0IGlzIHJlY29tbWVuZGVkIHRoYXQgeW91IGJlZ2luIHVzaW5nIHRoaXMgY2hhbm5lbCBmaWVsZCB0byBpZGVudGlmeSB0aGUgc291cmNlIGNoYW5uZWwgb2YgdGhlIGludGVyYWN0aW9uIGFzIHRoZXkgbWF5IGRlcHJlY2F0ZSB0aGUgZXhpc3RpbmcgY2hhbm5lbF9pZCBmaWVsZCBpbiB0aGUgZnV0dXJlLlxuICAgKi9cbiAgY2hhbm5lbElkPzogYmlnaW50XG4gIC8qKiBHdWlsZCBtZW1iZXIgZGF0YSBmb3IgdGhlIGludm9raW5nIHVzZXIsIGluY2x1ZGluZyBwZXJtaXNzaW9ucyAqL1xuICBtZW1iZXI/OiBNZW1iZXJcbiAgLyoqIFVzZXIgb2JqZWN0IGZvciB0aGUgaW52b2tpbmcgdXNlciwgaWYgaW52b2tlZCBpbiBhIERNICovXG4gIHVzZXI6IFVzZXJcbiAgLyoqIEEgY29udGludWF0aW9uIHRva2VuIGZvciByZXNwb25kaW5nIHRvIHRoZSBpbnRlcmFjdGlvbiAqL1xuICB0b2tlbjogc3RyaW5nXG4gIC8qKiBSZWFkLW9ubHkgcHJvcGVydHksIGFsd2F5cyBgMWAgKi9cbiAgdmVyc2lvbjogMVxuICAvKiogRm9yIHRoZSBtZXNzYWdlIHRoZSBidXR0b24gd2FzIGF0dGFjaGVkIHRvICovXG4gIG1lc3NhZ2U/OiBNZXNzYWdlXG4gIC8qKiB0aGUgY29tbWFuZCBkYXRhIHBheWxvYWQgKi9cbiAgZGF0YT86IHtcbiAgICB0eXBlPzogQXBwbGljYXRpb25Db21tYW5kVHlwZXNcbiAgICBjb21wb25lbnRUeXBlPzogTWVzc2FnZUNvbXBvbmVudFR5cGVzXG4gICAgY3VzdG9tSWQ/OiBzdHJpbmdcbiAgICBjb21wb25lbnRzPzogQ29tcG9uZW50W11cbiAgICB2YWx1ZXM/OiBzdHJpbmdbXVxuICAgIG5hbWU6IHN0cmluZ1xuICAgIHJlc29sdmVkPzogSW50ZXJhY3Rpb25EYXRhUmVzb2x2ZWRcbiAgICBvcHRpb25zPzogSW50ZXJhY3Rpb25EYXRhT3B0aW9uW11cbiAgICBpZD86IGJpZ2ludFxuICAgIHRhcmdldElkPzogYmlnaW50XG4gICAgLy8gZ3VpbGRJZD86IGJpZ2ludFxuICB9XG4gIC8qKiBUaGUgc2VsZWN0ZWQgbGFuZ3VhZ2Ugb2YgdGhlIGludm9raW5nIHVzZXIgKi9cbiAgbG9jYWxlPzogc3RyaW5nXG4gIC8qKiBUaGUgZ3VpbGQncyBwcmVmZXJyZWQgbG9jYWxlLCBpZiBpbnZva2VkIGluIGEgZ3VpbGQgKi9cbiAgZ3VpbGRMb2NhbGU/OiBzdHJpbmdcbiAgLyoqIFRoZSBjb21wdXRlZCBwZXJtaXNzaW9ucyBmb3IgYSBib3Qgb3IgYXBwIGluIHRoZSBjb250ZXh0IG9mIGEgc3BlY2lmaWMgaW50ZXJhY3Rpb24gKGluY2x1ZGluZyBjaGFubmVsIG92ZXJ3cml0ZXMpICovXG4gIGFwcFBlcm1pc3Npb25zOiBiaWdpbnRcbiAgLyoqIE1hcHBpbmcgb2YgaW5zdGFsbGF0aW9uIGNvbnRleHRzIHRoYXQgdGhlIGludGVyYWN0aW9uIHdhcyBhdXRob3JpemVkIGZvciB0byByZWxhdGVkIHVzZXIgb3IgZ3VpbGQgSURzLiAqL1xuICBhdXRob3JpemluZ0ludGVncmF0aW9uT3duZXJzOiBQYXJ0aWFsPFJlY29yZDxEaXNjb3JkQXBwbGljYXRpb25JbnRlZ3JhdGlvblR5cGUsIGJpZ2ludD4+XG4gIC8qKiBDb250ZXh0IHdoZXJlIHRoZSBpbnRlcmFjdGlvbiB3YXMgdHJpZ2dlcmVkIGZyb20gKi9cbiAgY29udGV4dD86IERpc2NvcmRJbnRlcmFjdGlvbkNvbnRleHRUeXBlXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmFzZUludGVyYWN0aW9uIHtcbiAgLyoqXG4gICAqIFNlbmRzIGEgcmVzcG9uc2UgdG8gYW4gaW50ZXJhY3Rpb24uXG4gICAqXG4gICAqIEByZW1hcmtzXG4gICAqIFRoaXMgd2lsbCBzZW5kIGEge0BsaW5rIEludGVyYWN0aW9uUmVzcG9uc2VUeXBlcy5DaGFubmVsTWVzc2FnZVdpdGhTb3VyY2V9LCB7QGxpbmsgSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLkFwcGxpY2F0aW9uQ29tbWFuZEF1dG9jb21wbGV0ZVJlc3VsdH0gb3Ige0BsaW5rIEludGVyYWN0aW9uUmVzcG9uc2VUeXBlcy5Nb2RhbH0gcmVzcG9uc2UgYmFzZWQgb24gdGhlIHR5cGUgb2YgdGhlIGludGVyYWN0aW9uIHlvdSBhcmUgcmVzcG9uZGluZyB0by5cbiAgICpcbiAgICogSWYgdGhlIGludGVyYWN0aW9uIGhhcyBiZWVuIGFscmVhZHkgYWNrbm93bGVkZ2VkLCBpbmRpY2F0ZWQgYnkge0BsaW5rIEludGVyYWN0aW9uLmFja25vd2xlZGdlZH0sIGl0IHdpbGwgc2VuZCBhIGZvbGxvd3VwIG1lc3NhZ2UgaW5zdGVhZC5cbiAgICpcbiAgICogVXNlcyBgaW50ZXJhY3Rpb24udHlwZWAsIGBpbnRlcmFjdGlvbi50b2tlbmAgYW5kIGBpbnRlcmFjdGlvbi5pZGAsIG1pc3Npbmcgb25lIG9mIHRoZXNlIGluIHRoZSBkZXNpcmVkIHByb3ByaWV0aWVzIG1heSBjYXVzZSB1bmV4cGVjdGVkIGJlaGF2aW9yLlxuICAgKi9cbiAgcmVzcG9uZDogKHJlc3BvbnNlOiBzdHJpbmcgfCBJbnRlcmFjdGlvbkNhbGxiYWNrRGF0YSwgb3B0aW9ucz86IHsgaXNQcml2YXRlPzogYm9vbGVhbiB9KSA9PiBQcm9taXNlPE1lc3NhZ2UgfCB2b2lkPlxuICAvKipcbiAgICogRWRpdCB0aGUgb3JpZ2luYWwgcmVzcG9uc2Ugb2YgYW4gaW50ZXJhY3Rpb24gb3IgYSBmb2xsb3d1cCBpZiB0aGUgbWVzc2FnZSBpZCBpcyBwcm92aWRlZC5cbiAgICpcbiAgICogQHJlbWFya3NcbiAgICogVGhpcyB3aWxsIGVkaXQgdGhlIG9yaWdpbmFsIGludGVyYWN0aW9uIHJlc3BvbnNlIG9yLCBpZiB0aGUgaW50ZXJhY3Rpb24gaGFzIG5vdCB5ZXQgYmVlbiBhY2tub3dsZWRnZWQgYW5kIHRoZSB0eXBlIG9mIHRoZSBpbnRlcmFjdGlvbiBpcyB7QGxpbmsgSW50ZXJhY3Rpb25UeXBlcy5NZXNzYWdlQ29tcG9uZW50fSBpdCB3aWxsIGluc3RlYWQgc2VuZCBhIHtAbGluayBJbnRlcmFjdGlvblJlc3BvbnNlVHlwZXMuVXBkYXRlTWVzc2FnZX0gcmVzcG9uc2UgaW5zdGVhZC5cbiAgICpcbiAgICogVXNlcyBgaW50ZXJhY3Rpb24udHlwZWAsIGBpbnRlcmFjdGlvbi50b2tlbmAgYW5kIGBpbnRlcmFjdGlvbi5pZGAsIG1pc3Npbmcgb25lIG9mIHRoZXNlIGluIHRoZSBkZXNpcmVkIHByb3ByaWV0aWVzIG1heSBjYXVzZSB1bmV4cGVjdGVkIGJlaGF2aW9yLlxuICAgKi9cbiAgZWRpdDogKHJlc3BvbnNlOiBzdHJpbmcgfCBJbnRlcmFjdGlvbkNhbGxiYWNrRGF0YSwgbWVzc2FnZUlkPzogQmlnU3RyaW5nKSA9PiBQcm9taXNlPE1lc3NhZ2UgfCB2b2lkPlxuICAvKipcbiAgICogRGVmZXIgdGhlIGludGVyYWN0aW9uIGZvciB1cGRhdGluZyB0aGUgcmVmZXJlbmNlZCBtZXNzYWdlIGF0IGEgbGF0ZXIgdGltZSB3aXRoIHtAbGluayBlZGl0fS5cbiAgICpcbiAgICogQHJlbWFya3NcbiAgICogVGhpcyB3aWxsIHNlbmQgYSB7QGxpbmsgSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLkRlZmVycmVkVXBkYXRlTWVzc2FnZX0gcmVzcG9uc2UuXG4gICAqXG4gICAqIFVzZXMgYGludGVyYWN0aW9uLnR5cGVgLCBgaW50ZXJhY3Rpb24udG9rZW5gIGFuZCBgaW50ZXJhY3Rpb24uaWRgLCBtaXNzaW5nIG9uZSBvZiB0aGVzZSBpbiB0aGUgZGVzaXJlZCBwcm9wcmlldGllcyBtYXkgY2F1c2UgdW5leHBlY3RlZCBiZWhhdmlvci5cbiAgICovXG4gIGRlZmVyRWRpdDogKCkgPT4gUHJvbWlzZTx2b2lkPlxuICAvKipcbiAgICogRGVmZXIgdGhlIGludGVyYWN0aW9uIGZvciB1cGRhdGluZyB0aGUgcmVzcG9uc2UgYXQgYSBsYXRlciB0aW1lIHdpdGgge0BsaW5rIGVkaXR9LlxuICAgKlxuICAgKiBAcmVtYXJrc1xuICAgKiBUaGlzIHdpbGwgc2VuZCBhIHtAbGluayBJbnRlcmFjdGlvblJlc3BvbnNlVHlwZXMuRGVmZXJyZWRDaGFubmVsTWVzc2FnZVdpdGhTb3VyY2V9IHJlc3BvbnNlLlxuICAgKlxuICAgKiBVc2VzIGBpbnRlcmFjdGlvbi50eXBlYCwgYGludGVyYWN0aW9uLnRva2VuYCBhbmQgYGludGVyYWN0aW9uLmlkYCwgbWlzc2luZyBvbmUgb2YgdGhlc2UgaW4gdGhlIGRlc2lyZWQgcHJvcHJpZXRpZXMgbWF5IGNhdXNlIHVuZXhwZWN0ZWQgYmVoYXZpb3IuXG4gICAqL1xuICBkZWZlcjogKGlzUHJpdmF0ZT86IGJvb2xlYW4pID0+IFByb21pc2U8dm9pZD5cbiAgLyoqXG4gICAqIERlbGV0ZSB0aGUgb3JpZ2luYWwgaW50ZXJhY3Rpb24gcmVzcG9uc2Ugb3IgYSBmb2xsb3d1cCBpZiB0aGUgbWVzc2FnZSBpZCBpcyBwcm92aWRlZC5cbiAgICpcbiAgICogQHJlbWFya3NcbiAgICogVXNlcyBgaW50ZXJhY3Rpb24udHlwZWAgYW5kIGBpbnRlcmFjdGlvbi50b2tlbmAsIG1pc3Npbmcgb25lIG9mIHRoZXNlIGluIHRoZSBkZXNpcmVkIHByb3ByaWV0aWVzIG1heSBjYXVzZSB1bmV4cGVjdGVkIGJlaGF2aW9yLlxuICAgKi9cbiAgZGVsZXRlOiAobWVzc2FnZUlkPzogQmlnU3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIC8qKlxuICAgKiBTZW5kcyBhIHJlc3BvbnNlIHdpdGggYW4gdXBncmFkZSBidXR0b24uXG4gICAqXG4gICAqIEByZW1hcmtzXG4gICAqIFRoaXMgd2lsbCBzZW5kIGEge0BsaW5rIEludGVyYWN0aW9uUmVzcG9uc2VUeXBlcy5QcmVtaXVtUmVxdWlyZWR9IHJlc3BvbnNlLlxuICAgKlxuICAgKiBUaGlzIGNhbiBiZSB1c2VkIG9ubHkgd2l0aCBhcHBsaWNhdGlvbnMgdGhhdCBoYXZlIG1vbmV0aXphdGlvbiBlbmFibGVkLlxuICAgKlxuICAgKiBVc2VzIGBpbnRlcmFjdGlvbi50eXBlYCwgYGludGVyYWN0aW9uLnRva2VuYCBhbmQgYGludGVyYWN0aW9uLmlkYCwgbWlzc2luZyBvbmUgb2YgdGhlc2UgaW4gdGhlIGRlc2lyZWQgcHJvcHJpZXRpZXMgbWF5IGNhdXNlIHVuZXhwZWN0ZWQgYmVoYXZpb3IuXG4gICAqL1xuICBwcmVtaXVtUmVxdWlyZWQ6ICgpID0+IFByb21pc2U8dm9pZD5cbn1cblxuY29uc3QgYmFzZUludGVyYWN0aW9uOiBQYXJ0aWFsPEludGVyYWN0aW9uPiAmIEJhc2VJbnRlcmFjdGlvbiA9IHtcbiAgYXN5bmMgcmVzcG9uZChyZXNwb25zZSwgb3B0aW9ucykge1xuICAgIGxldCB0eXBlID0gSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLkNoYW5uZWxNZXNzYWdlV2l0aFNvdXJjZVxuXG4gICAgLy8gSWYgdXNlciBwcm92aWRlcyBhIHN0cmluZywgY2hhbmdlIGl0IHRvIGEgcmVzcG9uc2Ugb2JqZWN0XG4gICAgaWYgKHR5cGVvZiByZXNwb25zZSA9PT0gJ3N0cmluZycpIHJlc3BvbnNlID0geyBjb250ZW50OiByZXNwb25zZSB9XG5cbiAgICAvLyBJZiB1c2VyIHByb3ZpZGVzIGFuIG9iamVjdCwgZGV0ZXJtaW5lIGlmIGl0IHNob3VsZCBiZSBhbiBhdXRvY29tcGxldGUgb3IgYSBtb2RhbCByZXNwb25zZVxuICAgIGlmIChyZXNwb25zZS50aXRsZSkgdHlwZSA9IEludGVyYWN0aW9uUmVzcG9uc2VUeXBlcy5Nb2RhbFxuICAgIGlmICh0aGlzLnR5cGUgPT09IEludGVyYWN0aW9uVHlwZXMuQXBwbGljYXRpb25Db21tYW5kQXV0b2NvbXBsZXRlKSB0eXBlID0gSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLkFwcGxpY2F0aW9uQ29tbWFuZEF1dG9jb21wbGV0ZVJlc3VsdFxuICAgIGlmICh0eXBlID09PSBJbnRlcmFjdGlvblJlc3BvbnNlVHlwZXMuQ2hhbm5lbE1lc3NhZ2VXaXRoU291cmNlICYmIG9wdGlvbnM/LmlzUHJpdmF0ZSkgcmVzcG9uc2UuZmxhZ3MgPSBNZXNzYWdlRmxhZ3MuRXBoZW1lcmFsXG5cbiAgICAvLyBTaW5jZSB0aGlzIGhhcyBhbHJlYWR5IGJlZW4gZ2l2ZW4gYSByZXNwb25zZSwgYW55IGZ1cnRoZXIgcmVzcG9uc2VzIG11c3QgYmUgZm9sbG93dXBzLlxuICAgIGlmICh0aGlzLmFja25vd2xlZGdlZCkgcmV0dXJuIGF3YWl0IHRoaXMuYm90IS5oZWxwZXJzLnNlbmRGb2xsb3d1cE1lc3NhZ2UodGhpcy50b2tlbiEsIHJlc3BvbnNlKVxuXG4gICAgLy8gTW9kYWxzIGNhbm5vdCBiZSBjaGFpbmVkXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gSW50ZXJhY3Rpb25UeXBlcy5Nb2RhbFN1Ym1pdCAmJiB0eXBlID09PSBJbnRlcmFjdGlvblJlc3BvbnNlVHlwZXMuTW9kYWwpXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCByZXNwb25kIHRvIGEgbW9kYWwgaW50ZXJhY3Rpb24gd2l0aCBhbm90aGVyIG1vZGFsLicpXG5cbiAgICB0aGlzLmFja25vd2xlZGdlZCA9IHRydWVcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5ib3QhLmhlbHBlcnMuc2VuZEludGVyYWN0aW9uUmVzcG9uc2UodGhpcy5pZCEsIHRoaXMudG9rZW4hLCB7IHR5cGUsIGRhdGE6IHJlc3BvbnNlIH0pXG4gIH0sXG4gIGFzeW5jIGVkaXQocmVzcG9uc2UsIG1lc3NhZ2VJZCkge1xuICAgIGlmICh0aGlzLnR5cGUgPT09IEludGVyYWN0aW9uVHlwZXMuQXBwbGljYXRpb25Db21tYW5kQXV0b2NvbXBsZXRlKSB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBlZGl0IGFuIGF1dG9jb21wbGV0ZSBpbnRlcmFjdGlvbi4nKVxuXG4gICAgLy8gSWYgdXNlciBwcm92aWRlcyBhIHN0cmluZywgY2hhbmdlIGl0IHRvIGEgcmVzcG9uc2Ugb2JqZWN0XG4gICAgaWYgKHR5cGVvZiByZXNwb25zZSA9PT0gJ3N0cmluZycpIHJlc3BvbnNlID0geyBjb250ZW50OiByZXNwb25zZSB9XG5cbiAgICBpZiAobWVzc2FnZUlkKSB7XG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy5ib3Q/LmhlbHBlcnMuZWRpdEZvbGxvd3VwTWVzc2FnZSh0aGlzLnRva2VuISwgbWVzc2FnZUlkLCByZXNwb25zZSlcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuYWNrbm93bGVkZ2VkKSB7XG4gICAgICBpZiAodGhpcy50eXBlICE9PSBJbnRlcmFjdGlvblR5cGVzLk1lc3NhZ2VDb21wb25lbnQpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIlRoaXMgaW50ZXJhY3Rpb24gaGFzIG5vdCBiZWVuIHJlc3BvbmRlZCB0byB5ZXQgYW5kIHRoaXMgaXNuJ3QgYSBNZXNzYWdlQ29tcG9uZW50IGludGVyYWN0aW9uLlwiKVxuXG4gICAgICB0aGlzLmFja25vd2xlZGdlZCA9IHRydWVcbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLmJvdCEuaGVscGVycy5zZW5kSW50ZXJhY3Rpb25SZXNwb25zZSh0aGlzLmlkISwgdGhpcy50b2tlbiEsIHsgdHlwZTogSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLlVwZGF0ZU1lc3NhZ2UsIGRhdGE6IHJlc3BvbnNlIH0pXG4gICAgfVxuXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuYm90IS5oZWxwZXJzLmVkaXRPcmlnaW5hbEludGVyYWN0aW9uUmVzcG9uc2UodGhpcy50b2tlbiEsIHJlc3BvbnNlKVxuICB9LFxuICBhc3luYyBkZWZlckVkaXQoKSB7XG4gICAgaWYgKHRoaXMudHlwZSA9PT0gSW50ZXJhY3Rpb25UeXBlcy5BcHBsaWNhdGlvbkNvbW1hbmRBdXRvY29tcGxldGUpIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGVkaXQgYW4gYXV0b2NvbXBsZXRlIGludGVyYWN0aW9uLicpXG4gICAgaWYgKHRoaXMuYWNrbm93bGVkZ2VkKSB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBkZWZlciBhbiBhbHJlYWR5IHJlc3BvbmRlZCBpbnRlcmFjdGlvbi4nKVxuXG4gICAgaWYgKHRoaXMudHlwZSAhPT0gSW50ZXJhY3Rpb25UeXBlcy5NZXNzYWdlQ29tcG9uZW50KVxuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQ2Fubm90IGRlZmVyIHRvIHRoZW4gZWRpdCBhbiBpbnRlcmFjdGlvbiB0aGF0IGlzbid0IGEgTWVzc2FnZUNvbXBvbmVudCBpbnRlcmFjdGlvbi5cIilcblxuICAgIHRoaXMuYWNrbm93bGVkZ2VkID0gdHJ1ZVxuICAgIHJldHVybiBhd2FpdCB0aGlzLmJvdCEuaGVscGVycy5zZW5kSW50ZXJhY3Rpb25SZXNwb25zZSh0aGlzLmlkISwgdGhpcy50b2tlbiEsIHsgdHlwZTogSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLkRlZmVycmVkVXBkYXRlTWVzc2FnZSB9KVxuICB9LFxuICBhc3luYyBkZWZlcihpc1ByaXZhdGUpIHtcbiAgICBpZiAodGhpcy5hY2tub3dsZWRnZWQpIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGRlZmVyIGFuIGFscmVhZHkgcmVzcG9uZGVkIGludGVyYWN0aW9uLicpXG5cbiAgICB0aGlzLmFja25vd2xlZGdlZCA9IHRydWVcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5ib3QhLmhlbHBlcnMuc2VuZEludGVyYWN0aW9uUmVzcG9uc2UodGhpcy5pZCEsIHRoaXMudG9rZW4hLCB7XG4gICAgICB0eXBlOiBJbnRlcmFjdGlvblJlc3BvbnNlVHlwZXMuRGVmZXJyZWRDaGFubmVsTWVzc2FnZVdpdGhTb3VyY2UsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIGZsYWdzOiBpc1ByaXZhdGUgPyBNZXNzYWdlRmxhZ3MuRXBoZW1lcmFsIDogdW5kZWZpbmVkLFxuICAgICAgfSxcbiAgICB9KVxuICB9LFxuICBhc3luYyBwcmVtaXVtUmVxdWlyZWQoKSB7XG4gICAgaWYgKHRoaXMuYWNrbm93bGVkZ2VkKSB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCByZXNwb25kIHRvIGFuIGFscmVhZHkgcmVzcG9uZGVkIGludGVyYWN0aW9uLicpXG5cbiAgICB0aGlzLmFja25vd2xlZGdlZCA9IHRydWVcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5ib3QhLmhlbHBlcnMuc2VuZEludGVyYWN0aW9uUmVzcG9uc2UodGhpcy5pZCEsIHRoaXMudG9rZW4hLCB7IHR5cGU6IEludGVyYWN0aW9uUmVzcG9uc2VUeXBlcy5QcmVtaXVtUmVxdWlyZWQgfSlcbiAgfSxcbiAgYXN5bmMgZGVsZXRlKG1lc3NhZ2VJZCkge1xuICAgIGlmICh0aGlzLnR5cGUgPT09IEludGVyYWN0aW9uVHlwZXMuQXBwbGljYXRpb25Db21tYW5kQXV0b2NvbXBsZXRlKSB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBkZWxldGUgYW4gYXV0b2NvbXBsZXRlIGludGVyYWN0aW9uJylcblxuICAgIGlmIChtZXNzYWdlSWQpIHJldHVybiBhd2FpdCB0aGlzLmJvdD8uaGVscGVycy5kZWxldGVGb2xsb3d1cE1lc3NhZ2UodGhpcy50b2tlbiEsIG1lc3NhZ2VJZClcbiAgICBlbHNlIHJldHVybiBhd2FpdCB0aGlzLmJvdD8uaGVscGVycy5kZWxldGVPcmlnaW5hbEludGVyYWN0aW9uUmVzcG9uc2UodGhpcy50b2tlbiEpXG4gIH0sXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1JbnRlcmFjdGlvbihib3Q6IEJvdCwgcGF5bG9hZDogRGlzY29yZEludGVyYWN0aW9uKTogSW50ZXJhY3Rpb24ge1xuICBjb25zdCBndWlsZElkID0gcGF5bG9hZC5ndWlsZF9pZCA/IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuZ3VpbGRfaWQpIDogdW5kZWZpbmVkXG4gIGNvbnN0IHVzZXIgPSBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCBwYXlsb2FkLm1lbWJlcj8udXNlciA/PyBwYXlsb2FkLnVzZXIhKVxuXG4gIGNvbnN0IGludGVyYWN0aW9uOiBJbnRlcmFjdGlvbiA9IE9iamVjdC5jcmVhdGUoYmFzZUludGVyYWN0aW9uKVxuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuaW50ZXJhY3Rpb25cbiAgaW50ZXJhY3Rpb24uYm90ID0gYm90XG4gIGludGVyYWN0aW9uLmFja25vd2xlZGdlZCA9IGZhbHNlXG5cbiAgaWYgKHByb3BzLmlkICYmIHBheWxvYWQuaWQpIGludGVyYWN0aW9uLmlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pZClcbiAgaWYgKHByb3BzLmFwcGxpY2F0aW9uSWQgJiYgcGF5bG9hZC5hcHBsaWNhdGlvbl9pZCkgaW50ZXJhY3Rpb24uYXBwbGljYXRpb25JZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuYXBwbGljYXRpb25faWQpXG4gIGlmIChwcm9wcy50eXBlICYmIHBheWxvYWQudHlwZSkgaW50ZXJhY3Rpb24udHlwZSA9IHBheWxvYWQudHlwZVxuICBpZiAocHJvcHMudG9rZW4gJiYgcGF5bG9hZC50b2tlbikgaW50ZXJhY3Rpb24udG9rZW4gPSBwYXlsb2FkLnRva2VuXG4gIGlmIChwcm9wcy52ZXJzaW9uICYmIHBheWxvYWQudmVyc2lvbikgaW50ZXJhY3Rpb24udmVyc2lvbiA9IHBheWxvYWQudmVyc2lvblxuICBpZiAocHJvcHMubG9jYWxlICYmIHBheWxvYWQubG9jYWxlKSBpbnRlcmFjdGlvbi5sb2NhbGUgPSBwYXlsb2FkLmxvY2FsZVxuICBpZiAocHJvcHMuZ3VpbGRMb2NhbGUgJiYgcGF5bG9hZC5ndWlsZF9sb2NhbGUpIGludGVyYWN0aW9uLmd1aWxkTG9jYWxlID0gcGF5bG9hZC5ndWlsZF9sb2NhbGVcbiAgaWYgKHByb3BzLmd1aWxkSWQgJiYgZ3VpbGRJZCkgaW50ZXJhY3Rpb24uZ3VpbGRJZCA9IGd1aWxkSWRcbiAgaWYgKHByb3BzLnVzZXIgJiYgdXNlcikgaW50ZXJhY3Rpb24udXNlciA9IHVzZXJcbiAgaWYgKHByb3BzLmFwcFBlcm1pc3Npb25zICYmIHBheWxvYWQuYXBwX3Blcm1pc3Npb25zKSBpbnRlcmFjdGlvbi5hcHBQZXJtaXNzaW9ucyA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuYXBwX3Blcm1pc3Npb25zKVxuICBpZiAocHJvcHMubWVzc2FnZSAmJiBwYXlsb2FkLm1lc3NhZ2UpIGludGVyYWN0aW9uLm1lc3NhZ2UgPSBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2UoYm90LCBwYXlsb2FkLm1lc3NhZ2UpXG4gIGlmIChwcm9wcy5jaGFubmVsICYmIHBheWxvYWQuY2hhbm5lbCkgaW50ZXJhY3Rpb24uY2hhbm5lbCA9IGJvdC50cmFuc2Zvcm1lcnMuY2hhbm5lbChib3QsIHsgY2hhbm5lbDogcGF5bG9hZC5jaGFubmVsIGFzIERpc2NvcmRDaGFubmVsLCBndWlsZElkIH0pXG4gIGlmIChwcm9wcy5jaGFubmVsSWQgJiYgcGF5bG9hZC5jaGFubmVsX2lkKSBpbnRlcmFjdGlvbi5jaGFubmVsSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmNoYW5uZWxfaWQpXG4gIGlmIChwcm9wcy5tZW1iZXIgJiYgZ3VpbGRJZCAmJiBwYXlsb2FkLm1lbWJlcikgaW50ZXJhY3Rpb24ubWVtYmVyID0gYm90LnRyYW5zZm9ybWVycy5tZW1iZXIoYm90LCBwYXlsb2FkLm1lbWJlciwgZ3VpbGRJZCwgdXNlci5pZClcbiAgaWYgKHByb3BzLmF1dGhvcml6aW5nSW50ZWdyYXRpb25Pd25lcnMgJiYgcGF5bG9hZC5hdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnMpIHtcbiAgICBpbnRlcmFjdGlvbi5hdXRob3JpemluZ0ludGVncmF0aW9uT3duZXJzID0ge31cblxuICAgIGlmIChwYXlsb2FkLmF1dGhvcml6aW5nX2ludGVncmF0aW9uX293bmVyc1snMCddKVxuICAgICAgaW50ZXJhY3Rpb24uYXV0aG9yaXppbmdJbnRlZ3JhdGlvbk93bmVyc1tEaXNjb3JkQXBwbGljYXRpb25JbnRlZ3JhdGlvblR5cGUuR3VpbGRJbnN0YWxsXSA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKFxuICAgICAgICBwYXlsb2FkLmF1dGhvcml6aW5nX2ludGVncmF0aW9uX293bmVyc1snMCddLFxuICAgICAgKVxuICAgIGlmIChwYXlsb2FkLmF1dGhvcml6aW5nX2ludGVncmF0aW9uX293bmVyc1snMSddKVxuICAgICAgaW50ZXJhY3Rpb24uYXV0aG9yaXppbmdJbnRlZ3JhdGlvbk93bmVyc1tEaXNjb3JkQXBwbGljYXRpb25JbnRlZ3JhdGlvblR5cGUuVXNlckluc3RhbGxdID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoXG4gICAgICAgIHBheWxvYWQuYXV0aG9yaXppbmdfaW50ZWdyYXRpb25fb3duZXJzWycxJ10sXG4gICAgICApXG4gIH1cbiAgaWYgKHByb3BzLmNvbnRleHQgJiYgcGF5bG9hZC5jb250ZXh0KSBpbnRlcmFjdGlvbi5jb250ZXh0ID0gcGF5bG9hZC5jb250ZXh0XG4gIGlmIChwcm9wcy5kYXRhICYmIHBheWxvYWQuZGF0YSkge1xuICAgIGludGVyYWN0aW9uLmRhdGEgPSB7XG4gICAgICB0eXBlOiBwYXlsb2FkLmRhdGEudHlwZSxcbiAgICAgIGNvbXBvbmVudFR5cGU6IHBheWxvYWQuZGF0YS5jb21wb25lbnRfdHlwZSxcbiAgICAgIGN1c3RvbUlkOiBwYXlsb2FkLmRhdGEuY3VzdG9tX2lkLFxuICAgICAgY29tcG9uZW50czogcGF5bG9hZC5kYXRhLmNvbXBvbmVudHM/Lm1hcCgoY29tcG9uZW50KSA9PiBib3QudHJhbnNmb3JtZXJzLmNvbXBvbmVudChib3QsIGNvbXBvbmVudCkpLFxuICAgICAgdmFsdWVzOiBwYXlsb2FkLmRhdGEudmFsdWVzLFxuICAgICAgaWQ6IHBheWxvYWQuZGF0YS5pZCA/IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuZGF0YS5pZCkgOiB1bmRlZmluZWQsXG4gICAgICBuYW1lOiBwYXlsb2FkLmRhdGEubmFtZSxcbiAgICAgIHJlc29sdmVkOiBwYXlsb2FkLmRhdGEucmVzb2x2ZWQgPyB0cmFuc2Zvcm1JbnRlcmFjdGlvbkRhdGFSZXNvbHZlZChib3QsIHBheWxvYWQuZGF0YS5yZXNvbHZlZCwgZ3VpbGRJZCkgOiB1bmRlZmluZWQsXG4gICAgICBvcHRpb25zOiBwYXlsb2FkLmRhdGEub3B0aW9ucz8ubWFwKChvcHQpID0+IGJvdC50cmFuc2Zvcm1lcnMuaW50ZXJhY3Rpb25EYXRhT3B0aW9ucyhib3QsIG9wdCkpLFxuICAgICAgdGFyZ2V0SWQ6IHBheWxvYWQuZGF0YS50YXJnZXRfaWQgPyBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmRhdGEudGFyZ2V0X2lkKSA6IHVuZGVmaW5lZCxcbiAgICAgIC8vIGd1aWxkSWQ6IHBheWxvYWQuZGF0YS5ndWlsZF9pZCA/IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuZGF0YS5ndWlsZF9pZCkgOiB1bmRlZmluZWQsXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMuaW50ZXJhY3Rpb24oYm90LCBwYXlsb2FkLCBpbnRlcmFjdGlvbilcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybUludGVyYWN0aW9uRGF0YU9wdGlvbihib3Q6IEJvdCwgb3B0aW9uOiBEaXNjb3JkSW50ZXJhY3Rpb25EYXRhT3B0aW9uKTogSW50ZXJhY3Rpb25EYXRhT3B0aW9uIHtcbiAgY29uc3Qgb3B0ID0ge1xuICAgIG5hbWU6IG9wdGlvbi5uYW1lLFxuICAgIHR5cGU6IG9wdGlvbi50eXBlLFxuICAgIHZhbHVlOiBvcHRpb24udmFsdWUsXG4gICAgb3B0aW9uczogb3B0aW9uLm9wdGlvbnMsXG4gICAgZm9jdXNlZDogb3B0aW9uLmZvY3VzZWQsXG4gIH0gYXMgSW50ZXJhY3Rpb25EYXRhT3B0aW9uXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMuaW50ZXJhY3Rpb25EYXRhT3B0aW9ucyhib3QsIG9wdGlvbiwgb3B0KVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtSW50ZXJhY3Rpb25EYXRhUmVzb2x2ZWQoYm90OiBCb3QsIHJlc29sdmVkOiBEaXNjb3JkSW50ZXJhY3Rpb25EYXRhUmVzb2x2ZWQsIGd1aWxkSWQ/OiBiaWdpbnQpOiBJbnRlcmFjdGlvbkRhdGFSZXNvbHZlZCB7XG4gIGNvbnN0IHRyYW5zZm9ybWVkOiBJbnRlcmFjdGlvbkRhdGFSZXNvbHZlZCA9IHt9XG5cbiAgaWYgKHJlc29sdmVkLm1lc3NhZ2VzKSB7XG4gICAgdHJhbnNmb3JtZWQubWVzc2FnZXMgPSBuZXcgQ29sbGVjdGlvbihcbiAgICAgIE9iamVjdC5lbnRyaWVzKHJlc29sdmVkLm1lc3NhZ2VzKS5tYXAoKFtpZCwgdmFsdWVdKSA9PiB7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2U6IE1lc3NhZ2UgPSBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2UoYm90LCB2YWx1ZSlcbiAgICAgICAgcmV0dXJuIFttZXNzYWdlLmlkLCBtZXNzYWdlXVxuICAgICAgfSksXG4gICAgKVxuICB9XG5cbiAgaWYgKHJlc29sdmVkLnVzZXJzKSB7XG4gICAgdHJhbnNmb3JtZWQudXNlcnMgPSBuZXcgQ29sbGVjdGlvbihcbiAgICAgIE9iamVjdC5lbnRyaWVzKHJlc29sdmVkLnVzZXJzKS5tYXAoKFtpZCwgdmFsdWVdKSA9PiB7XG4gICAgICAgIGNvbnN0IHVzZXIgPSBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCB2YWx1ZSlcbiAgICAgICAgcmV0dXJuIFt1c2VyLmlkLCB1c2VyXVxuICAgICAgfSksXG4gICAgKVxuICB9XG5cbiAgaWYgKGd1aWxkSWQgJiYgcmVzb2x2ZWQubWVtYmVycykge1xuICAgIHRyYW5zZm9ybWVkLm1lbWJlcnMgPSBuZXcgQ29sbGVjdGlvbihcbiAgICAgIE9iamVjdC5lbnRyaWVzKHJlc29sdmVkLm1lbWJlcnMpLm1hcCgoW2lkLCB2YWx1ZV0pID0+IHtcbiAgICAgICAgY29uc3QgbWVtYmVyOiBNZW1iZXIgPSBib3QudHJhbnNmb3JtZXJzLm1lbWJlcihib3QsIHZhbHVlLCBndWlsZElkLCBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShpZCkpXG4gICAgICAgIHJldHVybiBbbWVtYmVyLmlkLCBtZW1iZXJdXG4gICAgICB9KSxcbiAgICApXG4gIH1cblxuICBpZiAoZ3VpbGRJZCAmJiByZXNvbHZlZC5yb2xlcykge1xuICAgIHRyYW5zZm9ybWVkLnJvbGVzID0gbmV3IENvbGxlY3Rpb24oXG4gICAgICBPYmplY3QuZW50cmllcyhyZXNvbHZlZC5yb2xlcykubWFwKChbaWQsIHZhbHVlXSkgPT4ge1xuICAgICAgICBjb25zdCByb2xlID0gYm90LnRyYW5zZm9ybWVycy5yb2xlKGJvdCwgeyByb2xlOiB2YWx1ZSwgZ3VpbGRJZCB9KVxuICAgICAgICByZXR1cm4gW3JvbGUuaWQsIHJvbGVdXG4gICAgICB9KSxcbiAgICApXG4gIH1cblxuICBpZiAocmVzb2x2ZWQuY2hhbm5lbHMpIHtcbiAgICB0cmFuc2Zvcm1lZC5jaGFubmVscyA9IG5ldyBDb2xsZWN0aW9uKFxuICAgICAgT2JqZWN0LmVudHJpZXMocmVzb2x2ZWQuY2hhbm5lbHMpLm1hcCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICAgIGNvbnN0IGlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2Uoa2V5KVxuICAgICAgICBjb25zdCBjaGFubmVsID0gdmFsdWUgYXMge1xuICAgICAgICAgIGlkOiBzdHJpbmdcbiAgICAgICAgICBuYW1lOiBzdHJpbmdcbiAgICAgICAgICB0eXBlOiBDaGFubmVsVHlwZXNcbiAgICAgICAgICBwZXJtaXNzaW9uczogc3RyaW5nXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICBpZCxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZCxcbiAgICAgICAgICAgIG5hbWU6IGNoYW5uZWwubmFtZSxcbiAgICAgICAgICAgIHR5cGU6IGNoYW5uZWwudHlwZSxcbiAgICAgICAgICAgIHBlcm1pc3Npb25zOiBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShjaGFubmVsLnBlcm1pc3Npb25zKSxcbiAgICAgICAgICB9LFxuICAgICAgICBdXG4gICAgICB9KSxcbiAgICApXG4gIH1cblxuICBpZiAocmVzb2x2ZWQuYXR0YWNobWVudHMpIHtcbiAgICB0cmFuc2Zvcm1lZC5hdHRhY2htZW50cyA9IG5ldyBDb2xsZWN0aW9uKFxuICAgICAgT2JqZWN0LmVudHJpZXMocmVzb2x2ZWQuYXR0YWNobWVudHMpLm1hcCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICAgIGNvbnN0IGlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2Uoa2V5KVxuICAgICAgICByZXR1cm4gW2lkLCBib3QudHJhbnNmb3JtZXJzLmF0dGFjaG1lbnQoYm90LCB2YWx1ZSldXG4gICAgICB9KSxcbiAgICApXG4gIH1cblxuICByZXR1cm4gdHJhbnNmb3JtZWRcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJbnRlcmFjdGlvbkRhdGFSZXNvbHZlZCB7XG4gIG1lc3NhZ2VzPzogQ29sbGVjdGlvbjxiaWdpbnQsIE1lc3NhZ2U+XG4gIHVzZXJzPzogQ29sbGVjdGlvbjxiaWdpbnQsIFVzZXI+XG4gIG1lbWJlcnM/OiBDb2xsZWN0aW9uPGJpZ2ludCwgTWVtYmVyPlxuICByb2xlcz86IENvbGxlY3Rpb248YmlnaW50LCBSb2xlPlxuICBjaGFubmVscz86IENvbGxlY3Rpb248YmlnaW50LCB7IGlkOiBiaWdpbnQ7IG5hbWU6IHN0cmluZzsgdHlwZTogQ2hhbm5lbFR5cGVzOyBwZXJtaXNzaW9uczogYmlnaW50IH0+XG4gIGF0dGFjaG1lbnRzPzogQ29sbGVjdGlvbjxiaWdpbnQsIEF0dGFjaG1lbnQ+XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW50ZXJhY3Rpb25EYXRhT3B0aW9uIHtcbiAgbmFtZTogc3RyaW5nXG4gIHR5cGU6IEFwcGxpY2F0aW9uQ29tbWFuZE9wdGlvblR5cGVzXG4gIHZhbHVlPzogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhblxuICBvcHRpb25zPzogSW50ZXJhY3Rpb25EYXRhT3B0aW9uW11cbiAgZm9jdXNlZD86IGJvb2xlYW5cbn1cbiJdLCJuYW1lcyI6WyJJbnRlcmFjdGlvblJlc3BvbnNlVHlwZXMiLCJJbnRlcmFjdGlvblR5cGVzIiwiQ29sbGVjdGlvbiIsIkRpc2NvcmRBcHBsaWNhdGlvbkludGVncmF0aW9uVHlwZSIsIk1lc3NhZ2VGbGFncyIsImJhc2VJbnRlcmFjdGlvbiIsInJlc3BvbmQiLCJyZXNwb25zZSIsIm9wdGlvbnMiLCJ0eXBlIiwiQ2hhbm5lbE1lc3NhZ2VXaXRoU291cmNlIiwiY29udGVudCIsInRpdGxlIiwiTW9kYWwiLCJBcHBsaWNhdGlvbkNvbW1hbmRBdXRvY29tcGxldGUiLCJBcHBsaWNhdGlvbkNvbW1hbmRBdXRvY29tcGxldGVSZXN1bHQiLCJpc1ByaXZhdGUiLCJmbGFncyIsIkVwaGVtZXJhbCIsImFja25vd2xlZGdlZCIsImJvdCIsImhlbHBlcnMiLCJzZW5kRm9sbG93dXBNZXNzYWdlIiwidG9rZW4iLCJNb2RhbFN1Ym1pdCIsIkVycm9yIiwic2VuZEludGVyYWN0aW9uUmVzcG9uc2UiLCJpZCIsImRhdGEiLCJlZGl0IiwibWVzc2FnZUlkIiwiZWRpdEZvbGxvd3VwTWVzc2FnZSIsIk1lc3NhZ2VDb21wb25lbnQiLCJVcGRhdGVNZXNzYWdlIiwiZWRpdE9yaWdpbmFsSW50ZXJhY3Rpb25SZXNwb25zZSIsImRlZmVyRWRpdCIsIkRlZmVycmVkVXBkYXRlTWVzc2FnZSIsImRlZmVyIiwiRGVmZXJyZWRDaGFubmVsTWVzc2FnZVdpdGhTb3VyY2UiLCJ1bmRlZmluZWQiLCJwcmVtaXVtUmVxdWlyZWQiLCJQcmVtaXVtUmVxdWlyZWQiLCJkZWxldGUiLCJkZWxldGVGb2xsb3d1cE1lc3NhZ2UiLCJkZWxldGVPcmlnaW5hbEludGVyYWN0aW9uUmVzcG9uc2UiLCJ0cmFuc2Zvcm1JbnRlcmFjdGlvbiIsInBheWxvYWQiLCJndWlsZElkIiwiZ3VpbGRfaWQiLCJ0cmFuc2Zvcm1lcnMiLCJzbm93Zmxha2UiLCJ1c2VyIiwibWVtYmVyIiwiaW50ZXJhY3Rpb24iLCJPYmplY3QiLCJjcmVhdGUiLCJwcm9wcyIsImRlc2lyZWRQcm9wZXJ0aWVzIiwiYXBwbGljYXRpb25JZCIsImFwcGxpY2F0aW9uX2lkIiwidmVyc2lvbiIsImxvY2FsZSIsImd1aWxkTG9jYWxlIiwiZ3VpbGRfbG9jYWxlIiwiYXBwUGVybWlzc2lvbnMiLCJhcHBfcGVybWlzc2lvbnMiLCJtZXNzYWdlIiwiY2hhbm5lbCIsImNoYW5uZWxJZCIsImNoYW5uZWxfaWQiLCJhdXRob3JpemluZ0ludGVncmF0aW9uT3duZXJzIiwiYXV0aG9yaXppbmdfaW50ZWdyYXRpb25fb3duZXJzIiwiR3VpbGRJbnN0YWxsIiwiVXNlckluc3RhbGwiLCJjb250ZXh0IiwiY29tcG9uZW50VHlwZSIsImNvbXBvbmVudF90eXBlIiwiY3VzdG9tSWQiLCJjdXN0b21faWQiLCJjb21wb25lbnRzIiwibWFwIiwiY29tcG9uZW50IiwidmFsdWVzIiwibmFtZSIsInJlc29sdmVkIiwidHJhbnNmb3JtSW50ZXJhY3Rpb25EYXRhUmVzb2x2ZWQiLCJvcHQiLCJpbnRlcmFjdGlvbkRhdGFPcHRpb25zIiwidGFyZ2V0SWQiLCJ0YXJnZXRfaWQiLCJjdXN0b21pemVycyIsInRyYW5zZm9ybUludGVyYWN0aW9uRGF0YU9wdGlvbiIsIm9wdGlvbiIsInZhbHVlIiwiZm9jdXNlZCIsInRyYW5zZm9ybWVkIiwibWVzc2FnZXMiLCJlbnRyaWVzIiwidXNlcnMiLCJtZW1iZXJzIiwicm9sZXMiLCJyb2xlIiwiY2hhbm5lbHMiLCJrZXkiLCJwZXJtaXNzaW9ucyIsImF0dGFjaG1lbnRzIiwiYXR0YWNobWVudCJdLCJtYXBwaW5ncyI6IkFBQUEsU0FDRUEsd0JBQXdCLEVBQ3hCQyxnQkFBZ0IsUUFTWCxvQkFBbUI7QUFDMUIsU0FBU0MsVUFBVSxRQUFRLG9CQUFtQjtBQUM5QyxTQUlFQyxpQ0FBaUMsUUFHNUIsY0FBYTtBQUNwQixTQUFTQyxZQUFZLFFBQTZDLGdCQUFlO0FBNEhqRixNQUFNQyxrQkFBMEQ7SUFDOUQsTUFBTUMsU0FBUUMsUUFBUSxFQUFFQyxPQUFPO1FBQzdCLElBQUlDLE9BQU9ULHlCQUF5QlUsd0JBQXdCO1FBRTVELDREQUE0RDtRQUM1RCxJQUFJLE9BQU9ILGFBQWEsVUFBVUEsV0FBVztZQUFFSSxTQUFTSjtRQUFTO1FBRWpFLDRGQUE0RjtRQUM1RixJQUFJQSxTQUFTSyxLQUFLLEVBQUVILE9BQU9ULHlCQUF5QmEsS0FBSztRQUN6RCxJQUFJLElBQUksQ0FBQ0osSUFBSSxLQUFLUixpQkFBaUJhLDhCQUE4QixFQUFFTCxPQUFPVCx5QkFBeUJlLG9DQUFvQztRQUN2SSxJQUFJTixTQUFTVCx5QkFBeUJVLHdCQUF3QixJQUFJRixTQUFTUSxXQUFXVCxTQUFTVSxLQUFLLEdBQUdiLGFBQWFjLFNBQVM7UUFFN0gseUZBQXlGO1FBQ3pGLElBQUksSUFBSSxDQUFDQyxZQUFZLEVBQUUsT0FBTyxNQUFNLElBQUksQ0FBQ0MsR0FBRyxDQUFFQyxPQUFPLENBQUNDLG1CQUFtQixDQUFDLElBQUksQ0FBQ0MsS0FBSyxFQUFHaEI7UUFFdkYsMkJBQTJCO1FBQzNCLElBQUksSUFBSSxDQUFDRSxJQUFJLEtBQUtSLGlCQUFpQnVCLFdBQVcsSUFBSWYsU0FBU1QseUJBQXlCYSxLQUFLLEVBQ3ZGLE1BQU0sSUFBSVksTUFBTTtRQUVsQixJQUFJLENBQUNOLFlBQVksR0FBRztRQUNwQixPQUFPLE1BQU0sSUFBSSxDQUFDQyxHQUFHLENBQUVDLE9BQU8sQ0FBQ0ssdUJBQXVCLENBQUMsSUFBSSxDQUFDQyxFQUFFLEVBQUcsSUFBSSxDQUFDSixLQUFLLEVBQUc7WUFBRWQ7WUFBTW1CLE1BQU1yQjtRQUFTO0lBQ3ZHO0lBQ0EsTUFBTXNCLE1BQUt0QixRQUFRLEVBQUV1QixTQUFTO1FBQzVCLElBQUksSUFBSSxDQUFDckIsSUFBSSxLQUFLUixpQkFBaUJhLDhCQUE4QixFQUFFLE1BQU0sSUFBSVcsTUFBTTtRQUVuRiw0REFBNEQ7UUFDNUQsSUFBSSxPQUFPbEIsYUFBYSxVQUFVQSxXQUFXO1lBQUVJLFNBQVNKO1FBQVM7UUFFakUsSUFBSXVCLFdBQVc7WUFDYixPQUFPLE1BQU0sSUFBSSxDQUFDVixHQUFHLEVBQUVDLFFBQVFVLG9CQUFvQixJQUFJLENBQUNSLEtBQUssRUFBR08sV0FBV3ZCO1FBQzdFO1FBRUEsSUFBSSxDQUFDLElBQUksQ0FBQ1ksWUFBWSxFQUFFO1lBQ3RCLElBQUksSUFBSSxDQUFDVixJQUFJLEtBQUtSLGlCQUFpQitCLGdCQUFnQixFQUNqRCxNQUFNLElBQUlQLE1BQU07WUFFbEIsSUFBSSxDQUFDTixZQUFZLEdBQUc7WUFDcEIsT0FBTyxNQUFNLElBQUksQ0FBQ0MsR0FBRyxDQUFFQyxPQUFPLENBQUNLLHVCQUF1QixDQUFDLElBQUksQ0FBQ0MsRUFBRSxFQUFHLElBQUksQ0FBQ0osS0FBSyxFQUFHO2dCQUFFZCxNQUFNVCx5QkFBeUJpQyxhQUFhO2dCQUFFTCxNQUFNckI7WUFBUztRQUMvSTtRQUVBLE9BQU8sTUFBTSxJQUFJLENBQUNhLEdBQUcsQ0FBRUMsT0FBTyxDQUFDYSwrQkFBK0IsQ0FBQyxJQUFJLENBQUNYLEtBQUssRUFBR2hCO0lBQzlFO0lBQ0EsTUFBTTRCO1FBQ0osSUFBSSxJQUFJLENBQUMxQixJQUFJLEtBQUtSLGlCQUFpQmEsOEJBQThCLEVBQUUsTUFBTSxJQUFJVyxNQUFNO1FBQ25GLElBQUksSUFBSSxDQUFDTixZQUFZLEVBQUUsTUFBTSxJQUFJTSxNQUFNO1FBRXZDLElBQUksSUFBSSxDQUFDaEIsSUFBSSxLQUFLUixpQkFBaUIrQixnQkFBZ0IsRUFDakQsTUFBTSxJQUFJUCxNQUFNO1FBRWxCLElBQUksQ0FBQ04sWUFBWSxHQUFHO1FBQ3BCLE9BQU8sTUFBTSxJQUFJLENBQUNDLEdBQUcsQ0FBRUMsT0FBTyxDQUFDSyx1QkFBdUIsQ0FBQyxJQUFJLENBQUNDLEVBQUUsRUFBRyxJQUFJLENBQUNKLEtBQUssRUFBRztZQUFFZCxNQUFNVCx5QkFBeUJvQyxxQkFBcUI7UUFBQztJQUN2STtJQUNBLE1BQU1DLE9BQU1yQixTQUFTO1FBQ25CLElBQUksSUFBSSxDQUFDRyxZQUFZLEVBQUUsTUFBTSxJQUFJTSxNQUFNO1FBRXZDLElBQUksQ0FBQ04sWUFBWSxHQUFHO1FBQ3BCLE9BQU8sTUFBTSxJQUFJLENBQUNDLEdBQUcsQ0FBRUMsT0FBTyxDQUFDSyx1QkFBdUIsQ0FBQyxJQUFJLENBQUNDLEVBQUUsRUFBRyxJQUFJLENBQUNKLEtBQUssRUFBRztZQUM1RWQsTUFBTVQseUJBQXlCc0MsZ0NBQWdDO1lBQy9EVixNQUFNO2dCQUNKWCxPQUFPRCxZQUFZWixhQUFhYyxTQUFTLEdBQUdxQjtZQUM5QztRQUNGO0lBQ0Y7SUFDQSxNQUFNQztRQUNKLElBQUksSUFBSSxDQUFDckIsWUFBWSxFQUFFLE1BQU0sSUFBSU0sTUFBTTtRQUV2QyxJQUFJLENBQUNOLFlBQVksR0FBRztRQUNwQixPQUFPLE1BQU0sSUFBSSxDQUFDQyxHQUFHLENBQUVDLE9BQU8sQ0FBQ0ssdUJBQXVCLENBQUMsSUFBSSxDQUFDQyxFQUFFLEVBQUcsSUFBSSxDQUFDSixLQUFLLEVBQUc7WUFBRWQsTUFBTVQseUJBQXlCeUMsZUFBZTtRQUFDO0lBQ2pJO0lBQ0EsTUFBTUMsUUFBT1osU0FBUztRQUNwQixJQUFJLElBQUksQ0FBQ3JCLElBQUksS0FBS1IsaUJBQWlCYSw4QkFBOEIsRUFBRSxNQUFNLElBQUlXLE1BQU07UUFFbkYsSUFBSUssV0FBVyxPQUFPLE1BQU0sSUFBSSxDQUFDVixHQUFHLEVBQUVDLFFBQVFzQixzQkFBc0IsSUFBSSxDQUFDcEIsS0FBSyxFQUFHTzthQUM1RSxPQUFPLE1BQU0sSUFBSSxDQUFDVixHQUFHLEVBQUVDLFFBQVF1QixrQ0FBa0MsSUFBSSxDQUFDckIsS0FBSztJQUNsRjtBQUNGO0FBRUEsT0FBTyxTQUFTc0IscUJBQXFCekIsR0FBUSxFQUFFMEIsT0FBMkI7SUFDeEUsTUFBTUMsVUFBVUQsUUFBUUUsUUFBUSxHQUFHNUIsSUFBSTZCLFlBQVksQ0FBQ0MsU0FBUyxDQUFDSixRQUFRRSxRQUFRLElBQUlUO0lBQ2xGLE1BQU1ZLE9BQU8vQixJQUFJNkIsWUFBWSxDQUFDRSxJQUFJLENBQUMvQixLQUFLMEIsUUFBUU0sTUFBTSxFQUFFRCxRQUFRTCxRQUFRSyxJQUFJO0lBRTVFLE1BQU1FLGNBQTJCQyxPQUFPQyxNQUFNLENBQUNsRDtJQUMvQyxNQUFNbUQsUUFBUXBDLElBQUk2QixZQUFZLENBQUNRLGlCQUFpQixDQUFDSixXQUFXO0lBQzVEQSxZQUFZakMsR0FBRyxHQUFHQTtJQUNsQmlDLFlBQVlsQyxZQUFZLEdBQUc7SUFFM0IsSUFBSXFDLE1BQU03QixFQUFFLElBQUltQixRQUFRbkIsRUFBRSxFQUFFMEIsWUFBWTFCLEVBQUUsR0FBR1AsSUFBSTZCLFlBQVksQ0FBQ0MsU0FBUyxDQUFDSixRQUFRbkIsRUFBRTtJQUNsRixJQUFJNkIsTUFBTUUsYUFBYSxJQUFJWixRQUFRYSxjQUFjLEVBQUVOLFlBQVlLLGFBQWEsR0FBR3RDLElBQUk2QixZQUFZLENBQUNDLFNBQVMsQ0FBQ0osUUFBUWEsY0FBYztJQUNoSSxJQUFJSCxNQUFNL0MsSUFBSSxJQUFJcUMsUUFBUXJDLElBQUksRUFBRTRDLFlBQVk1QyxJQUFJLEdBQUdxQyxRQUFRckMsSUFBSTtJQUMvRCxJQUFJK0MsTUFBTWpDLEtBQUssSUFBSXVCLFFBQVF2QixLQUFLLEVBQUU4QixZQUFZOUIsS0FBSyxHQUFHdUIsUUFBUXZCLEtBQUs7SUFDbkUsSUFBSWlDLE1BQU1JLE9BQU8sSUFBSWQsUUFBUWMsT0FBTyxFQUFFUCxZQUFZTyxPQUFPLEdBQUdkLFFBQVFjLE9BQU87SUFDM0UsSUFBSUosTUFBTUssTUFBTSxJQUFJZixRQUFRZSxNQUFNLEVBQUVSLFlBQVlRLE1BQU0sR0FBR2YsUUFBUWUsTUFBTTtJQUN2RSxJQUFJTCxNQUFNTSxXQUFXLElBQUloQixRQUFRaUIsWUFBWSxFQUFFVixZQUFZUyxXQUFXLEdBQUdoQixRQUFRaUIsWUFBWTtJQUM3RixJQUFJUCxNQUFNVCxPQUFPLElBQUlBLFNBQVNNLFlBQVlOLE9BQU8sR0FBR0E7SUFDcEQsSUFBSVMsTUFBTUwsSUFBSSxJQUFJQSxNQUFNRSxZQUFZRixJQUFJLEdBQUdBO0lBQzNDLElBQUlLLE1BQU1RLGNBQWMsSUFBSWxCLFFBQVFtQixlQUFlLEVBQUVaLFlBQVlXLGNBQWMsR0FBRzVDLElBQUk2QixZQUFZLENBQUNDLFNBQVMsQ0FBQ0osUUFBUW1CLGVBQWU7SUFDcEksSUFBSVQsTUFBTVUsT0FBTyxJQUFJcEIsUUFBUW9CLE9BQU8sRUFBRWIsWUFBWWEsT0FBTyxHQUFHOUMsSUFBSTZCLFlBQVksQ0FBQ2lCLE9BQU8sQ0FBQzlDLEtBQUswQixRQUFRb0IsT0FBTztJQUN6RyxJQUFJVixNQUFNVyxPQUFPLElBQUlyQixRQUFRcUIsT0FBTyxFQUFFZCxZQUFZYyxPQUFPLEdBQUcvQyxJQUFJNkIsWUFBWSxDQUFDa0IsT0FBTyxDQUFDL0MsS0FBSztRQUFFK0MsU0FBU3JCLFFBQVFxQixPQUFPO1FBQW9CcEI7SUFBUTtJQUNoSixJQUFJUyxNQUFNWSxTQUFTLElBQUl0QixRQUFRdUIsVUFBVSxFQUFFaEIsWUFBWWUsU0FBUyxHQUFHaEQsSUFBSTZCLFlBQVksQ0FBQ0MsU0FBUyxDQUFDSixRQUFRdUIsVUFBVTtJQUNoSCxJQUFJYixNQUFNSixNQUFNLElBQUlMLFdBQVdELFFBQVFNLE1BQU0sRUFBRUMsWUFBWUQsTUFBTSxHQUFHaEMsSUFBSTZCLFlBQVksQ0FBQ0csTUFBTSxDQUFDaEMsS0FBSzBCLFFBQVFNLE1BQU0sRUFBRUwsU0FBU0ksS0FBS3hCLEVBQUU7SUFDakksSUFBSTZCLE1BQU1jLDRCQUE0QixJQUFJeEIsUUFBUXlCLDhCQUE4QixFQUFFO1FBQ2hGbEIsWUFBWWlCLDRCQUE0QixHQUFHLENBQUM7UUFFNUMsSUFBSXhCLFFBQVF5Qiw4QkFBOEIsQ0FBQyxJQUFJLEVBQzdDbEIsWUFBWWlCLDRCQUE0QixDQUFDbkUsa0NBQWtDcUUsWUFBWSxDQUFDLEdBQUdwRCxJQUFJNkIsWUFBWSxDQUFDQyxTQUFTLENBQ25ISixRQUFReUIsOEJBQThCLENBQUMsSUFBSTtRQUUvQyxJQUFJekIsUUFBUXlCLDhCQUE4QixDQUFDLElBQUksRUFDN0NsQixZQUFZaUIsNEJBQTRCLENBQUNuRSxrQ0FBa0NzRSxXQUFXLENBQUMsR0FBR3JELElBQUk2QixZQUFZLENBQUNDLFNBQVMsQ0FDbEhKLFFBQVF5Qiw4QkFBOEIsQ0FBQyxJQUFJO0lBRWpEO0lBQ0EsSUFBSWYsTUFBTWtCLE9BQU8sSUFBSTVCLFFBQVE0QixPQUFPLEVBQUVyQixZQUFZcUIsT0FBTyxHQUFHNUIsUUFBUTRCLE9BQU87SUFDM0UsSUFBSWxCLE1BQU01QixJQUFJLElBQUlrQixRQUFRbEIsSUFBSSxFQUFFO1FBQzlCeUIsWUFBWXpCLElBQUksR0FBRztZQUNqQm5CLE1BQU1xQyxRQUFRbEIsSUFBSSxDQUFDbkIsSUFBSTtZQUN2QmtFLGVBQWU3QixRQUFRbEIsSUFBSSxDQUFDZ0QsY0FBYztZQUMxQ0MsVUFBVS9CLFFBQVFsQixJQUFJLENBQUNrRCxTQUFTO1lBQ2hDQyxZQUFZakMsUUFBUWxCLElBQUksQ0FBQ21ELFVBQVUsRUFBRUMsSUFBSSxDQUFDQyxZQUFjN0QsSUFBSTZCLFlBQVksQ0FBQ2dDLFNBQVMsQ0FBQzdELEtBQUs2RDtZQUN4RkMsUUFBUXBDLFFBQVFsQixJQUFJLENBQUNzRCxNQUFNO1lBQzNCdkQsSUFBSW1CLFFBQVFsQixJQUFJLENBQUNELEVBQUUsR0FBR1AsSUFBSTZCLFlBQVksQ0FBQ0MsU0FBUyxDQUFDSixRQUFRbEIsSUFBSSxDQUFDRCxFQUFFLElBQUlZO1lBQ3BFNEMsTUFBTXJDLFFBQVFsQixJQUFJLENBQUN1RCxJQUFJO1lBQ3ZCQyxVQUFVdEMsUUFBUWxCLElBQUksQ0FBQ3dELFFBQVEsR0FBR0MsaUNBQWlDakUsS0FBSzBCLFFBQVFsQixJQUFJLENBQUN3RCxRQUFRLEVBQUVyQyxXQUFXUjtZQUMxRy9CLFNBQVNzQyxRQUFRbEIsSUFBSSxDQUFDcEIsT0FBTyxFQUFFd0UsSUFBSSxDQUFDTSxNQUFRbEUsSUFBSTZCLFlBQVksQ0FBQ3NDLHNCQUFzQixDQUFDbkUsS0FBS2tFO1lBQ3pGRSxVQUFVMUMsUUFBUWxCLElBQUksQ0FBQzZELFNBQVMsR0FBR3JFLElBQUk2QixZQUFZLENBQUNDLFNBQVMsQ0FBQ0osUUFBUWxCLElBQUksQ0FBQzZELFNBQVMsSUFBSWxEO1FBRTFGO0lBQ0Y7SUFFQSxPQUFPbkIsSUFBSTZCLFlBQVksQ0FBQ3lDLFdBQVcsQ0FBQ3JDLFdBQVcsQ0FBQ2pDLEtBQUswQixTQUFTTztBQUNoRTtBQUVBLE9BQU8sU0FBU3NDLCtCQUErQnZFLEdBQVEsRUFBRXdFLE1BQW9DO0lBQzNGLE1BQU1OLE1BQU07UUFDVkgsTUFBTVMsT0FBT1QsSUFBSTtRQUNqQjFFLE1BQU1tRixPQUFPbkYsSUFBSTtRQUNqQm9GLE9BQU9ELE9BQU9DLEtBQUs7UUFDbkJyRixTQUFTb0YsT0FBT3BGLE9BQU87UUFDdkJzRixTQUFTRixPQUFPRSxPQUFPO0lBQ3pCO0lBRUEsT0FBTzFFLElBQUk2QixZQUFZLENBQUN5QyxXQUFXLENBQUNILHNCQUFzQixDQUFDbkUsS0FBS3dFLFFBQVFOO0FBQzFFO0FBRUEsT0FBTyxTQUFTRCxpQ0FBaUNqRSxHQUFRLEVBQUVnRSxRQUF3QyxFQUFFckMsT0FBZ0I7SUFDbkgsTUFBTWdELGNBQXVDLENBQUM7SUFFOUMsSUFBSVgsU0FBU1ksUUFBUSxFQUFFO1FBQ3JCRCxZQUFZQyxRQUFRLEdBQUcsSUFBSTlGLFdBQ3pCb0QsT0FBTzJDLE9BQU8sQ0FBQ2IsU0FBU1ksUUFBUSxFQUFFaEIsR0FBRyxDQUFDLENBQUMsQ0FBQ3JELElBQUlrRSxNQUFNO1lBQ2hELE1BQU0zQixVQUFtQjlDLElBQUk2QixZQUFZLENBQUNpQixPQUFPLENBQUM5QyxLQUFLeUU7WUFDdkQsT0FBTztnQkFBQzNCLFFBQVF2QyxFQUFFO2dCQUFFdUM7YUFBUTtRQUM5QjtJQUVKO0lBRUEsSUFBSWtCLFNBQVNjLEtBQUssRUFBRTtRQUNsQkgsWUFBWUcsS0FBSyxHQUFHLElBQUloRyxXQUN0Qm9ELE9BQU8yQyxPQUFPLENBQUNiLFNBQVNjLEtBQUssRUFBRWxCLEdBQUcsQ0FBQyxDQUFDLENBQUNyRCxJQUFJa0UsTUFBTTtZQUM3QyxNQUFNMUMsT0FBTy9CLElBQUk2QixZQUFZLENBQUNFLElBQUksQ0FBQy9CLEtBQUt5RTtZQUN4QyxPQUFPO2dCQUFDMUMsS0FBS3hCLEVBQUU7Z0JBQUV3QjthQUFLO1FBQ3hCO0lBRUo7SUFFQSxJQUFJSixXQUFXcUMsU0FBU2UsT0FBTyxFQUFFO1FBQy9CSixZQUFZSSxPQUFPLEdBQUcsSUFBSWpHLFdBQ3hCb0QsT0FBTzJDLE9BQU8sQ0FBQ2IsU0FBU2UsT0FBTyxFQUFFbkIsR0FBRyxDQUFDLENBQUMsQ0FBQ3JELElBQUlrRSxNQUFNO1lBQy9DLE1BQU16QyxTQUFpQmhDLElBQUk2QixZQUFZLENBQUNHLE1BQU0sQ0FBQ2hDLEtBQUt5RSxPQUFPOUMsU0FBUzNCLElBQUk2QixZQUFZLENBQUNDLFNBQVMsQ0FBQ3ZCO1lBQy9GLE9BQU87Z0JBQUN5QixPQUFPekIsRUFBRTtnQkFBRXlCO2FBQU87UUFDNUI7SUFFSjtJQUVBLElBQUlMLFdBQVdxQyxTQUFTZ0IsS0FBSyxFQUFFO1FBQzdCTCxZQUFZSyxLQUFLLEdBQUcsSUFBSWxHLFdBQ3RCb0QsT0FBTzJDLE9BQU8sQ0FBQ2IsU0FBU2dCLEtBQUssRUFBRXBCLEdBQUcsQ0FBQyxDQUFDLENBQUNyRCxJQUFJa0UsTUFBTTtZQUM3QyxNQUFNUSxPQUFPakYsSUFBSTZCLFlBQVksQ0FBQ29ELElBQUksQ0FBQ2pGLEtBQUs7Z0JBQUVpRixNQUFNUjtnQkFBTzlDO1lBQVE7WUFDL0QsT0FBTztnQkFBQ3NELEtBQUsxRSxFQUFFO2dCQUFFMEU7YUFBSztRQUN4QjtJQUVKO0lBRUEsSUFBSWpCLFNBQVNrQixRQUFRLEVBQUU7UUFDckJQLFlBQVlPLFFBQVEsR0FBRyxJQUFJcEcsV0FDekJvRCxPQUFPMkMsT0FBTyxDQUFDYixTQUFTa0IsUUFBUSxFQUFFdEIsR0FBRyxDQUFDLENBQUMsQ0FBQ3VCLEtBQUtWLE1BQU07WUFDakQsTUFBTWxFLEtBQUtQLElBQUk2QixZQUFZLENBQUNDLFNBQVMsQ0FBQ3FEO1lBQ3RDLE1BQU1wQyxVQUFVMEI7WUFNaEIsT0FBTztnQkFDTGxFO2dCQUNBO29CQUNFQTtvQkFDQXdELE1BQU1oQixRQUFRZ0IsSUFBSTtvQkFDbEIxRSxNQUFNMEQsUUFBUTFELElBQUk7b0JBQ2xCK0YsYUFBYXBGLElBQUk2QixZQUFZLENBQUNDLFNBQVMsQ0FBQ2lCLFFBQVFxQyxXQUFXO2dCQUM3RDthQUNEO1FBQ0g7SUFFSjtJQUVBLElBQUlwQixTQUFTcUIsV0FBVyxFQUFFO1FBQ3hCVixZQUFZVSxXQUFXLEdBQUcsSUFBSXZHLFdBQzVCb0QsT0FBTzJDLE9BQU8sQ0FBQ2IsU0FBU3FCLFdBQVcsRUFBRXpCLEdBQUcsQ0FBQyxDQUFDLENBQUN1QixLQUFLVixNQUFNO1lBQ3BELE1BQU1sRSxLQUFLUCxJQUFJNkIsWUFBWSxDQUFDQyxTQUFTLENBQUNxRDtZQUN0QyxPQUFPO2dCQUFDNUU7Z0JBQUlQLElBQUk2QixZQUFZLENBQUN5RCxVQUFVLENBQUN0RixLQUFLeUU7YUFBTztRQUN0RDtJQUVKO0lBRUEsT0FBT0U7QUFDVCJ9
198
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvaW50ZXJhY3Rpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLFxuICBJbnRlcmFjdGlvblR5cGVzLFxuICBNZXNzYWdlRmxhZ3MsXG4gIHR5cGUgQXBwbGljYXRpb25Db21tYW5kT3B0aW9uVHlwZXMsXG4gIHR5cGUgQXBwbGljYXRpb25Db21tYW5kVHlwZXMsXG4gIHR5cGUgQmlnU3RyaW5nLFxuICB0eXBlIENoYW5uZWxUeXBlcyxcbiAgdHlwZSBEaXNjb3JkSW50ZXJhY3Rpb24sXG4gIHR5cGUgRGlzY29yZEludGVyYWN0aW9uRGF0YU9wdGlvbixcbiAgdHlwZSBJbnRlcmFjdGlvbkNhbGxiYWNrRGF0YSxcbiAgdHlwZSBNZXNzYWdlQ29tcG9uZW50VHlwZXMsXG59IGZyb20gJ0BkaXNjb3JkZW5vL3R5cGVzJ1xuaW1wb3J0IHsgQ29sbGVjdGlvbiB9IGZyb20gJ0BkaXNjb3JkZW5vL3V0aWxzJ1xuaW1wb3J0IHtcbiAgRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlLFxuICB0eXBlIEJvdCxcbiAgdHlwZSBDaGFubmVsLFxuICB0eXBlIENvbXBvbmVudCxcbiAgdHlwZSBEaXNjb3JkQ2hhbm5lbCxcbiAgdHlwZSBEaXNjb3JkSW50ZXJhY3Rpb25Db250ZXh0VHlwZSxcbiAgdHlwZSBHdWlsZCxcbn0gZnJvbSAnLi4vaW5kZXguanMnXG5pbXBvcnQgdHlwZSB7IERpc2NvcmRJbnRlcmFjdGlvbkRhdGFSZXNvbHZlZCB9IGZyb20gJy4uL3R5cGluZ3MuanMnXG5pbXBvcnQgdHlwZSB7IEF0dGFjaG1lbnQgfSBmcm9tICcuL2F0dGFjaG1lbnQuanMnXG5pbXBvcnQgdHlwZSB7IE1lbWJlciB9IGZyb20gJy4vbWVtYmVyLmpzJ1xuaW1wb3J0IHR5cGUgeyBNZXNzYWdlIH0gZnJvbSAnLi9tZXNzYWdlLmpzJ1xuaW1wb3J0IHR5cGUgeyBSb2xlIH0gZnJvbSAnLi9yb2xlLmpzJ1xuaW1wb3J0IHR5cGUgeyBVc2VyIH0gZnJvbSAnLi91c2VyLmpzJ1xuXG5leHBvcnQgaW50ZXJmYWNlIEludGVyYWN0aW9uIGV4dGVuZHMgQmFzZUludGVyYWN0aW9uIHtcbiAgLyoqIFRoZSBib3Qgb2JqZWN0ICovXG4gIGJvdDogQm90XG4gIC8qKiBXaGV0aGVyIG9yIG5vdCB0aGlzIGludGVyYWN0aW9uIGhhcyBiZWVuIHJlc3BvbmRlZCB0by4gKi9cbiAgYWNrbm93bGVkZ2VkOiBib29sZWFuXG4gIC8qKiBJZCBvZiB0aGUgaW50ZXJhY3Rpb24gKi9cbiAgaWQ6IGJpZ2ludFxuICAvKiogSWQgb2YgdGhlIGFwcGxpY2F0aW9uIHRoaXMgaW50ZXJhY3Rpb24gaXMgZm9yICovXG4gIGFwcGxpY2F0aW9uSWQ6IGJpZ2ludFxuICAvKiogVGhlIHR5cGUgb2YgaW50ZXJhY3Rpb24gKi9cbiAgdHlwZTogSW50ZXJhY3Rpb25UeXBlc1xuICAvKiogR3VpbGQgdGhhdCB0aGUgaW50ZXJhY3Rpb24gd2FzIHNlbnQgZnJvbSAqL1xuICBndWlsZDogR3VpbGRcbiAgLyoqIFRoZSBndWlsZCBpdCB3YXMgc2VudCBmcm9tICovXG4gIGd1aWxkSWQ/OiBiaWdpbnRcbiAgLyoqIFRoZSBjaGFubmVsIGl0IHdhcyBzZW50IGZyb20gKi9cbiAgY2hhbm5lbDogUGFydGlhbDxDaGFubmVsPlxuICAvKipcbiAgICogVGhlIElEIG9mIGNoYW5uZWwgaXQgd2FzIHNlbnQgZnJvbVxuICAgKlxuICAgKiBAcmVtYXJrc1xuICAgKiBJdCBpcyByZWNvbW1lbmRlZCB0aGF0IHlvdSBiZWdpbiB1c2luZyB0aGlzIGNoYW5uZWwgZmllbGQgdG8gaWRlbnRpZnkgdGhlIHNvdXJjZSBjaGFubmVsIG9mIHRoZSBpbnRlcmFjdGlvbiBhcyB0aGV5IG1heSBkZXByZWNhdGUgdGhlIGV4aXN0aW5nIGNoYW5uZWxfaWQgZmllbGQgaW4gdGhlIGZ1dHVyZS5cbiAgICovXG4gIGNoYW5uZWxJZD86IGJpZ2ludFxuICAvKiogR3VpbGQgbWVtYmVyIGRhdGEgZm9yIHRoZSBpbnZva2luZyB1c2VyLCBpbmNsdWRpbmcgcGVybWlzc2lvbnMgKi9cbiAgbWVtYmVyPzogTWVtYmVyXG4gIC8qKiBVc2VyIG9iamVjdCBmb3IgdGhlIGludm9raW5nIHVzZXIsIGlmIGludm9rZWQgaW4gYSBETSAqL1xuICB1c2VyOiBVc2VyXG4gIC8qKiBBIGNvbnRpbnVhdGlvbiB0b2tlbiBmb3IgcmVzcG9uZGluZyB0byB0aGUgaW50ZXJhY3Rpb24gKi9cbiAgdG9rZW46IHN0cmluZ1xuICAvKiogUmVhZC1vbmx5IHByb3BlcnR5LCBhbHdheXMgYDFgICovXG4gIHZlcnNpb246IDFcbiAgLyoqIEZvciB0aGUgbWVzc2FnZSB0aGUgYnV0dG9uIHdhcyBhdHRhY2hlZCB0byAqL1xuICBtZXNzYWdlPzogTWVzc2FnZVxuICAvKiogdGhlIGNvbW1hbmQgZGF0YSBwYXlsb2FkICovXG4gIGRhdGE/OiB7XG4gICAgdHlwZT86IEFwcGxpY2F0aW9uQ29tbWFuZFR5cGVzXG4gICAgY29tcG9uZW50VHlwZT86IE1lc3NhZ2VDb21wb25lbnRUeXBlc1xuICAgIGN1c3RvbUlkPzogc3RyaW5nXG4gICAgY29tcG9uZW50cz86IENvbXBvbmVudFtdXG4gICAgdmFsdWVzPzogc3RyaW5nW11cbiAgICBuYW1lOiBzdHJpbmdcbiAgICByZXNvbHZlZD86IEludGVyYWN0aW9uRGF0YVJlc29sdmVkXG4gICAgb3B0aW9ucz86IEludGVyYWN0aW9uRGF0YU9wdGlvbltdXG4gICAgaWQ/OiBiaWdpbnRcbiAgICB0YXJnZXRJZD86IGJpZ2ludFxuICAgIC8vIGd1aWxkSWQ/OiBiaWdpbnRcbiAgfVxuICAvKiogVGhlIHNlbGVjdGVkIGxhbmd1YWdlIG9mIHRoZSBpbnZva2luZyB1c2VyICovXG4gIGxvY2FsZT86IHN0cmluZ1xuICAvKiogVGhlIGd1aWxkJ3MgcHJlZmVycmVkIGxvY2FsZSwgaWYgaW52b2tlZCBpbiBhIGd1aWxkICovXG4gIGd1aWxkTG9jYWxlPzogc3RyaW5nXG4gIC8qKiBUaGUgY29tcHV0ZWQgcGVybWlzc2lvbnMgZm9yIGEgYm90IG9yIGFwcCBpbiB0aGUgY29udGV4dCBvZiBhIHNwZWNpZmljIGludGVyYWN0aW9uIChpbmNsdWRpbmcgY2hhbm5lbCBvdmVyd3JpdGVzKSAqL1xuICBhcHBQZXJtaXNzaW9uczogYmlnaW50XG4gIC8qKiBNYXBwaW5nIG9mIGluc3RhbGxhdGlvbiBjb250ZXh0cyB0aGF0IHRoZSBpbnRlcmFjdGlvbiB3YXMgYXV0aG9yaXplZCBmb3IgdG8gcmVsYXRlZCB1c2VyIG9yIGd1aWxkIElEcy4gKi9cbiAgYXV0aG9yaXppbmdJbnRlZ3JhdGlvbk93bmVyczogUGFydGlhbDxSZWNvcmQ8RGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlLCBiaWdpbnQ+PlxuICAvKiogQ29udGV4dCB3aGVyZSB0aGUgaW50ZXJhY3Rpb24gd2FzIHRyaWdnZXJlZCBmcm9tICovXG4gIGNvbnRleHQ/OiBEaXNjb3JkSW50ZXJhY3Rpb25Db250ZXh0VHlwZVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJhc2VJbnRlcmFjdGlvbiB7XG4gIC8qKlxuICAgKiBTZW5kcyBhIHJlc3BvbnNlIHRvIGFuIGludGVyYWN0aW9uLlxuICAgKlxuICAgKiBAcmVtYXJrc1xuICAgKiBUaGlzIHdpbGwgc2VuZCBhIHtAbGluayBJbnRlcmFjdGlvblJlc3BvbnNlVHlwZXMuQ2hhbm5lbE1lc3NhZ2VXaXRoU291cmNlfSwge0BsaW5rIEludGVyYWN0aW9uUmVzcG9uc2VUeXBlcy5BcHBsaWNhdGlvbkNvbW1hbmRBdXRvY29tcGxldGVSZXN1bHR9IG9yIHtAbGluayBJbnRlcmFjdGlvblJlc3BvbnNlVHlwZXMuTW9kYWx9IHJlc3BvbnNlIGJhc2VkIG9uIHRoZSB0eXBlIG9mIHRoZSBpbnRlcmFjdGlvbiB5b3UgYXJlIHJlc3BvbmRpbmcgdG8uXG4gICAqXG4gICAqIElmIHRoZSBpbnRlcmFjdGlvbiBoYXMgYmVlbiBhbHJlYWR5IGFja25vd2xlZGdlZCwgaW5kaWNhdGVkIGJ5IHtAbGluayBJbnRlcmFjdGlvbi5hY2tub3dsZWRnZWR9LCBpdCB3aWxsIHNlbmQgYSBmb2xsb3d1cCBtZXNzYWdlIGluc3RlYWQuXG4gICAqXG4gICAqIFVzZXMgYGludGVyYWN0aW9uLnR5cGVgLCBgaW50ZXJhY3Rpb24udG9rZW5gIGFuZCBgaW50ZXJhY3Rpb24uaWRgLCBtaXNzaW5nIG9uZSBvZiB0aGVzZSBpbiB0aGUgZGVzaXJlZCBwcm9wcmlldGllcyBtYXkgY2F1c2UgdW5leHBlY3RlZCBiZWhhdmlvci5cbiAgICovXG4gIHJlc3BvbmQ6IChyZXNwb25zZTogc3RyaW5nIHwgSW50ZXJhY3Rpb25DYWxsYmFja0RhdGEsIG9wdGlvbnM/OiB7IGlzUHJpdmF0ZT86IGJvb2xlYW4gfSkgPT4gUHJvbWlzZTxNZXNzYWdlIHwgdm9pZD5cbiAgLyoqXG4gICAqIEVkaXQgdGhlIG9yaWdpbmFsIHJlc3BvbnNlIG9mIGFuIGludGVyYWN0aW9uIG9yIGEgZm9sbG93dXAgaWYgdGhlIG1lc3NhZ2UgaWQgaXMgcHJvdmlkZWQuXG4gICAqXG4gICAqIEByZW1hcmtzXG4gICAqIFRoaXMgd2lsbCBlZGl0IHRoZSBvcmlnaW5hbCBpbnRlcmFjdGlvbiByZXNwb25zZSBvciwgaWYgdGhlIGludGVyYWN0aW9uIGhhcyBub3QgeWV0IGJlZW4gYWNrbm93bGVkZ2VkIGFuZCB0aGUgdHlwZSBvZiB0aGUgaW50ZXJhY3Rpb24gaXMge0BsaW5rIEludGVyYWN0aW9uVHlwZXMuTWVzc2FnZUNvbXBvbmVudH0gaXQgd2lsbCBpbnN0ZWFkIHNlbmQgYSB7QGxpbmsgSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLlVwZGF0ZU1lc3NhZ2V9IHJlc3BvbnNlIGluc3RlYWQuXG4gICAqXG4gICAqIFVzZXMgYGludGVyYWN0aW9uLnR5cGVgLCBgaW50ZXJhY3Rpb24udG9rZW5gIGFuZCBgaW50ZXJhY3Rpb24uaWRgLCBtaXNzaW5nIG9uZSBvZiB0aGVzZSBpbiB0aGUgZGVzaXJlZCBwcm9wcmlldGllcyBtYXkgY2F1c2UgdW5leHBlY3RlZCBiZWhhdmlvci5cbiAgICovXG4gIGVkaXQ6IChyZXNwb25zZTogc3RyaW5nIHwgSW50ZXJhY3Rpb25DYWxsYmFja0RhdGEsIG1lc3NhZ2VJZD86IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxNZXNzYWdlIHwgdm9pZD5cbiAgLyoqXG4gICAqIERlZmVyIHRoZSBpbnRlcmFjdGlvbiBmb3IgdXBkYXRpbmcgdGhlIHJlZmVyZW5jZWQgbWVzc2FnZSBhdCBhIGxhdGVyIHRpbWUgd2l0aCB7QGxpbmsgZWRpdH0uXG4gICAqXG4gICAqIEByZW1hcmtzXG4gICAqIFRoaXMgd2lsbCBzZW5kIGEge0BsaW5rIEludGVyYWN0aW9uUmVzcG9uc2VUeXBlcy5EZWZlcnJlZFVwZGF0ZU1lc3NhZ2V9IHJlc3BvbnNlLlxuICAgKlxuICAgKiBVc2VzIGBpbnRlcmFjdGlvbi50eXBlYCwgYGludGVyYWN0aW9uLnRva2VuYCBhbmQgYGludGVyYWN0aW9uLmlkYCwgbWlzc2luZyBvbmUgb2YgdGhlc2UgaW4gdGhlIGRlc2lyZWQgcHJvcHJpZXRpZXMgbWF5IGNhdXNlIHVuZXhwZWN0ZWQgYmVoYXZpb3IuXG4gICAqL1xuICBkZWZlckVkaXQ6ICgpID0+IFByb21pc2U8dm9pZD5cbiAgLyoqXG4gICAqIERlZmVyIHRoZSBpbnRlcmFjdGlvbiBmb3IgdXBkYXRpbmcgdGhlIHJlc3BvbnNlIGF0IGEgbGF0ZXIgdGltZSB3aXRoIHtAbGluayBlZGl0fS5cbiAgICpcbiAgICogQHJlbWFya3NcbiAgICogVGhpcyB3aWxsIHNlbmQgYSB7QGxpbmsgSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLkRlZmVycmVkQ2hhbm5lbE1lc3NhZ2VXaXRoU291cmNlfSByZXNwb25zZS5cbiAgICpcbiAgICogVXNlcyBgaW50ZXJhY3Rpb24udHlwZWAsIGBpbnRlcmFjdGlvbi50b2tlbmAgYW5kIGBpbnRlcmFjdGlvbi5pZGAsIG1pc3Npbmcgb25lIG9mIHRoZXNlIGluIHRoZSBkZXNpcmVkIHByb3ByaWV0aWVzIG1heSBjYXVzZSB1bmV4cGVjdGVkIGJlaGF2aW9yLlxuICAgKi9cbiAgZGVmZXI6IChpc1ByaXZhdGU/OiBib29sZWFuKSA9PiBQcm9taXNlPHZvaWQ+XG4gIC8qKlxuICAgKiBEZWxldGUgdGhlIG9yaWdpbmFsIGludGVyYWN0aW9uIHJlc3BvbnNlIG9yIGEgZm9sbG93dXAgaWYgdGhlIG1lc3NhZ2UgaWQgaXMgcHJvdmlkZWQuXG4gICAqXG4gICAqIEByZW1hcmtzXG4gICAqIFVzZXMgYGludGVyYWN0aW9uLnR5cGVgIGFuZCBgaW50ZXJhY3Rpb24udG9rZW5gLCBtaXNzaW5nIG9uZSBvZiB0aGVzZSBpbiB0aGUgZGVzaXJlZCBwcm9wcmlldGllcyBtYXkgY2F1c2UgdW5leHBlY3RlZCBiZWhhdmlvci5cbiAgICovXG4gIGRlbGV0ZTogKG1lc3NhZ2VJZD86IEJpZ1N0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxufVxuXG5jb25zdCBiYXNlSW50ZXJhY3Rpb246IFBhcnRpYWw8SW50ZXJhY3Rpb24+ICYgQmFzZUludGVyYWN0aW9uID0ge1xuICBhc3luYyByZXNwb25kKHJlc3BvbnNlLCBvcHRpb25zKSB7XG4gICAgbGV0IHR5cGUgPSBJbnRlcmFjdGlvblJlc3BvbnNlVHlwZXMuQ2hhbm5lbE1lc3NhZ2VXaXRoU291cmNlXG5cbiAgICAvLyBJZiB1c2VyIHByb3ZpZGVzIGEgc3RyaW5nLCBjaGFuZ2UgaXQgdG8gYSByZXNwb25zZSBvYmplY3RcbiAgICBpZiAodHlwZW9mIHJlc3BvbnNlID09PSAnc3RyaW5nJykgcmVzcG9uc2UgPSB7IGNvbnRlbnQ6IHJlc3BvbnNlIH1cblxuICAgIC8vIElmIHVzZXIgcHJvdmlkZXMgYW4gb2JqZWN0LCBkZXRlcm1pbmUgaWYgaXQgc2hvdWxkIGJlIGFuIGF1dG9jb21wbGV0ZSBvciBhIG1vZGFsIHJlc3BvbnNlXG4gICAgaWYgKHJlc3BvbnNlLnRpdGxlKSB0eXBlID0gSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLk1vZGFsXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gSW50ZXJhY3Rpb25UeXBlcy5BcHBsaWNhdGlvbkNvbW1hbmRBdXRvY29tcGxldGUpIHR5cGUgPSBJbnRlcmFjdGlvblJlc3BvbnNlVHlwZXMuQXBwbGljYXRpb25Db21tYW5kQXV0b2NvbXBsZXRlUmVzdWx0XG4gICAgaWYgKHR5cGUgPT09IEludGVyYWN0aW9uUmVzcG9uc2VUeXBlcy5DaGFubmVsTWVzc2FnZVdpdGhTb3VyY2UgJiYgb3B0aW9ucz8uaXNQcml2YXRlKSByZXNwb25zZS5mbGFncyA9IE1lc3NhZ2VGbGFncy5FcGhlbWVyYWxcblxuICAgIC8vIFNpbmNlIHRoaXMgaGFzIGFscmVhZHkgYmVlbiBnaXZlbiBhIHJlc3BvbnNlLCBhbnkgZnVydGhlciByZXNwb25zZXMgbXVzdCBiZSBmb2xsb3d1cHMuXG4gICAgaWYgKHRoaXMuYWNrbm93bGVkZ2VkKSByZXR1cm4gYXdhaXQgdGhpcy5ib3QhLmhlbHBlcnMuc2VuZEZvbGxvd3VwTWVzc2FnZSh0aGlzLnRva2VuISwgcmVzcG9uc2UpXG5cbiAgICAvLyBNb2RhbHMgY2Fubm90IGJlIGNoYWluZWRcbiAgICBpZiAodGhpcy50eXBlID09PSBJbnRlcmFjdGlvblR5cGVzLk1vZGFsU3VibWl0ICYmIHR5cGUgPT09IEludGVyYWN0aW9uUmVzcG9uc2VUeXBlcy5Nb2RhbClcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IHJlc3BvbmQgdG8gYSBtb2RhbCBpbnRlcmFjdGlvbiB3aXRoIGFub3RoZXIgbW9kYWwuJylcblxuICAgIHRoaXMuYWNrbm93bGVkZ2VkID0gdHJ1ZVxuICAgIHJldHVybiBhd2FpdCB0aGlzLmJvdCEuaGVscGVycy5zZW5kSW50ZXJhY3Rpb25SZXNwb25zZSh0aGlzLmlkISwgdGhpcy50b2tlbiEsIHsgdHlwZSwgZGF0YTogcmVzcG9uc2UgfSlcbiAgfSxcbiAgYXN5bmMgZWRpdChyZXNwb25zZSwgbWVzc2FnZUlkKSB7XG4gICAgaWYgKHRoaXMudHlwZSA9PT0gSW50ZXJhY3Rpb25UeXBlcy5BcHBsaWNhdGlvbkNvbW1hbmRBdXRvY29tcGxldGUpIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGVkaXQgYW4gYXV0b2NvbXBsZXRlIGludGVyYWN0aW9uLicpXG5cbiAgICAvLyBJZiB1c2VyIHByb3ZpZGVzIGEgc3RyaW5nLCBjaGFuZ2UgaXQgdG8gYSByZXNwb25zZSBvYmplY3RcbiAgICBpZiAodHlwZW9mIHJlc3BvbnNlID09PSAnc3RyaW5nJykgcmVzcG9uc2UgPSB7IGNvbnRlbnQ6IHJlc3BvbnNlIH1cblxuICAgIGlmIChtZXNzYWdlSWQpIHtcbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLmJvdD8uaGVscGVycy5lZGl0Rm9sbG93dXBNZXNzYWdlKHRoaXMudG9rZW4hLCBtZXNzYWdlSWQsIHJlc3BvbnNlKVxuICAgIH1cblxuICAgIGlmICghdGhpcy5hY2tub3dsZWRnZWQpIHtcbiAgICAgIGlmICh0aGlzLnR5cGUgIT09IEludGVyYWN0aW9uVHlwZXMuTWVzc2FnZUNvbXBvbmVudClcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVGhpcyBpbnRlcmFjdGlvbiBoYXMgbm90IGJlZW4gcmVzcG9uZGVkIHRvIHlldCBhbmQgdGhpcyBpc24ndCBhIE1lc3NhZ2VDb21wb25lbnQgaW50ZXJhY3Rpb24uXCIpXG5cbiAgICAgIHRoaXMuYWNrbm93bGVkZ2VkID0gdHJ1ZVxuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuYm90IS5oZWxwZXJzLnNlbmRJbnRlcmFjdGlvblJlc3BvbnNlKHRoaXMuaWQhLCB0aGlzLnRva2VuISwgeyB0eXBlOiBJbnRlcmFjdGlvblJlc3BvbnNlVHlwZXMuVXBkYXRlTWVzc2FnZSwgZGF0YTogcmVzcG9uc2UgfSlcbiAgICB9XG5cbiAgICByZXR1cm4gYXdhaXQgdGhpcy5ib3QhLmhlbHBlcnMuZWRpdE9yaWdpbmFsSW50ZXJhY3Rpb25SZXNwb25zZSh0aGlzLnRva2VuISwgcmVzcG9uc2UpXG4gIH0sXG4gIGFzeW5jIGRlZmVyRWRpdCgpIHtcbiAgICBpZiAodGhpcy50eXBlID09PSBJbnRlcmFjdGlvblR5cGVzLkFwcGxpY2F0aW9uQ29tbWFuZEF1dG9jb21wbGV0ZSkgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgZWRpdCBhbiBhdXRvY29tcGxldGUgaW50ZXJhY3Rpb24uJylcbiAgICBpZiAodGhpcy5hY2tub3dsZWRnZWQpIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGRlZmVyIGFuIGFscmVhZHkgcmVzcG9uZGVkIGludGVyYWN0aW9uLicpXG5cbiAgICBpZiAodGhpcy50eXBlICE9PSBJbnRlcmFjdGlvblR5cGVzLk1lc3NhZ2VDb21wb25lbnQpXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJDYW5ub3QgZGVmZXIgdG8gdGhlbiBlZGl0IGFuIGludGVyYWN0aW9uIHRoYXQgaXNuJ3QgYSBNZXNzYWdlQ29tcG9uZW50IGludGVyYWN0aW9uLlwiKVxuXG4gICAgdGhpcy5hY2tub3dsZWRnZWQgPSB0cnVlXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuYm90IS5oZWxwZXJzLnNlbmRJbnRlcmFjdGlvblJlc3BvbnNlKHRoaXMuaWQhLCB0aGlzLnRva2VuISwgeyB0eXBlOiBJbnRlcmFjdGlvblJlc3BvbnNlVHlwZXMuRGVmZXJyZWRVcGRhdGVNZXNzYWdlIH0pXG4gIH0sXG4gIGFzeW5jIGRlZmVyKGlzUHJpdmF0ZSkge1xuICAgIGlmICh0aGlzLmFja25vd2xlZGdlZCkgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgZGVmZXIgYW4gYWxyZWFkeSByZXNwb25kZWQgaW50ZXJhY3Rpb24uJylcblxuICAgIHRoaXMuYWNrbm93bGVkZ2VkID0gdHJ1ZVxuICAgIHJldHVybiBhd2FpdCB0aGlzLmJvdCEuaGVscGVycy5zZW5kSW50ZXJhY3Rpb25SZXNwb25zZSh0aGlzLmlkISwgdGhpcy50b2tlbiEsIHtcbiAgICAgIHR5cGU6IEludGVyYWN0aW9uUmVzcG9uc2VUeXBlcy5EZWZlcnJlZENoYW5uZWxNZXNzYWdlV2l0aFNvdXJjZSxcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgZmxhZ3M6IGlzUHJpdmF0ZSA/IE1lc3NhZ2VGbGFncy5FcGhlbWVyYWwgOiB1bmRlZmluZWQsXG4gICAgICB9LFxuICAgIH0pXG4gIH0sXG4gIGFzeW5jIGRlbGV0ZShtZXNzYWdlSWQpIHtcbiAgICBpZiAodGhpcy50eXBlID09PSBJbnRlcmFjdGlvblR5cGVzLkFwcGxpY2F0aW9uQ29tbWFuZEF1dG9jb21wbGV0ZSkgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgZGVsZXRlIGFuIGF1dG9jb21wbGV0ZSBpbnRlcmFjdGlvbicpXG5cbiAgICBpZiAobWVzc2FnZUlkKSByZXR1cm4gYXdhaXQgdGhpcy5ib3Q/LmhlbHBlcnMuZGVsZXRlRm9sbG93dXBNZXNzYWdlKHRoaXMudG9rZW4hLCBtZXNzYWdlSWQpXG4gICAgZWxzZSByZXR1cm4gYXdhaXQgdGhpcy5ib3Q/LmhlbHBlcnMuZGVsZXRlT3JpZ2luYWxJbnRlcmFjdGlvblJlc3BvbnNlKHRoaXMudG9rZW4hKVxuICB9LFxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtSW50ZXJhY3Rpb24oYm90OiBCb3QsIHBheWxvYWQ6IHsgaW50ZXJhY3Rpb246IERpc2NvcmRJbnRlcmFjdGlvbjsgc2hhcmRJZDogbnVtYmVyIH0pOiBJbnRlcmFjdGlvbiB7XG4gIGNvbnN0IGd1aWxkSWQgPSBwYXlsb2FkLmludGVyYWN0aW9uLmd1aWxkX2lkID8gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pbnRlcmFjdGlvbi5ndWlsZF9pZCkgOiB1bmRlZmluZWRcbiAgY29uc3QgdXNlciA9IGJvdC50cmFuc2Zvcm1lcnMudXNlcihib3QsIHBheWxvYWQuaW50ZXJhY3Rpb24ubWVtYmVyPy51c2VyID8/IHBheWxvYWQuaW50ZXJhY3Rpb24udXNlciEpXG5cbiAgY29uc3QgaW50ZXJhY3Rpb246IEludGVyYWN0aW9uID0gT2JqZWN0LmNyZWF0ZShiYXNlSW50ZXJhY3Rpb24pXG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5pbnRlcmFjdGlvblxuICBpbnRlcmFjdGlvbi5ib3QgPSBib3RcbiAgaW50ZXJhY3Rpb24uYWNrbm93bGVkZ2VkID0gZmFsc2VcblxuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi5pZCkgaW50ZXJhY3Rpb24uaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmludGVyYWN0aW9uLmlkKVxuICBpZiAocHJvcHMuYXBwbGljYXRpb25JZCAmJiBwYXlsb2FkLmludGVyYWN0aW9uLmFwcGxpY2F0aW9uX2lkKVxuICAgIGludGVyYWN0aW9uLmFwcGxpY2F0aW9uSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmludGVyYWN0aW9uLmFwcGxpY2F0aW9uX2lkKVxuICBpZiAocHJvcHMudHlwZSAmJiBwYXlsb2FkLmludGVyYWN0aW9uLnR5cGUpIGludGVyYWN0aW9uLnR5cGUgPSBwYXlsb2FkLmludGVyYWN0aW9uLnR5cGVcbiAgaWYgKHByb3BzLnRva2VuICYmIHBheWxvYWQuaW50ZXJhY3Rpb24udG9rZW4pIGludGVyYWN0aW9uLnRva2VuID0gcGF5bG9hZC5pbnRlcmFjdGlvbi50b2tlblxuICBpZiAocHJvcHMudmVyc2lvbiAmJiBwYXlsb2FkLmludGVyYWN0aW9uLnZlcnNpb24pIGludGVyYWN0aW9uLnZlcnNpb24gPSBwYXlsb2FkLmludGVyYWN0aW9uLnZlcnNpb25cbiAgaWYgKHByb3BzLmxvY2FsZSAmJiBwYXlsb2FkLmludGVyYWN0aW9uLmxvY2FsZSkgaW50ZXJhY3Rpb24ubG9jYWxlID0gcGF5bG9hZC5pbnRlcmFjdGlvbi5sb2NhbGVcbiAgaWYgKHByb3BzLmd1aWxkTG9jYWxlICYmIHBheWxvYWQuaW50ZXJhY3Rpb24uZ3VpbGRfbG9jYWxlKSBpbnRlcmFjdGlvbi5ndWlsZExvY2FsZSA9IHBheWxvYWQuaW50ZXJhY3Rpb24uZ3VpbGRfbG9jYWxlXG4gIGlmIChwcm9wcy5ndWlsZCAmJiBwYXlsb2FkLmludGVyYWN0aW9uLmd1aWxkKVxuICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgcGF5bG9hZC5pbnRlcmFjdGlvbi5ndWlsZCBpcyBhIFBhcnRpYWw8RGlzY29yZEd1aWxkPlxuICAgIGludGVyYWN0aW9uLmd1aWxkID0gYm90LnRyYW5zZm9ybWVycy5ndWlsZChib3QsIHsgZ3VpbGQ6IHBheWxvYWQuaW50ZXJhY3Rpb24uZ3VpbGQsIHNoYXJkSWQ6IHBheWxvYWQuc2hhcmRJZCB9KVxuICBpZiAocHJvcHMuZ3VpbGRJZCAmJiBndWlsZElkKSBpbnRlcmFjdGlvbi5ndWlsZElkID0gZ3VpbGRJZFxuICBpZiAocHJvcHMudXNlciAmJiB1c2VyKSBpbnRlcmFjdGlvbi51c2VyID0gdXNlclxuICBpZiAocHJvcHMuYXBwUGVybWlzc2lvbnMgJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi5hcHBfcGVybWlzc2lvbnMpXG4gICAgaW50ZXJhY3Rpb24uYXBwUGVybWlzc2lvbnMgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmludGVyYWN0aW9uLmFwcF9wZXJtaXNzaW9ucylcbiAgaWYgKHByb3BzLm1lc3NhZ2UgJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi5tZXNzYWdlKSBpbnRlcmFjdGlvbi5tZXNzYWdlID0gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlKGJvdCwgcGF5bG9hZC5pbnRlcmFjdGlvbi5tZXNzYWdlKVxuICBpZiAocHJvcHMuY2hhbm5lbCAmJiBwYXlsb2FkLmludGVyYWN0aW9uLmNoYW5uZWwpXG4gICAgaW50ZXJhY3Rpb24uY2hhbm5lbCA9IGJvdC50cmFuc2Zvcm1lcnMuY2hhbm5lbChib3QsIHsgY2hhbm5lbDogcGF5bG9hZC5pbnRlcmFjdGlvbi5jaGFubmVsIGFzIERpc2NvcmRDaGFubmVsLCBndWlsZElkIH0pXG4gIGlmIChwcm9wcy5jaGFubmVsSWQgJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi5jaGFubmVsX2lkKSBpbnRlcmFjdGlvbi5jaGFubmVsSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmludGVyYWN0aW9uLmNoYW5uZWxfaWQpXG4gIGlmIChwcm9wcy5tZW1iZXIgJiYgZ3VpbGRJZCAmJiBwYXlsb2FkLmludGVyYWN0aW9uLm1lbWJlcilcbiAgICBpbnRlcmFjdGlvbi5tZW1iZXIgPSBib3QudHJhbnNmb3JtZXJzLm1lbWJlcihib3QsIHBheWxvYWQuaW50ZXJhY3Rpb24ubWVtYmVyLCBndWlsZElkLCB1c2VyLmlkKVxuICBpZiAocHJvcHMuYXV0aG9yaXppbmdJbnRlZ3JhdGlvbk93bmVycyAmJiBwYXlsb2FkLmludGVyYWN0aW9uLmF1dGhvcml6aW5nX2ludGVncmF0aW9uX293bmVycykge1xuICAgIGludGVyYWN0aW9uLmF1dGhvcml6aW5nSW50ZWdyYXRpb25Pd25lcnMgPSB7fVxuXG4gICAgaWYgKHBheWxvYWQuaW50ZXJhY3Rpb24uYXV0aG9yaXppbmdfaW50ZWdyYXRpb25fb3duZXJzWycwJ10pXG4gICAgICBpbnRlcmFjdGlvbi5hdXRob3JpemluZ0ludGVncmF0aW9uT3duZXJzW0Rpc2NvcmRBcHBsaWNhdGlvbkludGVncmF0aW9uVHlwZS5HdWlsZEluc3RhbGxdID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoXG4gICAgICAgIHBheWxvYWQuaW50ZXJhY3Rpb24uYXV0aG9yaXppbmdfaW50ZWdyYXRpb25fb3duZXJzWycwJ10sXG4gICAgICApXG4gICAgaWYgKHBheWxvYWQuaW50ZXJhY3Rpb24uYXV0aG9yaXppbmdfaW50ZWdyYXRpb25fb3duZXJzWycxJ10pXG4gICAgICBpbnRlcmFjdGlvbi5hdXRob3JpemluZ0ludGVncmF0aW9uT3duZXJzW0Rpc2NvcmRBcHBsaWNhdGlvbkludGVncmF0aW9uVHlwZS5Vc2VySW5zdGFsbF0gPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShcbiAgICAgICAgcGF5bG9hZC5pbnRlcmFjdGlvbi5hdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnNbJzEnXSxcbiAgICAgIClcbiAgfVxuICBpZiAocHJvcHMuY29udGV4dCAmJiBwYXlsb2FkLmludGVyYWN0aW9uLmNvbnRleHQpIGludGVyYWN0aW9uLmNvbnRleHQgPSBwYXlsb2FkLmludGVyYWN0aW9uLmNvbnRleHRcbiAgaWYgKHByb3BzLmRhdGEgJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhKSB7XG4gICAgaW50ZXJhY3Rpb24uZGF0YSA9IHtcbiAgICAgIHR5cGU6IHBheWxvYWQuaW50ZXJhY3Rpb24uZGF0YS50eXBlLFxuICAgICAgY29tcG9uZW50VHlwZTogcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLmNvbXBvbmVudF90eXBlLFxuICAgICAgY3VzdG9tSWQ6IHBheWxvYWQuaW50ZXJhY3Rpb24uZGF0YS5jdXN0b21faWQsXG4gICAgICBjb21wb25lbnRzOiBwYXlsb2FkLmludGVyYWN0aW9uLmRhdGEuY29tcG9uZW50cz8ubWFwKChjb21wb25lbnQpID0+IGJvdC50cmFuc2Zvcm1lcnMuY29tcG9uZW50KGJvdCwgY29tcG9uZW50KSksXG4gICAgICB2YWx1ZXM6IHBheWxvYWQuaW50ZXJhY3Rpb24uZGF0YS52YWx1ZXMsXG4gICAgICBpZDogcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLmlkID8gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLmlkKSA6IHVuZGVmaW5lZCxcbiAgICAgIG5hbWU6IHBheWxvYWQuaW50ZXJhY3Rpb24uZGF0YS5uYW1lLFxuICAgICAgcmVzb2x2ZWQ6IHBheWxvYWQuaW50ZXJhY3Rpb24uZGF0YS5yZXNvbHZlZCA/IHRyYW5zZm9ybUludGVyYWN0aW9uRGF0YVJlc29sdmVkKGJvdCwgcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLnJlc29sdmVkLCBndWlsZElkKSA6IHVuZGVmaW5lZCxcbiAgICAgIG9wdGlvbnM6IHBheWxvYWQuaW50ZXJhY3Rpb24uZGF0YS5vcHRpb25zPy5tYXAoKG9wdCkgPT4gYm90LnRyYW5zZm9ybWVycy5pbnRlcmFjdGlvbkRhdGFPcHRpb25zKGJvdCwgb3B0KSksXG4gICAgICB0YXJnZXRJZDogcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLnRhcmdldF9pZCA/IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaW50ZXJhY3Rpb24uZGF0YS50YXJnZXRfaWQpIDogdW5kZWZpbmVkLFxuICAgICAgLy8gZ3VpbGRJZDogcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLmd1aWxkX2lkID8gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLmd1aWxkX2lkKSA6IHVuZGVmaW5lZCxcbiAgICB9XG4gIH1cblxuICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jdXN0b21pemVycy5pbnRlcmFjdGlvbihib3QsIHBheWxvYWQsIGludGVyYWN0aW9uKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtSW50ZXJhY3Rpb25EYXRhT3B0aW9uKGJvdDogQm90LCBvcHRpb246IERpc2NvcmRJbnRlcmFjdGlvbkRhdGFPcHRpb24pOiBJbnRlcmFjdGlvbkRhdGFPcHRpb24ge1xuICBjb25zdCBvcHQgPSB7XG4gICAgbmFtZTogb3B0aW9uLm5hbWUsXG4gICAgdHlwZTogb3B0aW9uLnR5cGUsXG4gICAgdmFsdWU6IG9wdGlvbi52YWx1ZSxcbiAgICBvcHRpb25zOiBvcHRpb24ub3B0aW9ucyxcbiAgICBmb2N1c2VkOiBvcHRpb24uZm9jdXNlZCxcbiAgfSBhcyBJbnRlcmFjdGlvbkRhdGFPcHRpb25cblxuICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jdXN0b21pemVycy5pbnRlcmFjdGlvbkRhdGFPcHRpb25zKGJvdCwgb3B0aW9uLCBvcHQpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1JbnRlcmFjdGlvbkRhdGFSZXNvbHZlZChib3Q6IEJvdCwgcmVzb2x2ZWQ6IERpc2NvcmRJbnRlcmFjdGlvbkRhdGFSZXNvbHZlZCwgZ3VpbGRJZD86IGJpZ2ludCk6IEludGVyYWN0aW9uRGF0YVJlc29sdmVkIHtcbiAgY29uc3QgdHJhbnNmb3JtZWQ6IEludGVyYWN0aW9uRGF0YVJlc29sdmVkID0ge31cblxuICBpZiAocmVzb2x2ZWQubWVzc2FnZXMpIHtcbiAgICB0cmFuc2Zvcm1lZC5tZXNzYWdlcyA9IG5ldyBDb2xsZWN0aW9uKFxuICAgICAgT2JqZWN0LmVudHJpZXMocmVzb2x2ZWQubWVzc2FnZXMpLm1hcCgoW2lkLCB2YWx1ZV0pID0+IHtcbiAgICAgICAgY29uc3QgbWVzc2FnZTogTWVzc2FnZSA9IGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHZhbHVlKVxuICAgICAgICByZXR1cm4gW21lc3NhZ2UuaWQsIG1lc3NhZ2VdXG4gICAgICB9KSxcbiAgICApXG4gIH1cblxuICBpZiAocmVzb2x2ZWQudXNlcnMpIHtcbiAgICB0cmFuc2Zvcm1lZC51c2VycyA9IG5ldyBDb2xsZWN0aW9uKFxuICAgICAgT2JqZWN0LmVudHJpZXMocmVzb2x2ZWQudXNlcnMpLm1hcCgoW2lkLCB2YWx1ZV0pID0+IHtcbiAgICAgICAgY29uc3QgdXNlciA9IGJvdC50cmFuc2Zvcm1lcnMudXNlcihib3QsIHZhbHVlKVxuICAgICAgICByZXR1cm4gW3VzZXIuaWQsIHVzZXJdXG4gICAgICB9KSxcbiAgICApXG4gIH1cblxuICBpZiAoZ3VpbGRJZCAmJiByZXNvbHZlZC5tZW1iZXJzKSB7XG4gICAgdHJhbnNmb3JtZWQubWVtYmVycyA9IG5ldyBDb2xsZWN0aW9uKFxuICAgICAgT2JqZWN0LmVudHJpZXMocmVzb2x2ZWQubWVtYmVycykubWFwKChbaWQsIHZhbHVlXSkgPT4ge1xuICAgICAgICBjb25zdCBtZW1iZXI6IE1lbWJlciA9IGJvdC50cmFuc2Zvcm1lcnMubWVtYmVyKGJvdCwgdmFsdWUsIGd1aWxkSWQsIGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKGlkKSlcbiAgICAgICAgcmV0dXJuIFttZW1iZXIuaWQsIG1lbWJlcl1cbiAgICAgIH0pLFxuICAgIClcbiAgfVxuXG4gIGlmIChndWlsZElkICYmIHJlc29sdmVkLnJvbGVzKSB7XG4gICAgdHJhbnNmb3JtZWQucm9sZXMgPSBuZXcgQ29sbGVjdGlvbihcbiAgICAgIE9iamVjdC5lbnRyaWVzKHJlc29sdmVkLnJvbGVzKS5tYXAoKFtpZCwgdmFsdWVdKSA9PiB7XG4gICAgICAgIGNvbnN0IHJvbGUgPSBib3QudHJhbnNmb3JtZXJzLnJvbGUoYm90LCB7IHJvbGU6IHZhbHVlLCBndWlsZElkIH0pXG4gICAgICAgIHJldHVybiBbcm9sZS5pZCwgcm9sZV1cbiAgICAgIH0pLFxuICAgIClcbiAgfVxuXG4gIGlmIChyZXNvbHZlZC5jaGFubmVscykge1xuICAgIHRyYW5zZm9ybWVkLmNoYW5uZWxzID0gbmV3IENvbGxlY3Rpb24oXG4gICAgICBPYmplY3QuZW50cmllcyhyZXNvbHZlZC5jaGFubmVscykubWFwKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgY29uc3QgaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShrZXkpXG4gICAgICAgIGNvbnN0IGNoYW5uZWwgPSB2YWx1ZSBhcyB7XG4gICAgICAgICAgaWQ6IHN0cmluZ1xuICAgICAgICAgIG5hbWU6IHN0cmluZ1xuICAgICAgICAgIHR5cGU6IENoYW5uZWxUeXBlc1xuICAgICAgICAgIHBlcm1pc3Npb25zOiBzdHJpbmdcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgIGlkLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgbmFtZTogY2hhbm5lbC5uYW1lLFxuICAgICAgICAgICAgdHlwZTogY2hhbm5lbC50eXBlLFxuICAgICAgICAgICAgcGVybWlzc2lvbnM6IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKGNoYW5uZWwucGVybWlzc2lvbnMpLFxuICAgICAgICAgIH0sXG4gICAgICAgIF1cbiAgICAgIH0pLFxuICAgIClcbiAgfVxuXG4gIGlmIChyZXNvbHZlZC5hdHRhY2htZW50cykge1xuICAgIHRyYW5zZm9ybWVkLmF0dGFjaG1lbnRzID0gbmV3IENvbGxlY3Rpb24oXG4gICAgICBPYmplY3QuZW50cmllcyhyZXNvbHZlZC5hdHRhY2htZW50cykubWFwKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgY29uc3QgaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShrZXkpXG4gICAgICAgIHJldHVybiBbaWQsIGJvdC50cmFuc2Zvcm1lcnMuYXR0YWNobWVudChib3QsIHZhbHVlKV1cbiAgICAgIH0pLFxuICAgIClcbiAgfVxuXG4gIHJldHVybiB0cmFuc2Zvcm1lZFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEludGVyYWN0aW9uRGF0YVJlc29sdmVkIHtcbiAgbWVzc2FnZXM/OiBDb2xsZWN0aW9uPGJpZ2ludCwgTWVzc2FnZT5cbiAgdXNlcnM/OiBDb2xsZWN0aW9uPGJpZ2ludCwgVXNlcj5cbiAgbWVtYmVycz86IENvbGxlY3Rpb248YmlnaW50LCBNZW1iZXI+XG4gIHJvbGVzPzogQ29sbGVjdGlvbjxiaWdpbnQsIFJvbGU+XG4gIGNoYW5uZWxzPzogQ29sbGVjdGlvbjxiaWdpbnQsIHsgaWQ6IGJpZ2ludDsgbmFtZTogc3RyaW5nOyB0eXBlOiBDaGFubmVsVHlwZXM7IHBlcm1pc3Npb25zOiBiaWdpbnQgfT5cbiAgYXR0YWNobWVudHM/OiBDb2xsZWN0aW9uPGJpZ2ludCwgQXR0YWNobWVudD5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBJbnRlcmFjdGlvbkRhdGFPcHRpb24ge1xuICBuYW1lOiBzdHJpbmdcbiAgdHlwZTogQXBwbGljYXRpb25Db21tYW5kT3B0aW9uVHlwZXNcbiAgdmFsdWU/OiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuXG4gIG9wdGlvbnM/OiBJbnRlcmFjdGlvbkRhdGFPcHRpb25bXVxuICBmb2N1c2VkPzogYm9vbGVhblxufVxuIl0sIm5hbWVzIjpbIkludGVyYWN0aW9uUmVzcG9uc2VUeXBlcyIsIkludGVyYWN0aW9uVHlwZXMiLCJNZXNzYWdlRmxhZ3MiLCJDb2xsZWN0aW9uIiwiRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlIiwiYmFzZUludGVyYWN0aW9uIiwicmVzcG9uZCIsInJlc3BvbnNlIiwib3B0aW9ucyIsInR5cGUiLCJDaGFubmVsTWVzc2FnZVdpdGhTb3VyY2UiLCJjb250ZW50IiwidGl0bGUiLCJNb2RhbCIsIkFwcGxpY2F0aW9uQ29tbWFuZEF1dG9jb21wbGV0ZSIsIkFwcGxpY2F0aW9uQ29tbWFuZEF1dG9jb21wbGV0ZVJlc3VsdCIsImlzUHJpdmF0ZSIsImZsYWdzIiwiRXBoZW1lcmFsIiwiYWNrbm93bGVkZ2VkIiwiYm90IiwiaGVscGVycyIsInNlbmRGb2xsb3d1cE1lc3NhZ2UiLCJ0b2tlbiIsIk1vZGFsU3VibWl0IiwiRXJyb3IiLCJzZW5kSW50ZXJhY3Rpb25SZXNwb25zZSIsImlkIiwiZGF0YSIsImVkaXQiLCJtZXNzYWdlSWQiLCJlZGl0Rm9sbG93dXBNZXNzYWdlIiwiTWVzc2FnZUNvbXBvbmVudCIsIlVwZGF0ZU1lc3NhZ2UiLCJlZGl0T3JpZ2luYWxJbnRlcmFjdGlvblJlc3BvbnNlIiwiZGVmZXJFZGl0IiwiRGVmZXJyZWRVcGRhdGVNZXNzYWdlIiwiZGVmZXIiLCJEZWZlcnJlZENoYW5uZWxNZXNzYWdlV2l0aFNvdXJjZSIsInVuZGVmaW5lZCIsImRlbGV0ZSIsImRlbGV0ZUZvbGxvd3VwTWVzc2FnZSIsImRlbGV0ZU9yaWdpbmFsSW50ZXJhY3Rpb25SZXNwb25zZSIsInRyYW5zZm9ybUludGVyYWN0aW9uIiwicGF5bG9hZCIsImd1aWxkSWQiLCJpbnRlcmFjdGlvbiIsImd1aWxkX2lkIiwidHJhbnNmb3JtZXJzIiwic25vd2ZsYWtlIiwidXNlciIsIm1lbWJlciIsIk9iamVjdCIsImNyZWF0ZSIsInByb3BzIiwiZGVzaXJlZFByb3BlcnRpZXMiLCJhcHBsaWNhdGlvbklkIiwiYXBwbGljYXRpb25faWQiLCJ2ZXJzaW9uIiwibG9jYWxlIiwiZ3VpbGRMb2NhbGUiLCJndWlsZF9sb2NhbGUiLCJndWlsZCIsInNoYXJkSWQiLCJhcHBQZXJtaXNzaW9ucyIsImFwcF9wZXJtaXNzaW9ucyIsIm1lc3NhZ2UiLCJjaGFubmVsIiwiY2hhbm5lbElkIiwiY2hhbm5lbF9pZCIsImF1dGhvcml6aW5nSW50ZWdyYXRpb25Pd25lcnMiLCJhdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnMiLCJHdWlsZEluc3RhbGwiLCJVc2VySW5zdGFsbCIsImNvbnRleHQiLCJjb21wb25lbnRUeXBlIiwiY29tcG9uZW50X3R5cGUiLCJjdXN0b21JZCIsImN1c3RvbV9pZCIsImNvbXBvbmVudHMiLCJtYXAiLCJjb21wb25lbnQiLCJ2YWx1ZXMiLCJuYW1lIiwicmVzb2x2ZWQiLCJ0cmFuc2Zvcm1JbnRlcmFjdGlvbkRhdGFSZXNvbHZlZCIsIm9wdCIsImludGVyYWN0aW9uRGF0YU9wdGlvbnMiLCJ0YXJnZXRJZCIsInRhcmdldF9pZCIsImN1c3RvbWl6ZXJzIiwidHJhbnNmb3JtSW50ZXJhY3Rpb25EYXRhT3B0aW9uIiwib3B0aW9uIiwidmFsdWUiLCJmb2N1c2VkIiwidHJhbnNmb3JtZWQiLCJtZXNzYWdlcyIsImVudHJpZXMiLCJ1c2VycyIsIm1lbWJlcnMiLCJyb2xlcyIsInJvbGUiLCJjaGFubmVscyIsImtleSIsInBlcm1pc3Npb25zIiwiYXR0YWNobWVudHMiLCJhdHRhY2htZW50Il0sIm1hcHBpbmdzIjoiQUFBQSxTQUNFQSx3QkFBd0IsRUFDeEJDLGdCQUFnQixFQUNoQkMsWUFBWSxRQVNQLG9CQUFtQjtBQUMxQixTQUFTQyxVQUFVLFFBQVEsb0JBQW1CO0FBQzlDLFNBQ0VDLGlDQUFpQyxRQU81QixjQUFhO0FBb0hwQixNQUFNQyxrQkFBMEQ7SUFDOUQsTUFBTUMsU0FBUUMsUUFBUSxFQUFFQyxPQUFPO1FBQzdCLElBQUlDLE9BQU9ULHlCQUF5QlUsd0JBQXdCO1FBRTVELDREQUE0RDtRQUM1RCxJQUFJLE9BQU9ILGFBQWEsVUFBVUEsV0FBVztZQUFFSSxTQUFTSjtRQUFTO1FBRWpFLDRGQUE0RjtRQUM1RixJQUFJQSxTQUFTSyxLQUFLLEVBQUVILE9BQU9ULHlCQUF5QmEsS0FBSztRQUN6RCxJQUFJLElBQUksQ0FBQ0osSUFBSSxLQUFLUixpQkFBaUJhLDhCQUE4QixFQUFFTCxPQUFPVCx5QkFBeUJlLG9DQUFvQztRQUN2SSxJQUFJTixTQUFTVCx5QkFBeUJVLHdCQUF3QixJQUFJRixTQUFTUSxXQUFXVCxTQUFTVSxLQUFLLEdBQUdmLGFBQWFnQixTQUFTO1FBRTdILHlGQUF5RjtRQUN6RixJQUFJLElBQUksQ0FBQ0MsWUFBWSxFQUFFLE9BQU8sTUFBTSxJQUFJLENBQUNDLEdBQUcsQ0FBRUMsT0FBTyxDQUFDQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUNDLEtBQUssRUFBR2hCO1FBRXZGLDJCQUEyQjtRQUMzQixJQUFJLElBQUksQ0FBQ0UsSUFBSSxLQUFLUixpQkFBaUJ1QixXQUFXLElBQUlmLFNBQVNULHlCQUF5QmEsS0FBSyxFQUN2RixNQUFNLElBQUlZLE1BQU07UUFFbEIsSUFBSSxDQUFDTixZQUFZLEdBQUc7UUFDcEIsT0FBTyxNQUFNLElBQUksQ0FBQ0MsR0FBRyxDQUFFQyxPQUFPLENBQUNLLHVCQUF1QixDQUFDLElBQUksQ0FBQ0MsRUFBRSxFQUFHLElBQUksQ0FBQ0osS0FBSyxFQUFHO1lBQUVkO1lBQU1tQixNQUFNckI7UUFBUztJQUN2RztJQUNBLE1BQU1zQixNQUFLdEIsUUFBUSxFQUFFdUIsU0FBUztRQUM1QixJQUFJLElBQUksQ0FBQ3JCLElBQUksS0FBS1IsaUJBQWlCYSw4QkFBOEIsRUFBRSxNQUFNLElBQUlXLE1BQU07UUFFbkYsNERBQTREO1FBQzVELElBQUksT0FBT2xCLGFBQWEsVUFBVUEsV0FBVztZQUFFSSxTQUFTSjtRQUFTO1FBRWpFLElBQUl1QixXQUFXO1lBQ2IsT0FBTyxNQUFNLElBQUksQ0FBQ1YsR0FBRyxFQUFFQyxRQUFRVSxvQkFBb0IsSUFBSSxDQUFDUixLQUFLLEVBQUdPLFdBQVd2QjtRQUM3RTtRQUVBLElBQUksQ0FBQyxJQUFJLENBQUNZLFlBQVksRUFBRTtZQUN0QixJQUFJLElBQUksQ0FBQ1YsSUFBSSxLQUFLUixpQkFBaUIrQixnQkFBZ0IsRUFDakQsTUFBTSxJQUFJUCxNQUFNO1lBRWxCLElBQUksQ0FBQ04sWUFBWSxHQUFHO1lBQ3BCLE9BQU8sTUFBTSxJQUFJLENBQUNDLEdBQUcsQ0FBRUMsT0FBTyxDQUFDSyx1QkFBdUIsQ0FBQyxJQUFJLENBQUNDLEVBQUUsRUFBRyxJQUFJLENBQUNKLEtBQUssRUFBRztnQkFBRWQsTUFBTVQseUJBQXlCaUMsYUFBYTtnQkFBRUwsTUFBTXJCO1lBQVM7UUFDL0k7UUFFQSxPQUFPLE1BQU0sSUFBSSxDQUFDYSxHQUFHLENBQUVDLE9BQU8sQ0FBQ2EsK0JBQStCLENBQUMsSUFBSSxDQUFDWCxLQUFLLEVBQUdoQjtJQUM5RTtJQUNBLE1BQU00QjtRQUNKLElBQUksSUFBSSxDQUFDMUIsSUFBSSxLQUFLUixpQkFBaUJhLDhCQUE4QixFQUFFLE1BQU0sSUFBSVcsTUFBTTtRQUNuRixJQUFJLElBQUksQ0FBQ04sWUFBWSxFQUFFLE1BQU0sSUFBSU0sTUFBTTtRQUV2QyxJQUFJLElBQUksQ0FBQ2hCLElBQUksS0FBS1IsaUJBQWlCK0IsZ0JBQWdCLEVBQ2pELE1BQU0sSUFBSVAsTUFBTTtRQUVsQixJQUFJLENBQUNOLFlBQVksR0FBRztRQUNwQixPQUFPLE1BQU0sSUFBSSxDQUFDQyxHQUFHLENBQUVDLE9BQU8sQ0FBQ0ssdUJBQXVCLENBQUMsSUFBSSxDQUFDQyxFQUFFLEVBQUcsSUFBSSxDQUFDSixLQUFLLEVBQUc7WUFBRWQsTUFBTVQseUJBQXlCb0MscUJBQXFCO1FBQUM7SUFDdkk7SUFDQSxNQUFNQyxPQUFNckIsU0FBUztRQUNuQixJQUFJLElBQUksQ0FBQ0csWUFBWSxFQUFFLE1BQU0sSUFBSU0sTUFBTTtRQUV2QyxJQUFJLENBQUNOLFlBQVksR0FBRztRQUNwQixPQUFPLE1BQU0sSUFBSSxDQUFDQyxHQUFHLENBQUVDLE9BQU8sQ0FBQ0ssdUJBQXVCLENBQUMsSUFBSSxDQUFDQyxFQUFFLEVBQUcsSUFBSSxDQUFDSixLQUFLLEVBQUc7WUFDNUVkLE1BQU1ULHlCQUF5QnNDLGdDQUFnQztZQUMvRFYsTUFBTTtnQkFDSlgsT0FBT0QsWUFBWWQsYUFBYWdCLFNBQVMsR0FBR3FCO1lBQzlDO1FBQ0Y7SUFDRjtJQUNBLE1BQU1DLFFBQU9WLFNBQVM7UUFDcEIsSUFBSSxJQUFJLENBQUNyQixJQUFJLEtBQUtSLGlCQUFpQmEsOEJBQThCLEVBQUUsTUFBTSxJQUFJVyxNQUFNO1FBRW5GLElBQUlLLFdBQVcsT0FBTyxNQUFNLElBQUksQ0FBQ1YsR0FBRyxFQUFFQyxRQUFRb0Isc0JBQXNCLElBQUksQ0FBQ2xCLEtBQUssRUFBR087YUFDNUUsT0FBTyxNQUFNLElBQUksQ0FBQ1YsR0FBRyxFQUFFQyxRQUFRcUIsa0NBQWtDLElBQUksQ0FBQ25CLEtBQUs7SUFDbEY7QUFDRjtBQUVBLE9BQU8sU0FBU29CLHFCQUFxQnZCLEdBQVEsRUFBRXdCLE9BQTZEO0lBQzFHLE1BQU1DLFVBQVVELFFBQVFFLFdBQVcsQ0FBQ0MsUUFBUSxHQUFHM0IsSUFBSTRCLFlBQVksQ0FBQ0MsU0FBUyxDQUFDTCxRQUFRRSxXQUFXLENBQUNDLFFBQVEsSUFBSVI7SUFDMUcsTUFBTVcsT0FBTzlCLElBQUk0QixZQUFZLENBQUNFLElBQUksQ0FBQzlCLEtBQUt3QixRQUFRRSxXQUFXLENBQUNLLE1BQU0sRUFBRUQsUUFBUU4sUUFBUUUsV0FBVyxDQUFDSSxJQUFJO0lBRXBHLE1BQU1KLGNBQTJCTSxPQUFPQyxNQUFNLENBQUNoRDtJQUMvQyxNQUFNaUQsUUFBUWxDLElBQUk0QixZQUFZLENBQUNPLGlCQUFpQixDQUFDVCxXQUFXO0lBQzVEQSxZQUFZMUIsR0FBRyxHQUFHQTtJQUNsQjBCLFlBQVkzQixZQUFZLEdBQUc7SUFFM0IsSUFBSW1DLE1BQU0zQixFQUFFLElBQUlpQixRQUFRRSxXQUFXLENBQUNuQixFQUFFLEVBQUVtQixZQUFZbkIsRUFBRSxHQUFHUCxJQUFJNEIsWUFBWSxDQUFDQyxTQUFTLENBQUNMLFFBQVFFLFdBQVcsQ0FBQ25CLEVBQUU7SUFDMUcsSUFBSTJCLE1BQU1FLGFBQWEsSUFBSVosUUFBUUUsV0FBVyxDQUFDVyxjQUFjLEVBQzNEWCxZQUFZVSxhQUFhLEdBQUdwQyxJQUFJNEIsWUFBWSxDQUFDQyxTQUFTLENBQUNMLFFBQVFFLFdBQVcsQ0FBQ1csY0FBYztJQUMzRixJQUFJSCxNQUFNN0MsSUFBSSxJQUFJbUMsUUFBUUUsV0FBVyxDQUFDckMsSUFBSSxFQUFFcUMsWUFBWXJDLElBQUksR0FBR21DLFFBQVFFLFdBQVcsQ0FBQ3JDLElBQUk7SUFDdkYsSUFBSTZDLE1BQU0vQixLQUFLLElBQUlxQixRQUFRRSxXQUFXLENBQUN2QixLQUFLLEVBQUV1QixZQUFZdkIsS0FBSyxHQUFHcUIsUUFBUUUsV0FBVyxDQUFDdkIsS0FBSztJQUMzRixJQUFJK0IsTUFBTUksT0FBTyxJQUFJZCxRQUFRRSxXQUFXLENBQUNZLE9BQU8sRUFBRVosWUFBWVksT0FBTyxHQUFHZCxRQUFRRSxXQUFXLENBQUNZLE9BQU87SUFDbkcsSUFBSUosTUFBTUssTUFBTSxJQUFJZixRQUFRRSxXQUFXLENBQUNhLE1BQU0sRUFBRWIsWUFBWWEsTUFBTSxHQUFHZixRQUFRRSxXQUFXLENBQUNhLE1BQU07SUFDL0YsSUFBSUwsTUFBTU0sV0FBVyxJQUFJaEIsUUFBUUUsV0FBVyxDQUFDZSxZQUFZLEVBQUVmLFlBQVljLFdBQVcsR0FBR2hCLFFBQVFFLFdBQVcsQ0FBQ2UsWUFBWTtJQUNySCxJQUFJUCxNQUFNUSxLQUFLLElBQUlsQixRQUFRRSxXQUFXLENBQUNnQixLQUFLLEVBQzFDLHdFQUF3RTtJQUN4RWhCLFlBQVlnQixLQUFLLEdBQUcxQyxJQUFJNEIsWUFBWSxDQUFDYyxLQUFLLENBQUMxQyxLQUFLO1FBQUUwQyxPQUFPbEIsUUFBUUUsV0FBVyxDQUFDZ0IsS0FBSztRQUFFQyxTQUFTbkIsUUFBUW1CLE9BQU87SUFBQztJQUMvRyxJQUFJVCxNQUFNVCxPQUFPLElBQUlBLFNBQVNDLFlBQVlELE9BQU8sR0FBR0E7SUFDcEQsSUFBSVMsTUFBTUosSUFBSSxJQUFJQSxNQUFNSixZQUFZSSxJQUFJLEdBQUdBO0lBQzNDLElBQUlJLE1BQU1VLGNBQWMsSUFBSXBCLFFBQVFFLFdBQVcsQ0FBQ21CLGVBQWUsRUFDN0RuQixZQUFZa0IsY0FBYyxHQUFHNUMsSUFBSTRCLFlBQVksQ0FBQ0MsU0FBUyxDQUFDTCxRQUFRRSxXQUFXLENBQUNtQixlQUFlO0lBQzdGLElBQUlYLE1BQU1ZLE9BQU8sSUFBSXRCLFFBQVFFLFdBQVcsQ0FBQ29CLE9BQU8sRUFBRXBCLFlBQVlvQixPQUFPLEdBQUc5QyxJQUFJNEIsWUFBWSxDQUFDa0IsT0FBTyxDQUFDOUMsS0FBS3dCLFFBQVFFLFdBQVcsQ0FBQ29CLE9BQU87SUFDakksSUFBSVosTUFBTWEsT0FBTyxJQUFJdkIsUUFBUUUsV0FBVyxDQUFDcUIsT0FBTyxFQUM5Q3JCLFlBQVlxQixPQUFPLEdBQUcvQyxJQUFJNEIsWUFBWSxDQUFDbUIsT0FBTyxDQUFDL0MsS0FBSztRQUFFK0MsU0FBU3ZCLFFBQVFFLFdBQVcsQ0FBQ3FCLE9BQU87UUFBb0J0QjtJQUFRO0lBQ3hILElBQUlTLE1BQU1jLFNBQVMsSUFBSXhCLFFBQVFFLFdBQVcsQ0FBQ3VCLFVBQVUsRUFBRXZCLFlBQVlzQixTQUFTLEdBQUdoRCxJQUFJNEIsWUFBWSxDQUFDQyxTQUFTLENBQUNMLFFBQVFFLFdBQVcsQ0FBQ3VCLFVBQVU7SUFDeEksSUFBSWYsTUFBTUgsTUFBTSxJQUFJTixXQUFXRCxRQUFRRSxXQUFXLENBQUNLLE1BQU0sRUFDdkRMLFlBQVlLLE1BQU0sR0FBRy9CLElBQUk0QixZQUFZLENBQUNHLE1BQU0sQ0FBQy9CLEtBQUt3QixRQUFRRSxXQUFXLENBQUNLLE1BQU0sRUFBRU4sU0FBU0ssS0FBS3ZCLEVBQUU7SUFDaEcsSUFBSTJCLE1BQU1nQiw0QkFBNEIsSUFBSTFCLFFBQVFFLFdBQVcsQ0FBQ3lCLDhCQUE4QixFQUFFO1FBQzVGekIsWUFBWXdCLDRCQUE0QixHQUFHLENBQUM7UUFFNUMsSUFBSTFCLFFBQVFFLFdBQVcsQ0FBQ3lCLDhCQUE4QixDQUFDLElBQUksRUFDekR6QixZQUFZd0IsNEJBQTRCLENBQUNsRSxrQ0FBa0NvRSxZQUFZLENBQUMsR0FBR3BELElBQUk0QixZQUFZLENBQUNDLFNBQVMsQ0FDbkhMLFFBQVFFLFdBQVcsQ0FBQ3lCLDhCQUE4QixDQUFDLElBQUk7UUFFM0QsSUFBSTNCLFFBQVFFLFdBQVcsQ0FBQ3lCLDhCQUE4QixDQUFDLElBQUksRUFDekR6QixZQUFZd0IsNEJBQTRCLENBQUNsRSxrQ0FBa0NxRSxXQUFXLENBQUMsR0FBR3JELElBQUk0QixZQUFZLENBQUNDLFNBQVMsQ0FDbEhMLFFBQVFFLFdBQVcsQ0FBQ3lCLDhCQUE4QixDQUFDLElBQUk7SUFFN0Q7SUFDQSxJQUFJakIsTUFBTW9CLE9BQU8sSUFBSTlCLFFBQVFFLFdBQVcsQ0FBQzRCLE9BQU8sRUFBRTVCLFlBQVk0QixPQUFPLEdBQUc5QixRQUFRRSxXQUFXLENBQUM0QixPQUFPO0lBQ25HLElBQUlwQixNQUFNMUIsSUFBSSxJQUFJZ0IsUUFBUUUsV0FBVyxDQUFDbEIsSUFBSSxFQUFFO1FBQzFDa0IsWUFBWWxCLElBQUksR0FBRztZQUNqQm5CLE1BQU1tQyxRQUFRRSxXQUFXLENBQUNsQixJQUFJLENBQUNuQixJQUFJO1lBQ25Da0UsZUFBZS9CLFFBQVFFLFdBQVcsQ0FBQ2xCLElBQUksQ0FBQ2dELGNBQWM7WUFDdERDLFVBQVVqQyxRQUFRRSxXQUFXLENBQUNsQixJQUFJLENBQUNrRCxTQUFTO1lBQzVDQyxZQUFZbkMsUUFBUUUsV0FBVyxDQUFDbEIsSUFBSSxDQUFDbUQsVUFBVSxFQUFFQyxJQUFJLENBQUNDLFlBQWM3RCxJQUFJNEIsWUFBWSxDQUFDaUMsU0FBUyxDQUFDN0QsS0FBSzZEO1lBQ3BHQyxRQUFRdEMsUUFBUUUsV0FBVyxDQUFDbEIsSUFBSSxDQUFDc0QsTUFBTTtZQUN2Q3ZELElBQUlpQixRQUFRRSxXQUFXLENBQUNsQixJQUFJLENBQUNELEVBQUUsR0FBR1AsSUFBSTRCLFlBQVksQ0FBQ0MsU0FBUyxDQUFDTCxRQUFRRSxXQUFXLENBQUNsQixJQUFJLENBQUNELEVBQUUsSUFBSVk7WUFDNUY0QyxNQUFNdkMsUUFBUUUsV0FBVyxDQUFDbEIsSUFBSSxDQUFDdUQsSUFBSTtZQUNuQ0MsVUFBVXhDLFFBQVFFLFdBQVcsQ0FBQ2xCLElBQUksQ0FBQ3dELFFBQVEsR0FBR0MsaUNBQWlDakUsS0FBS3dCLFFBQVFFLFdBQVcsQ0FBQ2xCLElBQUksQ0FBQ3dELFFBQVEsRUFBRXZDLFdBQVdOO1lBQ2xJL0IsU0FBU29DLFFBQVFFLFdBQVcsQ0FBQ2xCLElBQUksQ0FBQ3BCLE9BQU8sRUFBRXdFLElBQUksQ0FBQ00sTUFBUWxFLElBQUk0QixZQUFZLENBQUN1QyxzQkFBc0IsQ0FBQ25FLEtBQUtrRTtZQUNyR0UsVUFBVTVDLFFBQVFFLFdBQVcsQ0FBQ2xCLElBQUksQ0FBQzZELFNBQVMsR0FBR3JFLElBQUk0QixZQUFZLENBQUNDLFNBQVMsQ0FBQ0wsUUFBUUUsV0FBVyxDQUFDbEIsSUFBSSxDQUFDNkQsU0FBUyxJQUFJbEQ7UUFFbEg7SUFDRjtJQUVBLE9BQU9uQixJQUFJNEIsWUFBWSxDQUFDMEMsV0FBVyxDQUFDNUMsV0FBVyxDQUFDMUIsS0FBS3dCLFNBQVNFO0FBQ2hFO0FBRUEsT0FBTyxTQUFTNkMsK0JBQStCdkUsR0FBUSxFQUFFd0UsTUFBb0M7SUFDM0YsTUFBTU4sTUFBTTtRQUNWSCxNQUFNUyxPQUFPVCxJQUFJO1FBQ2pCMUUsTUFBTW1GLE9BQU9uRixJQUFJO1FBQ2pCb0YsT0FBT0QsT0FBT0MsS0FBSztRQUNuQnJGLFNBQVNvRixPQUFPcEYsT0FBTztRQUN2QnNGLFNBQVNGLE9BQU9FLE9BQU87SUFDekI7SUFFQSxPQUFPMUUsSUFBSTRCLFlBQVksQ0FBQzBDLFdBQVcsQ0FBQ0gsc0JBQXNCLENBQUNuRSxLQUFLd0UsUUFBUU47QUFDMUU7QUFFQSxPQUFPLFNBQVNELGlDQUFpQ2pFLEdBQVEsRUFBRWdFLFFBQXdDLEVBQUV2QyxPQUFnQjtJQUNuSCxNQUFNa0QsY0FBdUMsQ0FBQztJQUU5QyxJQUFJWCxTQUFTWSxRQUFRLEVBQUU7UUFDckJELFlBQVlDLFFBQVEsR0FBRyxJQUFJN0YsV0FDekJpRCxPQUFPNkMsT0FBTyxDQUFDYixTQUFTWSxRQUFRLEVBQUVoQixHQUFHLENBQUMsQ0FBQyxDQUFDckQsSUFBSWtFLE1BQU07WUFDaEQsTUFBTTNCLFVBQW1COUMsSUFBSTRCLFlBQVksQ0FBQ2tCLE9BQU8sQ0FBQzlDLEtBQUt5RTtZQUN2RCxPQUFPO2dCQUFDM0IsUUFBUXZDLEVBQUU7Z0JBQUV1QzthQUFRO1FBQzlCO0lBRUo7SUFFQSxJQUFJa0IsU0FBU2MsS0FBSyxFQUFFO1FBQ2xCSCxZQUFZRyxLQUFLLEdBQUcsSUFBSS9GLFdBQ3RCaUQsT0FBTzZDLE9BQU8sQ0FBQ2IsU0FBU2MsS0FBSyxFQUFFbEIsR0FBRyxDQUFDLENBQUMsQ0FBQ3JELElBQUlrRSxNQUFNO1lBQzdDLE1BQU0zQyxPQUFPOUIsSUFBSTRCLFlBQVksQ0FBQ0UsSUFBSSxDQUFDOUIsS0FBS3lFO1lBQ3hDLE9BQU87Z0JBQUMzQyxLQUFLdkIsRUFBRTtnQkFBRXVCO2FBQUs7UUFDeEI7SUFFSjtJQUVBLElBQUlMLFdBQVd1QyxTQUFTZSxPQUFPLEVBQUU7UUFDL0JKLFlBQVlJLE9BQU8sR0FBRyxJQUFJaEcsV0FDeEJpRCxPQUFPNkMsT0FBTyxDQUFDYixTQUFTZSxPQUFPLEVBQUVuQixHQUFHLENBQUMsQ0FBQyxDQUFDckQsSUFBSWtFLE1BQU07WUFDL0MsTUFBTTFDLFNBQWlCL0IsSUFBSTRCLFlBQVksQ0FBQ0csTUFBTSxDQUFDL0IsS0FBS3lFLE9BQU9oRCxTQUFTekIsSUFBSTRCLFlBQVksQ0FBQ0MsU0FBUyxDQUFDdEI7WUFDL0YsT0FBTztnQkFBQ3dCLE9BQU94QixFQUFFO2dCQUFFd0I7YUFBTztRQUM1QjtJQUVKO0lBRUEsSUFBSU4sV0FBV3VDLFNBQVNnQixLQUFLLEVBQUU7UUFDN0JMLFlBQVlLLEtBQUssR0FBRyxJQUFJakcsV0FDdEJpRCxPQUFPNkMsT0FBTyxDQUFDYixTQUFTZ0IsS0FBSyxFQUFFcEIsR0FBRyxDQUFDLENBQUMsQ0FBQ3JELElBQUlrRSxNQUFNO1lBQzdDLE1BQU1RLE9BQU9qRixJQUFJNEIsWUFBWSxDQUFDcUQsSUFBSSxDQUFDakYsS0FBSztnQkFBRWlGLE1BQU1SO2dCQUFPaEQ7WUFBUTtZQUMvRCxPQUFPO2dCQUFDd0QsS0FBSzFFLEVBQUU7Z0JBQUUwRTthQUFLO1FBQ3hCO0lBRUo7SUFFQSxJQUFJakIsU0FBU2tCLFFBQVEsRUFBRTtRQUNyQlAsWUFBWU8sUUFBUSxHQUFHLElBQUluRyxXQUN6QmlELE9BQU82QyxPQUFPLENBQUNiLFNBQVNrQixRQUFRLEVBQUV0QixHQUFHLENBQUMsQ0FBQyxDQUFDdUIsS0FBS1YsTUFBTTtZQUNqRCxNQUFNbEUsS0FBS1AsSUFBSTRCLFlBQVksQ0FBQ0MsU0FBUyxDQUFDc0Q7WUFDdEMsTUFBTXBDLFVBQVUwQjtZQU1oQixPQUFPO2dCQUNMbEU7Z0JBQ0E7b0JBQ0VBO29CQUNBd0QsTUFBTWhCLFFBQVFnQixJQUFJO29CQUNsQjFFLE1BQU0wRCxRQUFRMUQsSUFBSTtvQkFDbEIrRixhQUFhcEYsSUFBSTRCLFlBQVksQ0FBQ0MsU0FBUyxDQUFDa0IsUUFBUXFDLFdBQVc7Z0JBQzdEO2FBQ0Q7UUFDSDtJQUVKO0lBRUEsSUFBSXBCLFNBQVNxQixXQUFXLEVBQUU7UUFDeEJWLFlBQVlVLFdBQVcsR0FBRyxJQUFJdEcsV0FDNUJpRCxPQUFPNkMsT0FBTyxDQUFDYixTQUFTcUIsV0FBVyxFQUFFekIsR0FBRyxDQUFDLENBQUMsQ0FBQ3VCLEtBQUtWLE1BQU07WUFDcEQsTUFBTWxFLEtBQUtQLElBQUk0QixZQUFZLENBQUNDLFNBQVMsQ0FBQ3NEO1lBQ3RDLE9BQU87Z0JBQUM1RTtnQkFBSVAsSUFBSTRCLFlBQVksQ0FBQzBELFVBQVUsQ0FBQ3RGLEtBQUt5RTthQUFPO1FBQ3REO0lBRUo7SUFFQSxPQUFPRTtBQUNUIn0=
@@ -2,6 +2,7 @@ import { isInviteWithMetadata } from '../index.js';
2
2
  export function transformInvite(bot, payload) {
3
3
  const props = bot.transformers.desiredProperties.invite;
4
4
  const invite = {};
5
+ if (props.type && 'type' in payload.invite) invite.type = payload.invite.type;
5
6
  if (props.code && payload.invite.code) invite.code = payload.invite.code;
6
7
  if (props.createdAt && payload.invite.created_at) invite.createdAt = Date.parse(payload.invite.created_at);
7
8
  if (props.inviter && payload.invite.inviter) invite.inviter = bot.transformers.user(bot, payload.invite.inviter);
@@ -37,4 +38,4 @@ export function transformInvite(bot, payload) {
37
38
  return bot.transformers.customizers.invite(bot, payload.invite, invite);
38
39
  }
39
40
 
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvaW52aXRlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRGlzY29yZEFwcGxpY2F0aW9uLCBEaXNjb3JkSW52aXRlQ3JlYXRlLCBEaXNjb3JkSW52aXRlTWV0YWRhdGEgfSBmcm9tICdAZGlzY29yZGVuby90eXBlcydcbmltcG9ydCB7IGlzSW52aXRlV2l0aE1ldGFkYXRhLCB0eXBlIEFwcGxpY2F0aW9uLCB0eXBlIEJvdCwgdHlwZSBTY2hlZHVsZWRFdmVudCwgdHlwZSBVc2VyIH0gZnJvbSAnLi4vaW5kZXguanMnXG5pbXBvcnQgdHlwZSB7IEludml0ZVN0YWdlSW5zdGFuY2UgfSBmcm9tICcuL3N0YWdlSW52aXRlSW5zdGFuY2UuanMnXG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1JbnZpdGUoYm90OiBCb3QsIHBheWxvYWQ6IHsgaW52aXRlOiBEaXNjb3JkSW52aXRlQ3JlYXRlIHwgRGlzY29yZEludml0ZU1ldGFkYXRhOyBzaGFyZElkOiBudW1iZXIgfSk6IEludml0ZSB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5pbnZpdGVcbiAgY29uc3QgaW52aXRlID0ge30gYXMgSW52aXRlXG5cbiAgaWYgKHByb3BzLmNvZGUgJiYgcGF5bG9hZC5pbnZpdGUuY29kZSkgaW52aXRlLmNvZGUgPSBwYXlsb2FkLmludml0ZS5jb2RlXG4gIGlmIChwcm9wcy5jcmVhdGVkQXQgJiYgcGF5bG9hZC5pbnZpdGUuY3JlYXRlZF9hdCkgaW52aXRlLmNyZWF0ZWRBdCA9IERhdGUucGFyc2UocGF5bG9hZC5pbnZpdGUuY3JlYXRlZF9hdClcbiAgaWYgKHByb3BzLmludml0ZXIgJiYgcGF5bG9hZC5pbnZpdGUuaW52aXRlcikgaW52aXRlLmludml0ZXIgPSBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCBwYXlsb2FkLmludml0ZS5pbnZpdGVyKVxuICBpZiAocHJvcHMubWF4QWdlKSBpbnZpdGUubWF4QWdlID0gcGF5bG9hZC5pbnZpdGUubWF4X2FnZVxuICBpZiAocHJvcHMubWF4VXNlcykgaW52aXRlLm1heFVzZXMgPSBwYXlsb2FkLmludml0ZS5tYXhfdXNlc1xuICBpZiAocHJvcHMudGFyZ2V0VHlwZSAmJiBwYXlsb2FkLmludml0ZS50YXJnZXRfdHlwZSkgaW52aXRlLnRhcmdldFR5cGUgPSBwYXlsb2FkLmludml0ZS50YXJnZXRfdHlwZVxuICBpZiAocHJvcHMudGFyZ2V0VXNlciAmJiBwYXlsb2FkLmludml0ZS50YXJnZXRfdXNlcikgaW52aXRlLnRhcmdldFVzZXIgPSBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCBwYXlsb2FkLmludml0ZS50YXJnZXRfdXNlcilcbiAgaWYgKHByb3BzLnRhcmdldEFwcGxpY2F0aW9uICYmIHBheWxvYWQuaW52aXRlLnRhcmdldF9hcHBsaWNhdGlvbilcbiAgICBpbnZpdGUudGFyZ2V0QXBwbGljYXRpb24gPSBib3QudHJhbnNmb3JtZXJzLmFwcGxpY2F0aW9uKGJvdCwge1xuICAgICAgYXBwbGljYXRpb246IHBheWxvYWQuaW52aXRlLnRhcmdldF9hcHBsaWNhdGlvbiBhcyBEaXNjb3JkQXBwbGljYXRpb24sXG4gICAgICBzaGFyZElkOiBwYXlsb2FkLnNoYXJkSWQsXG4gICAgfSlcbiAgaWYgKHByb3BzLnRlbXBvcmFyeSAmJiBwYXlsb2FkLmludml0ZS50ZW1wb3JhcnkpIGludml0ZS50ZW1wb3JhcnkgPSBwYXlsb2FkLmludml0ZS50ZW1wb3JhcnlcbiAgaWYgKHByb3BzLnVzZXMgJiYgcGF5bG9hZC5pbnZpdGUudXNlcykgaW52aXRlLnVzZXMgPSBwYXlsb2FkLmludml0ZS51c2VzXG5cbiAgaWYgKGlzSW52aXRlV2l0aE1ldGFkYXRhKHBheWxvYWQuaW52aXRlKSkge1xuICAgIGlmIChwcm9wcy5jaGFubmVsSWQgJiYgcGF5bG9hZC5pbnZpdGUuY2hhbm5lbD8uaWQpIGludml0ZS5jaGFubmVsSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmludml0ZS5jaGFubmVsLmlkKVxuICAgIGlmIChwcm9wcy5ndWlsZElkICYmIHBheWxvYWQuaW52aXRlLmd1aWxkPy5pZCkgaW52aXRlLmd1aWxkSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmludml0ZS5ndWlsZC5pZClcbiAgICBpZiAocHJvcHMuYXBwcm94aW1hdGVNZW1iZXJDb3VudCAmJiBwYXlsb2FkLmludml0ZS5hcHByb3hpbWF0ZV9tZW1iZXJfY291bnQpXG4gICAgICBpbnZpdGUuYXBwcm94aW1hdGVNZW1iZXJDb3VudCA9IHBheWxvYWQuaW52aXRlLmFwcHJveGltYXRlX21lbWJlcl9jb3VudFxuICAgIGlmIChwcm9wcy5hcHByb3hpbWF0ZVByZXNlbmNlQ291bnQgJiYgcGF5bG9hZC5pbnZpdGUuYXBwcm94aW1hdGVfcHJlc2VuY2VfY291bnQgIT09IHVuZGVmaW5lZClcbiAgICAgIGludml0ZS5hcHByb3hpbWF0ZVByZXNlbmNlQ291bnQgPSBwYXlsb2FkLmludml0ZS5hcHByb3hpbWF0ZV9wcmVzZW5jZV9jb3VudFxuICAgIGlmIChwcm9wcy5ndWlsZFNjaGVkdWxlZEV2ZW50ICYmIHBheWxvYWQuaW52aXRlLmd1aWxkX3NjaGVkdWxlZF9ldmVudClcbiAgICAgIGludml0ZS5ndWlsZFNjaGVkdWxlZEV2ZW50ID0gYm90LnRyYW5zZm9ybWVycy5zY2hlZHVsZWRFdmVudChib3QsIHBheWxvYWQuaW52aXRlLmd1aWxkX3NjaGVkdWxlZF9ldmVudClcbiAgICBpZiAocHJvcHMuc3RhZ2VJbnN0YW5jZSAmJiBpbnZpdGUuZ3VpbGRJZCAmJiBwYXlsb2FkLmludml0ZS5zdGFnZV9pbnN0YW5jZSkge1xuICAgICAgaW52aXRlLnN0YWdlSW5zdGFuY2UgPSBib3QudHJhbnNmb3JtZXJzLmludml0ZVN0YWdlSW5zdGFuY2UoYm90LCB7XG4gICAgICAgIC4uLnBheWxvYWQuaW52aXRlLnN0YWdlX2luc3RhbmNlLFxuICAgICAgICBndWlsZElkOiBpbnZpdGUuZ3VpbGRJZCxcbiAgICAgIH0pXG4gICAgfVxuICAgIGlmIChwcm9wcy5leHBpcmVzQXQgJiYgcGF5bG9hZC5pbnZpdGUuZXhwaXJlc19hdCkge1xuICAgICAgaW52aXRlLmV4cGlyZXNBdCA9IERhdGUucGFyc2UocGF5bG9hZC5pbnZpdGUuZXhwaXJlc19hdClcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgaWYgKHByb3BzLmNoYW5uZWxJZCAmJiBwYXlsb2FkLmludml0ZS5jaGFubmVsX2lkKSBpbnZpdGUuY2hhbm5lbElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pbnZpdGUuY2hhbm5lbF9pZClcbiAgICBpZiAocHJvcHMuZ3VpbGRJZCAmJiBwYXlsb2FkLmludml0ZS5ndWlsZF9pZCkgaW52aXRlLmd1aWxkSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmludml0ZS5ndWlsZF9pZClcbiAgfVxuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLmludml0ZShib3QsIHBheWxvYWQuaW52aXRlLCBpbnZpdGUpXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW52aXRlIHtcbiAgLyoqIFRoZSBjaGFubmVsIHRoZSBpbnZpdGUgaXMgZm9yICovXG4gIGNoYW5uZWxJZDogYmlnaW50XG4gIC8qKiBUaGUgdW5pcXVlIGludml0ZSBjb2RlICovXG4gIGNvZGU6IHN0cmluZ1xuICAvKiogVGhlIHRpbWUgYXQgd2hpY2ggdGhlIGludml0ZSB3YXMgY3JlYXRlZCAqL1xuICBjcmVhdGVkQXQ6IG51bWJlclxuICAvKiogVGhlIGd1aWxkIG9mIHRoZSBpbnZpdGUgKi9cbiAgZ3VpbGRJZD86IGJpZ2ludFxuICAvKiogVGhlIHVzZXIgdGhhdCBjcmVhdGVkIHRoZSBpbnZpdGUgKi9cbiAgaW52aXRlcj86IFVzZXJcbiAgLyoqIEhvdyBsb25nIHRoZSBpbnZpdGUgaXMgdmFsaWQgZm9yIChpbiBzZWNvbmRzKSAqL1xuICBtYXhBZ2U6IG51bWJlclxuICAvKiogVGhlIG1heGltdW0gbnVtYmVyIG9mIHRpbWVzIHRoZSBpbnZpdGUgY2FuIGJlIHVzZWQgKi9cbiAgbWF4VXNlczogbnVtYmVyXG4gIC8qKiBUaGUgdHlwZSBvZiB0YXJnZXQgZm9yIHRoaXMgdm9pY2UgY2hhbm5lbCBpbnZpdGUgKi9cbiAgdGFyZ2V0VHlwZTogbnVtYmVyXG4gIC8qKiBUaGUgdGFyZ2V0IHVzZXIgZm9yIHRoaXMgaW52aXRlICovXG4gIHRhcmdldFVzZXI6IFVzZXJcbiAgLyoqIFRoZSBlbWJlZGRlZCBhcHBsaWNhdGlvbiB0byBvcGVuIGZvciB0aGlzIHZvaWNlIGNoYW5uZWwgZW1iZWRkZWQgYXBwbGljYXRpb24gaW52aXRlICovXG4gIHRhcmdldEFwcGxpY2F0aW9uPzogQXBwbGljYXRpb25cbiAgLyoqIFdoZXRoZXIgb3Igbm90IHRoZSBpbnZpdGUgaXMgdGVtcG9yYXJ5IChpbnZpdGVkIHVzZXJzIHdpbGwgYmUga2lja2VkIG9uIGRpc2Nvbm5lY3QgdW5sZXNzIHRoZXkncmUgYXNzaWduZWQgYSByb2xlKSAqL1xuICB0ZW1wb3Jhcnk6IGJvb2xlYW5cbiAgLyoqIEhvdyBtYW55IHRpbWVzIHRoZSBpbnZpdGUgaGFzIGJlZW4gdXNlZCAoYWx3YXlzIHdpbGwgYmUgMCkgKi9cbiAgdXNlczogbnVtYmVyXG4gIC8qKiBBcHByb3hpbWF0ZSBjb3VudCBvZiBvbmxpbmUgbWVtYmVycyAob25seSBwcmVzZW50IHdoZW4gdGFyZ2V0X3VzZXIgaXMgc2V0KSAqL1xuICBhcHByb3hpbWF0ZU1lbWJlckNvdW50OiBudW1iZXJcbiAgLyoqIFN0YWdlIGluc3RhbmNlIGRhdGEgaWYgdGhlcmUgaXMgYSBwdWJsaWMgU3RhZ2UgaW5zdGFuY2UgaW4gdGhlIFN0YWdlIGNoYW5uZWwgdGhpcyBpbnZpdGUgaXMgZm9yICovXG4gIHN0YWdlSW5zdGFuY2U/OiBJbnZpdGVTdGFnZUluc3RhbmNlXG4gIC8qKiBUaGUgZXhwaXJhdGlvbiBkYXRlIG9mIHRoaXMgaW52aXRlLCByZXR1cm5lZCBmcm9tIHRoZSBHRVQgL2ludml0ZXMvY29kZSBlbmRwb2ludCB3aGVuIHdpdGhfZXhwaXJhdGlvbiBpcyB0cnVlICovXG4gIGV4cGlyZXNBdD86IG51bWJlclxuICAvKiogZ3VpbGQgc2NoZWR1bGVkIGV2ZW50IGRhdGEgKi9cbiAgZ3VpbGRTY2hlZHVsZWRFdmVudD86IFNjaGVkdWxlZEV2ZW50XG4gIC8qKiBBcHByb3hpbWF0ZSBjb3VudCBvZiBvbmxpbmUgbWVtYmVycyAob25seSBwcmVzZW50IHdoZW4gdGFyZ2V0X3VzZXIgaXMgc2V0KSAqL1xuICBhcHByb3hpbWF0ZVByZXNlbmNlQ291bnQ/OiBudW1iZXJcbn1cbiJdLCJuYW1lcyI6WyJpc0ludml0ZVdpdGhNZXRhZGF0YSIsInRyYW5zZm9ybUludml0ZSIsImJvdCIsInBheWxvYWQiLCJwcm9wcyIsInRyYW5zZm9ybWVycyIsImRlc2lyZWRQcm9wZXJ0aWVzIiwiaW52aXRlIiwiY29kZSIsImNyZWF0ZWRBdCIsImNyZWF0ZWRfYXQiLCJEYXRlIiwicGFyc2UiLCJpbnZpdGVyIiwidXNlciIsIm1heEFnZSIsIm1heF9hZ2UiLCJtYXhVc2VzIiwibWF4X3VzZXMiLCJ0YXJnZXRUeXBlIiwidGFyZ2V0X3R5cGUiLCJ0YXJnZXRVc2VyIiwidGFyZ2V0X3VzZXIiLCJ0YXJnZXRBcHBsaWNhdGlvbiIsInRhcmdldF9hcHBsaWNhdGlvbiIsImFwcGxpY2F0aW9uIiwic2hhcmRJZCIsInRlbXBvcmFyeSIsInVzZXMiLCJjaGFubmVsSWQiLCJjaGFubmVsIiwiaWQiLCJzbm93Zmxha2UiLCJndWlsZElkIiwiZ3VpbGQiLCJhcHByb3hpbWF0ZU1lbWJlckNvdW50IiwiYXBwcm94aW1hdGVfbWVtYmVyX2NvdW50IiwiYXBwcm94aW1hdGVQcmVzZW5jZUNvdW50IiwiYXBwcm94aW1hdGVfcHJlc2VuY2VfY291bnQiLCJ1bmRlZmluZWQiLCJndWlsZFNjaGVkdWxlZEV2ZW50IiwiZ3VpbGRfc2NoZWR1bGVkX2V2ZW50Iiwic2NoZWR1bGVkRXZlbnQiLCJzdGFnZUluc3RhbmNlIiwic3RhZ2VfaW5zdGFuY2UiLCJpbnZpdGVTdGFnZUluc3RhbmNlIiwiZXhwaXJlc0F0IiwiZXhwaXJlc19hdCIsImNoYW5uZWxfaWQiLCJndWlsZF9pZCIsImN1c3RvbWl6ZXJzIl0sIm1hcHBpbmdzIjoiQUFDQSxTQUFTQSxvQkFBb0IsUUFBb0UsY0FBYTtBQUc5RyxPQUFPLFNBQVNDLGdCQUFnQkMsR0FBUSxFQUFFQyxPQUFpRjtJQUN6SCxNQUFNQyxRQUFRRixJQUFJRyxZQUFZLENBQUNDLGlCQUFpQixDQUFDQyxNQUFNO0lBQ3ZELE1BQU1BLFNBQVMsQ0FBQztJQUVoQixJQUFJSCxNQUFNSSxJQUFJLElBQUlMLFFBQVFJLE1BQU0sQ0FBQ0MsSUFBSSxFQUFFRCxPQUFPQyxJQUFJLEdBQUdMLFFBQVFJLE1BQU0sQ0FBQ0MsSUFBSTtJQUN4RSxJQUFJSixNQUFNSyxTQUFTLElBQUlOLFFBQVFJLE1BQU0sQ0FBQ0csVUFBVSxFQUFFSCxPQUFPRSxTQUFTLEdBQUdFLEtBQUtDLEtBQUssQ0FBQ1QsUUFBUUksTUFBTSxDQUFDRyxVQUFVO0lBQ3pHLElBQUlOLE1BQU1TLE9BQU8sSUFBSVYsUUFBUUksTUFBTSxDQUFDTSxPQUFPLEVBQUVOLE9BQU9NLE9BQU8sR0FBR1gsSUFBSUcsWUFBWSxDQUFDUyxJQUFJLENBQUNaLEtBQUtDLFFBQVFJLE1BQU0sQ0FBQ00sT0FBTztJQUMvRyxJQUFJVCxNQUFNVyxNQUFNLEVBQUVSLE9BQU9RLE1BQU0sR0FBR1osUUFBUUksTUFBTSxDQUFDUyxPQUFPO0lBQ3hELElBQUlaLE1BQU1hLE9BQU8sRUFBRVYsT0FBT1UsT0FBTyxHQUFHZCxRQUFRSSxNQUFNLENBQUNXLFFBQVE7SUFDM0QsSUFBSWQsTUFBTWUsVUFBVSxJQUFJaEIsUUFBUUksTUFBTSxDQUFDYSxXQUFXLEVBQUViLE9BQU9ZLFVBQVUsR0FBR2hCLFFBQVFJLE1BQU0sQ0FBQ2EsV0FBVztJQUNsRyxJQUFJaEIsTUFBTWlC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
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvaW52aXRlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRGlzY29yZEFwcGxpY2F0aW9uLCBEaXNjb3JkSW52aXRlQ3JlYXRlLCBEaXNjb3JkSW52aXRlTWV0YWRhdGEsIERpc2NvcmRJbnZpdGVUeXBlIH0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnXG5pbXBvcnQgeyBpc0ludml0ZVdpdGhNZXRhZGF0YSwgdHlwZSBBcHBsaWNhdGlvbiwgdHlwZSBCb3QsIHR5cGUgU2NoZWR1bGVkRXZlbnQsIHR5cGUgVXNlciB9IGZyb20gJy4uL2luZGV4LmpzJ1xuaW1wb3J0IHR5cGUgeyBJbnZpdGVTdGFnZUluc3RhbmNlIH0gZnJvbSAnLi9zdGFnZUludml0ZUluc3RhbmNlLmpzJ1xuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtSW52aXRlKGJvdDogQm90LCBwYXlsb2FkOiB7IGludml0ZTogRGlzY29yZEludml0ZUNyZWF0ZSB8IERpc2NvcmRJbnZpdGVNZXRhZGF0YTsgc2hhcmRJZDogbnVtYmVyIH0pOiBJbnZpdGUge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuaW52aXRlXG4gIGNvbnN0IGludml0ZSA9IHt9IGFzIEludml0ZVxuXG4gIGlmIChwcm9wcy50eXBlICYmICd0eXBlJyBpbiBwYXlsb2FkLmludml0ZSkgaW52aXRlLnR5cGUgPSBwYXlsb2FkLmludml0ZS50eXBlXG4gIGlmIChwcm9wcy5jb2RlICYmIHBheWxvYWQuaW52aXRlLmNvZGUpIGludml0ZS5jb2RlID0gcGF5bG9hZC5pbnZpdGUuY29kZVxuICBpZiAocHJvcHMuY3JlYXRlZEF0ICYmIHBheWxvYWQuaW52aXRlLmNyZWF0ZWRfYXQpIGludml0ZS5jcmVhdGVkQXQgPSBEYXRlLnBhcnNlKHBheWxvYWQuaW52aXRlLmNyZWF0ZWRfYXQpXG4gIGlmIChwcm9wcy5pbnZpdGVyICYmIHBheWxvYWQuaW52aXRlLmludml0ZXIpIGludml0ZS5pbnZpdGVyID0gYm90LnRyYW5zZm9ybWVycy51c2VyKGJvdCwgcGF5bG9hZC5pbnZpdGUuaW52aXRlcilcbiAgaWYgKHByb3BzLm1heEFnZSkgaW52aXRlLm1heEFnZSA9IHBheWxvYWQuaW52aXRlLm1heF9hZ2VcbiAgaWYgKHByb3BzLm1heFVzZXMpIGludml0ZS5tYXhVc2VzID0gcGF5bG9hZC5pbnZpdGUubWF4X3VzZXNcbiAgaWYgKHByb3BzLnRhcmdldFR5cGUgJiYgcGF5bG9hZC5pbnZpdGUudGFyZ2V0X3R5cGUpIGludml0ZS50YXJnZXRUeXBlID0gcGF5bG9hZC5pbnZpdGUudGFyZ2V0X3R5cGVcbiAgaWYgKHByb3BzLnRhcmdldFVzZXIgJiYgcGF5bG9hZC5pbnZpdGUudGFyZ2V0X3VzZXIpIGludml0ZS50YXJnZXRVc2VyID0gYm90LnRyYW5zZm9ybWVycy51c2VyKGJvdCwgcGF5bG9hZC5pbnZpdGUudGFyZ2V0X3VzZXIpXG4gIGlmIChwcm9wcy50YXJnZXRBcHBsaWNhdGlvbiAmJiBwYXlsb2FkLmludml0ZS50YXJnZXRfYXBwbGljYXRpb24pXG4gICAgaW52aXRlLnRhcmdldEFwcGxpY2F0aW9uID0gYm90LnRyYW5zZm9ybWVycy5hcHBsaWNhdGlvbihib3QsIHtcbiAgICAgIGFwcGxpY2F0aW9uOiBwYXlsb2FkLmludml0ZS50YXJnZXRfYXBwbGljYXRpb24gYXMgRGlzY29yZEFwcGxpY2F0aW9uLFxuICAgICAgc2hhcmRJZDogcGF5bG9hZC5zaGFyZElkLFxuICAgIH0pXG4gIGlmIChwcm9wcy50ZW1wb3JhcnkgJiYgcGF5bG9hZC5pbnZpdGUudGVtcG9yYXJ5KSBpbnZpdGUudGVtcG9yYXJ5ID0gcGF5bG9hZC5pbnZpdGUudGVtcG9yYXJ5XG4gIGlmIChwcm9wcy51c2VzICYmIHBheWxvYWQuaW52aXRlLnVzZXMpIGludml0ZS51c2VzID0gcGF5bG9hZC5pbnZpdGUudXNlc1xuXG4gIGlmIChpc0ludml0ZVdpdGhNZXRhZGF0YShwYXlsb2FkLmludml0ZSkpIHtcbiAgICBpZiAocHJvcHMuY2hhbm5lbElkICYmIHBheWxvYWQuaW52aXRlLmNoYW5uZWw/LmlkKSBpbnZpdGUuY2hhbm5lbElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pbnZpdGUuY2hhbm5lbC5pZClcbiAgICBpZiAocHJvcHMuZ3VpbGRJZCAmJiBwYXlsb2FkLmludml0ZS5ndWlsZD8uaWQpIGludml0ZS5ndWlsZElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pbnZpdGUuZ3VpbGQuaWQpXG4gICAgaWYgKHByb3BzLmFwcHJveGltYXRlTWVtYmVyQ291bnQgJiYgcGF5bG9hZC5pbnZpdGUuYXBwcm94aW1hdGVfbWVtYmVyX2NvdW50KVxuICAgICAgaW52aXRlLmFwcHJveGltYXRlTWVtYmVyQ291bnQgPSBwYXlsb2FkLmludml0ZS5hcHByb3hpbWF0ZV9tZW1iZXJfY291bnRcbiAgICBpZiAocHJvcHMuYXBwcm94aW1hdGVQcmVzZW5jZUNvdW50ICYmIHBheWxvYWQuaW52aXRlLmFwcHJveGltYXRlX3ByZXNlbmNlX2NvdW50ICE9PSB1bmRlZmluZWQpXG4gICAgICBpbnZpdGUuYXBwcm94aW1hdGVQcmVzZW5jZUNvdW50ID0gcGF5bG9hZC5pbnZpdGUuYXBwcm94aW1hdGVfcHJlc2VuY2VfY291bnRcbiAgICBpZiAocHJvcHMuZ3VpbGRTY2hlZHVsZWRFdmVudCAmJiBwYXlsb2FkLmludml0ZS5ndWlsZF9zY2hlZHVsZWRfZXZlbnQpXG4gICAgICBpbnZpdGUuZ3VpbGRTY2hlZHVsZWRFdmVudCA9IGJvdC50cmFuc2Zvcm1lcnMuc2NoZWR1bGVkRXZlbnQoYm90LCBwYXlsb2FkLmludml0ZS5ndWlsZF9zY2hlZHVsZWRfZXZlbnQpXG4gICAgaWYgKHByb3BzLnN0YWdlSW5zdGFuY2UgJiYgaW52aXRlLmd1aWxkSWQgJiYgcGF5bG9hZC5pbnZpdGUuc3RhZ2VfaW5zdGFuY2UpIHtcbiAgICAgIGludml0ZS5zdGFnZUluc3RhbmNlID0gYm90LnRyYW5zZm9ybWVycy5pbnZpdGVTdGFnZUluc3RhbmNlKGJvdCwge1xuICAgICAgICAuLi5wYXlsb2FkLmludml0ZS5zdGFnZV9pbnN0YW5jZSxcbiAgICAgICAgZ3VpbGRJZDogaW52aXRlLmd1aWxkSWQsXG4gICAgICB9KVxuICAgIH1cbiAgICBpZiAocHJvcHMuZXhwaXJlc0F0ICYmIHBheWxvYWQuaW52aXRlLmV4cGlyZXNfYXQpIHtcbiAgICAgIGludml0ZS5leHBpcmVzQXQgPSBEYXRlLnBhcnNlKHBheWxvYWQuaW52aXRlLmV4cGlyZXNfYXQpXG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGlmIChwcm9wcy5jaGFubmVsSWQgJiYgcGF5bG9hZC5pbnZpdGUuY2hhbm5lbF9pZCkgaW52aXRlLmNoYW5uZWxJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaW52aXRlLmNoYW5uZWxfaWQpXG4gICAgaWYgKHByb3BzLmd1aWxkSWQgJiYgcGF5bG9hZC5pbnZpdGUuZ3VpbGRfaWQpIGludml0ZS5ndWlsZElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pbnZpdGUuZ3VpbGRfaWQpXG4gIH1cblxuICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jdXN0b21pemVycy5pbnZpdGUoYm90LCBwYXlsb2FkLmludml0ZSwgaW52aXRlKVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEludml0ZSB7XG4gIC8qKiBUaGUgdHlwZSBvZiBpbnZpdGUgKi9cbiAgdHlwZTogRGlzY29yZEludml0ZVR5cGVcbiAgLyoqIFRoZSBjaGFubmVsIHRoZSBpbnZpdGUgaXMgZm9yICovXG4gIGNoYW5uZWxJZDogYmlnaW50XG4gIC8qKiBUaGUgdW5pcXVlIGludml0ZSBjb2RlICovXG4gIGNvZGU6IHN0cmluZ1xuICAvKiogVGhlIHRpbWUgYXQgd2hpY2ggdGhlIGludml0ZSB3YXMgY3JlYXRlZCAqL1xuICBjcmVhdGVkQXQ6IG51bWJlclxuICAvKiogVGhlIGd1aWxkIG9mIHRoZSBpbnZpdGUgKi9cbiAgZ3VpbGRJZD86IGJpZ2ludFxuICAvKiogVGhlIHVzZXIgdGhhdCBjcmVhdGVkIHRoZSBpbnZpdGUgKi9cbiAgaW52aXRlcj86IFVzZXJcbiAgLyoqIEhvdyBsb25nIHRoZSBpbnZpdGUgaXMgdmFsaWQgZm9yIChpbiBzZWNvbmRzKSAqL1xuICBtYXhBZ2U6IG51bWJlclxuICAvKiogVGhlIG1heGltdW0gbnVtYmVyIG9mIHRpbWVzIHRoZSBpbnZpdGUgY2FuIGJlIHVzZWQgKi9cbiAgbWF4VXNlczogbnVtYmVyXG4gIC8qKiBUaGUgdHlwZSBvZiB0YXJnZXQgZm9yIHRoaXMgdm9pY2UgY2hhbm5lbCBpbnZpdGUgKi9cbiAgdGFyZ2V0VHlwZTogbnVtYmVyXG4gIC8qKiBUaGUgdGFyZ2V0IHVzZXIgZm9yIHRoaXMgaW52aXRlICovXG4gIHRhcmdldFVzZXI6IFVzZXJcbiAgLyoqIFRoZSBlbWJlZGRlZCBhcHBsaWNhdGlvbiB0byBvcGVuIGZvciB0aGlzIHZvaWNlIGNoYW5uZWwgZW1iZWRkZWQgYXBwbGljYXRpb24gaW52aXRlICovXG4gIHRhcmdldEFwcGxpY2F0aW9uPzogQXBwbGljYXRpb25cbiAgLyoqIFdoZXRoZXIgb3Igbm90IHRoZSBpbnZpdGUgaXMgdGVtcG9yYXJ5IChpbnZpdGVkIHVzZXJzIHdpbGwgYmUga2lja2VkIG9uIGRpc2Nvbm5lY3QgdW5sZXNzIHRoZXkncmUgYXNzaWduZWQgYSByb2xlKSAqL1xuICB0ZW1wb3Jhcnk6IGJvb2xlYW5cbiAgLyoqIEhvdyBtYW55IHRpbWVzIHRoZSBpbnZpdGUgaGFzIGJlZW4gdXNlZCAoYWx3YXlzIHdpbGwgYmUgMCkgKi9cbiAgdXNlczogbnVtYmVyXG4gIC8qKiBBcHByb3hpbWF0ZSBjb3VudCBvZiBvbmxpbmUgbWVtYmVycyAob25seSBwcmVzZW50IHdoZW4gdGFyZ2V0X3VzZXIgaXMgc2V0KSAqL1xuICBhcHByb3hpbWF0ZU1lbWJlckNvdW50OiBudW1iZXJcbiAgLyoqIFN0YWdlIGluc3RhbmNlIGRhdGEgaWYgdGhlcmUgaXMgYSBwdWJsaWMgU3RhZ2UgaW5zdGFuY2UgaW4gdGhlIFN0YWdlIGNoYW5uZWwgdGhpcyBpbnZpdGUgaXMgZm9yICovXG4gIHN0YWdlSW5zdGFuY2U/OiBJbnZpdGVTdGFnZUluc3RhbmNlXG4gIC8qKiBUaGUgZXhwaXJhdGlvbiBkYXRlIG9mIHRoaXMgaW52aXRlLCByZXR1cm5lZCBmcm9tIHRoZSBHRVQgL2ludml0ZXMvY29kZSBlbmRwb2ludCB3aGVuIHdpdGhfZXhwaXJhdGlvbiBpcyB0cnVlICovXG4gIGV4cGlyZXNBdD86IG51bWJlclxuICAvKiogZ3VpbGQgc2NoZWR1bGVkIGV2ZW50IGRhdGEgKi9cbiAgZ3VpbGRTY2hlZHVsZWRFdmVudD86IFNjaGVkdWxlZEV2ZW50XG4gIC8qKiBBcHByb3hpbWF0ZSBjb3VudCBvZiBvbmxpbmUgbWVtYmVycyAob25seSBwcmVzZW50IHdoZW4gdGFyZ2V0X3VzZXIgaXMgc2V0KSAqL1xuICBhcHByb3hpbWF0ZVByZXNlbmNlQ291bnQ/OiBudW1iZXJcbn1cbiJdLCJuYW1lcyI6WyJpc0ludml0ZVdpdGhNZXRhZGF0YSIsInRyYW5zZm9ybUludml0ZSIsImJvdCIsInBheWxvYWQiLCJwcm9wcyIsInRyYW5zZm9ybWVycyIsImRlc2lyZWRQcm9wZXJ0aWVzIiwiaW52aXRlIiwidHlwZSIsImNvZGUiLCJjcmVhdGVkQXQiLCJjcmVhdGVkX2F0IiwiRGF0ZSIsInBhcnNlIiwiaW52aXRlciIsInVzZXIiLCJtYXhBZ2UiLCJtYXhfYWdlIiwibWF4VXNlcyIsIm1heF91c2VzIiwidGFyZ2V0VHlwZSIsInRhcmdldF90eXBlIiwidGFyZ2V0VXNlciIsInRhcmdldF91c2VyIiwidGFyZ2V0QXBwbGljYXRpb24iLCJ0YXJnZXRfYXBwbGljYXRpb24iLCJhcHBsaWNhdGlvbiIsInNoYXJkSWQiLCJ0ZW1wb3JhcnkiLCJ1c2VzIiwiY2hhbm5lbElkIiwiY2hhbm5lbCIsImlkIiwic25vd2ZsYWtlIiwiZ3VpbGRJZCIsImd1aWxkIiwiYXBwcm94aW1hdGVNZW1iZXJDb3VudCIsImFwcHJveGltYXRlX21lbWJlcl9jb3VudCIsImFwcHJveGltYXRlUHJlc2VuY2VDb3VudCIsImFwcHJveGltYXRlX3ByZXNlbmNlX2NvdW50IiwidW5kZWZpbmVkIiwiZ3VpbGRTY2hlZHVsZWRFdmVudCIsImd1aWxkX3NjaGVkdWxlZF9ldmVudCIsInNjaGVkdWxlZEV2ZW50Iiwic3RhZ2VJbnN0YW5jZSIsInN0YWdlX2luc3RhbmNlIiwiaW52aXRlU3RhZ2VJbnN0YW5jZSIsImV4cGlyZXNBdCIsImV4cGlyZXNfYXQiLCJjaGFubmVsX2lkIiwiZ3VpbGRfaWQiLCJjdXN0b21pemVycyJdLCJtYXBwaW5ncyI6IkFBQ0EsU0FBU0Esb0JBQW9CLFFBQW9FLGNBQWE7QUFHOUcsT0FBTyxTQUFTQyxnQkFBZ0JDLEdBQVEsRUFBRUMsT0FBaUY7SUFDekgsTUFBTUMsUUFBUUYsSUFBSUcsWUFBWSxDQUFDQyxpQkFBaUIsQ0FBQ0MsTUFBTTtJQUN2RCxNQUFNQSxTQUFTLENBQUM7SUFFaEIsSUFBSUgsTUFBTUksSUFBSSxJQUFJLFVBQVVMLFFBQVFJLE1BQU0sRUFBRUEsT0FBT0MsSUFBSSxHQUFHTCxRQUFRSSxNQUFNLENBQUNDLElBQUk7SUFDN0UsSUFBSUosTUFBTUssSUFBSSxJQUFJTixRQUFRSSxNQUFNLENBQUNFLElBQUksRUFBRUYsT0FBT0UsSUFBSSxHQUFHTixRQUFRSSxNQUFNLENBQUNFLElBQUk7SUFDeEUsSUFBSUwsTUFBTU0sU0FBUyxJQUFJUCxRQUFRSSxNQUFNLENBQUNJLFVBQVUsRUFBRUosT0FBT0csU0FBUyxHQUFHRSxLQUFLQyxLQUFLLENBQUNWLFFBQVFJLE1BQU0sQ0FBQ0ksVUFBVTtJQUN6RyxJQUFJUCxNQUFNVSxPQUFPLElBQUlYLFFBQVFJLE1BQU0sQ0FBQ08sT0FBTyxFQUFFUCxPQUFPTyxPQUFPLEdBQUdaLElBQUlHLFlBQVksQ0FBQ1UsSUFBSSxDQUFDYixLQUFLQyxRQUFRSSxNQUFNLENBQUNPLE9BQU87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
@@ -1,6 +1,6 @@
1
1
  import { iconHashToBigInt } from '@discordeno/utils';
2
- import { MemberToggles } from './toggles/member.js';
3
2
  import { Permissions } from './toggles/Permissions.js';
3
+ import { MemberToggles } from './toggles/member.js';
4
4
  const baseMember = {
5
5
  get deaf () {
6
6
  return !!this.toggles?.has('deaf');
@@ -28,7 +28,8 @@ export function transformMember(bot, payload, guildId, userId) {
28
28
  if (props.deaf || props.mute || props.pending) {
29
29
  member.toggles = new MemberToggles(payload);
30
30
  }
31
+ if (props.avatarDecorationData && payload.avatar_decoration_data) member.avatarDecorationData = bot.transformers.avatarDecorationData(bot, payload.avatar_decoration_data);
31
32
  return bot.transformers.customizers.member(bot, payload, member);
32
33
  }
33
34
 
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvbWVtYmVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQmlnU3RyaW5nLCBEaXNjb3JkTWVtYmVyIH0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnXG5pbXBvcnQgeyBpY29uSGFzaFRvQmlnSW50IH0gZnJvbSAnQGRpc2NvcmRlbm8vdXRpbHMnXG5pbXBvcnQgdHlwZSB7IEJvdCB9IGZyb20gJy4uL2JvdC5qcydcbmltcG9ydCB7IE1lbWJlclRvZ2dsZXMgfSBmcm9tICcuL3RvZ2dsZXMvbWVtYmVyLmpzJ1xuaW1wb3J0IHsgUGVybWlzc2lvbnMgfSBmcm9tICcuL3RvZ2dsZXMvUGVybWlzc2lvbnMuanMnXG5pbXBvcnQgdHlwZSB7IFVzZXIgfSBmcm9tICcuL3VzZXIuanMnXG5cbmNvbnN0IGJhc2VNZW1iZXI6IFBhcnRpYWw8TWVtYmVyPiAmIEJhc2VNZW1iZXIgPSB7XG4gIGdldCBkZWFmKCkge1xuICAgIHJldHVybiAhIXRoaXMudG9nZ2xlcz8uaGFzKCdkZWFmJylcbiAgfSxcbiAgZ2V0IG11dGUoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5oYXMoJ211dGUnKVxuICB9LFxuICBnZXQgcGVuZGluZygpIHtcbiAgICByZXR1cm4gISF0aGlzLnRvZ2dsZXM/LmhhcygncGVuZGluZycpXG4gIH0sXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1NZW1iZXIoYm90OiBCb3QsIHBheWxvYWQ6IERpc2NvcmRNZW1iZXIsIGd1aWxkSWQ6IEJpZ1N0cmluZywgdXNlcklkOiBCaWdTdHJpbmcpOiBNZW1iZXIge1xuICBjb25zdCBtZW1iZXI6IE1lbWJlciA9IE9iamVjdC5jcmVhdGUoYmFzZU1lbWJlcilcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLm1lbWJlclxuXG4gIGlmIChwcm9wcy5pZCAmJiB1c2VySWQpIG1lbWJlci5pZCA9IHR5cGVvZiB1c2VySWQgPT09ICdzdHJpbmcnID8gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UodXNlcklkKSA6IHVzZXJJZFxuICBpZiAocHJvcHMuZ3VpbGRJZCAmJiBndWlsZElkKSBtZW1iZXIuZ3VpbGRJZCA9IHR5cGVvZiBndWlsZElkID09PSAnc3RyaW5nJyA/IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKGd1aWxkSWQpIDogZ3VpbGRJZFxuICBpZiAocHJvcHMudXNlciAmJiBwYXlsb2FkLnVzZXIpIG1lbWJlci51c2VyID0gYm90LnRyYW5zZm9ybWVycy51c2VyKGJvdCwgcGF5bG9hZC51c2VyKVxuICBpZiAocHJvcHMubmljayAmJiBwYXlsb2FkLm5pY2spIG1lbWJlci5uaWNrID0gcGF5bG9hZC5uaWNrXG4gIGlmIChwcm9wcy5yb2xlcyAmJiBwYXlsb2FkLnJvbGVzKSBtZW1iZXIucm9sZXMgPSBwYXlsb2FkLnJvbGVzLm1hcCgoaWQpID0+IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKGlkKSlcbiAgaWYgKHByb3BzLmpvaW5lZEF0ICYmIHBheWxvYWQuam9pbmVkX2F0KSBtZW1iZXIuam9pbmVkQXQgPSBEYXRlLnBhcnNlKHBheWxvYWQuam9pbmVkX2F0KVxuICBpZiAocHJvcHMucHJlbWl1bVNpbmNlICYmIHBheWxvYWQucHJlbWl1bV9zaW5jZSkgbWVtYmVyLnByZW1pdW1TaW5jZSA9IERhdGUucGFyc2UocGF5bG9hZC5wcmVtaXVtX3NpbmNlKVxuICBpZiAocHJvcHMuY29tbXVuaWNhdGlvbkRpc2FibGVkVW50aWwgJiYgcGF5bG9hZC5jb21tdW5pY2F0aW9uX2Rpc2FibGVkX3VudGlsKVxuICAgIG1lbWJlci5jb21tdW5pY2F0aW9uRGlzYWJsZWRVbnRpbCA9IERhdGUucGFyc2UocGF5bG9hZC5jb21tdW5pY2F0aW9uX2Rpc2FibGVkX3VudGlsKVxuICBpZiAocHJvcHMuYXZhdGFyICYmIHBheWxvYWQuYXZhdGFyKSBtZW1iZXIuYXZhdGFyID0gaWNvbkhhc2hUb0JpZ0ludChwYXlsb2FkLmF2YXRhcilcbiAgaWYgKHByb3BzLnBlcm1pc3Npb25zICYmIHBheWxvYWQucGVybWlzc2lvbnMpIG1lbWJlci5wZXJtaXNzaW9ucyA9IG5ldyBQZXJtaXNzaW9ucyhwYXlsb2FkLnBlcm1pc3Npb25zKVxuICBpZiAocHJvcHMuZGVhZiB8fCBwcm9wcy5tdXRlIHx8IHByb3BzLnBlbmRpbmcpIHtcbiAgICBtZW1iZXIudG9nZ2xlcyA9IG5ldyBNZW1iZXJUb2dnbGVzKHBheWxvYWQpXG4gIH1cblxuICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jdXN0b21pemVycy5tZW1iZXIoYm90LCBwYXlsb2FkLCBtZW1iZXIpXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmFzZU1lbWJlciB7XG4gIC8qKiBXaGV0aGVyIHRoZSB1c2VyIGlzIGRlYWZlbmVkIGluIHZvaWNlIGNoYW5uZWxzICovXG4gIGRlYWY/OiBib29sZWFuXG4gIC8qKiBXaGV0aGVyIHRoZSB1c2VyIGlzIG11dGVkIGluIHZvaWNlIGNoYW5uZWxzICovXG4gIG11dGU/OiBib29sZWFuXG4gIC8qKiBXaGV0aGVyIHRoZSB1c2VyIGhhcyBub3QgeWV0IHBhc3NlZCB0aGUgZ3VpbGQncyBNZW1iZXJzaGlwIFNjcmVlbmluZyByZXF1aXJlbWVudHMgKi9cbiAgcGVuZGluZz86IGJvb2xlYW5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBNZW1iZXIgZXh0ZW5kcyBCYXNlTWVtYmVyIHtcbiAgLyoqIFRoZSB1c2VyIGlkIG9mIHRoZSBtZW1iZXIuICovXG4gIGlkOiBiaWdpbnRcbiAgLyoqIFRoZSBjb21wcmVzc2VkIGZvcm0gb2YgYWxsIHRoZSBib29sZWFuIHZhbHVlcyBvbiB0aGlzIHVzZXIuICovXG4gIHRvZ2dsZXM/OiBNZW1iZXJUb2dnbGVzXG4gIC8qKiBUaGUgZ3VpbGQgaWQgd2hlcmUgdGhpcyBtZW1iZXIgaXMuICovXG4gIGd1aWxkSWQ6IGJpZ2ludFxuICAvKiogVGhlIHVzZXIgdGhpcyBndWlsZCBtZW1iZXIgcmVwcmVzZW50cyAqL1xuICB1c2VyPzogVXNlclxuICAvKiogVGhpcyB1c2VycyBndWlsZCBuaWNrbmFtZSAqL1xuICBuaWNrPzogc3RyaW5nXG4gIC8qKiBUaGUgbWVtYmVycyBjdXN0b20gYXZhdGFyIGZvciB0aGlzIHNlcnZlci4gKi9cbiAgYXZhdGFyPzogYmlnaW50XG4gIC8qKiBBcnJheSBvZiByb2xlIG9iamVjdCBpZHMgKi9cbiAgcm9sZXM6IGJpZ2ludFtdXG4gIC8qKiBXaGVuIHRoZSB1c2VyIGpvaW5lZCB0aGUgZ3VpbGQgKi9cbiAgam9pbmVkQXQ6IG51bWJlclxuICAvKiogV2hlbiB0aGUgdXNlciBzdGFydGVkIGJvb3N0aW5nIHRoZSBndWlsZCAqL1xuICBwcmVtaXVtU2luY2U/OiBudW1iZXJcbiAgLyoqIFRoZSBwZXJtaXNzaW9ucyB0aGlzIG1lbWJlciBoYXMgaW4gdGhlIGd1aWxkLiBPbmx5IHByZXNlbnQgb24gaW50ZXJhY3Rpb24gZXZlbnRzLiAqL1xuICBwZXJtaXNzaW9ucz86IFBlcm1pc3Npb25zXG4gIC8qKiB3aGVuIHRoZSB1c2VyJ3MgdGltZW91dCB3aWxsIGV4cGlyZSBhbmQgdGhlIHVzZXIgd2lsbCBiZSBhYmxlIHRvIGNvbW11bmljYXRlIGluIHRoZSBndWlsZCBhZ2FpbiAoc2V0IG51bGwgdG8gcmVtb3ZlIHRpbWVvdXQpLCBudWxsIG9yIGEgdGltZSBpbiB0aGUgcGFzdCBpZiB0aGUgdXNlciBpcyBub3QgdGltZWQgb3V0ICovXG4gIGNvbW11bmljYXRpb25EaXNhYmxlZFVudGlsPzogbnVtYmVyXG59XG4iXSwibmFtZXMiOlsiaWNvbkhhc2hUb0JpZ0ludCIsIk1lbWJlclRvZ2dsZXMiLCJQZXJtaXNzaW9ucyIsImJhc2VNZW1iZXIiLCJkZWFmIiwidG9nZ2xlcyIsImhhcyIsIm11dGUiLCJwZW5kaW5nIiwidHJhbnNmb3JtTWVtYmVyIiwiYm90IiwicGF5bG9hZCIsImd1aWxkSWQiLCJ1c2VySWQiLCJtZW1iZXIiLCJPYmplY3QiLCJjcmVhdGUiLCJwcm9wcyIsInRyYW5zZm9ybWVycyIsImRlc2lyZWRQcm9wZXJ0aWVzIiwiaWQiLCJzbm93Zmxha2UiLCJ1c2VyIiwibmljayIsInJvbGVzIiwibWFwIiwiam9pbmVkQXQiLCJqb2luZWRfYXQiLCJEYXRlIiwicGFyc2UiLCJwcmVtaXVtU2luY2UiLCJwcmVtaXVtX3NpbmNlIiwiY29tbXVuaWNhdGlvbkRpc2FibGVkVW50aWwiLCJjb21tdW5pY2F0aW9uX2Rpc2FibGVkX3VudGlsIiwiYXZhdGFyIiwicGVybWlzc2lvbnMiLCJjdXN0b21pemVycyJdLCJtYXBwaW5ncyI6IkFBQ0EsU0FBU0EsZ0JBQWdCLFFBQVEsb0JBQW1CO0FBRXBELFNBQVNDLGFBQWEsUUFBUSxzQkFBcUI7QUFDbkQsU0FBU0MsV0FBVyxRQUFRLDJCQUEwQjtBQUd0RCxNQUFNQyxhQUEyQztJQUMvQyxJQUFJQyxRQUFPO1FBQ1QsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDQyxPQUFPLEVBQUVDLElBQUk7SUFDN0I7SUFDQSxJQUFJQyxRQUFPO1FBQ1QsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDRixPQUFPLEVBQUVDLElBQUk7SUFDN0I7SUFDQSxJQUFJRSxXQUFVO1FBQ1osT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDSCxPQUFPLEVBQUVDLElBQUk7SUFDN0I7QUFDRjtBQUVBLE9BQU8sU0FBU0csZ0JBQWdCQyxHQUFRLEVBQUVDLE9BQXNCLEVBQUVDLE9BQWtCLEVBQUVDLE1BQWlCO0lBQ3JHLE1BQU1DLFNBQWlCQyxPQUFPQyxNQUFNLENBQUNiO0lBQ3JDLE1BQU1jLFFBQVFQLElBQUlRLFlBQVksQ0FBQ0MsaUJBQWlCLENBQUNMLE1BQU07SUFFdkQsSUFBSUcsTUFBTUcsRUFBRSxJQUFJUCxRQUFRQyxPQUFPTSxFQUFFLEdBQUcsT0FBT1AsV0FBVyxXQUFXSCxJQUFJUSxZQUFZLENBQUNHLFNBQVMsQ0FBQ1IsVUFBVUE7SUFDdEcsSUFBSUksTUFBTUwsT0FBTyxJQUFJQSxTQUFTRSxPQUFPRixPQUFPLEdBQUcsT0FBT0EsWUFBWSxXQUFXRixJQUFJUSxZQUFZLENBQUNHLFNBQVMsQ0FBQ1QsV0FBV0E7SUFDbkgsSUFBSUssTUFBTUssSUFBSSxJQUFJWCxRQUFRVyxJQUFJLEVBQUVSLE9BQU9RLElBQUksR0FBR1osSUFBSVEsWUFBWSxDQUFDSSxJQUFJLENBQUNaLEtBQUtDLFFBQVFXLElBQUk7SUFDckYsSUFBSUwsTUFBTU0sSUFBSSxJQUFJWixRQUFRWSxJQUFJLEVBQUVULE9BQU9TLElBQUksR0FBR1osUUFBUVksSUFBSTtJQUMxRCxJQUFJTixNQUFNTyxLQUFLLElBQUliLFFBQVFhLEtBQUssRUFBRVYsT0FBT1UsS0FBSyxHQUFHYixRQUFRYSxLQUFLLENBQUNDLEdBQUcsQ0FBQyxDQUFDTCxLQUFPVixJQUFJUSxZQUFZLENBQUNHLFNBQVMsQ0FBQ0Q7SUFDdEcsSUFBSUgsTUFBTVMsUUFBUSxJQUFJZixRQUFRZ0IsU0FBUyxFQUFFYixPQUFPWSxRQUFRLEdBQUdFLEtBQUtDLEtBQUssQ0FBQ2xCLFFBQVFnQixTQUFTO0lBQ3ZGLElBQUlWLE1BQU1hLFlBQVksSUFBSW5CLFFBQVFvQixhQUFhLEVBQUVqQixPQUFPZ0IsWUFBWSxHQUFHRixLQUFLQyxLQUFLLENBQUNsQixRQUFRb0IsYUFBYTtJQUN2RyxJQUFJZCxNQUFNZSwwQkFBMEIsSUFBSXJCLFFBQVFzQiw0QkFBNEIsRUFDMUVuQixPQUFPa0IsMEJBQTBCLEdBQUdKLEtBQUtDLEtBQUssQ0FBQ2xCLFFBQVFzQiw0QkFBNEI7SUFDckYsSUFBSWhCLE1BQU1pQixNQUFNLElBQUl2QixRQUFRdUIsTUFBTSxFQUFFcEIsT0FBT29CLE1BQU0sR0FBR2xDLGlCQUFpQlcsUUFBUXVCLE1BQU07SUFDbkYsSUFBSWpCLE1BQU1rQixXQUFXLElBQUl4QixRQUFRd0IsV0FBVyxFQUFFckIsT0FBT3FCLFdBQVcsR0FBRyxJQUFJakMsWUFBWVMsUUFBUXdCLFdBQVc7SUFDdEcsSUFBSWxCLE1BQU1iLElBQUksSUFBSWEsTUFBTVYsSUFBSSxJQUFJVSxNQUFNVCxPQUFPLEVBQUU7UUFDN0NNLE9BQU9ULE9BQU8sR0FBRyxJQUFJSixjQUFjVTtJQUNyQztJQUVBLE9BQU9ELElBQUlRLFlBQVksQ0FBQ2tCLFdBQVcsQ0FBQ3RCLE1BQU0sQ0FBQ0osS0FBS0MsU0FBU0c7QUFDM0QifQ==
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvbWVtYmVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQmlnU3RyaW5nLCBEaXNjb3JkTWVtYmVyIH0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnXG5pbXBvcnQgeyBpY29uSGFzaFRvQmlnSW50IH0gZnJvbSAnQGRpc2NvcmRlbm8vdXRpbHMnXG5pbXBvcnQgdHlwZSB7IEJvdCB9IGZyb20gJy4uL2JvdC5qcydcbmltcG9ydCB0eXBlIHsgQXZhdGFyRGVjb3JhdGlvbkRhdGEgfSBmcm9tICcuL2F2YXRhckRlY29yYXRpb25EYXRhLmpzJ1xuaW1wb3J0IHsgUGVybWlzc2lvbnMgfSBmcm9tICcuL3RvZ2dsZXMvUGVybWlzc2lvbnMuanMnXG5pbXBvcnQgeyBNZW1iZXJUb2dnbGVzIH0gZnJvbSAnLi90b2dnbGVzL21lbWJlci5qcydcbmltcG9ydCB0eXBlIHsgVXNlciB9IGZyb20gJy4vdXNlci5qcydcblxuY29uc3QgYmFzZU1lbWJlcjogUGFydGlhbDxNZW1iZXI+ICYgQmFzZU1lbWJlciA9IHtcbiAgZ2V0IGRlYWYoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5oYXMoJ2RlYWYnKVxuICB9LFxuICBnZXQgbXV0ZSgpIHtcbiAgICByZXR1cm4gISF0aGlzLnRvZ2dsZXM/LmhhcygnbXV0ZScpXG4gIH0sXG4gIGdldCBwZW5kaW5nKCkge1xuICAgIHJldHVybiAhIXRoaXMudG9nZ2xlcz8uaGFzKCdwZW5kaW5nJylcbiAgfSxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybU1lbWJlcihib3Q6IEJvdCwgcGF5bG9hZDogRGlzY29yZE1lbWJlciwgZ3VpbGRJZDogQmlnU3RyaW5nLCB1c2VySWQ6IEJpZ1N0cmluZyk6IE1lbWJlciB7XG4gIGNvbnN0IG1lbWJlcjogTWVtYmVyID0gT2JqZWN0LmNyZWF0ZShiYXNlTWVtYmVyKVxuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMubWVtYmVyXG5cbiAgaWYgKHByb3BzLmlkICYmIHVzZXJJZCkgbWVtYmVyLmlkID0gdHlwZW9mIHVzZXJJZCA9PT0gJ3N0cmluZycgPyBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZSh1c2VySWQpIDogdXNlcklkXG4gIGlmIChwcm9wcy5ndWlsZElkICYmIGd1aWxkSWQpIG1lbWJlci5ndWlsZElkID0gdHlwZW9mIGd1aWxkSWQgPT09ICdzdHJpbmcnID8gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoZ3VpbGRJZCkgOiBndWlsZElkXG4gIGlmIChwcm9wcy51c2VyICYmIHBheWxvYWQudXNlcikgbWVtYmVyLnVzZXIgPSBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCBwYXlsb2FkLnVzZXIpXG4gIGlmIChwcm9wcy5uaWNrICYmIHBheWxvYWQubmljaykgbWVtYmVyLm5pY2sgPSBwYXlsb2FkLm5pY2tcbiAgaWYgKHByb3BzLnJvbGVzICYmIHBheWxvYWQucm9sZXMpIG1lbWJlci5yb2xlcyA9IHBheWxvYWQucm9sZXMubWFwKChpZCkgPT4gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoaWQpKVxuICBpZiAocHJvcHMuam9pbmVkQXQgJiYgcGF5bG9hZC5qb2luZWRfYXQpIG1lbWJlci5qb2luZWRBdCA9IERhdGUucGFyc2UocGF5bG9hZC5qb2luZWRfYXQpXG4gIGlmIChwcm9wcy5wcmVtaXVtU2luY2UgJiYgcGF5bG9hZC5wcmVtaXVtX3NpbmNlKSBtZW1iZXIucHJlbWl1bVNpbmNlID0gRGF0ZS5wYXJzZShwYXlsb2FkLnByZW1pdW1fc2luY2UpXG4gIGlmIChwcm9wcy5jb21tdW5pY2F0aW9uRGlzYWJsZWRVbnRpbCAmJiBwYXlsb2FkLmNvbW11bmljYXRpb25fZGlzYWJsZWRfdW50aWwpXG4gICAgbWVtYmVyLmNvbW11bmljYXRpb25EaXNhYmxlZFVudGlsID0gRGF0ZS5wYXJzZShwYXlsb2FkLmNvbW11bmljYXRpb25fZGlzYWJsZWRfdW50aWwpXG4gIGlmIChwcm9wcy5hdmF0YXIgJiYgcGF5bG9hZC5hdmF0YXIpIG1lbWJlci5hdmF0YXIgPSBpY29uSGFzaFRvQmlnSW50KHBheWxvYWQuYXZhdGFyKVxuICBpZiAocHJvcHMucGVybWlzc2lvbnMgJiYgcGF5bG9hZC5wZXJtaXNzaW9ucykgbWVtYmVyLnBlcm1pc3Npb25zID0gbmV3IFBlcm1pc3Npb25zKHBheWxvYWQucGVybWlzc2lvbnMpXG4gIGlmIChwcm9wcy5kZWFmIHx8IHByb3BzLm11dGUgfHwgcHJvcHMucGVuZGluZykge1xuICAgIG1lbWJlci50b2dnbGVzID0gbmV3IE1lbWJlclRvZ2dsZXMocGF5bG9hZClcbiAgfVxuICBpZiAocHJvcHMuYXZhdGFyRGVjb3JhdGlvbkRhdGEgJiYgcGF5bG9hZC5hdmF0YXJfZGVjb3JhdGlvbl9kYXRhKVxuICAgIG1lbWJlci5hdmF0YXJEZWNvcmF0aW9uRGF0YSA9IGJvdC50cmFuc2Zvcm1lcnMuYXZhdGFyRGVjb3JhdGlvbkRhdGEoYm90LCBwYXlsb2FkLmF2YXRhcl9kZWNvcmF0aW9uX2RhdGEpXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMubWVtYmVyKGJvdCwgcGF5bG9hZCwgbWVtYmVyKVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJhc2VNZW1iZXIge1xuICAvKiogV2hldGhlciB0aGUgdXNlciBpcyBkZWFmZW5lZCBpbiB2b2ljZSBjaGFubmVscyAqL1xuICBkZWFmPzogYm9vbGVhblxuICAvKiogV2hldGhlciB0aGUgdXNlciBpcyBtdXRlZCBpbiB2b2ljZSBjaGFubmVscyAqL1xuICBtdXRlPzogYm9vbGVhblxuICAvKiogV2hldGhlciB0aGUgdXNlciBoYXMgbm90IHlldCBwYXNzZWQgdGhlIGd1aWxkJ3MgTWVtYmVyc2hpcCBTY3JlZW5pbmcgcmVxdWlyZW1lbnRzICovXG4gIHBlbmRpbmc/OiBib29sZWFuXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWVtYmVyIGV4dGVuZHMgQmFzZU1lbWJlciB7XG4gIC8qKiBUaGUgdXNlciBpZCBvZiB0aGUgbWVtYmVyLiAqL1xuICBpZDogYmlnaW50XG4gIC8qKiBUaGUgY29tcHJlc3NlZCBmb3JtIG9mIGFsbCB0aGUgYm9vbGVhbiB2YWx1ZXMgb24gdGhpcyB1c2VyLiAqL1xuICB0b2dnbGVzPzogTWVtYmVyVG9nZ2xlc1xuICAvKiogVGhlIGd1aWxkIGlkIHdoZXJlIHRoaXMgbWVtYmVyIGlzLiAqL1xuICBndWlsZElkOiBiaWdpbnRcbiAgLyoqIFRoZSB1c2VyIHRoaXMgZ3VpbGQgbWVtYmVyIHJlcHJlc2VudHMgKi9cbiAgdXNlcj86IFVzZXJcbiAgLyoqIFRoaXMgdXNlcnMgZ3VpbGQgbmlja25hbWUgKi9cbiAgbmljaz86IHN0cmluZ1xuICAvKiogVGhlIG1lbWJlcnMgY3VzdG9tIGF2YXRhciBmb3IgdGhpcyBzZXJ2ZXIuICovXG4gIGF2YXRhcj86IGJpZ2ludFxuICAvKiogQXJyYXkgb2Ygcm9sZSBvYmplY3QgaWRzICovXG4gIHJvbGVzOiBiaWdpbnRbXVxuICAvKiogV2hlbiB0aGUgdXNlciBqb2luZWQgdGhlIGd1aWxkICovXG4gIGpvaW5lZEF0OiBudW1iZXJcbiAgLyoqIFdoZW4gdGhlIHVzZXIgc3RhcnRlZCBib29zdGluZyB0aGUgZ3VpbGQgKi9cbiAgcHJlbWl1bVNpbmNlPzogbnVtYmVyXG4gIC8qKiBUaGUgcGVybWlzc2lvbnMgdGhpcyBtZW1iZXIgaGFzIGluIHRoZSBndWlsZC4gT25seSBwcmVzZW50IG9uIGludGVyYWN0aW9uIGV2ZW50cy4gKi9cbiAgcGVybWlzc2lvbnM/OiBQZXJtaXNzaW9uc1xuICAvKiogd2hlbiB0aGUgdXNlcidzIHRpbWVvdXQgd2lsbCBleHBpcmUgYW5kIHRoZSB1c2VyIHdpbGwgYmUgYWJsZSB0byBjb21tdW5pY2F0ZSBpbiB0aGUgZ3VpbGQgYWdhaW4gKHNldCBudWxsIHRvIHJlbW92ZSB0aW1lb3V0KSwgbnVsbCBvciBhIHRpbWUgaW4gdGhlIHBhc3QgaWYgdGhlIHVzZXIgaXMgbm90IHRpbWVkIG91dCAqL1xuICBjb21tdW5pY2F0aW9uRGlzYWJsZWRVbnRpbD86IG51bWJlclxuICAvKiogZGF0YSBmb3IgdGhlIG1lbWJlcidzIGd1aWxkIGF2YXRhciBkZWNvcmF0aW9uICovXG4gIGF2YXRhckRlY29yYXRpb25EYXRhOiBBdmF0YXJEZWNvcmF0aW9uRGF0YVxufVxuIl0sIm5hbWVzIjpbImljb25IYXNoVG9CaWdJbnQiLCJQZXJtaXNzaW9ucyIsIk1lbWJlclRvZ2dsZXMiLCJiYXNlTWVtYmVyIiwiZGVhZiIsInRvZ2dsZXMiLCJoYXMiLCJtdXRlIiwicGVuZGluZyIsInRyYW5zZm9ybU1lbWJlciIsImJvdCIsInBheWxvYWQiLCJndWlsZElkIiwidXNlcklkIiwibWVtYmVyIiwiT2JqZWN0IiwiY3JlYXRlIiwicHJvcHMiLCJ0cmFuc2Zvcm1lcnMiLCJkZXNpcmVkUHJvcGVydGllcyIsImlkIiwic25vd2ZsYWtlIiwidXNlciIsIm5pY2siLCJyb2xlcyIsIm1hcCIsImpvaW5lZEF0Iiwiam9pbmVkX2F0IiwiRGF0ZSIsInBhcnNlIiwicHJlbWl1bVNpbmNlIiwicHJlbWl1bV9zaW5jZSIsImNvbW11bmljYXRpb25EaXNhYmxlZFVudGlsIiwiY29tbXVuaWNhdGlvbl9kaXNhYmxlZF91bnRpbCIsImF2YXRhciIsInBlcm1pc3Npb25zIiwiYXZhdGFyRGVjb3JhdGlvbkRhdGEiLCJhdmF0YXJfZGVjb3JhdGlvbl9kYXRhIiwiY3VzdG9taXplcnMiXSwibWFwcGluZ3MiOiJBQUNBLFNBQVNBLGdCQUFnQixRQUFRLG9CQUFtQjtBQUdwRCxTQUFTQyxXQUFXLFFBQVEsMkJBQTBCO0FBQ3RELFNBQVNDLGFBQWEsUUFBUSxzQkFBcUI7QUFHbkQsTUFBTUMsYUFBMkM7SUFDL0MsSUFBSUMsUUFBTztRQUNULE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQ0MsT0FBTyxFQUFFQyxJQUFJO0lBQzdCO0lBQ0EsSUFBSUMsUUFBTztRQUNULE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQ0YsT0FBTyxFQUFFQyxJ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