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

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 (41) hide show
  1. package/dist/cjs/constants.cjs +6 -6
  2. package/dist/cjs/desiredProperties.cjs +4 -4
  3. package/dist/cjs/transformers/activity.cjs +5 -5
  4. package/dist/cjs/transformers/channel.cjs +7 -7
  5. package/dist/cjs/transformers/component.cjs +5 -5
  6. package/dist/cjs/transformers/emoji.cjs +5 -5
  7. package/dist/cjs/transformers/guild.cjs +4 -4
  8. package/dist/cjs/transformers/interaction.cjs +9 -9
  9. package/dist/cjs/transformers/lobby.cjs +4 -4
  10. package/dist/cjs/transformers/member.cjs +4 -4
  11. package/dist/cjs/transformers/message.cjs +7 -7
  12. package/dist/cjs/transformers/onboarding.cjs +5 -5
  13. package/dist/cjs/transformers/poll.cjs +4 -4
  14. package/dist/cjs/transformers/reverse/component.cjs +5 -5
  15. package/dist/cjs/transformers/reverse/member.cjs +4 -4
  16. package/dist/cjs/transformers/reverse/presence.cjs +4 -4
  17. package/dist/cjs/transformers/role.cjs +4 -4
  18. package/dist/cjs/transformers/scheduledEvent.cjs +4 -4
  19. package/dist/cjs/transformers/sticker.cjs +4 -4
  20. package/dist/cjs/transformers/threadMember.cjs +4 -4
  21. package/dist/cjs/transformers/toggles/Permissions.cjs +1 -1
  22. package/dist/cjs/transformers/toggles/ToggleBitfield.cjs +4 -4
  23. package/dist/cjs/transformers/toggles/channel.cjs +4 -4
  24. package/dist/cjs/transformers/toggles/emoji.cjs +4 -4
  25. package/dist/cjs/transformers/toggles/guild.cjs +4 -4
  26. package/dist/cjs/transformers/toggles/member.cjs +4 -4
  27. package/dist/cjs/transformers/toggles/role.cjs +4 -4
  28. package/dist/cjs/transformers/toggles/user.cjs +4 -4
  29. package/dist/cjs/transformers/toggles/voice.cjs +4 -4
  30. package/dist/cjs/transformers/user.cjs +6 -6
  31. package/dist/cjs/utils.cjs +5 -5
  32. package/dist/esm/transformers/toggles/Permissions.js +1 -1
  33. package/dist/esm/transformers/toggles/ToggleBitfield.js +1 -1
  34. package/dist/esm/transformers/toggles/channel.js +1 -1
  35. package/dist/esm/transformers/toggles/emoji.js +1 -1
  36. package/dist/esm/transformers/toggles/guild.js +1 -1
  37. package/dist/esm/transformers/toggles/member.js +1 -1
  38. package/dist/esm/transformers/toggles/role.js +1 -1
  39. package/dist/esm/transformers/toggles/user.js +1 -1
  40. package/dist/esm/transformers/toggles/voice.js +1 -1
  41. package/package.json +10 -10
@@ -5,17 +5,17 @@ Object.defineProperty(exports, "__esModule", {
5
5
  function _export(target, all) {
6
6
  for(var name in all)Object.defineProperty(target, name, {
7
7
  enumerable: true,
8
- get: all[name]
8
+ get: Object.getOwnPropertyDescriptor(all, name).get
9
9
  });
10
10
  }
11
11
  _export(exports, {
12
- transformComponent: function() {
12
+ get transformComponent () {
13
13
  return transformComponent;
14
14
  },
15
- transformMediaGalleryItem: function() {
15
+ get transformMediaGalleryItem () {
16
16
  return transformMediaGalleryItem;
17
17
  },
18
- transformUnfurledMediaItem: function() {
18
+ get transformUnfurledMediaItem () {
19
19
  return transformUnfurledMediaItem;
20
20
  }
21
21
  });
@@ -214,4 +214,4 @@ function transformSeparatorComponent(bot, payload) {
214
214
  return separator;
215
215
  }
216
216
 
217
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIHR5cGUgRGlzY29yZEFjdGlvblJvdyxcbiAgdHlwZSBEaXNjb3JkQnV0dG9uQ29tcG9uZW50LFxuICB0eXBlIERpc2NvcmRGaWxlQ29tcG9uZW50LFxuICB0eXBlIERpc2NvcmRNZWRpYUdhbGxlcnlDb21wb25lbnQsXG4gIHR5cGUgRGlzY29yZE1lc3NhZ2VDb21wb25lbnQsXG4gIHR5cGUgRGlzY29yZFNlY3Rpb25Db21wb25lbnQsXG4gIHR5cGUgRGlzY29yZFNlbGVjdE1lbnVDb21wb25lbnQsXG4gIHR5cGUgRGlzY29yZFNlcGFyYXRvckNvbXBvbmVudCxcbiAgdHlwZSBEaXNjb3JkVGV4dERpc3BsYXlDb21wb25lbnQsXG4gIHR5cGUgRGlzY29yZFRleHRJbnB1dENvbXBvbmVudCxcbiAgdHlwZSBEaXNjb3JkVGh1bWJuYWlsQ29tcG9uZW50LFxuICBNZXNzYWdlQ29tcG9uZW50VHlwZXMsXG59IGZyb20gJ0BkaXNjb3JkZW5vL3R5cGVzJ1xuaW1wb3J0IHR5cGUge1xuICBCb3QsXG4gIENvbXBvbmVudCxcbiAgRGlzY29yZENvbnRhaW5lckNvbXBvbmVudCxcbiAgRGlzY29yZE1lZGlhR2FsbGVyeUl0ZW0sXG4gIERpc2NvcmRVbmZ1cmxlZE1lZGlhSXRlbSxcbiAgTWVkaWFHYWxsZXJ5SXRlbSxcbiAgVW5mdXJsZWRNZWRpYUl0ZW0sXG59IGZyb20gJy4uL2luZGV4LmpzJ1xuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtQ29tcG9uZW50KGJvdDogQm90LCBwYXlsb2FkOiBEaXNjb3JkTWVzc2FnZUNvbXBvbmVudCk6IENvbXBvbmVudCB7XG4gIGxldCBjb21wb25lbnQ6IENvbXBvbmVudFxuXG4gIC8vIFRoaXMgc3dpdGNoIGlzIGV4aGF1c3RpdmUsIHNvIHdlIGRvbnQgbmVlZCB0aGUgZGVmYXVsdCBjYXNlIGFuZCBUUyBkb2VzIG5vdCBlcnJvciBvdXQgZm9yIHRoZSB1bi1pbml0aWFsaXplZCBjb21wb25lbnQgdmFyaWFibGVcbiAgc3dpdGNoIChwYXlsb2FkLnR5cGUpIHtcbiAgICBjYXNlIE1lc3NhZ2VDb21wb25lbnRUeXBlcy5BY3Rpb25Sb3c6XG4gICAgICBjb21wb25lbnQgPSB0cmFuc2Zvcm1BY3Rpb25Sb3coYm90LCBwYXlsb2FkKVxuICAgICAgYnJlYWtcbiAgICBjYXNlIE1lc3NhZ2VDb21wb25lbnRUeXBlcy5CdXR0b246XG4gICAgICBjb21wb25lbnQgPSB0cmFuc2Zvcm1CdXR0b25Db21wb25lbnQoYm90LCBwYXlsb2FkKVxuICAgICAgYnJlYWtcbiAgICBjYXNlIE1lc3NhZ2VDb21wb25lbnRUeXBlcy5Db250YWluZXI6XG4gICAgICBjb21wb25lbnQgPSB0cmFuc2Zvcm1Db250YWluZXJDb21wb25lbnQoYm90LCBwYXlsb2FkKVxuICAgICAgYnJlYWtcbiAgICBjYXNlIE1lc3NhZ2VDb21wb25lbnRUeXBlcy5UZXh0SW5wdXQ6XG4gICAgICBjb21wb25lbnQgPSB0cmFuc2Zvcm1JbnB1dFRleHRDb21wb25lbnQoYm90LCBwYXlsb2FkKVxuICAgICAgYnJlYWtcbiAgICBjYXNlIE1lc3NhZ2VDb21wb25lbnRUeXBlcy5TdHJpbmdTZWxlY3Q6XG4gICAgY2FzZSBNZXNzYWdlQ29tcG9uZW50VHlwZXMuVXNlclNlbGVjdDpcbiAgICBjYXNlIE1lc3NhZ2VDb21wb25lbnRUeXBlcy5Sb2xlU2VsZWN0OlxuICAgIGNhc2UgTWVzc2FnZUNvbXBvbmVudFR5cGVzLk1lbnRpb25hYmxlU2VsZWN0OlxuICAgIGNhc2UgTWVzc2FnZUNvbXBvbmVudFR5cGVzLkNoYW5uZWxTZWxlY3Q6XG4gICAgICBjb21wb25lbnQgPSB0cmFuc2Zvcm1TZWxlY3RNZW51Q29tcG9uZW50KGJvdCwgcGF5bG9hZClcbiAgICAgIGJyZWFrXG4gICAgY2FzZSBNZXNzYWdlQ29tcG9uZW50VHlwZXMuU2VjdGlvbjpcbiAgICAgIGNvbXBvbmVudCA9IHRyYW5zZm9ybVNlY3Rpb25Db21wb25lbnQoYm90LCBwYXlsb2FkKVxuICAgICAgYnJlYWtcbiAgICBjYXNlIE1lc3NhZ2VDb21wb25lbnRUeXBlcy5UaHVtYm5haWw6XG4gICAgICBjb21wb25lbnQgPSB0cmFuc2Zvcm1UaHVtYm5haWxDb21wb25lbnQoYm90LCBwYXlsb2FkKVxuICAgICAgYnJlYWtcbiAgICBjYXNlIE1lc3NhZ2VDb21wb25lbnRUeXBlcy5NZWRpYUdhbGxlcnk6XG4gICAgICBjb21wb25lbnQgPSB0cmFuc2Zvcm1NZWRpYUdhbGxlcnlDb21wb25lbnQoYm90LCBwYXlsb2FkKVxuICAgICAgYnJlYWtcbiAgICBjYXNlIE1lc3NhZ2VDb21wb25lbnRUeXBlcy5GaWxlOlxuICAgICAgY29tcG9uZW50ID0gdHJhbnNmb3JtRmlsZUNvbXBvbmVudChib3QsIHBheWxvYWQpXG4gICAgICBicmVha1xuICAgIGNhc2UgTWVzc2FnZUNvbXBvbmVudFR5cGVzLlNlcGFyYXRvcjpcbiAgICAgIGNvbXBvbmVudCA9IHRyYW5zZm9ybVNlcGFyYXRvckNvbXBvbmVudChib3QsIHBheWxvYWQpXG4gICAgICBicmVha1xuICAgIGNhc2UgTWVzc2FnZUNvbXBvbmVudFR5cGVzLlRleHREaXNwbGF5OlxuICAgICAgY29tcG9uZW50ID0gdHJhbnNmb3JtVGV4dERpc3BsYXlDb21wb25lbnQoYm90LCBwYXlsb2FkKVxuICAgICAgYnJlYWtcbiAgfVxuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLmNvbXBvbmVudChib3QsIHBheWxvYWQsIGNvbXBvbmVudClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybVVuZnVybGVkTWVkaWFJdGVtKGJvdDogQm90LCBwYXlsb2FkOiBEaXNjb3JkVW5mdXJsZWRNZWRpYUl0ZW0pOiBVbmZ1cmxlZE1lZGlhSXRlbSB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy51bmZ1cmxlZE1lZGlhSXRlbVxuICBjb25zdCBtZWRpYUl0ZW0gPSB7fSBhcyBVbmZ1cmxlZE1lZGlhSXRlbVxuXG4gIGlmIChwcm9wcy51cmwgJiYgcGF5bG9hZC51cmwpIG1lZGlhSXRlbS51cmwgPSBwYXlsb2FkLnVybFxuICBpZiAocHJvcHMucHJveHlVcmwgJiYgcGF5bG9hZC5wcm94eV91cmwpIG1lZGlhSXRlbS5wcm94eVVybCA9IHBheWxvYWQucHJveHlfdXJsXG4gIGlmIChwcm9wcy5oZWlnaHQgJiYgcGF5bG9hZC5oZWlnaHQpIG1lZGlhSXRlbS5oZWlnaHQgPSBwYXlsb2FkLmhlaWdodFxuICBpZiAocHJvcHMud2lkdGggJiYgcGF5bG9hZC53aWR0aCkgbWVkaWFJdGVtLndpZHRoID0gcGF5bG9hZC53aWR0aFxuICBpZiAocHJvcHMuY29udGVudFR5cGUgJiYgcGF5bG9hZC5jb250ZW50X3R5cGUpIG1lZGlhSXRlbS5jb250ZW50VHlwZSA9IHBheWxvYWQuY29udGVudF90eXBlXG4gIGlmIChwcm9wcy5hdHRhY2htZW50SWQgJiYgcGF5bG9hZC5hdHRhY2htZW50X2lkKSBtZWRpYUl0ZW0uYXR0YWNobWVudElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5hdHRhY2htZW50X2lkKVxuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLnVuZnVybGVkTWVkaWFJdGVtKGJvdCwgcGF5bG9hZCwgbWVkaWFJdGVtKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtTWVkaWFHYWxsZXJ5SXRlbShib3Q6IEJvdCwgcGF5bG9hZDogRGlzY29yZE1lZGlhR2FsbGVyeUl0ZW0pOiBNZWRpYUdhbGxlcnlJdGVtIHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLm1lZGlhR2FsbGVyeUl0ZW1cbiAgY29uc3QgZ2FsbGVyeUl0ZW0gPSB7fSBhcyBNZWRpYUdhbGxlcnlJdGVtXG5cbiAgaWYgKHByb3BzLm1lZGlhICYmIHBheWxvYWQubWVkaWEpIGdhbGxlcnlJdGVtLm1lZGlhID0gYm90LnRyYW5zZm9ybWVycy51bmZ1cmxlZE1lZGlhSXRlbShib3QsIHBheWxvYWQubWVkaWEpXG4gIGlmIChwcm9wcy5kZXNjcmlwdGlvbiAmJiBwYXlsb2FkLmRlc2NyaXB0aW9uKSBnYWxsZXJ5SXRlbS5kZXNjcmlwdGlvbiA9IHBheWxvYWQuZGVzY3JpcHRpb25cbiAgaWYgKHByb3BzLnNwb2lsZXIgJiYgcGF5bG9hZC5zcG9pbGVyKSBnYWxsZXJ5SXRlbS5zcG9pbGVyID0gcGF5bG9hZC5zcG9pbGVyXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMubWVkaWFHYWxsZXJ5SXRlbShib3QsIHBheWxvYWQsIGdhbGxlcnlJdGVtKVxufVxuXG5mdW5jdGlvbiB0cmFuc2Zvcm1BY3Rpb25Sb3coYm90OiBCb3QsIHBheWxvYWQ6IERpc2NvcmRBY3Rpb25Sb3cpOiBDb21wb25lbnQge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuY29tcG9uZW50XG4gIGNvbnN0IGFjdGlvblJvdyA9IHt9IGFzIENvbXBvbmVudFxuXG4gIGlmIChwcm9wcy50eXBlICYmIHBheWxvYWQudHlwZSkgYWN0aW9uUm93LnR5cGUgPSBwYXlsb2FkLnR5cGVcbiAgaWYgKHByb3BzLmlkICYmIHBheWxvYWQuaWQpIGFjdGlvblJvdy5pZCA9IHBheWxvYWQuaWRcbiAgaWYgKHByb3BzLmNvbXBvbmVudHMgJiYgcGF5bG9hZC5jb21wb25lbnRzKSBhY3Rpb25Sb3cuY29tcG9uZW50cyA9IHBheWxvYWQuY29tcG9uZW50cy5tYXAoKGNvbXBvbmVudCkgPT4gYm90LnRyYW5zZm9ybWVycy5jb21wb25lbnQoYm90LCBjb21wb25lbnQpKVxuXG4gIHJldHVybiBhY3Rpb25Sb3dcbn1cblxuZnVuY3Rpb24gdHJhbnNmb3JtQ29udGFpbmVyQ29tcG9uZW50KGJvdDogQm90LCBwYXlsb2FkOiBEaXNjb3JkQ29udGFpbmVyQ29tcG9uZW50KTogQ29tcG9uZW50IHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmNvbXBvbmVudFxuICBjb25zdCBjb250YWluZXIgPSB7fSBhcyBDb21wb25lbnRcblxuICBpZiAocHJvcHMudHlwZSAmJiBwYXlsb2FkLnR5cGUpIGNvbnRhaW5lci50eXBlID0gcGF5bG9hZC50eXBlXG4gIGlmIChwcm9wcy5pZCAmJiBwYXlsb2FkLmlkKSBjb250YWluZXIuaWQgPSBwYXlsb2FkLmlkXG4gIGlmIChwcm9wcy5hY2NlbnRDb2xvciAmJiBwYXlsb2FkLmFjY2VudF9jb2xvcikgY29udGFpbmVyLmFjY2VudENvbG9yID0gcGF5bG9hZC5hY2NlbnRfY29sb3JcbiAgaWYgKHByb3BzLnNwb2lsZXIgJiYgcGF5bG9hZC5zcG9pbGVyKSBjb250YWluZXIuc3BvaWxlciA9IHBheWxvYWQuc3BvaWxlclxuICBpZiAocHJvcHMuY29tcG9uZW50cyAmJiBwYXlsb2FkLmNvbXBvbmVudHMpIGNvbnRhaW5lci5jb21wb25lbnRzID0gcGF5bG9hZC5jb21wb25lbnRzLm1hcCgoY29tcG9uZW50KSA9PiBib3QudHJhbnNmb3JtZXJzLmNvbXBvbmVudChib3QsIGNvbXBvbmVudCkpXG5cbiAgcmV0dXJuIGNvbnRhaW5lclxufVxuXG5mdW5jdGlvbiB0cmFuc2Zvcm1CdXR0b25Db21wb25lbnQoYm90OiBCb3QsIHBheWxvYWQ6IERpc2NvcmRCdXR0b25Db21wb25lbnQpOiBDb21wb25lbnQge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuY29tcG9uZW50XG4gIGNvbnN0IGJ1dHRvbiA9IHt9IGFzIENvbXBvbmVudFxuXG4gIGlmIChwcm9wcy50eXBlICYmIHBheWxvYWQudHlwZSkgYnV0dG9uLnR5cGUgPSBwYXlsb2FkLnR5cGVcbiAgaWYgKHByb3BzLmlkICYmIHBheWxvYWQuaWQpIGJ1dHRvbi5pZCA9IHBheWxvYWQuaWRcbiAgaWYgKHByb3BzLmxhYmVsICYmIHBheWxvYWQubGFiZWwpIGJ1dHRvbi5sYWJlbCA9IHBheWxvYWQubGFiZWxcbiAgaWYgKHByb3BzLmN1c3RvbUlkICYmIHBheWxvYWQuY3VzdG9tX2lkKSBidXR0b24uY3VzdG9tSWQgPSBwYXlsb2FkLmN1c3RvbV9pZFxuICBpZiAocHJvcHMuc3R5bGUgJiYgcGF5bG9hZC5zdHlsZSkgYnV0dG9uLnN0eWxlID0gcGF5bG9hZC5zdHlsZVxuICBpZiAocHJvcHMuZW1vamkgJiYgcGF5bG9hZC5lbW9qaSkgYnV0dG9uLmVtb2ppID0gYm90LnRyYW5zZm9ybWVycy5lbW9qaShib3QsIHBheWxvYWQuZW1vamkpXG4gIGlmIChwcm9wcy51cmwgJiYgcGF5bG9hZC51cmwpIGJ1dHRvbi51cmwgPSBwYXlsb2FkLnVybFxuICBpZiAocHJvcHMuZGlzYWJsZWQgJiYgcGF5bG9hZC5kaXNhYmxlZCkgYnV0dG9uLmRpc2FibGVkID0gcGF5bG9hZC5kaXNhYmxlZFxuICBpZiAocHJvcHMuc2t1SWQgJiYgcGF5bG9hZC5za3VfaWQpIGJ1dHRvbi5za3VJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuc2t1X2lkKVxuXG4gIHJldHVybiBidXR0b25cbn1cblxuZnVuY3Rpb24gdHJhbnNmb3JtSW5wdXRUZXh0Q29tcG9uZW50KGJvdDogQm90LCBwYXlsb2FkOiBEaXNjb3JkVGV4dElucHV0Q29tcG9uZW50KTogQ29tcG9uZW50IHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmNvbXBvbmVudFxuICBjb25zdCBpbnB1dCA9IHt9IGFzIENvbXBvbmVudFxuXG4gIGlmIChwcm9wcy50eXBlICYmIHBheWxvYWQudHlwZSkgaW5wdXQudHlwZSA9IHBheWxvYWQudHlwZVxuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5pZCkgaW5wdXQuaWQgPSBwYXlsb2FkLmlkXG4gIGlmIChwcm9wcy5zdHlsZSAmJiBwYXlsb2FkLnN0eWxlKSBpbnB1dC5zdHlsZSA9IHBheWxvYWQuc3R5bGVcbiAgaWYgKHByb3BzLnJlcXVpcmVkICYmIHBheWxvYWQucmVxdWlyZWQpIGlucHV0LnJlcXVpcmVkID0gcGF5bG9hZC5yZXF1aXJlZFxuICBpZiAocHJvcHMuY3VzdG9tSWQgJiYgcGF5bG9hZC5jdXN0b21faWQpIGlucHV0LmN1c3RvbUlkID0gcGF5bG9hZC5jdXN0b21faWRcbiAgaWYgKHByb3BzLmxhYmVsICYmIHBheWxvYWQubGFiZWwpIGlucHV0LmxhYmVsID0gcGF5bG9hZC5sYWJlbFxuICBpZiAocHJvcHMucGxhY2Vob2xkZXIgJiYgcGF5bG9hZC5wbGFjZWhvbGRlcikgaW5wdXQucGxhY2Vob2xkZXIgPSBwYXlsb2FkLnBsYWNlaG9sZGVyXG4gIGlmIChwcm9wcy5taW5MZW5ndGggJiYgcGF5bG9hZC5taW5fbGVuZ3RoKSBpbnB1dC5taW5MZW5ndGggPSBwYXlsb2FkLm1pbl9sZW5ndGhcbiAgaWYgKHByb3BzLm1heExlbmd0aCAmJiBwYXlsb2FkLm1heF9sZW5ndGgpIGlucHV0Lm1heExlbmd0aCA9IHBheWxvYWQubWF4X2xlbmd0aFxuICBpZiAocHJvcHMudmFsdWUgJiYgcGF5bG9hZC52YWx1ZSkgaW5wdXQudmFsdWUgPSBwYXlsb2FkLnZhbHVlXG5cbiAgcmV0dXJuIGlucHV0XG59XG5cbmZ1bmN0aW9uIHRyYW5zZm9ybVNlbGVjdE1lbnVDb21wb25lbnQoYm90OiBCb3QsIHBheWxvYWQ6IERpc2NvcmRTZWxlY3RNZW51Q29tcG9uZW50KTogQ29tcG9uZW50IHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmNvbXBvbmVudFxuICBjb25zdCBzZWxlY3QgPSB7fSBhcyBDb21wb25lbnRcblxuICBpZiAocHJvcHMudHlwZSAmJiBwYXlsb2FkLnR5cGUpIHNlbGVjdC50eXBlID0gcGF5bG9hZC50eXBlXG4gIGlmIChwcm9wcy5pZCAmJiBwYXlsb2FkLmlkKSBzZWxlY3QuaWQgPSBwYXlsb2FkLmlkXG4gIGlmIChwcm9wcy5jdXN0b21JZCAmJiBwYXlsb2FkLmN1c3RvbV9pZCkgc2VsZWN0LmN1c3RvbUlkID0gcGF5bG9hZC5jdXN0b21faWRcbiAgaWYgKHByb3BzLnBsYWNlaG9sZGVyICYmIHBheWxvYWQucGxhY2Vob2xkZXIpIHNlbGVjdC5wbGFjZWhvbGRlciA9IHBheWxvYWQucGxhY2Vob2xkZXJcbiAgaWYgKHByb3BzLm1pblZhbHVlcyAmJiBwYXlsb2FkLm1pbl92YWx1ZXMpIHNlbGVjdC5taW5WYWx1ZXMgPSBwYXlsb2FkLm1pbl92YWx1ZXNcbiAgaWYgKHByb3BzLm1heFZhbHVlcyAmJiBwYXlsb2FkLm1heF92YWx1ZXMpIHNlbGVjdC5tYXhWYWx1ZXMgPSBwYXlsb2FkLm1heF92YWx1ZXNcbiAgaWYgKHByb3BzLmRlZmF1bHRWYWx1ZXMgJiYgcGF5bG9hZC5kZWZhdWx0X3ZhbHVlcylcbiAgICBzZWxlY3QuZGVmYXVsdFZhbHVlcyA9IHBheWxvYWQuZGVmYXVsdF92YWx1ZXMubWFwKChkZWZhdWx0VmFsdWUpID0+ICh7XG4gICAgICBpZDogYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoZGVmYXVsdFZhbHVlLmlkKSxcbiAgICAgIHR5cGU6IGRlZmF1bHRWYWx1ZS50eXBlLFxuICAgIH0pKVxuICBpZiAocHJvcHMuY2hhbm5lbFR5cGVzICYmIHBheWxvYWQuY2hhbm5lbF90eXBlcykgc2VsZWN0LmNoYW5uZWxUeXBlcyA9IHBheWxvYWQuY2hhbm5lbF90eXBlc1xuICBpZiAocHJvcHMub3B0aW9ucyAmJiBwYXlsb2FkLm9wdGlvbnMpXG4gICAgc2VsZWN0Lm9wdGlvbnMgPSBwYXlsb2FkLm9wdGlvbnMubWFwKChvcHRpb24pID0+ICh7XG4gICAgICBsYWJlbDogb3B0aW9uLmxhYmVsLFxuICAgICAgdmFsdWU6IG9wdGlvbi52YWx1ZSxcbiAgICAgIGRlc2NyaXB0aW9uOiBvcHRpb24uZGVzY3JpcHRpb24sXG4gICAgICBlbW9qaTogb3B0aW9uLmVtb2ppXG4gICAgICAgID8ge1xuICAgICAgICAgICAgaWQ6IG9wdGlvbi5lbW9qaS5pZCA/IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKG9wdGlvbi5lbW9qaS5pZCkgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBuYW1lOiBvcHRpb24uZW1vamkubmFtZSxcbiAgICAgICAgICAgIGFuaW1hdGVkOiBvcHRpb24uZW1vamkuYW5pbWF0ZWQsXG4gICAgICAgICAgfVxuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgIGRlZmF1bHQ6IG9wdGlvbi5kZWZhdWx0LFxuICAgIH0pKVxuICBpZiAocHJvcHMuZGlzYWJsZWQgJiYgcGF5bG9hZC5kaXNhYmxlZCkgc2VsZWN0LmRpc2FibGVkID0gcGF5bG9hZC5kaXNhYmxlZFxuXG4gIHJldHVybiBzZWxlY3Rcbn1cblxuZnVuY3Rpb24gdHJhbnNmb3JtU2VjdGlvbkNvbXBvbmVudChib3Q6IEJvdCwgcGF5bG9hZDogRGlzY29yZFNlY3Rpb25Db21wb25lbnQpOiBDb21wb25lbnQge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuY29tcG9uZW50XG4gIGNvbnN0IHNlY3Rpb24gPSB7fSBhcyBDb21wb25lbnRcblxuICBpZiAocHJvcHMudHlwZSAmJiBwYXlsb2FkLnR5cGUpIHNlY3Rpb24udHlwZSA9IHBheWxvYWQudHlwZVxuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5pZCkgc2VjdGlvbi5pZCA9IHBheWxvYWQuaWRcbiAgaWYgKHByb3BzLmNvbXBvbmVudHMgJiYgcGF5bG9hZC5jb21wb25lbnRzKSBzZWN0aW9uLmNvbXBvbmVudHMgPSBwYXlsb2FkLmNvbXBvbmVudHMubWFwKChjb21wb25lbnQpID0+IGJvdC50cmFuc2Zvcm1lcnMuY29tcG9uZW50KGJvdCwgY29tcG9uZW50KSlcbiAgaWYgKHByb3BzLmFjY2Vzc29yeSAmJiBwYXlsb2FkLmFjY2Vzc29yeSkgc2VjdGlvbi5hY2Nlc3NvcnkgPSBib3QudHJhbnNmb3JtZXJzLmNvbXBvbmVudChib3QsIHBheWxvYWQuYWNjZXNzb3J5KVxuXG4gIHJldHVybiBzZWN0aW9uXG59XG5cbmZ1bmN0aW9uIHRyYW5zZm9ybVRodW1ibmFpbENvbXBvbmVudChib3Q6IEJvdCwgcGF5bG9hZDogRGlzY29yZFRodW1ibmFpbENvbXBvbmVudCk6IENvbXBvbmVudCB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5jb21wb25lbnRcbiAgY29uc3QgdGh1bWJuYWlsID0ge30gYXMgQ29tcG9uZW50XG5cbiAgaWYgKHByb3BzLnR5cGUgJiYgcGF5bG9hZC50eXBlKSB0aHVtYm5haWwudHlwZSA9IHBheWxvYWQudHlwZVxuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5pZCkgdGh1bWJuYWlsLmlkID0gcGF5bG9hZC5pZFxuICBpZiAocHJvcHMubWVkaWEgJiYgcGF5bG9hZC5tZWRpYSkgdGh1bWJuYWlsLm1lZGlhID0gYm90LnRyYW5zZm9ybWVycy51bmZ1cmxlZE1lZGlhSXRlbShib3QsIHBheWxvYWQubWVkaWEpXG4gIGlmIChwcm9wcy5kZXNjcmlwdGlvbiAmJiBwYXlsb2FkLmRlc2NyaXB0aW9uKSB0aHVtYm5haWwuZGVzY3JpcHRpb24gPSBwYXlsb2FkLmRlc2NyaXB0aW9uXG4gIGlmIChwcm9wcy5zcG9pbGVyICYmIHBheWxvYWQuc3BvaWxlcikgdGh1bWJuYWlsLnNwb2lsZXIgPSBwYXlsb2FkLnNwb2lsZXJcblxuICByZXR1cm4gdGh1bWJuYWlsXG59XG5cbmZ1bmN0aW9uIHRyYW5zZm9ybU1lZGlhR2FsbGVyeUNvbXBvbmVudChib3Q6IEJvdCwgcGF5bG9hZDogRGlzY29yZE1lZGlhR2FsbGVyeUNvbXBvbmVudCk6IENvbXBvbmVudCB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5jb21wb25lbnRcbiAgY29uc3QgbWVkaWFHYWxsZXJ5ID0ge30gYXMgQ29tcG9uZW50XG5cbiAgaWYgKHByb3BzLnR5cGUgJiYgcGF5bG9hZC50eXBlKSBtZWRpYUdhbGxlcnkudHlwZSA9IHBheWxvYWQudHlwZVxuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5pZCkgbWVkaWFHYWxsZXJ5LmlkID0gcGF5bG9hZC5pZFxuICBpZiAocHJvcHMuaXRlbXMgJiYgcGF5bG9hZC5pdGVtcykgbWVkaWFHYWxsZXJ5Lml0ZW1zID0gcGF5bG9hZC5pdGVtcy5tYXAoKGl0ZW0pID0+IGJvdC50cmFuc2Zvcm1lcnMubWVkaWFHYWxsZXJ5SXRlbShib3QsIGl0ZW0pKVxuXG4gIHJldHVybiBtZWRpYUdhbGxlcnlcbn1cblxuZnVuY3Rpb24gdHJhbnNmb3JtRmlsZUNvbXBvbmVudChib3Q6IEJvdCwgcGF5bG9hZDogRGlzY29yZEZpbGVDb21wb25lbnQpOiBDb21wb25lbnQge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuY29tcG9uZW50XG4gIGNvbnN0IGZpbGUgPSB7fSBhcyBDb21wb25lbnRcblxuICBpZiAocHJvcHMudHlwZSAmJiBwYXlsb2FkLnR5cGUpIGZpbGUudHlwZSA9IHBheWxvYWQudHlwZVxuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5pZCkgZmlsZS5pZCA9IHBheWxvYWQuaWRcbiAgaWYgKHByb3BzLmZpbGUgJiYgcGF5bG9hZC5maWxlKSBmaWxlLmZpbGUgPSBib3QudHJhbnNmb3JtZXJzLnVuZnVybGVkTWVkaWFJdGVtKGJvdCwgcGF5bG9hZC5maWxlKVxuICBpZiAocHJvcHMuc3BvaWxlciAmJiBwYXlsb2FkLnNwb2lsZXIpIGZpbGUuc3BvaWxlciA9IHBheWxvYWQuc3BvaWxlclxuICBpZiAocHJvcHMubmFtZSAmJiBwYXlsb2FkLm5hbWUpIGZpbGUubmFtZSA9IHBheWxvYWQubmFtZVxuICBpZiAocHJvcHMuc2l6ZSAmJiBwYXlsb2FkLnNpemUpIGZpbGUuc2l6ZSA9IHBheWxvYWQuc2l6ZVxuXG4gIHJldHVybiBmaWxlXG59XG5cbmZ1bmN0aW9uIHRyYW5zZm9ybVRleHREaXNwbGF5Q29tcG9uZW50KGJvdDogQm90LCBwYXlsb2FkOiBEaXNjb3JkVGV4dERpc3BsYXlDb21wb25lbnQpOiBDb21wb25lbnQge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuY29tcG9uZW50XG4gIGNvbnN0IHRleHREaXNwbGF5ID0ge30gYXMgQ29tcG9uZW50XG5cbiAgaWYgKHByb3BzLnR5cGUgJiYgcGF5bG9hZC50eXBlKSB0ZXh0RGlzcGxheS50eXBlID0gcGF5bG9hZC50eXBlXG4gIGlmIChwcm9wcy5pZCAmJiBwYXlsb2FkLmlkKSB0ZXh0RGlzcGxheS5pZCA9IHBheWxvYWQuaWRcbiAgaWYgKHByb3BzLmNvbnRlbnQgJiYgcGF5bG9hZC5jb250ZW50KSB0ZXh0RGlzcGxheS5jb250ZW50ID0gcGF5bG9hZC5jb250ZW50XG5cbiAgcmV0dXJuIHRleHREaXNwbGF5XG59XG5cbmZ1bmN0aW9uIHRyYW5zZm9ybVNlcGFyYXRvckNvbXBvbmVudChib3Q6IEJvdCwgcGF5bG9hZDogRGlzY29yZFNlcGFyYXRvckNvbXBvbmVudCk6IENvbXBvbmVudCB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5jb21wb25lbnRcbiAgY29uc3Qgc2VwYXJhdG9yID0ge30gYXMgQ29tcG9uZW50XG5cbiAgaWYgKHByb3BzLnR5cGUgJiYgcGF5bG9hZC50eXBlKSBzZXBhcmF0b3IudHlwZSA9IHBheWxvYWQudHlwZVxuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5pZCkgc2VwYXJhdG9yLmlkID0gcGF5bG9hZC5pZFxuICBpZiAocHJvcHMuZGl2aWRlciAmJiBwYXlsb2FkLmRpdmlkZXIpIHNlcGFyYXRvci5kaXZpZGVyID0gcGF5bG9hZC5kaXZpZGVyXG4gIGlmIChwcm9wcy5zcGFjaW5nICYmIHBheWxvYWQuc3BhY2luZykgc2VwYXJhdG9yLnNwYWNpbmcgPSBwYXlsb2FkLnNwYWNpbmdcblxuICByZXR1cm4gc2VwYXJhdG9yXG59XG4iXSwibmFtZXMiOlsidHJhbnNmb3JtQ29tcG9uZW50IiwidHJhbnNmb3JtTWVkaWFHYWxsZXJ5SXRlbSIsInRyYW5zZm9ybVVuZnVybGVkTWVkaWFJdGVtIiwiYm90IiwicGF5bG9hZCIsImNvbXBvbmVudCIsInR5cGUiLCJNZXNzYWdlQ29tcG9uZW50VHlwZXMiLCJBY3Rpb25Sb3ciLCJ0cmFuc2Zvcm1BY3Rpb25Sb3ciLCJCdXR0b24iLCJ0cmFuc2Zvcm1CdXR0b25Db21wb25lbnQiLCJDb250YWluZXIiLCJ0cmFuc2Zvcm1Db250YWluZXJDb21wb25lbnQiLCJUZXh0SW5wdXQiLCJ0cmFuc2Zvcm1JbnB1dFRleHRDb21wb25lbnQiLCJTdHJpbmdTZWxlY3QiLCJVc2VyU2VsZWN0IiwiUm9sZVNlbGVjdCIsIk1lbnRpb25hYmxlU2VsZWN0IiwiQ2hhbm5lbFNlbGVjdCIsInRyYW5zZm9ybVNlbGVjdE1lbnVDb21wb25lbnQiLCJTZWN0aW9uIiwidHJhbnNmb3JtU2VjdGlvbkNvbXBvbmVudCIsIlRodW1ibmFpbCIsInRyYW5zZm9ybVRodW1ibmFpbENvbXBvbmVudCIsIk1lZGlhR2FsbGVyeSIsInRyYW5zZm9ybU1lZGlhR2FsbGVyeUNvbXBvbmVudCIsIkZpbGUiLCJ0cmFuc2Zvcm1GaWxlQ29tcG9uZW50IiwiU2VwYXJhdG9yIiwidHJhbnNmb3JtU2VwYXJhdG9yQ29tcG9uZW50IiwiVGV4dERpc3BsYXkiLCJ0cmFuc2Zvcm1UZXh0RGlzcGxheUNvbXBvbmVudCIsInRyYW5zZm9ybWVycyIsImN1c3RvbWl6ZXJzIiwicHJvcHMiLCJkZXNpcmVkUHJvcGVydGllcyIsInVuZnVybGVkTWVkaWFJdGVtIiwibWVkaWFJdGVtIiwidXJsIiwicHJveHlVcmwiLCJwcm94eV91cmwiLCJoZWlnaHQiLCJ3aWR0aCIsImNvbnRlbnRUeXBlIiwiY29udGVudF90eXBlIiwiYXR0YWNobWVudElkIiwiYXR0YWNobWVudF9pZCIsInNub3dmbGFrZSIsIm1lZGlhR2FsbGVyeUl0ZW0iLCJnYWxsZXJ5SXRlbSIsIm1lZGlhIiwiZGVzY3JpcHRpb24iLCJzcG9pbGVyIiwiYWN0aW9uUm93IiwiaWQiLCJjb21wb25lbnRzIiwibWFwIiwiY29udGFpbmVyIiwiYWNjZW50Q29sb3IiLCJhY2NlbnRfY29sb3IiLCJidXR0b24iLCJsYWJlbCIsImN1c3RvbUlkIiwiY3VzdG9tX2lkIiwic3R5bGUiLCJlbW9qaSIsImRpc2FibGVkIiwic2t1SWQiLCJza3VfaWQiLCJpbnB1dCIsInJlcXVpcmVkIiwicGxhY2Vob2xkZXIiLCJtaW5MZW5ndGgiLCJtaW5fbGVuZ3RoIiwibWF4TGVuZ3RoIiwibWF4X2xlbmd0aCIsInZhbHVlIiwic2VsZWN0IiwibWluVmFsdWVzIiwibWluX3ZhbHVlcyIsIm1heFZhbHVlcyIsIm1heF92YWx1ZXMiLCJkZWZhdWx0VmFsdWVzIiwiZGVmYXVsdF92YWx1ZXMiLCJkZWZhdWx0VmFsdWUiLCJjaGFubmVsVHlwZXMiLCJjaGFubmVsX3R5cGVzIiwib3B0aW9ucyIsIm9wdGlvbiIsInVuZGVmaW5lZCIsIm5hbWUiLCJhbmltYXRlZCIsImRlZmF1bHQiLCJzZWN0aW9uIiwiYWNjZXNzb3J5IiwidGh1bWJuYWlsIiwibWVkaWFHYWxsZXJ5IiwiaXRlbXMiLCJpdGVtIiwiZmlsZSIsInNpemUiLCJ0ZXh0RGlzcGxheSIsImNvbnRlbnQiLCJzZXBhcmF0b3IiLCJkaXZpZGVyIiwic3BhY2luZyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7SUF3QmdCQSxrQkFBa0I7ZUFBbEJBOztJQTZEQUMseUJBQXlCO2VBQXpCQTs7SUFkQUMsMEJBQTBCO2VBQTFCQTs7O3VCQTFEVDtBQVdBLFNBQVNGLG1CQUFtQkcsR0FBUSxFQUFFQyxPQUFnQztJQUMzRSxJQUFJQztJQUVKLGtJQUFrSTtJQUNsSSxPQUFRRCxRQUFRRSxJQUFJO1FBQ2xCLEtBQUtDLDRCQUFxQixDQUFDQyxTQUFTO1lBQ2xDSCxZQUFZSSxtQkFBbUJOLEtB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
217
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIHR5cGUgRGlzY29yZEFjdGlvblJvdyxcbiAgdHlwZSBEaXNjb3JkQnV0dG9uQ29tcG9uZW50LFxuICB0eXBlIERpc2NvcmRGaWxlQ29tcG9uZW50LFxuICB0eXBlIERpc2NvcmRNZWRpYUdhbGxlcnlDb21wb25lbnQsXG4gIHR5cGUgRGlzY29yZE1lc3NhZ2VDb21wb25lbnQsXG4gIHR5cGUgRGlzY29yZFNlY3Rpb25Db21wb25lbnQsXG4gIHR5cGUgRGlzY29yZFNlbGVjdE1lbnVDb21wb25lbnQsXG4gIHR5cGUgRGlzY29yZFNlcGFyYXRvckNvbXBvbmVudCxcbiAgdHlwZSBEaXNjb3JkVGV4dERpc3BsYXlDb21wb25lbnQsXG4gIHR5cGUgRGlzY29yZFRleHRJbnB1dENvbXBvbmVudCxcbiAgdHlwZSBEaXNjb3JkVGh1bWJuYWlsQ29tcG9uZW50LFxuICBNZXNzYWdlQ29tcG9uZW50VHlwZXMsXG59IGZyb20gJ0BkaXNjb3JkZW5vL3R5cGVzJ1xuaW1wb3J0IHR5cGUge1xuICBCb3QsXG4gIENvbXBvbmVudCxcbiAgRGlzY29yZENvbnRhaW5lckNvbXBvbmVudCxcbiAgRGlzY29yZE1lZGlhR2FsbGVyeUl0ZW0sXG4gIERpc2NvcmRVbmZ1cmxlZE1lZGlhSXRlbSxcbiAgTWVkaWFHYWxsZXJ5SXRlbSxcbiAgVW5mdXJsZWRNZWRpYUl0ZW0sXG59IGZyb20gJy4uL2luZGV4LmpzJ1xuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtQ29tcG9uZW50KGJvdDogQm90LCBwYXlsb2FkOiBEaXNjb3JkTWVzc2FnZUNvbXBvbmVudCk6IENvbXBvbmVudCB7XG4gIGxldCBjb21wb25lbnQ6IENvbXBvbmVudFxuXG4gIC8vIFRoaXMgc3dpdGNoIGlzIGV4aGF1c3RpdmUsIHNvIHdlIGRvbnQgbmVlZCB0aGUgZGVmYXVsdCBjYXNlIGFuZCBUUyBkb2VzIG5vdCBlcnJvciBvdXQgZm9yIHRoZSB1bi1pbml0aWFsaXplZCBjb21wb25lbnQgdmFyaWFibGVcbiAgc3dpdGNoIChwYXlsb2FkLnR5cGUpIHtcbiAgICBjYXNlIE1lc3NhZ2VDb21wb25lbnRUeXBlcy5BY3Rpb25Sb3c6XG4gICAgICBjb21wb25lbnQgPSB0cmFuc2Zvcm1BY3Rpb25Sb3coYm90LCBwYXlsb2FkKVxuICAgICAgYnJlYWtcbiAgICBjYXNlIE1lc3NhZ2VDb21wb25lbnRUeXBlcy5CdXR0b246XG4gICAgICBjb21wb25lbnQgPSB0cmFuc2Zvcm1CdXR0b25Db21wb25lbnQoYm90LCBwYXlsb2FkKVxuICAgICAgYnJlYWtcbiAgICBjYXNlIE1lc3NhZ2VDb21wb25lbnRUeXBlcy5Db250YWluZXI6XG4gICAgICBjb21wb25lbnQgPSB0cmFuc2Zvcm1Db250YWluZXJDb21wb25lbnQoYm90LCBwYXlsb2FkKVxuICAgICAgYnJlYWtcbiAgICBjYXNlIE1lc3NhZ2VDb21wb25lbnRUeXBlcy5UZXh0SW5wdXQ6XG4gICAgICBjb21wb25lbnQgPSB0cmFuc2Zvcm1JbnB1dFRleHRDb21wb25lbnQoYm90LCBwYXlsb2FkKVxuICAgICAgYnJlYWtcbiAgICBjYXNlIE1lc3NhZ2VDb21wb25lbnRUeXBlcy5TdHJpbmdTZWxlY3Q6XG4gICAgY2FzZSBNZXNzYWdlQ29tcG9uZW50VHlwZXMuVXNlclNlbGVjdDpcbiAgICBjYXNlIE1lc3NhZ2VDb21wb25lbnRUeXBlcy5Sb2xlU2VsZWN0OlxuICAgIGNhc2UgTWVzc2FnZUNvbXBvbmVudFR5cGVzLk1lbnRpb25hYmxlU2VsZWN0OlxuICAgIGNhc2UgTWVzc2FnZUNvbXBvbmVudFR5cGVzLkNoYW5uZWxTZWxlY3Q6XG4gICAgICBjb21wb25lbnQgPSB0cmFuc2Zvcm1TZWxlY3RNZW51Q29tcG9uZW50KGJvdCwgcGF5bG9hZClcbiAgICAgIGJyZWFrXG4gICAgY2FzZSBNZXNzYWdlQ29tcG9uZW50VHlwZXMuU2VjdGlvbjpcbiAgICAgIGNvbXBvbmVudCA9IHRyYW5zZm9ybVNlY3Rpb25Db21wb25lbnQoYm90LCBwYXlsb2FkKVxuICAgICAgYnJlYWtcbiAgICBjYXNlIE1lc3NhZ2VDb21wb25lbnRUeXBlcy5UaHVtYm5haWw6XG4gICAgICBjb21wb25lbnQgPSB0cmFuc2Zvcm1UaHVtYm5haWxDb21wb25lbnQoYm90LCBwYXlsb2FkKVxuICAgICAgYnJlYWtcbiAgICBjYXNlIE1lc3NhZ2VDb21wb25lbnRUeXBlcy5NZWRpYUdhbGxlcnk6XG4gICAgICBjb21wb25lbnQgPSB0cmFuc2Zvcm1NZWRpYUdhbGxlcnlDb21wb25lbnQoYm90LCBwYXlsb2FkKVxuICAgICAgYnJlYWtcbiAgICBjYXNlIE1lc3NhZ2VDb21wb25lbnRUeXBlcy5GaWxlOlxuICAgICAgY29tcG9uZW50ID0gdHJhbnNmb3JtRmlsZUNvbXBvbmVudChib3QsIHBheWxvYWQpXG4gICAgICBicmVha1xuICAgIGNhc2UgTWVzc2FnZUNvbXBvbmVudFR5cGVzLlNlcGFyYXRvcjpcbiAgICAgIGNvbXBvbmVudCA9IHRyYW5zZm9ybVNlcGFyYXRvckNvbXBvbmVudChib3QsIHBheWxvYWQpXG4gICAgICBicmVha1xuICAgIGNhc2UgTWVzc2FnZUNvbXBvbmVudFR5cGVzLlRleHREaXNwbGF5OlxuICAgICAgY29tcG9uZW50ID0gdHJhbnNmb3JtVGV4dERpc3BsYXlDb21wb25lbnQoYm90LCBwYXlsb2FkKVxuICAgICAgYnJlYWtcbiAgfVxuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLmNvbXBvbmVudChib3QsIHBheWxvYWQsIGNvbXBvbmVudClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybVVuZnVybGVkTWVkaWFJdGVtKGJvdDogQm90LCBwYXlsb2FkOiBEaXNjb3JkVW5mdXJsZWRNZWRpYUl0ZW0pOiBVbmZ1cmxlZE1lZGlhSXRlbSB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy51bmZ1cmxlZE1lZGlhSXRlbVxuICBjb25zdCBtZWRpYUl0ZW0gPSB7fSBhcyBVbmZ1cmxlZE1lZGlhSXRlbVxuXG4gIGlmIChwcm9wcy51cmwgJiYgcGF5bG9hZC51cmwpIG1lZGlhSXRlbS51cmwgPSBwYXlsb2FkLnVybFxuICBpZiAocHJvcHMucHJveHlVcmwgJiYgcGF5bG9hZC5wcm94eV91cmwpIG1lZGlhSXRlbS5wcm94eVVybCA9IHBheWxvYWQucHJveHlfdXJsXG4gIGlmIChwcm9wcy5oZWlnaHQgJiYgcGF5bG9hZC5oZWlnaHQpIG1lZGlhSXRlbS5oZWlnaHQgPSBwYXlsb2FkLmhlaWdodFxuICBpZiAocHJvcHMud2lkdGggJiYgcGF5bG9hZC53aWR0aCkgbWVkaWFJdGVtLndpZHRoID0gcGF5bG9hZC53aWR0aFxuICBpZiAocHJvcHMuY29udGVudFR5cGUgJiYgcGF5bG9hZC5jb250ZW50X3R5cGUpIG1lZGlhSXRlbS5jb250ZW50VHlwZSA9IHBheWxvYWQuY29udGVudF90eXBlXG4gIGlmIChwcm9wcy5hdHRhY2htZW50SWQgJiYgcGF5bG9hZC5hdHRhY2htZW50X2lkKSBtZWRpYUl0ZW0uYXR0YWNobWVudElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5hdHRhY2htZW50X2lkKVxuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLnVuZnVybGVkTWVkaWFJdGVtKGJvdCwgcGF5bG9hZCwgbWVkaWFJdGVtKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtTWVkaWFHYWxsZXJ5SXRlbShib3Q6IEJvdCwgcGF5bG9hZDogRGlzY29yZE1lZGlhR2FsbGVyeUl0ZW0pOiBNZWRpYUdhbGxlcnlJdGVtIHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLm1lZGlhR2FsbGVyeUl0ZW1cbiAgY29uc3QgZ2FsbGVyeUl0ZW0gPSB7fSBhcyBNZWRpYUdhbGxlcnlJdGVtXG5cbiAgaWYgKHByb3BzLm1lZGlhICYmIHBheWxvYWQubWVkaWEpIGdhbGxlcnlJdGVtLm1lZGlhID0gYm90LnRyYW5zZm9ybWVycy51bmZ1cmxlZE1lZGlhSXRlbShib3QsIHBheWxvYWQubWVkaWEpXG4gIGlmIChwcm9wcy5kZXNjcmlwdGlvbiAmJiBwYXlsb2FkLmRlc2NyaXB0aW9uKSBnYWxsZXJ5SXRlbS5kZXNjcmlwdGlvbiA9IHBheWxvYWQuZGVzY3JpcHRpb25cbiAgaWYgKHByb3BzLnNwb2lsZXIgJiYgcGF5bG9hZC5zcG9pbGVyKSBnYWxsZXJ5SXRlbS5zcG9pbGVyID0gcGF5bG9hZC5zcG9pbGVyXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMubWVkaWFHYWxsZXJ5SXRlbShib3QsIHBheWxvYWQsIGdhbGxlcnlJdGVtKVxufVxuXG5mdW5jdGlvbiB0cmFuc2Zvcm1BY3Rpb25Sb3coYm90OiBCb3QsIHBheWxvYWQ6IERpc2NvcmRBY3Rpb25Sb3cpOiBDb21wb25lbnQge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuY29tcG9uZW50XG4gIGNvbnN0IGFjdGlvblJvdyA9IHt9IGFzIENvbXBvbmVudFxuXG4gIGlmIChwcm9wcy50eXBlICYmIHBheWxvYWQudHlwZSkgYWN0aW9uUm93LnR5cGUgPSBwYXlsb2FkLnR5cGVcbiAgaWYgKHByb3BzLmlkICYmIHBheWxvYWQuaWQpIGFjdGlvblJvdy5pZCA9IHBheWxvYWQuaWRcbiAgaWYgKHByb3BzLmNvbXBvbmVudHMgJiYgcGF5bG9hZC5jb21wb25lbnRzKSBhY3Rpb25Sb3cuY29tcG9uZW50cyA9IHBheWxvYWQuY29tcG9uZW50cy5tYXAoKGNvbXBvbmVudCkgPT4gYm90LnRyYW5zZm9ybWVycy5jb21wb25lbnQoYm90LCBjb21wb25lbnQpKVxuXG4gIHJldHVybiBhY3Rpb25Sb3dcbn1cblxuZnVuY3Rpb24gdHJhbnNmb3JtQ29udGFpbmVyQ29tcG9uZW50KGJvdDogQm90LCBwYXlsb2FkOiBEaXNjb3JkQ29udGFpbmVyQ29tcG9uZW50KTogQ29tcG9uZW50IHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmNvbXBvbmVudFxuICBjb25zdCBjb250YWluZXIgPSB7fSBhcyBDb21wb25lbnRcblxuICBpZiAocHJvcHMudHlwZSAmJiBwYXlsb2FkLnR5cGUpIGNvbnRhaW5lci50eXBlID0gcGF5bG9hZC50eXBlXG4gIGlmIChwcm9wcy5pZCAmJiBwYXlsb2FkLmlkKSBjb250YWluZXIuaWQgPSBwYXlsb2FkLmlkXG4gIGlmIChwcm9wcy5hY2NlbnRDb2xvciAmJiBwYXlsb2FkLmFjY2VudF9jb2xvcikgY29udGFpbmVyLmFjY2VudENvbG9yID0gcGF5bG9hZC5hY2NlbnRfY29sb3JcbiAgaWYgKHByb3BzLnNwb2lsZXIgJiYgcGF5bG9hZC5zcG9pbGVyKSBjb250YWluZXIuc3BvaWxlciA9IHBheWxvYWQuc3BvaWxlclxuICBpZiAocHJvcHMuY29tcG9uZW50cyAmJiBwYXlsb2FkLmNvbXBvbmVudHMpIGNvbnRhaW5lci5jb21wb25lbnRzID0gcGF5bG9hZC5jb21wb25lbnRzLm1hcCgoY29tcG9uZW50KSA9PiBib3QudHJhbnNmb3JtZXJzLmNvbXBvbmVudChib3QsIGNvbXBvbmVudCkpXG5cbiAgcmV0dXJuIGNvbnRhaW5lclxufVxuXG5mdW5jdGlvbiB0cmFuc2Zvcm1CdXR0b25Db21wb25lbnQoYm90OiBCb3QsIHBheWxvYWQ6IERpc2NvcmRCdXR0b25Db21wb25lbnQpOiBDb21wb25lbnQge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuY29tcG9uZW50XG4gIGNvbnN0IGJ1dHRvbiA9IHt9IGFzIENvbXBvbmVudFxuXG4gIGlmIChwcm9wcy50eXBlICYmIHBheWxvYWQudHlwZSkgYnV0dG9uLnR5cGUgPSBwYXlsb2FkLnR5cGVcbiAgaWYgKHByb3BzLmlkICYmIHBheWxvYWQuaWQpIGJ1dHRvbi5pZCA9IHBheWxvYWQuaWRcbiAgaWYgKHByb3BzLmxhYmVsICYmIHBheWxvYWQubGFiZWwpIGJ1dHRvbi5sYWJlbCA9IHBheWxvYWQubGFiZWxcbiAgaWYgKHByb3BzLmN1c3RvbUlkICYmIHBheWxvYWQuY3VzdG9tX2lkKSBidXR0b24uY3VzdG9tSWQgPSBwYXlsb2FkLmN1c3RvbV9pZFxuICBpZiAocHJvcHMuc3R5bGUgJiYgcGF5bG9hZC5zdHlsZSkgYnV0dG9uLnN0eWxlID0gcGF5bG9hZC5zdHlsZVxuICBpZiAocHJvcHMuZW1vamkgJiYgcGF5bG9hZC5lbW9qaSkgYnV0dG9uLmVtb2ppID0gYm90LnRyYW5zZm9ybWVycy5lbW9qaShib3QsIHBheWxvYWQuZW1vamkpXG4gIGlmIChwcm9wcy51cmwgJiYgcGF5bG9hZC51cmwpIGJ1dHRvbi51cmwgPSBwYXlsb2FkLnVybFxuICBpZiAocHJvcHMuZGlzYWJsZWQgJiYgcGF5bG9hZC5kaXNhYmxlZCkgYnV0dG9uLmRpc2FibGVkID0gcGF5bG9hZC5kaXNhYmxlZFxuICBpZiAocHJvcHMuc2t1SWQgJiYgcGF5bG9hZC5za3VfaWQpIGJ1dHRvbi5za3VJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuc2t1X2lkKVxuXG4gIHJldHVybiBidXR0b25cbn1cblxuZnVuY3Rpb24gdHJhbnNmb3JtSW5wdXRUZXh0Q29tcG9uZW50KGJvdDogQm90LCBwYXlsb2FkOiBEaXNjb3JkVGV4dElucHV0Q29tcG9uZW50KTogQ29tcG9uZW50IHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmNvbXBvbmVudFxuICBjb25zdCBpbnB1dCA9IHt9IGFzIENvbXBvbmVudFxuXG4gIGlmIChwcm9wcy50eXBlICYmIHBheWxvYWQudHlwZSkgaW5wdXQudHlwZSA9IHBheWxvYWQudHlwZVxuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5pZCkgaW5wdXQuaWQgPSBwYXlsb2FkLmlkXG4gIGlmIChwcm9wcy5zdHlsZSAmJiBwYXlsb2FkLnN0eWxlKSBpbnB1dC5zdHlsZSA9IHBheWxvYWQuc3R5bGVcbiAgaWYgKHByb3BzLnJlcXVpcmVkICYmIHBheWxvYWQucmVxdWlyZWQpIGlucHV0LnJlcXVpcmVkID0gcGF5bG9hZC5yZXF1aXJlZFxuICBpZiAocHJvcHMuY3VzdG9tSWQgJiYgcGF5bG9hZC5jdXN0b21faWQpIGlucHV0LmN1c3RvbUlkID0gcGF5bG9hZC5jdXN0b21faWRcbiAgaWYgKHByb3BzLmxhYmVsICYmIHBheWxvYWQubGFiZWwpIGlucHV0LmxhYmVsID0gcGF5bG9hZC5sYWJlbFxuICBpZiAocHJvcHMucGxhY2Vob2xkZXIgJiYgcGF5bG9hZC5wbGFjZWhvbGRlcikgaW5wdXQucGxhY2Vob2xkZXIgPSBwYXlsb2FkLnBsYWNlaG9sZGVyXG4gIGlmIChwcm9wcy5taW5MZW5ndGggJiYgcGF5bG9hZC5taW5fbGVuZ3RoKSBpbnB1dC5taW5MZW5ndGggPSBwYXlsb2FkLm1pbl9sZW5ndGhcbiAgaWYgKHByb3BzLm1heExlbmd0aCAmJiBwYXlsb2FkLm1heF9sZW5ndGgpIGlucHV0Lm1heExlbmd0aCA9IHBheWxvYWQubWF4X2xlbmd0aFxuICBpZiAocHJvcHMudmFsdWUgJiYgcGF5bG9hZC52YWx1ZSkgaW5wdXQudmFsdWUgPSBwYXlsb2FkLnZhbHVlXG5cbiAgcmV0dXJuIGlucHV0XG59XG5cbmZ1bmN0aW9uIHRyYW5zZm9ybVNlbGVjdE1lbnVDb21wb25lbnQoYm90OiBCb3QsIHBheWxvYWQ6IERpc2NvcmRTZWxlY3RNZW51Q29tcG9uZW50KTogQ29tcG9uZW50IHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmNvbXBvbmVudFxuICBjb25zdCBzZWxlY3QgPSB7fSBhcyBDb21wb25lbnRcblxuICBpZiAocHJvcHMudHlwZSAmJiBwYXlsb2FkLnR5cGUpIHNlbGVjdC50eXBlID0gcGF5bG9hZC50eXBlXG4gIGlmIChwcm9wcy5pZCAmJiBwYXlsb2FkLmlkKSBzZWxlY3QuaWQgPSBwYXlsb2FkLmlkXG4gIGlmIChwcm9wcy5jdXN0b21JZCAmJiBwYXlsb2FkLmN1c3RvbV9pZCkgc2VsZWN0LmN1c3RvbUlkID0gcGF5bG9hZC5jdXN0b21faWRcbiAgaWYgKHByb3BzLnBsYWNlaG9sZGVyICYmIHBheWxvYWQucGxhY2Vob2xkZXIpIHNlbGVjdC5wbGFjZWhvbGRlciA9IHBheWxvYWQucGxhY2Vob2xkZXJcbiAgaWYgKHByb3BzLm1pblZhbHVlcyAmJiBwYXlsb2FkLm1pbl92YWx1ZXMpIHNlbGVjdC5taW5WYWx1ZXMgPSBwYXlsb2FkLm1pbl92YWx1ZXNcbiAgaWYgKHByb3BzLm1heFZhbHVlcyAmJiBwYXlsb2FkLm1heF92YWx1ZXMpIHNlbGVjdC5tYXhWYWx1ZXMgPSBwYXlsb2FkLm1heF92YWx1ZXNcbiAgaWYgKHByb3BzLmRlZmF1bHRWYWx1ZXMgJiYgcGF5bG9hZC5kZWZhdWx0X3ZhbHVlcylcbiAgICBzZWxlY3QuZGVmYXVsdFZhbHVlcyA9IHBheWxvYWQuZGVmYXVsdF92YWx1ZXMubWFwKChkZWZhdWx0VmFsdWUpID0+ICh7XG4gICAgICBpZDogYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoZGVmYXVsdFZhbHVlLmlkKSxcbiAgICAgIHR5cGU6IGRlZmF1bHRWYWx1ZS50eXBlLFxuICAgIH0pKVxuICBpZiAocHJvcHMuY2hhbm5lbFR5cGVzICYmIHBheWxvYWQuY2hhbm5lbF90eXBlcykgc2VsZWN0LmNoYW5uZWxUeXBlcyA9IHBheWxvYWQuY2hhbm5lbF90eXBlc1xuICBpZiAocHJvcHMub3B0aW9ucyAmJiBwYXlsb2FkLm9wdGlvbnMpXG4gICAgc2VsZWN0Lm9wdGlvbnMgPSBwYXlsb2FkLm9wdGlvbnMubWFwKChvcHRpb24pID0+ICh7XG4gICAgICBsYWJlbDogb3B0aW9uLmxhYmVsLFxuICAgICAgdmFsdWU6IG9wdGlvbi52YWx1ZSxcbiAgICAgIGRlc2NyaXB0aW9uOiBvcHRpb24uZGVzY3JpcHRpb24sXG4gICAgICBlbW9qaTogb3B0aW9uLmVtb2ppXG4gICAgICAgID8ge1xuICAgICAgICAgICAgaWQ6IG9wdGlvbi5lbW9qaS5pZCA/IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKG9wdGlvbi5lbW9qaS5pZCkgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBuYW1lOiBvcHRpb24uZW1vamkubmFtZSxcbiAgICAgICAgICAgIGFuaW1hdGVkOiBvcHRpb24uZW1vamkuYW5pbWF0ZWQsXG4gICAgICAgICAgfVxuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgIGRlZmF1bHQ6IG9wdGlvbi5kZWZhdWx0LFxuICAgIH0pKVxuICBpZiAocHJvcHMuZGlzYWJsZWQgJiYgcGF5bG9hZC5kaXNhYmxlZCkgc2VsZWN0LmRpc2FibGVkID0gcGF5bG9hZC5kaXNhYmxlZFxuXG4gIHJldHVybiBzZWxlY3Rcbn1cblxuZnVuY3Rpb24gdHJhbnNmb3JtU2VjdGlvbkNvbXBvbmVudChib3Q6IEJvdCwgcGF5bG9hZDogRGlzY29yZFNlY3Rpb25Db21wb25lbnQpOiBDb21wb25lbnQge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuY29tcG9uZW50XG4gIGNvbnN0IHNlY3Rpb24gPSB7fSBhcyBDb21wb25lbnRcblxuICBpZiAocHJvcHMudHlwZSAmJiBwYXlsb2FkLnR5cGUpIHNlY3Rpb24udHlwZSA9IHBheWxvYWQudHlwZVxuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5pZCkgc2VjdGlvbi5pZCA9IHBheWxvYWQuaWRcbiAgaWYgKHByb3BzLmNvbXBvbmVudHMgJiYgcGF5bG9hZC5jb21wb25lbnRzKSBzZWN0aW9uLmNvbXBvbmVudHMgPSBwYXlsb2FkLmNvbXBvbmVudHMubWFwKChjb21wb25lbnQpID0+IGJvdC50cmFuc2Zvcm1lcnMuY29tcG9uZW50KGJvdCwgY29tcG9uZW50KSlcbiAgaWYgKHByb3BzLmFjY2Vzc29yeSAmJiBwYXlsb2FkLmFjY2Vzc29yeSkgc2VjdGlvbi5hY2Nlc3NvcnkgPSBib3QudHJhbnNmb3JtZXJzLmNvbXBvbmVudChib3QsIHBheWxvYWQuYWNjZXNzb3J5KVxuXG4gIHJldHVybiBzZWN0aW9uXG59XG5cbmZ1bmN0aW9uIHRyYW5zZm9ybVRodW1ibmFpbENvbXBvbmVudChib3Q6IEJvdCwgcGF5bG9hZDogRGlzY29yZFRodW1ibmFpbENvbXBvbmVudCk6IENvbXBvbmVudCB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5jb21wb25lbnRcbiAgY29uc3QgdGh1bWJuYWlsID0ge30gYXMgQ29tcG9uZW50XG5cbiAgaWYgKHByb3BzLnR5cGUgJiYgcGF5bG9hZC50eXBlKSB0aHVtYm5haWwudHlwZSA9IHBheWxvYWQudHlwZVxuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5pZCkgdGh1bWJuYWlsLmlkID0gcGF5bG9hZC5pZFxuICBpZiAocHJvcHMubWVkaWEgJiYgcGF5bG9hZC5tZWRpYSkgdGh1bWJuYWlsLm1lZGlhID0gYm90LnRyYW5zZm9ybWVycy51bmZ1cmxlZE1lZGlhSXRlbShib3QsIHBheWxvYWQubWVkaWEpXG4gIGlmIChwcm9wcy5kZXNjcmlwdGlvbiAmJiBwYXlsb2FkLmRlc2NyaXB0aW9uKSB0aHVtYm5haWwuZGVzY3JpcHRpb24gPSBwYXlsb2FkLmRlc2NyaXB0aW9uXG4gIGlmIChwcm9wcy5zcG9pbGVyICYmIHBheWxvYWQuc3BvaWxlcikgdGh1bWJuYWlsLnNwb2lsZXIgPSBwYXlsb2FkLnNwb2lsZXJcblxuICByZXR1cm4gdGh1bWJuYWlsXG59XG5cbmZ1bmN0aW9uIHRyYW5zZm9ybU1lZGlhR2FsbGVyeUNvbXBvbmVudChib3Q6IEJvdCwgcGF5bG9hZDogRGlzY29yZE1lZGlhR2FsbGVyeUNvbXBvbmVudCk6IENvbXBvbmVudCB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5jb21wb25lbnRcbiAgY29uc3QgbWVkaWFHYWxsZXJ5ID0ge30gYXMgQ29tcG9uZW50XG5cbiAgaWYgKHByb3BzLnR5cGUgJiYgcGF5bG9hZC50eXBlKSBtZWRpYUdhbGxlcnkudHlwZSA9IHBheWxvYWQudHlwZVxuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5pZCkgbWVkaWFHYWxsZXJ5LmlkID0gcGF5bG9hZC5pZFxuICBpZiAocHJvcHMuaXRlbXMgJiYgcGF5bG9hZC5pdGVtcykgbWVkaWFHYWxsZXJ5Lml0ZW1zID0gcGF5bG9hZC5pdGVtcy5tYXAoKGl0ZW0pID0+IGJvdC50cmFuc2Zvcm1lcnMubWVkaWFHYWxsZXJ5SXRlbShib3QsIGl0ZW0pKVxuXG4gIHJldHVybiBtZWRpYUdhbGxlcnlcbn1cblxuZnVuY3Rpb24gdHJhbnNmb3JtRmlsZUNvbXBvbmVudChib3Q6IEJvdCwgcGF5bG9hZDogRGlzY29yZEZpbGVDb21wb25lbnQpOiBDb21wb25lbnQge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuY29tcG9uZW50XG4gIGNvbnN0IGZpbGUgPSB7fSBhcyBDb21wb25lbnRcblxuICBpZiAocHJvcHMudHlwZSAmJiBwYXlsb2FkLnR5cGUpIGZpbGUudHlwZSA9IHBheWxvYWQudHlwZVxuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5pZCkgZmlsZS5pZCA9IHBheWxvYWQuaWRcbiAgaWYgKHByb3BzLmZpbGUgJiYgcGF5bG9hZC5maWxlKSBmaWxlLmZpbGUgPSBib3QudHJhbnNmb3JtZXJzLnVuZnVybGVkTWVkaWFJdGVtKGJvdCwgcGF5bG9hZC5maWxlKVxuICBpZiAocHJvcHMuc3BvaWxlciAmJiBwYXlsb2FkLnNwb2lsZXIpIGZpbGUuc3BvaWxlciA9IHBheWxvYWQuc3BvaWxlclxuICBpZiAocHJvcHMubmFtZSAmJiBwYXlsb2FkLm5hbWUpIGZpbGUubmFtZSA9IHBheWxvYWQubmFtZVxuICBpZiAocHJvcHMuc2l6ZSAmJiBwYXlsb2FkLnNpemUpIGZpbGUuc2l6ZSA9IHBheWxvYWQuc2l6ZVxuXG4gIHJldHVybiBmaWxlXG59XG5cbmZ1bmN0aW9uIHRyYW5zZm9ybVRleHREaXNwbGF5Q29tcG9uZW50KGJvdDogQm90LCBwYXlsb2FkOiBEaXNjb3JkVGV4dERpc3BsYXlDb21wb25lbnQpOiBDb21wb25lbnQge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuY29tcG9uZW50XG4gIGNvbnN0IHRleHREaXNwbGF5ID0ge30gYXMgQ29tcG9uZW50XG5cbiAgaWYgKHByb3BzLnR5cGUgJiYgcGF5bG9hZC50eXBlKSB0ZXh0RGlzcGxheS50eXBlID0gcGF5bG9hZC50eXBlXG4gIGlmIChwcm9wcy5pZCAmJiBwYXlsb2FkLmlkKSB0ZXh0RGlzcGxheS5pZCA9IHBheWxvYWQuaWRcbiAgaWYgKHByb3BzLmNvbnRlbnQgJiYgcGF5bG9hZC5jb250ZW50KSB0ZXh0RGlzcGxheS5jb250ZW50ID0gcGF5bG9hZC5jb250ZW50XG5cbiAgcmV0dXJuIHRleHREaXNwbGF5XG59XG5cbmZ1bmN0aW9uIHRyYW5zZm9ybVNlcGFyYXRvckNvbXBvbmVudChib3Q6IEJvdCwgcGF5bG9hZDogRGlzY29yZFNlcGFyYXRvckNvbXBvbmVudCk6IENvbXBvbmVudCB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5jb21wb25lbnRcbiAgY29uc3Qgc2VwYXJhdG9yID0ge30gYXMgQ29tcG9uZW50XG5cbiAgaWYgKHByb3BzLnR5cGUgJiYgcGF5bG9hZC50eXBlKSBzZXBhcmF0b3IudHlwZSA9IHBheWxvYWQudHlwZVxuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5pZCkgc2VwYXJhdG9yLmlkID0gcGF5bG9hZC5pZFxuICBpZiAocHJvcHMuZGl2aWRlciAmJiBwYXlsb2FkLmRpdmlkZXIpIHNlcGFyYXRvci5kaXZpZGVyID0gcGF5bG9hZC5kaXZpZGVyXG4gIGlmIChwcm9wcy5zcGFjaW5nICYmIHBheWxvYWQuc3BhY2luZykgc2VwYXJhdG9yLnNwYWNpbmcgPSBwYXlsb2FkLnNwYWNpbmdcblxuICByZXR1cm4gc2VwYXJhdG9yXG59XG4iXSwibmFtZXMiOlsidHJhbnNmb3JtQ29tcG9uZW50IiwidHJhbnNmb3JtTWVkaWFHYWxsZXJ5SXRlbSIsInRyYW5zZm9ybVVuZnVybGVkTWVkaWFJdGVtIiwiYm90IiwicGF5bG9hZCIsImNvbXBvbmVudCIsInR5cGUiLCJNZXNzYWdlQ29tcG9uZW50VHlwZXMiLCJBY3Rpb25Sb3ciLCJ0cmFuc2Zvcm1BY3Rpb25Sb3ciLCJCdXR0b24iLCJ0cmFuc2Zvcm1CdXR0b25Db21wb25lbnQiLCJDb250YWluZXIiLCJ0cmFuc2Zvcm1Db250YWluZXJDb21wb25lbnQiLCJUZXh0SW5wdXQiLCJ0cmFuc2Zvcm1JbnB1dFRleHRDb21wb25lbnQiLCJTdHJpbmdTZWxlY3QiLCJVc2VyU2VsZWN0IiwiUm9sZVNlbGVjdCIsIk1lbnRpb25hYmxlU2VsZWN0IiwiQ2hhbm5lbFNlbGVjdCIsInRyYW5zZm9ybVNlbGVjdE1lbnVDb21wb25lbnQiLCJTZWN0aW9uIiwidHJhbnNmb3JtU2VjdGlvbkNvbXBvbmVudCIsIlRodW1ibmFpbCIsInRyYW5zZm9ybVRodW1ibmFpbENvbXBvbmVudCIsIk1lZGlhR2FsbGVyeSIsInRyYW5zZm9ybU1lZGlhR2FsbGVyeUNvbXBvbmVudCIsIkZpbGUiLCJ0cmFuc2Zvcm1GaWxlQ29tcG9uZW50IiwiU2VwYXJhdG9yIiwidHJhbnNmb3JtU2VwYXJhdG9yQ29tcG9uZW50IiwiVGV4dERpc3BsYXkiLCJ0cmFuc2Zvcm1UZXh0RGlzcGxheUNvbXBvbmVudCIsInRyYW5zZm9ybWVycyIsImN1c3RvbWl6ZXJzIiwicHJvcHMiLCJkZXNpcmVkUHJvcGVydGllcyIsInVuZnVybGVkTWVkaWFJdGVtIiwibWVkaWFJdGVtIiwidXJsIiwicHJveHlVcmwiLCJwcm94eV91cmwiLCJoZWlnaHQiLCJ3aWR0aCIsImNvbnRlbnRUeXBlIiwiY29udGVudF90eXBlIiwiYXR0YWNobWVudElkIiwiYXR0YWNobWVudF9pZCIsInNub3dmbGFrZSIsIm1lZGlhR2FsbGVyeUl0ZW0iLCJnYWxsZXJ5SXRlbSIsIm1lZGlhIiwiZGVzY3JpcHRpb24iLCJzcG9pbGVyIiwiYWN0aW9uUm93IiwiaWQiLCJjb21wb25lbnRzIiwibWFwIiwiY29udGFpbmVyIiwiYWNjZW50Q29sb3IiLCJhY2NlbnRfY29sb3IiLCJidXR0b24iLCJsYWJlbCIsImN1c3RvbUlkIiwiY3VzdG9tX2lkIiwic3R5bGUiLCJlbW9qaSIsImRpc2FibGVkIiwic2t1SWQiLCJza3VfaWQiLCJpbnB1dCIsInJlcXVpcmVkIiwicGxhY2Vob2xkZXIiLCJtaW5MZW5ndGgiLCJtaW5fbGVuZ3RoIiwibWF4TGVuZ3RoIiwibWF4X2xlbmd0aCIsInZhbHVlIiwic2VsZWN0IiwibWluVmFsdWVzIiwibWluX3ZhbHVlcyIsIm1heFZhbHVlcyIsIm1heF92YWx1ZXMiLCJkZWZhdWx0VmFsdWVzIiwiZGVmYXVsdF92YWx1ZXMiLCJkZWZhdWx0VmFsdWUiLCJjaGFubmVsVHlwZXMiLCJjaGFubmVsX3R5cGVzIiwib3B0aW9ucyIsIm9wdGlvbiIsInVuZGVmaW5lZCIsIm5hbWUiLCJhbmltYXRlZCIsImRlZmF1bHQiLCJzZWN0aW9uIiwiYWNjZXNzb3J5IiwidGh1bWJuYWlsIiwibWVkaWFHYWxsZXJ5IiwiaXRlbXMiLCJpdGVtIiwiZmlsZSIsInNpemUiLCJ0ZXh0RGlzcGxheSIsImNvbnRlbnQiLCJzZXBhcmF0b3IiLCJkaXZpZGVyIiwic3BhY2luZyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7UUF3QmdCQTtlQUFBQTs7UUE2REFDO2VBQUFBOztRQWRBQztlQUFBQTs7O3VCQTFEVDtBQVdBLFNBQVNGLG1CQUFtQkcsR0FBUSxFQUFFQyxPQUFnQztJQUMzRSxJQUFJQztJQUVKLGtJQUFrSTtJQUNsSSxPQUFRRCxRQUFRRSxJQUFJO1FBQ2xCLEtBQUtDLDRCQUFxQixDQUFDQyxTQUFTO1lBQ2xDSCxZQUFZSSxtQkFBbUJOLEtBQUtDO1lBQ3BDO1FBQ0YsS0FBS0csNEJB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
@@ -5,17 +5,17 @@ Object.defineProperty(exports, "__esModule", {
5
5
  function _export(target, all) {
6
6
  for(var name in all)Object.defineProperty(target, name, {
7
7
  enumerable: true,
8
- get: all[name]
8
+ get: Object.getOwnPropertyDescriptor(all, name).get
9
9
  });
10
10
  }
11
11
  _export(exports, {
12
- baseEmoji: function() {
12
+ get baseEmoji () {
13
13
  return baseEmoji;
14
14
  },
15
- transformDefaultReactionEmoji: function() {
15
+ get transformDefaultReactionEmoji () {
16
16
  return transformDefaultReactionEmoji;
17
17
  },
18
- transformEmoji: function() {
18
+ get transformEmoji () {
19
19
  return transformEmoji;
20
20
  }
21
21
  });
@@ -54,4 +54,4 @@ function transformDefaultReactionEmoji(bot, payload) {
54
54
  return bot.transformers.customizers.defaultReactionEmoji(bot, payload, defaultReactionEmoji);
55
55
  }
56
56
 
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvZW1vamkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBEaXNjb3JkRGVmYXVsdFJlYWN0aW9uRW1vamksIERpc2NvcmRFbW9qaSB9IGZyb20gJ0BkaXNjb3JkZW5vL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBEZWZhdWx0UmVhY3Rpb25FbW9qaSwgRW1vamksIEludGVybmFsQm90IH0gZnJvbSAnLi4vaW5kZXguanMnXG5pbXBvcnQgeyBFbW9qaVRvZ2dsZXMgfSBmcm9tICcuL3RvZ2dsZXMvZW1vamkuanMnXG5cbmV4cG9ydCBjb25zdCBiYXNlRW1vamk6IEludGVybmFsQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnZW1vamknXSA9IHtcbiAgLy8gVGhpcyBhbGxvd3MgdHlwZXNjcmlwdCB0byBzdGlsbCBjaGVjayBmb3IgdHlwZSBlcnJvcnMgb24gZnVuY3Rpb25zIGJlbG93XG4gIC4uLih1bmRlZmluZWQgYXMgdW5rbm93biBhcyBJbnRlcm5hbEJvdFsndHJhbnNmb3JtZXJzJ11bJyRpbmZlcnJlZFR5cGVzJ11bJ2Vtb2ppJ10pLFxuXG4gIGdldCBhbmltYXRlZCgpIHtcbiAgICByZXR1cm4gdGhpcy50b2dnbGVzPy5hbmltYXRlZFxuICB9LFxuICBnZXQgcmVxdWlyZUNvbG9ucygpIHtcbiAgICByZXR1cm4gdGhpcy50b2dnbGVzPy5yZXF1aXJlQ29sb25zXG4gIH0sXG4gIGdldCBtYW5hZ2VkKCkge1xuICAgIHJldHVybiB0aGlzLnRvZ2dsZXM/Lm1hbmFnZWRcbiAgfSxcbiAgZ2V0IGF2YWlsYWJsZSgpIHtcbiAgICByZXR1cm4gdGhpcy50b2dnbGVzLmF2YWlsYWJsZVxuICB9LFxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtRW1vamkoYm90OiBJbnRlcm5hbEJvdCwgcGF5bG9hZDogRGlzY29yZEVtb2ppKTogdHlwZW9mIGJvdC50cmFuc2Zvcm1lcnMuJGluZmVycmVkVHlwZXMuZW1vamkge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuZW1vamlcbiAgY29uc3QgZW1vamkgPSBPYmplY3QuY3JlYXRlKGJhc2VFbW9qaSkgYXMgRW1vamlcblxuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5pZCkgZW1vamkuaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmlkKVxuICBpZiAocHJvcHMubmFtZSAmJiBwYXlsb2FkLm5hbWUpIGVtb2ppLm5hbWUgPSBwYXlsb2FkLm5hbWVcbiAgaWYgKHByb3BzLnJvbGVzICYmIHBheWxvYWQucm9sZXMpIGVtb2ppLnJvbGVzID0gcGF5bG9hZC5yb2xlcy5tYXAoKGlkKSA9PiBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShpZCkpXG4gIGlmIChwcm9wcy51c2VyICYmIHBheWxvYWQudXNlcikgZW1vamkudXNlciA9IGJvdC50cmFuc2Zvcm1lcnMudXNlcihib3QsIHBheWxvYWQudXNlcilcblxuICBlbW9qaS50b2dnbGVzID0gbmV3IEVtb2ppVG9nZ2xlcyhwYXlsb2FkKVxuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLmVtb2ppKGJvdCwgcGF5bG9hZCwgZW1vamkpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1EZWZhdWx0UmVhY3Rpb25FbW9qaShcbiAgYm90OiBJbnRlcm5hbEJvdCxcbiAgcGF5bG9hZDogRGlzY29yZERlZmF1bHRSZWFjdGlvbkVtb2ppLFxuKTogdHlwZW9mIGJvdC50cmFuc2Zvcm1lcnMuJGluZmVycmVkVHlwZXMuZGVmYXVsdFJlYWN0aW9uRW1vamkge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuZGVmYXVsdFJlYWN0aW9uRW1vamlcbiAgY29uc3QgZGVmYXVsdFJlYWN0aW9uRW1vamkgPSB7fSBhcyBEZWZhdWx0UmVhY3Rpb25FbW9qaVxuXG4gIGlmIChwcm9wcy5lbW9qaUlkICYmIHBheWxvYWQuZW1vamlfaWQpIGRlZmF1bHRSZWFjdGlvbkVtb2ppLmVtb2ppSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmVtb2ppX2lkKVxuICBpZiAocHJvcHMuZW1vamlOYW1lICYmIHBheWxvYWQuZW1vamlfbmFtZSkgZGVmYXVsdFJlYWN0aW9uRW1vamkuZW1vamlOYW1lID0gcGF5bG9hZC5lbW9qaV9uYW1lXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMuZGVmYXVsdFJlYWN0aW9uRW1vamkoYm90LCBwYXlsb2FkLCBkZWZhdWx0UmVhY3Rpb25FbW9qaSlcbn1cbiJdLCJuYW1lcyI6WyJiYXNlRW1vamkiLCJ0cmFuc2Zvcm1EZWZhdWx0UmVhY3Rpb25FbW9qaSIsInRyYW5zZm9ybUVtb2ppIiwidW5kZWZpbmVkIiwiYW5pbWF0ZWQiLCJ0b2dnbGVzIiwicmVxdWlyZUNvbG9ucyIsIm1hbmFnZWQiLCJhdmFpbGFibGUiLCJib3QiLCJwYXlsb2FkIiwicHJvcHMiLCJ0cmFuc2Zvcm1lcnMiLCJkZXNpcmVkUHJvcGVydGllcyIsImVtb2ppIiwiT2JqZWN0IiwiY3JlYXRlIiwiaWQiLCJzbm93Zmxha2UiLCJuYW1lIiwicm9sZXMiLCJtYXAiLCJ1c2VyIiwiRW1vamlUb2dnbGVzIiwiY3VzdG9taXplcnMiLCJkZWZhdWx0UmVhY3Rpb25FbW9qaSIsImVtb2ppSWQiLCJlbW9qaV9pZCIsImVtb2ppTmFtZSIsImVtb2ppX25hbWUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0lBSWFBLFNBQVM7ZUFBVEE7O0lBZ0NHQyw2QkFBNkI7ZUFBN0JBOztJQWRBQyxjQUFjO2VBQWRBOzs7dUJBcEJhO0FBRXRCLE1BQU1GLFlBQW9FO0lBQy9FLDJFQUEyRTtJQUMzRSxHQUFJRyxTQUFTO0lBRWIsSUFBSUMsWUFBVztRQUNiLE9BQU8sSUFBSSxDQUFDQyxPQUFPLEVBQUVEO0lBQ3ZCO0lBQ0EsSUFBSUUsaUJBQWdCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDRCxPQUFPLEVBQUVDO0lBQ3ZCO0lBQ0EsSUFBSUMsV0FBVTtRQUNaLE9BQU8sSUFBSSxDQUFDRixPQUFPLEVBQUVFO0lBQ3ZCO0lBQ0EsSUFBSUMsYUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDSCxPQUFPLENBQUNHLFNBQVM7SUFDL0I7QUFDRjtBQUVPLFNBQVNOLGVBQWVPLEdBQWdCLEVBQUVDLE9BQXFCO0lBQ3BFLE1BQU1DLFFBQVFGLElBQUlHLFlBQVksQ0FBQ0MsaUJBQWlCLENBQUNDLEtBQUs7SUFDdEQsTUFBTUEsUUFBUUMsT0FBT0MsTUFBTSxDQUFDaEI7SUFFNUIsSUFBSVcsTUFBTU0sRUFBRSxJQUFJUCxRQUFRTyxFQUFFLEVBQUVILE1BQU1HLEVBQUUsR0FBR1IsSUFBSUcsWUFBWSxDQUFDTSxTQUFTLENBQUNSLFFBQVFPLEVBQUU7SUFDNUUsSUFBSU4sTUFBTVEsSUFBSSxJQUFJVCxRQUFRUyxJQUFJLEVBQUVMLE1BQU1LLElBQUksR0FBR1QsUUFBUVMsSUFBSTtJQUN6RCxJQUFJUixNQUFNUyxLQUFLLElBQUlWLFFBQVFVLEtBQUssRUFBRU4sTUFBTU0sS0FBSyxHQUFHVixRQUFRVSxLQUFLLENBQUNDLEdBQUcsQ0FBQyxDQUFDSixLQUFPUixJQUFJRyxZQUFZLENBQUNNLFNBQVMsQ0FBQ0Q7SUFDckcsSUFBSU4sTUFBTVcsSUFBSSxJQUFJWixRQUFRWSxJQUFJLEVBQUVSLE1BQU1RLElBQUksR0FBR2IsSUFBSUcsWUFBWSxDQUFDVSxJQUFJLENBQUNiLEtBQUtDLFFBQVFZLElBQUk7SUFFcEZSLE1BQU1ULE9BQU8sR0FBRyxJQUFJa0IsbUJBQVksQ0FBQ2I7SUFFakMsT0FBT0QsSUFBSUcsWUFBWSxDQUFDWSxXQUFXLENBQUNWLEtBQUssQ0FBQ0wsS0FBS0MsU0FBU0k7QUFDMUQ7QUFFTyxTQUFTYiw4QkFDZFEsR0FBZ0IsRUFDaEJDLE9BQW9DO0lBRXBDLE1BQU1DLFFBQVFGLElBQUlHLFlBQVksQ0FBQ0MsaUJBQWlCLENBQUNZLG9CQUFvQjtJQUNyRSxNQUFNQSx1QkFBdUIsQ0FBQztJQUU5QixJQUFJZCxNQUFNZSxPQUFPLElBQUloQixRQUFRaUIsUUFBUSxFQUFFRixxQkFBcUJDLE9BQU8sR0FBR2pCLElBQUlHLFlBQVksQ0FBQ00sU0FBUyxDQUFDUixRQUFRaUIsUUFBUTtJQUNqSCxJQUFJaEIsTUFBTWlCLFNBQVMsSUFBSWxCLFFBQVFtQixVQUFVLEVBQUVKLHFCQUFxQkcsU0FBUyxHQUFHbEIsUUFBUW1CLFVBQVU7SUFFOUYsT0FBT3BCLElBQUlHLFlBQVksQ0FBQ1ksV0FBVyxDQUFDQyxvQkFBb0IsQ0FBQ2hCLEtBQUtDLFNBQVNlO0FBQ3pFIn0=
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvZW1vamkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBEaXNjb3JkRGVmYXVsdFJlYWN0aW9uRW1vamksIERpc2NvcmRFbW9qaSB9IGZyb20gJ0BkaXNjb3JkZW5vL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBEZWZhdWx0UmVhY3Rpb25FbW9qaSwgRW1vamksIEludGVybmFsQm90IH0gZnJvbSAnLi4vaW5kZXguanMnXG5pbXBvcnQgeyBFbW9qaVRvZ2dsZXMgfSBmcm9tICcuL3RvZ2dsZXMvZW1vamkuanMnXG5cbmV4cG9ydCBjb25zdCBiYXNlRW1vamk6IEludGVybmFsQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnZW1vamknXSA9IHtcbiAgLy8gVGhpcyBhbGxvd3MgdHlwZXNjcmlwdCB0byBzdGlsbCBjaGVjayBmb3IgdHlwZSBlcnJvcnMgb24gZnVuY3Rpb25zIGJlbG93XG4gIC4uLih1bmRlZmluZWQgYXMgdW5rbm93biBhcyBJbnRlcm5hbEJvdFsndHJhbnNmb3JtZXJzJ11bJyRpbmZlcnJlZFR5cGVzJ11bJ2Vtb2ppJ10pLFxuXG4gIGdldCBhbmltYXRlZCgpIHtcbiAgICByZXR1cm4gdGhpcy50b2dnbGVzPy5hbmltYXRlZFxuICB9LFxuICBnZXQgcmVxdWlyZUNvbG9ucygpIHtcbiAgICByZXR1cm4gdGhpcy50b2dnbGVzPy5yZXF1aXJlQ29sb25zXG4gIH0sXG4gIGdldCBtYW5hZ2VkKCkge1xuICAgIHJldHVybiB0aGlzLnRvZ2dsZXM/Lm1hbmFnZWRcbiAgfSxcbiAgZ2V0IGF2YWlsYWJsZSgpIHtcbiAgICByZXR1cm4gdGhpcy50b2dnbGVzLmF2YWlsYWJsZVxuICB9LFxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtRW1vamkoYm90OiBJbnRlcm5hbEJvdCwgcGF5bG9hZDogRGlzY29yZEVtb2ppKTogdHlwZW9mIGJvdC50cmFuc2Zvcm1lcnMuJGluZmVycmVkVHlwZXMuZW1vamkge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuZW1vamlcbiAgY29uc3QgZW1vamkgPSBPYmplY3QuY3JlYXRlKGJhc2VFbW9qaSkgYXMgRW1vamlcblxuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5pZCkgZW1vamkuaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmlkKVxuICBpZiAocHJvcHMubmFtZSAmJiBwYXlsb2FkLm5hbWUpIGVtb2ppLm5hbWUgPSBwYXlsb2FkLm5hbWVcbiAgaWYgKHByb3BzLnJvbGVzICYmIHBheWxvYWQucm9sZXMpIGVtb2ppLnJvbGVzID0gcGF5bG9hZC5yb2xlcy5tYXAoKGlkKSA9PiBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShpZCkpXG4gIGlmIChwcm9wcy51c2VyICYmIHBheWxvYWQudXNlcikgZW1vamkudXNlciA9IGJvdC50cmFuc2Zvcm1lcnMudXNlcihib3QsIHBheWxvYWQudXNlcilcblxuICBlbW9qaS50b2dnbGVzID0gbmV3IEVtb2ppVG9nZ2xlcyhwYXlsb2FkKVxuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLmVtb2ppKGJvdCwgcGF5bG9hZCwgZW1vamkpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1EZWZhdWx0UmVhY3Rpb25FbW9qaShcbiAgYm90OiBJbnRlcm5hbEJvdCxcbiAgcGF5bG9hZDogRGlzY29yZERlZmF1bHRSZWFjdGlvbkVtb2ppLFxuKTogdHlwZW9mIGJvdC50cmFuc2Zvcm1lcnMuJGluZmVycmVkVHlwZXMuZGVmYXVsdFJlYWN0aW9uRW1vamkge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuZGVmYXVsdFJlYWN0aW9uRW1vamlcbiAgY29uc3QgZGVmYXVsdFJlYWN0aW9uRW1vamkgPSB7fSBhcyBEZWZhdWx0UmVhY3Rpb25FbW9qaVxuXG4gIGlmIChwcm9wcy5lbW9qaUlkICYmIHBheWxvYWQuZW1vamlfaWQpIGRlZmF1bHRSZWFjdGlvbkVtb2ppLmVtb2ppSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmVtb2ppX2lkKVxuICBpZiAocHJvcHMuZW1vamlOYW1lICYmIHBheWxvYWQuZW1vamlfbmFtZSkgZGVmYXVsdFJlYWN0aW9uRW1vamkuZW1vamlOYW1lID0gcGF5bG9hZC5lbW9qaV9uYW1lXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMuZGVmYXVsdFJlYWN0aW9uRW1vamkoYm90LCBwYXlsb2FkLCBkZWZhdWx0UmVhY3Rpb25FbW9qaSlcbn1cbiJdLCJuYW1lcyI6WyJiYXNlRW1vamkiLCJ0cmFuc2Zvcm1EZWZhdWx0UmVhY3Rpb25FbW9qaSIsInRyYW5zZm9ybUVtb2ppIiwidW5kZWZpbmVkIiwiYW5pbWF0ZWQiLCJ0b2dnbGVzIiwicmVxdWlyZUNvbG9ucyIsIm1hbmFnZWQiLCJhdmFpbGFibGUiLCJib3QiLCJwYXlsb2FkIiwicHJvcHMiLCJ0cmFuc2Zvcm1lcnMiLCJkZXNpcmVkUHJvcGVydGllcyIsImVtb2ppIiwiT2JqZWN0IiwiY3JlYXRlIiwiaWQiLCJzbm93Zmxha2UiLCJuYW1lIiwicm9sZXMiLCJtYXAiLCJ1c2VyIiwiRW1vamlUb2dnbGVzIiwiY3VzdG9taXplcnMiLCJkZWZhdWx0UmVhY3Rpb25FbW9qaSIsImVtb2ppSWQiLCJlbW9qaV9pZCIsImVtb2ppTmFtZSIsImVtb2ppX25hbWUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O1FBSWFBO2VBQUFBOztRQWdDR0M7ZUFBQUE7O1FBZEFDO2VBQUFBOzs7dUJBcEJhO0FBRXRCLE1BQU1GLFlBQW9FO0lBQy9FLDJFQUEyRTtJQUMzRSxHQUFJRyxTQUFTO0lBRWIsSUFBSUMsWUFBVztRQUNiLE9BQU8sSUFBSSxDQUFDQyxPQUFPLEVBQUVEO0lBQ3ZCO0lBQ0EsSUFBSUUsaUJBQWdCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDRCxPQUFPLEVBQUVDO0lBQ3ZCO0lBQ0EsSUFBSUMsV0FBVTtRQUNaLE9BQU8sSUFBSSxDQUFDRixPQUFPLEVBQUVFO0lBQ3ZCO0lBQ0EsSUFBSUMsYUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDSCxPQUFPLENBQUNHLFNBQVM7SUFDL0I7QUFDRjtBQUVPLFNBQVNOLGVBQWVPLEdBQWdCLEVBQUVDLE9BQXFCO0lBQ3BFLE1BQU1DLFFBQVFGLElBQUlHLFlBQVksQ0FBQ0MsaUJBQWlCLENBQUNDLEtBQUs7SUFDdEQsTUFBTUEsUUFBUUMsT0FBT0MsTUFBTSxDQUFDaEI7SUFFNUIsSUFBSVcsTUFBTU0sRUFBRSxJQUFJUCxRQUFRTyxFQUFFLEVBQUVILE1BQU1HLEVBQUUsR0FBR1IsSUFBSUcsWUFBWSxDQUFDTSxTQUFTLENBQUNSLFFBQVFPLEVBQUU7SUFDNUUsSUFBSU4sTUFBTVEsSUFBSSxJQUFJVCxRQUFRUyxJQUFJLEVBQUVMLE1BQU1LLElBQUksR0FBR1QsUUFBUVMsSUFBSTtJQUN6RCxJQUFJUixNQUFNUyxLQUFLLElBQUlWLFFBQVFVLEtBQUssRUFBRU4sTUFBTU0sS0FBSyxHQUFHVixRQUFRVSxLQUFLLENBQUNDLEdBQUcsQ0FBQyxDQUFDSixLQUFPUixJQUFJRyxZQUFZLENBQUNNLFNBQVMsQ0FBQ0Q7SUFDckcsSUFBSU4sTUFBTVcsSUFBSSxJQUFJWixRQUFRWSxJQUFJLEVBQUVSLE1BQU1RLElBQUksR0FBR2IsSUFBSUcsWUFBWSxDQUFDVSxJQUFJLENBQUNiLEtBQUtDLFFBQVFZLElBQUk7SUFFcEZSLE1BQU1ULE9BQU8sR0FBRyxJQUFJa0IsbUJBQVksQ0FBQ2I7SUFFakMsT0FBT0QsSUFBSUcsWUFBWSxDQUFDWSxXQUFXLENBQUNWLEtBQUssQ0FBQ0wsS0FBS0MsU0FBU0k7QUFDMUQ7QUFFTyxTQUFTYiw4QkFDZFEsR0FBZ0IsRUFDaEJDLE9BQW9DO0lBRXBDLE1BQU1DLFFBQVFGLElBQUlHLFlBQVksQ0FBQ0MsaUJBQWlCLENBQUNZLG9CQUFvQjtJQUNyRSxNQUFNQSx1QkFBdUIsQ0FBQztJQUU5QixJQUFJZCxNQUFNZSxPQUFPLElBQUloQixRQUFRaUIsUUFBUSxFQUFFRixxQkFBcUJDLE9BQU8sR0FBR2pCLElBQUlHLFlBQVksQ0FBQ00sU0FBUyxDQUFDUixRQUFRaUIsUUFBUTtJQUNqSCxJQUFJaEIsTUFBTWlCLFNBQVMsSUFBSWxCLFFBQVFtQixVQUFVLEVBQUVKLHFCQUFxQkcsU0FBUyxHQUFHbEIsUUFBUW1CLFVBQVU7SUFFOUYsT0FBT3BCLElBQUlHLFlBQVksQ0FBQ1ksV0FBVyxDQUFDQyxvQkFBb0IsQ0FBQ2hCLEtBQUtDLFNBQVNlO0FBQ3pFIn0=
@@ -5,14 +5,14 @@ Object.defineProperty(exports, "__esModule", {
5
5
  function _export(target, all) {
6
6
  for(var name in all)Object.defineProperty(target, name, {
7
7
  enumerable: true,
8
- get: all[name]
8
+ get: Object.getOwnPropertyDescriptor(all, name).get
9
9
  });
10
10
  }
11
11
  _export(exports, {
12
- baseGuild: function() {
12
+ get baseGuild () {
13
13
  return baseGuild;
14
14
  },
15
- transformGuild: function() {
15
+ get transformGuild () {
16
16
  return transformGuild;
17
17
  }
18
18
  });
@@ -155,4 +155,4 @@ function transformGuild(bot, payload) {
155
155
  return bot.transformers.customizers.guild(bot, payload.guild, guild);
156
156
  }
157
157
 
158
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvZ3VpbGQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbm5lbFR5cGVzLCB0eXBlIERpc2NvcmRHdWlsZCwgdHlwZSBEaXNjb3JkUHJlc2VuY2VVcGRhdGUgfSBmcm9tICdAZGlzY29yZGVuby90eXBlcydcbmltcG9ydCB7IENvbGxlY3Rpb24sIGljb25IYXNoVG9CaWdJbnQgfSBmcm9tICdAZGlzY29yZGVuby91dGlscydcbmltcG9ydCB0eXBlIHsgQ2hhbm5lbCwgR3VpbGQsIEludGVybmFsQm90IH0gZnJvbSAnLi4vaW5kZXguanMnXG5pbXBvcnQgeyBHdWlsZFRvZ2dsZXMgfSBmcm9tICcuL3RvZ2dsZXMvZ3VpbGQuanMnXG5cbmV4cG9ydCBjb25zdCBiYXNlR3VpbGQ6IEludGVybmFsQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnZ3VpbGQnXSA9IHtcbiAgLy8gVGhpcyBhbGxvd3MgdHlwZXNjcmlwdCB0byBzdGlsbCBjaGVjayBmb3IgdHlwZSBlcnJvcnMgb24gZnVuY3Rpb25zIGJlbG93XG4gIC4uLih1bmRlZmluZWQgYXMgdW5rbm93biBhcyBJbnRlcm5hbEJvdFsndHJhbnNmb3JtZXJzJ11bJyRpbmZlcnJlZFR5cGVzJ11bJ2d1aWxkJ10pLFxuXG4gIGdldCB0aHJlYWRzKCkge1xuICAgIGlmICghdGhpcy5jaGFubmVscykgcmV0dXJuIG5ldyBDb2xsZWN0aW9uPGJpZ2ludCwgQ2hhbm5lbD4oKVxuXG4gICAgY29uc3QgdGhyZWFkcyA9IHRoaXMuY2hhbm5lbHNcbiAgICAgIC5hcnJheSgpXG4gICAgICAuZmlsdGVyKCh4KSA9PiB4LnR5cGUgPT09IENoYW5uZWxUeXBlcy5QdWJsaWNUaHJlYWQgfHwgeC50eXBlID09PSBDaGFubmVsVHlwZXMuUHJpdmF0ZVRocmVhZCB8fCB4LnR5cGUgPT09IENoYW5uZWxUeXBlcy5Bbm5vdW5jZW1lbnRUaHJlYWQpXG5cbiAgICByZXR1cm4gbmV3IENvbGxlY3Rpb24odGhyZWFkcy5tYXAoKHgpID0+IFt4LmlkLCB4XSkpXG4gIH0sXG4gIGdldCBmZWF0dXJlcygpIHtcbiAgICByZXR1cm4gdGhpcy50b2dnbGVzLmZlYXR1cmVzXG4gIH0sXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1HdWlsZChib3Q6IEludGVybmFsQm90LCBwYXlsb2FkOiB7IGd1aWxkOiBEaXNjb3JkR3VpbGQ7IHNoYXJkSWQ6IG51bWJlciB9KTogdHlwZW9mIGJvdC50cmFuc2Zvcm1lcnMuJGluZmVycmVkVHlwZXMuZ3VpbGQge1xuICBjb25zdCBndWlsZElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5ndWlsZC5pZClcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmd1aWxkXG4gIGNvbnN0IGd1aWxkOiBHdWlsZCA9IE9iamVjdC5jcmVhdGUoYmFzZUd1aWxkKVxuXG4gIGlmIChwcm9wcy5hZmtUaW1lb3V0ICYmIHBheWxvYWQuZ3VpbGQuYWZrX3RpbWVvdXQpIGd1aWxkLmFma1RpbWVvdXQgPSBwYXlsb2FkLmd1aWxkLmFma190aW1lb3V0XG4gIGlmIChwcm9wcy5hcHByb3hpbWF0ZU1lbWJlckNvdW50ICYmIHBheWxvYWQuZ3VpbGQuYXBwcm94aW1hdGVfbWVtYmVyX2NvdW50KSBndWlsZC5hcHByb3hpbWF0ZU1lbWJlckNvdW50ID0gcGF5bG9hZC5ndWlsZC5hcHByb3hpbWF0ZV9tZW1iZXJfY291bnRcbiAgaWYgKHByb3BzLmFwcHJveGltYXRlUHJlc2VuY2VDb3VudCAmJiBwYXlsb2FkLmd1aWxkLmFwcHJveGltYXRlX3ByZXNlbmNlX2NvdW50KVxuICAgIGd1aWxkLmFwcHJveGltYXRlUHJlc2VuY2VDb3VudCA9IHBheWxvYWQuZ3VpbGQuYXBwcm94aW1hdGVfcHJlc2VuY2VfY291bnRcbiAgaWYgKHByb3BzLmRlZmF1bHRNZXNzYWdlTm90aWZpY2F0aW9ucykgZ3VpbGQuZGVmYXVsdE1lc3NhZ2VOb3RpZmljYXRpb25zID0gcGF5bG9hZC5ndWlsZC5kZWZhdWx0X21lc3NhZ2Vfbm90aWZpY2F0aW9uc1xuICBpZiAocHJvcHMuZGVzY3JpcHRpb24gJiYgcGF5bG9hZC5ndWlsZC5kZXNjcmlwdGlvbikgZ3VpbGQuZGVzY3JpcHRpb24gPSBwYXlsb2FkLmd1aWxkLmRlc2NyaXB0aW9uXG4gIGlmIChwcm9wcy50b2dnbGVzKSBndWlsZC50b2dnbGVzID0gbmV3IEd1aWxkVG9nZ2xlcyhwYXlsb2FkLmd1aWxkKVxuICBpZiAocHJvcHMuZXhwbGljaXRDb250ZW50RmlsdGVyKSBndWlsZC5leHBsaWNpdENvbnRlbnRGaWx0ZXIgPSBwYXlsb2FkLmd1aWxkLmV4cGxpY2l0X2NvbnRlbnRfZmlsdGVyXG4gIGlmIChwcm9wcy5tYXhNZW1iZXJzICYmIHBheWxvYWQuZ3VpbGQubWF4X21lbWJlcnMpIGd1aWxkLm1heE1lbWJlcnMgPSBwYXlsb2FkLmd1aWxkLm1heF9tZW1iZXJzXG4gIGlmIChwcm9wcy5tYXhQcmVzZW5jZXMgJiYgcGF5bG9hZC5ndWlsZC5tYXhfcHJlc2VuY2VzKSBndWlsZC5tYXhQcmVzZW5jZXMgPSBwYXlsb2FkLmd1aWxkLm1heF9wcmVzZW5jZXMgPz8gdW5kZWZpbmVkXG4gIGlmIChwcm9wcy5tYXhWaWRlb0NoYW5uZWxVc2VycyAmJiBwYXlsb2FkLmd1aWxkLm1heF92aWRlb19jaGFubmVsX3VzZXJzKSBndWlsZC5tYXhWaWRlb0NoYW5uZWxVc2VycyA9IHBheWxvYWQuZ3VpbGQubWF4X3ZpZGVvX2NoYW5uZWxfdXNlcnNcbiAgaWYgKHByb3BzLm1heFN0YWdlVmlkZW9DaGFubmVsVXNlcnMgJiYgcGF5bG9hZC5ndWlsZC5tYXhfc3RhZ2VfdmlkZW9fY2hhbm5lbF91c2VycylcbiAgICBndWlsZC5tYXhTdGFnZVZpZGVvQ2hhbm5lbFVzZXJzID0gcGF5bG9hZC5ndWlsZC5tYXhfc3RhZ2VfdmlkZW9fY2hhbm5lbF91c2Vyc1xuICBpZiAocHJvcHMubWZhTGV2ZWwpIGd1aWxkLm1mYUxldmVsID0gcGF5bG9hZC5ndWlsZC5tZmFfbGV2ZWxcbiAgaWYgKHByb3BzLm5hbWUgJiYgcGF5bG9hZC5ndWlsZC5uYW1lKSBndWlsZC5uYW1lID0gcGF5bG9hZC5ndWlsZC5uYW1lXG4gIGlmIChwcm9wcy5uc2Z3TGV2ZWwpIGd1aWxkLm5zZndMZXZlbCA9IHBheWxvYWQuZ3VpbGQubnNmd19sZXZlbFxuICBpZiAocHJvcHMucHJlZmVycmVkTG9jYWxlICYmIHBheWxvYWQuZ3VpbGQucHJlZmVycmVkX2xvY2FsZSkgZ3VpbGQucHJlZmVycmVkTG9jYWxlID0gcGF5bG9hZC5ndWlsZC5wcmVmZXJyZWRfbG9jYWxlXG4gIGlmIChwcm9wcy5wcmVtaXVtU3Vic2NyaXB0aW9uQ291bnQgJiYgcGF5bG9hZC5ndWlsZC5wcmVtaXVtX3N1YnNjcmlwdGlvbl9jb3VudCAhPT0gdW5kZWZpbmVkKVxuICAgIGd1aWxkLnByZW1pdW1TdWJzY3JpcHRpb25Db3VudCA9IHBheWxvYWQuZ3VpbGQucHJlbWl1bV9zdWJzY3JpcHRpb25fY291bnRcbiAgaWYgKHByb3BzLnByZW1pdW1UaWVyKSBndWlsZC5wcmVtaXVtVGllciA9IHBheWxvYWQuZ3VpbGQucHJlbWl1bV90aWVyXG4gIGlmIChwcm9wcy5zdGFnZUluc3RhbmNlcyAmJiBwYXlsb2FkLmd1aWxkLnN0YWdlX2luc3RhbmNlcylcbiAgICBndWlsZC5zdGFnZUluc3RhbmNlcyA9IHBheWxvYWQuZ3VpbGQuc3RhZ2VfaW5zdGFuY2VzLm1hcCgoc2kpID0+ICh7XG4gICAgICAvKiogVGhlIGlkIG9mIHRoaXMgU3RhZ2UgaW5zdGFuY2UgKi9cbiAgICAgIGlkOiBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShzaS5pZCksXG4gICAgICAvKiogVGhlIGd1aWxkIGlkIG9mIHRoZSBhc3NvY2lhdGVkIFN0YWdlIGNoYW5uZWwgKi9cbiAgICAgIGd1aWxkSWQsXG4gICAgICAvKiogVGhlIGlkIG9mIHRoZSBhc3NvY2lhdGVkIFN0YWdlIGNoYW5uZWwgKi9cbiAgICAgIGNoYW5uZWxJZDogYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2Uoc2kuY2hhbm5lbF9pZCksXG4gICAgICAvKiogVGhlIHRvcGljIG9mIHRoZSBTdGFnZSBpbnN0YW5jZSAoMS0xMjAgY2hhcmFjdGVycykgKi9cbiAgICAgIHRvcGljOiBzaS50b3BpYyxcbiAgICB9KSlcbiAgaWYgKHByb3BzLmNoYW5uZWxzICYmICghIXBheWxvYWQuZ3VpbGQuY2hhbm5lbHMgfHwgISFwYXlsb2FkLmd1aWxkLnRocmVhZHMpKVxuICAgIGd1aWxkLmNoYW5uZWxzID0gbmV3IENvbGxlY3Rpb24oXG4gICAgICBbLi4uKHBheWxvYWQuZ3VpbGQuY2hhbm5lbHMgPz8gW10pLCAuLi4ocGF5bG9hZC5ndWlsZC50aHJlYWRzID8/IFtdKV0ubWFwKChjaGFubmVsKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGJvdC50cmFuc2Zvcm1lcnMuY2hhbm5lbChib3QsIHsgY2hhbm5lbCwgZ3VpbGRJZCB9KVxuICAgICAgICByZXR1cm4gW3Jlc3VsdC5pZCwgcmVzdWx0XVxuICAgICAgfSksXG4gICAgKVxuICBpZiAocHJvcHMubWVtYmVycyAmJiBwYXlsb2FkLmd1aWxkLm1lbWJlcnMpXG4gICAgZ3VpbGQubWVtYmVycyA9IG5ldyBDb2xsZWN0aW9uKFxuICAgICAgcGF5bG9hZC5ndWlsZC5tZW1iZXJzLm1hcCgobWVtYmVyKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGJvdC50cmFuc2Zvcm1lcnMubWVtYmVyKGJvdCwgbWVtYmVyLCBndWlsZElkLCBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShtZW1iZXIudXNlciEuaWQpKVxuICAgICAgICByZXR1cm4gW3Jlc3VsdC5pZCwgcmVzdWx0XVxuICAgICAgfSksXG4gICAgKVxuICBpZiAocHJvcHMucm9sZXMgJiYgcGF5bG9hZC5ndWlsZC5yb2xlcylcbiAgICBndWlsZC5yb2xlcyA9IG5ldyBDb2xsZWN0aW9uKFxuICAgICAgcGF5bG9hZC5ndWlsZC5yb2xlcy5tYXAoKHJvbGUpID0+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYm90LnRyYW5zZm9ybWVycy5yb2xlKGJvdCwgeyByb2xlLCBndWlsZElkIH0pXG4gICAgICAgIHJldHVybiBbcmVzdWx0LmlkLCByZXN1bHRdXG4gICAgICB9KSxcbiAgICApXG4gIGlmIChwcm9wcy5lbW9qaXMgJiYgcGF5bG9hZC5ndWlsZC5lbW9qaXMpXG4gICAgZ3VpbGQuZW1vamlzID0gbmV3IENvbGxlY3Rpb24oXG4gICAgICBwYXlsb2FkLmd1aWxkLmVtb2ppcy5tYXAoKGVtb2ppKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGJvdC50cmFuc2Zvcm1lcnMuZW1vamkoYm90LCBlbW9qaSlcbiAgICAgICAgcmV0dXJuIFtyZXN1bHQuaWQhLCByZXN1bHRdXG4gICAgICB9KSxcbiAgICApXG4gIGlmIChwcm9wcy52b2ljZVN0YXRlcyAmJiBwYXlsb2FkLmd1aWxkLnZvaWNlX3N0YXRlcylcbiAgICBndWlsZC52b2ljZVN0YXRlcyA9IG5ldyBDb2xsZWN0aW9uKFxuICAgICAgcGF5bG9hZC5ndWlsZC52b2ljZV9zdGF0ZXMubWFwKCh2b2ljZVN0YXRlKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGJvdC50cmFuc2Zvcm1lcnMudm9pY2VTdGF0ZShib3QsIHsgdm9pY2VTdGF0ZSwgZ3VpbGRJZCB9KVxuICAgICAgICByZXR1cm4gW3Jlc3VsdC51c2VySWQsIHJlc3VsdF1cbiAgICAgIH0pLFxuICAgIClcbiAgaWYgKHByb3BzLnN0aWNrZXJzICYmIHBheWxvYWQuZ3VpbGQuc3RpY2tlcnMpXG4gICAgZ3VpbGQuc3RpY2tlcnMgPSBuZXcgQ29sbGVjdGlvbihcbiAgICAgIHBheWxvYWQuZ3VpbGQuc3RpY2tlcnM/Lm1hcCgoc3RpY2tlcikgPT4ge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBib3QudHJhbnNmb3JtZXJzLnN0aWNrZXIoYm90LCBzdGlja2VyKVxuICAgICAgICByZXR1cm4gW3Jlc3VsdC5pZCwgcmVzdWx0XVxuICAgICAgfSksXG4gICAgKVxuICBpZiAocHJvcHMuc3lzdGVtQ2hhbm5lbEZsYWdzICYmIHBheWxvYWQuZ3VpbGQuc3lzdGVtX2NoYW5uZWxfZmxhZ3MpIGd1aWxkLnN5c3RlbUNoYW5uZWxGbGFncyA9IHBheWxvYWQuZ3VpbGQuc3lzdGVtX2NoYW5uZWxfZmxhZ3NcbiAgaWYgKHByb3BzLnZhbml0eVVybENvZGUgJiYgcGF5bG9hZC5ndWlsZC52YW5pdHlfdXJsX2NvZGUpIGd1aWxkLnZhbml0eVVybENvZGUgPSBwYXlsb2FkLmd1aWxkLnZhbml0eV91cmxfY29kZVxuICBpZiAocHJvcHMudmVyaWZpY2F0aW9uTGV2ZWwpIGd1aWxkLnZlcmlmaWNhdGlvbkxldmVsID0gcGF5bG9hZC5ndWlsZC52ZXJpZmljYXRpb25fbGV2ZWxcbiAgaWYgKHByb3BzLndlbGNvbWVTY3JlZW4gJiYgcGF5bG9hZC5ndWlsZC53ZWxjb21lX3NjcmVlbilcbiAgICBndWlsZC53ZWxjb21lU2NyZWVuID0ge1xuICAgICAgZGVzY3JpcHRpb246IHBheWxvYWQuZ3VpbGQud2VsY29tZV9zY3JlZW4uZGVzY3JpcHRpb24gPz8gdW5kZWZpbmVkLFxuICAgICAgd2VsY29tZUNoYW5uZWxzOiBwYXlsb2FkLmd1aWxkLndlbGNvbWVfc2NyZWVuLndlbGNvbWVfY2hhbm5lbHMubWFwKCh3YykgPT4gKHtcbiAgICAgICAgY2hhbm5lbElkOiBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZSh3Yy5jaGFubmVsX2lkKSxcbiAgICAgICAgZGVzY3JpcHRpb246IHdjLmRlc2NyaXB0aW9uLFxuICAgICAgICBlbW9qaUlkOiB3Yy5lbW9qaV9pZCA/IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHdjLmVtb2ppX2lkKSA6IHVuZGVmaW5lZCxcbiAgICAgICAgZW1vamlOYW1lOiB3Yy5lbW9qaV9uYW1lID8/IHVuZGVmaW5lZCxcbiAgICAgIH0pKSxcbiAgICB9XG4gIGlmIChwcm9wcy5kaXNjb3ZlcnlTcGxhc2ggJiYgcGF5bG9hZC5ndWlsZC5kaXNjb3Zlcnlfc3BsYXNoKSBndWlsZC5kaXNjb3ZlcnlTcGxhc2ggPSBpY29uSGFzaFRvQmlnSW50KHBheWxvYWQuZ3VpbGQuZGlzY292ZXJ5X3NwbGFzaClcbiAgaWYgKHByb3BzLmpvaW5lZEF0ICYmIHBheWxvYWQuZ3VpbGQuam9pbmVkX2F0KSBndWlsZC5qb2luZWRBdCA9IERhdGUucGFyc2UocGF5bG9hZC5ndWlsZC5qb2luZWRfYXQpXG4gIGlmIChwcm9wcy5tZW1iZXJDb3VudCAmJiBwYXlsb2FkLmd1aWxkLm1lbWJlcl9jb3VudCkgZ3VpbGQubWVtYmVyQ291bnQgPSBwYXlsb2FkLmd1aWxkLm1lbWJlcl9jb3VudCA/PyAwXG4gIGlmIChwcm9wcy5zaGFyZElkKSBndWlsZC5zaGFyZElkID0gcGF5bG9hZC5zaGFyZElkXG4gIGlmIChwcm9wcy5pY29uICYmIHBheWxvYWQuZ3VpbGQuaWNvbikgZ3VpbGQuaWNvbiA9IGljb25IYXNoVG9CaWdJbnQocGF5bG9hZC5ndWlsZC5pY29uKVxuICBpZiAocHJvcHMuYmFubmVyICYmIHBheWxvYWQuZ3VpbGQuYmFubmVyKSBndWlsZC5iYW5uZXIgPSBpY29uSGFzaFRvQmlnSW50KHBheWxvYWQuZ3VpbGQuYmFubmVyKVxuICBpZiAocHJvcHMuc3BsYXNoICYmIHBheWxvYWQuZ3VpbGQuc3BsYXNoKSBndWlsZC5zcGxhc2ggPSBpY29uSGFzaFRvQmlnSW50KHBheWxvYWQuZ3VpbGQuc3BsYXNoKVxuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5ndWlsZC5pZCkgZ3VpbGQuaWQgPSBndWlsZElkXG4gIGlmIChwcm9wcy5vd25lcklkICYmIHBheWxvYWQuZ3VpbGQub3duZXJfaWQpIGd1aWxkLm93bmVySWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmd1aWxkLm93bmVyX2lkKVxuICBpZiAocHJvcHMucGVybWlzc2lvbnMgJiYgcGF5bG9hZC5ndWlsZC5wZXJtaXNzaW9ucykgZ3VpbGQucGVybWlzc2lvbnMgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmd1aWxkLnBlcm1pc3Npb25zKVxuICBpZiAocHJvcHMuYWZrQ2hhbm5lbElkICYmIHBheWxvYWQuZ3VpbGQuYWZrX2NoYW5uZWxfaWQpIGd1aWxkLmFma0NoYW5uZWxJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuZ3VpbGQuYWZrX2NoYW5uZWxfaWQpXG4gIGlmIChwcm9wcy53aWRnZXRDaGFubmVsSWQgJiYgcGF5bG9hZC5ndWlsZC53aWRnZXRfY2hhbm5lbF9pZCkgZ3VpbGQud2lkZ2V0Q2hhbm5lbElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5ndWlsZC53aWRnZXRfY2hhbm5lbF9pZClcbiAgaWYgKHByb3BzLmFwcGxpY2F0aW9uSWQgJiYgcGF5bG9hZC5ndWlsZC5hcHBsaWNhdGlvbl9pZCkgZ3VpbGQuYXBwbGljYXRpb25JZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuZ3VpbGQuYXBwbGljYXRpb25faWQpXG4gIGlmIChwcm9wcy5zeXN0ZW1DaGFubmVsSWQgJiYgcGF5bG9hZC5ndWlsZC5zeXN0ZW1fY2hhbm5lbF9pZCkgZ3VpbGQuc3lzdGVtQ2hhbm5lbElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5ndWlsZC5zeXN0ZW1fY2hhbm5lbF9pZClcbiAgaWYgKHByb3BzLnJ1bGVzQ2hhbm5lbElkICYmIHBheWxvYWQuZ3VpbGQucnVsZXNfY2hhbm5lbF9pZCkgZ3VpbGQucnVsZXNDaGFubmVsSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmd1aWxkLnJ1bGVzX2NoYW5uZWxfaWQpXG4gIGlmIChwcm9wcy5wdWJsaWNVcGRhdGVzQ2hhbm5lbElkICYmIHBheWxvYWQuZ3VpbGQucHVibGljX3VwZGF0ZXNfY2hhbm5lbF9pZClcbiAgICBndWlsZC5wdWJsaWNVcGRhdGVzQ2hhbm5lbElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5ndWlsZC5wdWJsaWNfdXBkYXRlc19jaGFubmVsX2lkKVxuICBpZiAocHJvcHMucHJlbWl1bVByb2dyZXNzQmFyRW5hYmxlZCAmJiBwYXlsb2FkLmd1aWxkLnByZW1pdW1fcHJvZ3Jlc3NfYmFyX2VuYWJsZWQpXG4gICAgZ3VpbGQucHJlbWl1bVByb2dyZXNzQmFyRW5hYmxlZCA9IHBheWxvYWQuZ3VpbGQucHJlbWl1bV9wcm9ncmVzc19iYXJfZW5hYmxlZFxuICBpZiAocHJvcHMubGFyZ2UgJiYgcGF5bG9hZC5ndWlsZC5sYXJnZSkgZ3VpbGQubGFyZ2UgPSBwYXlsb2FkLmd1aWxkLmxhcmdlXG4gIGlmIChwcm9wcy5vd25lciAmJiBwYXlsb2FkLmd1aWxkLm93bmVyKSBndWlsZC5vd25lciA9IHBheWxvYWQuZ3VpbGQub3duZXJcbiAgaWYgKHByb3BzLndpZGdldEVuYWJsZWQgJiYgcGF5bG9hZC5ndWlsZC53aWRnZXRfZW5hYmxlZCkgZ3VpbGQud2lkZ2V0RW5hYmxlZCA9IHBheWxvYWQuZ3VpbGQud2lkZ2V0X2VuYWJsZWRcbiAgaWYgKHByb3BzLnVuYXZhaWxhYmxlICYmIHBheWxvYWQuZ3VpbGQudW5hdmFpbGFibGUpIGd1aWxkLnVuYXZhaWxhYmxlID0gcGF5bG9hZC5ndWlsZC51bmF2YWlsYWJsZVxuICBpZiAocHJvcHMuaWNvbkhhc2ggJiYgcGF5bG9hZC5ndWlsZC5pY29uX2hhc2gpIGd1aWxkLmljb25IYXNoID0gaWNvbkhhc2hUb0JpZ0ludChwYXlsb2FkLmd1aWxkLmljb25faGFzaClcbiAgaWYgKHByb3BzLnByZXNlbmNlcyAmJiBwYXlsb2FkLmd1aWxkLnByZXNlbmNlcylcbiAgICBndWlsZC5wcmVzZW5jZXMgPSBwYXlsb2FkLmd1aWxkLnByZXNlbmNlcz8ubWFwKChwcmVzZW5jZSkgPT4gYm90LnRyYW5zZm9ybWVycy5wcmVzZW5jZShib3QsIHByZXNlbmNlIGFzIERpc2NvcmRQcmVzZW5jZVVwZGF0ZSkpXG4gIGlmIChwcm9wcy5zYWZldHlBbGVydHNDaGFubmVsSWQgJiYgcGF5bG9hZC5ndWlsZC5zYWZldHlfYWxlcnRzX2NoYW5uZWxfaWQpXG4gICAgZ3VpbGQuc2FmZXR5QWxlcnRzQ2hhbm5lbElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5ndWlsZC5zYWZldHlfYWxlcnRzX2NoYW5uZWxfaWQpXG4gIGlmIChwcm9wcy5pbmNpZGVudHNEYXRhICYmIHBheWxvYWQuZ3VpbGQuaW5jaWRlbnRzX2RhdGEpIGd1aWxkLmluY2lkZW50c0RhdGEgPSBib3QudHJhbnNmb3JtZXJzLmluY2lkZW50c0RhdGEoYm90LCBwYXlsb2FkLmd1aWxkLmluY2lkZW50c19kYXRhKVxuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLmd1aWxkKGJvdCwgcGF5bG9hZC5ndWlsZCwgZ3VpbGQpXG59XG4iXSwibmFtZXMiOlsiYmFzZUd1aWxkIiwidHJhbnNmb3JtR3VpbGQiLCJ1bmRlZmluZWQiLCJ0aHJlYWRzIiwiY2hhbm5lbHMiLCJDb2xsZWN0aW9uIiwiYXJyYXkiLCJmaWx0ZXIiLCJ4IiwidHlwZSIsIkNoYW5uZWxUeXBlcyIsIlB1YmxpY1RocmVhZCIsIlByaXZhdGVUaHJlYWQiLCJBbm5vdW5jZW1lbnRUaHJlYWQiLCJtYXAiLCJpZCIsImZlYXR1cmVzIiwidG9nZ2xlcyIsImJvdCIsInBheWxvYWQiLCJndWlsZElkIiwidHJhbnNmb3JtZXJzIiwic25vd2ZsYWtlIiwiZ3VpbGQiLCJwcm9wcyIsImRlc2lyZWRQcm9wZXJ0aWVzIiwiT2JqZWN0IiwiY3JlYXRlIiwiYWZrVGltZW91dCIsImFma190aW1lb3V0IiwiYXBwcm94aW1hdGVNZW1iZXJDb3VudCIsImFwcHJveGltYXRlX21lbWJlcl9jb3VudCIsImFwcHJveGltYXRlUHJlc2VuY2VDb3VudCIsImFwcHJveGltYXRlX3ByZXNlbmNlX2NvdW50IiwiZGVmYXVsdE1lc3NhZ2VOb3RpZmljYXRpb25zIiwiZGVmYXVsdF9tZXNzYWdlX25vdGlmaWNhdGlvbnMiLCJkZXNjcmlwdGlvbiIsIkd1aWxkVG9nZ2xlcyIsImV4cGxpY2l0Q29udGVudEZpbHRlciIsImV4cGxpY2l0X2NvbnRlbnRfZmlsdGVyIiwibWF4TWVtYmVycyIsIm1heF9tZW1iZXJzIiwibWF4UHJlc2VuY2VzIiwibWF4X3ByZXNlbmNlcyIsIm1heFZpZGVvQ2hhbm5lbFVzZXJzIiwibWF4X3ZpZGVvX2NoYW5uZWxfdXNlcnMiLCJtYXhTdGFnZVZpZGVvQ2hhbm5lbFVzZXJzIiwibWF4X3N0YWdlX3ZpZGVvX2NoYW5uZWxfdXNlcnMiLCJtZmFMZXZlbCIsIm1mYV9sZXZlbCIsIm5hbWUiLCJuc2Z3TGV2ZWwiLCJuc2Z3X2xldmVsIiwicHJlZmVycmVkTG9jYWxlIiwicHJlZmVycmVkX2xvY2FsZSIsInByZW1pdW1TdWJzY3JpcHRpb25Db3VudCIsInByZW1pdW1fc3Vic2NyaXB0aW9uX2NvdW50IiwicHJlbWl1bVRpZXIiLCJwcmVtaXVtX3RpZXIiLCJzdGFnZUluc3RhbmNlcyIsInN0YWdlX2luc3RhbmNlcyIsInNpIiwiY2hhbm5lbElkIiwiY2hhbm5lbF9pZCIsInRvcGljIiwiY2hhbm5lbCIsInJlc3VsdCIsIm1lbWJlcnMiLCJtZW1iZXIiLCJ1c2VyIiwicm9sZXMiLCJyb2xlIiwiZW1vamlzIiwiZW1vamkiLCJ2b2ljZVN0YXRlcyIsInZvaWNlX3N0YXRlcyIsInZvaWNlU3RhdGUiLCJ1c2VySWQiLCJzdGlja2VycyIsInN0aWNrZXIiLCJzeXN0ZW1DaGFubmVsRmxhZ3MiLCJzeXN0ZW1fY2hhbm5lbF9mbGFncyIsInZhbml0eVVybENvZGUiLCJ2YW5pdHlfdXJsX2NvZGUiLCJ2ZXJpZmljYXRpb25MZXZlbCIsInZlcmlmaWNhdGlvbl9sZXZlbCIsIndlbGNvbWVTY3JlZW4iLCJ3ZWxjb21lX3NjcmVlbiIsIndlbGNvbWVDaGFubmVscyIsIndlbGNvbWVfY2hhbm5lbHMiLCJ3YyIsImVtb2ppSWQiLCJlbW9qaV9pZCIsImVtb2ppTmFtZSIsImVtb2ppX25hbWUiLCJkaXNjb3ZlcnlTcGxhc2giLCJkaXNjb3Zlcnlfc3BsYXNoIiwiaWNvbkhhc2hUb0JpZ0ludCIsImpvaW5lZEF0Iiwiam9pbmVkX2F0IiwiRGF0ZSIsInBhcnNlIiwibWVtYmVyQ291bnQiLCJtZW1iZXJfY291bnQiLCJzaGFyZElkIiwiaWNvbiIsImJhbm5lciIsInNwbGFzaCIsIm93bmVySWQiLCJvd25lcl9pZCIsInBlcm1pc3Npb25zIiwiYWZrQ2hhbm5lbElkIiwiYWZrX2NoYW5uZWxfaWQiLCJ3aWRnZXRDaGFubmVsSWQiLCJ3aWRnZXRfY2hhbm5lbF9pZCIsImFwcGxpY2F0aW9uSWQiLCJhcHBsaWNhdGlvbl9pZCIsInN5c3RlbUNoYW5uZWxJZCIsInN5c3RlbV9jaGFubmVsX2lkIiwicnVsZXNDaGFubmVsSWQiLCJydWxlc19jaGFubmVsX2lkIiwicHVibGljVXBkYXRlc0NoYW5uZWxJZCIsInB1YmxpY191cGRhdGVzX2NoYW5uZWxfaWQiLCJwcmVtaXVtUHJvZ3Jlc3NCYXJFbmFibGVkIiwicHJlbWl1bV9wcm9ncmVzc19iYXJfZW5hYmxlZCIsImxhcmdlIiwib3duZXIiLCJ3aWRnZXRFbmFibGVkIiwid2lkZ2V0X2VuYWJsZWQiLCJ1bmF2YWlsYWJsZSIsImljb25IYXNoIiwiaWNvbl9oYXNoIiwicHJlc2VuY2VzIiwicHJlc2VuY2UiLCJzYWZldHlBbGVydHNDaGFubmVsSWQiLCJzYWZldHlfYWxlcnRzX2NoYW5uZWxfaWQiLCJpbmNpZGVudHNEYXRhIiwiaW5jaWRlbnRzX2RhdGEiLCJjdXN0b21pemVycyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7SUFLYUEsU0FBUztlQUFUQTs7SUFrQkdDLGNBQWM7ZUFBZEE7Ozt1QkF2QjREO3VCQUMvQjt1QkFFaEI7QUFFdEIsTUFBTUQsWUFBb0U7SUFDL0UsMkVBQTJFO0lBQzNFLEdBQUlFLFNBQVM7SUFFYixJQUFJQyxXQUFVO1FBQ1osSUFBSSxDQUFDLElBQUksQ0FBQ0MsUUFBUSxFQUFFLE9BQU8sSUFB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
158
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvZ3VpbGQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbm5lbFR5cGVzLCB0eXBlIERpc2NvcmRHdWlsZCwgdHlwZSBEaXNjb3JkUHJlc2VuY2VVcGRhdGUgfSBmcm9tICdAZGlzY29yZGVuby90eXBlcydcbmltcG9ydCB7IENvbGxlY3Rpb24sIGljb25IYXNoVG9CaWdJbnQgfSBmcm9tICdAZGlzY29yZGVuby91dGlscydcbmltcG9ydCB0eXBlIHsgQ2hhbm5lbCwgR3VpbGQsIEludGVybmFsQm90IH0gZnJvbSAnLi4vaW5kZXguanMnXG5pbXBvcnQgeyBHdWlsZFRvZ2dsZXMgfSBmcm9tICcuL3RvZ2dsZXMvZ3VpbGQuanMnXG5cbmV4cG9ydCBjb25zdCBiYXNlR3VpbGQ6IEludGVybmFsQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnZ3VpbGQnXSA9IHtcbiAgLy8gVGhpcyBhbGxvd3MgdHlwZXNjcmlwdCB0byBzdGlsbCBjaGVjayBmb3IgdHlwZSBlcnJvcnMgb24gZnVuY3Rpb25zIGJlbG93XG4gIC4uLih1bmRlZmluZWQgYXMgdW5rbm93biBhcyBJbnRlcm5hbEJvdFsndHJhbnNmb3JtZXJzJ11bJyRpbmZlcnJlZFR5cGVzJ11bJ2d1aWxkJ10pLFxuXG4gIGdldCB0aHJlYWRzKCkge1xuICAgIGlmICghdGhpcy5jaGFubmVscykgcmV0dXJuIG5ldyBDb2xsZWN0aW9uPGJpZ2ludCwgQ2hhbm5lbD4oKVxuXG4gICAgY29uc3QgdGhyZWFkcyA9IHRoaXMuY2hhbm5lbHNcbiAgICAgIC5hcnJheSgpXG4gICAgICAuZmlsdGVyKCh4KSA9PiB4LnR5cGUgPT09IENoYW5uZWxUeXBlcy5QdWJsaWNUaHJlYWQgfHwgeC50eXBlID09PSBDaGFubmVsVHlwZXMuUHJpdmF0ZVRocmVhZCB8fCB4LnR5cGUgPT09IENoYW5uZWxUeXBlcy5Bbm5vdW5jZW1lbnRUaHJlYWQpXG5cbiAgICByZXR1cm4gbmV3IENvbGxlY3Rpb24odGhyZWFkcy5tYXAoKHgpID0+IFt4LmlkLCB4XSkpXG4gIH0sXG4gIGdldCBmZWF0dXJlcygpIHtcbiAgICByZXR1cm4gdGhpcy50b2dnbGVzLmZlYXR1cmVzXG4gIH0sXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1HdWlsZChib3Q6IEludGVybmFsQm90LCBwYXlsb2FkOiB7IGd1aWxkOiBEaXNjb3JkR3VpbGQ7IHNoYXJkSWQ6IG51bWJlciB9KTogdHlwZW9mIGJvdC50cmFuc2Zvcm1lcnMuJGluZmVycmVkVHlwZXMuZ3VpbGQge1xuICBjb25zdCBndWlsZElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5ndWlsZC5pZClcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmd1aWxkXG4gIGNvbnN0IGd1aWxkOiBHdWlsZCA9IE9iamVjdC5jcmVhdGUoYmFzZUd1aWxkKVxuXG4gIGlmIChwcm9wcy5hZmtUaW1lb3V0ICYmIHBheWxvYWQuZ3VpbGQuYWZrX3RpbWVvdXQpIGd1aWxkLmFma1RpbWVvdXQgPSBwYXlsb2FkLmd1aWxkLmFma190aW1lb3V0XG4gIGlmIChwcm9wcy5hcHByb3hpbWF0ZU1lbWJlckNvdW50ICYmIHBheWxvYWQuZ3VpbGQuYXBwcm94aW1hdGVfbWVtYmVyX2NvdW50KSBndWlsZC5hcHByb3hpbWF0ZU1lbWJlckNvdW50ID0gcGF5bG9hZC5ndWlsZC5hcHByb3hpbWF0ZV9tZW1iZXJfY291bnRcbiAgaWYgKHByb3BzLmFwcHJveGltYXRlUHJlc2VuY2VDb3VudCAmJiBwYXlsb2FkLmd1aWxkLmFwcHJveGltYXRlX3ByZXNlbmNlX2NvdW50KVxuICAgIGd1aWxkLmFwcHJveGltYXRlUHJlc2VuY2VDb3VudCA9IHBheWxvYWQuZ3VpbGQuYXBwcm94aW1hdGVfcHJlc2VuY2VfY291bnRcbiAgaWYgKHByb3BzLmRlZmF1bHRNZXNzYWdlTm90aWZpY2F0aW9ucykgZ3VpbGQuZGVmYXVsdE1lc3NhZ2VOb3RpZmljYXRpb25zID0gcGF5bG9hZC5ndWlsZC5kZWZhdWx0X21lc3NhZ2Vfbm90aWZpY2F0aW9uc1xuICBpZiAocHJvcHMuZGVzY3JpcHRpb24gJiYgcGF5bG9hZC5ndWlsZC5kZXNjcmlwdGlvbikgZ3VpbGQuZGVzY3JpcHRpb24gPSBwYXlsb2FkLmd1aWxkLmRlc2NyaXB0aW9uXG4gIGlmIChwcm9wcy50b2dnbGVzKSBndWlsZC50b2dnbGVzID0gbmV3IEd1aWxkVG9nZ2xlcyhwYXlsb2FkLmd1aWxkKVxuICBpZiAocHJvcHMuZXhwbGljaXRDb250ZW50RmlsdGVyKSBndWlsZC5leHBsaWNpdENvbnRlbnRGaWx0ZXIgPSBwYXlsb2FkLmd1aWxkLmV4cGxpY2l0X2NvbnRlbnRfZmlsdGVyXG4gIGlmIChwcm9wcy5tYXhNZW1iZXJzICYmIHBheWxvYWQuZ3VpbGQubWF4X21lbWJlcnMpIGd1aWxkLm1heE1lbWJlcnMgPSBwYXlsb2FkLmd1aWxkLm1heF9tZW1iZXJzXG4gIGlmIChwcm9wcy5tYXhQcmVzZW5jZXMgJiYgcGF5bG9hZC5ndWlsZC5tYXhfcHJlc2VuY2VzKSBndWlsZC5tYXhQcmVzZW5jZXMgPSBwYXlsb2FkLmd1aWxkLm1heF9wcmVzZW5jZXMgPz8gdW5kZWZpbmVkXG4gIGlmIChwcm9wcy5tYXhWaWRlb0NoYW5uZWxVc2VycyAmJiBwYXlsb2FkLmd1aWxkLm1heF92aWRlb19jaGFubmVsX3VzZXJzKSBndWlsZC5tYXhWaWRlb0NoYW5uZWxVc2VycyA9IHBheWxvYWQuZ3VpbGQubWF4X3ZpZGVvX2NoYW5uZWxfdXNlcnNcbiAgaWYgKHByb3BzLm1heFN0YWdlVmlkZW9DaGFubmVsVXNlcnMgJiYgcGF5bG9hZC5ndWlsZC5tYXhfc3RhZ2VfdmlkZW9fY2hhbm5lbF91c2VycylcbiAgICBndWlsZC5tYXhTdGFnZVZpZGVvQ2hhbm5lbFVzZXJzID0gcGF5bG9hZC5ndWlsZC5tYXhfc3RhZ2VfdmlkZW9fY2hhbm5lbF91c2Vyc1xuICBpZiAocHJvcHMubWZhTGV2ZWwpIGd1aWxkLm1mYUxldmVsID0gcGF5bG9hZC5ndWlsZC5tZmFfbGV2ZWxcbiAgaWYgKHByb3BzLm5hbWUgJiYgcGF5bG9hZC5ndWlsZC5uYW1lKSBndWlsZC5uYW1lID0gcGF5bG9hZC5ndWlsZC5uYW1lXG4gIGlmIChwcm9wcy5uc2Z3TGV2ZWwpIGd1aWxkLm5zZndMZXZlbCA9IHBheWxvYWQuZ3VpbGQubnNmd19sZXZlbFxuICBpZiAocHJvcHMucHJlZmVycmVkTG9jYWxlICYmIHBheWxvYWQuZ3VpbGQucHJlZmVycmVkX2xvY2FsZSkgZ3VpbGQucHJlZmVycmVkTG9jYWxlID0gcGF5bG9hZC5ndWlsZC5wcmVmZXJyZWRfbG9jYWxlXG4gIGlmIChwcm9wcy5wcmVtaXVtU3Vic2NyaXB0aW9uQ291bnQgJiYgcGF5bG9hZC5ndWlsZC5wcmVtaXVtX3N1YnNjcmlwdGlvbl9jb3VudCAhPT0gdW5kZWZpbmVkKVxuICAgIGd1aWxkLnByZW1pdW1TdWJzY3JpcHRpb25Db3VudCA9IHBheWxvYWQuZ3VpbGQucHJlbWl1bV9zdWJzY3JpcHRpb25fY291bnRcbiAgaWYgKHByb3BzLnByZW1pdW1UaWVyKSBndWlsZC5wcmVtaXVtVGllciA9IHBheWxvYWQuZ3VpbGQucHJlbWl1bV90aWVyXG4gIGlmIChwcm9wcy5zdGFnZUluc3RhbmNlcyAmJiBwYXlsb2FkLmd1aWxkLnN0YWdlX2luc3RhbmNlcylcbiAgICBndWlsZC5zdGFnZUluc3RhbmNlcyA9IHBheWxvYWQuZ3VpbGQuc3RhZ2VfaW5zdGFuY2VzLm1hcCgoc2kpID0+ICh7XG4gICAgICAvKiogVGhlIGlkIG9mIHRoaXMgU3RhZ2UgaW5zdGFuY2UgKi9cbiAgICAgIGlkOiBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShzaS5pZCksXG4gICAgICAvKiogVGhlIGd1aWxkIGlkIG9mIHRoZSBhc3NvY2lhdGVkIFN0YWdlIGNoYW5uZWwgKi9cbiAgICAgIGd1aWxkSWQsXG4gICAgICAvKiogVGhlIGlkIG9mIHRoZSBhc3NvY2lhdGVkIFN0YWdlIGNoYW5uZWwgKi9cbiAgICAgIGNoYW5uZWxJZDogYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2Uoc2kuY2hhbm5lbF9pZCksXG4gICAgICAvKiogVGhlIHRvcGljIG9mIHRoZSBTdGFnZSBpbnN0YW5jZSAoMS0xMjAgY2hhcmFjdGVycykgKi9cbiAgICAgIHRvcGljOiBzaS50b3BpYyxcbiAgICB9KSlcbiAgaWYgKHByb3BzLmNoYW5uZWxzICYmICghIXBheWxvYWQuZ3VpbGQuY2hhbm5lbHMgfHwgISFwYXlsb2FkLmd1aWxkLnRocmVhZHMpKVxuICAgIGd1aWxkLmNoYW5uZWxzID0gbmV3IENvbGxlY3Rpb24oXG4gICAgICBbLi4uKHBheWxvYWQuZ3VpbGQuY2hhbm5lbHMgPz8gW10pLCAuLi4ocGF5bG9hZC5ndWlsZC50aHJlYWRzID8/IFtdKV0ubWFwKChjaGFubmVsKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGJvdC50cmFuc2Zvcm1lcnMuY2hhbm5lbChib3QsIHsgY2hhbm5lbCwgZ3VpbGRJZCB9KVxuICAgICAgICByZXR1cm4gW3Jlc3VsdC5pZCwgcmVzdWx0XVxuICAgICAgfSksXG4gICAgKVxuICBpZiAocHJvcHMubWVtYmVycyAmJiBwYXlsb2FkLmd1aWxkLm1lbWJlcnMpXG4gICAgZ3VpbGQubWVtYmVycyA9IG5ldyBDb2xsZWN0aW9uKFxuICAgICAgcGF5bG9hZC5ndWlsZC5tZW1iZXJzLm1hcCgobWVtYmVyKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGJvdC50cmFuc2Zvcm1lcnMubWVtYmVyKGJvdCwgbWVtYmVyLCBndWlsZElkLCBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShtZW1iZXIudXNlciEuaWQpKVxuICAgICAgICByZXR1cm4gW3Jlc3VsdC5pZCwgcmVzdWx0XVxuICAgICAgfSksXG4gICAgKVxuICBpZiAocHJvcHMucm9sZXMgJiYgcGF5bG9hZC5ndWlsZC5yb2xlcylcbiAgICBndWlsZC5yb2xlcyA9IG5ldyBDb2xsZWN0aW9uKFxuICAgICAgcGF5bG9hZC5ndWlsZC5yb2xlcy5tYXAoKHJvbGUpID0+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYm90LnRyYW5zZm9ybWVycy5yb2xlKGJvdCwgeyByb2xlLCBndWlsZElkIH0pXG4gICAgICAgIHJldHVybiBbcmVzdWx0LmlkLCByZXN1bHRdXG4gICAgICB9KSxcbiAgICApXG4gIGlmIChwcm9wcy5lbW9qaXMgJiYgcGF5bG9hZC5ndWlsZC5lbW9qaXMpXG4gICAgZ3VpbGQuZW1vamlzID0gbmV3IENvbGxlY3Rpb24oXG4gICAgICBwYXlsb2FkLmd1aWxkLmVtb2ppcy5tYXAoKGVtb2ppKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGJvdC50cmFuc2Zvcm1lcnMuZW1vamkoYm90LCBlbW9qaSlcbiAgICAgICAgcmV0dXJuIFtyZXN1bHQuaWQhLCByZXN1bHRdXG4gICAgICB9KSxcbiAgICApXG4gIGlmIChwcm9wcy52b2ljZVN0YXRlcyAmJiBwYXlsb2FkLmd1aWxkLnZvaWNlX3N0YXRlcylcbiAgICBndWlsZC52b2ljZVN0YXRlcyA9IG5ldyBDb2xsZWN0aW9uKFxuICAgICAgcGF5bG9hZC5ndWlsZC52b2ljZV9zdGF0ZXMubWFwKCh2b2ljZVN0YXRlKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGJvdC50cmFuc2Zvcm1lcnMudm9pY2VTdGF0ZShib3QsIHsgdm9pY2VTdGF0ZSwgZ3VpbGRJZCB9KVxuICAgICAgICByZXR1cm4gW3Jlc3VsdC51c2VySWQsIHJlc3VsdF1cbiAgICAgIH0pLFxuICAgIClcbiAgaWYgKHByb3BzLnN0aWNrZXJzICYmIHBheWxvYWQuZ3VpbGQuc3RpY2tlcnMpXG4gICAgZ3VpbGQuc3RpY2tlcnMgPSBuZXcgQ29sbGVjdGlvbihcbiAgICAgIHBheWxvYWQuZ3VpbGQuc3RpY2tlcnM/Lm1hcCgoc3RpY2tlcikgPT4ge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBib3QudHJhbnNmb3JtZXJzLnN0aWNrZXIoYm90LCBzdGlja2VyKVxuICAgICAgICByZXR1cm4gW3Jlc3VsdC5pZCwgcmVzdWx0XVxuICAgICAgfSksXG4gICAgKVxuICBpZiAocHJvcHMuc3lzdGVtQ2hhbm5lbEZsYWdzICYmIHBheWxvYWQuZ3VpbGQuc3lzdGVtX2NoYW5uZWxfZmxhZ3MpIGd1aWxkLnN5c3RlbUNoYW5uZWxGbGFncyA9IHBheWxvYWQuZ3VpbGQuc3lzdGVtX2NoYW5uZWxfZmxhZ3NcbiAgaWYgKHByb3BzLnZhbml0eVVybENvZGUgJiYgcGF5bG9hZC5ndWlsZC52YW5pdHlfdXJsX2NvZGUpIGd1aWxkLnZhbml0eVVybENvZGUgPSBwYXlsb2FkLmd1aWxkLnZhbml0eV91cmxfY29kZVxuICBpZiAocHJvcHMudmVyaWZpY2F0aW9uTGV2ZWwpIGd1aWxkLnZlcmlmaWNhdGlvbkxldmVsID0gcGF5bG9hZC5ndWlsZC52ZXJpZmljYXRpb25fbGV2ZWxcbiAgaWYgKHByb3BzLndlbGNvbWVTY3JlZW4gJiYgcGF5bG9hZC5ndWlsZC53ZWxjb21lX3NjcmVlbilcbiAgICBndWlsZC53ZWxjb21lU2NyZWVuID0ge1xuICAgICAgZGVzY3JpcHRpb246IHBheWxvYWQuZ3VpbGQud2VsY29tZV9zY3JlZW4uZGVzY3JpcHRpb24gPz8gdW5kZWZpbmVkLFxuICAgICAgd2VsY29tZUNoYW5uZWxzOiBwYXlsb2FkLmd1aWxkLndlbGNvbWVfc2NyZWVuLndlbGNvbWVfY2hhbm5lbHMubWFwKCh3YykgPT4gKHtcbiAgICAgICAgY2hhbm5lbElkOiBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZSh3Yy5jaGFubmVsX2lkKSxcbiAgICAgICAgZGVzY3JpcHRpb246IHdjLmRlc2NyaXB0aW9uLFxuICAgICAgICBlbW9qaUlkOiB3Yy5lbW9qaV9pZCA/IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHdjLmVtb2ppX2lkKSA6IHVuZGVmaW5lZCxcbiAgICAgICAgZW1vamlOYW1lOiB3Yy5lbW9qaV9uYW1lID8/IHVuZGVmaW5lZCxcbiAgICAgIH0pKSxcbiAgICB9XG4gIGlmIChwcm9wcy5kaXNjb3ZlcnlTcGxhc2ggJiYgcGF5bG9hZC5ndWlsZC5kaXNjb3Zlcnlfc3BsYXNoKSBndWlsZC5kaXNjb3ZlcnlTcGxhc2ggPSBpY29uSGFzaFRvQmlnSW50KHBheWxvYWQuZ3VpbGQuZGlzY292ZXJ5X3NwbGFzaClcbiAgaWYgKHByb3BzLmpvaW5lZEF0ICYmIHBheWxvYWQuZ3VpbGQuam9pbmVkX2F0KSBndWlsZC5qb2luZWRBdCA9IERhdGUucGFyc2UocGF5bG9hZC5ndWlsZC5qb2luZWRfYXQpXG4gIGlmIChwcm9wcy5tZW1iZXJDb3VudCAmJiBwYXlsb2FkLmd1aWxkLm1lbWJlcl9jb3VudCkgZ3VpbGQubWVtYmVyQ291bnQgPSBwYXlsb2FkLmd1aWxkLm1lbWJlcl9jb3VudCA/PyAwXG4gIGlmIChwcm9wcy5zaGFyZElkKSBndWlsZC5zaGFyZElkID0gcGF5bG9hZC5zaGFyZElkXG4gIGlmIChwcm9wcy5pY29uICYmIHBheWxvYWQuZ3VpbGQuaWNvbikgZ3VpbGQuaWNvbiA9IGljb25IYXNoVG9CaWdJbnQocGF5bG9hZC5ndWlsZC5pY29uKVxuICBpZiAocHJvcHMuYmFubmVyICYmIHBheWxvYWQuZ3VpbGQuYmFubmVyKSBndWlsZC5iYW5uZXIgPSBpY29uSGFzaFRvQmlnSW50KHBheWxvYWQuZ3VpbGQuYmFubmVyKVxuICBpZiAocHJvcHMuc3BsYXNoICYmIHBheWxvYWQuZ3VpbGQuc3BsYXNoKSBndWlsZC5zcGxhc2ggPSBpY29uSGFzaFRvQmlnSW50KHBheWxvYWQuZ3VpbGQuc3BsYXNoKVxuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5ndWlsZC5pZCkgZ3VpbGQuaWQgPSBndWlsZElkXG4gIGlmIChwcm9wcy5vd25lcklkICYmIHBheWxvYWQuZ3VpbGQub3duZXJfaWQpIGd1aWxkLm93bmVySWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmd1aWxkLm93bmVyX2lkKVxuICBpZiAocHJvcHMucGVybWlzc2lvbnMgJiYgcGF5bG9hZC5ndWlsZC5wZXJtaXNzaW9ucykgZ3VpbGQucGVybWlzc2lvbnMgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmd1aWxkLnBlcm1pc3Npb25zKVxuICBpZiAocHJvcHMuYWZrQ2hhbm5lbElkICYmIHBheWxvYWQuZ3VpbGQuYWZrX2NoYW5uZWxfaWQpIGd1aWxkLmFma0NoYW5uZWxJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuZ3VpbGQuYWZrX2NoYW5uZWxfaWQpXG4gIGlmIChwcm9wcy53aWRnZXRDaGFubmVsSWQgJiYgcGF5bG9hZC5ndWlsZC53aWRnZXRfY2hhbm5lbF9pZCkgZ3VpbGQud2lkZ2V0Q2hhbm5lbElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5ndWlsZC53aWRnZXRfY2hhbm5lbF9pZClcbiAgaWYgKHByb3BzLmFwcGxpY2F0aW9uSWQgJiYgcGF5bG9hZC5ndWlsZC5hcHBsaWNhdGlvbl9pZCkgZ3VpbGQuYXBwbGljYXRpb25JZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuZ3VpbGQuYXBwbGljYXRpb25faWQpXG4gIGlmIChwcm9wcy5zeXN0ZW1DaGFubmVsSWQgJiYgcGF5bG9hZC5ndWlsZC5zeXN0ZW1fY2hhbm5lbF9pZCkgZ3VpbGQuc3lzdGVtQ2hhbm5lbElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5ndWlsZC5zeXN0ZW1fY2hhbm5lbF9pZClcbiAgaWYgKHByb3BzLnJ1bGVzQ2hhbm5lbElkICYmIHBheWxvYWQuZ3VpbGQucnVsZXNfY2hhbm5lbF9pZCkgZ3VpbGQucnVsZXNDaGFubmVsSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmd1aWxkLnJ1bGVzX2NoYW5uZWxfaWQpXG4gIGlmIChwcm9wcy5wdWJsaWNVcGRhdGVzQ2hhbm5lbElkICYmIHBheWxvYWQuZ3VpbGQucHVibGljX3VwZGF0ZXNfY2hhbm5lbF9pZClcbiAgICBndWlsZC5wdWJsaWNVcGRhdGVzQ2hhbm5lbElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5ndWlsZC5wdWJsaWNfdXBkYXRlc19jaGFubmVsX2lkKVxuICBpZiAocHJvcHMucHJlbWl1bVByb2dyZXNzQmFyRW5hYmxlZCAmJiBwYXlsb2FkLmd1aWxkLnByZW1pdW1fcHJvZ3Jlc3NfYmFyX2VuYWJsZWQpXG4gICAgZ3VpbGQucHJlbWl1bVByb2dyZXNzQmFyRW5hYmxlZCA9IHBheWxvYWQuZ3VpbGQucHJlbWl1bV9wcm9ncmVzc19iYXJfZW5hYmxlZFxuICBpZiAocHJvcHMubGFyZ2UgJiYgcGF5bG9hZC5ndWlsZC5sYXJnZSkgZ3VpbGQubGFyZ2UgPSBwYXlsb2FkLmd1aWxkLmxhcmdlXG4gIGlmIChwcm9wcy5vd25lciAmJiBwYXlsb2FkLmd1aWxkLm93bmVyKSBndWlsZC5vd25lciA9IHBheWxvYWQuZ3VpbGQub3duZXJcbiAgaWYgKHByb3BzLndpZGdldEVuYWJsZWQgJiYgcGF5bG9hZC5ndWlsZC53aWRnZXRfZW5hYmxlZCkgZ3VpbGQud2lkZ2V0RW5hYmxlZCA9IHBheWxvYWQuZ3VpbGQud2lkZ2V0X2VuYWJsZWRcbiAgaWYgKHByb3BzLnVuYXZhaWxhYmxlICYmIHBheWxvYWQuZ3VpbGQudW5hdmFpbGFibGUpIGd1aWxkLnVuYXZhaWxhYmxlID0gcGF5bG9hZC5ndWlsZC51bmF2YWlsYWJsZVxuICBpZiAocHJvcHMuaWNvbkhhc2ggJiYgcGF5bG9hZC5ndWlsZC5pY29uX2hhc2gpIGd1aWxkLmljb25IYXNoID0gaWNvbkhhc2hUb0JpZ0ludChwYXlsb2FkLmd1aWxkLmljb25faGFzaClcbiAgaWYgKHByb3BzLnByZXNlbmNlcyAmJiBwYXlsb2FkLmd1aWxkLnByZXNlbmNlcylcbiAgICBndWlsZC5wcmVzZW5jZXMgPSBwYXlsb2FkLmd1aWxkLnByZXNlbmNlcz8ubWFwKChwcmVzZW5jZSkgPT4gYm90LnRyYW5zZm9ybWVycy5wcmVzZW5jZShib3QsIHByZXNlbmNlIGFzIERpc2NvcmRQcmVzZW5jZVVwZGF0ZSkpXG4gIGlmIChwcm9wcy5zYWZldHlBbGVydHNDaGFubmVsSWQgJiYgcGF5bG9hZC5ndWlsZC5zYWZldHlfYWxlcnRzX2NoYW5uZWxfaWQpXG4gICAgZ3VpbGQuc2FmZXR5QWxlcnRzQ2hhbm5lbElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5ndWlsZC5zYWZldHlfYWxlcnRzX2NoYW5uZWxfaWQpXG4gIGlmIChwcm9wcy5pbmNpZGVudHNEYXRhICYmIHBheWxvYWQuZ3VpbGQuaW5jaWRlbnRzX2RhdGEpIGd1aWxkLmluY2lkZW50c0RhdGEgPSBib3QudHJhbnNmb3JtZXJzLmluY2lkZW50c0RhdGEoYm90LCBwYXlsb2FkLmd1aWxkLmluY2lkZW50c19kYXRhKVxuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLmd1aWxkKGJvdCwgcGF5bG9hZC5ndWlsZCwgZ3VpbGQpXG59XG4iXSwibmFtZXMiOlsiYmFzZUd1aWxkIiwidHJhbnNmb3JtR3VpbGQiLCJ1bmRlZmluZWQiLCJ0aHJlYWRzIiwiY2hhbm5lbHMiLCJDb2xsZWN0aW9uIiwiYXJyYXkiLCJmaWx0ZXIiLCJ4IiwidHlwZSIsIkNoYW5uZWxUeXBlcyIsIlB1YmxpY1RocmVhZCIsIlByaXZhdGVUaHJlYWQiLCJBbm5vdW5jZW1lbnRUaHJlYWQiLCJtYXAiLCJpZCIsImZlYXR1cmVzIiwidG9nZ2xlcyIsImJvdCIsInBheWxvYWQiLCJndWlsZElkIiwidHJhbnNmb3JtZXJzIiwic25vd2ZsYWtlIiwiZ3VpbGQiLCJwcm9wcyIsImRlc2lyZWRQcm9wZXJ0aWVzIiwiT2JqZWN0IiwiY3JlYXRlIiwiYWZrVGltZW91dCIsImFma190aW1lb3V0IiwiYXBwcm94aW1hdGVNZW1iZXJDb3VudCIsImFwcHJveGltYXRlX21lbWJlcl9jb3VudCIsImFwcHJveGltYXRlUHJlc2VuY2VDb3VudCIsImFwcHJveGltYXRlX3ByZXNlbmNlX2NvdW50IiwiZGVmYXVsdE1lc3NhZ2VOb3RpZmljYXRpb25zIiwiZGVmYXVsdF9tZXNzYWdlX25vdGlmaWNhdGlvbnMiLCJkZXNjcmlwdGlvbiIsIkd1aWxkVG9nZ2xlcyIsImV4cGxpY2l0Q29udGVudEZpbHRlciIsImV4cGxpY2l0X2NvbnRlbnRfZmlsdGVyIiwibWF4TWVtYmVycyIsIm1heF9tZW1iZXJzIiwibWF4UHJlc2VuY2VzIiwibWF4X3ByZXNlbmNlcyIsIm1heFZpZGVvQ2hhbm5lbFVzZXJzIiwibWF4X3ZpZGVvX2NoYW5uZWxfdXNlcnMiLCJtYXhTdGFnZVZpZGVvQ2hhbm5lbFVzZXJzIiwibWF4X3N0YWdlX3ZpZGVvX2NoYW5uZWxfdXNlcnMiLCJtZmFMZXZlbCIsIm1mYV9sZXZlbCIsIm5hbWUiLCJuc2Z3TGV2ZWwiLCJuc2Z3X2xldmVsIiwicHJlZmVycmVkTG9jYWxlIiwicHJlZmVycmVkX2xvY2FsZSIsInByZW1pdW1TdWJzY3JpcHRpb25Db3VudCIsInByZW1pdW1fc3Vic2NyaXB0aW9uX2NvdW50IiwicHJlbWl1bVRpZXIiLCJwcmVtaXVtX3RpZXIiLCJzdGFnZUluc3RhbmNlcyIsInN0YWdlX2luc3RhbmNlcyIsInNpIiwiY2hhbm5lbElkIiwiY2hhbm5lbF9pZCIsInRvcGljIiwiY2hhbm5lbCIsInJlc3VsdCIsIm1lbWJlcnMiLCJtZW1iZXIiLCJ1c2VyIiwicm9sZXMiLCJyb2xlIiwiZW1vamlzIiwiZW1vamkiLCJ2b2ljZVN0YXRlcyIsInZvaWNlX3N0YXRlcyIsInZvaWNlU3RhdGUiLCJ1c2VySWQiLCJzdGlja2VycyIsInN0aWNrZXIiLCJzeXN0ZW1DaGFubmVsRmxhZ3MiLCJzeXN0ZW1fY2hhbm5lbF9mbGFncyIsInZhbml0eVVybENvZGUiLCJ2YW5pdHlfdXJsX2NvZGUiLCJ2ZXJpZmljYXRpb25MZXZlbCIsInZlcmlmaWNhdGlvbl9sZXZlbCIsIndlbGNvbWVTY3JlZW4iLCJ3ZWxjb21lX3NjcmVlbiIsIndlbGNvbWVDaGFubmVscyIsIndlbGNvbWVfY2hhbm5lbHMiLCJ3YyIsImVtb2ppSWQiLCJlbW9qaV9pZCIsImVtb2ppTmFtZSIsImVtb2ppX25hbWUiLCJkaXNjb3ZlcnlTcGxhc2giLCJkaXNjb3Zlcnlfc3BsYXNoIiwiaWNvbkhhc2hUb0JpZ0ludCIsImpvaW5lZEF0Iiwiam9pbmVkX2F0IiwiRGF0ZSIsInBhcnNlIiwibWVtYmVyQ291bnQiLCJtZW1iZXJfY291bnQiLCJzaGFyZElkIiwiaWNvbiIsImJhbm5lciIsInNwbGFzaCIsIm93bmVySWQiLCJvd25lcl9pZCIsInBlcm1pc3Npb25zIiwiYWZrQ2hhbm5lbElkIiwiYWZrX2NoYW5uZWxfaWQiLCJ3aWRnZXRDaGFubmVsSWQiLCJ3aWRnZXRfY2hhbm5lbF9pZCIsImFwcGxpY2F0aW9uSWQiLCJhcHBsaWNhdGlvbl9pZCIsInN5c3RlbUNoYW5uZWxJZCIsInN5c3RlbV9jaGFubmVsX2lkIiwicnVsZXNDaGFubmVsSWQiLCJydWxlc19jaGFubmVsX2lkIiwicHVibGljVXBkYXRlc0NoYW5uZWxJZCIsInB1YmxpY191cGRhdGVzX2NoYW5uZWxfaWQiLCJwcmVtaXVtUHJvZ3Jlc3NCYXJFbmFibGVkIiwicHJlbWl1bV9wcm9ncmVzc19iYXJfZW5hYmxlZCIsImxhcmdlIiwib3duZXIiLCJ3aWRnZXRFbmFibGVkIiwid2lkZ2V0X2VuYWJsZWQiLCJ1bmF2YWlsYWJsZSIsImljb25IYXNoIiwiaWNvbl9oYXNoIiwicHJlc2VuY2VzIiwicHJlc2VuY2UiLCJzYWZldHlBbGVydHNDaGFubmVsSWQiLCJzYWZldHlfYWxlcnRzX2NoYW5uZWxfaWQiLCJpbmNpZGVudHNEYXRhIiwiaW5jaWRlbnRzX2RhdGEiLCJjdXN0b21pemVycyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7UUFLYUE7ZUFBQUE7O1FBa0JHQztlQUFBQTs7O3VCQXZCNEQ7dUJBQy9CO3VCQUVoQjtBQUV0QixNQUFNRCxZQUFvRTtJQUMvRSwyRUFBMkU7SUFDM0UsR0FBSUUsU0FBUztJQUViLElBQUlDLFdBQVU7UUFDWixJQUFJLENBQUMsSUFBSSxDQUFDQyxRQUFRLEVBQUUsT0FBTyxJQUFJQyxpQkFBVTtR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
@@ -5,29 +5,29 @@ Object.defineProperty(exports, "__esModule", {
5
5
  function _export(target, all) {
6
6
  for(var name in all)Object.defineProperty(target, name, {
7
7
  enumerable: true,
8
- get: all[name]
8
+ get: Object.getOwnPropertyDescriptor(all, name).get
9
9
  });
10
10
  }
11
11
  _export(exports, {
12
- baseInteraction: function() {
12
+ get baseInteraction () {
13
13
  return baseInteraction;
14
14
  },
15
- transformInteraction: function() {
15
+ get transformInteraction () {
16
16
  return transformInteraction;
17
17
  },
18
- transformInteractionCallback: function() {
18
+ get transformInteractionCallback () {
19
19
  return transformInteractionCallback;
20
20
  },
21
- transformInteractionCallbackResponse: function() {
21
+ get transformInteractionCallbackResponse () {
22
22
  return transformInteractionCallbackResponse;
23
23
  },
24
- transformInteractionDataOption: function() {
24
+ get transformInteractionDataOption () {
25
25
  return transformInteractionDataOption;
26
26
  },
27
- transformInteractionDataResolved: function() {
27
+ get transformInteractionDataResolved () {
28
28
  return transformInteractionDataResolved;
29
29
  },
30
- transformInteractionResource: function() {
30
+ get transformInteractionResource () {
31
31
  return transformInteractionResource;
32
32
  }
33
33
  });
@@ -276,4 +276,4 @@ function transformInteractionResource(bot, payload) {
276
276
  return bot.transformers.customizers.interactionResource(bot, payload.interactionResource, resource);
277
277
  }
278
278
 
279
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvaW50ZXJhY3Rpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlLFxuICB0eXBlIERpc2NvcmRJbnRlcmFjdGlvbixcbiAgdHlwZSBEaXNjb3JkSW50ZXJhY3Rpb25DYWxsYmFjayxcbiAgdHlwZSBEaXNjb3JkSW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlLFxuICB0eXBlIERpc2NvcmRJbnRlcmFjdGlvbkRhdGFPcHRpb24sXG4gIHR5cGUgRGlzY29yZEludGVyYWN0aW9uRGF0YVJlc29sdmVkLFxuICB0eXBlIERpc2NvcmRJbnRlcmFjdGlvblJlc291cmNlLFxuICBJbnRlcmFjdGlvblJlc3BvbnNlVHlwZXMsXG4gIEludGVyYWN0aW9uVHlwZXMsXG4gIE1lc3NhZ2VGbGFncyxcbn0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnXG5pbXBvcnQgeyBDb2xsZWN0aW9uIH0gZnJvbSAnQGRpc2NvcmRlbm8vdXRpbHMnXG5pbXBvcnQgdHlwZSB7XG4gIEJvdCxcbiAgRGlzY29yZENoYW5uZWwsXG4gIEludGVyYWN0aW9uLFxuICBJbnRlcmFjdGlvbkNhbGxiYWNrLFxuICBJbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2UsXG4gIEludGVyYWN0aW9uRGF0YU9wdGlvbixcbiAgSW50ZXJhY3Rpb25EYXRhUmVzb2x2ZWQsXG4gIEludGVyYWN0aW9uUmVzb2x2ZWRDaGFubmVsLFxuICBJbnRlcmFjdGlvblJlc291cmNlLFxuICBJbnRlcm5hbEJvdCxcbiAgTWVtYmVyLFxuICBNZXNzYWdlLFxufSBmcm9tICcuLi9pbmRleC5qcydcblxuZXhwb3J0IGNvbnN0IGJhc2VJbnRlcmFjdGlvbjogSW50ZXJuYWxCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydpbnRlcmFjdGlvbiddID0ge1xuICAvLyBUaGlzIGFsbG93cyB0eXBlc2NyaXB0IHRvIHN0aWxsIGNoZWNrIGZvciB0eXBlIGVycm9ycyBvbiBmdW5jdGlvbnMgYmVsb3dcbiAgLi4uKHVuZGVmaW5lZCBhcyB1bmtub3duIGFzIEludGVybmFsQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnaW50ZXJhY3Rpb24nXSksXG5cbiAgYXN5bmMgcmVzcG9uZChyZXNwb25zZSwgb3B0aW9ucykge1xuICAgIGxldCB0eXBlID0gSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLkNoYW5uZWxNZXNzYWdlV2l0aFNvdXJjZVxuXG4gICAgLy8gSWYgdXNlciBwcm92aWRlcyBhIHN0cmluZywgY2hhbmdlIGl0IHRvIGEgcmVzcG9uc2Ugb2JqZWN0XG4gICAgaWYgKHR5cGVvZiByZXNwb25zZSA9PT0gJ3N0cmluZycpIHJlc3BvbnNlID0geyBjb250ZW50OiByZXNwb25zZSB9XG5cbiAgICAvLyBJZiB1c2VyIHByb3ZpZGVzIGFuIG9iamVjdCwgZGV0ZXJtaW5lIGlmIGl0IHNob3VsZCBiZSBhbiBhdXRvY29tcGxldGUgb3IgYSBtb2RhbCByZXNwb25zZVxuICAgIGlmIChyZXNwb25zZS50aXRsZSkgdHlwZSA9IEludGVyYWN0aW9uUmVzcG9uc2VUeXBlcy5Nb2RhbFxuICAgIGlmICh0aGlzLnR5cGUgPT09IEludGVyYWN0aW9uVHlwZXMuQXBwbGljYXRpb25Db21tYW5kQXV0b2NvbXBsZXRlKSB0eXBlID0gSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLkFwcGxpY2F0aW9uQ29tbWFuZEF1dG9jb21wbGV0ZVJlc3VsdFxuICAgIGlmICh0eXBlID09PSBJbnRlcmFjdGlvblJlc3BvbnNlVHlwZXMuQ2hhbm5lbE1lc3NhZ2VXaXRoU291cmNlICYmIG9wdGlvbnM/LmlzUHJpdmF0ZSkge1xuICAgICAgcmVzcG9uc2UuZmxhZ3MgPz89IDBcbiAgICAgIHJlc3BvbnNlLmZsYWdzIHw9IE1lc3NhZ2VGbGFncy5FcGhlbWVyYWxcbiAgICB9XG5cbiAgICAvLyBTaW5jZSB0aGlzIGhhcyBhbHJlYWR5IGJlZW4gZ2l2ZW4gYSByZXNwb25zZSwgYW55IGZ1cnRoZXIgcmVzcG9uc2VzIG11c3QgYmUgZm9sbG93dXBzLlxuICAgIGlmICh0aGlzLmFja25vd2xlZGdlZCkgcmV0dXJuIGF3YWl0IHRoaXMuYm90LmhlbHBlcnMuc2VuZEZvbGxvd3VwTWVzc2FnZSh0aGlzLnRva2VuLCByZXNwb25zZSlcblxuICAgIC8vIE1vZGFscyBjYW5ub3QgYmUgY2hhaW5lZFxuICAgIGlmICh0aGlzLnR5cGUgPT09IEludGVyYWN0aW9uVHlwZXMuTW9kYWxTdWJtaXQgJiYgdHlwZSA9PT0gSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLk1vZGFsKVxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgcmVzcG9uZCB0byBhIG1vZGFsIGludGVyYWN0aW9uIHdpdGggYW5vdGhlciBtb2RhbC4nKVxuXG4gICAgdGhpcy5hY2tub3dsZWRnZWQgPSB0cnVlXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuYm90LmhlbHBlcnMuc2VuZEludGVyYWN0aW9uUmVzcG9uc2UodGhpcy5pZCwgdGhpcy50b2tlbiwgeyB0eXBlLCBkYXRhOiByZXNwb25zZSB9LCB7IHdpdGhSZXNwb25zZTogb3B0aW9ucz8ud2l0aFJlc3BvbnNlIH0pXG4gIH0sXG4gIGFzeW5jIGVkaXQocmVzcG9uc2UsIG1lc3NhZ2VJZCwgb3B0aW9ucykge1xuICAgIGlmICh0aGlzLnR5cGUgPT09IEludGVyYWN0aW9uVHlwZXMuQXBwbGljYXRpb25Db21tYW5kQXV0b2NvbXBsZXRlKSB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBlZGl0IGFuIGF1dG9jb21wbGV0ZSBpbnRlcmFjdGlvbi4nKVxuXG4gICAgLy8gSWYgdXNlciBwcm92aWRlcyBhIHN0cmluZywgY2hhbmdlIGl0IHRvIGEgcmVzcG9uc2Ugb2JqZWN0XG4gICAgaWYgKHR5cGVvZiByZXNwb25zZSA9PT0gJ3N0cmluZycpIHJlc3BvbnNlID0geyBjb250ZW50OiByZXNwb25zZSB9XG5cbiAgICBpZiAobWVzc2FnZUlkKSB7XG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy5ib3Q/LmhlbHBlcnMuZWRpdEZvbGxvd3VwTWVzc2FnZSh0aGlzLnRva2VuLCBtZXNzYWdlSWQsIHJlc3BvbnNlKVxuICAgIH1cblxuICAgIGlmICghdGhpcy5hY2tub3dsZWRnZWQpIHtcbiAgICAgIGlmICh0aGlzLnR5cGUgIT09IEludGVyYWN0aW9uVHlwZXMuTWVzc2FnZUNvbXBvbmVudCAmJiB0aGlzLnR5cGUgIT09IEludGVyYWN0aW9uVHlwZXMuTW9kYWxTdWJtaXQpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIlRoaXMgaW50ZXJhY3Rpb24gaGFzIG5vdCBiZWVuIHJlc3BvbmRlZCB0byB5ZXQgYW5kIHRoaXMgaXNuJ3QgYSBNZXNzYWdlQ29tcG9uZW50IG9yIE1vZGFsU3VibWl0IGludGVyYWN0aW9uLlwiKVxuXG4gICAgICB0aGlzLmFja25vd2xlZGdlZCA9IHRydWVcbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLmJvdC5oZWxwZXJzLnNlbmRJbnRlcmFjdGlvblJlc3BvbnNlKFxuICAgICAgICB0aGlzLmlkLFxuICAgICAgICB0aGlzLnRva2VuLFxuICAgICAgICB7IHR5cGU6IEludGVyYWN0aW9uUmVzcG9uc2VUeXBlcy5VcGRhdGVNZXNzYWdlLCBkYXRhOiByZXNwb25zZSB9LFxuICAgICAgICBvcHRpb25zLFxuICAgICAgKVxuICAgIH1cblxuICAgIHJldHVybiBhd2FpdCB0aGlzLmJvdC5oZWxwZXJzLmVkaXRPcmlnaW5hbEludGVyYWN0aW9uUmVzcG9uc2UodGhpcy50b2tlbiwgcmVzcG9uc2UpXG4gIH0sXG4gIGFzeW5jIGRlZmVyRWRpdChvcHRpb25zKSB7XG4gICAgaWYgKHRoaXMudHlwZSA9PT0gSW50ZXJhY3Rpb25UeXBlcy5BcHBsaWNhdGlvbkNvbW1hbmRBdXRvY29tcGxldGUpIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGVkaXQgYW4gYXV0b2NvbXBsZXRlIGludGVyYWN0aW9uLicpXG4gICAgaWYgKHRoaXMuYWNrbm93bGVkZ2VkKSB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBkZWZlciBhbiBhbHJlYWR5IHJlc3BvbmRlZCBpbnRlcmFjdGlvbi4nKVxuXG4gICAgaWYgKHRoaXMudHlwZSAhPT0gSW50ZXJhY3Rpb25UeXBlcy5NZXNzYWdlQ29tcG9uZW50ICYmIHRoaXMudHlwZSAhPT0gSW50ZXJhY3Rpb25UeXBlcy5Nb2RhbFN1Ym1pdClcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkNhbm5vdCBkZWZlciB0byB0aGVuIGVkaXQgYW4gaW50ZXJhY3Rpb24gdGhhdCBpc24ndCBhIE1lc3NhZ2VDb21wb25lbnQgb3IgTW9kYWxTdWJtaXQgaW50ZXJhY3Rpb24uXCIpXG5cbiAgICB0aGlzLmFja25vd2xlZGdlZCA9IHRydWVcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5ib3QuaGVscGVycy5zZW5kSW50ZXJhY3Rpb25SZXNwb25zZSh0aGlzLmlkLCB0aGlzLnRva2VuLCB7IHR5cGU6IEludGVyYWN0aW9uUmVzcG9uc2VUeXBlcy5EZWZlcnJlZFVwZGF0ZU1lc3NhZ2UgfSwgb3B0aW9ucylcbiAgfSxcbiAgYXN5bmMgZGVmZXIoaXNQcml2YXRlLCBvcHRpb25zKSB7XG4gICAgaWYgKHRoaXMuYWNrbm93bGVkZ2VkKSB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBkZWZlciBhbiBhbHJlYWR5IHJlc3BvbmRlZCBpbnRlcmFjdGlvbi4nKVxuXG4gICAgdGhpcy5hY2tub3dsZWRnZWQgPSB0cnVlXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuYm90LmhlbHBlcnMuc2VuZEludGVyYWN0aW9uUmVzcG9uc2UoXG4gICAgICB0aGlzLmlkLFxuICAgICAgdGhpcy50b2tlbixcbiAgICAgIHtcbiAgICAgICAgdHlwZTogSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLkRlZmVycmVkQ2hhbm5lbE1lc3NhZ2VXaXRoU291cmNlLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgZmxhZ3M6IGlzUHJpdmF0ZSA/IE1lc3NhZ2VGbGFncy5FcGhlbWVyYWwgOiB1bmRlZmluZWQsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgb3B0aW9ucyxcbiAgICApXG4gIH0sXG4gIGFzeW5jIGRlbGV0ZShtZXNzYWdlSWQpIHtcbiAgICBpZiAodGhpcy50eXBlID09PSBJbnRlcmFjdGlvblR5cGVzLkFwcGxpY2F0aW9uQ29tbWFuZEF1dG9jb21wbGV0ZSkgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgZGVsZXRlIGFuIGF1dG9jb21wbGV0ZSBpbnRlcmFjdGlvbicpXG5cbiAgICBpZiAobWVzc2FnZUlkKSByZXR1cm4gYXdhaXQgdGhpcy5ib3Q/LmhlbHBlcnMuZGVsZXRlRm9sbG93dXBNZXNzYWdlKHRoaXMudG9rZW4sIG1lc3NhZ2VJZClcbiAgICBlbHNlIHJldHVybiBhd2FpdCB0aGlzLmJvdD8uaGVscGVycy5kZWxldGVPcmlnaW5hbEludGVyYWN0aW9uUmVzcG9uc2UodGhpcy50b2tlbilcbiAgfSxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybUludGVyYWN0aW9uKFxuICBib3Q6IEludGVybmFsQm90LFxuICBwYXlsb2FkOiB7IGludGVyYWN0aW9uOiBEaXNjb3JkSW50ZXJhY3Rpb247IHNoYXJkSWQ6IG51bWJlciB9LFxuKTogdHlwZW9mIGJvdC50cmFuc2Zvcm1lcnMuJGluZmVycmVkVHlwZXMuaW50ZXJhY3Rpb24ge1xuICBjb25zdCBndWlsZElkID0gcGF5bG9hZC5pbnRlcmFjdGlvbi5ndWlsZF9pZCA/IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaW50ZXJhY3Rpb24uZ3VpbGRfaWQpIDogdW5kZWZpbmVkXG4gIGNvbnN0IHVzZXIgPSBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCBwYXlsb2FkLmludGVyYWN0aW9uLm1lbWJlcj8udXNlciA/PyBwYXlsb2FkLmludGVyYWN0aW9uLnVzZXIhKVxuXG4gIGNvbnN0IGludGVyYWN0aW9uOiBJbnRlcmFjdGlvbiA9IE9iamVjdC5jcmVhdGUoYmFzZUludGVyYWN0aW9uKVxuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuaW50ZXJhY3Rpb25cbiAgLy8gVHlwZXNjcmlwdCBoYXMgYW4gaGFyZCB0aW1lIHdpdGggdGhpcywgc28gd2UgbmVlZCB0byB0ZWxsIGhpbSBmb3Igc3VyZSB0aGlzIGlzIGEgQm90XG4gIGludGVyYWN0aW9uLmJvdCA9IGJvdCBhcyB1bmtub3duIGFzIEJvdFxuICBpbnRlcmFjdGlvbi5hY2tub3dsZWRnZWQgPSBmYWxzZVxuXG4gIGlmIChwcm9wcy5pZCAmJiBwYXlsb2FkLmludGVyYWN0aW9uLmlkKSBpbnRlcmFjdGlvbi5pZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaW50ZXJhY3Rpb24uaWQpXG4gIGlmIChwcm9wcy5hcHBsaWNhdGlvbklkICYmIHBheWxvYWQuaW50ZXJhY3Rpb24uYXBwbGljYXRpb25faWQpXG4gICAgaW50ZXJhY3Rpb24uYXBwbGljYXRpb25JZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaW50ZXJhY3Rpb24uYXBwbGljYXRpb25faWQpXG4gIGlmIChwcm9wcy50eXBlICYmIHBheWxvYWQuaW50ZXJhY3Rpb24udHlwZSkgaW50ZXJhY3Rpb24udHlwZSA9IHBheWxvYWQuaW50ZXJhY3Rpb24udHlwZVxuICBpZiAocHJvcHMudG9rZW4gJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi50b2tlbikgaW50ZXJhY3Rpb24udG9rZW4gPSBwYXlsb2FkLmludGVyYWN0aW9uLnRva2VuXG4gIGlmIChwcm9wcy52ZXJzaW9uICYmIHBheWxvYWQuaW50ZXJhY3Rpb24udmVyc2lvbikgaW50ZXJhY3Rpb24udmVyc2lvbiA9IHBheWxvYWQuaW50ZXJhY3Rpb24udmVyc2lvblxuICBpZiAocHJvcHMubG9jYWxlICYmIHBheWxvYWQuaW50ZXJhY3Rpb24ubG9jYWxlKSBpbnRlcmFjdGlvbi5sb2NhbGUgPSBwYXlsb2FkLmludGVyYWN0aW9uLmxvY2FsZVxuICBpZiAocHJvcHMuZ3VpbGRMb2NhbGUgJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi5ndWlsZF9sb2NhbGUpIGludGVyYWN0aW9uLmd1aWxkTG9jYWxlID0gcGF5bG9hZC5pbnRlcmFjdGlvbi5ndWlsZF9sb2NhbGVcbiAgaWYgKHByb3BzLmd1aWxkICYmIHBheWxvYWQuaW50ZXJhY3Rpb24uZ3VpbGQpXG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvciBwYXlsb2FkLmludGVyYWN0aW9uLmd1aWxkIGlzIGEgUGFydGlhbDxEaXNjb3JkR3VpbGQ+XG4gICAgaW50ZXJhY3Rpb24uZ3VpbGQgPSBib3QudHJhbnNmb3JtZXJzLmd1aWxkKGJvdCwgeyBndWlsZDogcGF5bG9hZC5pbnRlcmFjdGlvbi5ndWlsZCwgc2hhcmRJZDogcGF5bG9hZC5zaGFyZElkIH0pXG4gIGlmIChwcm9wcy5ndWlsZElkICYmIGd1aWxkSWQpIGludGVyYWN0aW9uLmd1aWxkSWQgPSBndWlsZElkXG4gIGlmIChwcm9wcy51c2VyICYmIHVzZXIpIGludGVyYWN0aW9uLnVzZXIgPSB1c2VyXG4gIGlmIChwcm9wcy5hcHBQZXJtaXNzaW9ucyAmJiBwYXlsb2FkLmludGVyYWN0aW9uLmFwcF9wZXJtaXNzaW9ucylcbiAgICBpbnRlcmFjdGlvbi5hcHBQZXJtaXNzaW9ucyA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaW50ZXJhY3Rpb24uYXBwX3Blcm1pc3Npb25zKVxuICBpZiAocHJvcHMubWVzc2FnZSAmJiBwYXlsb2FkLmludGVyYWN0aW9uLm1lc3NhZ2UpXG4gICAgaW50ZXJhY3Rpb24ubWVzc2FnZSA9IGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHsgbWVzc2FnZTogcGF5bG9hZC5pbnRlcmFjdGlvbi5tZXNzYWdlLCBzaGFyZElkOiAwIH0pXG4gIGlmIChwcm9wcy5jaGFubmVsICYmIHBheWxvYWQuaW50ZXJhY3Rpb24uY2hhbm5lbClcbiAgICBpbnRlcmFjdGlvbi5jaGFubmVsID0gYm90LnRyYW5zZm9ybWVycy5jaGFubmVsKGJvdCwgeyBjaGFubmVsOiBwYXlsb2FkLmludGVyYWN0aW9uLmNoYW5uZWwgYXMgRGlzY29yZENoYW5uZWwsIGd1aWxkSWQgfSlcbiAgaWYgKHByb3BzLmNoYW5uZWxJZCAmJiBwYXlsb2FkLmludGVyYWN0aW9uLmNoYW5uZWxfaWQpIGludGVyYWN0aW9uLmNoYW5uZWxJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaW50ZXJhY3Rpb24uY2hhbm5lbF9pZClcbiAgaWYgKHByb3BzLm1lbWJlciAmJiBndWlsZElkICYmIHBheWxvYWQuaW50ZXJhY3Rpb24ubWVtYmVyKVxuICAgIGludGVyYWN0aW9uLm1lbWJlciA9IGJvdC50cmFuc2Zvcm1lcnMubWVtYmVyKGJvdCwgcGF5bG9hZC5pbnRlcmFjdGlvbi5tZW1iZXIsIGd1aWxkSWQsIHVzZXIuaWQpXG4gIGlmIChwcm9wcy5lbnRpdGxlbWVudHMgJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi5lbnRpdGxlbWVudHMpXG4gICAgaW50ZXJhY3Rpb24uZW50aXRsZW1lbnRzID0gcGF5bG9hZC5pbnRlcmFjdGlvbi5lbnRpdGxlbWVudHMubWFwKChlKSA9PiBib3QudHJhbnNmb3JtZXJzLmVudGl0bGVtZW50KGJvdCwgZSkpXG4gIGlmIChwcm9wcy5hdXRob3JpemluZ0ludGVncmF0aW9uT3duZXJzICYmIHBheWxvYWQuaW50ZXJhY3Rpb24uYXV0aG9yaXppbmdfaW50ZWdyYXRpb25fb3duZXJzKSB7XG4gICAgaW50ZXJhY3Rpb24uYXV0aG9yaXppbmdJbnRlZ3JhdGlvbk93bmVycyA9IHt9XG5cbiAgICBpZiAocGF5bG9hZC5pbnRlcmFjdGlvbi5hdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnNbJzAnXSlcbiAgICAgIGludGVyYWN0aW9uLmF1dGhvcml6aW5nSW50ZWdyYXRpb25Pd25lcnNbRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlLkd1aWxkSW5zdGFsbF0gPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShcbiAgICAgICAgcGF5bG9hZC5pbnRlcmFjdGlvbi5hdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnNbJzAnXSxcbiAgICAgIClcbiAgICBpZiAocGF5bG9hZC5pbnRlcmFjdGlvbi5hdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnNbJzEnXSlcbiAgICAgIGludGVyYWN0aW9uLmF1dGhvcml6aW5nSW50ZWdyYXRpb25Pd25lcnNbRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlLlVzZXJJbnN0YWxsXSA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKFxuICAgICAgICBwYXlsb2FkLmludGVyYWN0aW9uLmF1dGhvcml6aW5nX2ludGVncmF0aW9uX293bmVyc1snMSddLFxuICAgICAgKVxuICB9XG4gIGlmIChwcm9wcy5jb250ZXh0ICYmIHBheWxvYWQuaW50ZXJhY3Rpb24uY29udGV4dCkgaW50ZXJhY3Rpb24uY29udGV4dCA9IHBheWxvYWQuaW50ZXJhY3Rpb24uY29udGV4dFxuICBpZiAocHJvcHMuYXR0YWNobWVudFNpemVMaW1pdCAmJiBwYXlsb2FkLmludGVyYWN0aW9uLmF0dGFjaG1lbnRfc2l6ZV9saW1pdClcbiAgICBpbnRlcmFjdGlvbi5hdHRhY2htZW50U2l6ZUxpbWl0ID0gcGF5bG9hZC5pbnRlcmFjdGlvbi5hdHRhY2htZW50X3NpemVfbGltaXRcbiAgaWYgKHByb3BzLmRhdGEgJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhKSB7XG4gICAgaW50ZXJhY3Rpb24uZGF0YSA9IHtcbiAgICAgIHR5cGU6IHBheWxvYWQuaW50ZXJhY3Rpb24uZGF0YS50eXBlLFxuICAgICAgY29tcG9uZW50VHlwZTogcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLmNvbXBvbmVudF90eXBlLFxuICAgICAgY3VzdG9tSWQ6IHBheWxvYWQuaW50ZXJhY3Rpb24uZGF0YS5jdXN0b21faWQsXG4gICAgICBjb21wb25lbnRzOiBwYXlsb2FkLmludGVyYWN0aW9uLmRhdGEuY29tcG9uZW50cz8ubWFwKChjb21wb25lbnQpID0+IGJvdC50cmFuc2Zvcm1lcnMuY29tcG9uZW50KGJvdCwgY29tcG9uZW50KSksXG4gICAgICB2YWx1ZXM6IHBheWxvYWQuaW50ZXJhY3Rpb24uZGF0YS52YWx1ZXMsXG4gICAgICBpZDogcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLmlkID8gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLmlkKSA6IHVuZGVmaW5lZCxcbiAgICAgIG5hbWU6IHBheWxvYWQuaW50ZXJhY3Rpb24uZGF0YS5uYW1lLFxuICAgICAgcmVzb2x2ZWQ6IHBheWxvYWQuaW50ZXJhY3Rpb24uZGF0YS5yZXNvbHZlZFxuICAgICAgICA/IGJvdC50cmFuc2Zvcm1lcnMuaW50ZXJhY3Rpb25EYXRhUmVzb2x2ZWQoYm90LCB7IHJlc29sdmVkOiBwYXlsb2FkLmludGVyYWN0aW9uLmRhdGEucmVzb2x2ZWQsIHNoYXJkSWQ6IHBheWxvYWQuc2hhcmRJZCwgZ3VpbGRJZCB9KVxuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgIG9wdGlvbnM6IHBheWxvYWQuaW50ZXJhY3Rpb24uZGF0YS5vcHRpb25zPy5tYXAoKG9wdCkgPT4gYm90LnRyYW5zZm9ybWVycy5pbnRlcmFjdGlvbkRhdGFPcHRpb25zKGJvdCwgb3B0KSksXG4gICAgICB0YXJnZXRJZDogcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLnRhcmdldF9pZCA/IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaW50ZXJhY3Rpb24uZGF0YS50YXJnZXRfaWQpIDogdW5kZWZpbmVkLFxuICAgIH1cbiAgfVxuXG4gIC8vIFR5cGVzY3JpcHQgaGFzIGFuIGhhcmQgdGltZSB3aXRoIGludGVyYWN0aW9uLmJvdCwgc28gd2UgbmVlZCB0byB0ZWxsIGhpbSBmb3Igc3VyZSB0aGlzIGludGVyYWN0aW9uIGlzIHRoZSBvZiB0aGUgY29ycmVjdCB0eXBlXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLmludGVyYWN0aW9uKGJvdCwgcGF5bG9hZCwgaW50ZXJhY3Rpb24gYXMgdW5rbm93biBhcyB0eXBlb2YgYm90LnRyYW5zZm9ybWVycy4kaW5mZXJyZWRUeXBlcy5pbnRlcmFjdGlvbilcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybUludGVyYWN0aW9uRGF0YU9wdGlvbihib3Q6IEJvdCwgb3B0aW9uOiBEaXNjb3JkSW50ZXJhY3Rpb25EYXRhT3B0aW9uKTogSW50ZXJhY3Rpb25EYXRhT3B0aW9uIHtcbiAgY29uc3Qgb3B0ID0ge1xuICAgIG5hbWU6IG9wdGlvbi5uYW1lLFxuICAgIHR5cGU6IG9wdGlvbi50eXBlLFxuICAgIHZhbHVlOiBvcHRpb24udmFsdWUsXG4gICAgb3B0aW9uczogb3B0aW9uLm9wdGlvbnMsXG4gICAgZm9jdXNlZDogb3B0aW9uLmZvY3VzZWQsXG4gIH0gYXMgSW50ZXJhY3Rpb25EYXRhT3B0aW9uXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMuaW50ZXJhY3Rpb25EYXRhT3B0aW9ucyhib3QsIG9wdGlvbiwgb3B0KVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtSW50ZXJhY3Rpb25EYXRhUmVzb2x2ZWQoXG4gIGJvdDogSW50ZXJuYWxCb3QsXG4gIHBheWxvYWQ6IHsgcmVzb2x2ZWQ6IERpc2NvcmRJbnRlcmFjdGlvbkRhdGFSZXNvbHZlZDsgc2hhcmRJZDogbnVtYmVyOyBndWlsZElkPzogYmlnaW50IH0sXG4pOiBJbnRlcmFjdGlvbkRhdGFSZXNvbHZlZCB7XG4gIGNvbnN0IHRyYW5zZm9ybWVkOiBJbnRlcmFjdGlvbkRhdGFSZXNvbHZlZCA9IHt9XG5cbiAgaWYgKHBheWxvYWQucmVzb2x2ZWQubWVzc2FnZXMpIHtcbiAgICB0cmFuc2Zvcm1lZC5tZXNzYWdlcyA9IG5ldyBDb2xsZWN0aW9uKFxuICAgICAgT2JqZWN0LmVudHJpZXMocGF5bG9hZC5yZXNvbHZlZC5tZXNzYWdlcykubWFwKChbX2lkLCB2YWx1ZV0pID0+IHtcbiAgICAgICAgY29uc3QgbWVzc2FnZTogTWVzc2FnZSA9IGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHsgbWVzc2FnZTogdmFsdWUsIHNoYXJkSWQ6IHBheWxvYWQuc2hhcmRJZCB9KVxuICAgICAgICByZXR1cm4gW21lc3NhZ2UuaWQsIG1lc3NhZ2VdXG4gICAgICB9KSxcbiAgICApXG4gIH1cblxuICBpZiAocGF5bG9hZC5yZXNvbHZlZC51c2Vycykge1xuICAgIHRyYW5zZm9ybWVkLnVzZXJzID0gbmV3IENvbGxlY3Rpb24oXG4gICAgICBPYmplY3QuZW50cmllcyhwYXlsb2FkLnJlc29sdmVkLnVzZXJzKS5tYXAoKFtfaWQsIHZhbHVlXSkgPT4ge1xuICAgICAgICBjb25zdCB1c2VyID0gYm90LnRyYW5zZm9ybWVycy51c2VyKGJvdCwgdmFsdWUpXG4gICAgICAgIHJldHVybiBbdXNlci5pZCwgdXNlcl1cbiAgICAgIH0pLFxuICAgIClcbiAgfVxuXG4gIGlmIChwYXlsb2FkLmd1aWxkSWQgJiYgcGF5bG9hZC5yZXNvbHZlZC5tZW1iZXJzKSB7XG4gICAgdHJhbnNmb3JtZWQubWVtYmVycyA9IG5ldyBDb2xsZWN0aW9uKFxuICAgICAgT2JqZWN0LmVudHJpZXMocGF5bG9hZC5yZXNvbHZlZC5tZW1iZXJzKS5tYXAoKFtpZCwgdmFsdWVdKSA9PiB7XG4gICAgICAgIGNvbnN0IG1lbWJlcjogTWVtYmVyID0gYm90LnRyYW5zZm9ybWVycy5tZW1iZXIoYm90LCB2YWx1ZSwgcGF5bG9hZC5ndWlsZElkISwgYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoaWQpKVxuICAgICAgICByZXR1cm4gW21lbWJlci5pZCwgbWVtYmVyXVxuICAgICAgfSksXG4gICAgKVxuICB9XG5cbiAgaWYgKHBheWxvYWQuZ3VpbGRJZCAmJiBwYXlsb2FkLnJlc29sdmVkLnJvbGVzKSB7XG4gICAgdHJhbnNmb3JtZWQucm9sZXMgPSBuZXcgQ29sbGVjdGlvbihcbiAgICAgIE9iamVjdC5lbnRyaWVzKHBheWxvYWQucmVzb2x2ZWQucm9sZXMpLm1hcCgoW19pZCwgdmFsdWVdKSA9PiB7XG4gICAgICAgIGNvbnN0IHJvbGUgPSBib3QudHJhbnNmb3JtZXJzLnJvbGUoYm90LCB7IHJvbGU6IHZhbHVlLCBndWlsZElkOiBwYXlsb2FkLmd1aWxkSWQhIH0pXG4gICAgICAgIHJldHVybiBbcm9sZS5pZCwgcm9sZV1cbiAgICAgIH0pLFxuICAgIClcbiAgfVxuXG4gIGlmIChwYXlsb2FkLnJlc29sdmVkLmNoYW5uZWxzKSB7XG4gICAgdHJhbnNmb3JtZWQuY2hhbm5lbHMgPSBuZXcgQ29sbGVjdGlvbihcbiAgICAgIE9iamVjdC5lbnRyaWVzKHBheWxvYWQucmVzb2x2ZWQuY2hhbm5lbHMpLm1hcCgoW19pZCwgdmFsdWVdKSA9PiB7XG4gICAgICAgIGNvbnN0IGNoYW5uZWwgPSBib3QudHJhbnNmb3JtZXJzLmNoYW5uZWwoYm90LCB7IGNoYW5uZWw6IHZhbHVlIH0pIGFzIEludGVyYWN0aW9uUmVzb2x2ZWRDaGFubmVsXG4gICAgICAgIHJldHVybiBbY2hhbm5lbC5pZCwgY2hhbm5lbF1cbiAgICAgIH0pLFxuICAgIClcbiAgfVxuXG4gIGlmIChwYXlsb2FkLnJlc29sdmVkLmF0dGFjaG1lbnRzKSB7XG4gICAgdHJhbnNmb3JtZWQuYXR0YWNobWVudHMgPSBuZXcgQ29sbGVjdGlvbihcbiAgICAgIE9iamVjdC5lbnRyaWVzKHBheWxvYWQucmVzb2x2ZWQuYXR0YWNobWVudHMpLm1hcCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICAgIGNvbnN0IGlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2Uoa2V5KVxuICAgICAgICByZXR1cm4gW2lkLCBib3QudHJhbnNmb3JtZXJzLmF0dGFjaG1lbnQoYm90LCB2YWx1ZSldXG4gICAgICB9KSxcbiAgICApXG4gIH1cblxuICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jdXN0b21pemVycy5pbnRlcmFjdGlvbkRhdGFSZXNvbHZlZChib3QsIHBheWxvYWQsIHRyYW5zZm9ybWVkKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtSW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlKFxuICBib3Q6IEludGVybmFsQm90LFxuICBwYXlsb2FkOiB7IGludGVyYWN0aW9uQ2FsbGJhY2tSZXNwb25zZTogRGlzY29yZEludGVyYWN0aW9uQ2FsbGJhY2tSZXNwb25zZTsgc2hhcmRJZDogbnVtYmVyIH0sXG4pOiB0eXBlb2YgYm90LnRyYW5zZm9ybWVycy4kaW5mZXJyZWRUeXBlcy5pbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2Uge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuaW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlXG4gIGNvbnN0IHJlc3BvbnNlID0ge30gYXMgSW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlXG5cbiAgaWYgKHByb3BzLmludGVyYWN0aW9uICYmIHBheWxvYWQuaW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlLmludGVyYWN0aW9uKVxuICAgIHJlc3BvbnNlLmludGVyYWN0aW9uID0gYm90LnRyYW5zZm9ybWVycy5pbnRlcmFjdGlvbkNhbGxiYWNrKGJvdCwgcGF5bG9hZC5pbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2UuaW50ZXJhY3Rpb24pXG4gIGlmIChwcm9wcy5yZXNvdXJjZSAmJiBwYXlsb2FkLmludGVyYWN0aW9uQ2FsbGJhY2tSZXNwb25zZS5yZXNvdXJjZSlcbiAgICByZXNwb25zZS5yZXNvdXJjZSA9IGJvdC50cmFuc2Zvcm1lcnMuaW50ZXJhY3Rpb25SZXNvdXJjZShib3QsIHtcbiAgICAgIGludGVyYWN0aW9uUmVzb3VyY2U6IHBheWxvYWQuaW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlLnJlc291cmNlLFxuICAgICAgc2hhcmRJZDogcGF5bG9hZC5zaGFyZElkLFxuICAgIH0pXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMuaW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlKGJvdCwgcGF5bG9hZC5pbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2UsIHJlc3BvbnNlKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtSW50ZXJhY3Rpb25DYWxsYmFjayhcbiAgYm90OiBJbnRlcm5hbEJvdCxcbiAgcGF5bG9hZDogRGlzY29yZEludGVyYWN0aW9uQ2FsbGJhY2ssXG4pOiB0eXBlb2YgYm90LnRyYW5zZm9ybWVycy4kaW5mZXJyZWRUeXBlcy5pbnRlcmFjdGlvbkNhbGxiYWNrIHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmludGVyYWN0aW9uQ2FsbGJhY2tcbiAgY29uc3QgY2FsbGJhY2sgPSB7fSBhcyBJbnRlcmFjdGlvbkNhbGxiYWNrXG5cbiAgaWYgKHByb3BzLmlkICYmIHBheWxvYWQuaWQpIGNhbGxiYWNrLmlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pZClcbiAgaWYgKHByb3BzLnR5cGUgJiYgcGF5bG9hZC50eXBlKSBjYWxsYmFjay50eXBlID0gcGF5bG9hZC50eXBlXG4gIGlmIChwcm9wcy5hY3Rpdml0eUluc3RhbmNlSWQgJiYgcGF5bG9hZC5hY3Rpdml0eV9pbnN0YW5jZV9pZCkgY2FsbGJhY2suYWN0aXZpdHlJbnN0YW5jZUlkID0gcGF5bG9hZC5hY3Rpdml0eV9pbnN0YW5jZV9pZFxuICBpZiAocHJvcHMucmVzcG9uc2VNZXNzYWdlSWQgJiYgcGF5bG9hZC5yZXNwb25zZV9tZXNzYWdlX2lkKSBjYWxsYmFjay5yZXNwb25zZU1lc3NhZ2VJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQucmVzcG9uc2VfbWVzc2FnZV9pZClcbiAgaWYgKHByb3BzLnJlc3BvbnNlTWVzc2FnZUVwaGVtZXJhbCAmJiBwYXlsb2FkLnJlc3BvbnNlX21lc3NhZ2VfZXBoZW1lcmFsKSBjYWxsYmFjay5yZXNwb25zZU1lc3NhZ2VFcGhlbWVyYWwgPSBwYXlsb2FkLnJlc3BvbnNlX21lc3NhZ2VfZXBoZW1lcmFsXG4gIGlmIChwcm9wcy5yZXNwb25zZU1lc3NhZ2VMb2FkaW5nICYmIHBheWxvYWQucmVzcG9uc2VfbWVzc2FnZV9sb2FkaW5nKSBjYWxsYmFjay5yZXNwb25zZU1lc3NhZ2VMb2FkaW5nID0gcGF5bG9hZC5yZXNwb25zZV9tZXNzYWdlX2xvYWRpbmdcblxuICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jdXN0b21pemVycy5pbnRlcmFjdGlvbkNhbGxiYWNrKGJvdCwgcGF5bG9hZCwgY2FsbGJhY2spXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1JbnRlcmFjdGlvblJlc291cmNlKFxuICBib3Q6IEludGVybmFsQm90LFxuICBwYXlsb2FkOiB7IGludGVyYWN0aW9uUmVzb3VyY2U6IERpc2NvcmRJbnRlcmFjdGlvblJlc291cmNlOyBzaGFyZElkOiBudW1iZXIgfSxcbik6IHR5cGVvZiBib3QudHJhbnNmb3JtZXJzLiRpbmZlcnJlZFR5cGVzLmludGVyYWN0aW9uUmVzb3VyY2Uge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuaW50ZXJhY3Rpb25SZXNvdXJjZVxuICBjb25zdCByZXNvdXJjZSA9IHt9IGFzIEludGVyYWN0aW9uUmVzb3VyY2VcblxuICBpZiAocHJvcHMudHlwZSAmJiBwYXlsb2FkLmludGVyYWN0aW9uUmVzb3VyY2UudHlwZSkgcmVzb3VyY2UudHlwZSA9IHBheWxvYWQuaW50ZXJhY3Rpb25SZXNvdXJjZS50eXBlXG4gIGlmIChwcm9wcy5hY3Rpdml0eUluc3RhbmNlICYmIHBheWxvYWQuaW50ZXJhY3Rpb25SZXNvdXJjZS5hY3Rpdml0eV9pbnN0YW5jZSlcbiAgICByZXNvdXJjZS5hY3Rpdml0eUluc3RhbmNlID0gcGF5bG9hZC5pbnRlcmFjdGlvblJlc291cmNlLmFjdGl2aXR5X2luc3RhbmNlXG4gIGlmIChwcm9wcy5tZXNzYWdlICYmIHBheWxvYWQuaW50ZXJhY3Rpb25SZXNvdXJjZS5tZXNzYWdlKVxuICAgIHJlc291cmNlLm1lc3NhZ2UgPSBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2UoYm90LCB7IG1lc3NhZ2U6IHBheWxvYWQuaW50ZXJhY3Rpb25SZXNvdXJjZS5tZXNzYWdlLCBzaGFyZElkOiBwYXlsb2FkLnNoYXJkSWQgfSlcblxuICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jdXN0b21pemVycy5pbnRlcmFjdGlvblJlc291cmNlKGJvdCwgcGF5bG9hZC5pbnRlcmFjdGlvblJlc291cmNlLCByZXNvdXJjZSlcbn1cbiJdLCJuYW1lcyI6WyJiYXNlSW50ZXJhY3Rpb24iLCJ0cmFuc2Zvcm1JbnRlcmFjdGlvbiIsInRyYW5zZm9ybUludGVyYWN0aW9uQ2FsbGJhY2siLCJ0cmFuc2Zvcm1JbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2UiLCJ0cmFuc2Zvcm1JbnRlcmFjdGlvbkRhdGFPcHRpb24iLCJ0cmFuc2Zvcm1JbnRlcmFjdGlvbkRhdGFSZXNvbHZlZCIsInRyYW5zZm9ybUludGVyYWN0aW9uUmVzb3VyY2UiLCJ1bmRlZmluZWQiLCJyZXNwb25kIiwicmVzcG9uc2UiLCJvcHRpb25zIiwidHlwZSIsIkludGVyYWN0aW9uUmVzcG9uc2VUeXBlcyIsIkNoYW5uZWxNZXNzYWdlV2l0aFNvdXJjZSIsImNvbnRlbnQiLCJ0aXRsZSIsIk1vZGFsIiwiSW50ZXJhY3Rpb25UeXBlcyIsIkFwcGxpY2F0aW9uQ29tbWFuZEF1dG9jb21wbGV0ZSIsIkFwcGxpY2F0aW9uQ29tbWFuZEF1dG9jb21wbGV0ZVJlc3VsdCIsImlzUHJpdmF0ZSIsImZsYWdzIiwiTWVzc2FnZUZsYWdzIiwiRXBoZW1lcmFsIiwiYWNrbm93bGVkZ2VkIiwiYm90IiwiaGVscGVycyIsInNlbmRGb2xsb3d1cE1lc3NhZ2UiLCJ0b2tlbiIsIk1vZGFsU3VibWl0IiwiRXJyb3IiLCJzZW5kSW50ZXJhY3Rpb25SZXNwb25zZSIsImlkIiwiZGF0YSIsIndpdGhSZXNwb25zZSIsImVkaXQiLCJtZXNzYWdlSWQiLCJlZGl0Rm9sbG93dXBNZXNzYWdlIiwiTWVzc2FnZUNvbXBvbmVudCIsIlVwZGF0ZU1lc3NhZ2UiLCJlZGl0T3JpZ2luYWxJbnRlcmFjdGlvblJlc3BvbnNlIiwiZGVmZXJFZGl0IiwiRGVmZXJyZWRVcGRhdGVNZXNzYWdlIiwiZGVmZXIiLCJEZWZlcnJlZENoYW5uZWxNZXNzYWdlV2l0aFNvdXJjZSIsImRlbGV0ZSIsImRlbGV0ZUZvbGxvd3VwTWVzc2FnZSIsImRlbGV0ZU9yaWdpbmFsSW50ZXJhY3Rpb25SZXNwb25zZSIsInBheWxvYWQiLCJndWlsZElkIiwiaW50ZXJhY3Rpb24iLCJndWlsZF9pZCIsInRyYW5zZm9ybWVycyIsInNub3dmbGFrZSIsInVzZXIiLCJtZW1iZXIiLCJPYmplY3QiLCJjcmVhdGUiLCJwcm9wcyIsImRlc2lyZWRQcm9wZXJ0aWVzIiwiYXBwbGljYXRpb25JZCIsImFwcGxpY2F0aW9uX2lkIiwidmVyc2lvbiIsImxvY2FsZSIsImd1aWxkTG9jYWxlIiwiZ3VpbGRfbG9jYWxlIiwiZ3VpbGQiLCJzaGFyZElkIiwiYXBwUGVybWlzc2lvbnMiLCJhcHBfcGVybWlzc2lvbnMiLCJtZXNzYWdlIiwiY2hhbm5lbCIsImNoYW5uZWxJZCIsImNoYW5uZWxfaWQiLCJlbnRpdGxlbWVudHMiLCJtYXAiLCJlIiwiZW50aXRsZW1lbnQiLCJhdXRob3JpemluZ0ludGVncmF0aW9uT3duZXJzIiwiYXV0aG9yaXppbmdfaW50ZWdyYXRpb25fb3duZXJzIiwiRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlIiwiR3VpbGRJbnN0YWxsIiwiVXNlckluc3RhbGwiLCJjb250ZXh0IiwiYXR0YWNobWVudFNpemVMaW1pdCIsImF0dGFjaG1lbnRfc2l6ZV9saW1pdCIsImNvbXBvbmVudFR5cGUiLCJjb21wb25lbnRfdHlwZSIsImN1c3RvbUlkIiwiY3VzdG9tX2lkIiwiY29tcG9uZW50cyIsImNvbXBvbmVudCIsInZhbHVlcyIsIm5hbWUiLCJyZXNvbHZlZCIsImludGVyYWN0aW9uRGF0YVJlc29sdmVkIiwib3B0IiwiaW50ZXJhY3Rpb25EYXRhT3B0aW9ucyIsInRhcmdldElkIiwidGFyZ2V0X2lkIiwiY3VzdG9taXplcnMiLCJvcHRpb24iLCJ2YWx1ZSIsImZvY3VzZWQiLCJ0cmFuc2Zvcm1lZCIsIm1lc3NhZ2VzIiwiQ29sbGVjdGlvbiIsImVudHJpZXMiLCJfaWQiLCJ1c2VycyIsIm1lbWJlcnMiLCJyb2xlcyIsInJvbGUiLCJjaGFubmVscyIsImF0dGFjaG1lbnRzIiwia2V5IiwiYXR0YWNobWVudCIsImludGVyYWN0aW9uQ2FsbGJhY2tSZXNwb25zZSIsImludGVyYWN0aW9uQ2FsbGJhY2siLCJyZXNvdXJjZSIsImludGVyYWN0aW9uUmVzb3VyY2UiLCJjYWxsYmFjayIsImFjdGl2aXR5SW5zdGFuY2VJZCIsImFjdGl2aXR5X2luc3RhbmNlX2lkIiwicmVzcG9uc2VNZXNzYWdlSWQiLCJyZXNwb25zZV9tZXNzYWdlX2lkIiwicmVzcG9uc2VNZXNzYWdlRXBoZW1lcmFsIiwicmVzcG9uc2VfbWVzc2FnZV9lcGhlbWVyYWwiLCJyZXNwb25zZU1lc3NhZ2VMb2FkaW5nIiwicmVzcG9uc2VfbWVzc2FnZV9sb2FkaW5nIiwiYWN0aXZpdHlJbnN0YW5jZSIsImFjdGl2aXR5X2luc3RhbmNlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztJQTRCYUEsZUFBZTtlQUFmQTs7SUF1RkdDLG9CQUFvQjtlQUFwQkE7O0lBc0tBQyw0QkFBNEI7ZUFBNUJBOztJQWxCQUMsb0NBQW9DO2VBQXBDQTs7SUEzRUFDLDhCQUE4QjtlQUE5QkE7O0lBWUFDLGdDQUFnQztlQUFoQ0E7O0lBa0dBQyw0QkFBNEI7ZUFBNUJBOzs7dUJBL1JUO3VCQUNvQjtBQWdCcEIsTUFBTU4sa0JBQWdGO0lBQzNGLDJFQUEyRTtJQUMzRSxHQUFJTyxTQUFTO0lBRWIsTUFBTUMsU0FBUUMsUUFBUSxFQUFFQyxPQUFPO1FBQzdCLElBQUlDLE9BQU9DLCtCQUF3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
279
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvaW50ZXJhY3Rpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlLFxuICB0eXBlIERpc2NvcmRJbnRlcmFjdGlvbixcbiAgdHlwZSBEaXNjb3JkSW50ZXJhY3Rpb25DYWxsYmFjayxcbiAgdHlwZSBEaXNjb3JkSW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlLFxuICB0eXBlIERpc2NvcmRJbnRlcmFjdGlvbkRhdGFPcHRpb24sXG4gIHR5cGUgRGlzY29yZEludGVyYWN0aW9uRGF0YVJlc29sdmVkLFxuICB0eXBlIERpc2NvcmRJbnRlcmFjdGlvblJlc291cmNlLFxuICBJbnRlcmFjdGlvblJlc3BvbnNlVHlwZXMsXG4gIEludGVyYWN0aW9uVHlwZXMsXG4gIE1lc3NhZ2VGbGFncyxcbn0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnXG5pbXBvcnQgeyBDb2xsZWN0aW9uIH0gZnJvbSAnQGRpc2NvcmRlbm8vdXRpbHMnXG5pbXBvcnQgdHlwZSB7XG4gIEJvdCxcbiAgRGlzY29yZENoYW5uZWwsXG4gIEludGVyYWN0aW9uLFxuICBJbnRlcmFjdGlvbkNhbGxiYWNrLFxuICBJbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2UsXG4gIEludGVyYWN0aW9uRGF0YU9wdGlvbixcbiAgSW50ZXJhY3Rpb25EYXRhUmVzb2x2ZWQsXG4gIEludGVyYWN0aW9uUmVzb2x2ZWRDaGFubmVsLFxuICBJbnRlcmFjdGlvblJlc291cmNlLFxuICBJbnRlcm5hbEJvdCxcbiAgTWVtYmVyLFxuICBNZXNzYWdlLFxufSBmcm9tICcuLi9pbmRleC5qcydcblxuZXhwb3J0IGNvbnN0IGJhc2VJbnRlcmFjdGlvbjogSW50ZXJuYWxCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydpbnRlcmFjdGlvbiddID0ge1xuICAvLyBUaGlzIGFsbG93cyB0eXBlc2NyaXB0IHRvIHN0aWxsIGNoZWNrIGZvciB0eXBlIGVycm9ycyBvbiBmdW5jdGlvbnMgYmVsb3dcbiAgLi4uKHVuZGVmaW5lZCBhcyB1bmtub3duIGFzIEludGVybmFsQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnaW50ZXJhY3Rpb24nXSksXG5cbiAgYXN5bmMgcmVzcG9uZChyZXNwb25zZSwgb3B0aW9ucykge1xuICAgIGxldCB0eXBlID0gSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLkNoYW5uZWxNZXNzYWdlV2l0aFNvdXJjZVxuXG4gICAgLy8gSWYgdXNlciBwcm92aWRlcyBhIHN0cmluZywgY2hhbmdlIGl0IHRvIGEgcmVzcG9uc2Ugb2JqZWN0XG4gICAgaWYgKHR5cGVvZiByZXNwb25zZSA9PT0gJ3N0cmluZycpIHJlc3BvbnNlID0geyBjb250ZW50OiByZXNwb25zZSB9XG5cbiAgICAvLyBJZiB1c2VyIHByb3ZpZGVzIGFuIG9iamVjdCwgZGV0ZXJtaW5lIGlmIGl0IHNob3VsZCBiZSBhbiBhdXRvY29tcGxldGUgb3IgYSBtb2RhbCByZXNwb25zZVxuICAgIGlmIChyZXNwb25zZS50aXRsZSkgdHlwZSA9IEludGVyYWN0aW9uUmVzcG9uc2VUeXBlcy5Nb2RhbFxuICAgIGlmICh0aGlzLnR5cGUgPT09IEludGVyYWN0aW9uVHlwZXMuQXBwbGljYXRpb25Db21tYW5kQXV0b2NvbXBsZXRlKSB0eXBlID0gSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLkFwcGxpY2F0aW9uQ29tbWFuZEF1dG9jb21wbGV0ZVJlc3VsdFxuICAgIGlmICh0eXBlID09PSBJbnRlcmFjdGlvblJlc3BvbnNlVHlwZXMuQ2hhbm5lbE1lc3NhZ2VXaXRoU291cmNlICYmIG9wdGlvbnM/LmlzUHJpdmF0ZSkge1xuICAgICAgcmVzcG9uc2UuZmxhZ3MgPz89IDBcbiAgICAgIHJlc3BvbnNlLmZsYWdzIHw9IE1lc3NhZ2VGbGFncy5FcGhlbWVyYWxcbiAgICB9XG5cbiAgICAvLyBTaW5jZSB0aGlzIGhhcyBhbHJlYWR5IGJlZW4gZ2l2ZW4gYSByZXNwb25zZSwgYW55IGZ1cnRoZXIgcmVzcG9uc2VzIG11c3QgYmUgZm9sbG93dXBzLlxuICAgIGlmICh0aGlzLmFja25vd2xlZGdlZCkgcmV0dXJuIGF3YWl0IHRoaXMuYm90LmhlbHBlcnMuc2VuZEZvbGxvd3VwTWVzc2FnZSh0aGlzLnRva2VuLCByZXNwb25zZSlcblxuICAgIC8vIE1vZGFscyBjYW5ub3QgYmUgY2hhaW5lZFxuICAgIGlmICh0aGlzLnR5cGUgPT09IEludGVyYWN0aW9uVHlwZXMuTW9kYWxTdWJtaXQgJiYgdHlwZSA9PT0gSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLk1vZGFsKVxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgcmVzcG9uZCB0byBhIG1vZGFsIGludGVyYWN0aW9uIHdpdGggYW5vdGhlciBtb2RhbC4nKVxuXG4gICAgdGhpcy5hY2tub3dsZWRnZWQgPSB0cnVlXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuYm90LmhlbHBlcnMuc2VuZEludGVyYWN0aW9uUmVzcG9uc2UodGhpcy5pZCwgdGhpcy50b2tlbiwgeyB0eXBlLCBkYXRhOiByZXNwb25zZSB9LCB7IHdpdGhSZXNwb25zZTogb3B0aW9ucz8ud2l0aFJlc3BvbnNlIH0pXG4gIH0sXG4gIGFzeW5jIGVkaXQocmVzcG9uc2UsIG1lc3NhZ2VJZCwgb3B0aW9ucykge1xuICAgIGlmICh0aGlzLnR5cGUgPT09IEludGVyYWN0aW9uVHlwZXMuQXBwbGljYXRpb25Db21tYW5kQXV0b2NvbXBsZXRlKSB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBlZGl0IGFuIGF1dG9jb21wbGV0ZSBpbnRlcmFjdGlvbi4nKVxuXG4gICAgLy8gSWYgdXNlciBwcm92aWRlcyBhIHN0cmluZywgY2hhbmdlIGl0IHRvIGEgcmVzcG9uc2Ugb2JqZWN0XG4gICAgaWYgKHR5cGVvZiByZXNwb25zZSA9PT0gJ3N0cmluZycpIHJlc3BvbnNlID0geyBjb250ZW50OiByZXNwb25zZSB9XG5cbiAgICBpZiAobWVzc2FnZUlkKSB7XG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy5ib3Q/LmhlbHBlcnMuZWRpdEZvbGxvd3VwTWVzc2FnZSh0aGlzLnRva2VuLCBtZXNzYWdlSWQsIHJlc3BvbnNlKVxuICAgIH1cblxuICAgIGlmICghdGhpcy5hY2tub3dsZWRnZWQpIHtcbiAgICAgIGlmICh0aGlzLnR5cGUgIT09IEludGVyYWN0aW9uVHlwZXMuTWVzc2FnZUNvbXBvbmVudCAmJiB0aGlzLnR5cGUgIT09IEludGVyYWN0aW9uVHlwZXMuTW9kYWxTdWJtaXQpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIlRoaXMgaW50ZXJhY3Rpb24gaGFzIG5vdCBiZWVuIHJlc3BvbmRlZCB0byB5ZXQgYW5kIHRoaXMgaXNuJ3QgYSBNZXNzYWdlQ29tcG9uZW50IG9yIE1vZGFsU3VibWl0IGludGVyYWN0aW9uLlwiKVxuXG4gICAgICB0aGlzLmFja25vd2xlZGdlZCA9IHRydWVcbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLmJvdC5oZWxwZXJzLnNlbmRJbnRlcmFjdGlvblJlc3BvbnNlKFxuICAgICAgICB0aGlzLmlkLFxuICAgICAgICB0aGlzLnRva2VuLFxuICAgICAgICB7IHR5cGU6IEludGVyYWN0aW9uUmVzcG9uc2VUeXBlcy5VcGRhdGVNZXNzYWdlLCBkYXRhOiByZXNwb25zZSB9LFxuICAgICAgICBvcHRpb25zLFxuICAgICAgKVxuICAgIH1cblxuICAgIHJldHVybiBhd2FpdCB0aGlzLmJvdC5oZWxwZXJzLmVkaXRPcmlnaW5hbEludGVyYWN0aW9uUmVzcG9uc2UodGhpcy50b2tlbiwgcmVzcG9uc2UpXG4gIH0sXG4gIGFzeW5jIGRlZmVyRWRpdChvcHRpb25zKSB7XG4gICAgaWYgKHRoaXMudHlwZSA9PT0gSW50ZXJhY3Rpb25UeXBlcy5BcHBsaWNhdGlvbkNvbW1hbmRBdXRvY29tcGxldGUpIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGVkaXQgYW4gYXV0b2NvbXBsZXRlIGludGVyYWN0aW9uLicpXG4gICAgaWYgKHRoaXMuYWNrbm93bGVkZ2VkKSB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBkZWZlciBhbiBhbHJlYWR5IHJlc3BvbmRlZCBpbnRlcmFjdGlvbi4nKVxuXG4gICAgaWYgKHRoaXMudHlwZSAhPT0gSW50ZXJhY3Rpb25UeXBlcy5NZXNzYWdlQ29tcG9uZW50ICYmIHRoaXMudHlwZSAhPT0gSW50ZXJhY3Rpb25UeXBlcy5Nb2RhbFN1Ym1pdClcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkNhbm5vdCBkZWZlciB0byB0aGVuIGVkaXQgYW4gaW50ZXJhY3Rpb24gdGhhdCBpc24ndCBhIE1lc3NhZ2VDb21wb25lbnQgb3IgTW9kYWxTdWJtaXQgaW50ZXJhY3Rpb24uXCIpXG5cbiAgICB0aGlzLmFja25vd2xlZGdlZCA9IHRydWVcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5ib3QuaGVscGVycy5zZW5kSW50ZXJhY3Rpb25SZXNwb25zZSh0aGlzLmlkLCB0aGlzLnRva2VuLCB7IHR5cGU6IEludGVyYWN0aW9uUmVzcG9uc2VUeXBlcy5EZWZlcnJlZFVwZGF0ZU1lc3NhZ2UgfSwgb3B0aW9ucylcbiAgfSxcbiAgYXN5bmMgZGVmZXIoaXNQcml2YXRlLCBvcHRpb25zKSB7XG4gICAgaWYgKHRoaXMuYWNrbm93bGVkZ2VkKSB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBkZWZlciBhbiBhbHJlYWR5IHJlc3BvbmRlZCBpbnRlcmFjdGlvbi4nKVxuXG4gICAgdGhpcy5hY2tub3dsZWRnZWQgPSB0cnVlXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuYm90LmhlbHBlcnMuc2VuZEludGVyYWN0aW9uUmVzcG9uc2UoXG4gICAgICB0aGlzLmlkLFxuICAgICAgdGhpcy50b2tlbixcbiAgICAgIHtcbiAgICAgICAgdHlwZTogSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLkRlZmVycmVkQ2hhbm5lbE1lc3NhZ2VXaXRoU291cmNlLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgZmxhZ3M6IGlzUHJpdmF0ZSA/IE1lc3NhZ2VGbGFncy5FcGhlbWVyYWwgOiB1bmRlZmluZWQsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgb3B0aW9ucyxcbiAgICApXG4gIH0sXG4gIGFzeW5jIGRlbGV0ZShtZXNzYWdlSWQpIHtcbiAgICBpZiAodGhpcy50eXBlID09PSBJbnRlcmFjdGlvblR5cGVzLkFwcGxpY2F0aW9uQ29tbWFuZEF1dG9jb21wbGV0ZSkgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgZGVsZXRlIGFuIGF1dG9jb21wbGV0ZSBpbnRlcmFjdGlvbicpXG5cbiAgICBpZiAobWVzc2FnZUlkKSByZXR1cm4gYXdhaXQgdGhpcy5ib3Q/LmhlbHBlcnMuZGVsZXRlRm9sbG93dXBNZXNzYWdlKHRoaXMudG9rZW4sIG1lc3NhZ2VJZClcbiAgICBlbHNlIHJldHVybiBhd2FpdCB0aGlzLmJvdD8uaGVscGVycy5kZWxldGVPcmlnaW5hbEludGVyYWN0aW9uUmVzcG9uc2UodGhpcy50b2tlbilcbiAgfSxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybUludGVyYWN0aW9uKFxuICBib3Q6IEludGVybmFsQm90LFxuICBwYXlsb2FkOiB7IGludGVyYWN0aW9uOiBEaXNjb3JkSW50ZXJhY3Rpb247IHNoYXJkSWQ6IG51bWJlciB9LFxuKTogdHlwZW9mIGJvdC50cmFuc2Zvcm1lcnMuJGluZmVycmVkVHlwZXMuaW50ZXJhY3Rpb24ge1xuICBjb25zdCBndWlsZElkID0gcGF5bG9hZC5pbnRlcmFjdGlvbi5ndWlsZF9pZCA/IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaW50ZXJhY3Rpb24uZ3VpbGRfaWQpIDogdW5kZWZpbmVkXG4gIGNvbnN0IHVzZXIgPSBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCBwYXlsb2FkLmludGVyYWN0aW9uLm1lbWJlcj8udXNlciA/PyBwYXlsb2FkLmludGVyYWN0aW9uLnVzZXIhKVxuXG4gIGNvbnN0IGludGVyYWN0aW9uOiBJbnRlcmFjdGlvbiA9IE9iamVjdC5jcmVhdGUoYmFzZUludGVyYWN0aW9uKVxuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuaW50ZXJhY3Rpb25cbiAgLy8gVHlwZXNjcmlwdCBoYXMgYW4gaGFyZCB0aW1lIHdpdGggdGhpcywgc28gd2UgbmVlZCB0byB0ZWxsIGhpbSBmb3Igc3VyZSB0aGlzIGlzIGEgQm90XG4gIGludGVyYWN0aW9uLmJvdCA9IGJvdCBhcyB1bmtub3duIGFzIEJvdFxuICBpbnRlcmFjdGlvbi5hY2tub3dsZWRnZWQgPSBmYWxzZVxuXG4gIGlmIChwcm9wcy5pZCAmJiBwYXlsb2FkLmludGVyYWN0aW9uLmlkKSBpbnRlcmFjdGlvbi5pZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaW50ZXJhY3Rpb24uaWQpXG4gIGlmIChwcm9wcy5hcHBsaWNhdGlvbklkICYmIHBheWxvYWQuaW50ZXJhY3Rpb24uYXBwbGljYXRpb25faWQpXG4gICAgaW50ZXJhY3Rpb24uYXBwbGljYXRpb25JZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaW50ZXJhY3Rpb24uYXBwbGljYXRpb25faWQpXG4gIGlmIChwcm9wcy50eXBlICYmIHBheWxvYWQuaW50ZXJhY3Rpb24udHlwZSkgaW50ZXJhY3Rpb24udHlwZSA9IHBheWxvYWQuaW50ZXJhY3Rpb24udHlwZVxuICBpZiAocHJvcHMudG9rZW4gJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi50b2tlbikgaW50ZXJhY3Rpb24udG9rZW4gPSBwYXlsb2FkLmludGVyYWN0aW9uLnRva2VuXG4gIGlmIChwcm9wcy52ZXJzaW9uICYmIHBheWxvYWQuaW50ZXJhY3Rpb24udmVyc2lvbikgaW50ZXJhY3Rpb24udmVyc2lvbiA9IHBheWxvYWQuaW50ZXJhY3Rpb24udmVyc2lvblxuICBpZiAocHJvcHMubG9jYWxlICYmIHBheWxvYWQuaW50ZXJhY3Rpb24ubG9jYWxlKSBpbnRlcmFjdGlvbi5sb2NhbGUgPSBwYXlsb2FkLmludGVyYWN0aW9uLmxvY2FsZVxuICBpZiAocHJvcHMuZ3VpbGRMb2NhbGUgJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi5ndWlsZF9sb2NhbGUpIGludGVyYWN0aW9uLmd1aWxkTG9jYWxlID0gcGF5bG9hZC5pbnRlcmFjdGlvbi5ndWlsZF9sb2NhbGVcbiAgaWYgKHByb3BzLmd1aWxkICYmIHBheWxvYWQuaW50ZXJhY3Rpb24uZ3VpbGQpXG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvciBwYXlsb2FkLmludGVyYWN0aW9uLmd1aWxkIGlzIGEgUGFydGlhbDxEaXNjb3JkR3VpbGQ+XG4gICAgaW50ZXJhY3Rpb24uZ3VpbGQgPSBib3QudHJhbnNmb3JtZXJzLmd1aWxkKGJvdCwgeyBndWlsZDogcGF5bG9hZC5pbnRlcmFjdGlvbi5ndWlsZCwgc2hhcmRJZDogcGF5bG9hZC5zaGFyZElkIH0pXG4gIGlmIChwcm9wcy5ndWlsZElkICYmIGd1aWxkSWQpIGludGVyYWN0aW9uLmd1aWxkSWQgPSBndWlsZElkXG4gIGlmIChwcm9wcy51c2VyICYmIHVzZXIpIGludGVyYWN0aW9uLnVzZXIgPSB1c2VyXG4gIGlmIChwcm9wcy5hcHBQZXJtaXNzaW9ucyAmJiBwYXlsb2FkLmludGVyYWN0aW9uLmFwcF9wZXJtaXNzaW9ucylcbiAgICBpbnRlcmFjdGlvbi5hcHBQZXJtaXNzaW9ucyA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaW50ZXJhY3Rpb24uYXBwX3Blcm1pc3Npb25zKVxuICBpZiAocHJvcHMubWVzc2FnZSAmJiBwYXlsb2FkLmludGVyYWN0aW9uLm1lc3NhZ2UpXG4gICAgaW50ZXJhY3Rpb24ubWVzc2FnZSA9IGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHsgbWVzc2FnZTogcGF5bG9hZC5pbnRlcmFjdGlvbi5tZXNzYWdlLCBzaGFyZElkOiAwIH0pXG4gIGlmIChwcm9wcy5jaGFubmVsICYmIHBheWxvYWQuaW50ZXJhY3Rpb24uY2hhbm5lbClcbiAgICBpbnRlcmFjdGlvbi5jaGFubmVsID0gYm90LnRyYW5zZm9ybWVycy5jaGFubmVsKGJvdCwgeyBjaGFubmVsOiBwYXlsb2FkLmludGVyYWN0aW9uLmNoYW5uZWwgYXMgRGlzY29yZENoYW5uZWwsIGd1aWxkSWQgfSlcbiAgaWYgKHByb3BzLmNoYW5uZWxJZCAmJiBwYXlsb2FkLmludGVyYWN0aW9uLmNoYW5uZWxfaWQpIGludGVyYWN0aW9uLmNoYW5uZWxJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaW50ZXJhY3Rpb24uY2hhbm5lbF9pZClcbiAgaWYgKHByb3BzLm1lbWJlciAmJiBndWlsZElkICYmIHBheWxvYWQuaW50ZXJhY3Rpb24ubWVtYmVyKVxuICAgIGludGVyYWN0aW9uLm1lbWJlciA9IGJvdC50cmFuc2Zvcm1lcnMubWVtYmVyKGJvdCwgcGF5bG9hZC5pbnRlcmFjdGlvbi5tZW1iZXIsIGd1aWxkSWQsIHVzZXIuaWQpXG4gIGlmIChwcm9wcy5lbnRpdGxlbWVudHMgJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi5lbnRpdGxlbWVudHMpXG4gICAgaW50ZXJhY3Rpb24uZW50aXRsZW1lbnRzID0gcGF5bG9hZC5pbnRlcmFjdGlvbi5lbnRpdGxlbWVudHMubWFwKChlKSA9PiBib3QudHJhbnNmb3JtZXJzLmVudGl0bGVtZW50KGJvdCwgZSkpXG4gIGlmIChwcm9wcy5hdXRob3JpemluZ0ludGVncmF0aW9uT3duZXJzICYmIHBheWxvYWQuaW50ZXJhY3Rpb24uYXV0aG9yaXppbmdfaW50ZWdyYXRpb25fb3duZXJzKSB7XG4gICAgaW50ZXJhY3Rpb24uYXV0aG9yaXppbmdJbnRlZ3JhdGlvbk93bmVycyA9IHt9XG5cbiAgICBpZiAocGF5bG9hZC5pbnRlcmFjdGlvbi5hdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnNbJzAnXSlcbiAgICAgIGludGVyYWN0aW9uLmF1dGhvcml6aW5nSW50ZWdyYXRpb25Pd25lcnNbRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlLkd1aWxkSW5zdGFsbF0gPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShcbiAgICAgICAgcGF5bG9hZC5pbnRlcmFjdGlvbi5hdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnNbJzAnXSxcbiAgICAgIClcbiAgICBpZiAocGF5bG9hZC5pbnRlcmFjdGlvbi5hdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnNbJzEnXSlcbiAgICAgIGludGVyYWN0aW9uLmF1dGhvcml6aW5nSW50ZWdyYXRpb25Pd25lcnNbRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlLlVzZXJJbnN0YWxsXSA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKFxuICAgICAgICBwYXlsb2FkLmludGVyYWN0aW9uLmF1dGhvcml6aW5nX2ludGVncmF0aW9uX293bmVyc1snMSddLFxuICAgICAgKVxuICB9XG4gIGlmIChwcm9wcy5jb250ZXh0ICYmIHBheWxvYWQuaW50ZXJhY3Rpb24uY29udGV4dCkgaW50ZXJhY3Rpb24uY29udGV4dCA9IHBheWxvYWQuaW50ZXJhY3Rpb24uY29udGV4dFxuICBpZiAocHJvcHMuYXR0YWNobWVudFNpemVMaW1pdCAmJiBwYXlsb2FkLmludGVyYWN0aW9uLmF0dGFjaG1lbnRfc2l6ZV9saW1pdClcbiAgICBpbnRlcmFjdGlvbi5hdHRhY2htZW50U2l6ZUxpbWl0ID0gcGF5bG9hZC5pbnRlcmFjdGlvbi5hdHRhY2htZW50X3NpemVfbGltaXRcbiAgaWYgKHByb3BzLmRhdGEgJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhKSB7XG4gICAgaW50ZXJhY3Rpb24uZGF0YSA9IHtcbiAgICAgIHR5cGU6IHBheWxvYWQuaW50ZXJhY3Rpb24uZGF0YS50eXBlLFxuICAgICAgY29tcG9uZW50VHlwZTogcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLmNvbXBvbmVudF90eXBlLFxuICAgICAgY3VzdG9tSWQ6IHBheWxvYWQuaW50ZXJhY3Rpb24uZGF0YS5jdXN0b21faWQsXG4gICAgICBjb21wb25lbnRzOiBwYXlsb2FkLmludGVyYWN0aW9uLmRhdGEuY29tcG9uZW50cz8ubWFwKChjb21wb25lbnQpID0+IGJvdC50cmFuc2Zvcm1lcnMuY29tcG9uZW50KGJvdCwgY29tcG9uZW50KSksXG4gICAgICB2YWx1ZXM6IHBheWxvYWQuaW50ZXJhY3Rpb24uZGF0YS52YWx1ZXMsXG4gICAgICBpZDogcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLmlkID8gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLmlkKSA6IHVuZGVmaW5lZCxcbiAgICAgIG5hbWU6IHBheWxvYWQuaW50ZXJhY3Rpb24uZGF0YS5uYW1lLFxuICAgICAgcmVzb2x2ZWQ6IHBheWxvYWQuaW50ZXJhY3Rpb24uZGF0YS5yZXNvbHZlZFxuICAgICAgICA/IGJvdC50cmFuc2Zvcm1lcnMuaW50ZXJhY3Rpb25EYXRhUmVzb2x2ZWQoYm90LCB7IHJlc29sdmVkOiBwYXlsb2FkLmludGVyYWN0aW9uLmRhdGEucmVzb2x2ZWQsIHNoYXJkSWQ6IHBheWxvYWQuc2hhcmRJZCwgZ3VpbGRJZCB9KVxuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgIG9wdGlvbnM6IHBheWxvYWQuaW50ZXJhY3Rpb24uZGF0YS5vcHRpb25zPy5tYXAoKG9wdCkgPT4gYm90LnRyYW5zZm9ybWVycy5pbnRlcmFjdGlvbkRhdGFPcHRpb25zKGJvdCwgb3B0KSksXG4gICAgICB0YXJnZXRJZDogcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLnRhcmdldF9pZCA/IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaW50ZXJhY3Rpb24uZGF0YS50YXJnZXRfaWQpIDogdW5kZWZpbmVkLFxuICAgIH1cbiAgfVxuXG4gIC8vIFR5cGVzY3JpcHQgaGFzIGFuIGhhcmQgdGltZSB3aXRoIGludGVyYWN0aW9uLmJvdCwgc28gd2UgbmVlZCB0byB0ZWxsIGhpbSBmb3Igc3VyZSB0aGlzIGludGVyYWN0aW9uIGlzIHRoZSBvZiB0aGUgY29ycmVjdCB0eXBlXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLmludGVyYWN0aW9uKGJvdCwgcGF5bG9hZCwgaW50ZXJhY3Rpb24gYXMgdW5rbm93biBhcyB0eXBlb2YgYm90LnRyYW5zZm9ybWVycy4kaW5mZXJyZWRUeXBlcy5pbnRlcmFjdGlvbilcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybUludGVyYWN0aW9uRGF0YU9wdGlvbihib3Q6IEJvdCwgb3B0aW9uOiBEaXNjb3JkSW50ZXJhY3Rpb25EYXRhT3B0aW9uKTogSW50ZXJhY3Rpb25EYXRhT3B0aW9uIHtcbiAgY29uc3Qgb3B0ID0ge1xuICAgIG5hbWU6IG9wdGlvbi5uYW1lLFxuICAgIHR5cGU6IG9wdGlvbi50eXBlLFxuICAgIHZhbHVlOiBvcHRpb24udmFsdWUsXG4gICAgb3B0aW9uczogb3B0aW9uLm9wdGlvbnMsXG4gICAgZm9jdXNlZDogb3B0aW9uLmZvY3VzZWQsXG4gIH0gYXMgSW50ZXJhY3Rpb25EYXRhT3B0aW9uXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMuaW50ZXJhY3Rpb25EYXRhT3B0aW9ucyhib3QsIG9wdGlvbiwgb3B0KVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtSW50ZXJhY3Rpb25EYXRhUmVzb2x2ZWQoXG4gIGJvdDogSW50ZXJuYWxCb3QsXG4gIHBheWxvYWQ6IHsgcmVzb2x2ZWQ6IERpc2NvcmRJbnRlcmFjdGlvbkRhdGFSZXNvbHZlZDsgc2hhcmRJZDogbnVtYmVyOyBndWlsZElkPzogYmlnaW50IH0sXG4pOiBJbnRlcmFjdGlvbkRhdGFSZXNvbHZlZCB7XG4gIGNvbnN0IHRyYW5zZm9ybWVkOiBJbnRlcmFjdGlvbkRhdGFSZXNvbHZlZCA9IHt9XG5cbiAgaWYgKHBheWxvYWQucmVzb2x2ZWQubWVzc2FnZXMpIHtcbiAgICB0cmFuc2Zvcm1lZC5tZXNzYWdlcyA9IG5ldyBDb2xsZWN0aW9uKFxuICAgICAgT2JqZWN0LmVudHJpZXMocGF5bG9hZC5yZXNvbHZlZC5tZXNzYWdlcykubWFwKChbX2lkLCB2YWx1ZV0pID0+IHtcbiAgICAgICAgY29uc3QgbWVzc2FnZTogTWVzc2FnZSA9IGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHsgbWVzc2FnZTogdmFsdWUsIHNoYXJkSWQ6IHBheWxvYWQuc2hhcmRJZCB9KVxuICAgICAgICByZXR1cm4gW21lc3NhZ2UuaWQsIG1lc3NhZ2VdXG4gICAgICB9KSxcbiAgICApXG4gIH1cblxuICBpZiAocGF5bG9hZC5yZXNvbHZlZC51c2Vycykge1xuICAgIHRyYW5zZm9ybWVkLnVzZXJzID0gbmV3IENvbGxlY3Rpb24oXG4gICAgICBPYmplY3QuZW50cmllcyhwYXlsb2FkLnJlc29sdmVkLnVzZXJzKS5tYXAoKFtfaWQsIHZhbHVlXSkgPT4ge1xuICAgICAgICBjb25zdCB1c2VyID0gYm90LnRyYW5zZm9ybWVycy51c2VyKGJvdCwgdmFsdWUpXG4gICAgICAgIHJldHVybiBbdXNlci5pZCwgdXNlcl1cbiAgICAgIH0pLFxuICAgIClcbiAgfVxuXG4gIGlmIChwYXlsb2FkLmd1aWxkSWQgJiYgcGF5bG9hZC5yZXNvbHZlZC5tZW1iZXJzKSB7XG4gICAgdHJhbnNmb3JtZWQubWVtYmVycyA9IG5ldyBDb2xsZWN0aW9uKFxuICAgICAgT2JqZWN0LmVudHJpZXMocGF5bG9hZC5yZXNvbHZlZC5tZW1iZXJzKS5tYXAoKFtpZCwgdmFsdWVdKSA9PiB7XG4gICAgICAgIGNvbnN0IG1lbWJlcjogTWVtYmVyID0gYm90LnRyYW5zZm9ybWVycy5tZW1iZXIoYm90LCB2YWx1ZSwgcGF5bG9hZC5ndWlsZElkISwgYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoaWQpKVxuICAgICAgICByZXR1cm4gW21lbWJlci5pZCwgbWVtYmVyXVxuICAgICAgfSksXG4gICAgKVxuICB9XG5cbiAgaWYgKHBheWxvYWQuZ3VpbGRJZCAmJiBwYXlsb2FkLnJlc29sdmVkLnJvbGVzKSB7XG4gICAgdHJhbnNmb3JtZWQucm9sZXMgPSBuZXcgQ29sbGVjdGlvbihcbiAgICAgIE9iamVjdC5lbnRyaWVzKHBheWxvYWQucmVzb2x2ZWQucm9sZXMpLm1hcCgoW19pZCwgdmFsdWVdKSA9PiB7XG4gICAgICAgIGNvbnN0IHJvbGUgPSBib3QudHJhbnNmb3JtZXJzLnJvbGUoYm90LCB7IHJvbGU6IHZhbHVlLCBndWlsZElkOiBwYXlsb2FkLmd1aWxkSWQhIH0pXG4gICAgICAgIHJldHVybiBbcm9sZS5pZCwgcm9sZV1cbiAgICAgIH0pLFxuICAgIClcbiAgfVxuXG4gIGlmIChwYXlsb2FkLnJlc29sdmVkLmNoYW5uZWxzKSB7XG4gICAgdHJhbnNmb3JtZWQuY2hhbm5lbHMgPSBuZXcgQ29sbGVjdGlvbihcbiAgICAgIE9iamVjdC5lbnRyaWVzKHBheWxvYWQucmVzb2x2ZWQuY2hhbm5lbHMpLm1hcCgoW19pZCwgdmFsdWVdKSA9PiB7XG4gICAgICAgIGNvbnN0IGNoYW5uZWwgPSBib3QudHJhbnNmb3JtZXJzLmNoYW5uZWwoYm90LCB7IGNoYW5uZWw6IHZhbHVlIH0pIGFzIEludGVyYWN0aW9uUmVzb2x2ZWRDaGFubmVsXG4gICAgICAgIHJldHVybiBbY2hhbm5lbC5pZCwgY2hhbm5lbF1cbiAgICAgIH0pLFxuICAgIClcbiAgfVxuXG4gIGlmIChwYXlsb2FkLnJlc29sdmVkLmF0dGFjaG1lbnRzKSB7XG4gICAgdHJhbnNmb3JtZWQuYXR0YWNobWVudHMgPSBuZXcgQ29sbGVjdGlvbihcbiAgICAgIE9iamVjdC5lbnRyaWVzKHBheWxvYWQucmVzb2x2ZWQuYXR0YWNobWVudHMpLm1hcCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICAgIGNvbnN0IGlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2Uoa2V5KVxuICAgICAgICByZXR1cm4gW2lkLCBib3QudHJhbnNmb3JtZXJzLmF0dGFjaG1lbnQoYm90LCB2YWx1ZSldXG4gICAgICB9KSxcbiAgICApXG4gIH1cblxuICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jdXN0b21pemVycy5pbnRlcmFjdGlvbkRhdGFSZXNvbHZlZChib3QsIHBheWxvYWQsIHRyYW5zZm9ybWVkKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtSW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlKFxuICBib3Q6IEludGVybmFsQm90LFxuICBwYXlsb2FkOiB7IGludGVyYWN0aW9uQ2FsbGJhY2tSZXNwb25zZTogRGlzY29yZEludGVyYWN0aW9uQ2FsbGJhY2tSZXNwb25zZTsgc2hhcmRJZDogbnVtYmVyIH0sXG4pOiB0eXBlb2YgYm90LnRyYW5zZm9ybWVycy4kaW5mZXJyZWRUeXBlcy5pbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2Uge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuaW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlXG4gIGNvbnN0IHJlc3BvbnNlID0ge30gYXMgSW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlXG5cbiAgaWYgKHByb3BzLmludGVyYWN0aW9uICYmIHBheWxvYWQuaW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlLmludGVyYWN0aW9uKVxuICAgIHJlc3BvbnNlLmludGVyYWN0aW9uID0gYm90LnRyYW5zZm9ybWVycy5pbnRlcmFjdGlvbkNhbGxiYWNrKGJvdCwgcGF5bG9hZC5pbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2UuaW50ZXJhY3Rpb24pXG4gIGlmIChwcm9wcy5yZXNvdXJjZSAmJiBwYXlsb2FkLmludGVyYWN0aW9uQ2FsbGJhY2tSZXNwb25zZS5yZXNvdXJjZSlcbiAgICByZXNwb25zZS5yZXNvdXJjZSA9IGJvdC50cmFuc2Zvcm1lcnMuaW50ZXJhY3Rpb25SZXNvdXJjZShib3QsIHtcbiAgICAgIGludGVyYWN0aW9uUmVzb3VyY2U6IHBheWxvYWQuaW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlLnJlc291cmNlLFxuICAgICAgc2hhcmRJZDogcGF5bG9hZC5zaGFyZElkLFxuICAgIH0pXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMuaW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlKGJvdCwgcGF5bG9hZC5pbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2UsIHJlc3BvbnNlKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtSW50ZXJhY3Rpb25DYWxsYmFjayhcbiAgYm90OiBJbnRlcm5hbEJvdCxcbiAgcGF5bG9hZDogRGlzY29yZEludGVyYWN0aW9uQ2FsbGJhY2ssXG4pOiB0eXBlb2YgYm90LnRyYW5zZm9ybWVycy4kaW5mZXJyZWRUeXBlcy5pbnRlcmFjdGlvbkNhbGxiYWNrIHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmludGVyYWN0aW9uQ2FsbGJhY2tcbiAgY29uc3QgY2FsbGJhY2sgPSB7fSBhcyBJbnRlcmFjdGlvbkNhbGxiYWNrXG5cbiAgaWYgKHByb3BzLmlkICYmIHBheWxvYWQuaWQpIGNhbGxiYWNrLmlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pZClcbiAgaWYgKHByb3BzLnR5cGUgJiYgcGF5bG9hZC50eXBlKSBjYWxsYmFjay50eXBlID0gcGF5bG9hZC50eXBlXG4gIGlmIChwcm9wcy5hY3Rpdml0eUluc3RhbmNlSWQgJiYgcGF5bG9hZC5hY3Rpdml0eV9pbnN0YW5jZV9pZCkgY2FsbGJhY2suYWN0aXZpdHlJbnN0YW5jZUlkID0gcGF5bG9hZC5hY3Rpdml0eV9pbnN0YW5jZV9pZFxuICBpZiAocHJvcHMucmVzcG9uc2VNZXNzYWdlSWQgJiYgcGF5bG9hZC5yZXNwb25zZV9tZXNzYWdlX2lkKSBjYWxsYmFjay5yZXNwb25zZU1lc3NhZ2VJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQucmVzcG9uc2VfbWVzc2FnZV9pZClcbiAgaWYgKHByb3BzLnJlc3BvbnNlTWVzc2FnZUVwaGVtZXJhbCAmJiBwYXlsb2FkLnJlc3BvbnNlX21lc3NhZ2VfZXBoZW1lcmFsKSBjYWxsYmFjay5yZXNwb25zZU1lc3NhZ2VFcGhlbWVyYWwgPSBwYXlsb2FkLnJlc3BvbnNlX21lc3NhZ2VfZXBoZW1lcmFsXG4gIGlmIChwcm9wcy5yZXNwb25zZU1lc3NhZ2VMb2FkaW5nICYmIHBheWxvYWQucmVzcG9uc2VfbWVzc2FnZV9sb2FkaW5nKSBjYWxsYmFjay5yZXNwb25zZU1lc3NhZ2VMb2FkaW5nID0gcGF5bG9hZC5yZXNwb25zZV9tZXNzYWdlX2xvYWRpbmdcblxuICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jdXN0b21pemVycy5pbnRlcmFjdGlvbkNhbGxiYWNrKGJvdCwgcGF5bG9hZCwgY2FsbGJhY2spXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1JbnRlcmFjdGlvblJlc291cmNlKFxuICBib3Q6IEludGVybmFsQm90LFxuICBwYXlsb2FkOiB7IGludGVyYWN0aW9uUmVzb3VyY2U6IERpc2NvcmRJbnRlcmFjdGlvblJlc291cmNlOyBzaGFyZElkOiBudW1iZXIgfSxcbik6IHR5cGVvZiBib3QudHJhbnNmb3JtZXJzLiRpbmZlcnJlZFR5cGVzLmludGVyYWN0aW9uUmVzb3VyY2Uge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuaW50ZXJhY3Rpb25SZXNvdXJjZVxuICBjb25zdCByZXNvdXJjZSA9IHt9IGFzIEludGVyYWN0aW9uUmVzb3VyY2VcblxuICBpZiAocHJvcHMudHlwZSAmJiBwYXlsb2FkLmludGVyYWN0aW9uUmVzb3VyY2UudHlwZSkgcmVzb3VyY2UudHlwZSA9IHBheWxvYWQuaW50ZXJhY3Rpb25SZXNvdXJjZS50eXBlXG4gIGlmIChwcm9wcy5hY3Rpdml0eUluc3RhbmNlICYmIHBheWxvYWQuaW50ZXJhY3Rpb25SZXNvdXJjZS5hY3Rpdml0eV9pbnN0YW5jZSlcbiAgICByZXNvdXJjZS5hY3Rpdml0eUluc3RhbmNlID0gcGF5bG9hZC5pbnRlcmFjdGlvblJlc291cmNlLmFjdGl2aXR5X2luc3RhbmNlXG4gIGlmIChwcm9wcy5tZXNzYWdlICYmIHBheWxvYWQuaW50ZXJhY3Rpb25SZXNvdXJjZS5tZXNzYWdlKVxuICAgIHJlc291cmNlLm1lc3NhZ2UgPSBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2UoYm90LCB7IG1lc3NhZ2U6IHBheWxvYWQuaW50ZXJhY3Rpb25SZXNvdXJjZS5tZXNzYWdlLCBzaGFyZElkOiBwYXlsb2FkLnNoYXJkSWQgfSlcblxuICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jdXN0b21pemVycy5pbnRlcmFjdGlvblJlc291cmNlKGJvdCwgcGF5bG9hZC5pbnRlcmFjdGlvblJlc291cmNlLCByZXNvdXJjZSlcbn1cbiJdLCJuYW1lcyI6WyJiYXNlSW50ZXJhY3Rpb24iLCJ0cmFuc2Zvcm1JbnRlcmFjdGlvbiIsInRyYW5zZm9ybUludGVyYWN0aW9uQ2FsbGJhY2siLCJ0cmFuc2Zvcm1JbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2UiLCJ0cmFuc2Zvcm1JbnRlcmFjdGlvbkRhdGFPcHRpb24iLCJ0cmFuc2Zvcm1JbnRlcmFjdGlvbkRhdGFSZXNvbHZlZCIsInRyYW5zZm9ybUludGVyYWN0aW9uUmVzb3VyY2UiLCJ1bmRlZmluZWQiLCJyZXNwb25kIiwicmVzcG9uc2UiLCJvcHRpb25zIiwidHlwZSIsIkludGVyYWN0aW9uUmVzcG9uc2VUeXBlcyIsIkNoYW5uZWxNZXNzYWdlV2l0aFNvdXJjZSIsImNvbnRlbnQiLCJ0aXRsZSIsIk1vZGFsIiwiSW50ZXJhY3Rpb25UeXBlcyIsIkFwcGxpY2F0aW9uQ29tbWFuZEF1dG9jb21wbGV0ZSIsIkFwcGxpY2F0aW9uQ29tbWFuZEF1dG9jb21wbGV0ZVJlc3VsdCIsImlzUHJpdmF0ZSIsImZsYWdzIiwiTWVzc2FnZUZsYWdzIiwiRXBoZW1lcmFsIiwiYWNrbm93bGVkZ2VkIiwiYm90IiwiaGVscGVycyIsInNlbmRGb2xsb3d1cE1lc3NhZ2UiLCJ0b2tlbiIsIk1vZGFsU3VibWl0IiwiRXJyb3IiLCJzZW5kSW50ZXJhY3Rpb25SZXNwb25zZSIsImlkIiwiZGF0YSIsIndpdGhSZXNwb25zZSIsImVkaXQiLCJtZXNzYWdlSWQiLCJlZGl0Rm9sbG93dXBNZXNzYWdlIiwiTWVzc2FnZUNvbXBvbmVudCIsIlVwZGF0ZU1lc3NhZ2UiLCJlZGl0T3JpZ2luYWxJbnRlcmFjdGlvblJlc3BvbnNlIiwiZGVmZXJFZGl0IiwiRGVmZXJyZWRVcGRhdGVNZXNzYWdlIiwiZGVmZXIiLCJEZWZlcnJlZENoYW5uZWxNZXNzYWdlV2l0aFNvdXJjZSIsImRlbGV0ZSIsImRlbGV0ZUZvbGxvd3VwTWVzc2FnZSIsImRlbGV0ZU9yaWdpbmFsSW50ZXJhY3Rpb25SZXNwb25zZSIsInBheWxvYWQiLCJndWlsZElkIiwiaW50ZXJhY3Rpb24iLCJndWlsZF9pZCIsInRyYW5zZm9ybWVycyIsInNub3dmbGFrZSIsInVzZXIiLCJtZW1iZXIiLCJPYmplY3QiLCJjcmVhdGUiLCJwcm9wcyIsImRlc2lyZWRQcm9wZXJ0aWVzIiwiYXBwbGljYXRpb25JZCIsImFwcGxpY2F0aW9uX2lkIiwidmVyc2lvbiIsImxvY2FsZSIsImd1aWxkTG9jYWxlIiwiZ3VpbGRfbG9jYWxlIiwiZ3VpbGQiLCJzaGFyZElkIiwiYXBwUGVybWlzc2lvbnMiLCJhcHBfcGVybWlzc2lvbnMiLCJtZXNzYWdlIiwiY2hhbm5lbCIsImNoYW5uZWxJZCIsImNoYW5uZWxfaWQiLCJlbnRpdGxlbWVudHMiLCJtYXAiLCJlIiwiZW50aXRsZW1lbnQiLCJhdXRob3JpemluZ0ludGVncmF0aW9uT3duZXJzIiwiYXV0aG9yaXppbmdfaW50ZWdyYXRpb25fb3duZXJzIiwiRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlIiwiR3VpbGRJbnN0YWxsIiwiVXNlckluc3RhbGwiLCJjb250ZXh0IiwiYXR0YWNobWVudFNpemVMaW1pdCIsImF0dGFjaG1lbnRfc2l6ZV9saW1pdCIsImNvbXBvbmVudFR5cGUiLCJjb21wb25lbnRfdHlwZSIsImN1c3RvbUlkIiwiY3VzdG9tX2lkIiwiY29tcG9uZW50cyIsImNvbXBvbmVudCIsInZhbHVlcyIsIm5hbWUiLCJyZXNvbHZlZCIsImludGVyYWN0aW9uRGF0YVJlc29sdmVkIiwib3B0IiwiaW50ZXJhY3Rpb25EYXRhT3B0aW9ucyIsInRhcmdldElkIiwidGFyZ2V0X2lkIiwiY3VzdG9taXplcnMiLCJvcHRpb24iLCJ2YWx1ZSIsImZvY3VzZWQiLCJ0cmFuc2Zvcm1lZCIsIm1lc3NhZ2VzIiwiQ29sbGVjdGlvbiIsImVudHJpZXMiLCJfaWQiLCJ1c2VycyIsIm1lbWJlcnMiLCJyb2xlcyIsInJvbGUiLCJjaGFubmVscyIsImF0dGFjaG1lbnRzIiwia2V5IiwiYXR0YWNobWVudCIsImludGVyYWN0aW9uQ2FsbGJhY2tSZXNwb25zZSIsImludGVyYWN0aW9uQ2FsbGJhY2siLCJyZXNvdXJjZSIsImludGVyYWN0aW9uUmVzb3VyY2UiLCJjYWxsYmFjayIsImFjdGl2aXR5SW5zdGFuY2VJZCIsImFjdGl2aXR5X2luc3RhbmNlX2lkIiwicmVzcG9uc2VNZXNzYWdlSWQiLCJyZXNwb25zZV9tZXNzYWdlX2lkIiwicmVzcG9uc2VNZXNzYWdlRXBoZW1lcmFsIiwicmVzcG9uc2VfbWVzc2FnZV9lcGhlbWVyYWwiLCJyZXNwb25zZU1lc3NhZ2VMb2FkaW5nIiwicmVzcG9uc2VfbWVzc2FnZV9sb2FkaW5nIiwiYWN0aXZpdHlJbnN0YW5jZSIsImFjdGl2aXR5X2luc3RhbmNlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztRQTRCYUE7ZUFBQUE7O1FBdUZHQztlQUFBQTs7UUFzS0FDO2VBQUFBOztRQWxCQUM7ZUFBQUE7O1FBM0VBQztlQUFBQTs7UUFZQUM7ZUFBQUE7O1FBa0dBQztlQUFBQTs7O3VCQS9SVDt1QkFDb0I7QUFnQnBCLE1BQU1OLGtCQUFnRjtJQUMzRiwyRUFBMkU7SUFDM0UsR0FBSU8sU0FBUztJQUViLE1BQU1DLFNBQVFDLFFBQVEsRUFBRUMsT0FBTztRQUM3QixJQUFJQyxPQUFPQywrQkFBd0IsQ0FBQ0Msd0JBQXdCO1FBRTVELDREQUE0RDtRQUM1RCxJQUFJLE9BQU9KLGFBQWEsVUFB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