@sbb-esta/lyne-elements-dev 5.0.0-next.3-dev.1779813787 → 5.0.0-next.3-dev.1779891630

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 (105) hide show
  1. package/{block-link-common-C_rUmc2u.js → block-link-common-BZZ4NhPD.js} +1 -1
  2. package/core.js +24 -25
  3. package/custom-elements.json +1412 -281
  4. package/development/{block-link-common-C0XzZIvS.js → block-link-common-DCKM3jJQ.js} +2 -2
  5. package/development/core.d.ts +0 -1
  6. package/development/core.d.ts.map +1 -1
  7. package/development/core.js +1 -2
  8. package/development/icon/icon-base.js +1 -1
  9. package/development/icon/icon.component.js +1 -1
  10. package/development/icon-base-Cq6DxOUh.js +163 -0
  11. package/development/icon.js +1 -1
  12. package/development/icon.pure.js +1 -1
  13. package/development/link/common/block-link-common.js +1 -1
  14. package/development/link.js +1 -1
  15. package/development/link.pure.js +1 -1
  16. package/development/navigation/common/navigation-action-common.d.ts.map +1 -1
  17. package/development/navigation/navigation/navigation.component.d.ts +0 -1
  18. package/development/navigation/navigation/navigation.component.d.ts.map +1 -1
  19. package/development/navigation/navigation/navigation.component.js +1 -1
  20. package/development/navigation/navigation-section/navigation-section.component.d.ts +0 -1
  21. package/development/navigation/navigation-section/navigation-section.component.d.ts.map +1 -1
  22. package/development/navigation/navigation-section/navigation-section.component.js +1 -1
  23. package/development/navigation-action-common-BdJOaItd.js +1 -1
  24. package/development/{navigation-section.component-DhMQspKb.js → navigation-section.component-34GEIPaN.js} +2 -5
  25. package/development/{navigation.component-BOBqdfXo.js → navigation.component-CqQuaq7V.js} +2 -5
  26. package/development/navigation.js +2 -2
  27. package/development/navigation.pure.js +2 -2
  28. package/development/overlay/overlay-base-element.d.ts.map +1 -1
  29. package/development/overlay/overlay-base-element.js +3 -3
  30. package/development/popover/popover/popover.component.d.ts +54 -0
  31. package/development/popover/popover/popover.component.d.ts.map +1 -0
  32. package/development/popover/popover/popover.component.js +2 -0
  33. package/development/popover/{popover.component.d.ts → popover-base/popover-base.d.ts} +2 -59
  34. package/development/popover/popover-base/popover-base.d.ts.map +1 -0
  35. package/development/popover/popover-base/popover-base.js +2 -0
  36. package/development/popover/popover-close-button/popover-close-button.component.d.ts +21 -0
  37. package/development/popover/popover-close-button/popover-close-button.component.d.ts.map +1 -0
  38. package/development/popover/popover-close-button/popover-close-button.component.js +30 -0
  39. package/development/popover-base-BcIAVXWF.js +288 -0
  40. package/development/popover.component-CMR0eV2t.js +233 -0
  41. package/development/popover.js +6 -3
  42. package/development/popover.pure.d.ts +3 -1
  43. package/development/popover.pure.d.ts.map +1 -1
  44. package/development/popover.pure.js +4 -2
  45. package/development/tag/tag/tag.component.d.ts +1 -0
  46. package/development/tag/tag/tag.component.d.ts.map +1 -1
  47. package/development/tag/tag/tag.component.js +1 -1
  48. package/development/tag/tag-group/tag-group.component.d.ts +6 -1
  49. package/development/tag/tag-group/tag-group.component.d.ts.map +1 -1
  50. package/development/tag/tag-group/tag-group.component.js +1 -1
  51. package/development/tag-group.component-DTff1eBB.js +225 -0
  52. package/development/{tag.component-D6YowucW.js → tag.component-CDDb2fnV.js} +28 -8
  53. package/development/tag.js +2 -2
  54. package/development/tag.pure.js +2 -2
  55. package/development/toast/toast.component.d.ts.map +1 -1
  56. package/development/toast/toast.component.js +1 -1
  57. package/development/{toast.component-DowxkGr4.js → toast.component-BgGWVr4o.js} +3 -4
  58. package/development/toast.js +1 -1
  59. package/development/toast.pure.js +1 -1
  60. package/icon/icon-base.js +1 -1
  61. package/icon/icon.component.js +1 -1
  62. package/{icon-base-CK1oqnO4.js → icon-base-TSCmR5QC.js} +1 -1
  63. package/icon.js +1 -1
  64. package/icon.pure.js +1 -1
  65. package/index.d.ts +2 -1
  66. package/index.js +2 -1
  67. package/link/common/block-link-common.js +1 -1
  68. package/link.js +1 -1
  69. package/link.pure.js +1 -1
  70. package/navigation/navigation/navigation.component.js +1 -1
  71. package/navigation/navigation-section/navigation-section.component.js +1 -1
  72. package/{navigation-section.component-c4XBLFsl.js → navigation-section.component-DPgBlCf8.js} +1 -4
  73. package/{navigation.component-pRBja4z3.js → navigation.component-CY_9Q6dT.js} +1 -4
  74. package/navigation.js +2 -2
  75. package/navigation.pure.js +2 -2
  76. package/overlay/overlay-base-element.js +2 -2
  77. package/package.json +2 -2
  78. package/popover/popover/popover.component.js +2 -0
  79. package/popover/popover-base/popover-base.js +2 -0
  80. package/popover/popover-close-button/popover-close-button.component.js +20 -0
  81. package/popover-base-DlSa-ajc.js +181 -0
  82. package/popover.component-BHg4Qtqd.js +158 -0
  83. package/popover.js +5 -4
  84. package/popover.pure.js +4 -2
  85. package/tag/tag/tag.component.js +1 -1
  86. package/tag/tag-group/tag-group.component.js +1 -1
  87. package/{tag-group.component-ByRxy8UG.js → tag-group.component-CJwbkP70.js} +38 -23
  88. package/{tag.component-BrKoQeIW.js → tag.component-r8diGGP-.js} +14 -5
  89. package/tag.js +2 -2
  90. package/tag.pure.js +2 -2
  91. package/toast/toast.component.js +1 -1
  92. package/{toast.component-Lbh5sa_U.js → toast.component-Dlr0Koxu.js} +22 -23
  93. package/toast.js +1 -1
  94. package/toast.pure.js +1 -1
  95. package/core/eventing/composed-path-has-attribute.js +0 -7
  96. package/development/core/eventing/composed-path-has-attribute.d.ts +0 -10
  97. package/development/core/eventing/composed-path-has-attribute.d.ts.map +0 -1
  98. package/development/core/eventing/composed-path-has-attribute.js +0 -19
  99. package/development/icon-base-Cz7F4MJ9.js +0 -163
  100. package/development/popover/popover.component.d.ts.map +0 -1
  101. package/development/popover/popover.component.js +0 -2
  102. package/development/popover.component-DtIhw37L.js +0 -578
  103. package/development/tag-group.component-jSgluqL-.js +0 -194
  104. package/popover/popover.component.js +0 -2
  105. package/popover.component-DrLx8J07.js +0 -385
@@ -174,7 +174,7 @@ var SbbNavigationSectionElement = (() => {
174
174
  if (this.state !== "closed") this._setNavigationInert(matches);
175
175
  } });
176
176
  this._handleNavigationSectionClose = (event) => {
177
- if (event.composedPath().filter((el) => el instanceof HTMLElement).some((el) => this._isCloseElement(el))) this.close();
177
+ if (event.composedPath().some((el, i, a) => el instanceof HTMLElement && i < a.indexOf(this) && (el.nodeName === "A" || !el.hasAttribute("disabled") && (el.hasAttribute("sbb-navigation-close") || el.hasAttribute("sbb-navigation-section-close"))))) this.close();
178
178
  };
179
179
  this.addEventListener?.("keydown", (e) => {
180
180
  this._lastKeydownEvent = e;
@@ -273,9 +273,6 @@ var SbbNavigationSectionElement = (() => {
273
273
  window.addEventListener("keydown", (event) => this._onKeydownEvent(event), { signal: this._windowEventsController.signal });
274
274
  window.addEventListener("click", this._handleNavigationSectionClose, { signal: this._windowEventsController.signal });
275
275
  }
276
- _isCloseElement(element) {
277
- return element.nodeName === "A" || !element.hasAttribute("disabled") && (element.hasAttribute("sbb-navigation-close") || element.hasAttribute("sbb-navigation-section-close"));
278
- }
279
276
  _isBelowLarge() {
280
277
  return this._mediaMatcherController.matches(SbbMediaQueryBreakpointSmallAndBelow) ?? false;
281
278
  }
@@ -343,4 +340,4 @@ var SbbNavigationSectionElement = (() => {
343
340
  //#endregion
344
341
  export { SbbNavigationSectionElement as t };
345
342
 
346
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1zZWN0aW9uLmNvbXBvbmVudC1EaE1Rc3BLYi5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLXNlY3Rpb24vbmF2aWdhdGlvbi1zZWN0aW9uLnNjc3M/aW5saW5lIiwiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL25hdmlnYXRpb24vbmF2aWdhdGlvbi1zZWN0aW9uL25hdmlnYXRpb24tc2VjdGlvbi5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiQHVzZSAnLi4vLi4vY29yZS9zdHlsZXMnIGFzIHNiYjtcblxuOmhvc3Qge1xuICAtLXNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24tYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoXG4gICAgLS1zYmItZGlzYWJsZS1hbmltYXRpb24tZHVyYXRpb24sXG4gICAgdmFyKC0tc2JiLWFuaW1hdGlvbi1kdXJhdGlvbi0zeClcbiAgKTtcbiAgLS1zYmItZm9jdXMtb3V0bGluZS1jb2xvcjogdmFyKC0tc2JiLWZvY3VzLW91dGxpbmUtY29sb3ItZGFyayk7XG5cbiAgLy8gV2UgaGF2ZSB0byBwbGFjZSB0aGUgc3R5bGVzIG9uIHRoZSBob3N0IGFzIGl0IGhhcyB0byBiZSBhbGlnbmVkIG9uIHRoZSBncmlkIG9mIHRoZSBuYXZpZ2F0aW9uXG4gIGRpc3BsYXk6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24tZGlzcGxheSwgbm9uZSk7XG4gIHBvc2l0aW9uOiB2YXIoLS1zYmItbmF2aWdhdGlvbi1zZWN0aW9uLXBvc2l0aW9uKTtcbiAgZ3JpZC1jb2x1bW46IHZhcigtLXNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24tY29sdW1uKTtcbiAgaW5zZXQtaW5saW5lLXN0YXJ0OiAwO1xuICBpbnNldC1ibG9jay1zdGFydDogMDtcbiAgd2lkdGg6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24td2lkdGgpO1xuICBoZWlnaHQ6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24taGVpZ2h0KTtcbiAgei1pbmRleDogdmFyKC0tc2JiLW5hdmlnYXRpb24tei1pbmRleCwgdmFyKC0tc2JiLW92ZXJsYXktZGVmYXVsdC16LWluZGV4KSk7XG5cbiAgQGluY2x1ZGUgc2JiLm1xKCRmcm9tOiBsYXJnZSkge1xuICAgIC0tc2JiLW5hdmlnYXRpb24tc2VjdGlvbi1hbmltYXRpb24tZHVyYXRpb246IHZhcihcbiAgICAgIC0tc2JiLWRpc2FibGUtYW5pbWF0aW9uLWR1cmF0aW9uLFxuICAgICAgdmFyKC0tc2JiLWFuaW1hdGlvbi1kdXJhdGlvbi00eClcbiAgICApO1xuICAgIC0tc2JiLW5hdmlnYXRpb24tc2VjdGlvbi13aWR0aDogY2FsYyhcbiAgICAgIDEwMCUgKyB2YXIoLS1zYmItbGF5b3V0LWJhc2Utb2Zmc2V0LXJlc3BvbnNpdmUpICsgdmFyKC0tc2JiLWdyaWQtYmFzZS1ndXR0ZXItcmVzcG9uc2l2ZSlcbiAgICApO1xuXG4gICAgdHJhbnNsYXRlOiBjYWxjKHZhcigtLXNiYi1ncmlkLWJhc2UtZ3V0dGVyLXJlc3BvbnNpdmUpICogLTEpIDA7XG4gIH1cbn1cblxuOmhvc3QoOnN0YXRlKHN0YXRlLW9wZW5lZCkpIHtcbiAgLS1zYmItbmF2aWdhdGlvbi1zZWN0aW9uLXBvaW50ZXItZXZlbnRzOiBhbGw7XG59XG5cbjpob3N0KDpzdGF0ZShzdGF0ZS1vcGVuaW5nKSkge1xuICAtLXNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24tcG9zaXRpb246IGFic29sdXRlO1xufVxuXG46aG9zdCg6aXMoOnN0YXRlKHN0YXRlLW9wZW5pbmcpLCA6c3RhdGUoc3RhdGUtY2xvc2luZykpKSB7XG4gIC0tc2JiLW5hdmlnYXRpb24tc2VjdGlvbi1wb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuOmhvc3QoOmlzKDpzdGF0ZShzdGF0ZS1vcGVuaW5nKSwgOnN0YXRlKHN0YXRlLW9wZW5lZCksIDpzdGF0ZShzdGF0ZS1jbG9zaW5nKSkpIHtcbiAgLS1zYmItbmF2aWdhdGlvbi1zZWN0aW9uLWRpc3BsYXk6IGJsb2NrO1xufVxuXG46OnNsb3R0ZWQoKikge1xuICBwYWRkaW5nLWlubGluZS1zdGFydDogdmFyKC0tc2JiLW5hdmlnYXRpb24tc2VjdGlvbi1jb250ZW50LXBhZGRpbmctaW5saW5lLXN0YXJ0KTtcbn1cblxuLy8gQWx3YXlzIHBsYWNlIHRoZSBzYmItYnV0dG9uIG9uIGEgbmV3IHJvd1xuOjpzbG90dGVkKDpzdGF0ZShzYmItYnV0dG9uKSkge1xuICBncmlkLWNvbHVtbi1zdGFydDogMTtcbn1cblxuLnNiYi1uYXZpZ2F0aW9uLXNlY3Rpb25fX2NvbnRhaW5lciB7XG4gIHBvaW50ZXItZXZlbnRzOiB2YXIoLS1zYmItbmF2aWdhdGlvbi1zZWN0aW9uLXBvaW50ZXItZXZlbnRzKTtcbiAgaGVpZ2h0OiB2YXIoLS1zYmItbmF2aWdhdGlvbi1zZWN0aW9uLWhlaWdodCk7XG59XG5cbi5zYmItbmF2aWdhdGlvbi1zZWN0aW9uIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICBtYXJnaW46IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGNvbG9yOiB2YXIoLS1zYmItbmF2aWdhdGlvbi1jb2xvciwgdmFyKC0tc2JiLWNvbG9yLTEtbmVnYXRpdmUpKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHBhZGRpbmc6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgOmhvc3QoOmlzKDpzdGF0ZShzdGF0ZS1vcGVuaW5nKSwgOnN0YXRlKHN0YXRlLW9wZW5lZCksIDpzdGF0ZShzdGF0ZS1jbG9zaW5nKSkpICYge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgYW5pbWF0aW9uOiB7XG4gICAgICBuYW1lOiBvcGVuO1xuICAgICAgZHVyYXRpb246IHZhcigtLXNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24tYW5pbWF0aW9uLWR1cmF0aW9uKTtcbiAgICAgIHRpbWluZy1mdW5jdGlvbjogdmFyKC0tc2JiLW5hdmlnYXRpb24tc2VjdGlvbi1hbmltYXRpb24tZWFzaW5nKTtcbiAgICB9XG4gIH1cblxuICA6aG9zdCg6c3RhdGUoc3RhdGUtY2xvc2luZykpICYge1xuICAgIGFuaW1hdGlvbi1uYW1lOiBjbG9zZTtcbiAgfVxuXG4gIEBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSB7XG4gICAgb3V0bGluZTogdmFyKC0tc2JiLWJvcmRlci13aWR0aC0xeCkgc29saWQgQ2FudmFzVGV4dDtcbiAgfVxufVxuXG4uc2JiLW5hdmlnYXRpb24tc2VjdGlvbl9fd3JhcHBlciB7XG4gIGhlaWdodDogMTAwJTtcbiAgcGFkZGluZy1ibG9jazogdmFyKC0tc2JiLW5hdmlnYXRpb24tc2VjdGlvbi1wYWRkaW5nLWJsb2NrKTtcbiAgb3V0bGluZTogbm9uZTtcbiAgb3ZlcmZsb3cteTogYXV0bztcblxuICA6aG9zdCg6aXMoOnN0YXRlKHN0YXRlLW9wZW5pbmcpLCA6c3RhdGUoc3RhdGUtY2xvc2luZykpKSAmIHtcbiAgICAtLXNiYi1zY3JvbGxiYXItY29sb3I6IHRyYW5zcGFyZW50O1xuXG4gICAgc2Nyb2xsYmFyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgfVxufVxuXG4uc2JiLW5hdmlnYXRpb24tc2VjdGlvbl9faGVhZGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTF4KTtcbiAgbWFyZ2luLWJsb2NrLXN0YXJ0OiB2YXIoLS1zYmItc3BhY2luZy1yZXNwb25zaXZlLXh4bCk7XG4gIHBhZGRpbmctaW5saW5lLXN0YXJ0OiB2YXIoLS1zYmItbmF2aWdhdGlvbi1zZWN0aW9uLWNvbnRlbnQtcGFkZGluZy1pbmxpbmUtc3RhcnQpO1xuXG4gIEBpbmNsdWRlIHNiYi5tcSgkZnJvbTogbGFyZ2UpIHtcbiAgICBtYXJnaW4tYmxvY2stc3RhcnQ6IDA7XG4gICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDA7XG4gIH1cblxuICBAaW5jbHVkZSBzYmIubXEoJGZyb206IHVsdHJhKSB7XG4gICAgZ3JpZC1jb2x1bW46IDEgLyA0O1xuICB9XG59XG5cbi5zYmItbmF2aWdhdGlvbi1zZWN0aW9uX19iYWNrIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0cmFuc2xhdGU6IGNhbGMoKDEwMCUgKyB2YXIoLS1zYmItc3BhY2luZy1maXhlZC0xeCkpICogLTEpIDA7XG5cbiAgQGluY2x1ZGUgc2JiLm1xKCRmcm9tOiBsYXJnZSkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLnNiYi1uYXZpZ2F0aW9uLXNlY3Rpb25fX3RpdGxlIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc2l6ZTogdmFyKC0tc2JiLW5hdmlnYXRpb24tc2VjdGlvbi1mb250LXNpemUpO1xuICBsZXR0ZXItc3BhY2luZzogdmFyKC0tc2JiLXR5cG8tbGV0dGVyLXNwYWNpbmctaGVhZGluZyk7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1zYmItdHlwby1saW5lLWhlaWdodC1oZWFkaW5nKTtcbn1cblxuLnNiYi1uYXZpZ2F0aW9uLXNlY3Rpb25fX2NvbnRlbnQge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgZ2FwOiB2YXIoLS1zYmItc3BhY2luZy1yZXNwb25zaXZlLWwpIHZhcigtLXNiYi1ncmlkLWJhc2UtZ3V0dGVyLXJlc3BvbnNpdmUpO1xuICBwYWRkaW5nLWlubGluZTogdmFyKC0tc2JiLW5hdmlnYXRpb24tc2VjdGlvbi1wYWRkaW5nLWlubGluZSk7XG5cbiAgQGluY2x1ZGUgc2JiLm1xKCRmcm9tOiBsYXJnZSkge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNsYXRlOiAwIHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTN4KTtcbiAgICB0cmFuc2l0aW9uOiB7XG4gICAgICBkdXJhdGlvbjogdmFyKC0tc2JiLW5hdmlnYXRpb24tc2VjdGlvbi1hbmltYXRpb24tZHVyYXRpb24pO1xuICAgICAgZGVsYXk6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24tYW5pbWF0aW9uLWR1cmF0aW9uKTtcbiAgICAgIHRpbWluZy1mdW5jdGlvbjogdmFyKC0tc2JiLW5hdmlnYXRpb24tc2VjdGlvbi1hbmltYXRpb24tZWFzaW5nKTtcbiAgICAgIHByb3BlcnR5OiBvcGFjaXR5LCB0cmFuc2xhdGU7XG4gICAgfVxuXG4gICAgOmhvc3QoOnN0YXRlKHN0YXRlLW9wZW5lZCkpICYge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIHRyYW5zbGF0ZTogMCAwO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIHNiYi5tcSgkZnJvbTogdWx0cmEpIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCAxZnIpO1xuICB9XG5cbiAgOmhvc3QoOnN0YXRlKHN0YXRlLWNsb3NpbmcpKSAmIHtcbiAgICB0cmFuc2l0aW9uLWRlbGF5OiAwcztcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIG9wZW4ge1xuICBmcm9tIHtcbiAgICB0cmFuc2xhdGU6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24tdHJhbnNsYXRlKSAwO1xuICB9XG5cbiAgdG8ge1xuICAgIHRyYW5zbGF0ZTogMCAwO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgY2xvc2Uge1xuICBmcm9tIHtcbiAgICB0cmFuc2xhdGU6IDAgMDtcbiAgfVxuXG4gIHRvIHtcbiAgICB0cmFuc2xhdGU6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24tdHJhbnNsYXRlKSAwO1xuICB9XG59XG4iLCJpbXBvcnQge1xuICB0eXBlIENTU1Jlc3VsdEdyb3VwLFxuICBodG1sLFxuICBpc1NlcnZlcixcbiAgbm90aGluZyxcbiAgdHlwZSBQcm9wZXJ0eURlY2xhcmF0aW9uLFxuICB0eXBlIFByb3BlcnR5VmFsdWVzLFxuICB0eXBlIFRlbXBsYXRlUmVzdWx0LFxuICB1bnNhZmVDU1MsXG59IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHsgU2JiVHJhbnNwYXJlbnRCdXR0b25FbGVtZW50IH0gZnJvbSAnLi4vLi4vYnV0dG9uLnB1cmUudHMnO1xuaW1wb3J0IHtcbiAgZm9yY2VUeXBlLFxuICBpMThuR29CYWNrLFxuICBpZFJlZmVyZW5jZSxcbiAgSVNfRk9DVVNBQkxFX1FVRVJZLFxuICBpc1plcm9BbmltYXRpb25EdXJhdGlvbixcbiAgb21pdEVtcHR5Q29udmVydGVyLFxuICByZW1vdmVBcmlhT3ZlcmxheVRyaWdnZXJQcm9wZXJ0aWVzLFxuICB0eXBlIFNiYkVsZW1lbnRUeXBlLFxuICBTYmJGb2N1c1RyYXBDb250cm9sbGVyLFxuICBzYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3IsXG4gIFNiYkxhbmd1YWdlQ29udHJvbGxlcixcbiAgU2JiTWVkaWFNYXRjaGVyQ29udHJvbGxlcixcbiAgU2JiTWVkaWFRdWVyeUJyZWFrcG9pbnRTbWFsbEFuZEJlbG93LFxuICBTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudCxcbiAgdHlwZSBTYmJPcGVuZWRDbG9zZWRTdGF0ZSxcbiAgU2JiVXBkYXRlU2NoZWR1bGVyTWl4aW4sXG4gIHNjcm9sbGJhclN0eWxlcyxcbiAgc2V0QXJpYU92ZXJsYXlUcmlnZ2VyUHJvcGVydGllcyxcbiAgybVzdGF0ZUNvbnRyb2xsZXIsXG59IGZyb20gJy4uLy4uL2NvcmUudHMnO1xuaW1wb3J0IHR5cGUgeyBTYmJOYXZpZ2F0aW9uRWxlbWVudCB9IGZyb20gJy4uL25hdmlnYXRpb24vbmF2aWdhdGlvbi5jb21wb25lbnQudHMnO1xuaW1wb3J0IHR5cGUgeyBTYmJOYXZpZ2F0aW9uQnV0dG9uRWxlbWVudCB9IGZyb20gJy4uL25hdmlnYXRpb24tYnV0dG9uL25hdmlnYXRpb24tYnV0dG9uLmNvbXBvbmVudC50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYk5hdmlnYXRpb25MaW5rRWxlbWVudCB9IGZyb20gJy4uL25hdmlnYXRpb24tbGluay9uYXZpZ2F0aW9uLWxpbmsuY29tcG9uZW50LnRzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vbmF2aWdhdGlvbi1zZWN0aW9uLnNjc3M/aW5saW5lJztcblxuLyoqXG4gKiBJdCBjYW4gYmUgdXNlZCBhcyBhIGNvbnRhaW5lciBmb3IgYHNiYi1uYXZpZ2F0aW9uLWxpc3RgIHdpdGhpbiBhIGBzYmItbmF2aWdhdGlvbmAuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgY29udGVudCBpbnRvIHRoZSBgc2JiLW5hdmlnYXRpb24tc2VjdGlvbmAuXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJOYXZpZ2F0aW9uU2VjdGlvbkVsZW1lbnQgZXh0ZW5kcyBTYmJVcGRhdGVTY2hlZHVsZXJNaXhpbihTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudCkge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IGVsZW1lbnROYW1lOiBzdHJpbmcgPSAnc2JiLW5hdmlnYXRpb24tc2VjdGlvbic7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgZWxlbWVudERlcGVuZGVuY2llczogU2JiRWxlbWVudFR5cGVbXSA9IFtTYmJUcmFuc3BhcmVudEJ1dHRvbkVsZW1lbnRdO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbc2Nyb2xsYmFyU3R5bGVzLCB1bnNhZmVDU1Moc3R5bGUpXTtcblxuICAvKipcbiAgICogVGhlIGxhYmVsIHRvIGJlIHNob3duIGJlZm9yZSB0aGUgYWN0aW9uIGxpc3QuXG4gICAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAndGl0bGUtY29udGVudCcsIHJlZmxlY3Q6IHRydWUsIGNvbnZlcnRlcjogb21pdEVtcHR5Q29udmVydGVyIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciB0aXRsZUNvbnRlbnQ6IHN0cmluZyA9ICcnO1xuXG4gIC8qKlxuICAgKiBUaGUgZWxlbWVudCB0aGF0IHdpbGwgdHJpZ2dlciB0aGUgbmF2aWdhdGlvbiBzZWN0aW9uLlxuICAgKlxuICAgKiBGb3IgYXR0cmlidXRlIHVzYWdlLCBwcm92aWRlIGFuIGlkIHJlZmVyZW5jZS5cbiAgICovXG4gIEBpZFJlZmVyZW5jZSgpXG4gIEBwcm9wZXJ0eSgpXG4gIHB1YmxpYyBhY2Nlc3NvciB0cmlnZ2VyOiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBUaGlzIHdpbGwgYmUgZm9yd2FyZGVkIGFzIGFyaWEtbGFiZWwgdG8gdGhlIG5hdiBlbGVtZW50IGFuZCBpcyByZWFkIGFzIGEgdGl0bGUgb2YgdGhlIG5hdmlnYXRpb24tc2VjdGlvbi5cbiAgICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdhY2Nlc3NpYmlsaXR5LWxhYmVsJyB9KVxuICBwdWJsaWMgYWNjZXNzb3IgYWNjZXNzaWJpbGl0eUxhYmVsOiBzdHJpbmcgPSAnJztcblxuICAvKipcbiAgICogVGhpcyB3aWxsIGJlIGZvcndhcmRlZCBhcyBhcmlhLWxhYmVsIHRvIHRoZSBiYWNrIGJ1dHRvbiBlbGVtZW50LlxuICAgKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2FjY2Vzc2liaWxpdHktYmFjay1sYWJlbCcgfSlcbiAgcHVibGljIGFjY2Vzc29yIGFjY2Vzc2liaWxpdHlCYWNrTGFiZWw6IHN0cmluZyA9ICcnO1xuXG4gIC8qKiBUaGUgc3RhdGUgb2YgdGhlIGNvbXBvbmVudC4gKi9cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHNldCBzdGF0ZShzdGF0ZTogU2JiT3BlbmVkQ2xvc2VkU3RhdGUpIHtcbiAgICBzdXBlci5zdGF0ZSA9IHN0YXRlO1xuICAgIHRoaXMuaW50ZXJuYWxzLmFyaWFIaWRkZW4gPSB0aGlzLnN0YXRlICE9PSAnb3BlbmVkJyA/ICd0cnVlJyA6IG51bGw7XG4gIH1cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGdldCBzdGF0ZSgpOiBTYmJPcGVuZWRDbG9zZWRTdGF0ZSB7XG4gICAgcmV0dXJuIHN1cGVyLnN0YXRlO1xuICB9XG5cbiAgcHJpdmF0ZSBfZmlyc3RMZXZlbE5hdmlnYXRpb24/OiBTYmJOYXZpZ2F0aW9uRWxlbWVudCB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF90cmlnZ2VyRWxlbWVudDogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBfdHJpZ2dlckFib3J0Q29udHJvbGxlciE6IEFib3J0Q29udHJvbGxlcjtcbiAgcHJpdmF0ZSBfd2luZG93RXZlbnRzQ29udHJvbGxlciE6IEFib3J0Q29udHJvbGxlcjtcbiAgcHJpdmF0ZSBfbGFuZ3VhZ2UgPSBuZXcgU2JiTGFuZ3VhZ2VDb250cm9sbGVyKHRoaXMpO1xuICBwcml2YXRlIF9mb2N1c1RyYXBDb250cm9sbGVyID0gbmV3IFNiYkZvY3VzVHJhcENvbnRyb2xsZXIodGhpcyk7XG4gIHByaXZhdGUgX2xhc3RLZXlkb3duRXZlbnQ6IEtleWJvYXJkRXZlbnQgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBfbWVkaWFNYXRjaGVyQ29udHJvbGxlciA9IG5ldyBTYmJNZWRpYU1hdGNoZXJDb250cm9sbGVyKHRoaXMsIHtcbiAgICBbU2JiTWVkaWFRdWVyeUJyZWFrcG9pbnRTbWFsbEFuZEJlbG93XTogKG1hdGNoZXMpID0+IHtcbiAgICAgIGlmICh0aGlzLnN0YXRlICE9PSAnY2xvc2VkJykge1xuICAgICAgICB0aGlzLl9zZXROYXZpZ2F0aW9uSW5lcnQobWF0Y2hlcyk7XG4gICAgICB9XG4gICAgfSxcbiAgfSk7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG5cbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/Ligna2V5ZG93bicsIChlKSA9PiB7XG4gICAgICB0aGlzLl9sYXN0S2V5ZG93bkV2ZW50ID0gZTtcbiAgICB9KTtcblxuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdmb2N1c291dCcsIChlKSA9PiB7XG4gICAgICBpZiAoXG4gICAgICAgIGUucmVsYXRlZFRhcmdldCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50ICYmXG4gICAgICAgICF0aGlzLmNvbnRhaW5zKGUucmVsYXRlZFRhcmdldCkgJiZcbiAgICAgICAgc2JiSW5wdXRNb2RhbGl0eURldGVjdG9yLm1vc3RSZWNlbnRNb2RhbGl0eSA9PT0gJ2tleWJvYXJkJyAmJlxuICAgICAgICB0aGlzLl9sYXN0S2V5ZG93bkV2ZW50Py5rZXkgPT09ICdUYWInICYmXG4gICAgICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50XG4gICAgICApIHtcbiAgICAgICAgY29uc3QgbmF2aWdhdGlvbkVsZW1lbnQgPSB0aGlzLmNsb3Nlc3Q8U2JiTmF2aWdhdGlvbkVsZW1lbnQ+KCdzYmItbmF2aWdhdGlvbicpO1xuICAgICAgICBjb25zdCBmb2N1c2FibGVFbGVtZW50cyA9IEFycmF5LmZyb20oXG4gICAgICAgICAgbmF2aWdhdGlvbkVsZW1lbnQ/LnF1ZXJ5U2VsZWN0b3JBbGw8SFRNTEVsZW1lbnQ+KElTX0ZPQ1VTQUJMRV9RVUVSWSkgPz8gW10sXG4gICAgICAgICkuZmlsdGVyKChlKSA9PiAhdGhpcy5jb250YWlucyhlKSk7XG5cbiAgICAgICAgaWYgKHRoaXMuX2xhc3RLZXlkb3duRXZlbnQuc2hpZnRLZXkgfHwgIWZvY3VzYWJsZUVsZW1lbnRzLmxlbmd0aCkge1xuICAgICAgICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50Py5mb2N1cygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IHRyaWdnZXJJbmRleCA9IGZvY3VzYWJsZUVsZW1lbnRzLmluZGV4T2YodGhpcy5fdHJpZ2dlckVsZW1lbnQpO1xuICAgICAgICAgIChmb2N1c2FibGVFbGVtZW50c1t0cmlnZ2VySW5kZXggKyAxXSA/PyBuYXZpZ2F0aW9uRWxlbWVudCEuY2xvc2VCdXR0b24pPy5mb2N1cygpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogT3BlbnMgdGhlIG5hdmlnYXRpb24gc2VjdGlvbiBvbiB0cmlnZ2VyIGNsaWNrLlxuICAgKi9cbiAgcHVibGljIG9wZW4oKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3RhdGUgIT09ICdjbG9zZWQnIHx8ICF0aGlzLmhhc1VwZGF0ZWQgfHwgIXRoaXMuZGlzcGF0Y2hCZWZvcmVPcGVuRXZlbnQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9pc05hdmlnYXRpb25CdXR0b24odGhpcy5fdHJpZ2dlckVsZW1lbnQpKSB7XG4gICAgICB0aGlzLl90cmlnZ2VyRWxlbWVudD8ubWFya2VyPy5zZWxlY3QodGhpcy5fdHJpZ2dlckVsZW1lbnQpO1xuICAgIH1cblxuICAgIHRoaXMuX2Nsb3NlUHJldmlvdXNOYXZpZ2F0aW9uU2VjdGlvbigpO1xuICAgIHRoaXMuc3RhdGUgPSAnb3BlbmluZyc7XG4gICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ8m1bmF2aWdhdGlvbnNlY3Rpb25vcGVuaW5nJykpO1xuICAgIHRoaXMuc3RhcnRVcGRhdGUoKTtcbiAgICB0aGlzLmluZXJ0ID0gdHJ1ZTtcbiAgICBpZiAodGhpcy5fdHJpZ2dlckVsZW1lbnQpIHtcbiAgICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50LmFyaWFFeHBhbmRlZCA9ICd0cnVlJztcbiAgICB9XG5cbiAgICAvLyBJZiB0aGUgYW5pbWF0aW9uIGR1cmF0aW9uIGlzIHplcm8sIHRoZSBhbmltYXRpb25lbmQgZXZlbnQgaXMgbm90IGFsd2F5cyBmaXJlZCByZWxpYWJseS5cbiAgICAvLyBJbiB0aGlzIGNhc2Ugd2UgZGlyZWN0bHkgc2V0IHRoZSBgb3BlbmVkYCBzdGF0ZS5cbiAgICBpZiAodGhpcy5faXNaZXJvQW5pbWF0aW9uRHVyYXRpb24oKSkge1xuICAgICAgdGhpcy5faGFuZGxlT3BlbmluZygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2lzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc1plcm9BbmltYXRpb25EdXJhdGlvbih0aGlzLCAnLS1zYmItbmF2aWdhdGlvbi1zZWN0aW9uLWFuaW1hdGlvbi1kdXJhdGlvbicpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlT3BlbmluZygpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlID0gJ29wZW5lZCc7XG4gICAgdGhpcy5pbmVydCA9IGZhbHNlO1xuICAgIHRoaXMuX2F0dGFjaFdpbmRvd0V2ZW50cygpO1xuICAgIHRoaXMuX3NldE5hdmlnYXRpb25JbmVydCgpO1xuICAgIHRoaXMuX2ZvY3VzVHJhcENvbnRyb2xsZXIuZm9jdXNJbml0aWFsRWxlbWVudCgpO1xuICAgIHRoaXMuX2NoZWNrQWN0aXZlQWN0aW9uKCk7XG4gICAgdGhpcy5jb21wbGV0ZVVwZGF0ZSgpO1xuICAgIHRoaXMuZGlzcGF0Y2hPcGVuRXZlbnQoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZUNsb3NpbmcoKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZSA9ICdjbG9zZWQnO1xuICAgIHRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcignLnNiYi1uYXZpZ2F0aW9uLXNlY3Rpb25fX2NvbnRhaW5lcicpPy5zY3JvbGxUbygwLCAwKTtcbiAgICB0aGlzLl93aW5kb3dFdmVudHNDb250cm9sbGVyPy5hYm9ydCgpO1xuICAgIHRoaXMuX3Jlc2V0TGlzdHMoKTtcbiAgICB0aGlzLl9zZXROYXZpZ2F0aW9uSW5lcnQoKTtcbiAgICBpZiAodGhpcy5faXNCZWxvd0xhcmdlKCkgJiYgdGhpcy5fdHJpZ2dlckVsZW1lbnQpIHtcbiAgICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuICAgIHRoaXMuY29tcGxldGVVcGRhdGUoKTtcbiAgICB0aGlzLmRpc3BhdGNoQ2xvc2VFdmVudCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfY2xvc2VQcmV2aW91c05hdmlnYXRpb25TZWN0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuX2ZpcnN0TGV2ZWxOYXZpZ2F0aW9uPy5hY3RpdmVOYXZpZ2F0aW9uU2VjdGlvbj8uY2xvc2UoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbG9zZXMgdGhlIG5hdmlnYXRpb24gc2VjdGlvbi5cbiAgICovXG4gIHB1YmxpYyBjbG9zZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdGF0ZSAhPT0gJ29wZW5lZCcgfHwgIXRoaXMuZGlzcGF0Y2hCZWZvcmVDbG9zZUV2ZW50KCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvKiogQGludGVybmFsICovXG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnybVuYXZpZ2F0aW9uc2VjdGlvbmNsb3NpbmcnKSk7XG4gICAgdGhpcy5zdGF0ZSA9ICdjbG9zaW5nJztcbiAgICB0aGlzLnN0YXJ0VXBkYXRlKCk7XG4gICAgdGhpcy5pbmVydCA9IHRydWU7XG4gICAgaWYgKHRoaXMuX3RyaWdnZXJFbGVtZW50KSB7XG4gICAgICB0aGlzLl90cmlnZ2VyRWxlbWVudC5hcmlhRXhwYW5kZWQgPSAnZmFsc2UnO1xuICAgIH1cblxuICAgIC8vIElmIHRoZSBhbmltYXRpb24gZHVyYXRpb24gaXMgemVybywgdGhlIGFuaW1hdGlvbmVuZCBldmVudCBpcyBub3QgYWx3YXlzIGZpcmVkIHJlbGlhYmx5LlxuICAgIC8vIEluIHRoaXMgY2FzZSB3ZSBkaXJlY3RseSBzZXQgdGhlIGBjbG9zZWRgIHN0YXRlLlxuICAgIGlmICh0aGlzLl9pc1plcm9BbmltYXRpb25EdXJhdGlvbigpKSB7XG4gICAgICB0aGlzLl9oYW5kbGVDbG9zaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgLy8gQ2hlY2sgaWYgdGhlIHRyaWdnZXIgaXMgdmFsaWQgYW5kIGF0dGFjaCBjbGljayBldmVudCBsaXN0ZW5lcnMuXG4gIHByaXZhdGUgX2NvbmZpZ3VyZVRyaWdnZXIoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudHJpZ2dlciA9PT0gdGhpcy5fdHJpZ2dlckVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl90cmlnZ2VyQWJvcnRDb250cm9sbGVyPy5hYm9ydCgpO1xuICAgIHJlbW92ZUFyaWFPdmVybGF5VHJpZ2dlclByb3BlcnRpZXModGhpcy5fdHJpZ2dlckVsZW1lbnQpO1xuICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50ID0gdGhpcy50cmlnZ2VyO1xuXG4gICAgaWYgKCF0aGlzLl90cmlnZ2VyRWxlbWVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHNldEFyaWFPdmVybGF5VHJpZ2dlclByb3BlcnRpZXModGhpcywgdGhpcy5fdHJpZ2dlckVsZW1lbnQsICdtZW51JywgdGhpcy5zdGF0ZSk7XG4gICAgdGhpcy5fdHJpZ2dlckFib3J0Q29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgICBpZiAodGhpcy5faXNOYXZpZ2F0aW9uQnV0dG9uKHRoaXMuX3RyaWdnZXJFbGVtZW50KSkge1xuICAgICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQuY29ubmVjdGVkU2VjdGlvbiA9IHRoaXM7XG4gICAgfVxuICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4gdGhpcy5vcGVuKCksIHtcbiAgICAgIHNpZ25hbDogdGhpcy5fdHJpZ2dlckFib3J0Q29udHJvbGxlci5zaWduYWwsXG4gICAgfSk7XG4gICAgdGhpcy5fZmlyc3RMZXZlbE5hdmlnYXRpb24gPSB0aGlzLl90cmlnZ2VyRWxlbWVudD8uY2xvc2VzdD8uKCdzYmItbmF2aWdhdGlvbicpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaXNOYXZpZ2F0aW9uQnV0dG9uKHRyaWdnZXI6IEhUTUxFbGVtZW50IHwgbnVsbCk6IHRyaWdnZXIgaXMgU2JiTmF2aWdhdGlvbkJ1dHRvbkVsZW1lbnQge1xuICAgIHJldHVybiB0cmlnZ2VyPy5sb2NhbE5hbWUgPT09ICdzYmItbmF2aWdhdGlvbi1idXR0b24nO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2V0TmF2aWdhdGlvbkluZXJ0KGlzQmVsb3dMYXJnZTogYm9vbGVhbiA9IHRoaXMuX2lzQmVsb3dMYXJnZSgpKTogdm9pZCB7XG4gICAgY29uc3QgbmF2aWdhdGlvbkNvbnRlbnQgPSB0aGlzLl9maXJzdExldmVsTmF2aWdhdGlvbj8ubmF2aWdhdGlvbkNvbnRlbnQ7XG4gICAgaWYgKG5hdmlnYXRpb25Db250ZW50KSB7XG4gICAgICBuYXZpZ2F0aW9uQ29udGVudC5pbmVydCA9IGlzQmVsb3dMYXJnZSAmJiB0aGlzLnN0YXRlICE9PSAnY2xvc2VkJztcbiAgICB9XG4gIH1cblxuICAvLyBJbiByYXJlIGNhc2VzIGl0IGNhbiBiZSB0aGF0IHRoZSBhbmltYXRpb25FbmQgZXZlbnQgaXMgdHJpZ2dlcmVkIHR3aWNlLlxuICAvLyBUbyBhdm9pZCBlbnRlcmluZyBhIGNvcnJ1cHQgc3RhdGUsIGV4aXQgd2hlbiBzdGF0ZSBpcyBub3QgZXhwZWN0ZWQuXG4gIHByaXZhdGUgX29uQW5pbWF0aW9uRW5kKGV2ZW50OiBBbmltYXRpb25FdmVudCk6IHZvaWQge1xuICAgIGlmIChldmVudC5hbmltYXRpb25OYW1lID09PSAnb3BlbicgJiYgdGhpcy5zdGF0ZSA9PT0gJ29wZW5pbmcnKSB7XG4gICAgICB0aGlzLl9oYW5kbGVPcGVuaW5nKCk7XG4gICAgfSBlbHNlIGlmIChldmVudC5hbmltYXRpb25OYW1lID09PSAnY2xvc2UnICYmIHRoaXMuc3RhdGUgPT09ICdjbG9zaW5nJykge1xuICAgICAgdGhpcy5faGFuZGxlQ2xvc2luZygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3Jlc2V0TGlzdHMoKTogdm9pZCB7XG4gICAgQXJyYXkuZnJvbShcbiAgICAgIHRoaXMucXVlcnlTZWxlY3RvckFsbDxTYmJOYXZpZ2F0aW9uQnV0dG9uRWxlbWVudCB8IFNiYk5hdmlnYXRpb25MaW5rRWxlbWVudD4oXG4gICAgICAgICc6c3RhdGUoc2VjdGlvbi1hY3Rpb24pOnN0YXRlKGFjdGlvbi1hY3RpdmUpJyxcbiAgICAgICkgPz8gW10sXG4gICAgKS5mb3JFYWNoKChhY3Rpb24pID0+IMm1c3RhdGVDb250cm9sbGVyKGFjdGlvbikuZGVsZXRlKCdhY3Rpb24tYWN0aXZlJykpO1xuICB9XG5cbiAgcHJpdmF0ZSBfYXR0YWNoV2luZG93RXZlbnRzKCk6IHZvaWQge1xuICAgIHRoaXMuX3dpbmRvd0V2ZW50c0NvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHRoaXMuX29uS2V5ZG93bkV2ZW50KGV2ZW50KSwge1xuICAgICAgc2lnbmFsOiB0aGlzLl93aW5kb3dFdmVudHNDb250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcblxuICAgIC8vIENsb3NlIG5hdmlnYXRpb24gc2VjdGlvbiBvbiBhY3Rpb24gY2xpY2sgb3Igc2JiLW5hdmlnYXRpb24tc2VjdGlvbi1jbG9zZSBjbGlja1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMuX2hhbmRsZU5hdmlnYXRpb25TZWN0aW9uQ2xvc2UsIHtcbiAgICAgIHNpZ25hbDogdGhpcy5fd2luZG93RXZlbnRzQ29udHJvbGxlci5zaWduYWwsXG4gICAgfSk7XG4gIH1cblxuICAvLyBDaGVjayBpZiB0aGUgY2xpY2sgd2FzIHRyaWdnZXJlZCBvbiBhbiBlbGVtZW50IHRoYXQgc2hvdWxkIGNsb3NlIHRoZSBzZWN0aW9uLlxuICBwcml2YXRlIF9oYW5kbGVOYXZpZ2F0aW9uU2VjdGlvbkNsb3NlID0gKGV2ZW50OiBFdmVudCk6IHZvaWQgPT4ge1xuICAgIGlmIChcbiAgICAgIGV2ZW50XG4gICAgICAgIC5jb21wb3NlZFBhdGgoKVxuICAgICAgICAuZmlsdGVyKChlbCkgPT4gZWwgaW5zdGFuY2VvZiBIVE1MRWxlbWVudClcbiAgICAgICAgLnNvbWUoKGVsKSA9PiB0aGlzLl9pc0Nsb3NlRWxlbWVudChlbCkpXG4gICAgKSB7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfVxuICB9O1xuXG4gIHByaXZhdGUgX2lzQ2xvc2VFbGVtZW50KGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIGVsZW1lbnQubm9kZU5hbWUgPT09ICdBJyB8fFxuICAgICAgKCFlbGVtZW50Lmhhc0F0dHJpYnV0ZSgnZGlzYWJsZWQnKSAmJlxuICAgICAgICAoZWxlbWVudC5oYXNBdHRyaWJ1dGUoJ3NiYi1uYXZpZ2F0aW9uLWNsb3NlJykgfHxcbiAgICAgICAgICBlbGVtZW50Lmhhc0F0dHJpYnV0ZSgnc2JiLW5hdmlnYXRpb24tc2VjdGlvbi1jbG9zZScpKSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfaXNCZWxvd0xhcmdlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9tZWRpYU1hdGNoZXJDb250cm9sbGVyLm1hdGNoZXMoU2JiTWVkaWFRdWVyeUJyZWFrcG9pbnRTbWFsbEFuZEJlbG93KSA/PyBmYWxzZTtcbiAgfVxuXG4gIC8vIENsb3NlcyB0aGUgbmF2aWdhdGlvbiBvbiBcIkVzY1wiIGtleSBwcmVzc2VkLlxuICBwcml2YXRlIF9vbktleWRvd25FdmVudChldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnN0YXRlID09PSAnb3BlbmVkJyAmJiBldmVudC5rZXkgPT09ICdFc2NhcGUnKSB7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfY2hlY2tBY3RpdmVBY3Rpb24oKTogdm9pZCB7XG4gICAgY29uc3QgZWxlbWVudCA9IHRoaXMucXVlcnlTZWxlY3RvcjxTYmJOYXZpZ2F0aW9uQnV0dG9uRWxlbWVudCB8IFNiYk5hdmlnYXRpb25MaW5rRWxlbWVudD4oXG4gICAgICAnOmlzKHNiYi1uYXZpZ2F0aW9uLWJ1dHRvbiwgc2JiLW5hdmlnYXRpb24tbGluaykuc2JiLWFjdGl2ZScsXG4gICAgKTtcbiAgICDJtXN0YXRlQ29udHJvbGxlcihlbGVtZW50KT8udG9nZ2xlKCdhY3Rpb24tYWN0aXZlJywgdHJ1ZSk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICB0aGlzLnNsb3QgfHw9ICduYXZpZ2F0aW9uLXNlY3Rpb24nO1xuICAgIGlmICh0aGlzLmhhc1VwZGF0ZWQpIHtcbiAgICAgIHRoaXMuX2NvbmZpZ3VyZVRyaWdnZXIoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgZGlzY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICB0aGlzLl90cmlnZ2VyRWxlbWVudCA9IG51bGw7XG4gICAgdGhpcy5fdHJpZ2dlckFib3J0Q29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICB0aGlzLl93aW5kb3dFdmVudHNDb250cm9sbGVyPy5hYm9ydCgpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIHJlcXVlc3RVcGRhdGUoXG4gICAgbmFtZT86IFByb3BlcnR5S2V5LFxuICAgIG9sZFZhbHVlPzogdW5rbm93bixcbiAgICBvcHRpb25zPzogUHJvcGVydHlEZWNsYXJhdGlvbixcbiAgKTogdm9pZCB7XG4gICAgc3VwZXIucmVxdWVzdFVwZGF0ZShuYW1lLCBvbGRWYWx1ZSwgb3B0aW9ucyk7XG5cbiAgICBpZiAoIWlzU2VydmVyICYmICghbmFtZSB8fCBuYW1lID09PSAndHJpZ2dlcicpICYmIHRoaXMuaGFzVXBkYXRlZCkge1xuICAgICAgdGhpcy5fY29uZmlndXJlVHJpZ2dlcigpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBmaXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIuZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzKTtcbiAgICB0aGlzLl9jb25maWd1cmVUcmlnZ2VyKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItbmF2aWdhdGlvbi1zZWN0aW9uX19jb250YWluZXJcIj5cbiAgICAgICAgPG5hdlxuICAgICAgICAgIEBhbmltYXRpb25lbmQ9JHt0aGlzLl9vbkFuaW1hdGlvbkVuZH1cbiAgICAgICAgICBjbGFzcz1cInNiYi1uYXZpZ2F0aW9uLXNlY3Rpb25cIlxuICAgICAgICAgIGFyaWEtbGFiZWxsZWRieT0keyF0aGlzLmFjY2Vzc2liaWxpdHlMYWJlbCA/ICd0aXRsZScgOiBub3RoaW5nfVxuICAgICAgICAgIGFyaWEtbGFiZWw9JHt0aGlzLmFjY2Vzc2liaWxpdHlMYWJlbCA/IHRoaXMuYWNjZXNzaWJpbGl0eUxhYmVsIDogbm90aGluZ31cbiAgICAgICAgPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYmItbmF2aWdhdGlvbi1zZWN0aW9uX193cmFwcGVyIHNiYi1zY3JvbGxiYXItbmVnYXRpdmVcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYmItbmF2aWdhdGlvbi1zZWN0aW9uX19jb250ZW50XCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYmItbmF2aWdhdGlvbi1zZWN0aW9uX19oZWFkZXJcIj5cbiAgICAgICAgICAgICAgICA8IS0tIEJhY2sgYnV0dG9uIC0tPlxuICAgICAgICAgICAgICAgIDxzYmItdHJhbnNwYXJlbnQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICBpZD1cInNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24tYmFjay1idXR0b25cIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzYmItbmF2aWdhdGlvbi1zZWN0aW9uX19iYWNrXCJcbiAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9JHt0aGlzLmFjY2Vzc2liaWxpdHlCYWNrTGFiZWwgfHwgaTE4bkdvQmFja1t0aGlzLl9sYW5ndWFnZS5jdXJyZW50XX1cbiAgICAgICAgICAgICAgICAgIG5lZ2F0aXZlXG4gICAgICAgICAgICAgICAgICBzaXplPVwibVwiXG4gICAgICAgICAgICAgICAgICBpY29uLW5hbWU9XCJjaGV2cm9uLXNtYWxsLWxlZnQtc21hbGxcIlxuICAgICAgICAgICAgICAgICAgc2JiLW5hdmlnYXRpb24tc2VjdGlvbi1jbG9zZVxuICAgICAgICAgICAgICAgID48L3NiYi10cmFuc3BhcmVudC1idXR0b24+XG5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1uYXZpZ2F0aW9uLXNlY3Rpb25fX3RpdGxlXCIgaWQ9XCJ0aXRsZVwiPlxuICAgICAgICAgICAgICAgICAgPHNsb3QgbmFtZT1cInRpdGxlXCI+JHt0aGlzLnRpdGxlQ29udGVudH08L3Nsb3Q+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPHNsb3Q+PC9zbG90PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmF2PlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLW5hdmlnYXRpb24tc2VjdGlvbic6IFNiYk5hdmlnYXRpb25TZWN0aW9uRWxlbWVudDtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztJQzZDYSxxQ0FBMkI7bUJBQVMsd0JBQXdCLHVCQUF1Qjs7Ozs7Ozs7Ozs7OztjQUFuRixvQ0FBb0MsWUFBZ0Q7OzsrQkFROUYsVUFBUyxHQUNU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
343
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1zZWN0aW9uLmNvbXBvbmVudC0zNEdFSVBhTi5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLXNlY3Rpb24vbmF2aWdhdGlvbi1zZWN0aW9uLnNjc3M/aW5saW5lIiwiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL25hdmlnYXRpb24vbmF2aWdhdGlvbi1zZWN0aW9uL25hdmlnYXRpb24tc2VjdGlvbi5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiQHVzZSAnLi4vLi4vY29yZS9zdHlsZXMnIGFzIHNiYjtcblxuOmhvc3Qge1xuICAtLXNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24tYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoXG4gICAgLS1zYmItZGlzYWJsZS1hbmltYXRpb24tZHVyYXRpb24sXG4gICAgdmFyKC0tc2JiLWFuaW1hdGlvbi1kdXJhdGlvbi0zeClcbiAgKTtcbiAgLS1zYmItZm9jdXMtb3V0bGluZS1jb2xvcjogdmFyKC0tc2JiLWZvY3VzLW91dGxpbmUtY29sb3ItZGFyayk7XG5cbiAgLy8gV2UgaGF2ZSB0byBwbGFjZSB0aGUgc3R5bGVzIG9uIHRoZSBob3N0IGFzIGl0IGhhcyB0byBiZSBhbGlnbmVkIG9uIHRoZSBncmlkIG9mIHRoZSBuYXZpZ2F0aW9uXG4gIGRpc3BsYXk6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24tZGlzcGxheSwgbm9uZSk7XG4gIHBvc2l0aW9uOiB2YXIoLS1zYmItbmF2aWdhdGlvbi1zZWN0aW9uLXBvc2l0aW9uKTtcbiAgZ3JpZC1jb2x1bW46IHZhcigtLXNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24tY29sdW1uKTtcbiAgaW5zZXQtaW5saW5lLXN0YXJ0OiAwO1xuICBpbnNldC1ibG9jay1zdGFydDogMDtcbiAgd2lkdGg6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24td2lkdGgpO1xuICBoZWlnaHQ6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24taGVpZ2h0KTtcbiAgei1pbmRleDogdmFyKC0tc2JiLW5hdmlnYXRpb24tei1pbmRleCwgdmFyKC0tc2JiLW92ZXJsYXktZGVmYXVsdC16LWluZGV4KSk7XG5cbiAgQGluY2x1ZGUgc2JiLm1xKCRmcm9tOiBsYXJnZSkge1xuICAgIC0tc2JiLW5hdmlnYXRpb24tc2VjdGlvbi1hbmltYXRpb24tZHVyYXRpb246IHZhcihcbiAgICAgIC0tc2JiLWRpc2FibGUtYW5pbWF0aW9uLWR1cmF0aW9uLFxuICAgICAgdmFyKC0tc2JiLWFuaW1hdGlvbi1kdXJhdGlvbi00eClcbiAgICApO1xuICAgIC0tc2JiLW5hdmlnYXRpb24tc2VjdGlvbi13aWR0aDogY2FsYyhcbiAgICAgIDEwMCUgKyB2YXIoLS1zYmItbGF5b3V0LWJhc2Utb2Zmc2V0LXJlc3BvbnNpdmUpICsgdmFyKC0tc2JiLWdyaWQtYmFzZS1ndXR0ZXItcmVzcG9uc2l2ZSlcbiAgICApO1xuXG4gICAgdHJhbnNsYXRlOiBjYWxjKHZhcigtLXNiYi1ncmlkLWJhc2UtZ3V0dGVyLXJlc3BvbnNpdmUpICogLTEpIDA7XG4gIH1cbn1cblxuOmhvc3QoOnN0YXRlKHN0YXRlLW9wZW5lZCkpIHtcbiAgLS1zYmItbmF2aWdhdGlvbi1zZWN0aW9uLXBvaW50ZXItZXZlbnRzOiBhbGw7XG59XG5cbjpob3N0KDpzdGF0ZShzdGF0ZS1vcGVuaW5nKSkge1xuICAtLXNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24tcG9zaXRpb246IGFic29sdXRlO1xufVxuXG46aG9zdCg6aXMoOnN0YXRlKHN0YXRlLW9wZW5pbmcpLCA6c3RhdGUoc3RhdGUtY2xvc2luZykpKSB7XG4gIC0tc2JiLW5hdmlnYXRpb24tc2VjdGlvbi1wb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuOmhvc3QoOmlzKDpzdGF0ZShzdGF0ZS1vcGVuaW5nKSwgOnN0YXRlKHN0YXRlLW9wZW5lZCksIDpzdGF0ZShzdGF0ZS1jbG9zaW5nKSkpIHtcbiAgLS1zYmItbmF2aWdhdGlvbi1zZWN0aW9uLWRpc3BsYXk6IGJsb2NrO1xufVxuXG46OnNsb3R0ZWQoKikge1xuICBwYWRkaW5nLWlubGluZS1zdGFydDogdmFyKC0tc2JiLW5hdmlnYXRpb24tc2VjdGlvbi1jb250ZW50LXBhZGRpbmctaW5saW5lLXN0YXJ0KTtcbn1cblxuLy8gQWx3YXlzIHBsYWNlIHRoZSBzYmItYnV0dG9uIG9uIGEgbmV3IHJvd1xuOjpzbG90dGVkKDpzdGF0ZShzYmItYnV0dG9uKSkge1xuICBncmlkLWNvbHVtbi1zdGFydDogMTtcbn1cblxuLnNiYi1uYXZpZ2F0aW9uLXNlY3Rpb25fX2NvbnRhaW5lciB7XG4gIHBvaW50ZXItZXZlbnRzOiB2YXIoLS1zYmItbmF2aWdhdGlvbi1zZWN0aW9uLXBvaW50ZXItZXZlbnRzKTtcbiAgaGVpZ2h0OiB2YXIoLS1zYmItbmF2aWdhdGlvbi1zZWN0aW9uLWhlaWdodCk7XG59XG5cbi5zYmItbmF2aWdhdGlvbi1zZWN0aW9uIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICBtYXJnaW46IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGNvbG9yOiB2YXIoLS1zYmItbmF2aWdhdGlvbi1jb2xvciwgdmFyKC0tc2JiLWNvbG9yLTEtbmVnYXRpdmUpKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHBhZGRpbmc6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgOmhvc3QoOmlzKDpzdGF0ZShzdGF0ZS1vcGVuaW5nKSwgOnN0YXRlKHN0YXRlLW9wZW5lZCksIDpzdGF0ZShzdGF0ZS1jbG9zaW5nKSkpICYge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgYW5pbWF0aW9uOiB7XG4gICAgICBuYW1lOiBvcGVuO1xuICAgICAgZHVyYXRpb246IHZhcigtLXNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24tYW5pbWF0aW9uLWR1cmF0aW9uKTtcbiAgICAgIHRpbWluZy1mdW5jdGlvbjogdmFyKC0tc2JiLW5hdmlnYXRpb24tc2VjdGlvbi1hbmltYXRpb24tZWFzaW5nKTtcbiAgICB9XG4gIH1cblxuICA6aG9zdCg6c3RhdGUoc3RhdGUtY2xvc2luZykpICYge1xuICAgIGFuaW1hdGlvbi1uYW1lOiBjbG9zZTtcbiAgfVxuXG4gIEBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSB7XG4gICAgb3V0bGluZTogdmFyKC0tc2JiLWJvcmRlci13aWR0aC0xeCkgc29saWQgQ2FudmFzVGV4dDtcbiAgfVxufVxuXG4uc2JiLW5hdmlnYXRpb24tc2VjdGlvbl9fd3JhcHBlciB7XG4gIGhlaWdodDogMTAwJTtcbiAgcGFkZGluZy1ibG9jazogdmFyKC0tc2JiLW5hdmlnYXRpb24tc2VjdGlvbi1wYWRkaW5nLWJsb2NrKTtcbiAgb3V0bGluZTogbm9uZTtcbiAgb3ZlcmZsb3cteTogYXV0bztcblxuICA6aG9zdCg6aXMoOnN0YXRlKHN0YXRlLW9wZW5pbmcpLCA6c3RhdGUoc3RhdGUtY2xvc2luZykpKSAmIHtcbiAgICAtLXNiYi1zY3JvbGxiYXItY29sb3I6IHRyYW5zcGFyZW50O1xuXG4gICAgc2Nyb2xsYmFyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgfVxufVxuXG4uc2JiLW5hdmlnYXRpb24tc2VjdGlvbl9faGVhZGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTF4KTtcbiAgbWFyZ2luLWJsb2NrLXN0YXJ0OiB2YXIoLS1zYmItc3BhY2luZy1yZXNwb25zaXZlLXh4bCk7XG4gIHBhZGRpbmctaW5saW5lLXN0YXJ0OiB2YXIoLS1zYmItbmF2aWdhdGlvbi1zZWN0aW9uLWNvbnRlbnQtcGFkZGluZy1pbmxpbmUtc3RhcnQpO1xuXG4gIEBpbmNsdWRlIHNiYi5tcSgkZnJvbTogbGFyZ2UpIHtcbiAgICBtYXJnaW4tYmxvY2stc3RhcnQ6IDA7XG4gICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDA7XG4gIH1cblxuICBAaW5jbHVkZSBzYmIubXEoJGZyb206IHVsdHJhKSB7XG4gICAgZ3JpZC1jb2x1bW46IDEgLyA0O1xuICB9XG59XG5cbi5zYmItbmF2aWdhdGlvbi1zZWN0aW9uX19iYWNrIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0cmFuc2xhdGU6IGNhbGMoKDEwMCUgKyB2YXIoLS1zYmItc3BhY2luZy1maXhlZC0xeCkpICogLTEpIDA7XG5cbiAgQGluY2x1ZGUgc2JiLm1xKCRmcm9tOiBsYXJnZSkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLnNiYi1uYXZpZ2F0aW9uLXNlY3Rpb25fX3RpdGxlIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc2l6ZTogdmFyKC0tc2JiLW5hdmlnYXRpb24tc2VjdGlvbi1mb250LXNpemUpO1xuICBsZXR0ZXItc3BhY2luZzogdmFyKC0tc2JiLXR5cG8tbGV0dGVyLXNwYWNpbmctaGVhZGluZyk7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1zYmItdHlwby1saW5lLWhlaWdodC1oZWFkaW5nKTtcbn1cblxuLnNiYi1uYXZpZ2F0aW9uLXNlY3Rpb25fX2NvbnRlbnQge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgZ2FwOiB2YXIoLS1zYmItc3BhY2luZy1yZXNwb25zaXZlLWwpIHZhcigtLXNiYi1ncmlkLWJhc2UtZ3V0dGVyLXJlc3BvbnNpdmUpO1xuICBwYWRkaW5nLWlubGluZTogdmFyKC0tc2JiLW5hdmlnYXRpb24tc2VjdGlvbi1wYWRkaW5nLWlubGluZSk7XG5cbiAgQGluY2x1ZGUgc2JiLm1xKCRmcm9tOiBsYXJnZSkge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNsYXRlOiAwIHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTN4KTtcbiAgICB0cmFuc2l0aW9uOiB7XG4gICAgICBkdXJhdGlvbjogdmFyKC0tc2JiLW5hdmlnYXRpb24tc2VjdGlvbi1hbmltYXRpb24tZHVyYXRpb24pO1xuICAgICAgZGVsYXk6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24tYW5pbWF0aW9uLWR1cmF0aW9uKTtcbiAgICAgIHRpbWluZy1mdW5jdGlvbjogdmFyKC0tc2JiLW5hdmlnYXRpb24tc2VjdGlvbi1hbmltYXRpb24tZWFzaW5nKTtcbiAgICAgIHByb3BlcnR5OiBvcGFjaXR5LCB0cmFuc2xhdGU7XG4gICAgfVxuXG4gICAgOmhvc3QoOnN0YXRlKHN0YXRlLW9wZW5lZCkpICYge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIHRyYW5zbGF0ZTogMCAwO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIHNiYi5tcSgkZnJvbTogdWx0cmEpIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCAxZnIpO1xuICB9XG5cbiAgOmhvc3QoOnN0YXRlKHN0YXRlLWNsb3NpbmcpKSAmIHtcbiAgICB0cmFuc2l0aW9uLWRlbGF5OiAwcztcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIG9wZW4ge1xuICBmcm9tIHtcbiAgICB0cmFuc2xhdGU6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24tdHJhbnNsYXRlKSAwO1xuICB9XG5cbiAgdG8ge1xuICAgIHRyYW5zbGF0ZTogMCAwO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgY2xvc2Uge1xuICBmcm9tIHtcbiAgICB0cmFuc2xhdGU6IDAgMDtcbiAgfVxuXG4gIHRvIHtcbiAgICB0cmFuc2xhdGU6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24tdHJhbnNsYXRlKSAwO1xuICB9XG59XG4iLCJpbXBvcnQge1xuICB0eXBlIENTU1Jlc3VsdEdyb3VwLFxuICBodG1sLFxuICBpc1NlcnZlcixcbiAgbm90aGluZyxcbiAgdHlwZSBQcm9wZXJ0eURlY2xhcmF0aW9uLFxuICB0eXBlIFByb3BlcnR5VmFsdWVzLFxuICB0eXBlIFRlbXBsYXRlUmVzdWx0LFxuICB1bnNhZmVDU1MsXG59IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHsgU2JiVHJhbnNwYXJlbnRCdXR0b25FbGVtZW50IH0gZnJvbSAnLi4vLi4vYnV0dG9uLnB1cmUudHMnO1xuaW1wb3J0IHtcbiAgZm9yY2VUeXBlLFxuICBpMThuR29CYWNrLFxuICBpZFJlZmVyZW5jZSxcbiAgSVNfRk9DVVNBQkxFX1FVRVJZLFxuICBpc1plcm9BbmltYXRpb25EdXJhdGlvbixcbiAgb21pdEVtcHR5Q29udmVydGVyLFxuICByZW1vdmVBcmlhT3ZlcmxheVRyaWdnZXJQcm9wZXJ0aWVzLFxuICB0eXBlIFNiYkVsZW1lbnRUeXBlLFxuICBTYmJGb2N1c1RyYXBDb250cm9sbGVyLFxuICBzYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3IsXG4gIFNiYkxhbmd1YWdlQ29udHJvbGxlcixcbiAgU2JiTWVkaWFNYXRjaGVyQ29udHJvbGxlcixcbiAgU2JiTWVkaWFRdWVyeUJyZWFrcG9pbnRTbWFsbEFuZEJlbG93LFxuICBTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudCxcbiAgdHlwZSBTYmJPcGVuZWRDbG9zZWRTdGF0ZSxcbiAgU2JiVXBkYXRlU2NoZWR1bGVyTWl4aW4sXG4gIHNjcm9sbGJhclN0eWxlcyxcbiAgc2V0QXJpYU92ZXJsYXlUcmlnZ2VyUHJvcGVydGllcyxcbiAgybVzdGF0ZUNvbnRyb2xsZXIsXG59IGZyb20gJy4uLy4uL2NvcmUudHMnO1xuaW1wb3J0IHR5cGUgeyBTYmJOYXZpZ2F0aW9uRWxlbWVudCB9IGZyb20gJy4uL25hdmlnYXRpb24vbmF2aWdhdGlvbi5jb21wb25lbnQudHMnO1xuaW1wb3J0IHR5cGUgeyBTYmJOYXZpZ2F0aW9uQnV0dG9uRWxlbWVudCB9IGZyb20gJy4uL25hdmlnYXRpb24tYnV0dG9uL25hdmlnYXRpb24tYnV0dG9uLmNvbXBvbmVudC50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYk5hdmlnYXRpb25MaW5rRWxlbWVudCB9IGZyb20gJy4uL25hdmlnYXRpb24tbGluay9uYXZpZ2F0aW9uLWxpbmsuY29tcG9uZW50LnRzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vbmF2aWdhdGlvbi1zZWN0aW9uLnNjc3M/aW5saW5lJztcblxuLyoqXG4gKiBJdCBjYW4gYmUgdXNlZCBhcyBhIGNvbnRhaW5lciBmb3IgYHNiYi1uYXZpZ2F0aW9uLWxpc3RgIHdpdGhpbiBhIGBzYmItbmF2aWdhdGlvbmAuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgY29udGVudCBpbnRvIHRoZSBgc2JiLW5hdmlnYXRpb24tc2VjdGlvbmAuXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJOYXZpZ2F0aW9uU2VjdGlvbkVsZW1lbnQgZXh0ZW5kcyBTYmJVcGRhdGVTY2hlZHVsZXJNaXhpbihTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudCkge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IGVsZW1lbnROYW1lOiBzdHJpbmcgPSAnc2JiLW5hdmlnYXRpb24tc2VjdGlvbic7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgZWxlbWVudERlcGVuZGVuY2llczogU2JiRWxlbWVudFR5cGVbXSA9IFtTYmJUcmFuc3BhcmVudEJ1dHRvbkVsZW1lbnRdO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbc2Nyb2xsYmFyU3R5bGVzLCB1bnNhZmVDU1Moc3R5bGUpXTtcblxuICAvKipcbiAgICogVGhlIGxhYmVsIHRvIGJlIHNob3duIGJlZm9yZSB0aGUgYWN0aW9uIGxpc3QuXG4gICAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAndGl0bGUtY29udGVudCcsIHJlZmxlY3Q6IHRydWUsIGNvbnZlcnRlcjogb21pdEVtcHR5Q29udmVydGVyIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciB0aXRsZUNvbnRlbnQ6IHN0cmluZyA9ICcnO1xuXG4gIC8qKlxuICAgKiBUaGUgZWxlbWVudCB0aGF0IHdpbGwgdHJpZ2dlciB0aGUgbmF2aWdhdGlvbiBzZWN0aW9uLlxuICAgKlxuICAgKiBGb3IgYXR0cmlidXRlIHVzYWdlLCBwcm92aWRlIGFuIGlkIHJlZmVyZW5jZS5cbiAgICovXG4gIEBpZFJlZmVyZW5jZSgpXG4gIEBwcm9wZXJ0eSgpXG4gIHB1YmxpYyBhY2Nlc3NvciB0cmlnZ2VyOiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBUaGlzIHdpbGwgYmUgZm9yd2FyZGVkIGFzIGFyaWEtbGFiZWwgdG8gdGhlIG5hdiBlbGVtZW50IGFuZCBpcyByZWFkIGFzIGEgdGl0bGUgb2YgdGhlIG5hdmlnYXRpb24tc2VjdGlvbi5cbiAgICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdhY2Nlc3NpYmlsaXR5LWxhYmVsJyB9KVxuICBwdWJsaWMgYWNjZXNzb3IgYWNjZXNzaWJpbGl0eUxhYmVsOiBzdHJpbmcgPSAnJztcblxuICAvKipcbiAgICogVGhpcyB3aWxsIGJlIGZvcndhcmRlZCBhcyBhcmlhLWxhYmVsIHRvIHRoZSBiYWNrIGJ1dHRvbiBlbGVtZW50LlxuICAgKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2FjY2Vzc2liaWxpdHktYmFjay1sYWJlbCcgfSlcbiAgcHVibGljIGFjY2Vzc29yIGFjY2Vzc2liaWxpdHlCYWNrTGFiZWw6IHN0cmluZyA9ICcnO1xuXG4gIC8qKiBUaGUgc3RhdGUgb2YgdGhlIGNvbXBvbmVudC4gKi9cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHNldCBzdGF0ZShzdGF0ZTogU2JiT3BlbmVkQ2xvc2VkU3RhdGUpIHtcbiAgICBzdXBlci5zdGF0ZSA9IHN0YXRlO1xuICAgIHRoaXMuaW50ZXJuYWxzLmFyaWFIaWRkZW4gPSB0aGlzLnN0YXRlICE9PSAnb3BlbmVkJyA/ICd0cnVlJyA6IG51bGw7XG4gIH1cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGdldCBzdGF0ZSgpOiBTYmJPcGVuZWRDbG9zZWRTdGF0ZSB7XG4gICAgcmV0dXJuIHN1cGVyLnN0YXRlO1xuICB9XG5cbiAgcHJpdmF0ZSBfZmlyc3RMZXZlbE5hdmlnYXRpb24/OiBTYmJOYXZpZ2F0aW9uRWxlbWVudCB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF90cmlnZ2VyRWxlbWVudDogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBfdHJpZ2dlckFib3J0Q29udHJvbGxlciE6IEFib3J0Q29udHJvbGxlcjtcbiAgcHJpdmF0ZSBfd2luZG93RXZlbnRzQ29udHJvbGxlciE6IEFib3J0Q29udHJvbGxlcjtcbiAgcHJpdmF0ZSBfbGFuZ3VhZ2UgPSBuZXcgU2JiTGFuZ3VhZ2VDb250cm9sbGVyKHRoaXMpO1xuICBwcml2YXRlIF9mb2N1c1RyYXBDb250cm9sbGVyID0gbmV3IFNiYkZvY3VzVHJhcENvbnRyb2xsZXIodGhpcyk7XG4gIHByaXZhdGUgX2xhc3RLZXlkb3duRXZlbnQ6IEtleWJvYXJkRXZlbnQgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBfbWVkaWFNYXRjaGVyQ29udHJvbGxlciA9IG5ldyBTYmJNZWRpYU1hdGNoZXJDb250cm9sbGVyKHRoaXMsIHtcbiAgICBbU2JiTWVkaWFRdWVyeUJyZWFrcG9pbnRTbWFsbEFuZEJlbG93XTogKG1hdGNoZXMpID0+IHtcbiAgICAgIGlmICh0aGlzLnN0YXRlICE9PSAnY2xvc2VkJykge1xuICAgICAgICB0aGlzLl9zZXROYXZpZ2F0aW9uSW5lcnQobWF0Y2hlcyk7XG4gICAgICB9XG4gICAgfSxcbiAgfSk7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG5cbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/Ligna2V5ZG93bicsIChlKSA9PiB7XG4gICAgICB0aGlzLl9sYXN0S2V5ZG93bkV2ZW50ID0gZTtcbiAgICB9KTtcblxuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdmb2N1c291dCcsIChlKSA9PiB7XG4gICAgICBpZiAoXG4gICAgICAgIGUucmVsYXRlZFRhcmdldCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50ICYmXG4gICAgICAgICF0aGlzLmNvbnRhaW5zKGUucmVsYXRlZFRhcmdldCkgJiZcbiAgICAgICAgc2JiSW5wdXRNb2RhbGl0eURldGVjdG9yLm1vc3RSZWNlbnRNb2RhbGl0eSA9PT0gJ2tleWJvYXJkJyAmJlxuICAgICAgICB0aGlzLl9sYXN0S2V5ZG93bkV2ZW50Py5rZXkgPT09ICdUYWInICYmXG4gICAgICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50XG4gICAgICApIHtcbiAgICAgICAgY29uc3QgbmF2aWdhdGlvbkVsZW1lbnQgPSB0aGlzLmNsb3Nlc3Q8U2JiTmF2aWdhdGlvbkVsZW1lbnQ+KCdzYmItbmF2aWdhdGlvbicpO1xuICAgICAgICBjb25zdCBmb2N1c2FibGVFbGVtZW50cyA9IEFycmF5LmZyb20oXG4gICAgICAgICAgbmF2aWdhdGlvbkVsZW1lbnQ/LnF1ZXJ5U2VsZWN0b3JBbGw8SFRNTEVsZW1lbnQ+KElTX0ZPQ1VTQUJMRV9RVUVSWSkgPz8gW10sXG4gICAgICAgICkuZmlsdGVyKChlKSA9PiAhdGhpcy5jb250YWlucyhlKSk7XG5cbiAgICAgICAgaWYgKHRoaXMuX2xhc3RLZXlkb3duRXZlbnQuc2hpZnRLZXkgfHwgIWZvY3VzYWJsZUVsZW1lbnRzLmxlbmd0aCkge1xuICAgICAgICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50Py5mb2N1cygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IHRyaWdnZXJJbmRleCA9IGZvY3VzYWJsZUVsZW1lbnRzLmluZGV4T2YodGhpcy5fdHJpZ2dlckVsZW1lbnQpO1xuICAgICAgICAgIChmb2N1c2FibGVFbGVtZW50c1t0cmlnZ2VySW5kZXggKyAxXSA/PyBuYXZpZ2F0aW9uRWxlbWVudCEuY2xvc2VCdXR0b24pPy5mb2N1cygpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogT3BlbnMgdGhlIG5hdmlnYXRpb24gc2VjdGlvbiBvbiB0cmlnZ2VyIGNsaWNrLlxuICAgKi9cbiAgcHVibGljIG9wZW4oKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3RhdGUgIT09ICdjbG9zZWQnIHx8ICF0aGlzLmhhc1VwZGF0ZWQgfHwgIXRoaXMuZGlzcGF0Y2hCZWZvcmVPcGVuRXZlbnQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9pc05hdmlnYXRpb25CdXR0b24odGhpcy5fdHJpZ2dlckVsZW1lbnQpKSB7XG4gICAgICB0aGlzLl90cmlnZ2VyRWxlbWVudD8ubWFya2VyPy5zZWxlY3QodGhpcy5fdHJpZ2dlckVsZW1lbnQpO1xuICAgIH1cblxuICAgIHRoaXMuX2Nsb3NlUHJldmlvdXNOYXZpZ2F0aW9uU2VjdGlvbigpO1xuICAgIHRoaXMuc3RhdGUgPSAnb3BlbmluZyc7XG4gICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ8m1bmF2aWdhdGlvbnNlY3Rpb25vcGVuaW5nJykpO1xuICAgIHRoaXMuc3RhcnRVcGRhdGUoKTtcbiAgICB0aGlzLmluZXJ0ID0gdHJ1ZTtcbiAgICBpZiAodGhpcy5fdHJpZ2dlckVsZW1lbnQpIHtcbiAgICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50LmFyaWFFeHBhbmRlZCA9ICd0cnVlJztcbiAgICB9XG5cbiAgICAvLyBJZiB0aGUgYW5pbWF0aW9uIGR1cmF0aW9uIGlzIHplcm8sIHRoZSBhbmltYXRpb25lbmQgZXZlbnQgaXMgbm90IGFsd2F5cyBmaXJlZCByZWxpYWJseS5cbiAgICAvLyBJbiB0aGlzIGNhc2Ugd2UgZGlyZWN0bHkgc2V0IHRoZSBgb3BlbmVkYCBzdGF0ZS5cbiAgICBpZiAodGhpcy5faXNaZXJvQW5pbWF0aW9uRHVyYXRpb24oKSkge1xuICAgICAgdGhpcy5faGFuZGxlT3BlbmluZygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2lzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc1plcm9BbmltYXRpb25EdXJhdGlvbih0aGlzLCAnLS1zYmItbmF2aWdhdGlvbi1zZWN0aW9uLWFuaW1hdGlvbi1kdXJhdGlvbicpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlT3BlbmluZygpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlID0gJ29wZW5lZCc7XG4gICAgdGhpcy5pbmVydCA9IGZhbHNlO1xuICAgIHRoaXMuX2F0dGFjaFdpbmRvd0V2ZW50cygpO1xuICAgIHRoaXMuX3NldE5hdmlnYXRpb25JbmVydCgpO1xuICAgIHRoaXMuX2ZvY3VzVHJhcENvbnRyb2xsZXIuZm9jdXNJbml0aWFsRWxlbWVudCgpO1xuICAgIHRoaXMuX2NoZWNrQWN0aXZlQWN0aW9uKCk7XG4gICAgdGhpcy5jb21wbGV0ZVVwZGF0ZSgpO1xuICAgIHRoaXMuZGlzcGF0Y2hPcGVuRXZlbnQoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZUNsb3NpbmcoKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZSA9ICdjbG9zZWQnO1xuICAgIHRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcignLnNiYi1uYXZpZ2F0aW9uLXNlY3Rpb25fX2NvbnRhaW5lcicpPy5zY3JvbGxUbygwLCAwKTtcbiAgICB0aGlzLl93aW5kb3dFdmVudHNDb250cm9sbGVyPy5hYm9ydCgpO1xuICAgIHRoaXMuX3Jlc2V0TGlzdHMoKTtcbiAgICB0aGlzLl9zZXROYXZpZ2F0aW9uSW5lcnQoKTtcbiAgICBpZiAodGhpcy5faXNCZWxvd0xhcmdlKCkgJiYgdGhpcy5fdHJpZ2dlckVsZW1lbnQpIHtcbiAgICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuICAgIHRoaXMuY29tcGxldGVVcGRhdGUoKTtcbiAgICB0aGlzLmRpc3BhdGNoQ2xvc2VFdmVudCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfY2xvc2VQcmV2aW91c05hdmlnYXRpb25TZWN0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuX2ZpcnN0TGV2ZWxOYXZpZ2F0aW9uPy5hY3RpdmVOYXZpZ2F0aW9uU2VjdGlvbj8uY2xvc2UoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbG9zZXMgdGhlIG5hdmlnYXRpb24gc2VjdGlvbi5cbiAgICovXG4gIHB1YmxpYyBjbG9zZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdGF0ZSAhPT0gJ29wZW5lZCcgfHwgIXRoaXMuZGlzcGF0Y2hCZWZvcmVDbG9zZUV2ZW50KCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvKiogQGludGVybmFsICovXG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnybVuYXZpZ2F0aW9uc2VjdGlvbmNsb3NpbmcnKSk7XG4gICAgdGhpcy5zdGF0ZSA9ICdjbG9zaW5nJztcbiAgICB0aGlzLnN0YXJ0VXBkYXRlKCk7XG4gICAgdGhpcy5pbmVydCA9IHRydWU7XG4gICAgaWYgKHRoaXMuX3RyaWdnZXJFbGVtZW50KSB7XG4gICAgICB0aGlzLl90cmlnZ2VyRWxlbWVudC5hcmlhRXhwYW5kZWQgPSAnZmFsc2UnO1xuICAgIH1cblxuICAgIC8vIElmIHRoZSBhbmltYXRpb24gZHVyYXRpb24gaXMgemVybywgdGhlIGFuaW1hdGlvbmVuZCBldmVudCBpcyBub3QgYWx3YXlzIGZpcmVkIHJlbGlhYmx5LlxuICAgIC8vIEluIHRoaXMgY2FzZSB3ZSBkaXJlY3RseSBzZXQgdGhlIGBjbG9zZWRgIHN0YXRlLlxuICAgIGlmICh0aGlzLl9pc1plcm9BbmltYXRpb25EdXJhdGlvbigpKSB7XG4gICAgICB0aGlzLl9oYW5kbGVDbG9zaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgLy8gQ2hlY2sgaWYgdGhlIHRyaWdnZXIgaXMgdmFsaWQgYW5kIGF0dGFjaCBjbGljayBldmVudCBsaXN0ZW5lcnMuXG4gIHByaXZhdGUgX2NvbmZpZ3VyZVRyaWdnZXIoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudHJpZ2dlciA9PT0gdGhpcy5fdHJpZ2dlckVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl90cmlnZ2VyQWJvcnRDb250cm9sbGVyPy5hYm9ydCgpO1xuICAgIHJlbW92ZUFyaWFPdmVybGF5VHJpZ2dlclByb3BlcnRpZXModGhpcy5fdHJpZ2dlckVsZW1lbnQpO1xuICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50ID0gdGhpcy50cmlnZ2VyO1xuXG4gICAgaWYgKCF0aGlzLl90cmlnZ2VyRWxlbWVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHNldEFyaWFPdmVybGF5VHJpZ2dlclByb3BlcnRpZXModGhpcywgdGhpcy5fdHJpZ2dlckVsZW1lbnQsICdtZW51JywgdGhpcy5zdGF0ZSk7XG4gICAgdGhpcy5fdHJpZ2dlckFib3J0Q29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgICBpZiAodGhpcy5faXNOYXZpZ2F0aW9uQnV0dG9uKHRoaXMuX3RyaWdnZXJFbGVtZW50KSkge1xuICAgICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQuY29ubmVjdGVkU2VjdGlvbiA9IHRoaXM7XG4gICAgfVxuICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4gdGhpcy5vcGVuKCksIHtcbiAgICAgIHNpZ25hbDogdGhpcy5fdHJpZ2dlckFib3J0Q29udHJvbGxlci5zaWduYWwsXG4gICAgfSk7XG4gICAgdGhpcy5fZmlyc3RMZXZlbE5hdmlnYXRpb24gPSB0aGlzLl90cmlnZ2VyRWxlbWVudD8uY2xvc2VzdD8uKCdzYmItbmF2aWdhdGlvbicpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaXNOYXZpZ2F0aW9uQnV0dG9uKHRyaWdnZXI6IEhUTUxFbGVtZW50IHwgbnVsbCk6IHRyaWdnZXIgaXMgU2JiTmF2aWdhdGlvbkJ1dHRvbkVsZW1lbnQge1xuICAgIHJldHVybiB0cmlnZ2VyPy5sb2NhbE5hbWUgPT09ICdzYmItbmF2aWdhdGlvbi1idXR0b24nO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2V0TmF2aWdhdGlvbkluZXJ0KGlzQmVsb3dMYXJnZTogYm9vbGVhbiA9IHRoaXMuX2lzQmVsb3dMYXJnZSgpKTogdm9pZCB7XG4gICAgY29uc3QgbmF2aWdhdGlvbkNvbnRlbnQgPSB0aGlzLl9maXJzdExldmVsTmF2aWdhdGlvbj8ubmF2aWdhdGlvbkNvbnRlbnQ7XG4gICAgaWYgKG5hdmlnYXRpb25Db250ZW50KSB7XG4gICAgICBuYXZpZ2F0aW9uQ29udGVudC5pbmVydCA9IGlzQmVsb3dMYXJnZSAmJiB0aGlzLnN0YXRlICE9PSAnY2xvc2VkJztcbiAgICB9XG4gIH1cblxuICAvLyBJbiByYXJlIGNhc2VzIGl0IGNhbiBiZSB0aGF0IHRoZSBhbmltYXRpb25FbmQgZXZlbnQgaXMgdHJpZ2dlcmVkIHR3aWNlLlxuICAvLyBUbyBhdm9pZCBlbnRlcmluZyBhIGNvcnJ1cHQgc3RhdGUsIGV4aXQgd2hlbiBzdGF0ZSBpcyBub3QgZXhwZWN0ZWQuXG4gIHByaXZhdGUgX29uQW5pbWF0aW9uRW5kKGV2ZW50OiBBbmltYXRpb25FdmVudCk6IHZvaWQge1xuICAgIGlmIChldmVudC5hbmltYXRpb25OYW1lID09PSAnb3BlbicgJiYgdGhpcy5zdGF0ZSA9PT0gJ29wZW5pbmcnKSB7XG4gICAgICB0aGlzLl9oYW5kbGVPcGVuaW5nKCk7XG4gICAgfSBlbHNlIGlmIChldmVudC5hbmltYXRpb25OYW1lID09PSAnY2xvc2UnICYmIHRoaXMuc3RhdGUgPT09ICdjbG9zaW5nJykge1xuICAgICAgdGhpcy5faGFuZGxlQ2xvc2luZygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3Jlc2V0TGlzdHMoKTogdm9pZCB7XG4gICAgQXJyYXkuZnJvbShcbiAgICAgIHRoaXMucXVlcnlTZWxlY3RvckFsbDxTYmJOYXZpZ2F0aW9uQnV0dG9uRWxlbWVudCB8IFNiYk5hdmlnYXRpb25MaW5rRWxlbWVudD4oXG4gICAgICAgICc6c3RhdGUoc2VjdGlvbi1hY3Rpb24pOnN0YXRlKGFjdGlvbi1hY3RpdmUpJyxcbiAgICAgICkgPz8gW10sXG4gICAgKS5mb3JFYWNoKChhY3Rpb24pID0+IMm1c3RhdGVDb250cm9sbGVyKGFjdGlvbikuZGVsZXRlKCdhY3Rpb24tYWN0aXZlJykpO1xuICB9XG5cbiAgcHJpdmF0ZSBfYXR0YWNoV2luZG93RXZlbnRzKCk6IHZvaWQge1xuICAgIHRoaXMuX3dpbmRvd0V2ZW50c0NvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHRoaXMuX29uS2V5ZG93bkV2ZW50KGV2ZW50KSwge1xuICAgICAgc2lnbmFsOiB0aGlzLl93aW5kb3dFdmVudHNDb250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcblxuICAgIC8vIENsb3NlIG5hdmlnYXRpb24gc2VjdGlvbiBvbiBhY3Rpb24gY2xpY2sgb3Igc2JiLW5hdmlnYXRpb24tc2VjdGlvbi1jbG9zZSBjbGlja1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMuX2hhbmRsZU5hdmlnYXRpb25TZWN0aW9uQ2xvc2UsIHtcbiAgICAgIHNpZ25hbDogdGhpcy5fd2luZG93RXZlbnRzQ29udHJvbGxlci5zaWduYWwsXG4gICAgfSk7XG4gIH1cblxuICAvLyBDaGVjayBpZiB0aGUgY2xpY2sgd2FzIHRyaWdnZXJlZCBvbiBhbiBlbGVtZW50IHRoYXQgc2hvdWxkIGNsb3NlIHRoZSBzZWN0aW9uLlxuICBwcml2YXRlIF9oYW5kbGVOYXZpZ2F0aW9uU2VjdGlvbkNsb3NlID0gKGV2ZW50OiBFdmVudCk6IHZvaWQgPT4ge1xuICAgIGlmIChcbiAgICAgIGV2ZW50XG4gICAgICAgIC5jb21wb3NlZFBhdGgoKVxuICAgICAgICAuc29tZShcbiAgICAgICAgICAoZWwsIGksIGEpID0+XG4gICAgICAgICAgICBlbCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50ICYmXG4gICAgICAgICAgICBpIDwgYS5pbmRleE9mKHRoaXMpICYmXG4gICAgICAgICAgICAoZWwubm9kZU5hbWUgPT09ICdBJyB8fFxuICAgICAgICAgICAgICAoIWVsLmhhc0F0dHJpYnV0ZSgnZGlzYWJsZWQnKSAmJlxuICAgICAgICAgICAgICAgIChlbC5oYXNBdHRyaWJ1dGUoJ3NiYi1uYXZpZ2F0aW9uLWNsb3NlJykgfHxcbiAgICAgICAgICAgICAgICAgIGVsLmhhc0F0dHJpYnV0ZSgnc2JiLW5hdmlnYXRpb24tc2VjdGlvbi1jbG9zZScpKSkpLFxuICAgICAgICApXG4gICAgKSB7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfVxuICB9O1xuXG4gIHByaXZhdGUgX2lzQmVsb3dMYXJnZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fbWVkaWFNYXRjaGVyQ29udHJvbGxlci5tYXRjaGVzKFNiYk1lZGlhUXVlcnlCcmVha3BvaW50U21hbGxBbmRCZWxvdykgPz8gZmFsc2U7XG4gIH1cblxuICAvLyBDbG9zZXMgdGhlIG5hdmlnYXRpb24gb24gXCJFc2NcIiBrZXkgcHJlc3NlZC5cbiAgcHJpdmF0ZSBfb25LZXlkb3duRXZlbnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdGF0ZSA9PT0gJ29wZW5lZCcgJiYgZXZlbnQua2V5ID09PSAnRXNjYXBlJykge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2NoZWNrQWN0aXZlQWN0aW9uKCk6IHZvaWQge1xuICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLnF1ZXJ5U2VsZWN0b3I8U2JiTmF2aWdhdGlvbkJ1dHRvbkVsZW1lbnQgfCBTYmJOYXZpZ2F0aW9uTGlua0VsZW1lbnQ+KFxuICAgICAgJzppcyhzYmItbmF2aWdhdGlvbi1idXR0b24sIHNiYi1uYXZpZ2F0aW9uLWxpbmspLnNiYi1hY3RpdmUnLFxuICAgICk7XG4gICAgybVzdGF0ZUNvbnRyb2xsZXIoZWxlbWVudCk/LnRvZ2dsZSgnYWN0aW9uLWFjdGl2ZScsIHRydWUpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5zbG90IHx8PSAnbmF2aWdhdGlvbi1zZWN0aW9uJztcbiAgICBpZiAodGhpcy5oYXNVcGRhdGVkKSB7XG4gICAgICB0aGlzLl9jb25maWd1cmVUcmlnZ2VyKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQgPSBudWxsO1xuICAgIHRoaXMuX3RyaWdnZXJBYm9ydENvbnRyb2xsZXI/LmFib3J0KCk7XG4gICAgdGhpcy5fd2luZG93RXZlbnRzQ29udHJvbGxlcj8uYWJvcnQoKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSByZXF1ZXN0VXBkYXRlKFxuICAgIG5hbWU/OiBQcm9wZXJ0eUtleSxcbiAgICBvbGRWYWx1ZT86IHVua25vd24sXG4gICAgb3B0aW9ucz86IFByb3BlcnR5RGVjbGFyYXRpb24sXG4gICk6IHZvaWQge1xuICAgIHN1cGVyLnJlcXVlc3RVcGRhdGUobmFtZSwgb2xkVmFsdWUsIG9wdGlvbnMpO1xuXG4gICAgaWYgKCFpc1NlcnZlciAmJiAoIW5hbWUgfHwgbmFtZSA9PT0gJ3RyaWdnZXInKSAmJiB0aGlzLmhhc1VwZGF0ZWQpIHtcbiAgICAgIHRoaXMuX2NvbmZpZ3VyZVRyaWdnZXIoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLmZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG4gICAgdGhpcy5fY29uZmlndXJlVHJpZ2dlcigpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwic2JiLW5hdmlnYXRpb24tc2VjdGlvbl9fY29udGFpbmVyXCI+XG4gICAgICAgIDxuYXZcbiAgICAgICAgICBAYW5pbWF0aW9uZW5kPSR7dGhpcy5fb25BbmltYXRpb25FbmR9XG4gICAgICAgICAgY2xhc3M9XCJzYmItbmF2aWdhdGlvbi1zZWN0aW9uXCJcbiAgICAgICAgICBhcmlhLWxhYmVsbGVkYnk9JHshdGhpcy5hY2Nlc3NpYmlsaXR5TGFiZWwgPyAndGl0bGUnIDogbm90aGluZ31cbiAgICAgICAgICBhcmlhLWxhYmVsPSR7dGhpcy5hY2Nlc3NpYmlsaXR5TGFiZWwgPyB0aGlzLmFjY2Vzc2liaWxpdHlMYWJlbCA6IG5vdGhpbmd9XG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2JiLW5hdmlnYXRpb24tc2VjdGlvbl9fd3JhcHBlciBzYmItc2Nyb2xsYmFyLW5lZ2F0aXZlXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2JiLW5hdmlnYXRpb24tc2VjdGlvbl9fY29udGVudFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2JiLW5hdmlnYXRpb24tc2VjdGlvbl9faGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgPCEtLSBCYWNrIGJ1dHRvbiAtLT5cbiAgICAgICAgICAgICAgICA8c2JiLXRyYW5zcGFyZW50LWJ1dHRvblxuICAgICAgICAgICAgICAgICAgaWQ9XCJzYmItbmF2aWdhdGlvbi1zZWN0aW9uLWJhY2stYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2JiLW5hdmlnYXRpb24tc2VjdGlvbl9fYmFja1wiXG4gICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPSR7dGhpcy5hY2Nlc3NpYmlsaXR5QmFja0xhYmVsIHx8IGkxOG5Hb0JhY2tbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF19XG4gICAgICAgICAgICAgICAgICBuZWdhdGl2ZVxuICAgICAgICAgICAgICAgICAgc2l6ZT1cIm1cIlxuICAgICAgICAgICAgICAgICAgaWNvbi1uYW1lPVwiY2hldnJvbi1zbWFsbC1sZWZ0LXNtYWxsXCJcbiAgICAgICAgICAgICAgICAgIHNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24tY2xvc2VcbiAgICAgICAgICAgICAgICA+PC9zYmItdHJhbnNwYXJlbnQtYnV0dG9uPlxuXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItbmF2aWdhdGlvbi1zZWN0aW9uX190aXRsZVwiIGlkPVwidGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgIDxzbG90IG5hbWU9XCJ0aXRsZVwiPiR7dGhpcy50aXRsZUNvbnRlbnR9PC9zbG90PlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxzbG90Pjwvc2xvdD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25hdj5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1uYXZpZ2F0aW9uLXNlY3Rpb24nOiBTYmJOYXZpZ2F0aW9uU2VjdGlvbkVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7SUM2Q2EscUNBQTJCO21CQUFTLHdCQUF3Qix1QkFBdUI7Ozs7Ozs7Ozs7Ozs7Y0FBbkYsb0NBQW9DLFlBQWdEOzs7K0JBUTlGLFVBQVMsR0FDVCxTQUFTO0lBQUUsV0FBVztJQUFpQixTQUFTO0lBQU0sV0FBVztHQUFrQixDQUFFLENBQUM7MEJBUXRGLFlBQVcsR0FDWCxTQUFRLENBQUU7cUNBTVYsVUFBUyxHQUNULFNBQVMsRUFBRSxXQUFXLHNCQUFxQixDQUFFLENBQUM7eUNBTTlDLFVBQVMsR0FDVCxTQUFTLEVBQUUsV0FBVywyQkFBMEIsQ0FBRSxDQUFDO0dBdEJwRCxhQUFBLE1BQUEsTUFBQSwwQkFBQTtJQUFBLE1BQUE7SUFBQSxNQUFBO0lBQUEsUUFBQTtJQUFBLFNBQUE7SUFBQSxRQUFBO0tBQUEsTUFBQSxRQUFBLGtCQUFBO0tBQUEsTUFBQSxRQUFBLElBQWdCO0tBQVksTUFBQSxLQUFBLFVBQUE7TUFBQSxJQUFaLGVBQVk7S0FBQTtJQUFBO0lBQUEsVUFBQTtHQUFBLEdBQUEsNEJBQUEsK0JBQUE7R0FTNUIsYUFBQSxNQUFBLE1BQUEscUJBQUE7SUFBQSxNQUFBO0lBQUEsTUFBQTtJQUFBLFFBQUE7SUFBQSxTQUFBO0lBQUEsUUFBQTtLQUFBLE1BQUEsUUFBQSxhQUFBO0tBQUEsTUFBQSxRQUFBLElBQWdCO0tBQU8sTUFBQSxLQUFBLFVBQUE7TUFBQSxJQUFQLFVBQU87S0FBQTtJQUFBO0lBQUEsVUFBQTtHQUFBLEdBQUEsdUJBQUEsMEJBQUE7R0FPdkIsYUFBQSxNQUFBLE1BQUEsZ0NBQUE7SUFBQSxNQUFBO0lBQUEsTUFBQTtJQUFBLFFBQUE7SUFBQSxTQUFBO0lBQUEsUUFBQTtLQUFBLE1BQUEsUUFBQSx3QkFBQTtLQUFBLE1BQUEsUUFBQSxJQUFnQjtLQUFrQixNQUFBLEtBQUEsVUFBQTtNQUFBLElBQWxCLHFCQUFrQjtLQUFBO0lBQUE7SUFBQSxVQUFBO0dBQUEsR0FBQSxrQ0FBQSxxQ0FBQTtHQU9sQyxhQUFBLE1BQUEsTUFBQSxvQ0FBQTtJQUFBLE1BQUE7SUFBQSxNQUFBO0lBQUEsUUFBQTtJQUFBLFNBQUE7SUFBQSxRQUFBO0tBQUEsTUFBQSxRQUFBLDRCQUFBO0tBQUEsTUFBQSxRQUFBLElBQWdCO0tBQXNCLE1BQUEsS0FBQSxVQUFBO01BQUEsSUFBdEIseUJBQXNCO0tBQUE7SUFBQTtJQUFBLFVBQUE7R0FBQSxHQUFBLHNDQUFBLHlDQUFBOzs7Ozs7Ozs7R0FoQ04sS0FBQSxjQUFzQjtFQUF5Qjs7R0FDeEQsS0FBQSxzQkFBd0MsQ0FBQywyQkFBMkI7RUFBRTs7R0FDdEUsS0FBQSxTQUF5QixDQUFDLGlCQUFpQixVQUFVLDBCQUFLLENBQUM7RUFBRTtFQU9wRjs7OztFQUFBLElBQWdCLGVBQVk7R0FBQSxPQUFBLEtBQUE7RUFBQTtFQUE1QixJQUFnQixhQUFZLE9BQUE7R0FBQSxLQUFBLGlDQUFBO0VBQUE7RUFTNUI7Ozs7OztFQUFBLElBQWdCLFVBQU87R0FBQSxPQUFBLEtBQUE7RUFBQTtFQUF2QixJQUFnQixRQUFPLE9BQUE7R0FBQSxLQUFBLDRCQUFBO0VBQUE7RUFPdkI7Ozs7RUFBQSxJQUFnQixxQkFBa0I7R0FBQSxPQUFBLEtBQUE7RUFBQTtFQUFsQyxJQUFnQixtQkFBa0IsT0FBQTtHQUFBLEtBQUEsdUNBQUE7RUFBQTtFQU9sQzs7OztFQUFBLElBQWdCLHlCQUFzQjtHQUFBLE9BQUEsS0FBQTtFQUFBO0VBQXRDLElBQWdCLHVCQUFzQixPQUFBO0dBQUEsS0FBQSwyQ0FBQTtFQUFBOztFQUd0QyxJQUF1QixNQUFNLE9BQTJCO0dBQ3RELE1BQU0sUUFBUTtHQUNkLEtBQUssVUFBVSxhQUFhLEtBQUssVUFBVSxXQUFXLFNBQVM7RUFDakU7RUFDQSxJQUF1QixRQUFLO0dBQzFCLE9BQU8sTUFBTTtFQUNmO0VBaUJBLGNBQUE7R0FDRSxNQUFLO0dBbERTLEtBQUEsaUNBQUEsa0JBQUEsTUFBQSw0QkFBdUIsRUFBRTtHQVN6QixLQUFBLDZCQUFBLGtCQUFBLE1BQUEsK0JBQUEsR0FBQSxrQkFBQSxNQUFBLHVCQUE4QixJQUFJO0dBT2xDLEtBQUEsd0NBQUEsa0JBQUEsTUFBQSwwQkFBQSxHQUFBLGtCQUFBLE1BQUEsa0NBQTZCLEVBQUU7R0FPL0IsS0FBQSw0Q0FBQSxrQkFBQSxNQUFBLHFDQUFBLEdBQUEsa0JBQUEsTUFBQSxzQ0FBaUMsRUFBRTtHQVczQyxLQUFBLHlCQUFxQixrQkFBQSxNQUFBLHlDQUFBLEdBQWlDO0dBQ3RELEtBQUEsa0JBQXNDO0dBR3RDLEtBQUEsWUFBWSxJQUFJLHNCQUFzQixJQUFJO0dBQzFDLEtBQUEsdUJBQXVCLElBQUksdUJBQXVCLElBQUk7R0FDdEQsS0FBQSxvQkFBMEM7R0FDMUMsS0FBQSwwQkFBMEIsSUFBSSwwQkFBMEIsTUFBTSxHQUNuRSx3Q0FBd0MsWUFBVztJQUNsRCxJQUFJLEtBQUssVUFBVSxVQUNqQixLQUFLLG9CQUFvQixPQUFPO0dBRXBDLEVBQUEsQ0FDRDtHQXdMTyxLQUFBLGlDQUFpQyxVQUFzQjtJQUM3RCxJQUNFLE1BQ0csYUFBWSxFQUNaLE1BQ0UsSUFBSSxHQUFHLE1BQ04sY0FBYyxlQUNkLElBQUksRUFBRSxRQUFRLElBQUksTUFDakIsR0FBRyxhQUFhLE9BQ2QsQ0FBQyxHQUFHLGFBQWEsVUFBVSxNQUN6QixHQUFHLGFBQWEsc0JBQXNCLEtBQ3JDLEdBQUcsYUFBYSw4QkFBOEIsR0FBSSxHQUc5RCxLQUFLLE1BQUs7R0FFZDtHQW5NRSxLQUFLLG1CQUFtQixZQUFZLE1BQUs7SUFDdkMsS0FBSyxvQkFBb0I7R0FDM0IsQ0FBQztHQUVELEtBQUssbUJBQW1CLGFBQWEsTUFBSztJQUN4QyxJQUNFLEVBQUUseUJBQXlCLGVBQzNCLENBQUMsS0FBSyxTQUFTLEVBQUUsYUFBYSxLQUM5Qix5QkFBeUIsdUJBQXVCLGNBQ2hELEtBQUssbUJBQW1CLFFBQVEsU0FDaEMsS0FBSyxpQkFDTDtLQUNBLE1BQU0sb0JBQW9CLEtBQUssUUFBOEIsZ0JBQWdCO0tBQzdFLE1BQU0sb0JBQW9CLE1BQU0sS0FDOUIsbUJBQW1CLGlCQUE4QixrQkFBa0IsS0FBSyxDQUFBLENBQUUsRUFDMUUsUUFBUSxNQUFNLENBQUMsS0FBSyxTQUFTLENBQUMsQ0FBQztLQUVqQyxJQUFJLEtBQUssa0JBQWtCLFlBQVksQ0FBQyxrQkFBa0IsUUFDeEQsS0FBSyxpQkFBaUIsTUFBSztVQUczQixDQUFDLGtCQURvQixrQkFBa0IsUUFBUSxLQUFLLGVBQ2pDLElBQWUsTUFBTSxrQkFBbUIsY0FBYyxNQUFLO0lBRWxGO0dBQ0YsQ0FBQztFQUNIOzs7O0VBS08sT0FBSTtHQUNULElBQUksS0FBSyxVQUFVLFlBQVksQ0FBQyxLQUFLLGNBQWMsQ0FBQyxLQUFLLHdCQUF1QixHQUM5RTtHQUdGLElBQUksS0FBSyxvQkFBb0IsS0FBSyxlQUFlLEdBQy9DLEtBQUssaUJBQWlCLFFBQVEsT0FBTyxLQUFLLGVBQWU7R0FHM0QsS0FBSyxnQ0FBK0I7R0FDcEMsS0FBSyxRQUFROztHQUViLEtBQUssY0FBYyxJQUFJLE1BQU0sMkJBQTJCLENBQUM7R0FDekQsS0FBSyxZQUFXO0dBQ2hCLEtBQUssUUFBUTtHQUNiLElBQUksS0FBSyxpQkFDUCxLQUFLLGdCQUFnQixlQUFlO0dBS3RDLElBQUksS0FBSyx5QkFBd0IsR0FDL0IsS0FBSyxlQUFjO0VBRXZCO0VBRVEsMkJBQXdCO0dBQzlCLE9BQU8sd0JBQXdCLE1BQU0sNkNBQTZDO0VBQ3BGO0VBRVEsaUJBQWM7R0FDcEIsS0FBSyxRQUFRO0dBQ2IsS0FBSyxRQUFRO0dBQ2IsS0FBSyxvQkFBbUI7R0FDeEIsS0FBSyxvQkFBbUI7R0FDeEIsS0FBSyxxQkFBcUIsb0JBQW1CO0dBQzdDLEtBQUssbUJBQWtCO0dBQ3ZCLEtBQUssZUFBYztHQUNuQixLQUFLLGtCQUFpQjtFQUN4QjtFQUVRLGlCQUFjO0dBQ3BCLEtBQUssUUFBUTtHQUNiLEtBQUssWUFBWSxjQUFjLG9DQUFvQyxHQUFHLFNBQVMsR0FBRyxDQUFDO0dBQ25GLEtBQUsseUJBQXlCLE1BQUs7R0FDbkMsS0FBSyxZQUFXO0dBQ2hCLEtBQUssb0JBQW1CO0dBQ3hCLElBQUksS0FBSyxjQUFhLEtBQU0sS0FBSyxpQkFDL0IsS0FBSyxnQkFBZ0IsTUFBSztHQUU1QixLQUFLLGVBQWM7R0FDbkIsS0FBSyxtQkFBa0I7RUFDekI7RUFFUSxrQ0FBK0I7R0FDckMsS0FBSyx1QkFBdUIseUJBQXlCLE1BQUs7RUFDNUQ7Ozs7RUFLTyxRQUFLO0dBQ1YsSUFBSSxLQUFLLFVBQVUsWUFBWSxDQUFDLEtBQUsseUJBQXdCLEdBQzNEOztHQUlGLEtBQUssY0FBYyxJQUFJLE1BQU0sMkJBQTJCLENBQUM7R0FDekQsS0FBSyxRQUFRO0dBQ2IsS0FBSyxZQUFXO0dBQ2hCLEtBQUssUUFBUTtHQUNiLElBQUksS0FBSyxpQkFDUCxLQUFLLGdCQUFnQixlQUFlO0dBS3RDLElBQUksS0FBSyx5QkFBd0IsR0FDL0IsS0FBSyxlQUFjO0VBRXZCO0VBR1Esb0JBQWlCO0dBQ3ZCLElBQUksS0FBSyxZQUFZLEtBQUssaUJBQ3hCO0dBR0YsS0FBSyx5QkFBeUIsTUFBSztHQUNuQyxtQ0FBbUMsS0FBSyxlQUFlO0dBQ3ZELEtBQUssa0JBQWtCLEtBQUs7R0FFNUIsSUFBSSxDQUFDLEtBQUssaUJBQ1I7R0FHRixnQ0FBZ0MsTUFBTSxLQUFLLGlCQUFpQixRQUFRLEtBQUssS0FBSztHQUM5RSxLQUFLLDBCQUEwQixJQUFJLGdCQUFlO0dBQ2xELElBQUksS0FBSyxvQkFBb0IsS0FBSyxlQUFlLEdBQy9DLEtBQUssZ0JBQWdCLG1CQUFtQjtHQUUxQyxLQUFLLGdCQUFnQixpQkFBaUIsZUFBZSxLQUFLLEtBQUksR0FBSSxFQUNoRSxRQUFRLEtBQUssd0JBQXdCLE9BQUEsQ0FDdEM7R0FDRCxLQUFLLHdCQUF3QixLQUFLLGlCQUFpQixVQUFVLGdCQUFnQjtFQUMvRTtFQUVRLG9CQUFvQixTQUEyQjtHQUNyRCxPQUFPLFNBQVMsY0FBYztFQUNoQztFQUVRLG9CQUFvQixlQUF3QixLQUFLLGNBQWEsR0FBRTtHQUN0RSxNQUFNLG9CQUFvQixLQUFLLHVCQUF1QjtHQUN0RCxJQUFJLG1CQUNGLGtCQUFrQixRQUFRLGdCQUFnQixLQUFLLFVBQVU7RUFFN0Q7RUFJUSxnQkFBZ0IsT0FBcUI7R0FDM0MsSUFBSSxNQUFNLGtCQUFrQixVQUFVLEtBQUssVUFBVSxXQUNuRCxLQUFLLGVBQWM7UUFDZCxJQUFJLE1BQU0sa0JBQWtCLFdBQVcsS0FBSyxVQUFVLFdBQzNELEtBQUssZUFBYztFQUV2QjtFQUVRLGNBQVc7R0FDakIsTUFBTSxLQUNKLEtBQUssaUJBQ0gsc0dBQTZDLEtBQzFDLENBQUEsQ0FBRSxFQUNQLFNBQVMsV0FBVyxpQkFBaUIsTUFBTSxFQUFFLE9BQU8sZUFBZSxDQUFDO0VBQ3hFO0VBRVEsc0JBQW1CO0dBQ3pCLEtBQUssMEJBQTBCLElBQUksZ0JBQWU7R0FDbEQsT0FBTyxpQkFBaUIsWUFBWSxVQUF5QixLQUFLLGdCQUFnQixLQUFLLEdBQUcsRUFDeEYsUUFBUSxLQUFLLHdCQUF3QixPQUFBLENBQ3RDO0dBR0QsT0FBTyxpQkFBaUIsU0FBUyxLQUFLLCtCQUErQixFQUNuRSxRQUFRLEtBQUssd0JBQXdCLE9BQUEsQ0FDdEM7RUFDSDtFQXFCUSxnQkFBYTtHQUNuQixPQUFPLEtBQUssd0JBQXdCLFFBQVEsb0NBQW9DLEtBQUs7RUFDdkY7RUFHUSxnQkFBZ0IsT0FBb0I7R0FDMUMsSUFBSSxLQUFLLFVBQVUsWUFBWSxNQUFNLFFBQVEsVUFDM0MsS0FBSyxNQUFLO0VBRWQ7RUFFUSxxQkFBa0I7R0FJeEIsaUJBSGdCLEtBQUssY0FDbkIsNERBRWUsQ0FBTyxHQUFHLE9BQU8saUJBQWlCLElBQUk7RUFDekQ7RUFFZ0Isb0JBQWlCO0dBQy9CLE1BQU0sa0JBQWlCO0dBQ3ZCLEtBQUssU0FBUztHQUNkLElBQUksS0FBSyxZQUNQLEtBQUssa0JBQWlCO0VBRTFCO0VBRWdCLHVCQUFvQjtHQUNsQyxNQUFNLHFCQUFvQjtHQUMxQixLQUFLLGtCQUFrQjtHQUN2QixLQUFLLHlCQUF5QixNQUFLO0dBQ25DLEtBQUsseUJBQXlCLE1BQUs7RUFDckM7RUFFZ0IsY0FDZCxNQUNBLFVBQ0EsU0FBNkI7R0FFN0IsTUFBTSxjQUFjLE1BQU0sVUFBVSxPQUFPO0dBRTNDLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxTQUFTLGNBQWMsS0FBSyxZQUNyRCxLQUFLLGtCQUFpQjtFQUUxQjtFQUVtQixhQUFhLG1CQUF1QztHQUNyRSxNQUFNLGFBQWEsaUJBQWlCO0dBQ3BDLEtBQUssa0JBQWlCO0VBQ3hCO0VBRW1CLFNBQU07R0FDdkIsT0FBTyxJQUFJOzs7MEJBR1csS0FBSyxnQkFBQTs7NEJBRUgsQ0FBQyxLQUFLLHFCQUFxQixVQUFVLFFBQUE7dUJBQzFDLEtBQUsscUJBQXFCLEtBQUsscUJBQXFCLFFBQUE7Ozs7Ozs7OzsrQkFTNUMsS0FBSywwQkFBMEIsV0FBVyxLQUFLLFVBQVUsU0FBQTs7Ozs7Ozs7dUNBUWpELEtBQUssYUFBWTs7Ozs7Ozs7O0VBU3REIn0=
@@ -249,10 +249,7 @@ var SbbNavigationElement = (() => {
249
249
  Array.from(this.querySelectorAll(":is(sbb-navigation-button, sbb-navigation-link):is(:state(action-active),[state--action-active]):not(.sbb-active)"))?.forEach((action) => action.marker?.reset());
250
250
  }
251
251
  _handleNavigationClose(event) {
252
- if (event.composedPath().filter((el) => el instanceof window.HTMLElement).some((el) => this._isCloseElement(el))) this.close();
253
- }
254
- _isCloseElement(element) {
255
- return element.nodeName === "A" || element.hasAttribute("sbb-navigation-close") && !element.hasAttribute("disabled");
252
+ if (event.composedPath().some((el, i, a) => el instanceof HTMLElement && i < a.indexOf(this) && (el.nodeName === "A" || el.hasAttribute("sbb-navigation-close") && !el.hasAttribute("disabled")))) this.close();
256
253
  }
257
254
  _onNavigationResize() {
258
255
  if (this.state !== "opened") return;
@@ -316,4 +313,4 @@ var SbbNavigationElement = (() => {
316
313
  //#endregion
317
314
  export { SbbNavigationElement as t };
318
315
 
319
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi5jb21wb25lbnQtQk9CcWRmWG8uanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL25hdmlnYXRpb24vbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLnNjc3M/aW5saW5lIiwiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL25hdmlnYXRpb24vbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICcuLi8uLi9jb3JlL3N0eWxlcycgYXMgc2JiO1xuXG5AbWl4aW4gdHJhbnNpdGlvbigkcHJvcGVydGllcy4uLikge1xuICB0cmFuc2l0aW9uOiB7XG4gICAgZHVyYXRpb246IHZhcigtLXNiYi1uYXZpZ2F0aW9uLWFuaW1hdGlvbi1kdXJhdGlvbik7XG4gICAgdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS1zYmItbmF2aWdhdGlvbi1hbmltYXRpb24tZWFzaW5nKTtcbiAgICBwcm9wZXJ0eTogJHByb3BlcnRpZXM7XG4gIH1cbn1cblxuOmhvc3Qge1xuICAtLXNiYi1uYXZpZ2F0aW9uLWFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKFxuICAgIC0tc2JiLWRpc2FibGUtYW5pbWF0aW9uLWR1cmF0aW9uLFxuICAgIHZhcigtLXNiYi1hbmltYXRpb24tZHVyYXRpb24tM3gpXG4gICk7XG4gIC0tc2JiLWZvY3VzLW91dGxpbmUtY29sb3I6IHZhcigtLXNiYi1mb2N1cy1vdXRsaW5lLWNvbG9yLWRhcmspO1xuXG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgaW5zZXQ6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLWluc2V0KTtcbiAgei1pbmRleDogdmFyKC0tc2JiLW5hdmlnYXRpb24tei1pbmRleCwgdmFyKC0tc2JiLW92ZXJsYXktZGVmYXVsdC16LWluZGV4KSk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgQGluY2x1ZGUgc2JiLm1xKCRmcm9tOiBsYXJnZSkge1xuICAgIC0tc2JiLW5hdmlnYXRpb24tYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoXG4gICAgICAtLXNiYi1kaXNhYmxlLWFuaW1hdGlvbi1kdXJhdGlvbixcbiAgICAgIHZhcigtLXNiYi1hbmltYXRpb24tZHVyYXRpb24tNngpXG4gICAgKTtcbiAgICAtLXNiYi1uYXZpZ2F0aW9uLXdpZHRoOiBjYWxjKDEwMCUgKyB2YXIoLS1zYmItbGF5b3V0LWJhc2Utb2Zmc2V0LXJlc3BvbnNpdmUpKTtcbiAgfVxufVxuXG46aG9zdCg6aXMoOnN0YXRlKHN0YXRlLW9wZW5pbmcpLCA6c3RhdGUoc3RhdGUtb3BlbmVkKSwgOnN0YXRlKHN0YXRlLWNsb3NpbmcpKSkge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuOmhvc3QoOnN0YXRlKHN0YXRlLW9wZW5lZCkpIHtcbiAgLS1zYmItbmF2aWdhdGlvbi1hbmltYXRpb24tZWFzaW5nOiBlYXNlLW91dDtcbn1cblxuOmhvc3QoOmlzKDpzdGF0ZShzdGF0ZS1vcGVuZWQpLCA6c3RhdGUoc3RhdGUtb3BlbmluZykpKSB7XG4gIC0tc2JiLW5hdmlnYXRpb24tYmFja2Ryb3AtdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgLS1zYmItbmF2aWdhdGlvbi1iYWNrZHJvcC1wb2ludGVyLWV2ZW50czogYWxsO1xufVxuXG46aG9zdCg6bm90KDpzdGF0ZShzdGF0ZS1jbG9zZWQpKSkge1xuICAtLXNiYi1uYXZpZ2F0aW9uLWluc2V0OiAwO1xuICAtLXNiYi1uYXZpZ2F0aW9uLXRyYW5zbGF0ZTogbm9uZTtcbn1cblxuOmhvc3QoOnN0YXRlKHN0YXRlLWNsb3NpbmcpKSB7XG4gIC0tc2JiLW5hdmlnYXRpb24tYmFja2Ryb3AtYW5pbWF0aW9uLW5hbWU6IGJhY2tkcm9wLWNsb3NlO1xufVxuXG46aG9zdCg6c3RhdGUoaGFzLW9wZW4tbmF2aWdhdGlvbi1zZWN0aW9uKSkge1xuICAtLXNiYi1uYXZpZ2F0aW9uLWNvbnRlbnQtdHJhbnNsYXRlOiAtMTAwJSAwO1xuXG4gIEBpbmNsdWRlIHNiYi5tcSgkZnJvbTogJ2xhcmdlJykge1xuICAgIC0tc2JiLW5hdmlnYXRpb24tZXhwYW5kZWQtd2lkdGg6IDEwMGR2dztcbiAgICAtLXNiYi1uYXZpZ2F0aW9uLWNvbnRlbnQtdHJhbnNsYXRlOiAwO1xuICB9XG59XG5cbjpob3N0KDpzdGF0ZShyZXNpemUtZGlzYWJsZS1hbmltYXRpb24pKSB7XG4gIEBpbmNsdWRlIHNiYi5kaXNhYmxlLWFuaW1hdGlvbjtcbn1cblxuLnNiYi1uYXZpZ2F0aW9uX19jb250YWluZXIge1xuICBAaW5jbHVkZSBzYmIuZ3JpZC1iYXNlO1xuXG4gIHBhZGRpbmctaW5saW5lOiAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgdHJhbnNsYXRlOiB2YXIoLS1zYmItbmF2aWdhdGlvbi10cmFuc2xhdGUpO1xuXG4gIEBpbmNsdWRlIHNiYi5tcSgkZnJvbTogbGFyZ2UpIHtcbiAgICBwYWRkaW5nLWlubGluZTogdmFyKC0tc2JiLWxheW91dC1iYXNlLW9mZnNldC1yZXNwb25zaXZlKTtcblxuICAgIC8vIE5hdmlnYXRpb24gYmFja2Ryb3AgKG5vdCB2aXNpYmxlIG9uIG1vYmlsZSlcbiAgICAmOjpiZWZvcmUge1xuICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbih2aXNpYmlsaXR5KTtcblxuICAgICAgYW5pbWF0aW9uOiB7XG4gICAgICAgIG5hbWU6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLWJhY2tkcm9wLWFuaW1hdGlvbi1uYW1lKTtcbiAgICAgICAgZHVyYXRpb246IHZhcigtLXNiYi1uYXZpZ2F0aW9uLWFuaW1hdGlvbi1kdXJhdGlvbik7XG4gICAgICAgIHRpbWluZy1mdW5jdGlvbjogdmFyKC0tc2JiLW5hdmlnYXRpb24tYW5pbWF0aW9uLWVhc2luZyk7XG4gICAgICB9XG5cbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgdmlzaWJpbGl0eTogdmFyKC0tc2JiLW5hdmlnYXRpb24tYmFja2Ryb3AtdmlzaWJpbGl0eSwgaGlkZGVuKTtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiB2YXIoLS1zYmItbmF2aWdhdGlvbi1iYWNrZHJvcC1wb2ludGVyLWV2ZW50cywgbm9uZSk7XG4gICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICBpbnNldDogdmFyKC0tc2JiLW5hdmlnYXRpb24taW5zZXQpO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLW5hdmlnYXRpb24tYmFja2Ryb3AtY29sb3IpO1xuICAgIH1cbiAgfVxufVxuXG4uc2JiLW5hdmlnYXRpb24ge1xuICBAaW5jbHVkZSB0cmFuc2l0aW9uKHdpZHRoKTtcblxuICBkaXNwbGF5OiBub25lO1xuICB3aWR0aDogdmFyKC0tc2JiLW5hdmlnYXRpb24td2lkdGgpO1xuICBncmlkLWNvbHVtbjogdmFyKC0tc2JiLW5hdmlnYXRpb24tZ3JpZC1jb2x1bW4pO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaW5zZXQtaW5saW5lLXN0YXJ0OiB2YXIoLS1zYmItbmF2aWdhdGlvbi1pbmxpbmUtc3RhcnQsIDApO1xuICBpbnNldC1ibG9jay1zdGFydDogMDtcbiAgYm9yZGVyOiBub25lO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgaGVpZ2h0OiB2YXIoLS1zYmItbmF2aWdhdGlvbi1oZWlnaHQpO1xuICBjb2xvcjogdmFyKC0tc2JiLW5hdmlnYXRpb24tY29sb3IpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItbmF2aWdhdGlvbi1iYWNrZ3JvdW5kLWNvbG9yKTtcblxuICAmOjpiZWZvcmUge1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24od2lkdGgpO1xuXG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiB2YXIoLS1zYmItbmF2aWdhdGlvbi1leHBhbmRlZC13aWR0aCk7XG4gICAgaGVpZ2h0OiB2YXIoLS1zYmItbmF2aWdhdGlvbi1oZWlnaHQpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLWJhY2tncm91bmQtY29sb3IpO1xuICB9XG5cbiAgOmhvc3QoOmlzKDpzdGF0ZShzdGF0ZS1vcGVuaW5nKSwgOnN0YXRlKHN0YXRlLW9wZW5lZCksIDpzdGF0ZShzdGF0ZS1jbG9zaW5nKSkpICYge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICBhbmltYXRpb246IHtcbiAgICAgIG5hbWU6IG9wZW47XG4gICAgICBkdXJhdGlvbjogdmFyKC0tc2JiLW5hdmlnYXRpb24tYW5pbWF0aW9uLWR1cmF0aW9uKTtcbiAgICAgIHRpbWluZy1mdW5jdGlvbjogdmFyKC0tc2JiLW5hdmlnYXRpb24tYW5pbWF0aW9uLWVhc2luZyk7XG4gICAgfVxuICB9XG5cbiAgOmhvc3QoOnN0YXRlKHN0YXRlLWNsb3NpbmcpKSAmIHtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBhbmltYXRpb24tbmFtZTogY2xvc2U7XG4gIH1cblxuICBAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSkge1xuICAgIG91dGxpbmU6IHZhcigtLXNiYi1ib3JkZXItd2lkdGgtMXgpIHNvbGlkIENhbnZhc1RleHQ7XG4gIH1cbn1cblxuLnNiYi1uYXZpZ2F0aW9uX193cmFwcGVyIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cblxuLnNiYi1uYXZpZ2F0aW9uX19oZWFkZXIge1xuICBAaW5jbHVkZSB0cmFuc2l0aW9uKHdpZHRoKTtcblxuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiB2YXIoLS1zYmItbmF2aWdhdGlvbi1leHBhbmRlZC13aWR0aCk7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBwYWRkaW5nOiB2YXIoLS1zYmItc3BhY2luZy1yZXNwb25zaXZlLXhzKTtcbiAgei1pbmRleDogY2FsYyh2YXIoLS1zYmItbmF2aWdhdGlvbi16LWluZGV4LCB2YXIoLS1zYmItb3ZlcmxheS1kZWZhdWx0LXotaW5kZXgpKSArIDEpO1xufVxuXG4uc2JiLW5hdmlnYXRpb25fX2Nsb3NlIHtcbiAgcG9pbnRlci1ldmVudHM6IGFsbDtcbn1cblxuLnNiYi1uYXZpZ2F0aW9uX19jb250ZW50IHtcbiAgQGluY2x1ZGUgdHJhbnNpdGlvbih0cmFuc2xhdGUpO1xuXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogdmFyKC0tc2JiLW5hdmlnYXRpb24tY29udGVudC1nYXApO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogdmFyKC0tc2JiLW5hdmlnYXRpb24taGVpZ2h0KTtcbiAgcGFkZGluZy1pbmxpbmU6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLXBhZGRpbmctaW5saW5lKTtcbiAgcGFkZGluZy1ibG9jazogdmFyKC0tc2JiLW5hdmlnYXRpb24tcGFkZGluZy1ibG9jay1zdGFydCkgdmFyKC0tc2JiLW5hdmlnYXRpb24tcGFkZGluZy1ibG9jay1lbmQpO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICB0cmFuc2xhdGU6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLWNvbnRlbnQtdHJhbnNsYXRlKTtcbn1cblxuOjpzbG90dGVkKDpmaXJzdC1jaGlsZCkge1xuICBtYXJnaW4tYmxvY2stc3RhcnQ6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLWxpc3QtbWFyZ2luLWJsb2NrLXN0YXJ0KTtcbn1cblxuQGtleWZyYW1lcyBvcGVuIHtcbiAgZnJvbSB7XG4gICAgdHJhbnNsYXRlOiAtMTAwJSAwO1xuICB9XG5cbiAgdG8ge1xuICAgIHRyYW5zbGF0ZTogMDtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGNsb3NlIHtcbiAgZnJvbSB7XG4gICAgdHJhbnNsYXRlOiAwO1xuICB9XG5cbiAgdG8ge1xuICAgIHRyYW5zbGF0ZTogLTEwMCUgMDtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGJhY2tkcm9wLW9wZW4ge1xuICBmcm9tIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGJhY2tkcm9wLWNsb3NlIHtcbiAgdG8ge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG59XG4iLCJpbXBvcnQgeyBSZXNpemVDb250cm9sbGVyIH0gZnJvbSAnQGxpdC1sYWJzL29ic2VydmVycy9yZXNpemUtY29udHJvbGxlci5qcyc7XG5pbXBvcnQge1xuICB0eXBlIENTU1Jlc3VsdEdyb3VwLFxuICBodG1sLFxuICBpc1NlcnZlcixcbiAgdHlwZSBQcm9wZXJ0eURlY2xhcmF0aW9uLFxuICB0eXBlIFByb3BlcnR5VmFsdWVzLFxuICB0eXBlIFRlbXBsYXRlUmVzdWx0LFxuICB1bnNhZmVDU1MsXG59IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSwgc3RhdGUgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyByZWYgfSBmcm9tICdsaXQvZGlyZWN0aXZlcy9yZWYuanMnO1xuXG5pbXBvcnQgeyBTYmJUcmFuc3BhcmVudEJ1dHRvbkVsZW1lbnQgfSBmcm9tICcuLi8uLi9idXR0b24ucHVyZS50cyc7XG5pbXBvcnQge1xuICBmb3JjZVR5cGUsXG4gIGkxOG5DbG9zZU5hdmlnYXRpb24sXG4gIGlkUmVmZXJlbmNlLFxuICBpc0V2ZW50T25FbGVtZW50LFxuICBpc1plcm9BbmltYXRpb25EdXJhdGlvbixcbiAgcG9wb3ZlclJlc2V0U3R5bGVzLFxuICByZW1vdmVBcmlhT3ZlcmxheVRyaWdnZXJQcm9wZXJ0aWVzLFxuICB0eXBlIFNiYkVsZW1lbnRUeXBlLFxuICBTYmJFc2NhcGFibGVPdmVybGF5Q29udHJvbGxlcixcbiAgU2JiRm9jdXNUcmFwQ29udHJvbGxlcixcbiAgU2JiSW5lcnRDb250cm9sbGVyLFxuICBTYmJMYW5ndWFnZUNvbnRyb2xsZXIsXG4gIFNiYk9wZW5DbG9zZUJhc2VFbGVtZW50LFxuICBTYmJTY3JvbGxIYW5kbGVyLFxuICBTYmJVcGRhdGVTY2hlZHVsZXJNaXhpbixcbiAgc2Nyb2xsYmFyU3R5bGVzLFxuICBzZXRBcmlhT3ZlcmxheVRyaWdnZXJQcm9wZXJ0aWVzLFxufSBmcm9tICcuLi8uLi9jb3JlLnRzJztcbmltcG9ydCB0eXBlIHsgU2JiTmF2aWdhdGlvbkJ1dHRvbkVsZW1lbnQgfSBmcm9tICcuLi9uYXZpZ2F0aW9uLWJ1dHRvbi9uYXZpZ2F0aW9uLWJ1dHRvbi5jb21wb25lbnQudHMnO1xuaW1wb3J0IHR5cGUgeyBTYmJOYXZpZ2F0aW9uTGlua0VsZW1lbnQgfSBmcm9tICcuLi9uYXZpZ2F0aW9uLWxpbmsvbmF2aWdhdGlvbi1saW5rLmNvbXBvbmVudC50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYk5hdmlnYXRpb25TZWN0aW9uRWxlbWVudCB9IGZyb20gJy4uL25hdmlnYXRpb24tc2VjdGlvbi9uYXZpZ2F0aW9uLXNlY3Rpb24uY29tcG9uZW50LnRzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vbmF2aWdhdGlvbi5zY3NzP2lubGluZSc7XG5cbmNvbnN0IERFQk9VTkNFX1RJTUUgPSAxNTA7XG5cbi8qKlxuICogSXQgZGlzcGxheXMgYSBuYXZpZ2F0aW9uIG1lbnUsIHdyYXBwaW5nIG9uZSBvciBtb3JlIGBzYmItbmF2aWdhdGlvbi0qYCBjb21wb25lbnRzLlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gYWRkIGBzYmItbmF2aWdhdGlvbi1idXR0b25gL2BzYmItbmF2aWdhdGlvbi1saW5rYCBlbGVtZW50cyBpbnRvIHRoZSBzYmItbmF2aWdhdGlvbiBtZW51LlxuICogQGNzc3Byb3AgWy0tc2JiLW5hdmlnYXRpb24tei1pbmRleD12YXIoLS1zYmItb3ZlcmxheS1kZWZhdWx0LXotaW5kZXgpXSAtIFRvIHNwZWNpZnkgYSBjdXN0b20gc3RhY2sgb3JkZXIsXG4gKiB0aGUgYHotaW5kZXhgIGNhbiBiZSBvdmVycmlkZGVuIGJ5IGRlZmluaW5nIHRoaXMgQ1NTIHZhcmlhYmxlLiBUaGUgZGVmYXVsdCBgei1pbmRleGAgb2YgdGhlXG4gKiBjb21wb25lbnQgaXMgc2V0IHRvIGB2YXIoLS1zYmItb3ZlcmxheS1kZWZhdWx0LXotaW5kZXgpYCB3aXRoIGEgdmFsdWUgb2YgYDEwMDBgLlxuICovXG5leHBvcnQgY2xhc3MgU2JiTmF2aWdhdGlvbkVsZW1lbnQgZXh0ZW5kcyBTYmJVcGRhdGVTY2hlZHVsZXJNaXhpbihTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudCkge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IGVsZW1lbnROYW1lOiBzdHJpbmcgPSAnc2JiLW5hdmlnYXRpb24nO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIGVsZW1lbnREZXBlbmRlbmNpZXM6IFNiYkVsZW1lbnRUeXBlW10gPSBbU2JiVHJhbnNwYXJlbnRCdXR0b25FbGVtZW50XTtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSByb2xlID0gJ25hdmlnYXRpb24nO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbXG4gICAgcG9wb3ZlclJlc2V0U3R5bGVzLFxuICAgIHNjcm9sbGJhclN0eWxlcyxcbiAgICB1bnNhZmVDU1Moc3R5bGUpLFxuICBdO1xuXG4gIC8qKlxuICAgKiBUaGUgZWxlbWVudCB0aGF0IHdpbGwgdHJpZ2dlciB0aGUgbmF2aWdhdGlvbi5cbiAgICpcbiAgICogRm9yIGF0dHJpYnV0ZSB1c2FnZSwgcHJvdmlkZSBhbiBpZCByZWZlcmVuY2UuXG4gICAqL1xuICBAaWRSZWZlcmVuY2UoKVxuICBAcHJvcGVydHkoKVxuICBwdWJsaWMgYWNjZXNzb3IgdHJpZ2dlcjogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICAvKiogVGhpcyB3aWxsIGJlIGZvcndhcmRlZCBhcyBhcmlhLWxhYmVsIHRvIHRoZSBjbG9zZSBidXR0b24gZWxlbWVudC4gKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2FjY2Vzc2liaWxpdHktY2xvc2UtbGFiZWwnIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBhY2Nlc3NpYmlsaXR5Q2xvc2VMYWJlbDogc3RyaW5nID0gJyc7XG5cbiAgLyoqIFdoZXRoZXIgYSBuYXZpZ2F0aW9uIHNlY3Rpb24gaXMgZGlzcGxheWVkLiAqL1xuICBAc3RhdGUoKSBwcml2YXRlIGFjY2Vzc29yIF9hY3RpdmVOYXZpZ2F0aW9uU2VjdGlvbjogU2JiTmF2aWdhdGlvblNlY3Rpb25FbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqIFJldHVybnMgdGhlIGFjdGl2ZSBuYXZpZ2F0aW9uIHNlY3Rpb24gZWxlbWVudC4gKi9cbiAgcHVibGljIGdldCBhY3RpdmVOYXZpZ2F0aW9uU2VjdGlvbigpOiBTYmJOYXZpZ2F0aW9uU2VjdGlvbkVsZW1lbnQgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fYWN0aXZlTmF2aWdhdGlvblNlY3Rpb247XG4gIH1cblxuICAvKiogUmV0dXJucyB0aGUgY2xvc2UgYnV0dG9uIGVsZW1lbnQuICovXG4gIHB1YmxpYyBnZXQgY2xvc2VCdXR0b24oKTogSFRNTEVsZW1lbnQgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCcjc2JiLW5hdmlnYXRpb24tY2xvc2UtYnV0dG9uJykgPz8gbnVsbDtcbiAgfVxuXG4gIC8qKiBSZXR1cm5zIHRoZSBuYXZpZ2F0aW9uIGNvbnRlbnQgZWxlbWVudC4gKi9cbiAgcHVibGljIGdldCBuYXZpZ2F0aW9uQ29udGVudCgpOiBIVE1MRWxlbWVudCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoJy5zYmItbmF2aWdhdGlvbl9fY29udGVudCcpID8/IG51bGw7XG4gIH1cblxuICBwcml2YXRlIF9uYXZpZ2F0aW9uITogSFRNTERpdkVsZW1lbnQ7XG4gIHByaXZhdGUgX3RyaWdnZXJFbGVtZW50OiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF90cmlnZ2VyQWJvcnRDb250cm9sbGVyITogQWJvcnRDb250cm9sbGVyO1xuICBwcml2YXRlIF9sYW5ndWFnZSA9IG5ldyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIodGhpcyk7XG4gIHByaXZhdGUgX2luZXJ0Q29udHJvbGxlciA9IG5ldyBTYmJJbmVydENvbnRyb2xsZXIodGhpcyk7XG4gIHByaXZhdGUgX2VzY2FwYWJsZU92ZXJsYXlDb250cm9sbGVyID0gbmV3IFNiYkVzY2FwYWJsZU92ZXJsYXlDb250cm9sbGVyKHRoaXMpO1xuICBwcml2YXRlIF9mb2N1c1RyYXBDb250cm9sbGVyID0gbmV3IFNiYkZvY3VzVHJhcENvbnRyb2xsZXIodGhpcyk7XG4gIHByaXZhdGUgX3Njcm9sbEhhbmRsZXIgPSBuZXcgU2JiU2Nyb2xsSGFuZGxlcigpO1xuICBwcml2YXRlIF9pc1BvaW50ZXJEb3duRXZlbnRPbk5hdmlnYXRpb246IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfcmVzaXplT2JzZXJ2ZXJUaW1lb3V0OiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PiB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF9uYXZpZ2F0aW9uUmVzaXplT2JzZXJ2ZXIgPSBuZXcgUmVzaXplQ29udHJvbGxlcih0aGlzLCB7XG4gICAgc2tpcEluaXRpYWw6IHRydWUsXG4gICAgY2FsbGJhY2s6ICgpID0+IHRoaXMuX29uTmF2aWdhdGlvblJlc2l6ZSgpLFxuICB9KTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LignY2xpY2snLCAoZXZlbnQpID0+IHRoaXMuX2hhbmRsZU5hdmlnYXRpb25DbG9zZShldmVudCkpO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdwb2ludGVydXAnLCAoZXZlbnQpID0+IHRoaXMuX2Nsb3NlT25CYWNrZHJvcENsaWNrKGV2ZW50KSk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ3BvaW50ZXJkb3duJywgKGV2ZW50KSA9PiB0aGlzLl9wb2ludGVyRG93bkxpc3RlbmVyKGV2ZW50KSk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oXG4gICAgICAnybVuYXZpZ2F0aW9uc2VjdGlvbm9wZW5pbmcnLFxuICAgICAgKGV2ZW50KSA9PiB7XG4gICAgICAgIHRoaXMuX2FjdGl2ZU5hdmlnYXRpb25TZWN0aW9uID0gZXZlbnQudGFyZ2V0IGFzIFNiYk5hdmlnYXRpb25TZWN0aW9uRWxlbWVudDtcbiAgICAgICAgdGhpcy50b2dnbGVTdGF0ZSgnaGFzLW9wZW4tbmF2aWdhdGlvbi1zZWN0aW9uJywgISF0aGlzLl9hY3RpdmVOYXZpZ2F0aW9uU2VjdGlvbik7XG4gICAgICB9LFxuICAgICAgeyBjYXB0dXJlOiB0cnVlIH0sXG4gICAgKTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LihcbiAgICAgICfJtW5hdmlnYXRpb25zZWN0aW9uY2xvc2luZycsXG4gICAgICAoZXZlbnQpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuX2FjdGl2ZU5hdmlnYXRpb25TZWN0aW9uID09PSBldmVudC50YXJnZXQpIHtcbiAgICAgICAgICB0aGlzLl9hY3RpdmVOYXZpZ2F0aW9uU2VjdGlvbiA9IG51bGw7XG4gICAgICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmRlbGV0ZSgnaGFzLW9wZW4tbmF2aWdhdGlvbi1zZWN0aW9uJyk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7IGNhcHR1cmU6IHRydWUgfSxcbiAgICApO1xuICB9XG5cbiAgLyoqIE9wZW5zIHRoZSBuYXZpZ2F0aW9uLiAqL1xuICBwdWJsaWMgb3BlbigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdGF0ZSAhPT0gJ2Nsb3NlZCcgfHwgIXRoaXMuaGFzVXBkYXRlZCB8fCAhdGhpcy5kaXNwYXRjaEJlZm9yZU9wZW5FdmVudCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zaG93UG9wb3Zlcj8uKCk7XG4gICAgdGhpcy5zdGF0ZSA9ICdvcGVuaW5nJztcbiAgICB0aGlzLl9jaGVja0FjdGl2ZUFjdGlvbnMoKTtcbiAgICB0aGlzLl9jaGVja0FjdGl2ZVNlY3Rpb24oKTtcbiAgICB0aGlzLnN0YXJ0VXBkYXRlKCk7XG5cbiAgICAvLyBEaXNhYmxlIHNjcm9sbGluZyBmb3IgY29udGVudCBiZWxvdyB0aGUgbmF2aWdhdGlvblxuICAgIHRoaXMuX3Njcm9sbEhhbmRsZXIuZGlzYWJsZVNjcm9sbCgpO1xuICAgIGlmICh0aGlzLl90cmlnZ2VyRWxlbWVudCkge1xuICAgICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQuYXJpYUV4cGFuZGVkID0gJ3RydWUnO1xuICAgIH1cblxuICAgIC8vIElmIHRoZSBhbmltYXRpb24gZHVyYXRpb24gaXMgemVybywgdGhlIGFuaW1hdGlvbmVuZCBldmVudCBpcyBub3QgYWx3YXlzIGZpcmVkIHJlbGlhYmx5LlxuICAgIC8vIEluIHRoaXMgY2FzZSB3ZSBkaXJlY3RseSBzZXQgdGhlIGBvcGVuZWRgIHN0YXRlLlxuICAgIGlmICh0aGlzLl9pc1plcm9BbmltYXRpb25EdXJhdGlvbigpKSB7XG4gICAgICB0aGlzLl9oYW5kbGVPcGVuaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfY2hlY2tBY3RpdmVTZWN0aW9uKCk6IHZvaWQge1xuICAgIGNvbnN0IGFjdGl2ZUFjdGlvbiA9IHRoaXMucXVlcnlTZWxlY3RvcihcbiAgICAgICdzYmItbmF2aWdhdGlvbi1idXR0b24uc2JiLWFjdGl2ZScsXG4gICAgKSBhcyBTYmJOYXZpZ2F0aW9uQnV0dG9uRWxlbWVudDtcbiAgICBhY3RpdmVBY3Rpb24/LmNvbm5lY3RlZFNlY3Rpb24/Lm9wZW4oKTtcbiAgfVxuXG4gIHByaXZhdGUgX2NoZWNrQWN0aXZlQWN0aW9ucygpOiB2b2lkIHtcbiAgICBjb25zdCBhY3RpdmVBY3Rpb25zID0gQXJyYXkuZnJvbShcbiAgICAgIHRoaXMucXVlcnlTZWxlY3RvckFsbCgnOmlzKHNiYi1uYXZpZ2F0aW9uLWJ1dHRvbiwgc2JiLW5hdmlnYXRpb24tbGluaykuc2JiLWFjdGl2ZScpLFxuICAgICkgYXMgKFNiYk5hdmlnYXRpb25CdXR0b25FbGVtZW50IHwgU2JiTmF2aWdhdGlvbkxpbmtFbGVtZW50KVtdO1xuICAgIGFjdGl2ZUFjdGlvbnM/LmZvckVhY2goKGFjdGlvbikgPT4gYWN0aW9uLm1hcmtlcj8uc2VsZWN0KGFjdGlvbikpO1xuICB9XG5cbiAgLyoqIENsb3NlcyB0aGUgbmF2aWdhdGlvbi4gKi9cbiAgcHVibGljIGNsb3NlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnN0YXRlICE9PSAnb3BlbmVkJyB8fCAhdGhpcy5kaXNwYXRjaEJlZm9yZUNsb3NlRXZlbnQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc3RhdGUgPSAnY2xvc2luZyc7XG4gICAgdGhpcy5zdGFydFVwZGF0ZSgpO1xuICAgIGlmICh0aGlzLl90cmlnZ2VyRWxlbWVudCkge1xuICAgICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQuYXJpYUV4cGFuZGVkID0gJ2ZhbHNlJztcbiAgICB9XG5cbiAgICAvLyBJZiB0aGUgYW5pbWF0aW9uIGR1cmF0aW9uIGlzIHplcm8sIHRoZSBhbmltYXRpb25lbmQgZXZlbnQgaXMgbm90IGFsd2F5cyBmaXJlZCByZWxpYWJseS5cbiAgICAvLyBJbiB0aGlzIGNhc2Ugd2UgZGlyZWN0bHkgc2V0IHRoZSBgY2xvc2VkYCBzdGF0ZS5cbiAgICBpZiAodGhpcy5faXNaZXJvQW5pbWF0aW9uRHVyYXRpb24oKSkge1xuICAgICAgdGhpcy5faGFuZGxlQ2xvc2luZygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2lzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc1plcm9BbmltYXRpb25EdXJhdGlvbih0aGlzLCAnLS1zYmItbmF2aWdhdGlvbi1hbmltYXRpb24tZHVyYXRpb24nKTtcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZUNsb3NpbmcoKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZSA9ICdjbG9zZWQnO1xuICAgIHRoaXMuaGlkZVBvcG92ZXI/LigpO1xuICAgIHRoaXMubmF2aWdhdGlvbkNvbnRlbnQ/LnNjcm9sbFRvKDAsIDApO1xuICAgIHRoaXMuX2luZXJ0Q29udHJvbGxlci5kZWFjdGl2YXRlKCk7XG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQ/LmZvY3VzKCk7XG4gICAgdGhpcy5fZXNjYXBhYmxlT3ZlcmxheUNvbnRyb2xsZXIuZGlzY29ubmVjdCgpO1xuICAgIHRoaXMuZGlzcGF0Y2hDbG9zZUV2ZW50KCk7XG4gICAgdGhpcy5fbmF2aWdhdGlvblJlc2l6ZU9ic2VydmVyLnVub2JzZXJ2ZSh0aGlzKTtcbiAgICB0aGlzLl9yZXNldE1hcmtlcnMoKTtcbiAgICB0aGlzLl9mb2N1c1RyYXBDb250cm9sbGVyLmVuYWJsZWQgPSBmYWxzZTtcblxuICAgIC8vIEVuYWJsZSBzY3JvbGxpbmcgZm9yIGNvbnRlbnQgYmVsb3cgdGhlIG5hdmlnYXRpb25cbiAgICB0aGlzLl9zY3JvbGxIYW5kbGVyLmVuYWJsZVNjcm9sbCgpO1xuICAgIHRoaXMuY29tcGxldGVVcGRhdGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZU9wZW5pbmcoKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZSA9ICdvcGVuZWQnO1xuICAgIHRoaXMuX25hdmlnYXRpb25SZXNpemVPYnNlcnZlci5vYnNlcnZlKHRoaXMpO1xuICAgIHRoaXMuX2luZXJ0Q29udHJvbGxlci5hY3RpdmF0ZSgpO1xuICAgIHRoaXMuX2VzY2FwYWJsZU92ZXJsYXlDb250cm9sbGVyLmNvbm5lY3QoKTtcbiAgICB0aGlzLl9mb2N1c1RyYXBDb250cm9sbGVyLmZvY3VzSW5pdGlhbEVsZW1lbnQoKTtcbiAgICB0aGlzLl9mb2N1c1RyYXBDb250cm9sbGVyLmVuYWJsZWQgPSB0cnVlO1xuICAgIHRoaXMuY29tcGxldGVVcGRhdGUoKTtcbiAgICB0aGlzLmRpc3BhdGNoT3BlbkV2ZW50KCk7XG4gIH1cblxuICAvLyBSZW1vdmVzIHRyaWdnZXIgY2xpY2sgbGlzdGVuZXIgb24gdHJpZ2dlciBjaGFuZ2UuXG4gIC8vIENoZWNrIGlmIHRoZSB0cmlnZ2VyIGlzIHZhbGlkIGFuZCBhdHRhY2ggY2xpY2sgZXZlbnQgbGlzdGVuZXJzLlxuICBwcml2YXRlIF9jb25maWd1cmVUcmlnZ2VyKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnRyaWdnZXIgPT09IHRoaXMuX3RyaWdnZXJFbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fdHJpZ2dlckFib3J0Q29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICByZW1vdmVBcmlhT3ZlcmxheVRyaWdnZXJQcm9wZXJ0aWVzKHRoaXMuX3RyaWdnZXJFbGVtZW50KTtcbiAgICB0aGlzLl90cmlnZ2VyRWxlbWVudCA9IHRoaXMudHJpZ2dlcjtcblxuICAgIGlmICghdGhpcy5fdHJpZ2dlckVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBzZXRBcmlhT3ZlcmxheVRyaWdnZXJQcm9wZXJ0aWVzKHRoaXMsIHRoaXMuX3RyaWdnZXJFbGVtZW50LCAnbWVudScsIHRoaXMuc3RhdGUpO1xuICAgIHRoaXMuX3RyaWdnZXJBYm9ydENvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB0aGlzLm9wZW4oKSwge1xuICAgICAgc2lnbmFsOiB0aGlzLl90cmlnZ2VyQWJvcnRDb250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcbiAgfVxuXG4gIC8vIEluIHJhcmUgY2FzZXMgaXQgY2FuIGJlIHRoYXQgdGhlIGFuaW1hdGlvbkVuZCBldmVudCBpcyB0cmlnZ2VyZWQgdHdpY2UuXG4gIC8vIFRvIGF2b2lkIGVudGVyaW5nIGEgY29ycnVwdCBzdGF0ZSwgZXhpdCB3aGVuIHN0YXRlIGlzIG5vdCBleHBlY3RlZC5cbiAgcHJpdmF0ZSBfb25BbmltYXRpb25FbmQoZXZlbnQ6IEFuaW1hdGlvbkV2ZW50KTogdm9pZCB7XG4gICAgaWYgKGV2ZW50LmFuaW1hdGlvbk5hbWUgPT09ICdvcGVuJyAmJiB0aGlzLnN0YXRlID09PSAnb3BlbmluZycpIHtcbiAgICAgIHRoaXMuX2hhbmRsZU9wZW5pbmcoKTtcbiAgICB9IGVsc2UgaWYgKGV2ZW50LmFuaW1hdGlvbk5hbWUgPT09ICdjbG9zZScgJiYgdGhpcy5zdGF0ZSA9PT0gJ2Nsb3NpbmcnKSB7XG4gICAgICB0aGlzLl9oYW5kbGVDbG9zaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfcmVzZXRNYXJrZXJzKCk6IHZvaWQge1xuICAgIGNvbnN0IGFjdGl2ZUFjdGlvbnMgPSBBcnJheS5mcm9tKFxuICAgICAgdGhpcy5xdWVyeVNlbGVjdG9yQWxsKFxuICAgICAgICAnOmlzKHNiYi1uYXZpZ2F0aW9uLWJ1dHRvbiwgc2JiLW5hdmlnYXRpb24tbGluayk6c3RhdGUoYWN0aW9uLWFjdGl2ZSk6bm90KC5zYmItYWN0aXZlKScsXG4gICAgICApLFxuICAgICkgYXMgKFNiYk5hdmlnYXRpb25CdXR0b25FbGVtZW50IHwgU2JiTmF2aWdhdGlvbkxpbmtFbGVtZW50KVtdO1xuICAgIGFjdGl2ZUFjdGlvbnM/LmZvckVhY2goKGFjdGlvbikgPT4gYWN0aW9uLm1hcmtlcj8ucmVzZXQoKSk7XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVOYXZpZ2F0aW9uQ2xvc2UoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgY29tcG9zZWRQYXRoRWxlbWVudHMgPSBldmVudFxuICAgICAgLmNvbXBvc2VkUGF0aCgpXG4gICAgICAuZmlsdGVyKChlbCkgPT4gZWwgaW5zdGFuY2VvZiB3aW5kb3cuSFRNTEVsZW1lbnQpO1xuICAgIGlmIChjb21wb3NlZFBhdGhFbGVtZW50cy5zb21lKChlbCkgPT4gdGhpcy5faXNDbG9zZUVsZW1lbnQoZWwgYXMgSFRNTEVsZW1lbnQpKSkge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2lzQ2xvc2VFbGVtZW50KGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIGVsZW1lbnQubm9kZU5hbWUgPT09ICdBJyB8fFxuICAgICAgKGVsZW1lbnQuaGFzQXR0cmlidXRlKCdzYmItbmF2aWdhdGlvbi1jbG9zZScpICYmICFlbGVtZW50Lmhhc0F0dHJpYnV0ZSgnZGlzYWJsZWQnKSlcbiAgICApO1xuICB9XG5cbiAgLy8gQ2hlY2sgaWYgdGhlIHBvaW50ZXJkb3duIGV2ZW50IHRhcmdldCBpcyB0cmlnZ2VyZWQgb24gdGhlIG5hdmlnYXRpb24uXG4gIHByaXZhdGUgX3BvaW50ZXJEb3duTGlzdGVuZXIgPSAoZXZlbnQ6IFBvaW50ZXJFdmVudCk6IHZvaWQgPT4ge1xuICAgIHRoaXMuX2lzUG9pbnRlckRvd25FdmVudE9uTmF2aWdhdGlvbiA9XG4gICAgICBpc0V2ZW50T25FbGVtZW50KHRoaXMuX25hdmlnYXRpb24sIGV2ZW50KSB8fFxuICAgICAgaXNFdmVudE9uRWxlbWVudChcbiAgICAgICAgdGhpcy5xdWVyeVNlbGVjdG9yKCdzYmItbmF2aWdhdGlvbi1zZWN0aW9uOnN0YXRlKHN0YXRlLW9wZW5lZCknKT8uc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihcbiAgICAgICAgICAnbmF2LnNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24nLFxuICAgICAgICApIGFzIEhUTUxFbGVtZW50LFxuICAgICAgICBldmVudCxcbiAgICAgICk7XG4gIH07XG5cbiAgLy8gQ2xvc2UgbmF2aWdhdGlvbiBvbiBiYWNrZHJvcCBjbGljay5cbiAgcHJpdmF0ZSBfY2xvc2VPbkJhY2tkcm9wQ2xpY2sgPSAoZXZlbnQ6IFBvaW50ZXJFdmVudCk6IHZvaWQgPT4ge1xuICAgIGlmICghdGhpcy5faXNQb2ludGVyRG93bkV2ZW50T25OYXZpZ2F0aW9uICYmICFpc0V2ZW50T25FbGVtZW50KHRoaXMuX25hdmlnYXRpb24sIGV2ZW50KSkge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cbiAgfTtcblxuICBwcml2YXRlIF9vbk5hdmlnYXRpb25SZXNpemUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3RhdGUgIT09ICdvcGVuZWQnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX3Jlc2l6ZU9ic2VydmVyVGltZW91dCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX3Jlc2l6ZU9ic2VydmVyVGltZW91dCk7XG4gICAgfVxuXG4gICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmFkZCgncmVzaXplLWRpc2FibGUtYW5pbWF0aW9uJyk7XG5cbiAgICAvLyBEaXNhYmxlIHRoZSBhbmltYXRpb24gd2hlbiByZXNpemluZyB0aGUgbmF2aWdhdGlvbiB0byBhdm9pZCBzdHJhbmdlIGhlaWdodCB0cmFuc2l0aW9uIGVmZmVjdHMuXG4gICAgdGhpcy5fcmVzaXplT2JzZXJ2ZXJUaW1lb3V0ID0gc2V0VGltZW91dChcbiAgICAgICgpID0+IHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5kZWxldGUoJ3Jlc2l6ZS1kaXNhYmxlLWFuaW1hdGlvbicpLFxuICAgICAgREVCT1VOQ0VfVElNRSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5wb3BvdmVyID0gJ21hbnVhbCc7XG4gICAgaWYgKHRoaXMuaGFzVXBkYXRlZCkge1xuICAgICAgdGhpcy5fY29uZmlndXJlVHJpZ2dlcigpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBkaXNjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50ID0gbnVsbDtcbiAgICB0aGlzLl90cmlnZ2VyQWJvcnRDb250cm9sbGVyPy5hYm9ydCgpO1xuICAgIHRoaXMuX3Njcm9sbEhhbmRsZXIuZW5hYmxlU2Nyb2xsKCk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgcmVxdWVzdFVwZGF0ZShcbiAgICBuYW1lPzogUHJvcGVydHlLZXksXG4gICAgb2xkVmFsdWU/OiB1bmtub3duLFxuICAgIG9wdGlvbnM/OiBQcm9wZXJ0eURlY2xhcmF0aW9uLFxuICApOiB2b2lkIHtcbiAgICBzdXBlci5yZXF1ZXN0VXBkYXRlKG5hbWUsIG9sZFZhbHVlLCBvcHRpb25zKTtcblxuICAgIGlmICghaXNTZXJ2ZXIgJiYgKCFuYW1lIHx8IG5hbWUgPT09ICd0cmlnZ2VyJykgJiYgdGhpcy5oYXNVcGRhdGVkKSB7XG4gICAgICB0aGlzLl9jb25maWd1cmVUcmlnZ2VyKCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci5maXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuICAgIHRoaXMuX2NvbmZpZ3VyZVRyaWdnZXIoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIGNvbnN0IGNsb3NlQnV0dG9uID0gaHRtbGBcbiAgICAgIDxzYmItdHJhbnNwYXJlbnQtYnV0dG9uXG4gICAgICAgIGlkPVwic2JiLW5hdmlnYXRpb24tY2xvc2UtYnV0dG9uXCJcbiAgICAgICAgY2xhc3M9XCJzYmItbmF2aWdhdGlvbl9fY2xvc2VcIlxuICAgICAgICBhcmlhLWxhYmVsPSR7dGhpcy5hY2Nlc3NpYmlsaXR5Q2xvc2VMYWJlbCB8fCBpMThuQ2xvc2VOYXZpZ2F0aW9uW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfVxuICAgICAgICBhcmlhLWNvbnRyb2xzPVwic2JiLW5hdmlnYXRpb24tb3ZlcmxheVwiXG4gICAgICAgIG5lZ2F0aXZlXG4gICAgICAgIHNpemU9XCJtXCJcbiAgICAgICAgaWNvbi1uYW1lPVwiY3Jvc3Mtc21hbGxcIlxuICAgICAgICBzYmItbmF2aWdhdGlvbi1jbG9zZVxuICAgICAgPjwvc2JiLXRyYW5zcGFyZW50LWJ1dHRvbj5cbiAgICBgO1xuXG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwic2JiLW5hdmlnYXRpb25fX2NvbnRhaW5lclwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgaWQ9XCJzYmItbmF2aWdhdGlvbi1vdmVybGF5XCJcbiAgICAgICAgICBAYW5pbWF0aW9uZW5kPSR7dGhpcy5fb25BbmltYXRpb25FbmR9XG4gICAgICAgICAgY2xhc3M9XCJzYmItbmF2aWdhdGlvblwiXG4gICAgICAgICAgJHtyZWYoKG5hdmlnYXRpb25SZWY/OiBFbGVtZW50KSA9PiAodGhpcy5fbmF2aWdhdGlvbiA9IG5hdmlnYXRpb25SZWYgYXMgSFRNTERpdkVsZW1lbnQpKX1cbiAgICAgICAgPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYmItbmF2aWdhdGlvbl9faGVhZGVyXCI+JHtjbG9zZUJ1dHRvbn08L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2JiLW5hdmlnYXRpb25fX3dyYXBwZXJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYmItbmF2aWdhdGlvbl9fY29udGVudCBzYmItc2Nyb2xsYmFyLW5lZ2F0aXZlXCI+XG4gICAgICAgICAgICAgIDxzbG90Pjwvc2xvdD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHNsb3QgbmFtZT1cIm5hdmlnYXRpb24tc2VjdGlvblwiPjwvc2xvdD5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1uYXZpZ2F0aW9uJzogU2JiTmF2aWdhdGlvbkVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUN1Q0EsSUFBTSxnQkFBZ0I7Ozs7Ozs7OztJQVVULDhCQUFvQjttQkFBUyx3QkFBd0IsdUJBQXVCOzs7Ozs7Ozs7O2NBQTVFLDZCQUE2QixZQUFnRDs7OzBCQWV2RixZQUFXLEdBQ1gsU0FBUSxDQUFFOzBDQUlWLFVBQVMsR0FDVCxTQUFTLEVBQUUsV0FBVyw0QkFBMkIsQ0FBRSxDQUFDOzJDQUlwRCxNQUFLLENBQUU7R0FSUixhQUFBLE1BQUEsTUFBQSxxQkFBQTtJQUFBLE1BQUE7SUFBQSxNQUFBO0lBQUEsUUFBQTtJQUFBLFNBQUE7SUFBQSxRQUFBO0tBQUEsTUFBQSxRQUFBLGFBQUE7S0FBQSxNQUFBLFFBQUEsSUFBZ0I7S0FBTyxNQUFBLEtBQUEsVUFBQTtNQUFBLElBQVAsVUFBTztLQUFBO0lBQUE7SUFBQSxVQUFBO0dBQUEsR0FBQSx1QkFBQSwwQkFBQTtHQUt2QixhQUFBLE1BQUEsTUFBQSxxQ0FBQTtJQUFBLE1BQUE7SUFBQSxNQUFBO0lBQUEsUUFBQTtJQUFBLFNBQUE7SUFBQSxRQUFBO0tBQUEsTUFBQSxRQUFBLDZCQUFBO0tBQUEsTUFBQSxRQUFBLElBQWdCO0tBQXVCLE1BQUEsS0FBQSxVQUFBO01BQUEsSUFBdkIsMEJBQXVCO0tBQUE7SUFBQTtJQUFBLFVBQUE7R0FBQSxHQUFBLHVDQUFBLDBDQUFBO0dBRzlCLGFBQUEsTUFBQSxNQUFBLHNDQUFBO0lBQUEsTUFBQTtJQUFBLE1BQUE7SUFBQSxRQUFBO0lBQUEsU0FBQTtJQUFBLFFBQUE7S0FBQSxNQUFBLFFBQUEsOEJBQUE7S0FBQSxNQUFBLFFBQUEsSUFBaUI7S0FBd0IsTUFBQSxLQUFBLFVBQUE7TUFBQSxJQUF4QiwyQkFBd0I7S0FBQTtJQUFBO0lBQUEsVUFBQTtHQUFBLEdBQUEsd0NB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
316
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi5jb21wb25lbnQtQ3FRdWFxN1YuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL25hdmlnYXRpb24vbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLnNjc3M/aW5saW5lIiwiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL25hdmlnYXRpb24vbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICcuLi8uLi9jb3JlL3N0eWxlcycgYXMgc2JiO1xuXG5AbWl4aW4gdHJhbnNpdGlvbigkcHJvcGVydGllcy4uLikge1xuICB0cmFuc2l0aW9uOiB7XG4gICAgZHVyYXRpb246IHZhcigtLXNiYi1uYXZpZ2F0aW9uLWFuaW1hdGlvbi1kdXJhdGlvbik7XG4gICAgdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS1zYmItbmF2aWdhdGlvbi1hbmltYXRpb24tZWFzaW5nKTtcbiAgICBwcm9wZXJ0eTogJHByb3BlcnRpZXM7XG4gIH1cbn1cblxuOmhvc3Qge1xuICAtLXNiYi1uYXZpZ2F0aW9uLWFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKFxuICAgIC0tc2JiLWRpc2FibGUtYW5pbWF0aW9uLWR1cmF0aW9uLFxuICAgIHZhcigtLXNiYi1hbmltYXRpb24tZHVyYXRpb24tM3gpXG4gICk7XG4gIC0tc2JiLWZvY3VzLW91dGxpbmUtY29sb3I6IHZhcigtLXNiYi1mb2N1cy1vdXRsaW5lLWNvbG9yLWRhcmspO1xuXG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgaW5zZXQ6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLWluc2V0KTtcbiAgei1pbmRleDogdmFyKC0tc2JiLW5hdmlnYXRpb24tei1pbmRleCwgdmFyKC0tc2JiLW92ZXJsYXktZGVmYXVsdC16LWluZGV4KSk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgQGluY2x1ZGUgc2JiLm1xKCRmcm9tOiBsYXJnZSkge1xuICAgIC0tc2JiLW5hdmlnYXRpb24tYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoXG4gICAgICAtLXNiYi1kaXNhYmxlLWFuaW1hdGlvbi1kdXJhdGlvbixcbiAgICAgIHZhcigtLXNiYi1hbmltYXRpb24tZHVyYXRpb24tNngpXG4gICAgKTtcbiAgICAtLXNiYi1uYXZpZ2F0aW9uLXdpZHRoOiBjYWxjKDEwMCUgKyB2YXIoLS1zYmItbGF5b3V0LWJhc2Utb2Zmc2V0LXJlc3BvbnNpdmUpKTtcbiAgfVxufVxuXG46aG9zdCg6aXMoOnN0YXRlKHN0YXRlLW9wZW5pbmcpLCA6c3RhdGUoc3RhdGUtb3BlbmVkKSwgOnN0YXRlKHN0YXRlLWNsb3NpbmcpKSkge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuOmhvc3QoOnN0YXRlKHN0YXRlLW9wZW5lZCkpIHtcbiAgLS1zYmItbmF2aWdhdGlvbi1hbmltYXRpb24tZWFzaW5nOiBlYXNlLW91dDtcbn1cblxuOmhvc3QoOmlzKDpzdGF0ZShzdGF0ZS1vcGVuZWQpLCA6c3RhdGUoc3RhdGUtb3BlbmluZykpKSB7XG4gIC0tc2JiLW5hdmlnYXRpb24tYmFja2Ryb3AtdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgLS1zYmItbmF2aWdhdGlvbi1iYWNrZHJvcC1wb2ludGVyLWV2ZW50czogYWxsO1xufVxuXG46aG9zdCg6bm90KDpzdGF0ZShzdGF0ZS1jbG9zZWQpKSkge1xuICAtLXNiYi1uYXZpZ2F0aW9uLWluc2V0OiAwO1xuICAtLXNiYi1uYXZpZ2F0aW9uLXRyYW5zbGF0ZTogbm9uZTtcbn1cblxuOmhvc3QoOnN0YXRlKHN0YXRlLWNsb3NpbmcpKSB7XG4gIC0tc2JiLW5hdmlnYXRpb24tYmFja2Ryb3AtYW5pbWF0aW9uLW5hbWU6IGJhY2tkcm9wLWNsb3NlO1xufVxuXG46aG9zdCg6c3RhdGUoaGFzLW9wZW4tbmF2aWdhdGlvbi1zZWN0aW9uKSkge1xuICAtLXNiYi1uYXZpZ2F0aW9uLWNvbnRlbnQtdHJhbnNsYXRlOiAtMTAwJSAwO1xuXG4gIEBpbmNsdWRlIHNiYi5tcSgkZnJvbTogJ2xhcmdlJykge1xuICAgIC0tc2JiLW5hdmlnYXRpb24tZXhwYW5kZWQtd2lkdGg6IDEwMGR2dztcbiAgICAtLXNiYi1uYXZpZ2F0aW9uLWNvbnRlbnQtdHJhbnNsYXRlOiAwO1xuICB9XG59XG5cbjpob3N0KDpzdGF0ZShyZXNpemUtZGlzYWJsZS1hbmltYXRpb24pKSB7XG4gIEBpbmNsdWRlIHNiYi5kaXNhYmxlLWFuaW1hdGlvbjtcbn1cblxuLnNiYi1uYXZpZ2F0aW9uX19jb250YWluZXIge1xuICBAaW5jbHVkZSBzYmIuZ3JpZC1iYXNlO1xuXG4gIHBhZGRpbmctaW5saW5lOiAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgdHJhbnNsYXRlOiB2YXIoLS1zYmItbmF2aWdhdGlvbi10cmFuc2xhdGUpO1xuXG4gIEBpbmNsdWRlIHNiYi5tcSgkZnJvbTogbGFyZ2UpIHtcbiAgICBwYWRkaW5nLWlubGluZTogdmFyKC0tc2JiLWxheW91dC1iYXNlLW9mZnNldC1yZXNwb25zaXZlKTtcblxuICAgIC8vIE5hdmlnYXRpb24gYmFja2Ryb3AgKG5vdCB2aXNpYmxlIG9uIG1vYmlsZSlcbiAgICAmOjpiZWZvcmUge1xuICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbih2aXNpYmlsaXR5KTtcblxuICAgICAgYW5pbWF0aW9uOiB7XG4gICAgICAgIG5hbWU6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLWJhY2tkcm9wLWFuaW1hdGlvbi1uYW1lKTtcbiAgICAgICAgZHVyYXRpb246IHZhcigtLXNiYi1uYXZpZ2F0aW9uLWFuaW1hdGlvbi1kdXJhdGlvbik7XG4gICAgICAgIHRpbWluZy1mdW5jdGlvbjogdmFyKC0tc2JiLW5hdmlnYXRpb24tYW5pbWF0aW9uLWVhc2luZyk7XG4gICAgICB9XG5cbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgdmlzaWJpbGl0eTogdmFyKC0tc2JiLW5hdmlnYXRpb24tYmFja2Ryb3AtdmlzaWJpbGl0eSwgaGlkZGVuKTtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiB2YXIoLS1zYmItbmF2aWdhdGlvbi1iYWNrZHJvcC1wb2ludGVyLWV2ZW50cywgbm9uZSk7XG4gICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICBpbnNldDogdmFyKC0tc2JiLW5hdmlnYXRpb24taW5zZXQpO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLW5hdmlnYXRpb24tYmFja2Ryb3AtY29sb3IpO1xuICAgIH1cbiAgfVxufVxuXG4uc2JiLW5hdmlnYXRpb24ge1xuICBAaW5jbHVkZSB0cmFuc2l0aW9uKHdpZHRoKTtcblxuICBkaXNwbGF5OiBub25lO1xuICB3aWR0aDogdmFyKC0tc2JiLW5hdmlnYXRpb24td2lkdGgpO1xuICBncmlkLWNvbHVtbjogdmFyKC0tc2JiLW5hdmlnYXRpb24tZ3JpZC1jb2x1bW4pO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaW5zZXQtaW5saW5lLXN0YXJ0OiB2YXIoLS1zYmItbmF2aWdhdGlvbi1pbmxpbmUtc3RhcnQsIDApO1xuICBpbnNldC1ibG9jay1zdGFydDogMDtcbiAgYm9yZGVyOiBub25lO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgaGVpZ2h0OiB2YXIoLS1zYmItbmF2aWdhdGlvbi1oZWlnaHQpO1xuICBjb2xvcjogdmFyKC0tc2JiLW5hdmlnYXRpb24tY29sb3IpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItbmF2aWdhdGlvbi1iYWNrZ3JvdW5kLWNvbG9yKTtcblxuICAmOjpiZWZvcmUge1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24od2lkdGgpO1xuXG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiB2YXIoLS1zYmItbmF2aWdhdGlvbi1leHBhbmRlZC13aWR0aCk7XG4gICAgaGVpZ2h0OiB2YXIoLS1zYmItbmF2aWdhdGlvbi1oZWlnaHQpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLWJhY2tncm91bmQtY29sb3IpO1xuICB9XG5cbiAgOmhvc3QoOmlzKDpzdGF0ZShzdGF0ZS1vcGVuaW5nKSwgOnN0YXRlKHN0YXRlLW9wZW5lZCksIDpzdGF0ZShzdGF0ZS1jbG9zaW5nKSkpICYge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICBhbmltYXRpb246IHtcbiAgICAgIG5hbWU6IG9wZW47XG4gICAgICBkdXJhdGlvbjogdmFyKC0tc2JiLW5hdmlnYXRpb24tYW5pbWF0aW9uLWR1cmF0aW9uKTtcbiAgICAgIHRpbWluZy1mdW5jdGlvbjogdmFyKC0tc2JiLW5hdmlnYXRpb24tYW5pbWF0aW9uLWVhc2luZyk7XG4gICAgfVxuICB9XG5cbiAgOmhvc3QoOnN0YXRlKHN0YXRlLWNsb3NpbmcpKSAmIHtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBhbmltYXRpb24tbmFtZTogY2xvc2U7XG4gIH1cblxuICBAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSkge1xuICAgIG91dGxpbmU6IHZhcigtLXNiYi1ib3JkZXItd2lkdGgtMXgpIHNvbGlkIENhbnZhc1RleHQ7XG4gIH1cbn1cblxuLnNiYi1uYXZpZ2F0aW9uX193cmFwcGVyIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cblxuLnNiYi1uYXZpZ2F0aW9uX19oZWFkZXIge1xuICBAaW5jbHVkZSB0cmFuc2l0aW9uKHdpZHRoKTtcblxuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiB2YXIoLS1zYmItbmF2aWdhdGlvbi1leHBhbmRlZC13aWR0aCk7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBwYWRkaW5nOiB2YXIoLS1zYmItc3BhY2luZy1yZXNwb25zaXZlLXhzKTtcbiAgei1pbmRleDogY2FsYyh2YXIoLS1zYmItbmF2aWdhdGlvbi16LWluZGV4LCB2YXIoLS1zYmItb3ZlcmxheS1kZWZhdWx0LXotaW5kZXgpKSArIDEpO1xufVxuXG4uc2JiLW5hdmlnYXRpb25fX2Nsb3NlIHtcbiAgcG9pbnRlci1ldmVudHM6IGFsbDtcbn1cblxuLnNiYi1uYXZpZ2F0aW9uX19jb250ZW50IHtcbiAgQGluY2x1ZGUgdHJhbnNpdGlvbih0cmFuc2xhdGUpO1xuXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogdmFyKC0tc2JiLW5hdmlnYXRpb24tY29udGVudC1nYXApO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogdmFyKC0tc2JiLW5hdmlnYXRpb24taGVpZ2h0KTtcbiAgcGFkZGluZy1pbmxpbmU6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLXBhZGRpbmctaW5saW5lKTtcbiAgcGFkZGluZy1ibG9jazogdmFyKC0tc2JiLW5hdmlnYXRpb24tcGFkZGluZy1ibG9jay1zdGFydCkgdmFyKC0tc2JiLW5hdmlnYXRpb24tcGFkZGluZy1ibG9jay1lbmQpO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICB0cmFuc2xhdGU6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLWNvbnRlbnQtdHJhbnNsYXRlKTtcbn1cblxuOjpzbG90dGVkKDpmaXJzdC1jaGlsZCkge1xuICBtYXJnaW4tYmxvY2stc3RhcnQ6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLWxpc3QtbWFyZ2luLWJsb2NrLXN0YXJ0KTtcbn1cblxuQGtleWZyYW1lcyBvcGVuIHtcbiAgZnJvbSB7XG4gICAgdHJhbnNsYXRlOiAtMTAwJSAwO1xuICB9XG5cbiAgdG8ge1xuICAgIHRyYW5zbGF0ZTogMDtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGNsb3NlIHtcbiAgZnJvbSB7XG4gICAgdHJhbnNsYXRlOiAwO1xuICB9XG5cbiAgdG8ge1xuICAgIHRyYW5zbGF0ZTogLTEwMCUgMDtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGJhY2tkcm9wLW9wZW4ge1xuICBmcm9tIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGJhY2tkcm9wLWNsb3NlIHtcbiAgdG8ge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG59XG4iLCJpbXBvcnQgeyBSZXNpemVDb250cm9sbGVyIH0gZnJvbSAnQGxpdC1sYWJzL29ic2VydmVycy9yZXNpemUtY29udHJvbGxlci5qcyc7XG5pbXBvcnQge1xuICB0eXBlIENTU1Jlc3VsdEdyb3VwLFxuICBodG1sLFxuICBpc1NlcnZlcixcbiAgdHlwZSBQcm9wZXJ0eURlY2xhcmF0aW9uLFxuICB0eXBlIFByb3BlcnR5VmFsdWVzLFxuICB0eXBlIFRlbXBsYXRlUmVzdWx0LFxuICB1bnNhZmVDU1MsXG59IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSwgc3RhdGUgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyByZWYgfSBmcm9tICdsaXQvZGlyZWN0aXZlcy9yZWYuanMnO1xuXG5pbXBvcnQgeyBTYmJUcmFuc3BhcmVudEJ1dHRvbkVsZW1lbnQgfSBmcm9tICcuLi8uLi9idXR0b24ucHVyZS50cyc7XG5pbXBvcnQge1xuICBmb3JjZVR5cGUsXG4gIGkxOG5DbG9zZU5hdmlnYXRpb24sXG4gIGlkUmVmZXJlbmNlLFxuICBpc0V2ZW50T25FbGVtZW50LFxuICBpc1plcm9BbmltYXRpb25EdXJhdGlvbixcbiAgcG9wb3ZlclJlc2V0U3R5bGVzLFxuICByZW1vdmVBcmlhT3ZlcmxheVRyaWdnZXJQcm9wZXJ0aWVzLFxuICB0eXBlIFNiYkVsZW1lbnRUeXBlLFxuICBTYmJFc2NhcGFibGVPdmVybGF5Q29udHJvbGxlcixcbiAgU2JiRm9jdXNUcmFwQ29udHJvbGxlcixcbiAgU2JiSW5lcnRDb250cm9sbGVyLFxuICBTYmJMYW5ndWFnZUNvbnRyb2xsZXIsXG4gIFNiYk9wZW5DbG9zZUJhc2VFbGVtZW50LFxuICBTYmJTY3JvbGxIYW5kbGVyLFxuICBTYmJVcGRhdGVTY2hlZHVsZXJNaXhpbixcbiAgc2Nyb2xsYmFyU3R5bGVzLFxuICBzZXRBcmlhT3ZlcmxheVRyaWdnZXJQcm9wZXJ0aWVzLFxufSBmcm9tICcuLi8uLi9jb3JlLnRzJztcbmltcG9ydCB0eXBlIHsgU2JiTmF2aWdhdGlvbkJ1dHRvbkVsZW1lbnQgfSBmcm9tICcuLi9uYXZpZ2F0aW9uLWJ1dHRvbi9uYXZpZ2F0aW9uLWJ1dHRvbi5jb21wb25lbnQudHMnO1xuaW1wb3J0IHR5cGUgeyBTYmJOYXZpZ2F0aW9uTGlua0VsZW1lbnQgfSBmcm9tICcuLi9uYXZpZ2F0aW9uLWxpbmsvbmF2aWdhdGlvbi1saW5rLmNvbXBvbmVudC50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYk5hdmlnYXRpb25TZWN0aW9uRWxlbWVudCB9IGZyb20gJy4uL25hdmlnYXRpb24tc2VjdGlvbi9uYXZpZ2F0aW9uLXNlY3Rpb24uY29tcG9uZW50LnRzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vbmF2aWdhdGlvbi5zY3NzP2lubGluZSc7XG5cbmNvbnN0IERFQk9VTkNFX1RJTUUgPSAxNTA7XG5cbi8qKlxuICogSXQgZGlzcGxheXMgYSBuYXZpZ2F0aW9uIG1lbnUsIHdyYXBwaW5nIG9uZSBvciBtb3JlIGBzYmItbmF2aWdhdGlvbi0qYCBjb21wb25lbnRzLlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gYWRkIGBzYmItbmF2aWdhdGlvbi1idXR0b25gL2BzYmItbmF2aWdhdGlvbi1saW5rYCBlbGVtZW50cyBpbnRvIHRoZSBzYmItbmF2aWdhdGlvbiBtZW51LlxuICogQGNzc3Byb3AgWy0tc2JiLW5hdmlnYXRpb24tei1pbmRleD12YXIoLS1zYmItb3ZlcmxheS1kZWZhdWx0LXotaW5kZXgpXSAtIFRvIHNwZWNpZnkgYSBjdXN0b20gc3RhY2sgb3JkZXIsXG4gKiB0aGUgYHotaW5kZXhgIGNhbiBiZSBvdmVycmlkZGVuIGJ5IGRlZmluaW5nIHRoaXMgQ1NTIHZhcmlhYmxlLiBUaGUgZGVmYXVsdCBgei1pbmRleGAgb2YgdGhlXG4gKiBjb21wb25lbnQgaXMgc2V0IHRvIGB2YXIoLS1zYmItb3ZlcmxheS1kZWZhdWx0LXotaW5kZXgpYCB3aXRoIGEgdmFsdWUgb2YgYDEwMDBgLlxuICovXG5leHBvcnQgY2xhc3MgU2JiTmF2aWdhdGlvbkVsZW1lbnQgZXh0ZW5kcyBTYmJVcGRhdGVTY2hlZHVsZXJNaXhpbihTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudCkge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IGVsZW1lbnROYW1lOiBzdHJpbmcgPSAnc2JiLW5hdmlnYXRpb24nO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIGVsZW1lbnREZXBlbmRlbmNpZXM6IFNiYkVsZW1lbnRUeXBlW10gPSBbU2JiVHJhbnNwYXJlbnRCdXR0b25FbGVtZW50XTtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSByb2xlID0gJ25hdmlnYXRpb24nO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbXG4gICAgcG9wb3ZlclJlc2V0U3R5bGVzLFxuICAgIHNjcm9sbGJhclN0eWxlcyxcbiAgICB1bnNhZmVDU1Moc3R5bGUpLFxuICBdO1xuXG4gIC8qKlxuICAgKiBUaGUgZWxlbWVudCB0aGF0IHdpbGwgdHJpZ2dlciB0aGUgbmF2aWdhdGlvbi5cbiAgICpcbiAgICogRm9yIGF0dHJpYnV0ZSB1c2FnZSwgcHJvdmlkZSBhbiBpZCByZWZlcmVuY2UuXG4gICAqL1xuICBAaWRSZWZlcmVuY2UoKVxuICBAcHJvcGVydHkoKVxuICBwdWJsaWMgYWNjZXNzb3IgdHJpZ2dlcjogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICAvKiogVGhpcyB3aWxsIGJlIGZvcndhcmRlZCBhcyBhcmlhLWxhYmVsIHRvIHRoZSBjbG9zZSBidXR0b24gZWxlbWVudC4gKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2FjY2Vzc2liaWxpdHktY2xvc2UtbGFiZWwnIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBhY2Nlc3NpYmlsaXR5Q2xvc2VMYWJlbDogc3RyaW5nID0gJyc7XG5cbiAgLyoqIFdoZXRoZXIgYSBuYXZpZ2F0aW9uIHNlY3Rpb24gaXMgZGlzcGxheWVkLiAqL1xuICBAc3RhdGUoKSBwcml2YXRlIGFjY2Vzc29yIF9hY3RpdmVOYXZpZ2F0aW9uU2VjdGlvbjogU2JiTmF2aWdhdGlvblNlY3Rpb25FbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqIFJldHVybnMgdGhlIGFjdGl2ZSBuYXZpZ2F0aW9uIHNlY3Rpb24gZWxlbWVudC4gKi9cbiAgcHVibGljIGdldCBhY3RpdmVOYXZpZ2F0aW9uU2VjdGlvbigpOiBTYmJOYXZpZ2F0aW9uU2VjdGlvbkVsZW1lbnQgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fYWN0aXZlTmF2aWdhdGlvblNlY3Rpb247XG4gIH1cblxuICAvKiogUmV0dXJucyB0aGUgY2xvc2UgYnV0dG9uIGVsZW1lbnQuICovXG4gIHB1YmxpYyBnZXQgY2xvc2VCdXR0b24oKTogSFRNTEVsZW1lbnQgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCcjc2JiLW5hdmlnYXRpb24tY2xvc2UtYnV0dG9uJykgPz8gbnVsbDtcbiAgfVxuXG4gIC8qKiBSZXR1cm5zIHRoZSBuYXZpZ2F0aW9uIGNvbnRlbnQgZWxlbWVudC4gKi9cbiAgcHVibGljIGdldCBuYXZpZ2F0aW9uQ29udGVudCgpOiBIVE1MRWxlbWVudCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoJy5zYmItbmF2aWdhdGlvbl9fY29udGVudCcpID8/IG51bGw7XG4gIH1cblxuICBwcml2YXRlIF9uYXZpZ2F0aW9uITogSFRNTERpdkVsZW1lbnQ7XG4gIHByaXZhdGUgX3RyaWdnZXJFbGVtZW50OiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF90cmlnZ2VyQWJvcnRDb250cm9sbGVyITogQWJvcnRDb250cm9sbGVyO1xuICBwcml2YXRlIF9sYW5ndWFnZSA9IG5ldyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIodGhpcyk7XG4gIHByaXZhdGUgX2luZXJ0Q29udHJvbGxlciA9IG5ldyBTYmJJbmVydENvbnRyb2xsZXIodGhpcyk7XG4gIHByaXZhdGUgX2VzY2FwYWJsZU92ZXJsYXlDb250cm9sbGVyID0gbmV3IFNiYkVzY2FwYWJsZU92ZXJsYXlDb250cm9sbGVyKHRoaXMpO1xuICBwcml2YXRlIF9mb2N1c1RyYXBDb250cm9sbGVyID0gbmV3IFNiYkZvY3VzVHJhcENvbnRyb2xsZXIodGhpcyk7XG4gIHByaXZhdGUgX3Njcm9sbEhhbmRsZXIgPSBuZXcgU2JiU2Nyb2xsSGFuZGxlcigpO1xuICBwcml2YXRlIF9pc1BvaW50ZXJEb3duRXZlbnRPbk5hdmlnYXRpb246IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfcmVzaXplT2JzZXJ2ZXJUaW1lb3V0OiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PiB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF9uYXZpZ2F0aW9uUmVzaXplT2JzZXJ2ZXIgPSBuZXcgUmVzaXplQ29udHJvbGxlcih0aGlzLCB7XG4gICAgc2tpcEluaXRpYWw6IHRydWUsXG4gICAgY2FsbGJhY2s6ICgpID0+IHRoaXMuX29uTmF2aWdhdGlvblJlc2l6ZSgpLFxuICB9KTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LignY2xpY2snLCAoZXZlbnQpID0+IHRoaXMuX2hhbmRsZU5hdmlnYXRpb25DbG9zZShldmVudCkpO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdwb2ludGVydXAnLCAoZXZlbnQpID0+IHRoaXMuX2Nsb3NlT25CYWNrZHJvcENsaWNrKGV2ZW50KSk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ3BvaW50ZXJkb3duJywgKGV2ZW50KSA9PiB0aGlzLl9wb2ludGVyRG93bkxpc3RlbmVyKGV2ZW50KSk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oXG4gICAgICAnybVuYXZpZ2F0aW9uc2VjdGlvbm9wZW5pbmcnLFxuICAgICAgKGV2ZW50KSA9PiB7XG4gICAgICAgIHRoaXMuX2FjdGl2ZU5hdmlnYXRpb25TZWN0aW9uID0gZXZlbnQudGFyZ2V0IGFzIFNiYk5hdmlnYXRpb25TZWN0aW9uRWxlbWVudDtcbiAgICAgICAgdGhpcy50b2dnbGVTdGF0ZSgnaGFzLW9wZW4tbmF2aWdhdGlvbi1zZWN0aW9uJywgISF0aGlzLl9hY3RpdmVOYXZpZ2F0aW9uU2VjdGlvbik7XG4gICAgICB9LFxuICAgICAgeyBjYXB0dXJlOiB0cnVlIH0sXG4gICAgKTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LihcbiAgICAgICfJtW5hdmlnYXRpb25zZWN0aW9uY2xvc2luZycsXG4gICAgICAoZXZlbnQpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuX2FjdGl2ZU5hdmlnYXRpb25TZWN0aW9uID09PSBldmVudC50YXJnZXQpIHtcbiAgICAgICAgICB0aGlzLl9hY3RpdmVOYXZpZ2F0aW9uU2VjdGlvbiA9IG51bGw7XG4gICAgICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmRlbGV0ZSgnaGFzLW9wZW4tbmF2aWdhdGlvbi1zZWN0aW9uJyk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7IGNhcHR1cmU6IHRydWUgfSxcbiAgICApO1xuICB9XG5cbiAgLyoqIE9wZW5zIHRoZSBuYXZpZ2F0aW9uLiAqL1xuICBwdWJsaWMgb3BlbigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdGF0ZSAhPT0gJ2Nsb3NlZCcgfHwgIXRoaXMuaGFzVXBkYXRlZCB8fCAhdGhpcy5kaXNwYXRjaEJlZm9yZU9wZW5FdmVudCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zaG93UG9wb3Zlcj8uKCk7XG4gICAgdGhpcy5zdGF0ZSA9ICdvcGVuaW5nJztcbiAgICB0aGlzLl9jaGVja0FjdGl2ZUFjdGlvbnMoKTtcbiAgICB0aGlzLl9jaGVja0FjdGl2ZVNlY3Rpb24oKTtcbiAgICB0aGlzLnN0YXJ0VXBkYXRlKCk7XG5cbiAgICAvLyBEaXNhYmxlIHNjcm9sbGluZyBmb3IgY29udGVudCBiZWxvdyB0aGUgbmF2aWdhdGlvblxuICAgIHRoaXMuX3Njcm9sbEhhbmRsZXIuZGlzYWJsZVNjcm9sbCgpO1xuICAgIGlmICh0aGlzLl90cmlnZ2VyRWxlbWVudCkge1xuICAgICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQuYXJpYUV4cGFuZGVkID0gJ3RydWUnO1xuICAgIH1cblxuICAgIC8vIElmIHRoZSBhbmltYXRpb24gZHVyYXRpb24gaXMgemVybywgdGhlIGFuaW1hdGlvbmVuZCBldmVudCBpcyBub3QgYWx3YXlzIGZpcmVkIHJlbGlhYmx5LlxuICAgIC8vIEluIHRoaXMgY2FzZSB3ZSBkaXJlY3RseSBzZXQgdGhlIGBvcGVuZWRgIHN0YXRlLlxuICAgIGlmICh0aGlzLl9pc1plcm9BbmltYXRpb25EdXJhdGlvbigpKSB7XG4gICAgICB0aGlzLl9oYW5kbGVPcGVuaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfY2hlY2tBY3RpdmVTZWN0aW9uKCk6IHZvaWQge1xuICAgIGNvbnN0IGFjdGl2ZUFjdGlvbiA9IHRoaXMucXVlcnlTZWxlY3RvcihcbiAgICAgICdzYmItbmF2aWdhdGlvbi1idXR0b24uc2JiLWFjdGl2ZScsXG4gICAgKSBhcyBTYmJOYXZpZ2F0aW9uQnV0dG9uRWxlbWVudDtcbiAgICBhY3RpdmVBY3Rpb24/LmNvbm5lY3RlZFNlY3Rpb24/Lm9wZW4oKTtcbiAgfVxuXG4gIHByaXZhdGUgX2NoZWNrQWN0aXZlQWN0aW9ucygpOiB2b2lkIHtcbiAgICBjb25zdCBhY3RpdmVBY3Rpb25zID0gQXJyYXkuZnJvbShcbiAgICAgIHRoaXMucXVlcnlTZWxlY3RvckFsbCgnOmlzKHNiYi1uYXZpZ2F0aW9uLWJ1dHRvbiwgc2JiLW5hdmlnYXRpb24tbGluaykuc2JiLWFjdGl2ZScpLFxuICAgICkgYXMgKFNiYk5hdmlnYXRpb25CdXR0b25FbGVtZW50IHwgU2JiTmF2aWdhdGlvbkxpbmtFbGVtZW50KVtdO1xuICAgIGFjdGl2ZUFjdGlvbnM/LmZvckVhY2goKGFjdGlvbikgPT4gYWN0aW9uLm1hcmtlcj8uc2VsZWN0KGFjdGlvbikpO1xuICB9XG5cbiAgLyoqIENsb3NlcyB0aGUgbmF2aWdhdGlvbi4gKi9cbiAgcHVibGljIGNsb3NlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnN0YXRlICE9PSAnb3BlbmVkJyB8fCAhdGhpcy5kaXNwYXRjaEJlZm9yZUNsb3NlRXZlbnQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc3RhdGUgPSAnY2xvc2luZyc7XG4gICAgdGhpcy5zdGFydFVwZGF0ZSgpO1xuICAgIGlmICh0aGlzLl90cmlnZ2VyRWxlbWVudCkge1xuICAgICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQuYXJpYUV4cGFuZGVkID0gJ2ZhbHNlJztcbiAgICB9XG5cbiAgICAvLyBJZiB0aGUgYW5pbWF0aW9uIGR1cmF0aW9uIGlzIHplcm8sIHRoZSBhbmltYXRpb25lbmQgZXZlbnQgaXMgbm90IGFsd2F5cyBmaXJlZCByZWxpYWJseS5cbiAgICAvLyBJbiB0aGlzIGNhc2Ugd2UgZGlyZWN0bHkgc2V0IHRoZSBgY2xvc2VkYCBzdGF0ZS5cbiAgICBpZiAodGhpcy5faXNaZXJvQW5pbWF0aW9uRHVyYXRpb24oKSkge1xuICAgICAgdGhpcy5faGFuZGxlQ2xvc2luZygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2lzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc1plcm9BbmltYXRpb25EdXJhdGlvbih0aGlzLCAnLS1zYmItbmF2aWdhdGlvbi1hbmltYXRpb24tZHVyYXRpb24nKTtcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZUNsb3NpbmcoKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZSA9ICdjbG9zZWQnO1xuICAgIHRoaXMuaGlkZVBvcG92ZXI/LigpO1xuICAgIHRoaXMubmF2aWdhdGlvbkNvbnRlbnQ/LnNjcm9sbFRvKDAsIDApO1xuICAgIHRoaXMuX2luZXJ0Q29udHJvbGxlci5kZWFjdGl2YXRlKCk7XG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQ/LmZvY3VzKCk7XG4gICAgdGhpcy5fZXNjYXBhYmxlT3ZlcmxheUNvbnRyb2xsZXIuZGlzY29ubmVjdCgpO1xuICAgIHRoaXMuZGlzcGF0Y2hDbG9zZUV2ZW50KCk7XG4gICAgdGhpcy5fbmF2aWdhdGlvblJlc2l6ZU9ic2VydmVyLnVub2JzZXJ2ZSh0aGlzKTtcbiAgICB0aGlzLl9yZXNldE1hcmtlcnMoKTtcbiAgICB0aGlzLl9mb2N1c1RyYXBDb250cm9sbGVyLmVuYWJsZWQgPSBmYWxzZTtcblxuICAgIC8vIEVuYWJsZSBzY3JvbGxpbmcgZm9yIGNvbnRlbnQgYmVsb3cgdGhlIG5hdmlnYXRpb25cbiAgICB0aGlzLl9zY3JvbGxIYW5kbGVyLmVuYWJsZVNjcm9sbCgpO1xuICAgIHRoaXMuY29tcGxldGVVcGRhdGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZU9wZW5pbmcoKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZSA9ICdvcGVuZWQnO1xuICAgIHRoaXMuX25hdmlnYXRpb25SZXNpemVPYnNlcnZlci5vYnNlcnZlKHRoaXMpO1xuICAgIHRoaXMuX2luZXJ0Q29udHJvbGxlci5hY3RpdmF0ZSgpO1xuICAgIHRoaXMuX2VzY2FwYWJsZU92ZXJsYXlDb250cm9sbGVyLmNvbm5lY3QoKTtcbiAgICB0aGlzLl9mb2N1c1RyYXBDb250cm9sbGVyLmZvY3VzSW5pdGlhbEVsZW1lbnQoKTtcbiAgICB0aGlzLl9mb2N1c1RyYXBDb250cm9sbGVyLmVuYWJsZWQgPSB0cnVlO1xuICAgIHRoaXMuY29tcGxldGVVcGRhdGUoKTtcbiAgICB0aGlzLmRpc3BhdGNoT3BlbkV2ZW50KCk7XG4gIH1cblxuICAvLyBSZW1vdmVzIHRyaWdnZXIgY2xpY2sgbGlzdGVuZXIgb24gdHJpZ2dlciBjaGFuZ2UuXG4gIC8vIENoZWNrIGlmIHRoZSB0cmlnZ2VyIGlzIHZhbGlkIGFuZCBhdHRhY2ggY2xpY2sgZXZlbnQgbGlzdGVuZXJzLlxuICBwcml2YXRlIF9jb25maWd1cmVUcmlnZ2VyKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnRyaWdnZXIgPT09IHRoaXMuX3RyaWdnZXJFbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fdHJpZ2dlckFib3J0Q29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICByZW1vdmVBcmlhT3ZlcmxheVRyaWdnZXJQcm9wZXJ0aWVzKHRoaXMuX3RyaWdnZXJFbGVtZW50KTtcbiAgICB0aGlzLl90cmlnZ2VyRWxlbWVudCA9IHRoaXMudHJpZ2dlcjtcblxuICAgIGlmICghdGhpcy5fdHJpZ2dlckVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBzZXRBcmlhT3ZlcmxheVRyaWdnZXJQcm9wZXJ0aWVzKHRoaXMsIHRoaXMuX3RyaWdnZXJFbGVtZW50LCAnbWVudScsIHRoaXMuc3RhdGUpO1xuICAgIHRoaXMuX3RyaWdnZXJBYm9ydENvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB0aGlzLm9wZW4oKSwge1xuICAgICAgc2lnbmFsOiB0aGlzLl90cmlnZ2VyQWJvcnRDb250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcbiAgfVxuXG4gIC8vIEluIHJhcmUgY2FzZXMgaXQgY2FuIGJlIHRoYXQgdGhlIGFuaW1hdGlvbkVuZCBldmVudCBpcyB0cmlnZ2VyZWQgdHdpY2UuXG4gIC8vIFRvIGF2b2lkIGVudGVyaW5nIGEgY29ycnVwdCBzdGF0ZSwgZXhpdCB3aGVuIHN0YXRlIGlzIG5vdCBleHBlY3RlZC5cbiAgcHJpdmF0ZSBfb25BbmltYXRpb25FbmQoZXZlbnQ6IEFuaW1hdGlvbkV2ZW50KTogdm9pZCB7XG4gICAgaWYgKGV2ZW50LmFuaW1hdGlvbk5hbWUgPT09ICdvcGVuJyAmJiB0aGlzLnN0YXRlID09PSAnb3BlbmluZycpIHtcbiAgICAgIHRoaXMuX2hhbmRsZU9wZW5pbmcoKTtcbiAgICB9IGVsc2UgaWYgKGV2ZW50LmFuaW1hdGlvbk5hbWUgPT09ICdjbG9zZScgJiYgdGhpcy5zdGF0ZSA9PT0gJ2Nsb3NpbmcnKSB7XG4gICAgICB0aGlzLl9oYW5kbGVDbG9zaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfcmVzZXRNYXJrZXJzKCk6IHZvaWQge1xuICAgIGNvbnN0IGFjdGl2ZUFjdGlvbnMgPSBBcnJheS5mcm9tKFxuICAgICAgdGhpcy5xdWVyeVNlbGVjdG9yQWxsKFxuICAgICAgICAnOmlzKHNiYi1uYXZpZ2F0aW9uLWJ1dHRvbiwgc2JiLW5hdmlnYXRpb24tbGluayk6c3RhdGUoYWN0aW9uLWFjdGl2ZSk6bm90KC5zYmItYWN0aXZlKScsXG4gICAgICApLFxuICAgICkgYXMgKFNiYk5hdmlnYXRpb25CdXR0b25FbGVtZW50IHwgU2JiTmF2aWdhdGlvbkxpbmtFbGVtZW50KVtdO1xuICAgIGFjdGl2ZUFjdGlvbnM/LmZvckVhY2goKGFjdGlvbikgPT4gYWN0aW9uLm1hcmtlcj8ucmVzZXQoKSk7XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVOYXZpZ2F0aW9uQ2xvc2UoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgZXZlbnRcbiAgICAgICAgLmNvbXBvc2VkUGF0aCgpXG4gICAgICAgIC5zb21lKFxuICAgICAgICAgIChlbCwgaSwgYSkgPT5cbiAgICAgICAgICAgIGVsIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQgJiZcbiAgICAgICAgICAgIGkgPCBhLmluZGV4T2YodGhpcykgJiZcbiAgICAgICAgICAgIChlbC5ub2RlTmFtZSA9PT0gJ0EnIHx8XG4gICAgICAgICAgICAgIChlbC5oYXNBdHRyaWJ1dGUoJ3NiYi1uYXZpZ2F0aW9uLWNsb3NlJykgJiYgIWVsLmhhc0F0dHJpYnV0ZSgnZGlzYWJsZWQnKSkpLFxuICAgICAgICApXG4gICAgKSB7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfVxuICB9XG5cbiAgLy8gQ2hlY2sgaWYgdGhlIHBvaW50ZXJkb3duIGV2ZW50IHRhcmdldCBpcyB0cmlnZ2VyZWQgb24gdGhlIG5hdmlnYXRpb24uXG4gIHByaXZhdGUgX3BvaW50ZXJEb3duTGlzdGVuZXIgPSAoZXZlbnQ6IFBvaW50ZXJFdmVudCk6IHZvaWQgPT4ge1xuICAgIHRoaXMuX2lzUG9pbnRlckRvd25FdmVudE9uTmF2aWdhdGlvbiA9XG4gICAgICBpc0V2ZW50T25FbGVtZW50KHRoaXMuX25hdmlnYXRpb24sIGV2ZW50KSB8fFxuICAgICAgaXNFdmVudE9uRWxlbWVudChcbiAgICAgICAgdGhpcy5xdWVyeVNlbGVjdG9yKCdzYmItbmF2aWdhdGlvbi1zZWN0aW9uOnN0YXRlKHN0YXRlLW9wZW5lZCknKT8uc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihcbiAgICAgICAgICAnbmF2LnNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24nLFxuICAgICAgICApIGFzIEhUTUxFbGVtZW50LFxuICAgICAgICBldmVudCxcbiAgICAgICk7XG4gIH07XG5cbiAgLy8gQ2xvc2UgbmF2aWdhdGlvbiBvbiBiYWNrZHJvcCBjbGljay5cbiAgcHJpdmF0ZSBfY2xvc2VPbkJhY2tkcm9wQ2xpY2sgPSAoZXZlbnQ6IFBvaW50ZXJFdmVudCk6IHZvaWQgPT4ge1xuICAgIGlmICghdGhpcy5faXNQb2ludGVyRG93bkV2ZW50T25OYXZpZ2F0aW9uICYmICFpc0V2ZW50T25FbGVtZW50KHRoaXMuX25hdmlnYXRpb24sIGV2ZW50KSkge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cbiAgfTtcblxuICBwcml2YXRlIF9vbk5hdmlnYXRpb25SZXNpemUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3RhdGUgIT09ICdvcGVuZWQnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX3Jlc2l6ZU9ic2VydmVyVGltZW91dCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX3Jlc2l6ZU9ic2VydmVyVGltZW91dCk7XG4gICAgfVxuXG4gICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmFkZCgncmVzaXplLWRpc2FibGUtYW5pbWF0aW9uJyk7XG5cbiAgICAvLyBEaXNhYmxlIHRoZSBhbmltYXRpb24gd2hlbiByZXNpemluZyB0aGUgbmF2aWdhdGlvbiB0byBhdm9pZCBzdHJhbmdlIGhlaWdodCB0cmFuc2l0aW9uIGVmZmVjdHMuXG4gICAgdGhpcy5fcmVzaXplT2JzZXJ2ZXJUaW1lb3V0ID0gc2V0VGltZW91dChcbiAgICAgICgpID0+IHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5kZWxldGUoJ3Jlc2l6ZS1kaXNhYmxlLWFuaW1hdGlvbicpLFxuICAgICAgREVCT1VOQ0VfVElNRSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5wb3BvdmVyID0gJ21hbnVhbCc7XG4gICAgaWYgKHRoaXMuaGFzVXBkYXRlZCkge1xuICAgICAgdGhpcy5fY29uZmlndXJlVHJpZ2dlcigpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBkaXNjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50ID0gbnVsbDtcbiAgICB0aGlzLl90cmlnZ2VyQWJvcnRDb250cm9sbGVyPy5hYm9ydCgpO1xuICAgIHRoaXMuX3Njcm9sbEhhbmRsZXIuZW5hYmxlU2Nyb2xsKCk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgcmVxdWVzdFVwZGF0ZShcbiAgICBuYW1lPzogUHJvcGVydHlLZXksXG4gICAgb2xkVmFsdWU/OiB1bmtub3duLFxuICAgIG9wdGlvbnM/OiBQcm9wZXJ0eURlY2xhcmF0aW9uLFxuICApOiB2b2lkIHtcbiAgICBzdXBlci5yZXF1ZXN0VXBkYXRlKG5hbWUsIG9sZFZhbHVlLCBvcHRpb25zKTtcblxuICAgIGlmICghaXNTZXJ2ZXIgJiYgKCFuYW1lIHx8IG5hbWUgPT09ICd0cmlnZ2VyJykgJiYgdGhpcy5oYXNVcGRhdGVkKSB7XG4gICAgICB0aGlzLl9jb25maWd1cmVUcmlnZ2VyKCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci5maXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuICAgIHRoaXMuX2NvbmZpZ3VyZVRyaWdnZXIoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIGNvbnN0IGNsb3NlQnV0dG9uID0gaHRtbGBcbiAgICAgIDxzYmItdHJhbnNwYXJlbnQtYnV0dG9uXG4gICAgICAgIGlkPVwic2JiLW5hdmlnYXRpb24tY2xvc2UtYnV0dG9uXCJcbiAgICAgICAgY2xhc3M9XCJzYmItbmF2aWdhdGlvbl9fY2xvc2VcIlxuICAgICAgICBhcmlhLWxhYmVsPSR7dGhpcy5hY2Nlc3NpYmlsaXR5Q2xvc2VMYWJlbCB8fCBpMThuQ2xvc2VOYXZpZ2F0aW9uW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfVxuICAgICAgICBhcmlhLWNvbnRyb2xzPVwic2JiLW5hdmlnYXRpb24tb3ZlcmxheVwiXG4gICAgICAgIG5lZ2F0aXZlXG4gICAgICAgIHNpemU9XCJtXCJcbiAgICAgICAgaWNvbi1uYW1lPVwiY3Jvc3Mtc21hbGxcIlxuICAgICAgICBzYmItbmF2aWdhdGlvbi1jbG9zZVxuICAgICAgPjwvc2JiLXRyYW5zcGFyZW50LWJ1dHRvbj5cbiAgICBgO1xuXG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwic2JiLW5hdmlnYXRpb25fX2NvbnRhaW5lclwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgaWQ9XCJzYmItbmF2aWdhdGlvbi1vdmVybGF5XCJcbiAgICAgICAgICBAYW5pbWF0aW9uZW5kPSR7dGhpcy5fb25BbmltYXRpb25FbmR9XG4gICAgICAgICAgY2xhc3M9XCJzYmItbmF2aWdhdGlvblwiXG4gICAgICAgICAgJHtyZWYoKG5hdmlnYXRpb25SZWY/OiBFbGVtZW50KSA9PiAodGhpcy5fbmF2aWdhdGlvbiA9IG5hdmlnYXRpb25SZWYgYXMgSFRNTERpdkVsZW1lbnQpKX1cbiAgICAgICAgPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYmItbmF2aWdhdGlvbl9faGVhZGVyXCI+JHtjbG9zZUJ1dHRvbn08L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2JiLW5hdmlnYXRpb25fX3dyYXBwZXJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYmItbmF2aWdhdGlvbl9fY29udGVudCBzYmItc2Nyb2xsYmFyLW5lZ2F0aXZlXCI+XG4gICAgICAgICAgICAgIDxzbG90Pjwvc2xvdD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHNsb3QgbmFtZT1cIm5hdmlnYXRpb24tc2VjdGlvblwiPjwvc2xvdD5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1uYXZpZ2F0aW9uJzogU2JiTmF2aWdhdGlvbkVsZW1lbnQ7XG4gIH1cbn1c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
@@ -3,8 +3,8 @@ import { SbbNavigationButtonElement } from "./navigation/navigation-button/navig
3
3
  import { SbbNavigationLinkElement } from "./navigation/navigation-link/navigation-link.component.js";
4
4
  import { t as SbbNavigationListElement } from "./navigation-list.component-CWOSnwgm.js";
5
5
  import { t as SbbNavigationMarkerElement } from "./navigation-marker.component-D3Vbe1dH.js";
6
- import { t as SbbNavigationSectionElement } from "./navigation-section.component-DhMQspKb.js";
7
- import { t as SbbNavigationElement } from "./navigation.component-BOBqdfXo.js";
6
+ import { t as SbbNavigationSectionElement } from "./navigation-section.component-34GEIPaN.js";
7
+ import { t as SbbNavigationElement } from "./navigation.component-CqQuaq7V.js";
8
8
  import "./navigation.pure.js";
9
9
  //#region src/elements/navigation.ts
10
10
  /** @entrypoint */
@@ -3,6 +3,6 @@ import { SbbNavigationButtonElement } from "./navigation/navigation-button/navig
3
3
  import { SbbNavigationLinkElement } from "./navigation/navigation-link/navigation-link.component.js";
4
4
  import { t as SbbNavigationListElement } from "./navigation-list.component-CWOSnwgm.js";
5
5
  import { t as SbbNavigationMarkerElement } from "./navigation-marker.component-D3Vbe1dH.js";
6
- import { t as SbbNavigationSectionElement } from "./navigation-section.component-DhMQspKb.js";
7
- import { t as SbbNavigationElement } from "./navigation.component-BOBqdfXo.js";
6
+ import { t as SbbNavigationSectionElement } from "./navigation-section.component-34GEIPaN.js";
7
+ import { t as SbbNavigationElement } from "./navigation.component-CqQuaq7V.js";
8
8
  export { SbbNavigationActionCommonElementMixin, SbbNavigationButtonElement, SbbNavigationElement, SbbNavigationLinkElement, SbbNavigationListElement, SbbNavigationMarkerElement, SbbNavigationSectionElement };
@@ -1 +1 @@
1
- {"version":3,"file":"overlay-base-element.d.ts","sourceRoot":"","sources":["../../../../src/elements/overlay/overlay-base-element.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"overlay-base-element.d.ts","sourceRoot":"","sources":["../../../../src/elements/overlay/overlay-base-element.ts"],"names":[],"mappings":"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"}
@@ -213,8 +213,8 @@ var SbbOverlayBaseElement = (() => {
213
213
  if (indexInOverlayRefs > -1) overlayRefs.splice(indexInOverlayRefs, 1);
214
214
  }
215
215
  closeOnSbbOverlayCloseClick(event) {
216
- const overlayCloseElement = event.composedPath().filter((e) => e instanceof window.HTMLElement).find((target) => (target.hasAttribute(this.closeAttribute) || target.localName === this.closeTag) && !target.hasAttribute("disabled"));
217
- if (!overlayCloseElement || overlayCloseElement.closest(this.localName) !== this && !this.shadowRoot?.contains(overlayCloseElement)) return;
216
+ const overlayCloseElement = event.composedPath().find((el, i, a) => el instanceof HTMLElement && i < a.indexOf(this) && (el.hasAttribute(this.closeAttribute) || el.localName === this.closeTag) && !el.hasAttribute("disabled") && (el.closest(this.localName) === this || (this.shadowRoot?.contains(el) ?? false)));
217
+ if (!overlayCloseElement) return;
218
218
  if (overlayRefs.length) overlayRefs[overlayRefs.length - 1]._close(null, overlayCloseElement);
219
219
  }
220
220
  removeAriaLiveRefContent() {
@@ -235,4 +235,4 @@ var SbbOverlayBaseElement = (() => {
235
235
  //#endregion
236
236
  export { SbbOverlayBaseElement, SbbOverlayCloseEvent, assignOverlayResult, overlayRefs };
237
237
 
238
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS1iYXNlLWVsZW1lbnQuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL292ZXJsYXkvb3ZlcmxheS1iYXNlLWVsZW1lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBDU1NSZXN1bHRHcm91cCwgaXNTZXJ2ZXIsIHR5cGUgUHJvcGVydHlEZWNsYXJhdGlvbiwgdHlwZSBQcm9wZXJ0eVZhbHVlcyB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHtcbiAgZm9yY2VUeXBlLFxuICBpMThuRGlhbG9nLFxuICBpZFJlZmVyZW5jZSxcbiAgcG9wb3ZlclJlc2V0U3R5bGVzLFxuICByZW1vdmVBcmlhT3ZlcmxheVRyaWdnZXJQcm9wZXJ0aWVzLFxuICBTYmJFc2NhcGFibGVPdmVybGF5Q29udHJvbGxlcixcbiAgU2JiRm9jdXNUcmFwQ29udHJvbGxlcixcbiAgU2JiSW5lcnRDb250cm9sbGVyLFxuICBTYmJMYW5ndWFnZUNvbnRyb2xsZXIsXG4gIFNiYk5lZ2F0aXZlTWl4aW4sXG4gIFNiYk9wZW5DbG9zZUJhc2VFbGVtZW50LFxuICBTYmJTY3JvbGxIYW5kbGVyLFxuICBzY3JlZW5SZWFkZXJPbmx5U3R5bGVzLFxuICBzZXRBcmlhT3ZlcmxheVRyaWdnZXJQcm9wZXJ0aWVzLFxufSBmcm9tICcuLi9jb3JlLnRzJztcblxuY29uc3Qgb3ZlcmxheVJlc3VsdE1hcCA9IG5ldyBXZWFrTWFwPEhUTUxFbGVtZW50LCBhbnk+KCk7XG5cbmV4cG9ydCBjbGFzcyBTYmJPdmVybGF5Q2xvc2VFdmVudDxUID0gYW55PiBleHRlbmRzIEV2ZW50IHtcbiAgLyoqXG4gICAqIFRoZSByZXN1bHQgYXNzb2NpYXRlZCB3aXRoIHRoZSBjbG9zZWQgb3ZlcmxheS5cbiAgICogVGhpcyBpcyBlaXRoZXIgdGhlIHJlc3VsdCBhc3NpZ25lZCB0byB0aGUgYGNsb3NlVGFyZ2V0YCB2aWFcbiAgICogYGFzc2lnbk92ZXJsYXlSZXN1bHRgIC8gYGFzc2lnbkRpYWxvZ1Jlc3VsdGAgb3IgdGhlIHZhbHVlIG9mIHRoZVxuICAgKiBjb3JyZXNwb25kaW5nIGNsb3NlIGF0dHJpYnV0ZSBvbiB0aGUgYGNsb3NlVGFyZ2V0YFxuICAgKiAoZS5nLiBzYmItb3ZlcmxheS1jbG9zZT1cIm15LXJlc3VsdFwiIG9yIHNiYi1kaWFsb2ctY2xvc2U9XCJteS1yZXN1bHRcIikuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcmVzdWx0OiBUIHwgbnVsbDtcblxuICAvKipcbiAgICogVGhlIGVsZW1lbnQgdGhhdCB3YXMgdXNlZCB0byBjbG9zZSB0aGUgb3ZlcmxheS9kaWFsb2csIGkuZS4gdGhlIGVsZW1lbnQgdGhhdCB0aGVcbiAgICogdXNlciBjbGlja2VkIG9uIHRoYXQgaGFkIHRoZSBjbG9zZSBhdHRyaWJ1dGUuXG4gICAqIEVtcHR5IGlmIGNsb3NlZCBwcm9ncmFtbWF0aWNhbGx5IG9yIHZpYSBFc2NhcGUgcHJlc3MuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgY2xvc2VUYXJnZXQ6IEhUTUxFbGVtZW50IHwgbnVsbDtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgbmFtZTogc3RyaW5nLFxuICAgIHtcbiAgICAgIGNhbmNlbGFibGUsXG4gICAgICBjbG9zZUF0dHJpYnV0ZSxcbiAgICAgIGNsb3NlVGFyZ2V0LFxuICAgICAgcmVzdWx0LFxuICAgIH06IHsgY2FuY2VsYWJsZT86IGJvb2xlYW47IGNsb3NlQXR0cmlidXRlOiBzdHJpbmc7IGNsb3NlVGFyZ2V0PzogSFRNTEVsZW1lbnQ7IHJlc3VsdD86IGFueSB9LFxuICApIHtcbiAgICBzdXBlcihuYW1lLCB7IGNhbmNlbGFibGUgfSk7XG4gICAgdGhpcy5yZXN1bHQgPVxuICAgICAgcmVzdWx0ID8/XG4gICAgICAoIWNsb3NlVGFyZ2V0XG4gICAgICAgID8gbnVsbFxuICAgICAgICA6IChvdmVybGF5UmVzdWx0TWFwLmdldChjbG9zZVRhcmdldCkgPz9cbiAgICAgICAgICAoY2xvc2VUYXJnZXQuZ2V0QXR0cmlidXRlKGNsb3NlQXR0cmlidXRlKT8udHJpbSgpIHx8IG51bGwpKSk7XG4gICAgdGhpcy5jbG9zZVRhcmdldCA9IGNsb3NlVGFyZ2V0ID8/IG51bGw7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFzc2lnbk92ZXJsYXlSZXN1bHQ8VD4oZWxlbWVudDogSFRNTEVsZW1lbnQsIHJlc3VsdDogVCk6IHZvaWQge1xuICBvdmVybGF5UmVzdWx0TWFwLnNldChlbGVtZW50LCByZXN1bHQpO1xufVxuXG4vLyBBIGdsb2JhbCBjb2xsZWN0aW9uIG9mIGV4aXN0aW5nIG92ZXJsYXlzLlxuZXhwb3J0IGNvbnN0IG92ZXJsYXlSZWZzOiBTYmJPdmVybGF5QmFzZUVsZW1lbnRbXSA9IFtdO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2JiT3ZlcmxheUJhc2VFbGVtZW50IGV4dGVuZHMgU2JiTmVnYXRpdmVNaXhpbihTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudCkge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbcG9wb3ZlclJlc2V0U3R5bGVzLCBzY3JlZW5SZWFkZXJPbmx5U3R5bGVzXTtcblxuICAvKipcbiAgICogVGhlIGVsZW1lbnQgdGhhdCB3aWxsIHRyaWdnZXIgdGhlIG1lbnUgb3ZlcmxheS5cbiAgICpcbiAgICogRm9yIGF0dHJpYnV0ZSB1c2FnZSwgcHJvdmlkZSBhbiBpZCByZWZlcmVuY2UuXG4gICAqL1xuICBAaWRSZWZlcmVuY2UoKVxuICBAcHJvcGVydHkoKVxuICBwdWJsaWMgYWNjZXNzb3IgdHJpZ2dlcjogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICAvKiogVGhpcyB3aWxsIGJlIGZvcndhcmRlZCBhcyBhcmlhLWxhYmVsIHRvIHRoZSByZWxldmFudCBuZXN0ZWQgZWxlbWVudCB0byBkZXNjcmliZSB0aGUgcHVycG9zZSBvZiB0aGUgb3ZlcmxheS4gKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2FjY2Vzc2liaWxpdHktbGFiZWwnIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBhY2Nlc3NpYmlsaXR5TGFiZWw6IHN0cmluZyA9ICcnO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHNraXAgcmVzdG9yaW5nIGZvY3VzIHRvIHRoZSBwcmV2aW91c2x5LWZvY3VzZWQgZWxlbWVudCB3aGVuIHRoZSBvdmVybGF5IGlzIGNsb3NlZC5cbiAgICogTm90ZSB0aGF0IGF1dG9tYXRpYyBmb2N1cyByZXN0b3JhdGlvbiBpcyBhbiBhY2Nlc3NpYmlsaXR5IGZlYXR1cmUsIGFuZCBpdCBpcyByZWNvbW1lbmRlZCB0aGF0XG4gICAqIHlvdSBwcm92aWRlIHlvdXIgb3duIGVxdWl2YWxlbnQsIGlmIHlvdSBkZWNpZGUgdG8gdHVybiBpdCBvZmYuXG4gICAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3Igc2tpcEZvY3VzUmVzdG9yYXRpb246IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvLyBUaGUgbGFzdCBlbGVtZW50IHdoaWNoIGhhZCBmb2N1cyBiZWZvcmUgdGhlIGNvbXBvbmVudCB3YXMgb3BlbmVkLlxuICBwcm90ZWN0ZWQgbGFzdEZvY3VzZWRFbGVtZW50PzogSFRNTEVsZW1lbnQ7XG4gIHByb3RlY3RlZCBsYXN0Q2xvc2VkVGFyZ2V0PzogSFRNTEVsZW1lbnQ7XG4gIHByb3RlY3RlZCBvcGVuT3ZlcmxheUNvbnRyb2xsZXI/OiBBYm9ydENvbnRyb2xsZXI7XG4gIHByb3RlY3RlZCBmb2N1c1RyYXBDb250cm9sbGVyID0gbmV3IFNiYkZvY3VzVHJhcENvbnRyb2xsZXIodGhpcyk7XG4gIHByb3RlY3RlZCBzY3JvbGxIYW5kbGVyID0gbmV3IFNiYlNjcm9sbEhhbmRsZXIoKTtcbiAgcHJvdGVjdGVkIGxhc3RSZXN1bHQ6IGFueTtcbiAgcHJvdGVjdGVkIGxhbmd1YWdlID0gbmV3IFNiYkxhbmd1YWdlQ29udHJvbGxlcih0aGlzKTtcbiAgcHJvdGVjdGVkIGluZXJ0Q29udHJvbGxlciA9IG5ldyBTYmJJbmVydENvbnRyb2xsZXIodGhpcyk7XG4gIHByb3RlY3RlZCBlc2NhcGFibGVPdmVybGF5Q29udHJvbGxlciA9IG5ldyBTYmJFc2NhcGFibGVPdmVybGF5Q29udHJvbGxlcih0aGlzKTtcblxuICBwcml2YXRlIF9hcmlhTGl2ZVJlZlRvZ2dsZSA9IGZhbHNlO1xuICBwcml2YXRlIF9hcmlhTGl2ZVJlZj86IEhUTUxFbGVtZW50O1xuICBwcml2YXRlIF90cmlnZ2VyRWxlbWVudDogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBfdHJpZ2dlckFib3J0Q29udHJvbGxlcj86IEFib3J0Q29udHJvbGxlcjtcblxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgY2xvc2VBdHRyaWJ1dGU6IHN0cmluZztcbiAgcHJvdGVjdGVkIGNsb3NlVGFnPzogc3RyaW5nO1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgaGFuZGxlT3BlbmluZygpOiB2b2lkO1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgaGFuZGxlQ2xvc2luZygpOiB2b2lkO1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24oKTogYm9vbGVhbjtcbiAgcHJvdGVjdGVkIGFic3RyYWN0IG92ZXJyaWRlIGRpc3BhdGNoQmVmb3JlQ2xvc2VFdmVudCgpOiBib29sZWFuO1xuICBwcm90ZWN0ZWQgYWJzdHJhY3Qgb3ZlcnJpZGUgZGlzcGF0Y2hDbG9zZUV2ZW50KCk6IGJvb2xlYW47XG5cbiAgLyoqIE9wZW5zIHRoZSBjb21wb25lbnQuICovXG4gIHB1YmxpYyBvcGVuKCk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgIHRoaXMuc3RhdGUgPT09ICdvcGVuaW5nJyB8fFxuICAgICAgdGhpcy5zdGF0ZSA9PT0gJ29wZW5lZCcgfHxcbiAgICAgIHRoaXMuX2hhc0Nsb3NlZFBhcmVudCgpIHx8XG4gICAgICAhdGhpcy5kaXNwYXRjaEJlZm9yZU9wZW5FdmVudCgpXG4gICAgKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5sYXN0Rm9jdXNlZEVsZW1lbnQgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuXG4gICAgdGhpcy5zaG93UG9wb3Zlcj8uKCk7XG4gICAgdGhpcy5zdGF0ZSA9ICdvcGVuaW5nJztcblxuICAgIGlmICh0aGlzLl90cmlnZ2VyRWxlbWVudCkge1xuICAgICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQuYXJpYUV4cGFuZGVkID0gJ3RydWUnO1xuICAgIH1cblxuICAgIC8vIEFkZCB0aGlzIG92ZXJsYXkgdG8gdGhlIGdsb2JhbCBjb2xsZWN0aW9uXG4gICAgb3ZlcmxheVJlZnMucHVzaCh0aGlzKTtcblxuICAgIHRoaXMuc2Nyb2xsSGFuZGxlci5kaXNhYmxlU2Nyb2xsKCk7XG4gICAgdGhpcy5lc2NhcGFibGVPdmVybGF5Q29udHJvbGxlci5jb25uZWN0KCk7XG4gICAgdGhpcy5hdHRhY2hPcGVuT3ZlcmxheUV2ZW50cygpO1xuXG4gICAgLy8gSWYgdGhlIGFuaW1hdGlvbiBkdXJhdGlvbiBpcyB6ZXJvLCB0aGUgYW5pbWF0aW9uZW5kIGV2ZW50IGlzIG5vdCBhbHdheXMgZmlyZWQgcmVsaWFibHkuXG4gICAgLy8gSW4gdGhpcyBjYXNlIHdlIGRpcmVjdGx5IHNldCB0aGUgYG9wZW5lZGAgc3RhdGUuXG4gICAgaWYgKHRoaXMuaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24oKSkge1xuICAgICAgdGhpcy5oYW5kbGVPcGVuaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIENsb3NlcyB0aGUgY29tcG9uZW50LiAqL1xuICBwdWJsaWMgY2xvc2UocmVzdWx0PzogYW55KTogdm9pZCB7XG4gICAgdGhpcy5fY2xvc2UocmVzdWx0LCB1bmRlZmluZWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBfY2xvc2UocmVzdWx0OiBhbnksIHRhcmdldDogSFRNTEVsZW1lbnQgfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdGF0ZSA9PT0gJ2Nsb3NpbmcnIHx8IHRoaXMuc3RhdGUgPT09ICdjbG9zZWQnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5sYXN0UmVzdWx0ID0gcmVzdWx0ID8/IG51bGw7XG4gICAgdGhpcy5sYXN0Q2xvc2VkVGFyZ2V0ID0gdGFyZ2V0O1xuICAgIGlmICghdGhpcy5kaXNwYXRjaEJlZm9yZUNsb3NlRXZlbnQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnN0YXRlID0gJ2Nsb3NpbmcnO1xuXG4gICAgaWYgKHRoaXMuX3RyaWdnZXJFbGVtZW50KSB7XG4gICAgICB0aGlzLl90cmlnZ2VyRWxlbWVudC5hcmlhRXhwYW5kZWQgPSAnZmFsc2UnO1xuICAgIH1cbiAgICB0aGlzLnJlbW92ZUFyaWFMaXZlUmVmQ29udGVudCgpO1xuXG4gICAgLy8gSWYgdGhlIGFuaW1hdGlvbiBkdXJhdGlvbiBpcyB6ZXJvLCB0aGUgYW5pbWF0aW9uZW5kIGV2ZW50IGlzIG5vdCBhbHdheXMgZmlyZWQgcmVsaWFibHkuXG4gICAgLy8gSW4gdGhpcyBjYXNlIHdlIGRpcmVjdGx5IHNldCB0aGUgYGNsb3NlZGAgc3RhdGUuXG4gICAgaWYgKHRoaXMuaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24oKSkge1xuICAgICAgdGhpcy5oYW5kbGVDbG9zaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIHRoZXJlIGlzIGEgcGFyZW50IGRpYWxvZyBvciBvdmVybGF5IGluIHRoZSBET00gdGhhdCBpcyBjbG9zZWQuXG4gICAqIEluIHRoaXMgY2FzZSwgdGhlIG92ZXJsYXkgc2hvdWxkIG5vdCBiZSBvcGVuZWQgYmVjYXVzZSBpdCB3b3VsZCBicmVhayB0aGUgc3RhdGUuXG4gICAqIE5vdCBuZXN0ZWQgYnV0IHN0YWNrZWQgb3ZlcmxheXMgYXJlIHN1cHBvcnRlZCBzbyB0aGlzIGxvZ2ljIGRvZXMgbm90IGFwcGx5IGluIHRoaXMgY2FzZS5cbiAgICovXG4gIHByaXZhdGUgX2hhc0Nsb3NlZFBhcmVudCgpOiBib29sZWFuIHtcbiAgICBjb25zdCBwYXJlbnREaWFsb2cgPVxuICAgICAgdGhpcy5wYXJlbnRFbGVtZW50Py5jbG9zZXN0PFNiYk92ZXJsYXlCYXNlRWxlbWVudD4oJ3NiYi1kaWFsb2csIHNiYi1vdmVybGF5Jyk7XG5cbiAgICByZXR1cm4gKHBhcmVudERpYWxvZz8uc3RhdGUgPT09ICdjbG9zZWQnIHx8IHBhcmVudERpYWxvZz8uc3RhdGUgPT09ICdjbG9zaW5nJykgPz8gZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgdGhpcy5wb3BvdmVyID0gJ21hbnVhbCc7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICBpZiAodGhpcy5oYXNVcGRhdGVkKSB7XG4gICAgICB0aGlzLl9jb25maWd1cmVUcmlnZ2VyKCk7XG4gICAgfVxuICB9XG5cbiAgLy8gQ2hlY2sgaWYgdGhlIHRyaWdnZXIgaXMgdmFsaWQgYW5kIGF0dGFjaCBjbGljayBldmVudCBsaXN0ZW5lcnMuXG4gIHByaXZhdGUgX2NvbmZpZ3VyZVRyaWdnZXIoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudHJpZ2dlciA9PT0gdGhpcy5fdHJpZ2dlckVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl90cmlnZ2VyQWJvcnRDb250cm9sbGVyPy5hYm9ydCgpO1xuICAgIHJlbW92ZUFyaWFPdmVybGF5VHJpZ2dlclByb3BlcnRpZXModGhpcy5fdHJpZ2dlckVsZW1lbnQpO1xuICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50ID0gdGhpcy50cmlnZ2VyO1xuXG4gICAgaWYgKCF0aGlzLl90cmlnZ2VyRWxlbWVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHNldEFyaWFPdmVybGF5VHJpZ2dlclByb3BlcnRpZXModGhpcywgdGhpcy5fdHJpZ2dlckVsZW1lbnQsICdkaWFsb2cnLCB0aGlzLnN0YXRlKTtcbiAgICB0aGlzLl90cmlnZ2VyQWJvcnRDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4gdGhpcy5vcGVuKCksIHtcbiAgICAgIHNpZ25hbDogdGhpcy5fdHJpZ2dlckFib3J0Q29udHJvbGxlci5zaWduYWwsXG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLmZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICB0aGlzLl9hcmlhTGl2ZVJlZiA9IHRoaXMuc2hhZG93Um9vdCEucXVlcnlTZWxlY3RvcjxIVE1MRWxlbWVudD4oJy5zYmItc2NyZWVuLXJlYWRlci1vbmx5JykhO1xuICAgIHRoaXMuX2NvbmZpZ3VyZVRyaWdnZXIoKTtcblxuICAgIC8vIElmIHRoZSBjb21wb25lbnQgaXMgYWxyZWFkeSBvcGVuIG9uIGZpcnN0VXBkYXRlLCBmaXggdGhlIGZvY3VzXG4gICAgaWYgKHRoaXMuaXNPcGVuKSB7XG4gICAgICAvLyBUT0RPOiBmaW5kIGJldHRlciBzb2x1dGlvblxuICAgICAgLy8gUHJvYmxlbTogY29udGVudCdzIHNoYWRvdyBET00gbm90IHlldCByZWFkeSwgc28gZm9jdXNpbmcgaXMgaW1wb3NzaWJsZS5cbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLmZvY3VzVHJhcENvbnRyb2xsZXIuZm9jdXNJbml0aWFsRWxlbWVudCgpO1xuICAgICAgfSwgMCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5vcGVuT3ZlcmxheUNvbnRyb2xsZXI/LmFib3J0KCk7XG4gICAgdGhpcy5yZW1vdmVJbnN0YW5jZUZyb21HbG9iYWxDb2xsZWN0aW9uKCk7XG4gICAgdGhpcy5zY3JvbGxIYW5kbGVyLmVuYWJsZVNjcm9sbCgpO1xuICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50ID0gbnVsbDtcbiAgICB0aGlzLl90cmlnZ2VyQWJvcnRDb250cm9sbGVyPy5hYm9ydCgpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIHJlcXVlc3RVcGRhdGUoXG4gICAgbmFtZT86IFByb3BlcnR5S2V5LFxuICAgIG9sZFZhbHVlPzogdW5rbm93bixcbiAgICBvcHRpb25zPzogUHJvcGVydHlEZWNsYXJhdGlvbixcbiAgKTogdm9pZCB7XG4gICAgc3VwZXIucmVxdWVzdFVwZGF0ZShuYW1lLCBvbGRWYWx1ZSwgb3B0aW9ucyk7XG5cbiAgICBpZiAoIWlzU2VydmVyICYmICghbmFtZSB8fCBuYW1lID09PSAndHJpZ2dlcicpICYmIHRoaXMuaGFzVXBkYXRlZCkge1xuICAgICAgdGhpcy5fY29uZmlndXJlVHJpZ2dlcigpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBhdHRhY2hPcGVuT3ZlcmxheUV2ZW50cygpOiB2b2lkIHtcbiAgICB0aGlzLm9wZW5PdmVybGF5Q29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgICAvLyBSZW1vdmUgb3ZlcmxheSBsYWJlbCBhcyBzb29uIGFzIGl0IGlzIG5vdCBuZWVkZWQgYW55IG1vcmUgdG8gcHJldmVudCBhY2Nlc3NpbmcgaXQgd2l0aCBicm93c2UgbW9kZS5cbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICdrZXlkb3duJyxcbiAgICAgICgpID0+IHtcbiAgICAgICAgdGhpcy5yZW1vdmVBcmlhTGl2ZVJlZkNvbnRlbnQoKTtcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHNpZ25hbDogdGhpcy5vcGVuT3ZlcmxheUNvbnRyb2xsZXIuc2lnbmFsLFxuICAgICAgfSxcbiAgICApO1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHRoaXMucmVtb3ZlQXJpYUxpdmVSZWZDb250ZW50KCksIHtcbiAgICAgIHNpZ25hbDogdGhpcy5vcGVuT3ZlcmxheUNvbnRyb2xsZXIuc2lnbmFsLFxuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlbW92ZUluc3RhbmNlRnJvbUdsb2JhbENvbGxlY3Rpb24oKTogdm9pZCB7XG4gICAgY29uc3QgaW5kZXhJbk92ZXJsYXlSZWZzID0gb3ZlcmxheVJlZnMuaW5kZXhPZih0aGlzIGFzIFNiYk92ZXJsYXlCYXNlRWxlbWVudCk7XG4gICAgaWYgKGluZGV4SW5PdmVybGF5UmVmcyA+IC0xKSB7XG4gICAgICBvdmVybGF5UmVmcy5zcGxpY2UoaW5kZXhJbk92ZXJsYXlSZWZzLCAxKTtcbiAgICB9XG4gIH1cblxuICAvLyBDbG9zZSB0aGUgY29tcG9uZW50IG9uIGNsaWNrIG9mIGFueSBlbGVtZW50IHRoYXQgaGFzIHRoZSBgY2xvc2VBdHRyaWJ1dGVgIGF0dHJpYnV0ZS5cbiAgcHJvdGVjdGVkIGNsb3NlT25TYmJPdmVybGF5Q2xvc2VDbGljayhldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBvdmVybGF5Q2xvc2VFbGVtZW50ID0gZXZlbnRcbiAgICAgIC5jb21wb3NlZFBhdGgoKVxuICAgICAgLmZpbHRlcigoZSk6IGUgaXMgSFRNTEVsZW1lbnQgPT4gZSBpbnN0YW5jZW9mIHdpbmRvdy5IVE1MRWxlbWVudClcbiAgICAgIC5maW5kKFxuICAgICAgICAodGFyZ2V0KSA9PlxuICAgICAgICAgICh0YXJnZXQuaGFzQXR0cmlidXRlKHRoaXMuY2xvc2VBdHRyaWJ1dGUpIHx8IHRhcmdldC5sb2NhbE5hbWUgPT09IHRoaXMuY2xvc2VUYWcpICYmXG4gICAgICAgICAgIXRhcmdldC5oYXNBdHRyaWJ1dGUoJ2Rpc2FibGVkJyksXG4gICAgICApO1xuXG4gICAgaWYgKFxuICAgICAgIW92ZXJsYXlDbG9zZUVsZW1lbnQgfHxcbiAgICAgIChvdmVybGF5Q2xvc2VFbGVtZW50LmNsb3Nlc3QodGhpcy5sb2NhbE5hbWUpICE9PSB0aGlzICYmXG4gICAgICAgICF0aGlzLnNoYWRvd1Jvb3Q/LmNvbnRhaW5zKG92ZXJsYXlDbG9zZUVsZW1lbnQpKVxuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChvdmVybGF5UmVmcy5sZW5ndGgpIHtcbiAgICAgIG92ZXJsYXlSZWZzW292ZXJsYXlSZWZzLmxlbmd0aCAtIDFdLl9jbG9zZShudWxsLCBvdmVybGF5Q2xvc2VFbGVtZW50KTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVtb3ZlQXJpYUxpdmVSZWZDb250ZW50KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5fYXJpYUxpdmVSZWYpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fYXJpYUxpdmVSZWYudGV4dENvbnRlbnQgPSAnJztcbiAgfVxuXG4gIHByb3RlY3RlZCBzZXRBcmlhTGl2ZVJlZkNvbnRlbnQobGFiZWw/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2FyaWFMaXZlUmVmKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fYXJpYUxpdmVSZWZUb2dnbGUgPSAhdGhpcy5fYXJpYUxpdmVSZWZUb2dnbGU7XG5cbiAgICAvLyBJZiB0aGUgdGV4dCBjb250ZW50IHJlbWFpbnMgdGhlIHNhbWUsIG9uIFZvaWNlT3ZlciB0aGUgYXJpYS1saXZlIHJlZ2lvbiBpcyBub3QgYW5ub3VuY2VkIGEgc2Vjb25kIHRpbWUuXG4gICAgLy8gSW4gb3JkZXIgdG8gc3VwcG9ydCByZWFkaW5nIG9uIGV2ZXJ5IG9wZW5pbmcsIHdlIHRvZ2dsZSBhbiBpbnZpc2libGUgc3BhY2UuXG4gICAgdGhpcy5fYXJpYUxpdmVSZWYudGV4dENvbnRlbnQgPSBgJHtpMThuRGlhbG9nW3RoaXMubGFuZ3VhZ2UuY3VycmVudF19JHtcbiAgICAgIGxhYmVsID8gYCwgJHtsYWJlbH1gIDogJydcbiAgICB9JHt0aGlzLl9hcmlhTGl2ZVJlZlRvZ2dsZSA/ICfCoCcgOiAnJ31gO1xuICB9XG5cbiAgLy8gV2FpdCBmb3IgZGlhbG9nIHRyYW5zaXRpb24gdG8gY29tcGxldGUuXG4gIC8vIEluIHJhcmUgY2FzZXMsIGl0IGNhbiBiZSB0aGF0IHRoZSBhbmltYXRpb25FbmQgZXZlbnQgaXMgdHJpZ2dlcmVkIHR3aWNlLlxuICAvLyBUbyBhdm9pZCBlbnRlcmluZyBhIGNvcnJ1cHQgc3RhdGUsIGV4aXQgd2hlbiBzdGF0ZSBpcyBub3QgZXhwZWN0ZWQuXG4gIHByb3RlY3RlZCBvbk92ZXJsYXlBbmltYXRpb25FbmQoZXZlbnQ6IEFuaW1hdGlvbkV2ZW50KTogdm9pZCB7XG4gICAgaWYgKGV2ZW50LmFuaW1hdGlvbk5hbWUgPT09ICdvcGVuJyAmJiB0aGlzLnN0YXRlID09PSAnb3BlbmluZycpIHtcbiAgICAgIHRoaXMuaGFuZGxlT3BlbmluZygpO1xuICAgIH0gZWxzZSBpZiAoZXZlbnQuYW5pbWF0aW9uTmFtZSA9PT0gJ2Nsb3NlJyAmJiB0aGlzLnN0YXRlID09PSAnY2xvc2luZycpIHtcbiAgICAgIHRoaXMuaGFuZGxlQ2xvc2luZygpO1xuICAgIH1cbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7OztBQW9CQSxJQUFNLG1DQUFtQixJQUFJLFFBQU87QUFFcEMsSUFBYSx1QkFBYixjQUFtRCxNQUFLO0NBaUJ0RCxZQUNFLE1BQ0EsRUFDRSxZQUNBLGdCQUNBLGFBQ0EsVUFDMEY7RUFFNUYsTUFBTSxNQUFNLEVBQUUsV0FBVSxDQUFFO0VBQzFCLEtBQUssU0FDSCxXQUNDLENBQUMsY0FDRSxPQUNDLGlCQUFpQixJQUFJLFdBQVcsTUFDaEMsWUFBWSxhQUFhLGNBQWMsR0FBRyxLQUFJLEtBQU07RUFDM0QsS0FBSyxjQUFjLGVBQWU7Q0FDcEM7O0FBR0YsU0FBZ0Isb0JBQXVCLFNBQXNCLFFBQVM7Q0FDcEUsaUJBQWlCLElBQUksU0FBUyxNQUFNO0FBQ3RDO0FBR0EsSUFBYSxjQUF1QyxDQUFBO0lBRTlCLCtCQUFxQjttQkFBUyxpQkFBaUIsdUJBQXVCOzs7Ozs7Ozs7O2NBQXRFLDhCQUE4QixZQUF5Qzs7O0dBVTNFLEtBQUEsNEJBQUEsa0JBQUEsTUFBQSx1QkFBOEIsSUFBSTtHQUtsQyxLQUFBLHdDQUFBLGtCQUFBLE1BQUEsMEJBQUEsR0FBQSxrQkFBQSxNQUFBLGtDQUE2QixFQUFFO0dBUy9CLEtBQUEsMENBQUEsa0JBQUEsTUFBQSxxQ0FBQSxHQUFBLGtCQUFBLE1BQUEsb0NBQWdDLEtBQUs7R0FHM0MsS0FBQSxxQkFBa0Isa0JBQUEsTUFBQSx1Q0FBQTtHQUdsQixLQUFBLHNCQUFzQixJQUFJLHVCQUF1QixJQUFJO0dBQ3JELEtBQUEsZ0JBQWdCLElBQUksaUJBQWdCO0dBRXBDLEtBQUEsV0FBVyxJQUFJLHNCQUFzQixJQUFJO0dBQ3pDLEtBQUEsa0JBQWtCLElBQUksbUJBQW1CLElBQUk7R0FDN0MsS0FBQSw2QkFBNkIsSUFBSSw4QkFBOEIsSUFBSTtHQUVyRSxLQUFBLHFCQUFxQjtHQUVyQixLQUFBLGtCQUFzQztFQXVPaEQ7OzswQkF0UUcsWUFBVyxHQUNYLFNBQVEsQ0FBRTtxQ0FJVixVQUFTLEdBQ1QsU0FBUyxFQUFFLFdBQVcsc0JBQXFCLENBQUUsQ0FBQzt1Q0FROUMsVUFBUyxHQUNULFNBQVMsRUFBRSxNQUFNLFFBQU8sQ0FBRSxDQUFDO0dBYjVCLGFBQUEsTUFBQSxNQUFBLHFCQUFBO0lBQUEsTUFBQTtJQUFBLE1BQUE7SUFBQSxRQUFBO0lBQUEsU0FBQTtJQUFBLFFBQUE7S0FBQSxNQUFBLFFBQUEsYUFBQTtLQUFBLE1BQUEsUUFBQSxJQUFnQjtLQUFPLE1BQUEsS0FBQSxVQUFBO01BQUEsSUFBUCxVQUFPO0tBQUE7SUFBQTtJQUFBLFVBQUE7R0FBQSxHQUFBLHVCQUFBLDBCQUFBO0dBS3ZCLGFBQUEsTUFBQSxNQUFBLGdDQUFBO0lBQUEsTUFBQTtJQUFBLE1BQUE7SUFBQSxRQUFBO0lBQUEsU0FBQTtJQUFBLFFBQUE7S0FBQSxNQUFBLFFBQUEsd0JBQUE7S0FBQSxNQUFBLFFBQUEsSUFBZ0I7S0FBa0IsTUFBQSxLQUFBLFVBQUE7TUFBQSxJQUFsQixxQkFBa0I7S0FBQTtJQUFBO0lBQUEsVUFBQTtHQUFBLEdBQUEsa0NBQUEscUNBQUE7R0FTbEMsYUFBQSxNQUFBLE1BQUEsa0NBQUE7SUFBQSxNQUFBO0lBQUEsTUFBQTtJQUFBLFFBQUE7SUFBQSxTQUFBO0lBQUEsUUFBQTtLQUFBLE1BQUEsUUFBQSwwQkFBQTtLQUFBLE1BQUEsUUFBQSxJQUFnQjtLQUFvQixNQUFBLEtBQUEsVUFBQTtNQUFBLElBQXBCLHVCQUFvQjtLQUFBO0lBQUE7SUFBQSxVQUFBO0dBQUEsR0FBQSxvQ0FBQSx1Q0FBQTs7Ozs7Ozs7O0dBdkJiLEtBQUEsU0FBeUIsQ0FBQyxvQkFBb0Isc0JBQXNCO0VBQUU7RUFTN0Y7Ozs7OztFQUFBLElBQWdCLFVBQU87R0FBQSxPQUFBLEtBQUE7RUFBQTtFQUF2QixJQUFnQixRQUFPLE9BQUE7R0FBQSxLQUFBLDRCQUFBO0VBQUE7RUFLdkI7O0VBQUEsSUFBZ0IscUJBQWtCO0dBQUEsT0FBQSxLQUFBO0VBQUE7RUFBbEMsSUFBZ0IsbUJBQWtCLE9BQUE7R0FBQSxLQUFBLHVDQUFBO0VBQUE7RUFTbEM7Ozs7OztFQUFBLElBQWdCLHVCQUFvQjtHQUFBLE9BQUEsS0FBQTtFQUFBO0VBQXBDLElBQWdCLHFCQUFvQixPQUFBO0dBQUEsS0FBQSx5Q0FBQTtFQUFBOztFQTJCN0IsT0FBSTtHQUNULElBQ0UsS0FBSyxVQUFVLGFBQ2YsS0FBSyxVQUFVLFlBQ2YsS0FBSyxpQkFBZ0IsS0FDckIsQ0FBQyxLQUFLLHdCQUF1QixHQUU3QjtHQUdGLEtBQUsscUJBQXFCLFNBQVM7R0FFbkMsS0FBSyxjQUFhO0dBQ2xCLEtBQUssUUFBUTtHQUViLElBQUksS0FBSyxpQkFDUCxLQUFLLGdCQUFnQixlQUFlO0dBSXRDLFlBQVksS0FBSyxJQUFJO0dBRXJCLEtBQUssY0FBYyxjQUFhO0dBQ2hDLEtBQUssMkJBQTJCLFFBQU87R0FDdkMsS0FBSyx3QkFBdUI7R0FJNUIsSUFBSSxLQUFLLHdCQUF1QixHQUM5QixLQUFLLGNBQWE7RUFFdEI7O0VBR08sTUFBTSxRQUFZO0dBQ3ZCLEtBQUssT0FBTyxRQUFRLEtBQUEsQ0FBUztFQUMvQjtFQUVRLE9BQU8sUUFBYSxRQUErQjtHQUN6RCxJQUFJLEtBQUssVUFBVSxhQUFhLEtBQUssVUFBVSxVQUM3QztHQUdGLEtBQUssYUFBYSxVQUFVO0dBQzVCLEtBQUssbUJBQW1CO0dBQ3hCLElBQUksQ0FBQyxLQUFLLHlCQUF3QixHQUNoQztHQUVGLEtBQUssUUFBUTtHQUViLElBQUksS0FBSyxpQkFDUCxLQUFLLGdCQUFnQixlQUFlO0dBRXRDLEtBQUsseUJBQXdCO0dBSTdCLElBQUksS0FBSyx3QkFBdUIsR0FDOUIsS0FBSyxjQUFhO0VBRXRCOzs7Ozs7RUFPUSxtQkFBZ0I7R0FDdEIsTUFBTSxlQUNKLEtBQUssZUFBZSxRQUErQix5QkFBeUI7R0FFOUUsT0FBUSxjQUFjLFVBQVUsWUFBWSxjQUFjLFVBQVU7RUFDdEU7RUFFZ0Isb0JBQWlCO0dBQy9CLEtBQUssVUFBVTtHQUNmLE1BQU0sa0JBQWlCO0dBQ3ZCLElBQUksS0FBSyxZQUNQLEtBQUssa0JBQWlCO0VBRTFCO0VBR1Esb0JBQWlCO0dBQ3ZCLElBQUksS0FBSyxZQUFZLEtBQUssaUJBQ3hCO0dBR0YsS0FBSyx5QkFBeUIsTUFBSztHQUNuQyxtQ0FBbUMsS0FBSyxlQUFlO0dBQ3ZELEtBQUssa0JBQWtCLEtBQUs7R0FFNUIsSUFBSSxDQUFDLEtBQUssaUJBQ1I7R0FHRixnQ0FBZ0MsTUFBTSxLQUFLLGlCQUFpQixVQUFVLEtBQUssS0FBSztHQUNoRixLQUFLLDBCQUEwQixJQUFJLGdCQUFlO0dBQ2xELEtBQUssZ0JBQWdCLGlCQUFpQixlQUFlLEtBQUssS0FBSSxHQUFJLEVBQ2hFLFFBQVEsS0FBSyx3QkFBd0IsT0FBQSxDQUN0QztFQUNIO0VBRW1CLGFBQWEsbUJBQXVDO0dBQ3JFLE1BQU0sYUFBYSxpQkFBaUI7R0FFcEMsS0FBSyxlQUFlLEtBQUssV0FBWSxjQUEyQix5QkFBeUI7R0FDekYsS0FBSyxrQkFBaUI7R0FHdEIsSUFBSSxLQUFLLFFBR1AsaUJBQWdCO0lBQ2QsS0FBSyxvQkFBb0Isb0JBQW1CO0dBQzlDLEdBQUcsQ0FBQztFQUVSO0VBRWdCLHVCQUFvQjtHQUNsQyxNQUFNLHFCQUFvQjtHQUMxQixLQUFLLHVCQUF1QixNQUFLO0dBQ2pDLEtBQUssbUNBQWtDO0dBQ3ZDLEtBQUssY0FBYyxhQUFZO0dBQy9CLEtBQUssa0JBQWtCO0dBQ3ZCLEtBQUsseUJBQXlCLE1BQUs7RUFDckM7RUFFZ0IsY0FDZCxNQUNBLFVBQ0EsU0FBNkI7R0FFN0IsTUFBTSxjQUFjLE1BQU0sVUFBVSxPQUFPO0dBRTNDLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxTQUFTLGNBQWMsS0FBSyxZQUNyRCxLQUFLLGtCQUFpQjtFQUUxQjtFQUVVLDBCQUF1QjtHQUMvQixLQUFLLHdCQUF3QixJQUFJLGdCQUFlO0dBRWhELE9BQU8saUJBQ0wsaUJBQ0s7SUFDSCxLQUFLLHlCQUF3QjtHQUMvQixHQUNBLEVBQ0UsUUFBUSxLQUFLLHNCQUFzQixPQUFBLENBQ3BDO0dBRUgsT0FBTyxpQkFBaUIsZUFBZSxLQUFLLHlCQUF3QixHQUFJLEVBQ3RFLFFBQVEsS0FBSyxzQkFBc0IsT0FBQSxDQUNwQztFQUNIO0VBRVUscUNBQWtDO0dBQzFDLE1BQU0scUJBQXFCLFlBQVksUUFBUSxJQUE2QjtHQUM1RSxJQUFJLHFCQUFxQixJQUN2QixZQUFZLE9BQU8sb0JBQW9CLENBQUM7RUFFNUM7RUFHVSw0QkFBNEIsT0FBWTtHQUNoRCxNQUFNLHNCQUFzQixNQUN6QixhQUFZLEVBQ1osUUFBUSxNQUF3QixhQUFhLE9BQU8sV0FBVyxFQUMvRCxNQUNFLFlBQ0UsT0FBTyxhQUFhLEtBQUssY0FBYyxLQUFLLE9BQU8sY0FBYyxLQUFLLGFBQ3ZFLENBQUMsT0FBTyxhQUFhLFVBQVUsQ0FBQztHQUd0QyxJQUNFLENBQUMsdUJBQ0Esb0JBQW9CLFFBQVEsS0FBSyxTQUFTLE1BQU0sUUFDL0MsQ0FBQyxLQUFLLFlBQVksU0FBUyxtQkFBbUIsR0FFaEQ7R0FHRixJQUFJLFlBQVksUUFDZCxZQUFZLFlBQVksU0FBUyxHQUFHLE9BQU8sTUFBTSxtQkFBbUI7RUFFeEU7RUFFVSwyQkFBd0I7R0FDaEMsSUFBSSxDQUFDLEtBQUssY0FDUjtHQUVGLEtBQUssYUFBYSxjQUFjO0VBQ2xDO0VBRVUsc0JBQXNCLE9BQWM7R0FDNUMsSUFBSSxDQUFDLEtBQUssY0FDUjtHQUdGLEtBQUsscUJBQXFCLENBQUMsS0FBSztHQUloQyxLQUFLLGFBQWEsY0FBYyxHQUFHLFdBQVcsS0FBSyxTQUFTLFdBQzFELFFBQVEsS0FBSyxVQUFVLEtBQ3RCLEtBQUsscUJBQXFCLFNBQU07RUFDckM7RUFLVSxzQkFBc0IsT0FBcUI7R0FDbkQsSUFBSSxNQUFNLGtCQUFrQixVQUFVLEtBQUssVUFBVSxXQUNuRCxLQUFLLGNBQWE7UUFDYixJQUFJLE1BQU0sa0JBQWtCLFdBQVcsS0FBSyxVQUFVLFdBQzNELEtBQUssY0FBYTtFQUV0QiJ9
238
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS1iYXNlLWVsZW1lbnQuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL292ZXJsYXkvb3ZlcmxheS1iYXNlLWVsZW1lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBDU1NSZXN1bHRHcm91cCwgaXNTZXJ2ZXIsIHR5cGUgUHJvcGVydHlEZWNsYXJhdGlvbiwgdHlwZSBQcm9wZXJ0eVZhbHVlcyB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHtcbiAgZm9yY2VUeXBlLFxuICBpMThuRGlhbG9nLFxuICBpZFJlZmVyZW5jZSxcbiAgcG9wb3ZlclJlc2V0U3R5bGVzLFxuICByZW1vdmVBcmlhT3ZlcmxheVRyaWdnZXJQcm9wZXJ0aWVzLFxuICBTYmJFc2NhcGFibGVPdmVybGF5Q29udHJvbGxlcixcbiAgU2JiRm9jdXNUcmFwQ29udHJvbGxlcixcbiAgU2JiSW5lcnRDb250cm9sbGVyLFxuICBTYmJMYW5ndWFnZUNvbnRyb2xsZXIsXG4gIFNiYk5lZ2F0aXZlTWl4aW4sXG4gIFNiYk9wZW5DbG9zZUJhc2VFbGVtZW50LFxuICBTYmJTY3JvbGxIYW5kbGVyLFxuICBzY3JlZW5SZWFkZXJPbmx5U3R5bGVzLFxuICBzZXRBcmlhT3ZlcmxheVRyaWdnZXJQcm9wZXJ0aWVzLFxufSBmcm9tICcuLi9jb3JlLnRzJztcblxuY29uc3Qgb3ZlcmxheVJlc3VsdE1hcCA9IG5ldyBXZWFrTWFwPEhUTUxFbGVtZW50LCBhbnk+KCk7XG5cbmV4cG9ydCBjbGFzcyBTYmJPdmVybGF5Q2xvc2VFdmVudDxUID0gYW55PiBleHRlbmRzIEV2ZW50IHtcbiAgLyoqXG4gICAqIFRoZSByZXN1bHQgYXNzb2NpYXRlZCB3aXRoIHRoZSBjbG9zZWQgb3ZlcmxheS5cbiAgICogVGhpcyBpcyBlaXRoZXIgdGhlIHJlc3VsdCBhc3NpZ25lZCB0byB0aGUgYGNsb3NlVGFyZ2V0YCB2aWFcbiAgICogYGFzc2lnbk92ZXJsYXlSZXN1bHRgIC8gYGFzc2lnbkRpYWxvZ1Jlc3VsdGAgb3IgdGhlIHZhbHVlIG9mIHRoZVxuICAgKiBjb3JyZXNwb25kaW5nIGNsb3NlIGF0dHJpYnV0ZSBvbiB0aGUgYGNsb3NlVGFyZ2V0YFxuICAgKiAoZS5nLiBzYmItb3ZlcmxheS1jbG9zZT1cIm15LXJlc3VsdFwiIG9yIHNiYi1kaWFsb2ctY2xvc2U9XCJteS1yZXN1bHRcIikuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcmVzdWx0OiBUIHwgbnVsbDtcblxuICAvKipcbiAgICogVGhlIGVsZW1lbnQgdGhhdCB3YXMgdXNlZCB0byBjbG9zZSB0aGUgb3ZlcmxheS9kaWFsb2csIGkuZS4gdGhlIGVsZW1lbnQgdGhhdCB0aGVcbiAgICogdXNlciBjbGlja2VkIG9uIHRoYXQgaGFkIHRoZSBjbG9zZSBhdHRyaWJ1dGUuXG4gICAqIEVtcHR5IGlmIGNsb3NlZCBwcm9ncmFtbWF0aWNhbGx5IG9yIHZpYSBFc2NhcGUgcHJlc3MuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgY2xvc2VUYXJnZXQ6IEhUTUxFbGVtZW50IHwgbnVsbDtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgbmFtZTogc3RyaW5nLFxuICAgIHtcbiAgICAgIGNhbmNlbGFibGUsXG4gICAgICBjbG9zZUF0dHJpYnV0ZSxcbiAgICAgIGNsb3NlVGFyZ2V0LFxuICAgICAgcmVzdWx0LFxuICAgIH06IHsgY2FuY2VsYWJsZT86IGJvb2xlYW47IGNsb3NlQXR0cmlidXRlOiBzdHJpbmc7IGNsb3NlVGFyZ2V0PzogSFRNTEVsZW1lbnQ7IHJlc3VsdD86IGFueSB9LFxuICApIHtcbiAgICBzdXBlcihuYW1lLCB7IGNhbmNlbGFibGUgfSk7XG4gICAgdGhpcy5yZXN1bHQgPVxuICAgICAgcmVzdWx0ID8/XG4gICAgICAoIWNsb3NlVGFyZ2V0XG4gICAgICAgID8gbnVsbFxuICAgICAgICA6IChvdmVybGF5UmVzdWx0TWFwLmdldChjbG9zZVRhcmdldCkgPz9cbiAgICAgICAgICAoY2xvc2VUYXJnZXQuZ2V0QXR0cmlidXRlKGNsb3NlQXR0cmlidXRlKT8udHJpbSgpIHx8IG51bGwpKSk7XG4gICAgdGhpcy5jbG9zZVRhcmdldCA9IGNsb3NlVGFyZ2V0ID8/IG51bGw7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFzc2lnbk92ZXJsYXlSZXN1bHQ8VD4oZWxlbWVudDogSFRNTEVsZW1lbnQsIHJlc3VsdDogVCk6IHZvaWQge1xuICBvdmVybGF5UmVzdWx0TWFwLnNldChlbGVtZW50LCByZXN1bHQpO1xufVxuXG4vLyBBIGdsb2JhbCBjb2xsZWN0aW9uIG9mIGV4aXN0aW5nIG92ZXJsYXlzLlxuZXhwb3J0IGNvbnN0IG92ZXJsYXlSZWZzOiBTYmJPdmVybGF5QmFzZUVsZW1lbnRbXSA9IFtdO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2JiT3ZlcmxheUJhc2VFbGVtZW50IGV4dGVuZHMgU2JiTmVnYXRpdmVNaXhpbihTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudCkge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbcG9wb3ZlclJlc2V0U3R5bGVzLCBzY3JlZW5SZWFkZXJPbmx5U3R5bGVzXTtcblxuICAvKipcbiAgICogVGhlIGVsZW1lbnQgdGhhdCB3aWxsIHRyaWdnZXIgdGhlIG1lbnUgb3ZlcmxheS5cbiAgICpcbiAgICogRm9yIGF0dHJpYnV0ZSB1c2FnZSwgcHJvdmlkZSBhbiBpZCByZWZlcmVuY2UuXG4gICAqL1xuICBAaWRSZWZlcmVuY2UoKVxuICBAcHJvcGVydHkoKVxuICBwdWJsaWMgYWNjZXNzb3IgdHJpZ2dlcjogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICAvKiogVGhpcyB3aWxsIGJlIGZvcndhcmRlZCBhcyBhcmlhLWxhYmVsIHRvIHRoZSByZWxldmFudCBuZXN0ZWQgZWxlbWVudCB0byBkZXNjcmliZSB0aGUgcHVycG9zZSBvZiB0aGUgb3ZlcmxheS4gKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2FjY2Vzc2liaWxpdHktbGFiZWwnIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBhY2Nlc3NpYmlsaXR5TGFiZWw6IHN0cmluZyA9ICcnO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHNraXAgcmVzdG9yaW5nIGZvY3VzIHRvIHRoZSBwcmV2aW91c2x5LWZvY3VzZWQgZWxlbWVudCB3aGVuIHRoZSBvdmVybGF5IGlzIGNsb3NlZC5cbiAgICogTm90ZSB0aGF0IGF1dG9tYXRpYyBmb2N1cyByZXN0b3JhdGlvbiBpcyBhbiBhY2Nlc3NpYmlsaXR5IGZlYXR1cmUsIGFuZCBpdCBpcyByZWNvbW1lbmRlZCB0aGF0XG4gICAqIHlvdSBwcm92aWRlIHlvdXIgb3duIGVxdWl2YWxlbnQsIGlmIHlvdSBkZWNpZGUgdG8gdHVybiBpdCBvZmYuXG4gICAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3Igc2tpcEZvY3VzUmVzdG9yYXRpb246IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvLyBUaGUgbGFzdCBlbGVtZW50IHdoaWNoIGhhZCBmb2N1cyBiZWZvcmUgdGhlIGNvbXBvbmVudCB3YXMgb3BlbmVkLlxuICBwcm90ZWN0ZWQgbGFzdEZvY3VzZWRFbGVtZW50PzogSFRNTEVsZW1lbnQ7XG4gIHByb3RlY3RlZCBsYXN0Q2xvc2VkVGFyZ2V0PzogSFRNTEVsZW1lbnQ7XG4gIHByb3RlY3RlZCBvcGVuT3ZlcmxheUNvbnRyb2xsZXI/OiBBYm9ydENvbnRyb2xsZXI7XG4gIHByb3RlY3RlZCBmb2N1c1RyYXBDb250cm9sbGVyID0gbmV3IFNiYkZvY3VzVHJhcENvbnRyb2xsZXIodGhpcyk7XG4gIHByb3RlY3RlZCBzY3JvbGxIYW5kbGVyID0gbmV3IFNiYlNjcm9sbEhhbmRsZXIoKTtcbiAgcHJvdGVjdGVkIGxhc3RSZXN1bHQ6IGFueTtcbiAgcHJvdGVjdGVkIGxhbmd1YWdlID0gbmV3IFNiYkxhbmd1YWdlQ29udHJvbGxlcih0aGlzKTtcbiAgcHJvdGVjdGVkIGluZXJ0Q29udHJvbGxlciA9IG5ldyBTYmJJbmVydENvbnRyb2xsZXIodGhpcyk7XG4gIHByb3RlY3RlZCBlc2NhcGFibGVPdmVybGF5Q29udHJvbGxlciA9IG5ldyBTYmJFc2NhcGFibGVPdmVybGF5Q29udHJvbGxlcih0aGlzKTtcblxuICBwcml2YXRlIF9hcmlhTGl2ZVJlZlRvZ2dsZSA9IGZhbHNlO1xuICBwcml2YXRlIF9hcmlhTGl2ZVJlZj86IEhUTUxFbGVtZW50O1xuICBwcml2YXRlIF90cmlnZ2VyRWxlbWVudDogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBfdHJpZ2dlckFib3J0Q29udHJvbGxlcj86IEFib3J0Q29udHJvbGxlcjtcblxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgY2xvc2VBdHRyaWJ1dGU6IHN0cmluZztcbiAgcHJvdGVjdGVkIGNsb3NlVGFnPzogc3RyaW5nO1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgaGFuZGxlT3BlbmluZygpOiB2b2lkO1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgaGFuZGxlQ2xvc2luZygpOiB2b2lkO1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24oKTogYm9vbGVhbjtcbiAgcHJvdGVjdGVkIGFic3RyYWN0IG92ZXJyaWRlIGRpc3BhdGNoQmVmb3JlQ2xvc2VFdmVudCgpOiBib29sZWFuO1xuICBwcm90ZWN0ZWQgYWJzdHJhY3Qgb3ZlcnJpZGUgZGlzcGF0Y2hDbG9zZUV2ZW50KCk6IGJvb2xlYW47XG5cbiAgLyoqIE9wZW5zIHRoZSBjb21wb25lbnQuICovXG4gIHB1YmxpYyBvcGVuKCk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgIHRoaXMuc3RhdGUgPT09ICdvcGVuaW5nJyB8fFxuICAgICAgdGhpcy5zdGF0ZSA9PT0gJ29wZW5lZCcgfHxcbiAgICAgIHRoaXMuX2hhc0Nsb3NlZFBhcmVudCgpIHx8XG4gICAgICAhdGhpcy5kaXNwYXRjaEJlZm9yZU9wZW5FdmVudCgpXG4gICAgKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5sYXN0Rm9jdXNlZEVsZW1lbnQgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuXG4gICAgdGhpcy5zaG93UG9wb3Zlcj8uKCk7XG4gICAgdGhpcy5zdGF0ZSA9ICdvcGVuaW5nJztcblxuICAgIGlmICh0aGlzLl90cmlnZ2VyRWxlbWVudCkge1xuICAgICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQuYXJpYUV4cGFuZGVkID0gJ3RydWUnO1xuICAgIH1cblxuICAgIC8vIEFkZCB0aGlzIG92ZXJsYXkgdG8gdGhlIGdsb2JhbCBjb2xsZWN0aW9uXG4gICAgb3ZlcmxheVJlZnMucHVzaCh0aGlzKTtcblxuICAgIHRoaXMuc2Nyb2xsSGFuZGxlci5kaXNhYmxlU2Nyb2xsKCk7XG4gICAgdGhpcy5lc2NhcGFibGVPdmVybGF5Q29udHJvbGxlci5jb25uZWN0KCk7XG4gICAgdGhpcy5hdHRhY2hPcGVuT3ZlcmxheUV2ZW50cygpO1xuXG4gICAgLy8gSWYgdGhlIGFuaW1hdGlvbiBkdXJhdGlvbiBpcyB6ZXJvLCB0aGUgYW5pbWF0aW9uZW5kIGV2ZW50IGlzIG5vdCBhbHdheXMgZmlyZWQgcmVsaWFibHkuXG4gICAgLy8gSW4gdGhpcyBjYXNlIHdlIGRpcmVjdGx5IHNldCB0aGUgYG9wZW5lZGAgc3RhdGUuXG4gICAgaWYgKHRoaXMuaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24oKSkge1xuICAgICAgdGhpcy5oYW5kbGVPcGVuaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIENsb3NlcyB0aGUgY29tcG9uZW50LiAqL1xuICBwdWJsaWMgY2xvc2UocmVzdWx0PzogYW55KTogdm9pZCB7XG4gICAgdGhpcy5fY2xvc2UocmVzdWx0LCB1bmRlZmluZWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBfY2xvc2UocmVzdWx0OiBhbnksIHRhcmdldDogSFRNTEVsZW1lbnQgfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdGF0ZSA9PT0gJ2Nsb3NpbmcnIHx8IHRoaXMuc3RhdGUgPT09ICdjbG9zZWQnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5sYXN0UmVzdWx0ID0gcmVzdWx0ID8/IG51bGw7XG4gICAgdGhpcy5sYXN0Q2xvc2VkVGFyZ2V0ID0gdGFyZ2V0O1xuICAgIGlmICghdGhpcy5kaXNwYXRjaEJlZm9yZUNsb3NlRXZlbnQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnN0YXRlID0gJ2Nsb3NpbmcnO1xuXG4gICAgaWYgKHRoaXMuX3RyaWdnZXJFbGVtZW50KSB7XG4gICAgICB0aGlzLl90cmlnZ2VyRWxlbWVudC5hcmlhRXhwYW5kZWQgPSAnZmFsc2UnO1xuICAgIH1cbiAgICB0aGlzLnJlbW92ZUFyaWFMaXZlUmVmQ29udGVudCgpO1xuXG4gICAgLy8gSWYgdGhlIGFuaW1hdGlvbiBkdXJhdGlvbiBpcyB6ZXJvLCB0aGUgYW5pbWF0aW9uZW5kIGV2ZW50IGlzIG5vdCBhbHdheXMgZmlyZWQgcmVsaWFibHkuXG4gICAgLy8gSW4gdGhpcyBjYXNlIHdlIGRpcmVjdGx5IHNldCB0aGUgYGNsb3NlZGAgc3RhdGUuXG4gICAgaWYgKHRoaXMuaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24oKSkge1xuICAgICAgdGhpcy5oYW5kbGVDbG9zaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIHRoZXJlIGlzIGEgcGFyZW50IGRpYWxvZyBvciBvdmVybGF5IGluIHRoZSBET00gdGhhdCBpcyBjbG9zZWQuXG4gICAqIEluIHRoaXMgY2FzZSwgdGhlIG92ZXJsYXkgc2hvdWxkIG5vdCBiZSBvcGVuZWQgYmVjYXVzZSBpdCB3b3VsZCBicmVhayB0aGUgc3RhdGUuXG4gICAqIE5vdCBuZXN0ZWQgYnV0IHN0YWNrZWQgb3ZlcmxheXMgYXJlIHN1cHBvcnRlZCBzbyB0aGlzIGxvZ2ljIGRvZXMgbm90IGFwcGx5IGluIHRoaXMgY2FzZS5cbiAgICovXG4gIHByaXZhdGUgX2hhc0Nsb3NlZFBhcmVudCgpOiBib29sZWFuIHtcbiAgICBjb25zdCBwYXJlbnREaWFsb2cgPVxuICAgICAgdGhpcy5wYXJlbnRFbGVtZW50Py5jbG9zZXN0PFNiYk92ZXJsYXlCYXNlRWxlbWVudD4oJ3NiYi1kaWFsb2csIHNiYi1vdmVybGF5Jyk7XG5cbiAgICByZXR1cm4gKHBhcmVudERpYWxvZz8uc3RhdGUgPT09ICdjbG9zZWQnIHx8IHBhcmVudERpYWxvZz8uc3RhdGUgPT09ICdjbG9zaW5nJykgPz8gZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgdGhpcy5wb3BvdmVyID0gJ21hbnVhbCc7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICBpZiAodGhpcy5oYXNVcGRhdGVkKSB7XG4gICAgICB0aGlzLl9jb25maWd1cmVUcmlnZ2VyKCk7XG4gICAgfVxuICB9XG5cbiAgLy8gQ2hlY2sgaWYgdGhlIHRyaWdnZXIgaXMgdmFsaWQgYW5kIGF0dGFjaCBjbGljayBldmVudCBsaXN0ZW5lcnMuXG4gIHByaXZhdGUgX2NvbmZpZ3VyZVRyaWdnZXIoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudHJpZ2dlciA9PT0gdGhpcy5fdHJpZ2dlckVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl90cmlnZ2VyQWJvcnRDb250cm9sbGVyPy5hYm9ydCgpO1xuICAgIHJlbW92ZUFyaWFPdmVybGF5VHJpZ2dlclByb3BlcnRpZXModGhpcy5fdHJpZ2dlckVsZW1lbnQpO1xuICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50ID0gdGhpcy50cmlnZ2VyO1xuXG4gICAgaWYgKCF0aGlzLl90cmlnZ2VyRWxlbWVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHNldEFyaWFPdmVybGF5VHJpZ2dlclByb3BlcnRpZXModGhpcywgdGhpcy5fdHJpZ2dlckVsZW1lbnQsICdkaWFsb2cnLCB0aGlzLnN0YXRlKTtcbiAgICB0aGlzLl90cmlnZ2VyQWJvcnRDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4gdGhpcy5vcGVuKCksIHtcbiAgICAgIHNpZ25hbDogdGhpcy5fdHJpZ2dlckFib3J0Q29udHJvbGxlci5zaWduYWwsXG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLmZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICB0aGlzLl9hcmlhTGl2ZVJlZiA9IHRoaXMuc2hhZG93Um9vdCEucXVlcnlTZWxlY3RvcjxIVE1MRWxlbWVudD4oJy5zYmItc2NyZWVuLXJlYWRlci1vbmx5JykhO1xuICAgIHRoaXMuX2NvbmZpZ3VyZVRyaWdnZXIoKTtcblxuICAgIC8vIElmIHRoZSBjb21wb25lbnQgaXMgYWxyZWFkeSBvcGVuIG9uIGZpcnN0VXBkYXRlLCBmaXggdGhlIGZvY3VzXG4gICAgaWYgKHRoaXMuaXNPcGVuKSB7XG4gICAgICAvLyBUT0RPOiBmaW5kIGJldHRlciBzb2x1dGlvblxuICAgICAgLy8gUHJvYmxlbTogY29udGVudCdzIHNoYWRvdyBET00gbm90IHlldCByZWFkeSwgc28gZm9jdXNpbmcgaXMgaW1wb3NzaWJsZS5cbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLmZvY3VzVHJhcENvbnRyb2xsZXIuZm9jdXNJbml0aWFsRWxlbWVudCgpO1xuICAgICAgfSwgMCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5vcGVuT3ZlcmxheUNvbnRyb2xsZXI/LmFib3J0KCk7XG4gICAgdGhpcy5yZW1vdmVJbnN0YW5jZUZyb21HbG9iYWxDb2xsZWN0aW9uKCk7XG4gICAgdGhpcy5zY3JvbGxIYW5kbGVyLmVuYWJsZVNjcm9sbCgpO1xuICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50ID0gbnVsbDtcbiAgICB0aGlzLl90cmlnZ2VyQWJvcnRDb250cm9sbGVyPy5hYm9ydCgpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIHJlcXVlc3RVcGRhdGUoXG4gICAgbmFtZT86IFByb3BlcnR5S2V5LFxuICAgIG9sZFZhbHVlPzogdW5rbm93bixcbiAgICBvcHRpb25zPzogUHJvcGVydHlEZWNsYXJhdGlvbixcbiAgKTogdm9pZCB7XG4gICAgc3VwZXIucmVxdWVzdFVwZGF0ZShuYW1lLCBvbGRWYWx1ZSwgb3B0aW9ucyk7XG5cbiAgICBpZiAoIWlzU2VydmVyICYmICghbmFtZSB8fCBuYW1lID09PSAndHJpZ2dlcicpICYmIHRoaXMuaGFzVXBkYXRlZCkge1xuICAgICAgdGhpcy5fY29uZmlndXJlVHJpZ2dlcigpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBhdHRhY2hPcGVuT3ZlcmxheUV2ZW50cygpOiB2b2lkIHtcbiAgICB0aGlzLm9wZW5PdmVybGF5Q29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgICAvLyBSZW1vdmUgb3ZlcmxheSBsYWJlbCBhcyBzb29uIGFzIGl0IGlzIG5vdCBuZWVkZWQgYW55IG1vcmUgdG8gcHJldmVudCBhY2Nlc3NpbmcgaXQgd2l0aCBicm93c2UgbW9kZS5cbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICdrZXlkb3duJyxcbiAgICAgICgpID0+IHtcbiAgICAgICAgdGhpcy5yZW1vdmVBcmlhTGl2ZVJlZkNvbnRlbnQoKTtcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHNpZ25hbDogdGhpcy5vcGVuT3ZlcmxheUNvbnRyb2xsZXIuc2lnbmFsLFxuICAgICAgfSxcbiAgICApO1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHRoaXMucmVtb3ZlQXJpYUxpdmVSZWZDb250ZW50KCksIHtcbiAgICAgIHNpZ25hbDogdGhpcy5vcGVuT3ZlcmxheUNvbnRyb2xsZXIuc2lnbmFsLFxuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlbW92ZUluc3RhbmNlRnJvbUdsb2JhbENvbGxlY3Rpb24oKTogdm9pZCB7XG4gICAgY29uc3QgaW5kZXhJbk92ZXJsYXlSZWZzID0gb3ZlcmxheVJlZnMuaW5kZXhPZih0aGlzIGFzIFNiYk92ZXJsYXlCYXNlRWxlbWVudCk7XG4gICAgaWYgKGluZGV4SW5PdmVybGF5UmVmcyA+IC0xKSB7XG4gICAgICBvdmVybGF5UmVmcy5zcGxpY2UoaW5kZXhJbk92ZXJsYXlSZWZzLCAxKTtcbiAgICB9XG4gIH1cblxuICAvLyBDbG9zZSB0aGUgY29tcG9uZW50IG9uIGNsaWNrIG9mIGFueSBlbGVtZW50IHRoYXQgaGFzIHRoZSBgY2xvc2VBdHRyaWJ1dGVgIGF0dHJpYnV0ZS5cbiAgcHJvdGVjdGVkIGNsb3NlT25TYmJPdmVybGF5Q2xvc2VDbGljayhldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBvdmVybGF5Q2xvc2VFbGVtZW50ID0gZXZlbnRcbiAgICAgIC5jb21wb3NlZFBhdGgoKVxuICAgICAgLmZpbmQoXG4gICAgICAgIChlbCwgaSwgYSk6IGVsIGlzIEhUTUxFbGVtZW50ID0+XG4gICAgICAgICAgZWwgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCAmJlxuICAgICAgICAgIGkgPCBhLmluZGV4T2YodGhpcykgJiZcbiAgICAgICAgICAoZWwuaGFzQXR0cmlidXRlKHRoaXMuY2xvc2VBdHRyaWJ1dGUpIHx8IGVsLmxvY2FsTmFtZSA9PT0gdGhpcy5jbG9zZVRhZykgJiZcbiAgICAgICAgICAhZWwuaGFzQXR0cmlidXRlKCdkaXNhYmxlZCcpICYmXG4gICAgICAgICAgKGVsLmNsb3Nlc3QodGhpcy5sb2NhbE5hbWUpID09PSB0aGlzIHx8ICh0aGlzLnNoYWRvd1Jvb3Q/LmNvbnRhaW5zKGVsKSA/PyBmYWxzZSkpLFxuICAgICAgKTtcblxuICAgIGlmICghb3ZlcmxheUNsb3NlRWxlbWVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChvdmVybGF5UmVmcy5sZW5ndGgpIHtcbiAgICAgIG92ZXJsYXlSZWZzW292ZXJsYXlSZWZzLmxlbmd0aCAtIDFdLl9jbG9zZShudWxsLCBvdmVybGF5Q2xvc2VFbGVtZW50KTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVtb3ZlQXJpYUxpdmVSZWZDb250ZW50KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5fYXJpYUxpdmVSZWYpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fYXJpYUxpdmVSZWYudGV4dENvbnRlbnQgPSAnJztcbiAgfVxuXG4gIHByb3RlY3RlZCBzZXRBcmlhTGl2ZVJlZkNvbnRlbnQobGFiZWw/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2FyaWFMaXZlUmVmKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fYXJpYUxpdmVSZWZUb2dnbGUgPSAhdGhpcy5fYXJpYUxpdmVSZWZUb2dnbGU7XG5cbiAgICAvLyBJZiB0aGUgdGV4dCBjb250ZW50IHJlbWFpbnMgdGhlIHNhbWUsIG9uIFZvaWNlT3ZlciB0aGUgYXJpYS1saXZlIHJlZ2lvbiBpcyBub3QgYW5ub3VuY2VkIGEgc2Vjb25kIHRpbWUuXG4gICAgLy8gSW4gb3JkZXIgdG8gc3VwcG9ydCByZWFkaW5nIG9uIGV2ZXJ5IG9wZW5pbmcsIHdlIHRvZ2dsZSBhbiBpbnZpc2libGUgc3BhY2UuXG4gICAgdGhpcy5fYXJpYUxpdmVSZWYudGV4dENvbnRlbnQgPSBgJHtpMThuRGlhbG9nW3RoaXMubGFuZ3VhZ2UuY3VycmVudF19JHtcbiAgICAgIGxhYmVsID8gYCwgJHtsYWJlbH1gIDogJydcbiAgICB9JHt0aGlzLl9hcmlhTGl2ZVJlZlRvZ2dsZSA/ICfCoCcgOiAnJ31gO1xuICB9XG5cbiAgLy8gV2FpdCBmb3IgZGlhbG9nIHRyYW5zaXRpb24gdG8gY29tcGxldGUuXG4gIC8vIEluIHJhcmUgY2FzZXMsIGl0IGNhbiBiZSB0aGF0IHRoZSBhbmltYXRpb25FbmQgZXZlbnQgaXMgdHJpZ2dlcmVkIHR3aWNlLlxuICAvLyBUbyBhdm9pZCBlbnRlcmluZyBhIGNvcnJ1cHQgc3RhdGUsIGV4aXQgd2hlbiBzdGF0ZSBpcyBub3QgZXhwZWN0ZWQuXG4gIHByb3RlY3RlZCBvbk92ZXJsYXlBbmltYXRpb25FbmQoZXZlbnQ6IEFuaW1hdGlvbkV2ZW50KTogdm9pZCB7XG4gICAgaWYgKGV2ZW50LmFuaW1hdGlvbk5hbWUgPT09ICdvcGVuJyAmJiB0aGlzLnN0YXRlID09PSAnb3BlbmluZycpIHtcbiAgICAgIHRoaXMuaGFuZGxlT3BlbmluZygpO1xuICAgIH0gZWxzZSBpZiAoZXZlbnQuYW5pbWF0aW9uTmFtZSA9PT0gJ2Nsb3NlJyAmJiB0aGlzLnN0YXRlID09PSAnY2xvc2luZycpIHtcbiAgICAgIHRoaXMuaGFuZGxlQ2xvc2luZygpO1xuICAgIH1cbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7OztBQW9CQSxJQUFNLG1DQUFtQixJQUFJLFFBQU87QUFFcEMsSUFBYSx1QkFBYixjQUFtRCxNQUFLO0NBaUJ0RCxZQUNFLE1BQ0EsRUFDRSxZQUNBLGdCQUNBLGFBQ0EsVUFDMEY7RUFFNUYsTUFBTSxNQUFNLEVBQUUsV0FBVSxDQUFFO0VBQzFCLEtBQUssU0FDSCxXQUNDLENBQUMsY0FDRSxPQUNDLGlCQUFpQixJQUFJLFdBQVcsTUFDaEMsWUFBWSxhQUFhLGNBQWMsR0FBRyxLQUFJLEtBQU07RUFDM0QsS0FBSyxjQUFjLGVBQWU7Q0FDcEM7O0FBR0YsU0FBZ0Isb0JBQXVCLFNBQXNCLFFBQVM7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
@@ -0,0 +1,54 @@
1
+ import { CSSResultGroup, PropertyValues, TemplateResult } from 'lit';
2
+ import { SbbPopoverBaseElement } from '../popover-base/popover-base.ts';
3
+ /**
4
+ * It displays contextual information within a popover.
5
+ *
6
+ * @slot - Use the unnamed slot to add the `sbb-popover-close-button` and content into the popover.
7
+ * @cssprop [--sbb-popover-z-index=var(--sbb-overlay-default-z-index)] - To specify a custom stack order,
8
+ * the `z-index` can be overridden by defining this CSS variable. The default `z-index` of the
9
+ * component is set to `var(--sbb-overlay-default-z-index)` with a value of `1000`.
10
+ */
11
+ export declare class SbbPopoverElement extends SbbPopoverBaseElement {
12
+ static readonly elementName: string;
13
+ static styles: CSSResultGroup;
14
+ /** Whether the popover should be triggered on hover. */
15
+ accessor hoverTrigger: boolean;
16
+ /**
17
+ * Open the popover after a given delay in milliseconds.
18
+ * Global configuration is used as default, if not set.
19
+ *
20
+ * @default 0
21
+ */
22
+ set openDelay(value: number);
23
+ get openDelay(): number;
24
+ private _openDelay?;
25
+ /**
26
+ * Close the popover after a given delay in milliseconds.
27
+ * Global configuration is used as default, if not set.
28
+ *
29
+ * @default 0
30
+ */
31
+ set closeDelay(value: number);
32
+ get closeDelay(): number;
33
+ private _closeDelay?;
34
+ private accessor _hoverTrigger;
35
+ private _openTimeout?;
36
+ private _overlayAbortController;
37
+ protected configureTrigger(oldTrigger: HTMLElement | null): void;
38
+ private _registerOverlayListeners;
39
+ protected registerTriggerListeners(signal: AbortSignal): void;
40
+ protected firstUpdated(changedProperties: PropertyValues<this>): void;
41
+ open(): void;
42
+ close(): void;
43
+ private _onTriggerMouseEnter;
44
+ private _onTriggerMouseLeave;
45
+ private _onOverlayMouseEnter;
46
+ private _onOverlayMouseLeave;
47
+ protected renderContent(): TemplateResult;
48
+ }
49
+ declare global {
50
+ interface HTMLElementTagNameMap {
51
+ 'sbb-popover': SbbPopoverElement;
52
+ }
53
+ }
54
+ //# sourceMappingURL=popover.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"popover.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements/popover/popover/popover.component.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EAGnB,KAAK,cAAc,EACnB,KAAK,cAAc,EAEpB,MAAM,KAAK,CAAC;AAYb,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAMxE;;;;;;;GAOG;AACH,qBAAa,iBAAkB,SAAQ,qBAAqB;IAC1D,gBAAgC,WAAW,EAAE,MAAM,CAAiB;IACpE,OAAuB,MAAM,EAAE,cAAc,CAAuC;IAEpF,wDAAwD;IACxD,SAEgB,YAAY,EAAE,OAAO,CAAS;IAE9C;;;;;OAKG;IACH,IACW,SAAS,CAAC,KAAK,EAAE,MAAM,EAEjC;IACD,IAAW,SAAS,IAAI,MAAM,CAE7B;IACD,OAAO,CAAC,UAAU,CAAC,CAAS;IAE5B;;;;;OAKG;IACH,IACW,UAAU,CAAC,KAAK,EAAE,MAAM,EAElC;IACD,IAAW,UAAU,IAAI,MAAM,CAE9B;IACD,OAAO,CAAC,WAAW,CAAC,CAAS;IAEpB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IAChD,OAAO,CAAC,YAAY,CAAC,CAAgC;IACrD,OAAO,CAAC,uBAAuB,CAAgC;cAE5C,gBAAgB,CAAC,UAAU,EAAE,WAAW,GAAG,IAAI,GAAG,IAAI;IAmBzE,OAAO,CAAC,yBAAyB;cAcd,wBAAwB,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;cA4BnD,YAAY,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAM9D,IAAI,IAAI,IAAI;IAQZ,KAAK,IAAI,IAAI;IAM7B,OAAO,CAAC,oBAAoB,CAW1B;IAEF,OAAO,CAAC,oBAAoB,CAM1B;IAEF,OAAO,CAAC,oBAAoB,CAI1B;IAEF,OAAO,CAAC,oBAAoB,CAI1B;cAEiB,aAAa,IAAI,cAAc;CAUnD;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,aAAa,EAAE,iBAAiB,CAAC;KAClC;CACF"}
@@ -0,0 +1,2 @@
1
+ import { t as SbbPopoverElement } from "../../popover.component-CMR0eV2t.js";
2
+ export { SbbPopoverElement };