@sbb-esta/lyne-elements-experimental 4.11.0 → 4.12.1

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 (62) hide show
  1. package/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.js +2 -1
  2. package/custom-elements.json +220 -99
  3. package/development/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.js +3 -2
  4. package/development/date-helper-qNdwgC9O.js +1 -1
  5. package/development/format-DFx4997p.js +1 -1
  6. package/development/pearl-chain-vertical-item/pearl-chain-vertical-item.component.js +1 -1
  7. package/development/{pearl-chain-vertical-item.component-DcmH13Vb.js → pearl-chain-vertical-item.component-D4clzjjQ.js} +2 -2
  8. package/development/pearl-chain-vertical-item.js +1 -1
  9. package/development/pearl-chain-vertical-item.pure.js +1 -1
  10. package/development/pearl-chain.component-oQZUzsyW.js +1 -1
  11. package/development/seat-reservation/common/types.d.ts +3 -4
  12. package/development/seat-reservation/common/types.d.ts.map +1 -1
  13. package/development/seat-reservation/seat-reservation/seat-reservation-base-element.d.ts +38 -7
  14. package/development/seat-reservation/seat-reservation/seat-reservation-base-element.d.ts.map +1 -1
  15. package/development/seat-reservation/seat-reservation/seat-reservation-base-element.js +143 -32
  16. package/development/seat-reservation/seat-reservation/seat-reservation.component.d.ts +2 -13
  17. package/development/seat-reservation/seat-reservation/seat-reservation.component.d.ts.map +1 -1
  18. package/development/seat-reservation/seat-reservation/seat-reservation.component.js +1 -1
  19. package/development/seat-reservation/seat-reservation-area/seat-reservation-area.component.js +1 -1
  20. package/development/seat-reservation/seat-reservation-area.js +1 -1
  21. package/development/seat-reservation/seat-reservation-graphic/seat-reservation-assets.js +2 -2
  22. package/development/seat-reservation/seat-reservation-graphic/seat-reservation-graphic.component.js +1 -1
  23. package/development/seat-reservation/seat-reservation-graphic.js +1 -1
  24. package/development/seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.d.ts.map +1 -1
  25. package/development/seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.js +1 -1
  26. package/development/seat-reservation/seat-reservation-navigation-coach.js +1 -1
  27. package/development/seat-reservation/seat-reservation.js +1 -1
  28. package/development/seat-reservation-area.component-BWdrKqek.js +96 -0
  29. package/development/seat-reservation-graphic.component-CN5sWn0I.js +129 -0
  30. package/development/{seat-reservation-navigation-coach.component-CjoDkcVU.js → seat-reservation-navigation-coach.component-tDZkXl-3.js} +3 -3
  31. package/development/seat-reservation-place-control.component-CM9efId7.js +1 -1
  32. package/development/seat-reservation.component-DyB5FVpD.js +464 -0
  33. package/development/seat-reservation.js +4 -4
  34. package/development/seat-reservation.pure.js +4 -4
  35. package/development/svgs-kDpBCto5.js +1 -1
  36. package/development/timetable-row.component-Dko8laRT.js +1 -1
  37. package/development/toDate-DOFAOjP-.js +1 -1
  38. package/package.json +2 -2
  39. package/pearl-chain-vertical-item/pearl-chain-vertical-item.component.js +1 -1
  40. package/{pearl-chain-vertical-item.component-BUqZ-3Ay.js → pearl-chain-vertical-item.component-CGYNzFlK.js} +1 -1
  41. package/pearl-chain-vertical-item.js +1 -1
  42. package/pearl-chain-vertical-item.pure.js +1 -1
  43. package/seat-reservation/seat-reservation/seat-reservation-base-element.js +130 -77
  44. package/seat-reservation/seat-reservation/seat-reservation.component.js +1 -1
  45. package/seat-reservation/seat-reservation-area/seat-reservation-area.component.js +1 -1
  46. package/seat-reservation/seat-reservation-area.js +1 -1
  47. package/seat-reservation/seat-reservation-graphic/seat-reservation-assets.js +1 -1
  48. package/seat-reservation/seat-reservation-graphic/seat-reservation-graphic.component.js +1 -1
  49. package/seat-reservation/seat-reservation-graphic.js +1 -1
  50. package/seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.js +1 -1
  51. package/seat-reservation/seat-reservation-navigation-coach.js +1 -1
  52. package/seat-reservation/seat-reservation.js +1 -1
  53. package/{seat-reservation-area.component-CtYawDjE.js → seat-reservation-area.component-B5_N7H_a.js} +1 -1
  54. package/seat-reservation-graphic.component-Dh1e2Pve.js +102 -0
  55. package/{seat-reservation-navigation-coach.component-sug9IBTH.js → seat-reservation-navigation-coach.component-BdCUfksf.js} +2 -2
  56. package/{seat-reservation.component-DajC6fqU.js → seat-reservation.component-DEtsEzex.js} +74 -81
  57. package/seat-reservation.js +4 -4
  58. package/seat-reservation.pure.js +4 -4
  59. package/development/seat-reservation-area.component-DbeuTnXT.js +0 -96
  60. package/development/seat-reservation-graphic.component-DlrHtlia.js +0 -129
  61. package/development/seat-reservation.component-DFJVFmrI.js +0 -510
  62. package/seat-reservation-graphic.component-Cm_pVxaB.js +0 -102
@@ -381,8 +381,8 @@ var SbbSeatReservationNavigationCoachElement = (() => {
381
381
  `;
382
382
  }
383
383
  _getTitleDescriptionNavCoachButton(serviceClassNumber) {
384
- if (this.coachItemDetails.isDriverArea && !this.coachItemDetails.driverAreaElements?.driverAreaNoVerticalWall) return getI18nSeatReservation("NAVIGATE_COACH_BLOCKED", this._language.current, [this.coachItemDetails.id]);
385
- if (this.coachItemDetails.driverAreaElements?.driverAreaNoVerticalWall) return getI18nSeatReservation("COACH_LOCOMOTIVE", this._language.current);
384
+ if (this.coachItemDetails.isDriverArea && !this.coachItemDetails.isLocomotive) return getI18nSeatReservation("NAVIGATE_COACH_BLOCKED", this._language.current, [this.coachItemDetails.id]);
385
+ if (this.coachItemDetails.isLocomotive) return getI18nSeatReservation("COACH_LOCOMOTIVE", this._language.current);
386
386
  let label = getI18nSeatReservation("NAVIGATE_TO_COACH", this._language.current, [this.coachItemDetails.id]);
387
387
  if (serviceClassNumber) {
388
388
  const serviceClassTranslation = getI18nSeatReservation(serviceClassNumber === 1 ? "SERVICE_CLASS_FIRST" : "SERVICE_CLASS_SECOND", this._language.current);
@@ -425,4 +425,4 @@ var SbbSeatReservationNavigationCoachElement = (() => {
425
425
  //#endregion
426
426
  export { SbbSeatReservationNavigationCoachElement as t };
427
427
 
428
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLWNvYWNoLmNvbXBvbmVudC1Dam9Ea2NWVS5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMtZXhwZXJpbWVudGFsL3NlYXQtcmVzZXJ2YXRpb24vc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLWNvYWNoL3NlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1jb2FjaC5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy1leHBlcmltZW50YWwvc2VhdC1yZXNlcnZhdGlvbi9zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tY29hY2gvc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLWNvYWNoLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICdAc2JiLWVzdGEvbHluZS1lbGVtZW50cy9jb3JlL3N0eWxlcycgYXMgc2JiO1xuQHVzZSAnLi4vY29tbW9uL3N0eWxlcy9zZWF0LXJlc2VydmF0aW9uLW1peGlucy5zY3NzJyBhcyBzYmItc3ItbWl4aW5zO1xuQHVzZSAnLi4vY29tbW9uL3N0eWxlcy9zZWF0LXJlc2VydmF0aW9uLWZ1bmN0aW9ucycgYXMgc2JiLXNyLWZ1bmN0aW9ucztcblxuJGRpc2FibGVkOiAnW2Rpc2FibGVkXSwgOmRpc2FibGVkJztcblxuOmhvc3Qge1xuICAvLyBmaXhlcyB0aGUga2V5Ym9hcmQgZm9jdXMgYm9yZGVyIHdoaWNoIHdhcyBjdXQgb2ZmIGR1ZSB0byBtaXNzaW5nIG5hdmlnYXRpb24gc2VydmljZSBpY29uc1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1pbi1oZWlnaHQ6IHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKFxuICAgIDQ0XG4gICk7IC8vIGRlZmF1bHQgYnV0dG9uIGhlaWdodCAoMzZweCkgKyAyICogNHB4IGZvY3VzIG91dGxpbmUgb2Zmc2V0XG5cbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLXRyYXZlbGNsYXNzLXNwYWNpbmc6IDEwO1xuICAtLXNiYi1zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tYnRuLWJvcmRlci13aWR0aC1kZWZhdWx0OiAxO1xuICAtLXNiYi1zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tYnRuLWJvcmRlci13aWR0aDogdmFyKFxuICAgIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1idG4tYm9yZGVyLXdpZHRoLWRlZmF1bHRcbiAgKTtcbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLWJ0bi1ib3JkZXItY29sb3I6IGxpZ2h0LWRhcmsoXG4gICAgdmFyKC0tc2JiLWNvbG9yLWdyYW5pdGUpLFxuICAgIHZhcigtLXNiYi1jb2xvci1ncmFwaGl0ZSlcbiAgKTtcbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLWJ0bi1iYWNrZ3JvdW5kLWNvbG9yOiBsaWdodC1kYXJrKFxuICAgIHZhcigtLXNiYi1jb2xvci13aGl0ZSksXG4gICAgdmFyKC0tc2JiLWNvbG9yLWJsYWNrKVxuICApO1xuXG4gIC8vIHNlbGVjdGVkIHN0YXRlIHZhcmlhYmxlc1xuICAtLXNiYi1zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tYnRuLWJvcmRlci13aWR0aC1zZWxlY3RlZDogMjtcbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLWJ0bi1iYWNrZ3JvdW5kLWNvbG9yLXNlbGVjdGVkOiBsaWdodC1kYXJrKFxuICAgIHZhcigtLXNiYi1jb2xvci1taWxrKSxcbiAgICB2YXIoLS1zYmItY29sb3ItaXJvbilcbiAgKTtcbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLWJ0bi1ib3JkZXItY29sb3Itc2VsZWN0ZWQ6IGxpZ2h0LWRhcmsoXG4gICAgdmFyKC0tc2JiLWNvbG9yLWJsYWNrKSxcbiAgICB2YXIoLS1zYmItY29sb3Itd2hpdGUpXG4gICk7XG5cbiAgLy8gZm9jdXMgc3RhdGUgdmFyaWFibGVzXG4gIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1idG4tb3V0bGluZS13aWR0aC1mb2N1c2VkOiAxO1xuICAtLXNiYi1zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tYnRuLW91dGxpbmUtY29sb3ItZm9jdXNlZDogbGlnaHQtZGFyayhcbiAgICB2YXIoLS1zYmItY29sb3ItYmxhY2spLFxuICAgIHZhcigtLXNiYi1jb2xvci13aGl0ZSlcbiAgKTtcbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLWJ0bi1vdXRsaW5lLW9mZnNldC1mb2N1c2VkOiA0O1xuICAtLXNiYi1zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tYnRuLWJhY2tncm91bmQtY29sb3ItZm9jdXNlZDogbGlnaHQtZGFyayhcbiAgICB2YXIoLS1zYmItY29sb3Itd2hpdGUpLFxuICAgIHZhcigtLXNiYi1jb2xvci1ibGFjaylcbiAgKTtcbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLWJ0bi1ib3JkZXItd2lkdGgtZm9jdXNlZDogdmFyKFxuICAgIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1idG4tYm9yZGVyLXdpZHRoXG4gICk7XG4gIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1idG4tYm9yZGVyLWNvbG9yLWZvY3VzZWQ6IGxpZ2h0LWRhcmsoXG4gICAgdmFyKC0tc2JiLWNvbG9yLWJsYWNrKSxcbiAgICB2YXIoLS1zYmItY29sb3Itd2hpdGUpXG4gICk7XG5cbiAgLy8gaG92ZXIgc3RhdGUgdmFyaWFibGVzXG4gIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1idG4tYm9yZGVyLXdpZHRoLWhvdmVyZWQ6IDI7XG4gIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1idG4tYmFja2dyb3VuZC1jb2xvci1ob3ZlcmVkOiBsaWdodC1kYXJrKFxuICAgIHZhcigtLXNiYi1jb2xvci1jbG91ZCksXG4gICAgdmFyKC0tc2JiLWNvbG9yLW1pZG5pZ2h0KVxuICApO1xuICAtLXNiYi1zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tYnRuLWJvcmRlci1jb2xvci1ob3ZlcmVkOiBsaWdodC1kYXJrKFxuICAgIHZhcigtLXNiYi1jb2xvci1ibGFjayksXG4gICAgdmFyKC0tc2JiLWNvbG9yLXdoaXRlKVxuICApO1xuXG4gIC8vIGRpc2FibGUgc3RhdGUgdmFyaWFibGVzXG4gIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1idG4tYmFja2dyb3VuZC1jb2xvci1kaXNhYmxlZDogdmFyKC0tc2JiLWJhY2tncm91bmQtY29sb3ItMik7XG4gIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1idG4tYm9yZGVyLWNvbG9yLWRpc2FibGVkOiBsaWdodC1kYXJrKFxuICAgIHZhcigtLXNiYi1jb2xvci1wbGF0aW51bSksXG4gICAgdmFyKC0tc2JiLWNvbG9yLWlyb24pXG4gICk7XG59XG5cbi5zYmItc3ItbmF2aWdhdGlvbl9faXRlbS1jb2FjaCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogc2JiLXNyLWZ1bmN0aW9ucy5zci1weC10by1yZW0oOCk7XG4gIHdpZHRoOiBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbSg4MCk7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcblxuICAmLmZpcnN0LWNvYWNoLFxuICAmLmxhc3QtY29hY2gge1xuICAgIC5zYmItc3ItbmF2aWdhdGlvbi0tZmlyc3QtY2xhc3Mge1xuICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKDE4KSk7XG4gICAgfVxuICB9XG5cbiAgJi5maXJzdC1jb2FjaCB7XG4gICAgLnNiYi1zci1uYXZpZ2F0aW9uX19jdHJsLWJ1dHRvbjpub3QoLnNiYi1zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tZHJpdmVyLWFyZWEpIHtcbiAgICAgIEBpbmNsdWRlIHNiYi1zci1taXhpbnMudmlzdWFsaXplLWNvYWNoLWJvcmRlcig4LCAyLCAyLCA4KTtcbiAgICB9XG5cbiAgICAuc2JiLXNyLW5hdmlnYXRpb24tLWZpcnN0LWNsYXNzIHtcbiAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKFxuICAgICAgICB2YXIoLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLXRyYXZlbGNsYXNzLXNwYWNpbmcpXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gICYubGFzdC1jb2FjaCB7XG4gICAgLnNiYi1zci1uYXZpZ2F0aW9uX19jdHJsLWJ1dHRvbjpub3QoLnNiYi1zci1uYXZpZ2F0aW9uLWRyaXZlci1hcmVhKSB7XG4gICAgICBAaW5jbHVkZSBzYmItc3ItbWl4aW5zLnZpc3VhbGl6ZS1jb2FjaC1ib3JkZXIoMiwgOCwgOCwgMik7XG4gICAgfVxuXG4gICAgLnNiYi1zci1uYXZpZ2F0aW9uX19hZGRpdGlvbmFsLWluZm9ybWF0aW9uIHtcbiAgICAgIHBhZGRpbmctaW5saW5lLWVuZDogc2JiLXNyLWZ1bmN0aW9ucy5zci1weC10by1yZW0oXG4gICAgICAgIHZhcigtLXNiYi1zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tdHJhdmVsY2xhc3Mtc3BhY2luZylcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLnNiYi1zci1uYXZpZ2F0aW9uLS1maXJzdC1jbGFzcyB7XG4gICAgICBtYXJnaW4taW5saW5lLWVuZDogc2JiLXNyLWZ1bmN0aW9ucy5zci1weC10by1yZW0oXG4gICAgICAgIHZhcigtLXNiYi1zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tdHJhdmVsY2xhc3Mtc3BhY2luZylcbiAgICAgICk7XG4gICAgfVxuICB9XG59XG5cbi8vIHNhbWUgZm9yIGFsbCBzdGF0ZXNcbi5zYmItc3ItbmF2aWdhdGlvbl9fY3RybC1idXR0b24ge1xuICBAaW5jbHVkZSBzYmIuYnV0dG9uLXJlc2V0O1xuXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBoZWlnaHQ6IHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKDM2KTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLWJ0bi1iYWNrZ3JvdW5kLWNvbG9yKTtcbiAgY3Vyc29yOiB2YXIoLS1zYmItY3Vyc29yLXBvaW50ZXIpO1xuXG4gICYuc2JiLXNyLW5hdmlnYXRpb24tZHJpdmVyLWFyZWEge1xuICAgIEBpbmNsdWRlIHNiYi1zci1taXhpbnMudmlzdWFsaXplLWNvYWNoLWJvcmRlcig4LCA4LCA4LCA4KTtcbiAgfVxuXG4gIEBpbmNsdWRlIHNiYi1zci1taXhpbnMudmlzdWFsaXplLWNvYWNoLWJvcmRlcigyLCAyLCAyLCAyKTtcbn1cblxuLnNiYi1zci1uYXZpZ2F0aW9uX19pdGVtLWNvYWNoLS1mb2N1c2VkIC5zYmItc3ItbmF2aWdhdGlvbl9fY3RybC1idXR0b24ge1xuICBAaW5jbHVkZSBzYmItc3ItbWl4aW5zLnN0eWxlLWNvYWNoLWJ5LXN0YXRlKCdmb2N1c2VkJyk7XG5cbiAgLnNiYi1zci1uYXZpZ2F0aW9uX19pdGVtLWNvYWNoLXRyYXZlbGNsYXNzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodC1kYXJrKHZhcigtLXNiYi1jb2xvci1tZXRhbCksIHZhcigtLXNiYi1jb2xvci1zdG9ybSkpO1xuICB9XG5cbiAgLnNiYi1zci1uYXZpZ2F0aW9uX19pdGVtLWNvYWNoLW51bWJlciB7XG4gICAgY29sb3I6IGxpZ2h0LWRhcmsodmFyKC0tc2JiLWNvbG9yLWFudGhyYWNpdGUpLCB2YXIoLS1zYmItY29sb3ItZ3JhcGhpdGUpKTtcbiAgfVxufVxuXG4vLyBzZWxlY3RlZCwgaS5lLiB0aGUgY29hY2ggd2l0aGluIHRoZSB0cmFpbiBpcyBzZWxlY3RlZCAoRklHTUEgU3RhdGU6U2VsZWN0ZWQpXG4uc2JiLXNyLW5hdmlnYXRpb25fX2l0ZW0tY29hY2gtLXNlbGVjdGVkIC5zYmItc3ItbmF2aWdhdGlvbl9fY3RybC1idXR0b24ge1xuICBAaW5jbHVkZSBzYmItc3ItbWl4aW5zLnN0eWxlLWNvYWNoLWJ5LXN0YXRlKCdzZWxlY3RlZCcpO1xuXG4gIC5zYmItc3ItbmF2aWdhdGlvbl9faXRlbS1jb2FjaC10cmF2ZWxjbGFzcyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHQtZGFyayh2YXIoLS1zYmItY29sb3ItYmxhY2spLCB2YXIoLS1zYmItY29sb3Itd2hpdGUpKTtcbiAgfVxuXG4gIC5zYmItc3ItbmF2aWdhdGlvbl9faXRlbS1jb2FjaC1udW1iZXIge1xuICAgIGNvbG9yOiBsaWdodC1kYXJrKHZhcigtLXNiYi1jb2xvci1ibGFjayksIHZhcigtLXNiYi1jb2xvci13aGl0ZSkpO1xuICB9XG59XG5cbi5zYmItc3ItbmF2aWdhdGlvbl9faXRlbS1jb2FjaC0taG92ZXJlZCAuc2JiLXNyLW5hdmlnYXRpb25fX2N0cmwtYnV0dG9uIHtcbiAgQGluY2x1ZGUgc2JiLXNyLW1peGlucy5zdHlsZS1jb2FjaC1ieS1zdGF0ZSgnaG92ZXJlZCcpO1xufVxuXG4uc2JiLXNyLW5hdmlnYXRpb25fX2l0ZW0tY29hY2gtLXNlbGVjdGVkLnNiYi1zci1uYXZpZ2F0aW9uX19pdGVtLWNvYWNoLS1ob3ZlcmVkXG4gIC5zYmItc3ItbmF2aWdhdGlvbl9fY3RybC1idXR0b24ge1xuICBAaW5jbHVkZSBzYmItc3ItbWl4aW5zLnN0eWxlLWNvYWNoLWJ5LXN0YXRlKCdzZWxlY3RlZCcpO1xuXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi1zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tYnRuLWJhY2tncm91bmQtY29sb3ItaG92ZXJlZCkgIWltcG9ydGFudDtcbn1cblxuLy8gc2VsZWN0ZWQgQU5EIGZvY3VzIChGSUdNQSBTdGF0ZTpTZWxlY3RlZCArIEZvY3VzZWQpXG4vLyBiYWNrZ3JvdW5kLWNvbG9yIGZyb20gc2VsZWN0ZWQgU3RhdGUgaGFzIG1vcmUgc3BlY2lmaWNpdHksIHNvIHdlIG5lZWQgdG8gb3ZlcnJpZGUgaXQgaGVyZSAoYWdhaW4pXG4uc2JiLXNyLW5hdmlnYXRpb25fX2l0ZW0tY29hY2gtLXNlbGVjdGVkXG4gIC5zYmItc3ItbmF2aWdhdGlvbl9fY3RybC1idXR0b246Zm9jdXMtdmlzaWJsZTpub3QoI3skZGlzYWJsZWR9KSB7XG4gIEBpbmNsdWRlIHNiYi1zci1taXhpbnMuc3R5bGUtY29hY2gtYnktc3RhdGUoJ3NlbGVjdGVkJyk7XG59XG5cbi5zYmItc3ItbmF2aWdhdGlvbl9faXRlbS1jb2FjaC0taG92ZXJlZCAuc2JiLXNyLW5hdmlnYXRpb25fX2N0cmwtYnV0dG9uIHtcbiAgQGluY2x1ZGUgc2JiLXNyLW1peGlucy5zdHlsZS1jb2FjaC1ieS1zdGF0ZSgnaG92ZXJlZCcpO1xufVxuXG4vLyBob3ZlciAoRklHTUEgU3RhdGU6aG92ZXIpXG4uc2JiLXNyLW5hdmlnYXRpb25fX2N0cmwtYnV0dG9uOmhvdmVyOm5vdCgjeyRkaXNhYmxlZH0pIHtcbiAgQGluY2x1ZGUgc2JiLXNyLW1peGlucy5zdHlsZS1jb2FjaC1ieS1zdGF0ZSgnaG92ZXJlZCcpO1xuXG4gIC5zYmItc3ItbmF2aWdhdGlvbl9faXRlbS1jb2FjaC10cmF2ZWxjbGFzcyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLWNvbG9yLXNtb2tlKTtcbiAgfVxuXG4gIC5zYmItc3ItbmF2aWdhdGlvbl9faXRlbS1jb2FjaC1udW1iZXIge1xuICAgIGNvbG9yOiBsaWdodC1kYXJrKHZhcigtLXNiYi1jb2xvci1pcm9uKSwgdmFyKC0tc2JiLWNvbG9yLXNpbHZlcikpO1xuICB9XG59XG5cbi8vIGRpc2FibGVkIChGSUdNQSBTdGF0ZTpkaXNhYmxlZClcbi5zYmItc3ItbmF2aWdhdGlvbl9fY3RybC1idXR0b246aXMoI3skZGlzYWJsZWR9KSB7XG4gIEBpbmNsdWRlIHNiYi1zci1taXhpbnMuc3R5bGUtY29hY2gtYnktc3RhdGUoJ2Rpc2FibGVkJyk7XG5cbiAgY3Vyc29yOiB1bnNldDtcbiAgcG9pbnRlci1ldmVudHM6IHVuc2V0O1xuXG4gIC5zYmItc3ItbmF2aWdhdGlvbl9faXRlbS1jb2FjaC10cmF2ZWxjbGFzcyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHQtZGFyayh2YXIoLS1zYmItY29sb3ItZ3JhcGhpdGUpLCB2YXIoLS1zYmItY29sb3ItZ3Jhbml0ZSkpO1xuICB9XG5cbiAgLnNiYi1zci1uYXZpZ2F0aW9uX19pdGVtLWNvYWNoLW51bWJlciB7XG4gICAgY29sb3I6IGxpZ2h0LWRhcmsodmFyKC0tc2JiLWNvbG9yLWdyYXBoaXRlKSwgdmFyKC0tc2JiLWNvbG9yLWdyYW5pdGUpKTtcbiAgfVxufVxuXG4uc2JiLXNyLW5hdmlnYXRpb25fX2FkZGl0aW9uYWwtaW5mb3JtYXRpb24ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZsZXg6IDE7XG4gIGNvbHVtbi1nYXA6IHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKDgpO1xuICBwYWRkaW5nLWlubGluZTogc2JiLXNyLWZ1bmN0aW9ucy5zci1weC10by1yZW0oMTYpO1xuICBmb250LWZhbWlseTogdmFyKC0tc2JiLXR5cG8tZm9udC1mYW1pbHkpO1xuICBmb250LXdlaWdodDogNzAwO1xuICBjb2xvcjogbGlnaHQtZGFyayh2YXIoLS1zYmItY29sb3ItZ3Jhbml0ZSksIHZhcigtLXNiYi1jb2xvci1ncmFuaXRlKSk7XG5cbiAgQGluY2x1ZGUgc2JiLmlmLWZvcmNlZC1jb2xvcnMge1xuICAgIGNvbG9yOiB2YXIoLS1zYmItY29sb3ItbWlsayk7XG4gIH1cbn1cblxuLnNiYi1zci1uYXZpZ2F0aW9uX19pdGVtLWNvYWNoLW51bWJlciB7XG4gIGNvbG9yOiBsaWdodC1kYXJrKHZhcigtLXNiYi1jb2xvci1ncmFuaXRlKSwgdmFyKC0tc2JiLWNvbG9yLWdyYXBoaXRlKSk7XG5cbiAgQGluY2x1ZGUgc2JiLmlmLWZvcmNlZC1jb2xvcnMge1xuICAgIGNvbG9yOiBsaWdodC1kYXJrKHZhcigtLXNiYi1jb2xvci1ncmFuaXRlKSwgdmFyKC0tc2JiLWNvbG9yLWdyYXBoaXRlKSk7XG4gIH1cblxuICAuc2JiLXNyLW5hdmlnYXRpb25fX2l0ZW0tY29hY2gtdHJhdmVsY2xhc3Mge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi1iYWNrZ3JvdW5kLWNvbG9yLTItaW52ZXJ0ZWQpO1xuICB9XG59XG5cbi8vIGdyYXBoaWNhbCBvcmllbnRhdGlvbiBvZiBGSVJTVCBjbGFzc1xuLnNiYi1zci1uYXZpZ2F0aW9uLS1maXJzdC1jbGFzcyB7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbSg4KSk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQtYmxvY2stc3RhcnQ6IHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKDMpO1xuICBpbnNldC1pbmxpbmUtc3RhcnQ6IHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKDQpO1xuXG4gIC8vIHVzZSBib3JkZXIgaW5zdGVhZCBvZiBoZWlnaHQgdG8gc3VwcG9ydCBmb3JjZS1jb2xvciBtb2Rlc1xuICBib3JkZXI6IHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKDEpIHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1zYmItYm9yZGVyLXJhZGl1cy0xeCk7XG4gIG1hcmdpbjogYXV0bztcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLWNvbG9yLWxlbW9uKTtcbn1cblxuLy8gdGV4dHVhbCBvcmllbnRhdGlvbiBvZiB0cmF2ZWwgY2xhc3Ncbi5zYmItc3ItbmF2aWdhdGlvbl9faXRlbS1jb2FjaC10cmF2ZWxjbGFzcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBtaW4taGVpZ2h0OiBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbSgyMCk7XG4gIG1pbi13aWR0aDogc2JiLXNyLWZ1bmN0aW9ucy5zci1weC10by1yZW0oMjApO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1zYmItYm9yZGVyLXJhZGl1cy0xeCk7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHQtZGFyayh2YXIoLS1zYmItY29sb3ItZ3Jhbml0ZSksIHZhcigtLXNiYi1jb2xvci1ncmFwaGl0ZSkpO1xuICBjb2xvcjogbGlnaHQtZGFyayh2YXIoLS1zYmItY29sb3Itd2hpdGUpLCB2YXIoLS1zYmItY29sb3ItYmxhY2spKTtcblxuICBAaW5jbHVkZSBzYmIuaWYtZm9yY2VkLWNvbG9ycyB7XG4gICAgYm9yZGVyOiB2YXIoLS1zYmItYm9yZGVyLXdpZHRoLTF4KSBzb2xpZDtcbiAgfVxufVxuXG4vLyAjIyMjIyMjIyMjIyMjIyMjIFZFUlRJQ0FMIE1PREUgc2V0dGluZ3MgIyMjIyMjIyMjIyMjIyMjI1xuOmhvc3QoW3ZlcnRpY2FsXSkgLnNiYi1zci1uYXZpZ2F0aW9uX19pdGVtLWNvYWNoIHtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAuc2JiLXNyLW5hdmlnYXRpb25fX2N0cmwtYnV0dG9uIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG4gICAgaGVpZ2h0OiBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbSg4MCk7XG4gICAgbWluLXdpZHRoOiBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbSgzNik7XG4gIH1cblxuICAuc2JiLXNyLW5hdmlnYXRpb25fX2FkZGl0aW9uYWwtaW5mb3JtYXRpb24ge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcbiAgICBwYWRkaW5nLWJsb2NrOiBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbSgxNik7XG4gICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IHVuc2V0O1xuICAgIHBhZGRpbmctaW5saW5lLWVuZDogdW5zZXQ7XG4gIH1cblxuICAuc2JiLXNyLW5hdmlnYXRpb24tLWZpcnN0LWNsYXNzIHtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKDgpKTtcbiAgICB3aWR0aDogaW5pdGlhbDtcbiAgICBpbnNldC1pbmxpbmUtZW5kOiBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbSgzKTtcbiAgICBpbnNldC1ibG9jay1zdGFydDogc2JiLXNyLWZ1bmN0aW9ucy5zci1weC10by1yZW0oNCk7XG4gICAgaW5zZXQtaW5saW5lLXN0YXJ0OiBpbml0aWFsO1xuICB9XG5cbiAgJi5maXJzdC1jb2FjaCxcbiAgJi5sYXN0LWNvYWNoIHtcbiAgICAuc2JiLXNyLW5hdmlnYXRpb24tLWZpcnN0LWNsYXNzIHtcbiAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gc2JiLXNyLWZ1bmN0aW9ucy5zci1weC10by1yZW0oMTgpKTtcbiAgICB9XG4gIH1cblxuICAvLyBoYW5kbGUgYm9yZGVyLXJhZGl1c1xuICAmLmZpcnN0LWNvYWNoOm5vdCgubGFzdC1jb2FjaCkge1xuICAgIC5zYmItc3ItbmF2aWdhdGlvbl9fY3RybC1idXR0b246bm90KC5zYmItc3ItbmF2aWdhdGlvbi1kcml2ZXItYXJlYSkge1xuICAgICAgQGluY2x1ZGUgc2JiLXNyLW1peGlucy52aXN1YWxpemUtY29hY2gtYm9yZGVyKDgsIDgsIDIsIDIpO1xuICAgIH1cblxuICAgIC5zYmItc3ItbmF2aWdhdGlvbi0tZmlyc3QtY2xhc3Mge1xuICAgICAgbWFyZ2luLWJsb2NrLXN0YXJ0OiBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbShcbiAgICAgICAgdmFyKC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi10cmF2ZWxjbGFzcy1zcGFjaW5nKVxuICAgICAgKTtcbiAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IGluaXRpYWw7XG4gICAgfVxuICB9XG5cbiAgJi5sYXN0LWNvYWNoOm5vdCguZmlyc3QtY29hY2gpIHtcbiAgICAuc2JiLXNyLW5hdmlnYXRpb25fX2N0cmwtYnV0dG9uOm5vdCguc2JiLXNyLW5hdmlnYXRpb24tZHJpdmVyLWFyZWEpIHtcbiAgICAgIEBpbmNsdWRlIHNiYi1zci1taXhpbnMudmlzdWFsaXplLWNvYWNoLWJvcmRlcigyLCAyLCA4LCA4KTtcbiAgICB9XG5cbiAgICAuc2JiLXNyLW5hdmlnYXRpb24tLWZpcnN0LWNsYXNzIHtcbiAgICAgIG1hcmdpbi1ibG9jay1lbmQ6IHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKFxuICAgICAgICB2YXIoLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLXRyYXZlbGNsYXNzLXNwYWNpbmcpXG4gICAgICApO1xuICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IGluaXRpYWw7XG4gICAgfVxuICB9XG5cbiAgLy8gRHJpdmVyIGFyZWFcbiAgLnNiYi1zci1uYXZpZ2F0aW9uLWRyaXZlci1hcmVhIHtcbiAgICBoZWlnaHQ6IHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKDgwKTtcbiAgICBtaW4td2lkdGg6IHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKDM2KTtcbiAgfVxufVxuIiwiaW1wb3J0IHsgU2JiRWxlbWVudCB9IGZyb20gJ0BzYmItZXN0YS9seW5lLWVsZW1lbnRzL2NvcmUvYmFzZS1lbGVtZW50cy5qcyc7XG5pbXBvcnQgeyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIgfSBmcm9tICdAc2JiLWVzdGEvbHluZS1lbGVtZW50cy9jb3JlL2NvbnRyb2xsZXJzLmpzJztcbmltcG9ydCB7IGZvcmNlVHlwZSB9IGZyb20gJ0BzYmItZXN0YS9seW5lLWVsZW1lbnRzL2NvcmUvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBib3hTaXppbmdTdHlsZXMgfSBmcm9tICdAc2JiLWVzdGEvbHluZS1lbGVtZW50cy9jb3JlL3N0eWxlcy5qcyc7XG5pbXBvcnQge1xuICB0eXBlIENTU1Jlc3VsdEdyb3VwLFxuICBodG1sLFxuICBub3RoaW5nLFxuICB0eXBlIFByb3BlcnR5VmFsdWVzLFxuICB0eXBlIFRlbXBsYXRlUmVzdWx0LFxuICB1bnNhZmVDU1MsXG59IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IGNsYXNzTWFwIH0gZnJvbSAnbGl0L2RpcmVjdGl2ZXMvY2xhc3MtbWFwLmpzJztcblxuaW1wb3J0IHsgZ2V0STE4blNlYXRSZXNlcnZhdGlvbiB9IGZyb20gJy4uL2NvbW1vbi90cmFuc2xhdGlvbnMudHMnO1xuaW1wb3J0IHR5cGUgeyBDb2FjaEl0ZW1EZXRhaWxzIH0gZnJvbSAnLi4vY29tbW9uL3R5cGVzLnRzJztcbmltcG9ydCB7IFNiYlNlYXRSZXNlcnZhdGlvbk5hdmlnYXRpb25TZXJ2aWNlc0VsZW1lbnQgfSBmcm9tICcuLi9zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tc2VydmljZXMvc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLXNlcnZpY2VzLmNvbXBvbmVudC50cyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL3NlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1jb2FjaC5zY3NzP2lubGluZSc7XG5cbmltcG9ydCAnQHNiYi1lc3RhL2x5bmUtZWxlbWVudHMvc2NyZWVuLXJlYWRlci1vbmx5LmpzJztcblxuU2JiU2VhdFJlc2VydmF0aW9uTmF2aWdhdGlvblNlcnZpY2VzRWxlbWVudC5kZWZpbmUoKTtcblxuZXhwb3J0IHR5cGUgU2VsZWN0Q29hY2hFdmVudERldGFpbHMgPSBudW1iZXI7XG5cbi8qKlxuICogVGhpcyBjb21wb25lbnQgd2lsbCBkaXNwbGF5IHRoZSBuYXZpZ2F0aW9uIGNvYWNoIGl0ZW0gZm9yIFNlYXQgcmVzZXJ2YXRpb24uXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJTZWF0UmVzZXJ2YXRpb25OYXZpZ2F0aW9uQ29hY2hFbGVtZW50IGV4dGVuZHMgU2JiRWxlbWVudCB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgZWxlbWVudE5hbWU6IHN0cmluZyA9ICdzYmItc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLWNvYWNoJztcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW2JveFNpemluZ1N0eWxlcywgdW5zYWZlQ1NTKHN0eWxlKV07XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgZXZlbnRzID0ge1xuICAgIHNlbGVjdGNvYWNoOiAnc2VsZWN0Y29hY2gnLFxuICAgIGZvY3VzY29hY2g6ICdmb2N1c2NvYWNoJyxcbiAgfSBhcyBjb25zdDtcblxuICAvKiogU2VsZWN0IGNvYWNoIHByb3BlcnR5ICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBzZWxlY3RlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBGb2N1cyBjb2FjaCBwcm9wZXJ0eSAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3IgZm9jdXNlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBIb3ZlciBjb2FjaCBwcm9wZXJ0eSAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3IgaG92ZXJlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBOYXRpdmUgZm9jdXMgZm9yIHRoaXMgbmF2aWdhdGlvbiBjb2FjaCBpcyBhbHNvIHNldCB3aGVuIHRoZSBmb2N1c2VkIHByb3BlcnR5IGlzIGNoYW5nZWQgKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IEJvb2xlYW4gfSlcbiAgcHVibGljIGFjY2Vzc29yIG5hdGl2ZUZvY3VzQWN0aXZlOiBib29sZWFuID0gdHJ1ZTtcblxuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgdHlwZTogTnVtYmVyIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBpbmRleDogbnVtYmVyID0gMDtcblxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdjb2FjaC1pdGVtLWRldGFpbHMnLCB0eXBlOiBPYmplY3QgfSlcbiAgcHVibGljIGFjY2Vzc29yIGNvYWNoSXRlbURldGFpbHM6IENvYWNoSXRlbURldGFpbHMgPSA8Q29hY2hJdGVtRGV0YWlscz57fTtcblxuICAvKiogRGlzYWJsZSB0aGUgY29hY2ggbmF2aWdhdGlvbiAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnZGlzYWJsZScsIHR5cGU6IEJvb2xlYW4gfSlcbiAgcHVibGljIGFjY2Vzc29yIGRpc2FibGU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogSWYgdGhlIGNvYWNoIG5hdmlnYXRpb24gc2hvdWxkIGJlIGRpc3BsYXllZCB2ZXJ0aWNhbGx5ICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuLCByZWZsZWN0OiB0cnVlLCB1c2VEZWZhdWx0OiB0cnVlIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciB2ZXJ0aWNhbDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBEaXNhYmxlIHRoZSBtb3VzZSBvdmVyIHRpdGxlIGluZm9ybWF0aW9uICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBzaG93VGl0bGVJbmZvOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBfbGFuZ3VhZ2UgPSBuZXcgU2JiTGFuZ3VhZ2VDb250cm9sbGVyKHRoaXMpO1xuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB3aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnc2VsZWN0ZWQnKSkge1xuICAgICAgY29uc3Qgc2VsZWN0ZWROYXZCdXR0b25FbGVtZW50ID0gdGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKFxuICAgICAgICAnLnNiYi1zci1uYXZpZ2F0aW9uX19jdHJsLWJ1dHRvbicsXG4gICAgICApIGFzIEhUTUxCdXR0b25FbGVtZW50O1xuICAgICAgaWYgKHRoaXMuc2VsZWN0ZWQgJiYgc2VsZWN0ZWROYXZCdXR0b25FbGVtZW50KSB7XG4gICAgICAgIGlmICh0aGlzLm5hdGl2ZUZvY3VzQWN0aXZlKSB7XG4gICAgICAgICAgc2VsZWN0ZWROYXZCdXR0b25FbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICAgICAgLyoqIEVtaXRzIHdoZW4gYSBuYXYgY29hY2ggaGFzIHRoZSBmb2N1cyAqL1xuICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdmb2N1c2NvYWNoJywgeyBidWJibGVzOiB0cnVlLCBjb21wb3NlZDogdHJ1ZSB9KSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnZm9jdXNlZCcpICYmIHRoaXMuZm9jdXNlZCkge1xuICAgICAgY29uc3QgZm9jdXNlZE5hdkJ1dHRvbkVsZW1lbnQgPSB0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAgICcuc2JiLXNyLW5hdmlnYXRpb25fX2N0cmwtYnV0dG9uJyxcbiAgICAgICkgYXMgSFRNTEJ1dHRvbkVsZW1lbnQ7XG5cbiAgICAgIGlmIChmb2N1c2VkTmF2QnV0dG9uRWxlbWVudCAmJiB0aGlzLm5hdGl2ZUZvY3VzQWN0aXZlKSB7XG4gICAgICAgIGZvY3VzZWROYXZCdXR0b25FbGVtZW50LmZvY3VzKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlbmRlciBhIGxpc3Qgb2Ygc2VydmljZSBpY29ucyBwcm92aWRlZCBieSBhIGNhbGxlclxuICAgKlxuICAgKiBAcHJvdGVjdGVkXG4gICAqL1xuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCIke2NsYXNzTWFwKHtcbiAgICAgICAgICAnc2JiLXNyLW5hdmlnYXRpb25fX2l0ZW0tY29hY2gnOiB0cnVlLFxuICAgICAgICAgICdsYXN0LWNvYWNoJzogdGhpcy5jb2FjaEl0ZW1EZXRhaWxzLmRyaXZlckFyZWFTaWRlPy5yaWdodCB8fCBmYWxzZSxcbiAgICAgICAgICAnZmlyc3QtY29hY2gnOiB0aGlzLmNvYWNoSXRlbURldGFpbHMuZHJpdmVyQXJlYVNpZGU/LmxlZnQgfHwgZmFsc2UsXG4gICAgICAgICAgJ3NiYi1zci1uYXZpZ2F0aW9uX19pdGVtLWNvYWNoLS1zZWxlY3RlZCc6IHRoaXMuc2VsZWN0ZWQsXG4gICAgICAgICAgJ3NiYi1zci1uYXZpZ2F0aW9uX19pdGVtLWNvYWNoLS1mb2N1c2VkJzogdGhpcy5mb2N1c2VkLFxuICAgICAgICAgICdzYmItc3ItbmF2aWdhdGlvbl9faXRlbS1jb2FjaC0taG92ZXJlZCc6IHRoaXMuaG92ZXJlZCxcbiAgICAgICAgfSl9XCJcbiAgICAgID5cbiAgICAgICAgJHt0aGlzLl9nZXROYXZpZ2F0aW9uQnV0dG9uKCl9XG4gICAgICAgICR7dGhpcy5jb2FjaEl0ZW1EZXRhaWxzLnByb3BlcnR5SWRzPy5sZW5ndGhcbiAgICAgICAgICA/IGh0bWxgPHNiYi1zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tc2VydmljZXNcbiAgICAgICAgICAgICAgP3ZlcnRpY2FsPVwiJHt0aGlzLnZlcnRpY2FsfVwiXG4gICAgICAgICAgICAgIC5wcm9wZXJ0eUlkcz1cIiR7dGhpcy5jb2FjaEl0ZW1EZXRhaWxzLnByb3BlcnR5SWRzfVwiXG4gICAgICAgICAgICAgID9zaG93VGl0bGVJbmZvPVwiJHt0aGlzLnNob3dUaXRsZUluZm99XCJcbiAgICAgICAgICAgID48L3NiYi1zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tc2VydmljZXM+YFxuICAgICAgICAgIDogbm90aGluZ31cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cblxuICBwcml2YXRlIF9nZXROYXZpZ2F0aW9uQnV0dG9uKCk6IFRlbXBsYXRlUmVzdWx0IHwgbnVsbCB7XG4gICAgY29uc3QgY3VyclNlcnZpY2VDbGFzc051bWJlciA9IHRoaXMuX2dldENvYWNoU2VydmljZUNsYXNzTnVtYmVyKCk7XG4gICAgY29uc3QgdGl0bGVEZXNjcmlwdGlvbk5hdkNvYWNoQnV0dG9uID1cbiAgICAgIHRoaXMuX2dldFRpdGxlRGVzY3JpcHRpb25OYXZDb2FjaEJ1dHRvbihjdXJyU2VydmljZUNsYXNzTnVtYmVyKTtcbiAgICBjb25zdCBhcmlhRGVzY3JpcHRpb25Db2FjaFNlcnZpY2VzID0gdGhpcy5fZ2V0QXJpYURlc2NyaXB0aW9uQ29hY2hTZXJ2aWNlcygpO1xuXG4gICAgcmV0dXJuIGh0bWxgIDxidXR0b25cbiAgICAgIEBjbGljaz0keygpID0+IHRoaXMuX3NlbGVjdE5hdkNvYWNoKHRoaXMuaW5kZXgpfVxuICAgICAgY2xhc3M9XCIke2NsYXNzTWFwKHtcbiAgICAgICAgJ3NiYi1zci1uYXZpZ2F0aW9uX19jdHJsLWJ1dHRvbic6IHRydWUsXG4gICAgICAgICdzYmItc3ItbmF2aWdhdGlvbi1kcml2ZXItYXJlYSc6IHRoaXMuY29hY2hJdGVtRGV0YWlscy5pc0RyaXZlckFyZWEsXG4gICAgICB9KX1cIlxuICAgICAgP2Rpc2FibGVkPVwiJHt0aGlzLmRpc2FibGV9XCJcbiAgICAgIHRpdGxlPVwiJHt0aGlzLnNob3dUaXRsZUluZm8gPyB0aXRsZURlc2NyaXB0aW9uTmF2Q29hY2hCdXR0b24gOiBub3RoaW5nfVwiXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIGFyaWEtZGVzY3JpYmVkYnk9XCJuYXYtY29hY2gtc2VydmljZS1kZXNjcmlwdGlvbnMtJHt0aGlzLmluZGV4fVwiXG4gICAgPlxuICAgICAgJHt0aGlzLl9nZXRCdG5JbmZvcm1hdGlvbihjdXJyU2VydmljZUNsYXNzTnVtYmVyKX1cbiAgICAgIDxzYmItc2NyZWVuLXJlYWRlci1vbmx5IGlkPVwibmF2LWNvYWNoLXNlcnZpY2UtZGVzY3JpcHRpb25zLSR7dGhpcy5pbmRleH1cIj5cbiAgICAgICAgJHshdGhpcy5zaG93VGl0bGVJbmZvID8gaHRtbGA8ZGl2PiR7dGl0bGVEZXNjcmlwdGlvbk5hdkNvYWNoQnV0dG9ufTwvZGl2PmAgOiBub3RoaW5nfVxuICAgICAgICAke2FyaWFEZXNjcmlwdGlvbkNvYWNoU2VydmljZXMgPyBodG1sYDxkaXY+JHthcmlhRGVzY3JpcHRpb25Db2FjaFNlcnZpY2VzfTwvZGl2PmAgOiBub3RoaW5nfVxuICAgICAgPC9zYmItc2NyZWVuLXJlYWRlci1vbmx5PlxuICAgIDwvYnV0dG9uPmA7XG4gIH1cblxuICBwcml2YXRlIF9nZXRCdG5JbmZvcm1hdGlvbihzZXJ2aWNlQ2xhc3NOdW1iZXI6IG51bWJlciB8IG51bGwpOiBUZW1wbGF0ZVJlc3VsdCB8IG51bGwge1xuICAgIGlmICh0aGlzLmNvYWNoSXRlbURldGFpbHMuaXNEcml2ZXJBcmVhKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gaHRtbGBcbiAgICAgICR7c2VydmljZUNsYXNzTnVtYmVyID09PSAxXG4gICAgICAgID8gaHRtbGA8c3BhbiBjbGFzcz1cInNiYi1zci1uYXZpZ2F0aW9uLS1maXJzdC1jbGFzc1wiPjwvc3Bhbj5gXG4gICAgICAgIDogbm90aGluZ31cbiAgICAgICR7dGhpcy5jb2FjaEl0ZW1EZXRhaWxzLnRyYXZlbENsYXNzPy5sZW5ndGggPiAwIHx8IHRoaXMuY29hY2hJdGVtRGV0YWlscy5pZFxuICAgICAgICA/IGh0bWxgPGRpdiBjbGFzcz1cInNiYi1zci1uYXZpZ2F0aW9uX19hZGRpdGlvbmFsLWluZm9ybWF0aW9uXCI+XG4gICAgICAgICAgICAke3RoaXMuY29hY2hJdGVtRGV0YWlscy5pZFxuICAgICAgICAgICAgICA/IGh0bWxgPGRpdiBjbGFzcz1cInNiYi1zci1uYXZpZ2F0aW9uX19pdGVtLWNvYWNoLW51bWJlclwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgICAgJHt0aGlzLmNvYWNoSXRlbURldGFpbHMuaWR9XG4gICAgICAgICAgICAgICAgPC9kaXY+YFxuICAgICAgICAgICAgICA6IG5vdGhpbmd9XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICR7c2VydmljZUNsYXNzTnVtYmVyID8/IG5vdGhpbmd9XG4gICAgICAgICAgICAgIGNsYXNzPVwic2JiLXNyLW5hdmlnYXRpb25fX2l0ZW0tY29hY2gtdHJhdmVsY2xhc3NcIlxuICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAke3NlcnZpY2VDbGFzc051bWJlcn1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PmBcbiAgICAgICAgOiBub3RoaW5nfVxuICAgIGA7XG4gIH1cblxuICBwcml2YXRlIF9nZXRUaXRsZURlc2NyaXB0aW9uTmF2Q29hY2hCdXR0b24oc2VydmljZUNsYXNzTnVtYmVyOiBudW1iZXIgfCBudWxsKTogc3RyaW5nIHtcbiAgICBpZiAoXG4gICAgICB0aGlzLmNvYWNoSXRlbURldGFpbHMuaXNEcml2ZXJBcmVhICYmXG4gICAgICAhdGhpcy5jb2FjaEl0ZW1EZXRhaWxzLmRyaXZlckFyZWFFbGVtZW50cz8uZHJpdmVyQXJlYU5vVmVydGljYWxXYWxsXG4gICAgKSB7XG4gICAgICByZXR1cm4gZ2V0STE4blNlYXRSZXNlcnZhdGlvbignTkFWSUdBVEVfQ09BQ0hfQkxPQ0tFRCcsIHRoaXMuX2xhbmd1YWdlLmN1cnJlbnQsIFtcbiAgICAgICAgdGhpcy5jb2FjaEl0ZW1EZXRhaWxzLmlkLFxuICAgICAgXSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY29hY2hJdGVtRGV0YWlscy5kcml2ZXJBcmVhRWxlbWVudHM/LmRyaXZlckFyZWFOb1ZlcnRpY2FsV2FsbCkge1xuICAgICAgcmV0dXJuIGdldEkxOG5TZWF0UmVzZXJ2YXRpb24oJ0NPQUNIX0xPQ09NT1RJVkUnLCB0aGlzLl9sYW5ndWFnZS5jdXJyZW50KTtcbiAgICB9XG5cbiAgICBsZXQgbGFiZWwgPSBnZXRJMThuU2VhdFJlc2VydmF0aW9uKCdOQVZJR0FURV9UT19DT0FDSCcsIHRoaXMuX2xhbmd1YWdlLmN1cnJlbnQsIFtcbiAgICAgIHRoaXMuY29hY2hJdGVtRGV0YWlscy5pZCxcbiAgICBdKTtcblxuICAgIC8vSWYgc2VydmljZSBjbGFzcyBleGlzdCwgdGhlbiBleHBhbmQgbGFiZWwgd2l0aCBzZXJ2aWNlIGNsYXNzIHRyYW5zbGF0aW9uXG4gICAgaWYgKHNlcnZpY2VDbGFzc051bWJlcikge1xuICAgICAgY29uc3Qgc2VydmljZUNsYXNzVHJhbnNsYXRpb25LZXkgPVxuICAgICAgICBzZXJ2aWNlQ2xhc3NOdW1iZXIgPT09IDEgPyAnU0VSVklDRV9DTEFTU19GSVJTVCcgOiAnU0VSVklDRV9DTEFTU19TRUNPTkQnO1xuICAgICAgY29uc3Qgc2VydmljZUNsYXNzVHJhbnNsYXRpb24gPSBnZXRJMThuU2VhdFJlc2VydmF0aW9uKFxuICAgICAgICBzZXJ2aWNlQ2xhc3NUcmFuc2xhdGlvbktleSxcbiAgICAgICAgdGhpcy5fbGFuZ3VhZ2UuY3VycmVudCxcbiAgICAgICk7XG4gICAgICBjb25zdCBzZXJ2aWNlQ2xhc3NMYWJlbCA9IGdldEkxOG5TZWF0UmVzZXJ2YXRpb24oXG4gICAgICAgICdOQVZJR0FURV9UT19DT0FDSF9TRVJWSUNFX0NMQVNTX1NVQicsXG4gICAgICAgIHRoaXMuX2xhbmd1YWdlLmN1cnJlbnQsXG4gICAgICAgIFtzZXJ2aWNlQ2xhc3NUcmFuc2xhdGlvbl0sXG4gICAgICApO1xuICAgICAgbGFiZWwgPSBsYWJlbC5jb25jYXQoc2VydmljZUNsYXNzTGFiZWwpO1xuICAgIH1cblxuICAgIC8vIEV4cGFuZHMgdGhlIG51bWJlciBvZiBhdmFpbGFibGUgc2VhdHMgYW5kIGJpY3ljbGUgc3BhY2VzIGFzIGluZm9cbiAgICBjb25zdCBmcmVlUGxhY2VzVHh0ID0gZ2V0STE4blNlYXRSZXNlcnZhdGlvbihcbiAgICAgICdDT0FDSF9BVkFJTEFCTEVfTlVNQkVSX09GX1BMQUNFUycsXG4gICAgICB0aGlzLl9sYW5ndWFnZS5jdXJyZW50LFxuICAgICAgW3RoaXMuY29hY2hJdGVtRGV0YWlscy5mcmVlUGxhY2VzPy5zZWF0cywgdGhpcy5jb2FjaEl0ZW1EZXRhaWxzLmZyZWVQbGFjZXM/LmJpY3ljbGVzXSxcbiAgICApO1xuICAgIGxhYmVsID0gbGFiZWwuY29uY2F0KCcuICcpLmNvbmNhdChmcmVlUGxhY2VzVHh0KTtcbiAgICByZXR1cm4gbGFiZWw7XG4gIH1cblxuICBwcml2YXRlIF9nZXRBcmlhRGVzY3JpcHRpb25Db2FjaFNlcnZpY2VzKCk6IHN0cmluZyB8IG51bGwge1xuICAgIGxldCBhcmlhRGVzY3JpcHRpb24gPSBudWxsO1xuICAgIGlmICh0aGlzLmNvYWNoSXRlbURldGFpbHMucHJvcGVydHlJZHM/Lmxlbmd0aCkge1xuICAgICAgYXJpYURlc2NyaXB0aW9uID1cbiAgICAgICAgZ2V0STE4blNlYXRSZXNlcnZhdGlvbignQ09BQ0hfQVZBSUxBQkxFX1NFUlZJQ0VTJywgdGhpcy5fbGFuZ3VhZ2UuY3VycmVudCkgKyAnOiAnO1xuICAgICAgYXJpYURlc2NyaXB0aW9uICs9XG4gICAgICAgIHRoaXMuY29hY2hJdGVtRGV0YWlscy5wcm9wZXJ0eUlkc1xuICAgICAgICAgIC5tYXAoKHByb3BlcnR5SWQpID0+IGdldEkxOG5TZWF0UmVzZXJ2YXRpb24ocHJvcGVydHlJZCwgdGhpcy5fbGFuZ3VhZ2UuY3VycmVudCkpXG4gICAgICAgICAgLmpvaW4oKSArICcuJztcbiAgICB9XG4gICAgcmV0dXJuIGFyaWFEZXNjcmlwdGlvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBlbWl0cyB0aGUgaW5kZXggb2YgdGhlIGNvYWNoIGFycmF5IGZvciB0aGUgbWFpbiBuYXZpZ2F0aW9uLlxuICAgKiBAcGFyYW0gY29hY2hJbmRleFxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBfc2VsZWN0TmF2Q29hY2goY29hY2hJbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgLyoqXG4gICAgICogQHR5cGUge0N1c3RvbUV2ZW50PFNlbGVjdENvYWNoRXZlbnREZXRhaWxzPn1cbiAgICAgKiBFbWl0cyB3aGVuIGEgY29hY2ggd2l0aGluIHRoZSBuYXZpZ2F0aW9uIHdhcyBzZWxlY3RlZCBhbmQgcmV0dXJucyB0aGUgY2xpY2tlZCBjb2FjaCBuYXYgaW5kZXguXG4gICAgICovXG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KFxuICAgICAgbmV3IEN1c3RvbUV2ZW50PFNlbGVjdENvYWNoRXZlbnREZXRhaWxzPignc2VsZWN0Y29hY2gnLCB7XG4gICAgICAgIGJ1YmJsZXM6IHRydWUsXG4gICAgICAgIGNvbXBvc2VkOiB0cnVlLFxuICAgICAgICBkZXRhaWw6IGNvYWNoSW5kZXgsXG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0Q29hY2hTZXJ2aWNlQ2xhc3NOdW1iZXIoKTogbnVtYmVyIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuY29hY2hJdGVtRGV0YWlscy50cmF2ZWxDbGFzcz8uaW5jbHVkZXMoJ0ZJUlNUJylcbiAgICAgID8gMVxuICAgICAgOiB0aGlzLmNvYWNoSXRlbURldGFpbHMudHJhdmVsQ2xhc3M/LmluY2x1ZGVzKCdTRUNPTkQnKVxuICAgICAgICA/IDJcbiAgICAgICAgOiBudWxsO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLWNvYWNoJzogU2JiU2VhdFJlc2VydmF0aW9uTmF2aWdhdGlvbkNvYWNoRWxlbWVudDtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUN1QkEsNENBQTRDLFFBQVE7Ozs7SUFPdkMsa0RBQXdDO21CQUFTOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2NBQWpELGlEQUFpRCxZQUFVOzs7QUFXdEQsU0FBQSw0QkFBQSxrQkFBQSxNQUFBLHdCQUFvQixNQUFLO0FBS3pCLFNBQUEsNEJBQUEsa0JBQUEsTUFBQSw0QkFBQSxFQUFBLGtCQUFBLE1BQUEsdUJBQW1CLE1BQUs7QUFLeEIsU0FBQSw0QkFBQSxrQkFBQSxNQUFBLDJCQUFBLEVBQUEsa0JBQUEsTUFBQSx1QkFBbUIsTUFBSztBQUt4QixTQUFBLHNDQUFBLGtCQUFBLE1BQUEsMkJBQUEsRUFBQSxrQkFBQSxNQUFBLGlDQUE2QixLQUFJO0FBSWpDLFNBQUEsMEJBQUEsa0JBQUEsTUFBQSxxQ0FBQSxFQUFBLGtCQUFBLE1BQUEscUJBQWdCLEVBQUM7QUFHakIsU0FBQSxxQ0FBQSxrQkFBQSxNQUFBLHlCQUFBLEVBQUEsa0JBQUEsTUFBQSxnQ0FBdUQsRUFBRSxDQUFBO0FBS3pELFNBQUEsNEJBQUEsa0JBQUEsTUFBQSxvQ0FBQSxFQUFBLGtCQUFBLE1BQUEsdUJBQW1CLE1BQUs7QUFLeEIsU0FBQSw2QkFBQSxrQkFBQSxNQUFBLDJCQUFBLEVBQUEsa0JBQUEsTUFBQSx3QkFBb0IsTUFBSztBQUt6QixTQUFBLGtDQUFBLGtCQUFBLE1BQUEsNEJBQUEsRUFBQSxrQkFBQSxNQUFBLDZCQUF5QixNQUFLO0FBRXRDLFFBQUEsYUFBUyxrQkFBQSxNQUFBLGlDQUFBLEVBQUcsSUFBSSxzQkFBc0IsS0FBSzs7OzsyQkF6Q2xELFdBQVcsRUFDWCxTQUFTLEVBQUUsTUFBTSxTQUFTLENBQUMsQ0FBQTswQkFJM0IsV0FBVyxFQUNYLFNBQVMsRUFBRSxNQUFNLFNBQVMsQ0FBQyxDQUFBOzBCQUkzQixXQUFXLEVBQ1gsU0FBUyxFQUFFLE1BQU0sU0FBUyxDQUFDLENBQUE7b0NBSTNCLFdBQVcsRUFDWCxTQUFTLEVBQUUsTUFBTSxTQUFTLENBQUMsQ0FBQTt3QkFHM0IsV0FBVyxFQUNYLFNBQVMsRUFBRSxNQUFNLFFBQVEsQ0FBQyxDQUFBO21DQUcxQixTQUFTO0lBQUUsV0FBVztJQUFzQixNQUFNO0lBQVEsQ0FBQyxDQUFBOzBCQUkzRCxXQUFXLEVBQ1gsU0FBUztJQUFFLFdBQVc7SUFBVyxNQUFNO0lBQVMsQ0FBQyxDQUFBOzJCQUlqRCxXQUFXLEVBQ1gsU0FBUztJQUFFLE1BQU07SUFBUyxTQUFTO0lBQU0sWUFBWTtJQUFNLENBQUMsQ0FBQTtnQ0FJNUQsV0FBVyxFQUNYLFNBQVMsRUFBRSxNQUFNLFNBQVMsQ0FBQyxDQUFBO0FBcEM1QixnQkFBQSxNQUFBLE1BQUEsc0JBQUE7SUFBQSxNQUFBO0lBQUEsTUFBQTtJQUFBLFFBQUE7SUFBQSxTQUFBO0lBQUEsUUFBQTtLQUFBLE1BQUEsUUFBQSxjQUFBO0tBQUEsTUFBQSxRQUFBLElBQWdCO0tBQVEsTUFBQSxLQUFBLFVBQUE7QUFBQSxVQUFSLFdBQVE7O0tBQUE7SUFBQSxVQUFBO0lBQUEsRUFBQSx3QkFBQSw0QkFBQTtBQUt4QixnQkFBQSxNQUFBLE1BQUEscUJBQUE7SUFBQSxNQUFBO0lBQUEsTUFBQTtJQUFBLFFBQUE7SUFBQSxTQUFBO0lBQUEsUUFBQTtLQUFBLE1BQUEsUUFBQSxhQUFBO0tBQUEsTUFBQSxRQUFBLElBQWdCO0tBQU8sTUFBQSxLQUFBLFVBQUE7QUFBQSxVQUFQLFVBQU87O0tBQUE7SUFBQSxVQUFBO0lBQUEsRUFBQSx1QkFBQSwyQkFBQTtBQUt2QixnQkFBQSxNQUFBLE1BQUEscUJBQUE7SUFBQSxNQUFBO0lBQUEsTUFBQTtJQUFBLFFBQUE7SUFBQSxTQUFBO0lBQUEsUUFBQTtLQUFBLE1BQUEsUUFBQSxhQUFBO0tBQUEsTUFBQSxRQUFBLElBQWdCO0tBQU8sTUFBQSxLQUFBLFVBQUE7QUFBQSxVQUFQLFVBQU87O0tBQUE7SUFBQSxVQUFBO0lBQUEsRUFBQSx1QkFBQSwyQkFBQTtBQUt2QixnQkFBQSxNQUFBLE1BQUEsK0JBQUE7SUFBQSxNQUFBO0lBQUEsTUFBQTtJQUFBLFFBQUE7SUFBQSxTQUFBO0lBQUEsUUFBQTtLQUFBLE1BQUEsUUFBQSx1QkFBQTtLQUFBLE1BQUEsUUFBQSxJQUFnQjtLQUFpQixNQUFBLEtBQUEsVUFBQTtBQUFBLFVBQWpCLG9CQUFpQjs7S0FBQTtJQUFBLFVBQUE7SUFBQSxFQUFBLGlDQUFBLHFDQUFBO0FBSWpDLGdCQUFBLE1BQUEsTUFBQSxtQkFBQTtJQUFBLE1BQUE7SUFBQSxNQUFBO0lBQUEsUUFBQTtJQUFBLFNBQUE7SUFBQSxRQUFBO0tBQUEsTUFBQSxRQUFBLFdBQUE7S0FBQSxNQUFBLFFBQUEsSUFBZ0I7S0FBSyxNQUFBLEtBQUEsVUFBQTtBQUFBLFVBQUwsUUFBSzs7S0FBQTtJQUFBLFVBQUE7SUFBQSxFQUFBLHFCQUFBLHlCQUFBO0FBR3JCLGdCQUFBLE1BQUEsTUFBQSw4QkFBQTtJQUFBLE1BQUE7SUFBQSxNQUFBO0lBQUEsUUFBQTtJQUFBLFNBQUE7SUFBQSxRQUFBO0tBQUEsTUFBQSxRQUFBLHNCQUFBO0tBQUEsTUFBQSxRQUFBLElBQWdCO0tBQWdCLE1BQUEsS0FBQSxVQUFBO0FBQUEsVUFBaEIsbUJBQWdCOztLQUFBO0lBQUEsVUFBQTtJQUFBLEVBQUEsZ0NBQUEsb0NBQUE7QUFLaEMsZ0JBQUEsTUFBQSxNQUFBLHFCQUFBO0lBQUEsTUFBQTtJQUFBLE1BQUE7SUFBQSxRQUFBO0lBQUEsU0FBQTtJQUFBLFFBQUE7S0FBQSxNQUFBLFFBQUEsYUFBQTtLQUFBLE1BQUEsUUFBQSxJQUFnQjtLQUFPLE1BQUEsS0FBQSxVQUFBO0FBQUEsVUFBUCxVQUFPOztLQUFBO0lBQUEsVUFBQTtJQUFBLEVBQUEsdUJBQUEsMkJBQUE7QUFLdkIsZ0JBQUEsTUFBQSxNQUFBLHNCQUFBO0lBQUEsTUFBQTtJQUFBLE1BQUE7SUFBQSxRQUFBO0lBQUEsU0FBQTtJQUFBLFFBQUE7S0FBQSxNQUFBLFFBQUEsY0FBQTtLQUFBLE1BQUEsUUFBQSxJQUFnQjtLQUFRLE1BQUEsS0FBQSxVQUFBO0FBQUEsVUFBUixXQUFROztLQUFBO0lBQUEsVUFBQTtJQUFBLEVBQUEsd0JBQUEsNEJBQUE7QUFLeEIsZ0JBQUEsTUFBQSxNQUFBLDJCQUFBO0lBQUEsTUFBQTtJQUFBLE1BQUE7SUFBQSxRQUFBO0lBQUEsU0FBQTtJQUFBLFFBQUE7S0FBQSxNQUFBLFFBQUEsbUJBQUE7S0FBQSxNQUFBLFFBQUEsSUFBZ0I7S0FBYSxNQUFBLEtBQUEsVUFBQTtBQUFBLFVBQWIsZ0JBQWE7O0tBQUE7SUFBQSxVQUFBO0lBQUEsRUFBQSw2QkFBQSxpQ0FBQTs7Ozs7Ozs7O0FBL0NHLFFBQUEsY0FBc0I7OztBQUMvQixRQUFBLFNBQXlCLENBQUMsaUJBQWlCLFVBQVUsMENBQU0sQ0FBQzs7O0FBQzVELFFBQUEsU0FBUztJQUM5QixhQUFhO0lBQ2IsWUFBWTtJQUNKOztFQUtWOztFQUFBLElBQWdCLFdBQVE7QUFBQSxVQUFBLE1BQUE7O0VBQXhCLElBQWdCLFNBQVEsT0FBQTtBQUFBLFNBQUEsNEJBQUE7O0VBS3hCOztFQUFBLElBQWdCLFVBQU87QUFBQSxVQUFBLE1BQUE7O0VBQXZCLElBQWdCLFFBQU8sT0FBQTtBQUFBLFNBQUEsMkJBQUE7O0VBS3ZCOztFQUFBLElBQWdCLFVBQU87QUFBQSxVQUFBLE1BQUE7O0VBQXZCLElBQWdCLFFBQU8sT0FBQTtBQUFBLFNBQUEsMkJBQUE7O0VBS3ZCOztFQUFBLElBQWdCLG9CQUFpQjtBQUFBLFVBQUEsTUFBQTs7RUFBakMsSUFBZ0Isa0JBQWlCLE9BQUE7QUFBQSxTQUFBLHFDQUFBOztFQUlqQztFQUFBLElBQWdCLFFBQUs7QUFBQSxVQUFBLE1BQUE7O0VBQXJCLElBQWdCLE1BQUssT0FBQTtBQUFBLFNBQUEseUJBQUE7O0VBR3JCO0VBQUEsSUFBZ0IsbUJBQWdCO0FBQUEsVUFBQSxNQUFBOztFQUFoQyxJQUFnQixpQkFBZ0IsT0FBQTtBQUFBLFNBQUEsb0NBQUE7O0VBS2hDOztFQUFBLElBQWdCLFVBQU87QUFBQSxVQUFBLE1BQUE7O0VBQXZCLElBQWdCLFFBQU8sT0FBQTtBQUFBLFNBQUEsMkJBQUE7O0VBS3ZCOztFQUFBLElBQWdCLFdBQVE7QUFBQSxVQUFBLE1BQUE7O0VBQXhCLElBQWdCLFNBQVEsT0FBQTtBQUFBLFNBQUEsNEJBQUE7O0VBS3hCOztFQUFBLElBQWdCLGdCQUFhO0FBQUEsVUFBQSxNQUFBOztFQUE3QixJQUFnQixjQUFhLE9BQUE7QUFBQSxTQUFBLGlDQUFBOztFQUlWLFdBQVcsbUJBQXVDO0FBQ25FLFNBQU0sV0FBVyxrQkFBa0I7QUFFbkMsT0FBSSxrQkFBa0IsSUFBSSxXQUFXLEVBQUU7SUFDckMsTUFBTSwyQkFBMkIsS0FBSyxZQUFZLGNBQ2hELGtDQUNvQjtBQUN0QixRQUFJLEtBQUssWUFBWSwwQkFBMEI7QUFDN0MsU0FBSSxLQUFLLGtCQUNQLDBCQUF5QixPQUFPOztBQUdsQyxVQUFLLGNBQWMsSUFBSSxNQUFNLGNBQWM7TUFBRSxTQUFTO01BQU0sVUFBVTtNQUFNLENBQUMsQ0FBQzs7O0FBSWxGLE9BQUksa0JBQWtCLElBQUksVUFBVSxJQUFJLEtBQUssU0FBUztJQUNwRCxNQUFNLDBCQUEwQixLQUFLLFlBQVksY0FDL0Msa0NBQ29CO0FBRXRCLFFBQUksMkJBQTJCLEtBQUssa0JBQ2xDLHlCQUF3QixPQUFPOzs7Ozs7OztFQVVsQixTQUFNO0FBQ3ZCLFVBQU8sSUFBSTs7aUJBRUUsU0FBUztJQUNoQixpQ0FBaUM7SUFDakMsY0FBYyxLQUFLLGlCQUFpQixnQkFBZ0IsU0FBUztJQUM3RCxlQUFlLEtBQUssaUJBQWlCLGdCQUFnQixRQUFRO0lBQzdELDJDQUEyQyxLQUFLO0lBQ2hELDBDQUEwQyxLQUFLO0lBQy9DLDBDQUEwQyxLQUFLO0lBQ2hELENBQUMsQ0FBQTs7VUFFQSxLQUFLLHNCQUFzQixDQUFBO1VBQzNCLEtBQUssaUJBQWlCLGFBQWEsU0FDakMsSUFBSTsyQkFDVyxLQUFLLFNBQVE7OEJBQ1YsS0FBSyxpQkFBaUIsWUFBVztnQ0FDL0IsS0FBSyxjQUFhOzREQUV0QyxRQUFBOzs7O0VBS0YsdUJBQW9CO0dBQzFCLE1BQU0seUJBQXlCLEtBQUssNkJBQTZCO0dBQ2pFLE1BQU0saUNBQ0osS0FBSyxtQ0FBbUMsdUJBQXVCO0dBQ2pFLE1BQU0sK0JBQStCLEtBQUssa0NBQWtDO0FBRTVFLFVBQU8sSUFBSTtxQkFDTSxLQUFLLGdCQUFnQixLQUFLLE1BQU0sQ0FBQTtlQUN0QyxTQUFTO0lBQ2hCLGtDQUFrQztJQUNsQyxpQ0FBaUMsS0FBSyxpQkFBaUI7SUFDeEQsQ0FBQyxDQUFBO21CQUNXLEtBQUssUUFBTztlQUNoQixLQUFLLGdCQUFnQixpQ0FBaUMsUUFBTzs7eURBRW5CLEtBQUssTUFBSzs7UUFFM0QsS0FBSyxtQkFBbUIsdUJBQXVCLENBQUE7bUVBQ1ksS0FBSyxNQUFLO1VBQ25FLENBQUMsS0FBSyxnQkFBZ0IsSUFBSSxRQUFRLCtCQUE4QixVQUFXLFFBQUE7VUFDM0UsK0JBQStCLElBQUksUUFBUSw2QkFBNEIsVUFBVyxRQUFBOzs7O0VBS2xGLG1CQUFtQixvQkFBaUM7QUFDMUQsT0FBSSxLQUFLLGlCQUFpQixhQUN4QixRQUFPO0FBR1QsVUFBTyxJQUFJO1FBQ1AsdUJBQXVCLElBQ3JCLElBQUkseURBQ0osUUFBQTtRQUNGLEtBQUssaUJBQWlCLGFBQWEsU0FBUyxLQUFLLEtBQUssaUJBQWlCLEtBQ3JFLElBQUk7Y0FDQSxLQUFLLGlCQUFpQixLQUNwQixJQUFJO29CQUNBLEtBQUssaUJBQWlCLEdBQUE7MEJBRTFCLFFBQUE7O2dCQUVBLHNCQUFzQixRQUFBOzs7O2dCQUl0QixtQkFBQTs7b0JBR04sUUFBQTs7O0VBSUEsbUNBQW1DLG9CQUFpQztBQUMxRSxPQUNFLEtBQUssaUJBQWlCLGdCQUN0QixDQUFDLEtBQUssaUJBQWlCLG9CQUFvQix5QkFFM0MsUUFBTyx1QkFBdUIsMEJBQTBCLEtBQUssVUFBVSxTQUFTLENBQzlFLEtBQUssaUJBQWlCLEdBQ3ZCLENBQUM7QUFHSixPQUFJLEtBQUssaUJBQWlCLG9CQUFvQix5QkFDNUMsUUFBTyx1QkFBdUIsb0JBQW9CLEtBQUssVUFBVSxRQUFRO0dBRzNFLElBQUksUUFBUSx1QkFBdUIscUJBQXFCLEtBQUssVUFBVSxTQUFTLENBQzlFLEtBQUssaUJBQWlCLEdBQ3ZCLENBQUM7QUFHRixPQUFJLG9CQUFvQjtJQUd0QixNQUFNLDBCQUEwQix1QkFEOUIsdUJBQXVCLElBQUksd0JBQXdCLHdCQUduRCxLQUFLLFVBQVUsUUFDaEI7SUFDRCxNQUFNLG9CQUFvQix1QkFDeEIsdUNBQ0EsS0FBSyxVQUFVLFNBQ2YsQ0FBQyx3QkFBd0IsQ0FDMUI7QUFDRCxZQUFRLE1BQU0sT0FBTyxrQkFBa0I7O0dBSXpDLE1BQU0sZ0JBQWdCLHVCQUNwQixvQ0FDQSxLQUFLLFVBQVUsU0FDZixDQUFDLEtBQUssaUJBQWlCLFlBQVksT0FBTyxLQUFLLGlCQUFpQixZQUFZLFNBQVMsQ0FDdEY7QUFDRCxXQUFRLE1BQU0sT0FBTyxLQUFLLENBQUMsT0FBTyxjQUFjO0FBQ2hELFVBQU87O0VBR0QsbUNBQWdDO0dBQ3RDLElBQUksa0JBQWtCO0FBQ3RCLE9BQUksS0FBSyxpQkFBaUIsYUFBYSxRQUFRO0FBQzdDLHNCQUNFLHVCQUF1Qiw0QkFBNEIsS0FBSyxVQUFVLFFBQVEsR0FBRztBQUMvRSx1QkFDRSxLQUFLLGlCQUFpQixZQUNuQixLQUFLLGVBQWUsdUJBQXVCLFlBQVksS0FBSyxVQUFVLFFBQVEsQ0FBQyxDQUMvRSxNQUFNLEdBQUc7O0FBRWhCLFVBQU87Ozs7Ozs7RUFRRCxnQkFBZ0IsWUFBa0I7Ozs7O0FBS3hDLFFBQUssY0FDSCxJQUFJLFlBQXFDLGVBQWU7SUFDdEQsU0FBUztJQUNULFVBQVU7SUFDVixRQUFRO0lBQ1QsQ0FBQyxDQUNIOztFQUdLLDhCQUEyQjtBQUNqQyxVQUFPLEtBQUssaUJBQWlCLGFBQWEsU0FBUyxRQUFRLEdBQ3ZELElBQ0EsS0FBSyxpQkFBaUIsYUFBYSxTQUFTLFNBQVMsR0FDbkQsSUFDQSJ9
428
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLWNvYWNoLmNvbXBvbmVudC10RFprWGwtMy5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMtZXhwZXJpbWVudGFsL3NlYXQtcmVzZXJ2YXRpb24vc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLWNvYWNoL3NlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1jb2FjaC5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy1leHBlcmltZW50YWwvc2VhdC1yZXNlcnZhdGlvbi9zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tY29hY2gvc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLWNvYWNoLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICdAc2JiLWVzdGEvbHluZS1lbGVtZW50cy9jb3JlL3N0eWxlcycgYXMgc2JiO1xuQHVzZSAnLi4vY29tbW9uL3N0eWxlcy9zZWF0LXJlc2VydmF0aW9uLW1peGlucy5zY3NzJyBhcyBzYmItc3ItbWl4aW5zO1xuQHVzZSAnLi4vY29tbW9uL3N0eWxlcy9zZWF0LXJlc2VydmF0aW9uLWZ1bmN0aW9ucycgYXMgc2JiLXNyLWZ1bmN0aW9ucztcblxuJGRpc2FibGVkOiAnW2Rpc2FibGVkXSwgOmRpc2FibGVkJztcblxuOmhvc3Qge1xuICAvLyBmaXhlcyB0aGUga2V5Ym9hcmQgZm9jdXMgYm9yZGVyIHdoaWNoIHdhcyBjdXQgb2ZmIGR1ZSB0byBtaXNzaW5nIG5hdmlnYXRpb24gc2VydmljZSBpY29uc1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1pbi1oZWlnaHQ6IHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKFxuICAgIDQ0XG4gICk7IC8vIGRlZmF1bHQgYnV0dG9uIGhlaWdodCAoMzZweCkgKyAyICogNHB4IGZvY3VzIG91dGxpbmUgb2Zmc2V0XG5cbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLXRyYXZlbGNsYXNzLXNwYWNpbmc6IDEwO1xuICAtLXNiYi1zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tYnRuLWJvcmRlci13aWR0aC1kZWZhdWx0OiAxO1xuICAtLXNiYi1zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tYnRuLWJvcmRlci13aWR0aDogdmFyKFxuICAgIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1idG4tYm9yZGVyLXdpZHRoLWRlZmF1bHRcbiAgKTtcbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLWJ0bi1ib3JkZXItY29sb3I6IGxpZ2h0LWRhcmsoXG4gICAgdmFyKC0tc2JiLWNvbG9yLWdyYW5pdGUpLFxuICAgIHZhcigtLXNiYi1jb2xvci1ncmFwaGl0ZSlcbiAgKTtcbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLWJ0bi1iYWNrZ3JvdW5kLWNvbG9yOiBsaWdodC1kYXJrKFxuICAgIHZhcigtLXNiYi1jb2xvci13aGl0ZSksXG4gICAgdmFyKC0tc2JiLWNvbG9yLWJsYWNrKVxuICApO1xuXG4gIC8vIHNlbGVjdGVkIHN0YXRlIHZhcmlhYmxlc1xuICAtLXNiYi1zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tYnRuLWJvcmRlci13aWR0aC1zZWxlY3RlZDogMjtcbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLWJ0bi1iYWNrZ3JvdW5kLWNvbG9yLXNlbGVjdGVkOiBsaWdodC1kYXJrKFxuICAgIHZhcigtLXNiYi1jb2xvci1taWxrKSxcbiAgICB2YXIoLS1zYmItY29sb3ItaXJvbilcbiAgKTtcbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLWJ0bi1ib3JkZXItY29sb3Itc2VsZWN0ZWQ6IGxpZ2h0LWRhcmsoXG4gICAgdmFyKC0tc2JiLWNvbG9yLWJsYWNrKSxcbiAgICB2YXIoLS1zYmItY29sb3Itd2hpdGUpXG4gICk7XG5cbiAgLy8gZm9jdXMgc3RhdGUgdmFyaWFibGVzXG4gIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1idG4tb3V0bGluZS13aWR0aC1mb2N1c2VkOiAxO1xuICAtLXNiYi1zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tYnRuLW91dGxpbmUtY29sb3ItZm9jdXNlZDogbGlnaHQtZGFyayhcbiAgICB2YXIoLS1zYmItY29sb3ItYmxhY2spLFxuICAgIHZhcigtLXNiYi1jb2xvci13aGl0ZSlcbiAgKTtcbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLWJ0bi1vdXRsaW5lLW9mZnNldC1mb2N1c2VkOiA0O1xuICAtLXNiYi1zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tYnRuLWJhY2tncm91bmQtY29sb3ItZm9jdXNlZDogbGlnaHQtZGFyayhcbiAgICB2YXIoLS1zYmItY29sb3Itd2hpdGUpLFxuICAgIHZhcigtLXNiYi1jb2xvci1ibGFjaylcbiAgKTtcbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLWJ0bi1ib3JkZXItd2lkdGgtZm9jdXNlZDogdmFyKFxuICAgIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1idG4tYm9yZGVyLXdpZHRoXG4gICk7XG4gIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1idG4tYm9yZGVyLWNvbG9yLWZvY3VzZWQ6IGxpZ2h0LWRhcmsoXG4gICAgdmFyKC0tc2JiLWNvbG9yLWJsYWNrKSxcbiAgICB2YXIoLS1zYmItY29sb3Itd2hpdGUpXG4gICk7XG5cbiAgLy8gaG92ZXIgc3RhdGUgdmFyaWFibGVzXG4gIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1idG4tYm9yZGVyLXdpZHRoLWhvdmVyZWQ6IDI7XG4gIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1idG4tYmFja2dyb3VuZC1jb2xvci1ob3ZlcmVkOiBsaWdodC1kYXJrKFxuICAgIHZhcigtLXNiYi1jb2xvci1jbG91ZCksXG4gICAgdmFyKC0tc2JiLWNvbG9yLW1pZG5pZ2h0KVxuICApO1xuICAtLXNiYi1zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tYnRuLWJvcmRlci1jb2xvci1ob3ZlcmVkOiBsaWdodC1kYXJrKFxuICAgIHZhcigtLXNiYi1jb2xvci1ibGFjayksXG4gICAgdmFyKC0tc2JiLWNvbG9yLXdoaXRlKVxuICApO1xuXG4gIC8vIGRpc2FibGUgc3RhdGUgdmFyaWFibGVzXG4gIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1idG4tYmFja2dyb3VuZC1jb2xvci1kaXNhYmxlZDogdmFyKC0tc2JiLWJhY2tncm91bmQtY29sb3ItMik7XG4gIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1idG4tYm9yZGVyLWNvbG9yLWRpc2FibGVkOiBsaWdodC1kYXJrKFxuICAgIHZhcigtLXNiYi1jb2xvci1wbGF0aW51bSksXG4gICAgdmFyKC0tc2JiLWNvbG9yLWlyb24pXG4gICk7XG59XG5cbi5zYmItc3ItbmF2aWdhdGlvbl9faXRlbS1jb2FjaCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogc2JiLXNyLWZ1bmN0aW9ucy5zci1weC10by1yZW0oOCk7XG4gIHdpZHRoOiBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbSg4MCk7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcblxuICAmLmZpcnN0LWNvYWNoLFxuICAmLmxhc3QtY29hY2gge1xuICAgIC5zYmItc3ItbmF2aWdhdGlvbi0tZmlyc3QtY2xhc3Mge1xuICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKDE4KSk7XG4gICAgfVxuICB9XG5cbiAgJi5maXJzdC1jb2FjaCB7XG4gICAgLnNiYi1zci1uYXZpZ2F0aW9uX19jdHJsLWJ1dHRvbjpub3QoLnNiYi1zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tZHJpdmVyLWFyZWEpIHtcbiAgICAgIEBpbmNsdWRlIHNiYi1zci1taXhpbnMudmlzdWFsaXplLWNvYWNoLWJvcmRlcig4LCAyLCAyLCA4KTtcbiAgICB9XG5cbiAgICAuc2JiLXNyLW5hdmlnYXRpb24tLWZpcnN0LWNsYXNzIHtcbiAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKFxuICAgICAgICB2YXIoLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLXRyYXZlbGNsYXNzLXNwYWNpbmcpXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gICYubGFzdC1jb2FjaCB7XG4gICAgLnNiYi1zci1uYXZpZ2F0aW9uX19jdHJsLWJ1dHRvbjpub3QoLnNiYi1zci1uYXZpZ2F0aW9uLWRyaXZlci1hcmVhKSB7XG4gICAgICBAaW5jbHVkZSBzYmItc3ItbWl4aW5zLnZpc3VhbGl6ZS1jb2FjaC1ib3JkZXIoMiwgOCwgOCwgMik7XG4gICAgfVxuXG4gICAgLnNiYi1zci1uYXZpZ2F0aW9uX19hZGRpdGlvbmFsLWluZm9ybWF0aW9uIHtcbiAgICAgIHBhZGRpbmctaW5saW5lLWVuZDogc2JiLXNyLWZ1bmN0aW9ucy5zci1weC10by1yZW0oXG4gICAgICAgIHZhcigtLXNiYi1zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tdHJhdmVsY2xhc3Mtc3BhY2luZylcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLnNiYi1zci1uYXZpZ2F0aW9uLS1maXJzdC1jbGFzcyB7XG4gICAgICBtYXJnaW4taW5saW5lLWVuZDogc2JiLXNyLWZ1bmN0aW9ucy5zci1weC10by1yZW0oXG4gICAgICAgIHZhcigtLXNiYi1zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tdHJhdmVsY2xhc3Mtc3BhY2luZylcbiAgICAgICk7XG4gICAgfVxuICB9XG59XG5cbi8vIHNhbWUgZm9yIGFsbCBzdGF0ZXNcbi5zYmItc3ItbmF2aWdhdGlvbl9fY3RybC1idXR0b24ge1xuICBAaW5jbHVkZSBzYmIuYnV0dG9uLXJlc2V0O1xuXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBoZWlnaHQ6IHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKDM2KTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLWJ0bi1iYWNrZ3JvdW5kLWNvbG9yKTtcbiAgY3Vyc29yOiB2YXIoLS1zYmItY3Vyc29yLXBvaW50ZXIpO1xuXG4gICYuc2JiLXNyLW5hdmlnYXRpb24tZHJpdmVyLWFyZWEge1xuICAgIEBpbmNsdWRlIHNiYi1zci1taXhpbnMudmlzdWFsaXplLWNvYWNoLWJvcmRlcig4LCA4LCA4LCA4KTtcbiAgfVxuXG4gIEBpbmNsdWRlIHNiYi1zci1taXhpbnMudmlzdWFsaXplLWNvYWNoLWJvcmRlcigyLCAyLCAyLCAyKTtcbn1cblxuLnNiYi1zci1uYXZpZ2F0aW9uX19pdGVtLWNvYWNoLS1mb2N1c2VkIC5zYmItc3ItbmF2aWdhdGlvbl9fY3RybC1idXR0b24ge1xuICBAaW5jbHVkZSBzYmItc3ItbWl4aW5zLnN0eWxlLWNvYWNoLWJ5LXN0YXRlKCdmb2N1c2VkJyk7XG5cbiAgLnNiYi1zci1uYXZpZ2F0aW9uX19pdGVtLWNvYWNoLXRyYXZlbGNsYXNzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodC1kYXJrKHZhcigtLXNiYi1jb2xvci1tZXRhbCksIHZhcigtLXNiYi1jb2xvci1zdG9ybSkpO1xuICB9XG5cbiAgLnNiYi1zci1uYXZpZ2F0aW9uX19pdGVtLWNvYWNoLW51bWJlciB7XG4gICAgY29sb3I6IGxpZ2h0LWRhcmsodmFyKC0tc2JiLWNvbG9yLWFudGhyYWNpdGUpLCB2YXIoLS1zYmItY29sb3ItZ3JhcGhpdGUpKTtcbiAgfVxufVxuXG4vLyBzZWxlY3RlZCwgaS5lLiB0aGUgY29hY2ggd2l0aGluIHRoZSB0cmFpbiBpcyBzZWxlY3RlZCAoRklHTUEgU3RhdGU6U2VsZWN0ZWQpXG4uc2JiLXNyLW5hdmlnYXRpb25fX2l0ZW0tY29hY2gtLXNlbGVjdGVkIC5zYmItc3ItbmF2aWdhdGlvbl9fY3RybC1idXR0b24ge1xuICBAaW5jbHVkZSBzYmItc3ItbWl4aW5zLnN0eWxlLWNvYWNoLWJ5LXN0YXRlKCdzZWxlY3RlZCcpO1xuXG4gIC5zYmItc3ItbmF2aWdhdGlvbl9faXRlbS1jb2FjaC10cmF2ZWxjbGFzcyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHQtZGFyayh2YXIoLS1zYmItY29sb3ItYmxhY2spLCB2YXIoLS1zYmItY29sb3Itd2hpdGUpKTtcbiAgfVxuXG4gIC5zYmItc3ItbmF2aWdhdGlvbl9faXRlbS1jb2FjaC1udW1iZXIge1xuICAgIGNvbG9yOiBsaWdodC1kYXJrKHZhcigtLXNiYi1jb2xvci1ibGFjayksIHZhcigtLXNiYi1jb2xvci13aGl0ZSkpO1xuICB9XG59XG5cbi5zYmItc3ItbmF2aWdhdGlvbl9faXRlbS1jb2FjaC0taG92ZXJlZCAuc2JiLXNyLW5hdmlnYXRpb25fX2N0cmwtYnV0dG9uIHtcbiAgQGluY2x1ZGUgc2JiLXNyLW1peGlucy5zdHlsZS1jb2FjaC1ieS1zdGF0ZSgnaG92ZXJlZCcpO1xufVxuXG4uc2JiLXNyLW5hdmlnYXRpb25fX2l0ZW0tY29hY2gtLXNlbGVjdGVkLnNiYi1zci1uYXZpZ2F0aW9uX19pdGVtLWNvYWNoLS1ob3ZlcmVkXG4gIC5zYmItc3ItbmF2aWdhdGlvbl9fY3RybC1idXR0b24ge1xuICBAaW5jbHVkZSBzYmItc3ItbWl4aW5zLnN0eWxlLWNvYWNoLWJ5LXN0YXRlKCdzZWxlY3RlZCcpO1xuXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi1zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tYnRuLWJhY2tncm91bmQtY29sb3ItaG92ZXJlZCkgIWltcG9ydGFudDtcbn1cblxuLy8gc2VsZWN0ZWQgQU5EIGZvY3VzIChGSUdNQSBTdGF0ZTpTZWxlY3RlZCArIEZvY3VzZWQpXG4vLyBiYWNrZ3JvdW5kLWNvbG9yIGZyb20gc2VsZWN0ZWQgU3RhdGUgaGFzIG1vcmUgc3BlY2lmaWNpdHksIHNvIHdlIG5lZWQgdG8gb3ZlcnJpZGUgaXQgaGVyZSAoYWdhaW4pXG4uc2JiLXNyLW5hdmlnYXRpb25fX2l0ZW0tY29hY2gtLXNlbGVjdGVkXG4gIC5zYmItc3ItbmF2aWdhdGlvbl9fY3RybC1idXR0b246Zm9jdXMtdmlzaWJsZTpub3QoI3skZGlzYWJsZWR9KSB7XG4gIEBpbmNsdWRlIHNiYi1zci1taXhpbnMuc3R5bGUtY29hY2gtYnktc3RhdGUoJ3NlbGVjdGVkJyk7XG59XG5cbi5zYmItc3ItbmF2aWdhdGlvbl9faXRlbS1jb2FjaC0taG92ZXJlZCAuc2JiLXNyLW5hdmlnYXRpb25fX2N0cmwtYnV0dG9uIHtcbiAgQGluY2x1ZGUgc2JiLXNyLW1peGlucy5zdHlsZS1jb2FjaC1ieS1zdGF0ZSgnaG92ZXJlZCcpO1xufVxuXG4vLyBob3ZlciAoRklHTUEgU3RhdGU6aG92ZXIpXG4uc2JiLXNyLW5hdmlnYXRpb25fX2N0cmwtYnV0dG9uOmhvdmVyOm5vdCgjeyRkaXNhYmxlZH0pIHtcbiAgQGluY2x1ZGUgc2JiLXNyLW1peGlucy5zdHlsZS1jb2FjaC1ieS1zdGF0ZSgnaG92ZXJlZCcpO1xuXG4gIC5zYmItc3ItbmF2aWdhdGlvbl9faXRlbS1jb2FjaC10cmF2ZWxjbGFzcyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLWNvbG9yLXNtb2tlKTtcbiAgfVxuXG4gIC5zYmItc3ItbmF2aWdhdGlvbl9faXRlbS1jb2FjaC1udW1iZXIge1xuICAgIGNvbG9yOiBsaWdodC1kYXJrKHZhcigtLXNiYi1jb2xvci1pcm9uKSwgdmFyKC0tc2JiLWNvbG9yLXNpbHZlcikpO1xuICB9XG59XG5cbi8vIGRpc2FibGVkIChGSUdNQSBTdGF0ZTpkaXNhYmxlZClcbi5zYmItc3ItbmF2aWdhdGlvbl9fY3RybC1idXR0b246aXMoI3skZGlzYWJsZWR9KSB7XG4gIEBpbmNsdWRlIHNiYi1zci1taXhpbnMuc3R5bGUtY29hY2gtYnktc3RhdGUoJ2Rpc2FibGVkJyk7XG5cbiAgY3Vyc29yOiB1bnNldDtcbiAgcG9pbnRlci1ldmVudHM6IHVuc2V0O1xuXG4gIC5zYmItc3ItbmF2aWdhdGlvbl9faXRlbS1jb2FjaC10cmF2ZWxjbGFzcyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHQtZGFyayh2YXIoLS1zYmItY29sb3ItZ3JhcGhpdGUpLCB2YXIoLS1zYmItY29sb3ItZ3Jhbml0ZSkpO1xuICB9XG5cbiAgLnNiYi1zci1uYXZpZ2F0aW9uX19pdGVtLWNvYWNoLW51bWJlciB7XG4gICAgY29sb3I6IGxpZ2h0LWRhcmsodmFyKC0tc2JiLWNvbG9yLWdyYXBoaXRlKSwgdmFyKC0tc2JiLWNvbG9yLWdyYW5pdGUpKTtcbiAgfVxufVxuXG4uc2JiLXNyLW5hdmlnYXRpb25fX2FkZGl0aW9uYWwtaW5mb3JtYXRpb24ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZsZXg6IDE7XG4gIGNvbHVtbi1nYXA6IHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKDgpO1xuICBwYWRkaW5nLWlubGluZTogc2JiLXNyLWZ1bmN0aW9ucy5zci1weC10by1yZW0oMTYpO1xuICBmb250LWZhbWlseTogdmFyKC0tc2JiLXR5cG8tZm9udC1mYW1pbHkpO1xuICBmb250LXdlaWdodDogNzAwO1xuICBjb2xvcjogbGlnaHQtZGFyayh2YXIoLS1zYmItY29sb3ItZ3Jhbml0ZSksIHZhcigtLXNiYi1jb2xvci1ncmFuaXRlKSk7XG5cbiAgQGluY2x1ZGUgc2JiLmlmLWZvcmNlZC1jb2xvcnMge1xuICAgIGNvbG9yOiB2YXIoLS1zYmItY29sb3ItbWlsayk7XG4gIH1cbn1cblxuLnNiYi1zci1uYXZpZ2F0aW9uX19pdGVtLWNvYWNoLW51bWJlciB7XG4gIGNvbG9yOiBsaWdodC1kYXJrKHZhcigtLXNiYi1jb2xvci1ncmFuaXRlKSwgdmFyKC0tc2JiLWNvbG9yLWdyYXBoaXRlKSk7XG5cbiAgQGluY2x1ZGUgc2JiLmlmLWZvcmNlZC1jb2xvcnMge1xuICAgIGNvbG9yOiBsaWdodC1kYXJrKHZhcigtLXNiYi1jb2xvci1ncmFuaXRlKSwgdmFyKC0tc2JiLWNvbG9yLWdyYXBoaXRlKSk7XG4gIH1cblxuICAuc2JiLXNyLW5hdmlnYXRpb25fX2l0ZW0tY29hY2gtdHJhdmVsY2xhc3Mge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi1iYWNrZ3JvdW5kLWNvbG9yLTItaW52ZXJ0ZWQpO1xuICB9XG59XG5cbi8vIGdyYXBoaWNhbCBvcmllbnRhdGlvbiBvZiBGSVJTVCBjbGFzc1xuLnNiYi1zci1uYXZpZ2F0aW9uLS1maXJzdC1jbGFzcyB7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbSg4KSk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQtYmxvY2stc3RhcnQ6IHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKDMpO1xuICBpbnNldC1pbmxpbmUtc3RhcnQ6IHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKDQpO1xuXG4gIC8vIHVzZSBib3JkZXIgaW5zdGVhZCBvZiBoZWlnaHQgdG8gc3VwcG9ydCBmb3JjZS1jb2xvciBtb2Rlc1xuICBib3JkZXI6IHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKDEpIHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1zYmItYm9yZGVyLXJhZGl1cy0xeCk7XG4gIG1hcmdpbjogYXV0bztcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLWNvbG9yLWxlbW9uKTtcbn1cblxuLy8gdGV4dHVhbCBvcmllbnRhdGlvbiBvZiB0cmF2ZWwgY2xhc3Ncbi5zYmItc3ItbmF2aWdhdGlvbl9faXRlbS1jb2FjaC10cmF2ZWxjbGFzcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBtaW4taGVpZ2h0OiBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbSgyMCk7XG4gIG1pbi13aWR0aDogc2JiLXNyLWZ1bmN0aW9ucy5zci1weC10by1yZW0oMjApO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1zYmItYm9yZGVyLXJhZGl1cy0xeCk7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHQtZGFyayh2YXIoLS1zYmItY29sb3ItZ3Jhbml0ZSksIHZhcigtLXNiYi1jb2xvci1ncmFwaGl0ZSkpO1xuICBjb2xvcjogbGlnaHQtZGFyayh2YXIoLS1zYmItY29sb3Itd2hpdGUpLCB2YXIoLS1zYmItY29sb3ItYmxhY2spKTtcblxuICBAaW5jbHVkZSBzYmIuaWYtZm9yY2VkLWNvbG9ycyB7XG4gICAgYm9yZGVyOiB2YXIoLS1zYmItYm9yZGVyLXdpZHRoLTF4KSBzb2xpZDtcbiAgfVxufVxuXG4vLyAjIyMjIyMjIyMjIyMjIyMjIFZFUlRJQ0FMIE1PREUgc2V0dGluZ3MgIyMjIyMjIyMjIyMjIyMjI1xuOmhvc3QoW3ZlcnRpY2FsXSkgLnNiYi1zci1uYXZpZ2F0aW9uX19pdGVtLWNvYWNoIHtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAuc2JiLXNyLW5hdmlnYXRpb25fX2N0cmwtYnV0dG9uIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG4gICAgaGVpZ2h0OiBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbSg4MCk7XG4gICAgbWluLXdpZHRoOiBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbSgzNik7XG4gIH1cblxuICAuc2JiLXNyLW5hdmlnYXRpb25fX2FkZGl0aW9uYWwtaW5mb3JtYXRpb24ge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcbiAgICBwYWRkaW5nLWJsb2NrOiBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbSgxNik7XG4gICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IHVuc2V0O1xuICAgIHBhZGRpbmctaW5saW5lLWVuZDogdW5zZXQ7XG4gIH1cblxuICAuc2JiLXNyLW5hdmlnYXRpb24tLWZpcnN0LWNsYXNzIHtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKDgpKTtcbiAgICB3aWR0aDogaW5pdGlhbDtcbiAgICBpbnNldC1pbmxpbmUtZW5kOiBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbSgzKTtcbiAgICBpbnNldC1ibG9jay1zdGFydDogc2JiLXNyLWZ1bmN0aW9ucy5zci1weC10by1yZW0oNCk7XG4gICAgaW5zZXQtaW5saW5lLXN0YXJ0OiBpbml0aWFsO1xuICB9XG5cbiAgJi5maXJzdC1jb2FjaCxcbiAgJi5sYXN0LWNvYWNoIHtcbiAgICAuc2JiLXNyLW5hdmlnYXRpb24tLWZpcnN0LWNsYXNzIHtcbiAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gc2JiLXNyLWZ1bmN0aW9ucy5zci1weC10by1yZW0oMTgpKTtcbiAgICB9XG4gIH1cblxuICAvLyBoYW5kbGUgYm9yZGVyLXJhZGl1c1xuICAmLmZpcnN0LWNvYWNoOm5vdCgubGFzdC1jb2FjaCkge1xuICAgIC5zYmItc3ItbmF2aWdhdGlvbl9fY3RybC1idXR0b246bm90KC5zYmItc3ItbmF2aWdhdGlvbi1kcml2ZXItYXJlYSkge1xuICAgICAgQGluY2x1ZGUgc2JiLXNyLW1peGlucy52aXN1YWxpemUtY29hY2gtYm9yZGVyKDgsIDgsIDIsIDIpO1xuICAgIH1cblxuICAgIC5zYmItc3ItbmF2aWdhdGlvbi0tZmlyc3QtY2xhc3Mge1xuICAgICAgbWFyZ2luLWJsb2NrLXN0YXJ0OiBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbShcbiAgICAgICAgdmFyKC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi10cmF2ZWxjbGFzcy1zcGFjaW5nKVxuICAgICAgKTtcbiAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IGluaXRpYWw7XG4gICAgfVxuICB9XG5cbiAgJi5sYXN0LWNvYWNoOm5vdCguZmlyc3QtY29hY2gpIHtcbiAgICAuc2JiLXNyLW5hdmlnYXRpb25fX2N0cmwtYnV0dG9uOm5vdCguc2JiLXNyLW5hdmlnYXRpb24tZHJpdmVyLWFyZWEpIHtcbiAgICAgIEBpbmNsdWRlIHNiYi1zci1taXhpbnMudmlzdWFsaXplLWNvYWNoLWJvcmRlcigyLCAyLCA4LCA4KTtcbiAgICB9XG5cbiAgICAuc2JiLXNyLW5hdmlnYXRpb24tLWZpcnN0LWNsYXNzIHtcbiAgICAgIG1hcmdpbi1ibG9jay1lbmQ6IHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKFxuICAgICAgICB2YXIoLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLXRyYXZlbGNsYXNzLXNwYWNpbmcpXG4gICAgICApO1xuICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IGluaXRpYWw7XG4gICAgfVxuICB9XG5cbiAgLy8gRHJpdmVyIGFyZWFcbiAgLnNiYi1zci1uYXZpZ2F0aW9uLWRyaXZlci1hcmVhIHtcbiAgICBoZWlnaHQ6IHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKDgwKTtcbiAgICBtaW4td2lkdGg6IHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKDM2KTtcbiAgfVxufVxuIiwiaW1wb3J0IHsgU2JiRWxlbWVudCB9IGZyb20gJ0BzYmItZXN0YS9seW5lLWVsZW1lbnRzL2NvcmUvYmFzZS1lbGVtZW50cy5qcyc7XG5pbXBvcnQgeyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIgfSBmcm9tICdAc2JiLWVzdGEvbHluZS1lbGVtZW50cy9jb3JlL2NvbnRyb2xsZXJzLmpzJztcbmltcG9ydCB7IGZvcmNlVHlwZSB9IGZyb20gJ0BzYmItZXN0YS9seW5lLWVsZW1lbnRzL2NvcmUvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBib3hTaXppbmdTdHlsZXMgfSBmcm9tICdAc2JiLWVzdGEvbHluZS1lbGVtZW50cy9jb3JlL3N0eWxlcy5qcyc7XG5pbXBvcnQge1xuICB0eXBlIENTU1Jlc3VsdEdyb3VwLFxuICBodG1sLFxuICBub3RoaW5nLFxuICB0eXBlIFByb3BlcnR5VmFsdWVzLFxuICB0eXBlIFRlbXBsYXRlUmVzdWx0LFxuICB1bnNhZmVDU1MsXG59IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IGNsYXNzTWFwIH0gZnJvbSAnbGl0L2RpcmVjdGl2ZXMvY2xhc3MtbWFwLmpzJztcblxuaW1wb3J0IHsgZ2V0STE4blNlYXRSZXNlcnZhdGlvbiB9IGZyb20gJy4uL2NvbW1vbi90cmFuc2xhdGlvbnMudHMnO1xuaW1wb3J0IHR5cGUgeyBDb2FjaEl0ZW1EZXRhaWxzIH0gZnJvbSAnLi4vY29tbW9uL3R5cGVzLnRzJztcbmltcG9ydCB7IFNiYlNlYXRSZXNlcnZhdGlvbk5hdmlnYXRpb25TZXJ2aWNlc0VsZW1lbnQgfSBmcm9tICcuLi9zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tc2VydmljZXMvc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLXNlcnZpY2VzLmNvbXBvbmVudC50cyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL3NlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1jb2FjaC5zY3NzP2lubGluZSc7XG5cbmltcG9ydCAnQHNiYi1lc3RhL2x5bmUtZWxlbWVudHMvc2NyZWVuLXJlYWRlci1vbmx5LmpzJztcblxuU2JiU2VhdFJlc2VydmF0aW9uTmF2aWdhdGlvblNlcnZpY2VzRWxlbWVudC5kZWZpbmUoKTtcblxuZXhwb3J0IHR5cGUgU2VsZWN0Q29hY2hFdmVudERldGFpbHMgPSBudW1iZXI7XG5cbi8qKlxuICogVGhpcyBjb21wb25lbnQgd2lsbCBkaXNwbGF5IHRoZSBuYXZpZ2F0aW9uIGNvYWNoIGl0ZW0gZm9yIFNlYXQgcmVzZXJ2YXRpb24uXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJTZWF0UmVzZXJ2YXRpb25OYXZpZ2F0aW9uQ29hY2hFbGVtZW50IGV4dGVuZHMgU2JiRWxlbWVudCB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgZWxlbWVudE5hbWU6IHN0cmluZyA9ICdzYmItc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLWNvYWNoJztcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW2JveFNpemluZ1N0eWxlcywgdW5zYWZlQ1NTKHN0eWxlKV07XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgZXZlbnRzID0ge1xuICAgIHNlbGVjdGNvYWNoOiAnc2VsZWN0Y29hY2gnLFxuICAgIGZvY3VzY29hY2g6ICdmb2N1c2NvYWNoJyxcbiAgfSBhcyBjb25zdDtcblxuICAvKiogU2VsZWN0IGNvYWNoIHByb3BlcnR5ICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBzZWxlY3RlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBGb2N1cyBjb2FjaCBwcm9wZXJ0eSAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3IgZm9jdXNlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBIb3ZlciBjb2FjaCBwcm9wZXJ0eSAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3IgaG92ZXJlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBOYXRpdmUgZm9jdXMgZm9yIHRoaXMgbmF2aWdhdGlvbiBjb2FjaCBpcyBhbHNvIHNldCB3aGVuIHRoZSBmb2N1c2VkIHByb3BlcnR5IGlzIGNoYW5nZWQgKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IEJvb2xlYW4gfSlcbiAgcHVibGljIGFjY2Vzc29yIG5hdGl2ZUZvY3VzQWN0aXZlOiBib29sZWFuID0gdHJ1ZTtcblxuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgdHlwZTogTnVtYmVyIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBpbmRleDogbnVtYmVyID0gMDtcblxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdjb2FjaC1pdGVtLWRldGFpbHMnLCB0eXBlOiBPYmplY3QgfSlcbiAgcHVibGljIGFjY2Vzc29yIGNvYWNoSXRlbURldGFpbHM6IENvYWNoSXRlbURldGFpbHMgPSA8Q29hY2hJdGVtRGV0YWlscz57fTtcblxuICAvKiogRGlzYWJsZSB0aGUgY29hY2ggbmF2aWdhdGlvbiAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnZGlzYWJsZScsIHR5cGU6IEJvb2xlYW4gfSlcbiAgcHVibGljIGFjY2Vzc29yIGRpc2FibGU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogSWYgdGhlIGNvYWNoIG5hdmlnYXRpb24gc2hvdWxkIGJlIGRpc3BsYXllZCB2ZXJ0aWNhbGx5ICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuLCByZWZsZWN0OiB0cnVlLCB1c2VEZWZhdWx0OiB0cnVlIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciB2ZXJ0aWNhbDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBEaXNhYmxlIHRoZSBtb3VzZSBvdmVyIHRpdGxlIGluZm9ybWF0aW9uICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBzaG93VGl0bGVJbmZvOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBfbGFuZ3VhZ2UgPSBuZXcgU2JiTGFuZ3VhZ2VDb250cm9sbGVyKHRoaXMpO1xuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB3aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnc2VsZWN0ZWQnKSkge1xuICAgICAgY29uc3Qgc2VsZWN0ZWROYXZCdXR0b25FbGVtZW50ID0gdGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKFxuICAgICAgICAnLnNiYi1zci1uYXZpZ2F0aW9uX19jdHJsLWJ1dHRvbicsXG4gICAgICApIGFzIEhUTUxCdXR0b25FbGVtZW50O1xuICAgICAgaWYgKHRoaXMuc2VsZWN0ZWQgJiYgc2VsZWN0ZWROYXZCdXR0b25FbGVtZW50KSB7XG4gICAgICAgIGlmICh0aGlzLm5hdGl2ZUZvY3VzQWN0aXZlKSB7XG4gICAgICAgICAgc2VsZWN0ZWROYXZCdXR0b25FbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICAgICAgLyoqIEVtaXRzIHdoZW4gYSBuYXYgY29hY2ggaGFzIHRoZSBmb2N1cyAqL1xuICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdmb2N1c2NvYWNoJywgeyBidWJibGVzOiB0cnVlLCBjb21wb3NlZDogdHJ1ZSB9KSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnZm9jdXNlZCcpICYmIHRoaXMuZm9jdXNlZCkge1xuICAgICAgY29uc3QgZm9jdXNlZE5hdkJ1dHRvbkVsZW1lbnQgPSB0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAgICcuc2JiLXNyLW5hdmlnYXRpb25fX2N0cmwtYnV0dG9uJyxcbiAgICAgICkgYXMgSFRNTEJ1dHRvbkVsZW1lbnQ7XG5cbiAgICAgIGlmIChmb2N1c2VkTmF2QnV0dG9uRWxlbWVudCAmJiB0aGlzLm5hdGl2ZUZvY3VzQWN0aXZlKSB7XG4gICAgICAgIGZvY3VzZWROYXZCdXR0b25FbGVtZW50LmZvY3VzKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlbmRlciBhIGxpc3Qgb2Ygc2VydmljZSBpY29ucyBwcm92aWRlZCBieSBhIGNhbGxlclxuICAgKlxuICAgKiBAcHJvdGVjdGVkXG4gICAqL1xuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCIke2NsYXNzTWFwKHtcbiAgICAgICAgICAnc2JiLXNyLW5hdmlnYXRpb25fX2l0ZW0tY29hY2gnOiB0cnVlLFxuICAgICAgICAgICdsYXN0LWNvYWNoJzogdGhpcy5jb2FjaEl0ZW1EZXRhaWxzLmRyaXZlckFyZWFTaWRlPy5yaWdodCB8fCBmYWxzZSxcbiAgICAgICAgICAnZmlyc3QtY29hY2gnOiB0aGlzLmNvYWNoSXRlbURldGFpbHMuZHJpdmVyQXJlYVNpZGU/LmxlZnQgfHwgZmFsc2UsXG4gICAgICAgICAgJ3NiYi1zci1uYXZpZ2F0aW9uX19pdGVtLWNvYWNoLS1zZWxlY3RlZCc6IHRoaXMuc2VsZWN0ZWQsXG4gICAgICAgICAgJ3NiYi1zci1uYXZpZ2F0aW9uX19pdGVtLWNvYWNoLS1mb2N1c2VkJzogdGhpcy5mb2N1c2VkLFxuICAgICAgICAgICdzYmItc3ItbmF2aWdhdGlvbl9faXRlbS1jb2FjaC0taG92ZXJlZCc6IHRoaXMuaG92ZXJlZCxcbiAgICAgICAgfSl9XCJcbiAgICAgID5cbiAgICAgICAgJHt0aGlzLl9nZXROYXZpZ2F0aW9uQnV0dG9uKCl9XG4gICAgICAgICR7dGhpcy5jb2FjaEl0ZW1EZXRhaWxzLnByb3BlcnR5SWRzPy5sZW5ndGhcbiAgICAgICAgICA/IGh0bWxgPHNiYi1zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tc2VydmljZXNcbiAgICAgICAgICAgICAgP3ZlcnRpY2FsPVwiJHt0aGlzLnZlcnRpY2FsfVwiXG4gICAgICAgICAgICAgIC5wcm9wZXJ0eUlkcz1cIiR7dGhpcy5jb2FjaEl0ZW1EZXRhaWxzLnByb3BlcnR5SWRzfVwiXG4gICAgICAgICAgICAgID9zaG93VGl0bGVJbmZvPVwiJHt0aGlzLnNob3dUaXRsZUluZm99XCJcbiAgICAgICAgICAgID48L3NiYi1zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tc2VydmljZXM+YFxuICAgICAgICAgIDogbm90aGluZ31cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cblxuICBwcml2YXRlIF9nZXROYXZpZ2F0aW9uQnV0dG9uKCk6IFRlbXBsYXRlUmVzdWx0IHwgbnVsbCB7XG4gICAgY29uc3QgY3VyclNlcnZpY2VDbGFzc051bWJlciA9IHRoaXMuX2dldENvYWNoU2VydmljZUNsYXNzTnVtYmVyKCk7XG4gICAgY29uc3QgdGl0bGVEZXNjcmlwdGlvbk5hdkNvYWNoQnV0dG9uID1cbiAgICAgIHRoaXMuX2dldFRpdGxlRGVzY3JpcHRpb25OYXZDb2FjaEJ1dHRvbihjdXJyU2VydmljZUNsYXNzTnVtYmVyKTtcbiAgICBjb25zdCBhcmlhRGVzY3JpcHRpb25Db2FjaFNlcnZpY2VzID0gdGhpcy5fZ2V0QXJpYURlc2NyaXB0aW9uQ29hY2hTZXJ2aWNlcygpO1xuXG4gICAgcmV0dXJuIGh0bWxgIDxidXR0b25cbiAgICAgIEBjbGljaz0keygpID0+IHRoaXMuX3NlbGVjdE5hdkNvYWNoKHRoaXMuaW5kZXgpfVxuICAgICAgY2xhc3M9XCIke2NsYXNzTWFwKHtcbiAgICAgICAgJ3NiYi1zci1uYXZpZ2F0aW9uX19jdHJsLWJ1dHRvbic6IHRydWUsXG4gICAgICAgICdzYmItc3ItbmF2aWdhdGlvbi1kcml2ZXItYXJlYSc6IHRoaXMuY29hY2hJdGVtRGV0YWlscy5pc0RyaXZlckFyZWEsXG4gICAgICB9KX1cIlxuICAgICAgP2Rpc2FibGVkPVwiJHt0aGlzLmRpc2FibGV9XCJcbiAgICAgIHRpdGxlPVwiJHt0aGlzLnNob3dUaXRsZUluZm8gPyB0aXRsZURlc2NyaXB0aW9uTmF2Q29hY2hCdXR0b24gOiBub3RoaW5nfVwiXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIGFyaWEtZGVzY3JpYmVkYnk9XCJuYXYtY29hY2gtc2VydmljZS1kZXNjcmlwdGlvbnMtJHt0aGlzLmluZGV4fVwiXG4gICAgPlxuICAgICAgJHt0aGlzLl9nZXRCdG5JbmZvcm1hdGlvbihjdXJyU2VydmljZUNsYXNzTnVtYmVyKX1cbiAgICAgIDxzYmItc2NyZWVuLXJlYWRlci1vbmx5IGlkPVwibmF2LWNvYWNoLXNlcnZpY2UtZGVzY3JpcHRpb25zLSR7dGhpcy5pbmRleH1cIj5cbiAgICAgICAgJHshdGhpcy5zaG93VGl0bGVJbmZvID8gaHRtbGA8ZGl2PiR7dGl0bGVEZXNjcmlwdGlvbk5hdkNvYWNoQnV0dG9ufTwvZGl2PmAgOiBub3RoaW5nfVxuICAgICAgICAke2FyaWFEZXNjcmlwdGlvbkNvYWNoU2VydmljZXMgPyBodG1sYDxkaXY+JHthcmlhRGVzY3JpcHRpb25Db2FjaFNlcnZpY2VzfTwvZGl2PmAgOiBub3RoaW5nfVxuICAgICAgPC9zYmItc2NyZWVuLXJlYWRlci1vbmx5PlxuICAgIDwvYnV0dG9uPmA7XG4gIH1cblxuICBwcml2YXRlIF9nZXRCdG5JbmZvcm1hdGlvbihzZXJ2aWNlQ2xhc3NOdW1iZXI6IG51bWJlciB8IG51bGwpOiBUZW1wbGF0ZVJlc3VsdCB8IG51bGwge1xuICAgIGlmICh0aGlzLmNvYWNoSXRlbURldGFpbHMuaXNEcml2ZXJBcmVhKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gaHRtbGBcbiAgICAgICR7c2VydmljZUNsYXNzTnVtYmVyID09PSAxXG4gICAgICAgID8gaHRtbGA8c3BhbiBjbGFzcz1cInNiYi1zci1uYXZpZ2F0aW9uLS1maXJzdC1jbGFzc1wiPjwvc3Bhbj5gXG4gICAgICAgIDogbm90aGluZ31cbiAgICAgICR7dGhpcy5jb2FjaEl0ZW1EZXRhaWxzLnRyYXZlbENsYXNzPy5sZW5ndGggPiAwIHx8IHRoaXMuY29hY2hJdGVtRGV0YWlscy5pZFxuICAgICAgICA/IGh0bWxgPGRpdiBjbGFzcz1cInNiYi1zci1uYXZpZ2F0aW9uX19hZGRpdGlvbmFsLWluZm9ybWF0aW9uXCI+XG4gICAgICAgICAgICAke3RoaXMuY29hY2hJdGVtRGV0YWlscy5pZFxuICAgICAgICAgICAgICA/IGh0bWxgPGRpdiBjbGFzcz1cInNiYi1zci1uYXZpZ2F0aW9uX19pdGVtLWNvYWNoLW51bWJlclwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgICAgJHt0aGlzLmNvYWNoSXRlbURldGFpbHMuaWR9XG4gICAgICAgICAgICAgICAgPC9kaXY+YFxuICAgICAgICAgICAgICA6IG5vdGhpbmd9XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICR7c2VydmljZUNsYXNzTnVtYmVyID8/IG5vdGhpbmd9XG4gICAgICAgICAgICAgIGNsYXNzPVwic2JiLXNyLW5hdmlnYXRpb25fX2l0ZW0tY29hY2gtdHJhdmVsY2xhc3NcIlxuICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAke3NlcnZpY2VDbGFzc051bWJlcn1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PmBcbiAgICAgICAgOiBub3RoaW5nfVxuICAgIGA7XG4gIH1cblxuICBwcml2YXRlIF9nZXRUaXRsZURlc2NyaXB0aW9uTmF2Q29hY2hCdXR0b24oc2VydmljZUNsYXNzTnVtYmVyOiBudW1iZXIgfCBudWxsKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5jb2FjaEl0ZW1EZXRhaWxzLmlzRHJpdmVyQXJlYSAmJiAhdGhpcy5jb2FjaEl0ZW1EZXRhaWxzLmlzTG9jb21vdGl2ZSkge1xuICAgICAgcmV0dXJuIGdldEkxOG5TZWF0UmVzZXJ2YXRpb24oJ05BVklHQVRFX0NPQUNIX0JMT0NLRUQnLCB0aGlzLl9sYW5ndWFnZS5jdXJyZW50LCBbXG4gICAgICAgIHRoaXMuY29hY2hJdGVtRGV0YWlscy5pZCxcbiAgICAgIF0pO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmNvYWNoSXRlbURldGFpbHMuaXNMb2NvbW90aXZlKSB7XG4gICAgICByZXR1cm4gZ2V0STE4blNlYXRSZXNlcnZhdGlvbignQ09BQ0hfTE9DT01PVElWRScsIHRoaXMuX2xhbmd1YWdlLmN1cnJlbnQpO1xuICAgIH1cblxuICAgIGxldCBsYWJlbCA9IGdldEkxOG5TZWF0UmVzZXJ2YXRpb24oJ05BVklHQVRFX1RPX0NPQUNIJywgdGhpcy5fbGFuZ3VhZ2UuY3VycmVudCwgW1xuICAgICAgdGhpcy5jb2FjaEl0ZW1EZXRhaWxzLmlkLFxuICAgIF0pO1xuXG4gICAgLy9JZiBzZXJ2aWNlIGNsYXNzIGV4aXN0LCB0aGVuIGV4cGFuZCBsYWJlbCB3aXRoIHNlcnZpY2UgY2xhc3MgdHJhbnNsYXRpb25cbiAgICBpZiAoc2VydmljZUNsYXNzTnVtYmVyKSB7XG4gICAgICBjb25zdCBzZXJ2aWNlQ2xhc3NUcmFuc2xhdGlvbktleSA9XG4gICAgICAgIHNlcnZpY2VDbGFzc051bWJlciA9PT0gMSA/ICdTRVJWSUNFX0NMQVNTX0ZJUlNUJyA6ICdTRVJWSUNFX0NMQVNTX1NFQ09ORCc7XG4gICAgICBjb25zdCBzZXJ2aWNlQ2xhc3NUcmFuc2xhdGlvbiA9IGdldEkxOG5TZWF0UmVzZXJ2YXRpb24oXG4gICAgICAgIHNlcnZpY2VDbGFzc1RyYW5zbGF0aW9uS2V5LFxuICAgICAgICB0aGlzLl9sYW5ndWFnZS5jdXJyZW50LFxuICAgICAgKTtcbiAgICAgIGNvbnN0IHNlcnZpY2VDbGFzc0xhYmVsID0gZ2V0STE4blNlYXRSZXNlcnZhdGlvbihcbiAgICAgICAgJ05BVklHQVRFX1RPX0NPQUNIX1NFUlZJQ0VfQ0xBU1NfU1VCJyxcbiAgICAgICAgdGhpcy5fbGFuZ3VhZ2UuY3VycmVudCxcbiAgICAgICAgW3NlcnZpY2VDbGFzc1RyYW5zbGF0aW9uXSxcbiAgICAgICk7XG4gICAgICBsYWJlbCA9IGxhYmVsLmNvbmNhdChzZXJ2aWNlQ2xhc3NMYWJlbCk7XG4gICAgfVxuXG4gICAgLy8gRXhwYW5kcyB0aGUgbnVtYmVyIG9mIGF2YWlsYWJsZSBzZWF0cyBhbmQgYmljeWNsZSBzcGFjZXMgYXMgaW5mb1xuICAgIGNvbnN0IGZyZWVQbGFjZXNUeHQgPSBnZXRJMThuU2VhdFJlc2VydmF0aW9uKFxuICAgICAgJ0NPQUNIX0FWQUlMQUJMRV9OVU1CRVJfT0ZfUExBQ0VTJyxcbiAgICAgIHRoaXMuX2xhbmd1YWdlLmN1cnJlbnQsXG4gICAgICBbdGhpcy5jb2FjaEl0ZW1EZXRhaWxzLmZyZWVQbGFjZXM/LnNlYXRzLCB0aGlzLmNvYWNoSXRlbURldGFpbHMuZnJlZVBsYWNlcz8uYmljeWNsZXNdLFxuICAgICk7XG4gICAgbGFiZWwgPSBsYWJlbC5jb25jYXQoJy4gJykuY29uY2F0KGZyZWVQbGFjZXNUeHQpO1xuICAgIHJldHVybiBsYWJlbDtcbiAgfVxuXG4gIHByaXZhdGUgX2dldEFyaWFEZXNjcmlwdGlvbkNvYWNoU2VydmljZXMoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgbGV0IGFyaWFEZXNjcmlwdGlvbiA9IG51bGw7XG4gICAgaWYgKHRoaXMuY29hY2hJdGVtRGV0YWlscy5wcm9wZXJ0eUlkcz8ubGVuZ3RoKSB7XG4gICAgICBhcmlhRGVzY3JpcHRpb24gPVxuICAgICAgICBnZXRJMThuU2VhdFJlc2VydmF0aW9uKCdDT0FDSF9BVkFJTEFCTEVfU0VSVklDRVMnLCB0aGlzLl9sYW5ndWFnZS5jdXJyZW50KSArICc6ICc7XG4gICAgICBhcmlhRGVzY3JpcHRpb24gKz1cbiAgICAgICAgdGhpcy5jb2FjaEl0ZW1EZXRhaWxzLnByb3BlcnR5SWRzXG4gICAgICAgICAgLm1hcCgocHJvcGVydHlJZCkgPT4gZ2V0STE4blNlYXRSZXNlcnZhdGlvbihwcm9wZXJ0eUlkLCB0aGlzLl9sYW5ndWFnZS5jdXJyZW50KSlcbiAgICAgICAgICAuam9pbigpICsgJy4nO1xuICAgIH1cbiAgICByZXR1cm4gYXJpYURlc2NyaXB0aW9uO1xuICB9XG5cbiAgLyoqXG4gICAqIGVtaXRzIHRoZSBpbmRleCBvZiB0aGUgY29hY2ggYXJyYXkgZm9yIHRoZSBtYWluIG5hdmlnYXRpb24uXG4gICAqIEBwYXJhbSBjb2FjaEluZGV4XG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIF9zZWxlY3ROYXZDb2FjaChjb2FjaEluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAvKipcbiAgICAgKiBAdHlwZSB7Q3VzdG9tRXZlbnQ8U2VsZWN0Q29hY2hFdmVudERldGFpbHM+fVxuICAgICAqIEVtaXRzIHdoZW4gYSBjb2FjaCB3aXRoaW4gdGhlIG5hdmlnYXRpb24gd2FzIHNlbGVjdGVkIGFuZCByZXR1cm5zIHRoZSBjbGlja2VkIGNvYWNoIG5hdiBpbmRleC5cbiAgICAgKi9cbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQoXG4gICAgICBuZXcgQ3VzdG9tRXZlbnQ8U2VsZWN0Q29hY2hFdmVudERldGFpbHM+KCdzZWxlY3Rjb2FjaCcsIHtcbiAgICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgICAgY29tcG9zZWQ6IHRydWUsXG4gICAgICAgIGRldGFpbDogY29hY2hJbmRleCxcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9nZXRDb2FjaFNlcnZpY2VDbGFzc051bWJlcigpOiBudW1iZXIgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5jb2FjaEl0ZW1EZXRhaWxzLnRyYXZlbENsYXNzPy5pbmNsdWRlcygnRklSU1QnKVxuICAgICAgPyAxXG4gICAgICA6IHRoaXMuY29hY2hJdGVtRGV0YWlscy50cmF2ZWxDbGFzcz8uaW5jbHVkZXMoJ1NFQ09ORCcpXG4gICAgICAgID8gMlxuICAgICAgICA6IG51bGw7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tY29hY2gnOiBTYmJTZWF0UmVzZXJ2YXRpb25OYXZpZ2F0aW9uQ29hY2hFbGVtZW50O1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQ3VCQSw0Q0FBNEMsUUFBUTs7OztJQU92QyxrREFBd0M7bUJBQVM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Y0FBakQsaURBQWlELFlBQVU7OztBQVd0RCxTQUFBLDRCQUFBLGtCQUFBLE1BQUEsd0JBQW9CLE1BQUs7QUFLekIsU0FBQSw0QkFBQSxrQkFBQSxNQUFBLDRCQUFBLEVBQUEsa0JBQUEsTUFBQSx1QkFBbUIsTUFBSztBQUt4QixTQUFBLDRCQUFBLGtCQUFBLE1BQUEsMkJBQUEsRUFBQSxrQkFBQSxNQUFBLHVCQUFtQixNQUFLO0FBS3hCLFNBQUEsc0NBQUEsa0JBQUEsTUFBQSwyQkFBQSxFQUFBLGtCQUFBLE1BQUEsaUNBQTZCLEtBQUk7QUFJakMsU0FBQSwwQkFBQSxrQkFBQSxNQUFBLHFDQUFBLEVBQUEsa0JBQUEsTUFBQSxxQkFBZ0IsRUFBQztBQUdqQixTQUFBLHFDQUFBLGtCQUFBLE1BQUEseUJBQUEsRUFBQSxrQkFBQSxNQUFBLGdDQUF1RCxFQUFFLENBQUE7QUFLekQsU0FBQSw0QkFBQSxrQkFBQSxNQUFBLG9DQUFBLEVBQUEsa0JBQUEsTUFBQSx1QkFBbUIsTUFBSztBQUt4QixTQUFBLDZCQUFBLGtCQUFBLE1BQUEsMkJBQUEsRUFBQSxrQkFBQSxNQUFBLHdCQUFvQixNQUFLO0FBS3pCLFNBQUEsa0NBQUEsa0JBQUEsTUFBQSw0QkFBQSxFQUFBLGtCQUFBLE1BQUEsNkJBQXlCLE1BQUs7QUFFdEMsUUFBQSxhQUFTLGtCQUFBLE1BQUEsaUNBQUEsRUFBRyxJQUFJLHNCQUFzQixLQUFLOzs7OzJCQXpDbEQsV0FBVyxFQUNYLFNBQVMsRUFBRSxNQUFNLFNBQVMsQ0FBQyxDQUFBOzBCQUkzQixXQUFXLEVBQ1gsU0FBUyxFQUFFLE1B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
@@ -426,4 +426,4 @@ var SbbSeatReservationPlaceControlElement = (() => {
426
426
  //#endregion
427
427
  export { SbbSeatReservationPlaceControlElement as t };
428
428
 
429
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLmNvbXBvbmVudC1DTTllZklkNy5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMtZXhwZXJpbWVudGFsL3NlYXQtcmVzZXJ2YXRpb24vc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sL3NlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy1leHBlcmltZW50YWwvc2VhdC1yZXNlcnZhdGlvbi9zZWF0LXJlc2VydmF0aW9uLXBsYWNlLWNvbnRyb2wvc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICdAc2JiLWVzdGEvbHluZS1lbGVtZW50cy9jb3JlL3N0eWxlcycgYXMgc2JiO1xuQHVzZSAnLi4vY29tbW9uL3N0eWxlcy9zZWF0LXJlc2VydmF0aW9uLW1peGlucycgYXMgc2JiLXNyLW1peGlucztcbkB1c2UgJy4uL2NvbW1vbi9zdHlsZXMvc2VhdC1yZXNlcnZhdGlvbi1mdW5jdGlvbnMnIGFzIHNiYi1zci1mdW5jdGlvbnM7XG5cbi8vIERlcGVuZHMgb24gdGhlIHBsYWNlIHN0YXRlIGFuZCBjdXJyZW50IGV2ZW50IChob3Zlcnxmb2N1cyksIHRoZSBiYWNrZ3JvdW5kIGFuZCBmaWxsIGNvbG9ycyBvZiB0aGUgcGxhY2UsXG4vLyBiYWNrcmVzdCBvZiBwbGFjZSBhbmQgdGhlIHRleHQgY29sb3IgYXJlIGhhbmRsZWQgYnkgY29sb3JpemVQbGFjZSBmdW5jdGlvbi5cbkBtaXhpbiBjb2xvcml6ZVBsYWNlKCRzdGF0ZSwgJGV2ZW50KSB7XG4gIDo6cGFydChzdmctcGxhY2UpIHtcbiAgICBmaWxsOiB2YXIoLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLSN7JHN0YXRlfS1iYWNrZ3JvdW5kLSN7JGV2ZW50fSk7XG4gIH1cblxuICA6OnBhcnQoc3ZnLWJhY2tyZXN0KSB7XG4gICAgZmlsbDogdmFyKC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC0jeyRzdGF0ZX0tYmFja3Jlc3QtYmFja2dyb3VuZC0jeyRldmVudH0pO1xuICB9XG5cbiAgLnNiYi1zci1wbGFjZS1jdHJsX190ZXh0IHtcbiAgICAvLyBkb250IHVzZSB0cmFuc3BhcmVudCBvciByZW1vdmUgYmFja2dyb3VuZCwgb3RoZXJ3aXNlIHRoZXJlIGFyZSBhMTF5IHZpb2xhdGlvbnMgcmVnYXJkaW5nXG4gICAgLy8gaW5zdWZmaWNpZW50IGNvbG9yIGNvbnRyYXN0XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC0jeyRzdGF0ZX0tYmFja2dyb3VuZC0jeyRldmVudH0pO1xuICAgIGNvbG9yOiB2YXIoLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLSN7JHN0YXRlfS10ZXh0KTtcbiAgfVxuXG4gIEBpZiAkc3RhdGUgIT0gJ3NlbGVjdGVkJyB7XG4gICAgQGluY2x1ZGUgc2JiLmlmLWZvcmNlZC1jb2xvcnMge1xuICAgICAgOjpwYXJ0KHN2Zy1wbGFjZSkge1xuICAgICAgICBmaWxsOiB2YXIoLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLSN7JHN0YXRlfS1iYWNrZ3JvdW5kLWhpZ2gtY29udHJhc3QpO1xuICAgICAgfVxuXG4gICAgICA6OnBhcnQoc3ZnLWJhY2tyZXN0KSB7XG4gICAgICAgIGZpbGw6IHZhcigtLXNiYi1zZWF0LXJlc2VydmF0aW9uLXBsYWNlLWNvbnRyb2wtI3skc3RhdGV9LWJhY2tyZXN0LWhpZ2gtY29udHJhc3QpO1xuICAgICAgfVxuXG4gICAgICA6OnBhcnQoc3ZnLWljb24pIHtcbiAgICAgICAgZmlsbDogdmFyKC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC0jeyRzdGF0ZX0taWNvbi1oaWdoLWNvbnRyYXN0KTtcbiAgICAgIH1cblxuICAgICAgOjpwYXJ0KHN2Zy1zZWF0bGluZSkge1xuICAgICAgICBzdHJva2U6IHZhcigtLXNiYi1zZWF0LXJlc2VydmF0aW9uLXBsYWNlLWNvbnRyb2wtI3skc3RhdGV9LWJhY2tyZXN0LWhpZ2gtY29udHJhc3QpO1xuICAgICAgfVxuXG4gICAgICAuc2JiLXNyLXBsYWNlLWN0cmxfX3RleHQge1xuICAgICAgICBmb3JjZWQtY29sb3ItYWRqdXN0OiBub25lO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoXG4gICAgICAgICAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLSN7JHN0YXRlfS1iYWNrZ3JvdW5kLWhpZ2gtY29udHJhc3RcbiAgICAgICAgKTtcbiAgICAgICAgY29sb3I6IHZhcigtLXNiYi1zZWF0LXJlc2VydmF0aW9uLXBsYWNlLWNvbnRyb2wtI3skc3RhdGV9LXRleHQtaGlnaC1jb250cmFzdCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbiRkaXNhYmxlZDogJy5zYmItcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC0tZGlzYWJsZWQnO1xuXG46aG9zdCB7XG4gIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC10ZXh0LXNjYWxlLXZhbHVlOiAxO1xuICAtLXNiYi1zZWF0LXJlc2VydmF0aW9uLXBsYWNlLWNvbnRyb2wtd2lkdGg6IDE2O1xuICAtLXNiYi1zZWF0LXJlc2VydmF0aW9uLXBsYWNlLWNvbnRyb2wtaGVpZ2h0OiAxNjtcbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLXRvcDogMDtcbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLWxlZnQ6IDA7XG4gIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC1yb3RhdGlvbjogMDtcbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLXRleHQtcm90YXRpb246IDA7XG4gIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC10ZXh0LXNpemU6IGNhbGMoXG4gICAgdmFyKC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC10ZXh0LXNjYWxlLXZhbHVlLCAxKSAqIDAuNVxuICApO1xuXG4gIC8vIENvbG9yIGRlZmluaXRpb24gZm9yIHRleHRcbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLWRlZmF1bHQtdGV4dDogbGlnaHQtZGFyayhcbiAgICB2YXIoLS1zYmItY29sb3ItYmxhY2spLFxuICAgIHZhcigtLXNiYi1jb2xvci13aGl0ZSlcbiAgKTtcbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLWhvdmVyLXRleHQ6IGxpZ2h0LWRhcmsoXG4gICAgdmFyKC0tc2JiLWNvbG9yLWlyb24pLFxuICAgIHZhcigtLXNiYi1jb2xvci1zaWx2ZXIpXG4gICk7XG4gIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC1mb2N1cy10ZXh0OiBsaWdodC1kYXJrKFxuICAgIHZhcigtLXNiYi1jb2xvci1hbnRocmFjaXRlKSxcbiAgICB2YXIoLS1zYmItY29sb3ItZ3JhcGhpdGUpXG4gICk7XG4gIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC1hbGxvY2F0ZWQtdGV4dDogbGlnaHQtZGFyayhcbiAgICB2YXIoLS1zYmItY29sb3Itc21va2UpLFxuICAgIHZhcigtLXNiYi1jb2xvci1tZXRhbClcbiAgKTtcblxuICAvLyBDb2xvciBiYWNrZ3JvdW5kIGRlZmluaXRpb24gZm9yIHBsYWNlIHdpdGggc3RhdGUgRlJFRVxuICAtLXNiYi1zZWF0LXJlc2VydmF0aW9uLXBsYWNlLWNvbnRyb2wtZnJlZS1iYWNrZ3JvdW5kLWRlZmF1bHQ6IHZhcigtLXNiYi1iYWNrZ3JvdW5kLWNvbG9yLTIpO1xuICAtLXNiYi1zZWF0LXJlc2VydmF0aW9uLXBsYWNlLWNvbnRyb2wtZnJlZS1iYWNrZ3JvdW5kLWhvdmVyOiBsaWdodC1kYXJrKFxuICAgIHZhcigtLXNiYi1jb2xvci1jbG91ZCksXG4gICAgdmFyKC0tc2JiLWNvbG9yLW1pZG5pZ2h0KVxuICApO1xuICAtLXNiYi1zZWF0LXJlc2VydmF0aW9uLXBsYWNlLWNvbnRyb2wtZnJlZS1iYWNrZ3JvdW5kLWZvY3VzOiBsaWdodC1kYXJrKFxuICAgIHZhcigtLXNiYi1jb2xvci1zaWx2ZXIpLFxuICAgIHZhcigtLXNiYi1jb2xvci1ibGFjaylcbiAgKTtcblxuICAvLyBDb2xvciBiYWNrZ3JvdW5kIGRlZmluaXRpb24gZm9yIGJhY2tyZXN0IHdpdGggc3RhdGUgRlJFRVxuICAtLXNiYi1zZWF0LXJlc2VydmF0aW9uLXBsYWNlLWNvbnRyb2wtZnJlZS1iYWNrcmVzdC1iYWNrZ3JvdW5kLWRlZmF1bHQ6IGxpZ2h0LWRhcmsoXG4gICAgdmFyKC0tc2JiLWNvbG9yLWJsYWNrKSxcbiAgICB2YXIoLS1zYmItY29sb3Itd2hpdGUpXG4gICk7XG4gIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC1mcmVlLWJhY2tyZXN0LWJhY2tncm91bmQtaG92ZXI6IGxpZ2h0LWRhcmsoXG4gICAgdmFyKC0tc2JiLWNvbG9yLWJsYWNrKSxcbiAgICB2YXIoLS1zYmItY29sb3Itd2hpdGUpXG4gICk7XG4gIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC1mcmVlLWJhY2tyZXN0LWJhY2tncm91bmQtZm9jdXM6IGxpZ2h0LWRhcmsoXG4gICAgdmFyKC0tc2JiLWNvbG9yLWJsYWNrKSxcbiAgICB2YXIoLS1zYmItY29sb3Itd2hpdGUpXG4gICk7XG5cbiAgLy8gQ29sb3IgYmFja2dyb3VuZCBkZWZpbml0aW9uIGZvciBwbGFjZSB3aXRoIHN0YXRlIFNFTEVDVEVEXG4gIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC1zZWxlY3RlZC1iYWNrZ3JvdW5kLWRlZmF1bHQ6IHZhcigtLXNiYi1jb2xvci1wcmltYXJ5KTtcbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLXNlbGVjdGVkLWJhY2tncm91bmQtaG92ZXI6IHZhcigtLXNiYi1jb2xvci1wcmltYXJ5MTI1KTtcbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLXNlbGVjdGVkLWJhY2tncm91bmQtZm9jdXM6IHZhcigtLXNiYi1jb2xvci1wcmltYXJ5MTUwKTtcblxuICAvLyBDb2xvciBiYWNrZ3JvdW5kIGRlZmluaXRpb24gZm9yIGJhY2tyZXN0IHdpdGggc3RhdGUgU0VMRUNURURcbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLXNlbGVjdGVkLWJhY2tyZXN0LWJhY2tncm91bmQtZGVmYXVsdDogdmFyKFxuICAgIC0tc2JiLWNvbG9yLXByaW1hcnkxNTBcbiAgKTtcbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLXNlbGVjdGVkLWJhY2tyZXN0LWJhY2tncm91bmQtaG92ZXI6ICM3ZDAwMGY7XG4gIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC1zZWxlY3RlZC1iYWNrcmVzdC1iYWNrZ3JvdW5kLWZvY3VzOiAjNWEwMDBiO1xuXG4gIC8vIENvbG9yIGJhY2tncm91bmQgZGVmaW5pdGlvbiBmb3IgcGxhY2Ugd2l0aCBzdGF0ZSBBTExPQ0FURURcbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLWFsbG9jYXRlZC1iYWNrZ3JvdW5kLWRlZmF1bHQ6IGxpZ2h0LWRhcmsoXG4gICAgdmFyKC0tc2JiLWNvbG9yLW1pbGspLFxuICAgIHZhcigtLXNiYi1jb2xvci1taWRuaWdodClcbiAgKTtcblxuICAvLyBDb2xvciBkZWZpbml0aW9ucyBmb3IgaGlnaCBjb250cmFzdCBtb2RlXG4gIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC1mcmVlLWJhY2tyZXN0LWhpZ2gtY29udHJhc3Q6IENhbnZhc1RleHQ7XG4gIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC1mcmVlLWJhY2tncm91bmQtaGlnaC1jb250cmFzdDogQ2FudmFzO1xuICAtLXNiYi1zZWF0LXJlc2VydmF0aW9uLXBsYWNlLWNvbnRyb2wtZnJlZS10ZXh0LWhpZ2gtY29udHJhc3Q6IEJ1dHRvblRleHQ7XG4gIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC1mcmVlLWljb24taGlnaC1jb250cmFzdDogQ2FudmFzVGV4dDtcbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLWFsbG9jYXRlZC1iYWNrcmVzdC1oaWdoLWNvbnRyYXN0OiBHcmF5VGV4dDtcbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLWFsbG9jYXRlZC1iYWNrZ3JvdW5kLWhpZ2gtY29udHJhc3Q6IENhbnZhcztcbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLWFsbG9jYXRlZC10ZXh0LWhpZ2gtY29udHJhc3Q6IEdyYXlUZXh0O1xuICAtLXNiYi1zZWF0LXJlc2VydmF0aW9uLXBsYWNlLWNvbnRyb2wtYWxsb2NhdGVkLWljb24taGlnaC1jb250cmFzdDogR3JheVRleHQ7XG5cbiAgd2lkdGg6IHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKHZhcigtLXNiYi1zZWF0LXJlc2VydmF0aW9uLXBsYWNlLWNvbnRyb2wtd2lkdGgpKTtcbiAgaGVpZ2h0OiBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbSh2YXIoLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLWhlaWdodCkpO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0LWJsb2NrLXN0YXJ0OiBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbSh2YXIoLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLXRvcCkpO1xuICBpbnNldC1pbmxpbmUtc3RhcnQ6IHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKHZhcigtLXNiYi1zZWF0LXJlc2VydmF0aW9uLXBsYWNlLWNvbnRyb2wtbGVmdCkpO1xuICBmb250LXdlaWdodDogMzAwO1xuICBjdXJzb3I6IHZhcigtLXNiYi1jdXJzb3ItcG9pbnRlcik7XG59XG5cbjpob3N0KDpob3Zlcikge1xuICAuc2JiLXNyLXBsYWNlLWN0cmwge1xuICAgICYtLXN0YXRlLWZyZWU6bm90KCN7JGRpc2FibGVkfSkge1xuICAgICAgQGluY2x1ZGUgY29sb3JpemVQbGFjZSgnZnJlZScsICdob3ZlcicpO1xuICAgIH1cblxuICAgICYtLXN0YXRlLXNlbGVjdGVkOm5vdCgjeyRkaXNhYmxlZH0pIHtcbiAgICAgIEBpbmNsdWRlIGNvbG9yaXplUGxhY2UoJ3NlbGVjdGVkJywgJ2hvdmVyJyk7XG4gICAgfVxuICB9XG59XG5cbjpob3N0KDpmb2N1cy12aXNpYmxlKSB7XG4gIC5zYmItc3ItcGxhY2UtY3RybCB7XG4gICAgJi0tc3RhdGUtZnJlZTpub3QoI3skZGlzYWJsZWR9KSB7XG4gICAgICBAaW5jbHVkZSBjb2xvcml6ZVBsYWNlKCdmcmVlJywgJ2ZvY3VzJyk7XG4gICAgfVxuICB9XG59XG5cbjpob3N0KDphY3RpdmUpIHtcbiAgLnNiYi1zci1wbGFjZS1jdHJsIHtcbiAgICAmLS1zdGF0ZS1zZWxlY3RlZDpub3QoI3skZGlzYWJsZWR9KSB7XG4gICAgICBAaW5jbHVkZSBjb2xvcml6ZVBsYWNlKCdzZWxlY3RlZCcsICdmb2N1cycpO1xuICAgIH1cbiAgfVxufVxuXG4vLyByb3RhdGVzIHRoZSBET00tcGFydCBcInN2Zy1wbGFjZVwiIGJ5IDE4MCBkZWdyZWVzIGlmIHRoZSBob3N0IGlzIGluIFJUTCBtb2RlLlxuQGluY2x1ZGUgc2JiLXNyLW1peGlucy5yb3RhdGUtZG9tLXBhcnQoc3ZnLXBsYWNlKTtcblxuLnNiYi1zci1wbGFjZS1jdHJsIHtcbiAgJHJvb3Q6ICY7XG5cbiAgd2lkdGg6IG1heC1jb250ZW50O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZvbnQtc2l6ZTogc2JiLXNyLWZ1bmN0aW9ucy5zci1weC10by1yZW0odmFyKC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC10ZXh0LXNpemUpKTtcblxuICAmLS1zdGF0ZS1mcmVlIHtcbiAgICBAaW5jbHVkZSBjb2xvcml6ZVBsYWNlKCdmcmVlJywgJ2RlZmF1bHQnKTtcbiAgfVxuXG4gICYtLXN0YXRlLXNlbGVjdGVkIHtcbiAgICBAaW5jbHVkZSBjb2xvcml6ZVBsYWNlKCdzZWxlY3RlZCcsICdkZWZhdWx0Jyk7XG4gIH1cblxuICAmLS1zdGF0ZS1hbGxvY2F0ZWQsXG4gICYtLXN0YXRlLXJlc3RyaWN0ZWQge1xuICAgIEBpbmNsdWRlIGNvbG9yaXplUGxhY2UoJ2FsbG9jYXRlZCcsICdkZWZhdWx0Jyk7XG5cbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICB9XG5cbiAgJl9fdGV4dCB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBpbnNldC1ibG9jay1zdGFydDogNTAlO1xuICAgIHRyYW5zbGF0ZTogLTUwJSAtNTAlO1xuICAgIHJvdGF0ZTogY2FsYyh2YXIoLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLXRleHQtcm90YXRpb24pICogMWRlZyk7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLXNiYi10eXBvLWZvbnQtZmFtaWx5KTtcblxuICAgIC8vIGRvbnQgdXNlIHNiYi5weC10by1yZW0gb3IgLS1zYmItdHlwby1zY2FsZS0wLTc1eDsgd2Ugd2FudCBcImVtXCIgaW4gdGhpcyBjYXNlIVxuICAgIGZvbnQtc2l6ZTogMC43NWVtO1xuICAgIGxpbmUtaGVpZ2h0OiBpbml0aWFsO1xuXG4gICAgI3skcm9vdH0tLXN0YXRlLWZyZWUgJixcbiAgICAjeyRyb290fS0tc3RhdGUtYWxsb2NhdGVkICYge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgI3skcm9vdH0tLXR5cGUtYmljeWNsZSAmIHtcbiAgICAgIGluc2V0LWJsb2NrLXN0YXJ0OiA2NSU7XG4gICAgICBpbnNldC1pbmxpbmUtc3RhcnQ6IDUwJTtcblxuICAgICAgLy8gV2UgbmVlZCB0byBhZGp1c3QgdHJhbnNmb3JtIG9yaWdpbiBwb2ludCBmb3IgYmljeWNsZSBwbGFjZXMgdGV4dCAobmVjZXNzYXJ5IGZvciByb3RhdGlvbiksXG4gICAgICAvLyBiZWNhdXNlIHRoZSBwb3NpdGlvbiBvZiBwbGFjZSBudW1iZXIgaXMgbm90IGNlbnRlcmVkIGluIHRoZSBwbGFjZSBhcmVhLlxuICAgICAgLy8gVGhlIHZhbHVlIDE2JSBpcyB0aGUgb3B0aW1hbCB2YWx1ZSBmb3IgdGhlIHJvdGF0aW9uIG9mZnNldCBvbiB0aGUgb3JpZ2luIHktYXhpcy5cbiAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciAxNiU7XG5cbiAgICAgIC8vIHVzZSBhIHNtYWxsZXIgZm9udC1zaXplIHRvIGF2b2lkIGExMXkgdmlvbGF0aW9uXG4gICAgICBmb250LXNpemU6IDAuNjg3NWVtO1xuICAgIH1cblxuICAgIC8vIERlcGVuZGluZyBvbiB0aGUgcGxhY2Ugb3JpZW50YXRpb24sIG1pbm9yIHBvc2l0aW9uaW5nIGFkanVzdG1lbnRzIG1heSBuZWVkIHRvIGJlIG1hZGUgdG8gY2VudGVyIHRoZSB0ZXh0LFxuICAgIC8vIGJlY2F1c2Ugb2YgdGhlIHdpZHRoIG9mIHRoZSBTVkcgd2hpY2ggaXMgbm90IHNxdWFyZVxuICAgICN7JHJvb3R9LS1vcmllbnRhdGlvbi0wI3skcm9vdH0tLXR5cGUtc2VhdCAmIHtcbiAgICAgIGluc2V0LWlubGluZS1zdGFydDogNDUlO1xuICAgIH1cblxuICAgICN7JHJvb3R9LS1vcmllbnRhdGlvbi05MCN7JHJvb3R9LS10eXBlLXNlYXQgJiB7XG4gICAgICBpbnNldC1ibG9jay1zdGFydDogNDYlO1xuICAgICAgaW5zZXQtaW5saW5lLXN0YXJ0OiA1MCU7XG4gICAgfVxuXG4gICAgI3skcm9vdH0tLW9yaWVudGF0aW9uLTE4MCN7JHJvb3R9LS10eXBlLXNlYXQgJiB7XG4gICAgICBpbnNldC1pbmxpbmUtc3RhcnQ6IDU1JTtcbiAgICB9XG5cbiAgICAjeyRyb290fS0tb3JpZW50YXRpb24tMjcwI3skcm9vdH0tLXR5cGUtc2VhdCAmIHtcbiAgICAgIGluc2V0LWJsb2NrLXN0YXJ0OiA1MiU7XG4gICAgICBpbnNldC1pbmxpbmUtc3RhcnQ6IDUyJTtcbiAgICB9XG4gIH1cbn1cblxuOmhvc3QoOmRpcihydGwpKSB7XG4gIC8vIEZvciBSVEwsIHdlIG5lZWQgdG8gYWRqdXN0IHRoZSB0ZXh0IHBvc2l0aW9uIHRvIHRoZSByaWdodCBzaWRlXG4gIC5zYmItc3ItcGxhY2UtY3RybCB7XG4gICAgJi0tb3JpZW50YXRpb24tMCAuc2JiLXNyLXBsYWNlLWN0cmxfX3RleHQge1xuICAgICAgaW5zZXQtaW5saW5lLXN0YXJ0OiAzJTtcbiAgICB9XG5cbiAgICAmLS1vcmllbnRhdGlvbi05MCAuc2JiLXNyLXBsYWNlLWN0cmxfX3RleHQsXG4gICAgJi0tb3JpZW50YXRpb24tMTgwIC5zYmItc3ItcGxhY2UtY3RybF9fdGV4dCB7XG4gICAgICBpbnNldC1pbmxpbmUtc3RhcnQ6IDEwJTtcbiAgICB9XG5cbiAgICAmLS1vcmllbnRhdGlvbi0yNzAgLnNiYi1zci1wbGFjZS1jdHJsX190ZXh0IHtcbiAgICAgIGluc2V0LWlubGluZS1zdGFydDogNSU7XG4gICAgfVxuXG4gICAgJi0tdHlwZS1iaWN5Y2xlIC5zYmItc3ItcGxhY2UtY3RybF9fdGV4dCB7XG4gICAgICBpbnNldC1pbmxpbmUtc3RhcnQ6IC0xMCU7XG4gICAgfVxuICB9XG59XG4iLCJpbXBvcnQgeyBTYmJCdXR0b25CYXNlRWxlbWVudCB9IGZyb20gJ0BzYmItZXN0YS9seW5lLWVsZW1lbnRzL2NvcmUvYmFzZS1lbGVtZW50cy5qcyc7XG5pbXBvcnQgeyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIgfSBmcm9tICdAc2JiLWVzdGEvbHluZS1lbGVtZW50cy9jb3JlL2NvbnRyb2xsZXJzLmpzJztcbmltcG9ydCB7IGZvcmNlVHlwZSB9IGZyb20gJ0BzYmItZXN0YS9seW5lLWVsZW1lbnRzL2NvcmUvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBib3hTaXppbmdTdHlsZXMgfSBmcm9tICdAc2JiLWVzdGEvbHluZS1lbGVtZW50cy9jb3JlL3N0eWxlcy5qcyc7XG5pbXBvcnQge1xuICB0eXBlIENTU1Jlc3VsdEdyb3VwLFxuICBodG1sLFxuICBub3RoaW5nLFxuICB0eXBlIFRlbXBsYXRlUmVzdWx0LFxuICB0eXBlIFByb3BlcnR5VmFsdWVzLFxuICB1bnNhZmVDU1MsXG59IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IHN0eWxlTWFwIH0gZnJvbSAnbGl0L2RpcmVjdGl2ZXMvc3R5bGUtbWFwLmpzJztcblxuaW1wb3J0IHsgZ2V0STE4blNlYXRSZXNlcnZhdGlvbiB9IGZyb20gJy4uL2NvbW1vbi90cmFuc2xhdGlvbnMudHMnO1xuaW1wb3J0IHR5cGUgeyBQbGFjZVNlbGVjdGlvbiwgUGxhY2VTdGF0ZSwgUGxhY2VUeXBlLCBUcmF2ZWxEaXJlY3Rpb24gfSBmcm9tICcuLi9jb21tb24vdHlwZXMudHMnO1xuaW1wb3J0IHsgU2JiU2VhdFJlc2VydmF0aW9uR3JhcGhpY0VsZW1lbnQgfSBmcm9tICcuLi9zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWMvc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljLmNvbXBvbmVudC50cyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL3NlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC5zY3NzP2lubGluZSc7XG5cblNiYlNlYXRSZXNlcnZhdGlvbkdyYXBoaWNFbGVtZW50LmRlZmluZSgpO1xuXG50eXBlIFRyYXZlbERpcmVjdGlvbkkxOG5LZXkgPVxuICB8ICdUUkFWRUxfRElSRUNUSU9OX0lOX0RJUkVDVElPTidcbiAgfCAnVFJBVkVMX0RJUkVDVElPTl9JTl9PUFBPU0lURV9ESVJFQ1RJT04nXG4gIHwgJ1RSQVZFTF9ESVJFQ1RJT05fVFJBTlNWRVJTRUxZJztcblxuLyoqXG4gKiBPdXRwdXQgdGhlIGdyYXBoaWMgb2YgYSBzZWF0IG9yIGEgYmljeWNsZSBwbGFjZSBhcyBhIGNvbnRyb2wgZWxlbWVudC5cbiAqL1xuZXhwb3J0IGNsYXNzIFNiYlNlYXRSZXNlcnZhdGlvblBsYWNlQ29udHJvbEVsZW1lbnQgZXh0ZW5kcyBTYmJCdXR0b25CYXNlRWxlbWVudCB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgZWxlbWVudE5hbWU6IHN0cmluZyA9ICdzYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sJztcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW2JveFNpemluZ1N0eWxlcywgdW5zYWZlQ1NTKHN0eWxlKV07XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgZXZlbnRzID0ge1xuICAgIHNlbGVjdHBsYWNlOiAnc2VsZWN0cGxhY2UnLFxuICB9IGFzIGNvbnN0O1xuXG4gIC8qKiBwbGFjZVR5cGUgb2YgdGhlIHBsYWNlLCBlLmcuICdTRUFUJywgJ0JJQ1lDTEUnICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICd0eXBlJyB9KVxuICBwdWJsaWMgYWNjZXNzb3IgcGxhY2VUeXBlOiBQbGFjZVR5cGUgPSAnU0VBVCc7XG5cbiAgLyoqIHN0YXRlIG9mIHRoZSBwbGFjZSwgZS5nLiAnRlJFRScsICdTRUxFQ1RFRCcsICdCTE9DS0VEJyAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnc3RhdGUnLCByZWZsZWN0OiB0cnVlIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBzdGF0ZTogUGxhY2VTdGF0ZSA9ICdGUkVFJztcblxuICAvKiogZGlyZWN0aW9uIG9mIGEgd2hvbGUgdHJhaW4sIHVzZWQgdG8gY29tcHV0ZSBhbiBvcmllbnRhdGlvbiBvZiBhIHBsYWNlICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ3RyYXZlbC1kaXJlY3Rpb24nIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciB0cmF2ZWxEaXJlY3Rpb246IFRyYXZlbERpcmVjdGlvbiA9ICdOT05FJztcblxuICAvKiogcHJvcGVydHkgaWRzIG9mIHRoZSBwbGFjZSwgdG8gZGlzcGxheSBtb3JlIGluZm8gYWJvdXQgdGhlIHBsYWNlICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ3Byb3BlcnR5SWRzJywgdHlwZTogQXJyYXkgfSlcbiAgcHVibGljIGFjY2Vzc29yIHByb3BlcnR5SWRzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIC8qKiBsYWJlbCBvZiB0aGUgcGxhY2UsIGUuZy4gJzFBJywgJzJCJyAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAndGV4dCcgfSlcbiAgcHVibGljIGFjY2Vzc29yIHRleHQ6IHN0cmluZyA9ICcnO1xuXG4gIC8qKiBEZWNrIEluZGV4IFByb3AgdG8gaWRlbnRpZmllciB0aGUgcmlnaHQgcGxhY2UgdG8gZGVjayAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnZGVjay1pbmRleCcsIHR5cGU6IE51bWJlciB9KVxuICBwdWJsaWMgYWNjZXNzb3IgZGVja0luZGV4OiBudW1iZXIgPSBudWxsITtcblxuICAvKiogQ29hY2ggSW5kZXggUHJvcCB0byBpZGVudGlmaWVyIHRoZSByaWdodCBwbGFjZSB0byBjb2FjaCAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnY29hY2gtaW5kZXgnLCB0eXBlOiBOdW1iZXIgfSlcbiAgcHVibGljIGFjY2Vzc29yIGNvYWNoSW5kZXg6IG51bWJlciA9IG51bGwhO1xuXG4gIC8qKiBQcmV2ZW50IGNsaWNrIHByb3AgcHJldmVudCBhbnkgcGxhY2UgYWN0aW9uICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdwcmV2ZW50LWNsaWNrJywgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3IgcHJldmVudENsaWNrOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIFNldCB0aGUgcGxhY2UgZm9jdXMgb3V0bGluZSBzdHlsZSAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAna2V5Zm9jdXMnIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBrZXlmb2N1czogc3RyaW5nID0gJ3VuZm9jdXMnO1xuXG4gIC8qKiBEaXNhYmxlIHRoZSBtb3VzZSBvdmVyIHRpdGxlIGluZm9ybWF0aW9uICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuLCB1c2VEZWZhdWx0OiB0cnVlIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBzaG93VGl0bGVJbmZvOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBfb3B0aW9uYWxTY3JlZW5yZWFkZXJJbmZvOiBzdHJpbmcgPSAnJztcblxuICBwcml2YXRlIF9sYW5ndWFnZSA9IG5ldyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIodGhpcyk7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHRoaXMuX3NlbGVjdFBsYWNlKCkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHdpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIud2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdrZXlmb2N1cycpKSB7XG4gICAgICBpZiAodGhpcy5rZXlmb2N1cyA9PT0gJ2ZvY3VzJykge1xuICAgICAgICB0aGlzLmZvY3VzKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gaWYgdGl0bGUgd2FzIHNob3duIG9uY2UsIHdlIGNhbm5vdCB1bnNldCBpdCBjb21wbGV0ZWx5LCBidXQgdGhpc1xuICAgIC8vIGJlaGF2aW9yIHNob3VsZCBub3QgaGFwcGVuIHZlcnkgb2Z0ZW4gYXMgdGhlIHRpdGxlIHNob3VsZFxuICAgIC8vIG5vdCBzd2l0Y2ggZnJvbSBvbiB0byBvZmYgYW5kIG9uIGFnYWluXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnc2hvd1RpdGxlSW5mbycpKSB7XG4gICAgICBpZiAoIXRoaXMuc2hvd1RpdGxlSW5mbykge1xuICAgICAgICB0aGlzLnRpdGxlID0gJyc7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgY29uc3QgbmFtZTogc3RyaW5nID0gdGhpcy5fZ2V0UGxhY2VTdmcodGhpcy5wbGFjZVR5cGUsIHRoaXMuc3RhdGUpO1xuICAgIGNvbnN0IHR5cGU6IHN0cmluZyA9IHRoaXMudHlwZS50b0xvd2VyQ2FzZSgpO1xuICAgIGNvbnN0IHN0YXRlOiBzdHJpbmcgPSB0aGlzLnN0YXRlLnRvTG93ZXJDYXNlKCk7XG4gICAgY29uc3QgdGV4dDogc3RyaW5nIHwgbnVsbCA9IHRoaXMudGV4dDtcbiAgICBjb25zdCB3aWR0aCA9IHRoaXMuc3R5bGU/LmdldFByb3BlcnR5VmFsdWUoJy0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC13aWR0aCcpO1xuICAgIGNvbnN0IGhlaWdodCA9IHRoaXMuc3R5bGU/LmdldFByb3BlcnR5VmFsdWUoJy0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC1oZWlnaHQnKTtcbiAgICBjb25zdCByb3RhdGlvbiA9IHRoaXMuc3R5bGU/LmdldFByb3BlcnR5VmFsdWUoJy0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC1yb3RhdGlvbicpO1xuICAgIGNvbnN0IHRleHRSb3RhdGlvbiA9IHRoaXMuc3R5bGU/LmdldFByb3BlcnR5VmFsdWUoXG4gICAgICAnLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLXRleHQtcm90YXRpb24nLFxuICAgICk7XG4gICAgY29uc3QgaW52ZXJzZVJvdGF0aW9uUGxhY2VDaGVja0ljb24gPSBOdW1iZXIodGV4dFJvdGF0aW9uKSAtIE51bWJlcihyb3RhdGlvbik7XG4gICAgY29uc3QgZGlzYWJsZWRDbGFzcyA9IHRoaXMucHJldmVudENsaWNrID8gJ3NiYi1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLS1kaXNhYmxlZCcgOiBudWxsO1xuXG4gICAgLy8gb25seSBzZXQgdGl0bGUgdG8gdGhlIFNiYkJ1dHRvbkJhc2VFbGVtZW50IGlmIHJlcXVlc3RlZDsgb3RoZXJ3aXNlIHByb3ZpZGUgdGhlIHRpdGxlXG4gICAgLy8gaW5mb3JtYXRpb24gdG8gc2NyZWVuIHJlYWRlcnMgdmlhIGFuIGFkZGl0aW9uYWwgZWxlbWVudFxuICAgIGlmICh0aGlzLnNob3dUaXRsZUluZm8pIHtcbiAgICAgIHRoaXMudGl0bGUgPSB0aGlzLl9nZXRUaXRsZURlc2NyaXB0aW9uUGxhY2Uocm90YXRpb24pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9vcHRpb25hbFNjcmVlbnJlYWRlckluZm8gPSB0aGlzLl9nZXRUaXRsZURlc2NyaXB0aW9uUGxhY2Uocm90YXRpb24pO1xuICAgIH1cblxuICAgIHRoaXMudGFiSW5kZXggPSAtMTtcblxuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdlxuICAgICAgICBwYXJ0PVwic2JiLXNyLXBsYWNlLXBhcnRcIlxuICAgICAgICBjbGFzcz1cInNiYi1zci1wbGFjZS1jdHJsIHNiYi1zci1wbGFjZS1jdHJsLS1vcmllbnRhdGlvbi0ke3JvdGF0aW9ufSBzYmItc3ItcGxhY2UtY3RybC0tc3RhdGUtJHtzdGF0ZX0gc2JiLXNyLXBsYWNlLWN0cmwtLXR5cGUtJHt0eXBlfSAke2Rpc2FibGVkQ2xhc3N9XCJcbiAgICAgID5cbiAgICAgICAgPHNiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWNcbiAgICAgICAgICBzdHlsZT0ke3N0eWxlTWFwKHtcbiAgICAgICAgICAgICctLXNiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWMtd2lkdGgnOiB3aWR0aCxcbiAgICAgICAgICAgICctLXNiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWMtaGVpZ2h0JzogaGVpZ2h0LFxuICAgICAgICAgICAgJy0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpYy1yb3RhdGlvbic6IHJvdGF0aW9uLFxuICAgICAgICAgICAgJy0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpYy1pbnZlcnNlLXJvdGF0aW9uJzogaW52ZXJzZVJvdGF0aW9uUGxhY2VDaGVja0ljb24sXG4gICAgICAgICAgfSl9XG4gICAgICAgICAgLm5hbWU9JHtuYW1lfVxuICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgID48L3NiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWM+XG4gICAgICAgIDxzcGFuICR7dGhpcy50ZXh0ID8/IG5vdGhpbmd9IGNsYXNzPVwic2JiLXNyLXBsYWNlLWN0cmxfX3RleHRcIiBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgID4ke3RleHR9PC9zcGFuXG4gICAgICAgID5cbiAgICAgICAgJHshdGhpcy5zaG93VGl0bGVJbmZvXG4gICAgICAgICAgPyBodG1sYDxzYmItc2NyZWVuLXJlYWRlci1vbmx5IGlkPVwiJHt0aGlzLmlkfVwiXG4gICAgICAgICAgICAgID4ke3RoaXMuX29wdGlvbmFsU2NyZWVucmVhZGVySW5mb308L3NiYi1zY3JlZW4tcmVhZGVyLW9ubHlcbiAgICAgICAgICAgID5gXG4gICAgICAgICAgOiBub3RoaW5nfVxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxuXG4gIHByaXZhdGUgX2dldFBsYWNlU3ZnKHR5cGU6IFBsYWNlVHlwZSwgc3RhdGU6IFBsYWNlU3RhdGUpOiBzdHJpbmcge1xuICAgIGNvbnN0IHR5cGVTdHJpbmcgPSB0eXBlIGFzIHN0cmluZztcbiAgICBjb25zdCBzdGF0ZVN0cmluZyA9IHN0YXRlIGFzIHN0cmluZztcbiAgICByZXR1cm4gYFBMQUNFXyR7dHlwZVN0cmluZ31fJHtzdGF0ZVN0cmluZ31gO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0VGl0bGVEZXNjcmlwdGlvblBsYWNlKHJvdGF0aW9uOiBzdHJpbmcgfCB1bmRlZmluZWQpOiBzdHJpbmcge1xuICAgIGNvbnN0IHRyYW5zbGF0aW9uS2V5ID0gJ1BMQUNFX0NPTlRST0xfJyArIHRoaXMudHlwZSArICdfJyArIHRoaXMuc3RhdGU7XG4gICAgbGV0IGRlc2NyaXB0aW9uID0gZ2V0STE4blNlYXRSZXNlcnZhdGlvbih0cmFuc2xhdGlvbktleSwgdGhpcy5fbGFuZ3VhZ2UuY3VycmVudCwgW3RoaXMudGV4dF0pO1xuXG4gICAgY29uc3QgcmVsYXRpdmVUcmF2ZWxEaXJlY3Rpb24gPSB0aGlzLl9nZXRSZWxhdGl2ZVRyYXZlbERpcmVjdGlvbihyb3RhdGlvbik7XG5cbiAgICBpZiAodGhpcy5wcm9wZXJ0eUlkcy5sZW5ndGggfHwgcmVsYXRpdmVUcmF2ZWxEaXJlY3Rpb24pIHtcbiAgICAgIGRlc2NyaXB0aW9uICs9XG4gICAgICAgICcuICcgKyBnZXRJMThuU2VhdFJlc2VydmF0aW9uKCdQTEFDRV9QUk9QRVJUWScsIHRoaXMuX2xhbmd1YWdlLmN1cnJlbnQpLmNvbmNhdCgnOiAnKTtcblxuICAgICAgZGVzY3JpcHRpb24gKz0gW3JlbGF0aXZlVHJhdmVsRGlyZWN0aW9uLCAuLi50aGlzLnByb3BlcnR5SWRzXVxuICAgICAgICAubWFwKChwcm9wZXJ0eUlkKSA9PlxuICAgICAgICAgIGdldEkxOG5TZWF0UmVzZXJ2YXRpb24oJ1BMQUNFX1BST1BFUlRJRVMuJyArIHByb3BlcnR5SWQsIHRoaXMuX2xhbmd1YWdlLmN1cnJlbnQpLFxuICAgICAgICApXG4gICAgICAgIC5maWx0ZXIoKHZhbHVlKSA9PiB2YWx1ZSlcbiAgICAgICAgLmpvaW4oJywgJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRlc2NyaXB0aW9uO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0UmVsYXRpdmVUcmF2ZWxEaXJlY3Rpb24oXG4gICAgcm90YXRpb25WYWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICApOiBUcmF2ZWxEaXJlY3Rpb25JMThuS2V5IHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoXG4gICAgICAhdGhpcy50cmF2ZWxEaXJlY3Rpb24gfHxcbiAgICAgIHRoaXMudHJhdmVsRGlyZWN0aW9uID09PSAnTk9ORScgfHxcbiAgICAgIHRoaXMucGxhY2VUeXBlICE9PSAnU0VBVCcgfHxcbiAgICAgICFyb3RhdGlvblZhbHVlXG4gICAgKVxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICBjb25zdCByb3RhdGlvbiA9IE51bWJlcihyb3RhdGlvblZhbHVlKTtcblxuICAgIGlmIChyb3RhdGlvbiA9PT0gOTAgfHwgcm90YXRpb24gPT09IDI3MCkge1xuICAgICAgcmV0dXJuICdUUkFWRUxfRElSRUNUSU9OX1RSQU5TVkVSU0VMWSc7XG4gICAgfVxuXG4gICAgY29uc3QgaW5EaXJlY3Rpb24gPVxuICAgICAgKHJvdGF0aW9uID09PSAwICYmIHRoaXMudHJhdmVsRGlyZWN0aW9uID09PSAnUklHSFQnKSB8fFxuICAgICAgKHJvdGF0aW9uID09PSAxODAgJiYgdGhpcy50cmF2ZWxEaXJlY3Rpb24gPT09ICdMRUZUJyk7XG5cbiAgICBpZiAoaW5EaXJlY3Rpb24pIHtcbiAgICAgIHJldHVybiAnVFJBVkVMX0RJUkVDVElPTl9JTl9ESVJFQ1RJT04nO1xuICAgIH0gZWxzZSBpZiAocm90YXRpb24gPT09IDAgfHwgcm90YXRpb24gPT09IDE4MCkge1xuICAgICAgcmV0dXJuICdUUkFWRUxfRElSRUNUSU9OX0lOX09QUE9TSVRFX0RJUkVDVElPTic7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qKiBJZiB0aGUgcGxhY2Ugc2VsZWN0YWJsZSwgd2UgZW1pdCB0aGUgcGxhY2VTZWxlY3Rpb24gb2JqZWN0IHdoaWNoIGNvbnRhaW5zIGluZm9zIHRvIHRoZSBwbGFjZSBzdGF0ZSAqL1xuICBwcml2YXRlIF9zZWxlY3RQbGFjZSgpOiB2b2lkIHtcbiAgICBjb25zdCBzZWxlY3RhYmxlID0gKHRoaXMuc3RhdGUgPT09ICdGUkVFJyB8fCB0aGlzLnN0YXRlID09PSAnU0VMRUNURUQnKSAmJiAhdGhpcy5wcmV2ZW50Q2xpY2s7XG5cbiAgICBpZiAoc2VsZWN0YWJsZSkge1xuICAgICAgdGhpcy5zdGF0ZSA9IHRoaXMuc3RhdGUgPT09ICdGUkVFJyA/ICdTRUxFQ1RFRCcgOiAnRlJFRSc7XG4gICAgICBjb25zdCBwbGFjZVNlbGVjdGlvbjogUGxhY2VTZWxlY3Rpb24gPSB7XG4gICAgICAgIGlkOiB0aGlzLmlkLFxuICAgICAgICBkZWNrSW5kZXg6IHRoaXMuZGVja0luZGV4LFxuICAgICAgICBjb2FjaEluZGV4OiB0aGlzLmNvYWNoSW5kZXgsXG4gICAgICAgIG51bWJlcjogdGhpcy50ZXh0LFxuICAgICAgICBzdGF0ZTogdGhpcy5zdGF0ZSxcbiAgICAgICAgcGxhY2VUeXBlOiB0aGlzLnBsYWNlVHlwZSxcbiAgICAgIH07XG5cbiAgICAgIC8qKlxuICAgICAgICogQHR5cGUge0N1c3RvbUV2ZW50PFBsYWNlU2VsZWN0aW9uPn1cbiAgICAgICAqIEVtaXRzIHdoZW4gYSBwbGFjZSB3YXMgc2VsZWN0ZWQgdmlhIHVzZXIgaW50ZXJhY3Rpb24gYW5kIHJldHVybnMgYVxuICAgICAgICogUGxhY2VTZWxlY3Rpb24gb2JqZWN0IHdpdGggbmVjZXNzYXJ5IHBsYWNlIGluZm9ybWF0aW9uLlxuICAgICAgICovXG4gICAgICB0aGlzLmRpc3BhdGNoRXZlbnQoXG4gICAgICAgIG5ldyBDdXN0b21FdmVudDxQbGFjZVNlbGVjdGlvbj4oJ3NlbGVjdHBsYWNlJywge1xuICAgICAgICAgIGRldGFpbDogcGxhY2VTZWxlY3Rpb24sXG4gICAgICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgICAgICBjb21wb3NlZDogdHJ1ZSxcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgIH1cbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbCc6IFNiYlNlYXRSZXNlcnZhdGlvblBsYWNlQ29udHJvbEVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUNxQkEsaUNBQWlDLFFBQVE7Ozs7SUFVNUIsK0NBQXFDO21CQUFTOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2NBQTlDLDhDQUE4QyxZQUFvQjs7OzRCQVE1RSxXQUFXLEVBQ1gsU0FBUyxFQUFFLFdBQVcsUUFBUSxDQUFDLENBQUE7d0JBSS9CLFdBQVcsRUFDWCxTQUFTO0lBQUUsV0FBVztJQUFTLFNBQVM7SUFBTSxDQUFDLENBQUE7a0NBSS9DLFNBQVMsRUFBRSxXQUFXLG9CQUFvQixDQUFDLENBQUE7OEJBSTNDLFNBQVM7SUFBRSxXQUFXO0lBQWUsTUFBTTtJQUFPLENBQUMsQ0FBQTt1QkFJbkQsV0FBVyxFQUNYLFNBQVMsRUFBRSxXQUFXLFFBQVEsQ0FBQyxDQUFBOzRCQUkvQixXQUFXLEVBQ1gsU0FBUztJQUFFLFdBQVc7SUFBYyxNQUFNO0lBQVEsQ0FBQyxDQUFBOzZCQUluRCxXQUFXLEVBQ1gsU0FBUztJQUFFLFdBQVc7SUFBZSxNQUFNO0lBQVEsQ0FBQyxDQUFBOytCQUlwRCxXQUFXLEVBQ1gsU0FBUztJQUFFLFdBQVc7SUFBaUIsTUFBTTtJQUFTLENBQUMsQ0FBQTsyQkFJdkQsV0FBVyxFQUNYLFNBQVMsRUFBRSxXQUFXLFlB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
429
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLmNvbXBvbmVudC1DTTllZklkNy5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMtZXhwZXJpbWVudGFsL3NlYXQtcmVzZXJ2YXRpb24vc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sL3NlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy1leHBlcmltZW50YWwvc2VhdC1yZXNlcnZhdGlvbi9zZWF0LXJlc2VydmF0aW9uLXBsYWNlLWNvbnRyb2wvc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICdAc2JiLWVzdGEvbHluZS1lbGVtZW50cy9jb3JlL3N0eWxlcycgYXMgc2JiO1xuQHVzZSAnLi4vY29tbW9uL3N0eWxlcy9zZWF0LXJlc2VydmF0aW9uLW1peGlucycgYXMgc2JiLXNyLW1peGlucztcbkB1c2UgJy4uL2NvbW1vbi9zdHlsZXMvc2VhdC1yZXNlcnZhdGlvbi1mdW5jdGlvbnMnIGFzIHNiYi1zci1mdW5jdGlvbnM7XG5cbi8vIERlcGVuZHMgb24gdGhlIHBsYWNlIHN0YXRlIGFuZCBjdXJyZW50IGV2ZW50IChob3Zlcnxmb2N1cyksIHRoZSBiYWNrZ3JvdW5kIGFuZCBmaWxsIGNvbG9ycyBvZiB0aGUgcGxhY2UsXG4vLyBiYWNrcmVzdCBvZiBwbGFjZSBhbmQgdGhlIHRleHQgY29sb3IgYXJlIGhhbmRsZWQgYnkgY29sb3JpemVQbGFjZSBmdW5jdGlvbi5cbkBtaXhpbiBjb2xvcml6ZVBsYWNlKCRzdGF0ZSwgJGV2ZW50KSB7XG4gIDo6cGFydChzdmctcGxhY2UpIHtcbiAgICBmaWxsOiB2YXIoLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLSN7JHN0YXRlfS1iYWNrZ3JvdW5kLSN7JGV2ZW50fSk7XG4gIH1cblxuICA6OnBhcnQoc3ZnLWJhY2tyZXN0KSB7XG4gICAgZmlsbDogdmFyKC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC0jeyRzdGF0ZX0tYmFja3Jlc3QtYmFja2dyb3VuZC0jeyRldmVudH0pO1xuICB9XG5cbiAgLnNiYi1zci1wbGFjZS1jdHJsX190ZXh0IHtcbiAgICAvLyBkb250IHVzZSB0cmFuc3BhcmVudCBvciByZW1vdmUgYmFja2dyb3VuZCwgb3RoZXJ3aXNlIHRoZXJlIGFyZSBhMTF5IHZpb2xhdGlvbnMgcmVnYXJkaW5nXG4gICAgLy8gaW5zdWZmaWNpZW50IGNvbG9yIGNvbnRyYXN0XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC0jeyRzdGF0ZX0tYmFja2dyb3VuZC0jeyRldmVudH0pO1xuICAgIGNvbG9yOiB2YXIoLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLSN7JHN0YXRlfS10ZXh0KTtcbiAgfVxuXG4gIEBpZiAkc3RhdGUgIT0gJ3NlbGVjdGVkJyB7XG4gICAgQGluY2x1ZGUgc2JiLmlmLWZvcmNlZC1jb2xvcnMge1xuICAgICAgOjpwYXJ0KHN2Zy1wbGFjZSkge1xuICAgICAgICBmaWxsOiB2YXIoLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLSN7JHN0YXRlfS1iYWNrZ3JvdW5kLWhpZ2gtY29udHJhc3QpO1xuICAgICAgfVxuXG4gICAgICA6OnBhcnQoc3ZnLWJhY2tyZXN0KSB7XG4gICAgICAgIGZpbGw6IHZhcigtLXNiYi1zZWF0LXJlc2VydmF0aW9uLXBsYWNlLWNvbnRyb2wtI3skc3RhdGV9LWJhY2tyZXN0LWhpZ2gtY29udHJhc3QpO1xuICAgICAgfVxuXG4gICAgICA6OnBhcnQoc3ZnLWljb24pIHtcbiAgICAgICAgZmlsbDogdmFyKC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC0jeyRzdGF0ZX0taWNvbi1oaWdoLWNvbnRyYXN0KTtcbiAgICAgIH1cblxuICAgICAgOjpwYXJ0KHN2Zy1zZWF0bGluZSkge1xuICAgICAgICBzdHJva2U6IHZhcigtLXNiYi1zZWF0LXJlc2VydmF0aW9uLXBsYWNlLWNvbnRyb2wtI3skc3RhdGV9LWJhY2tyZXN0LWhpZ2gtY29udHJhc3QpO1xuICAgICAgfVxuXG4gICAgICAuc2JiLXNyLXBsYWNlLWN0cmxfX3RleHQge1xuICAgICAgICBmb3JjZWQtY29sb3ItYWRqdXN0OiBub25lO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoXG4gICAgICAgICAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLSN7JHN0YXRlfS1iYWNrZ3JvdW5kLWhpZ2gtY29udHJhc3RcbiAgICAgICAgKTtcbiAgICAgICAgY29sb3I6IHZhcigtLXNiYi1zZWF0LXJlc2VydmF0aW9uLXBsYWNlLWNvbnRyb2wtI3skc3RhdGV9LXRleHQtaGlnaC1jb250cmFzdCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbiRkaXNhYmxlZDogJy5zYmItcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC0tZGlzYWJsZWQnO1xuXG46aG9zdCB7XG4gIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC10ZXh0LXNjYWxlLXZhbHVlOiAxO1xuICAtLXNiYi1zZWF0LXJlc2VydmF0aW9uLXBsYWNlLWNvbnRyb2wtd2lkdGg6IDE2O1xuICAtLXNiYi1zZWF0LXJlc2VydmF0aW9uLXBsYWNlLWNvbnRyb2wtaGVpZ2h0OiAxNjtcbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLXRvcDogMDtcbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLWxlZnQ6IDA7XG4gIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC1yb3RhdGlvbjogMDtcbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLXRleHQtcm90YXRpb246IDA7XG4gIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC10ZXh0LXNpemU6IGNhbGMoXG4gICAgdmFyKC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC10ZXh0LXNjYWxlLXZhbHVlLCAxKSAqIDAuNVxuICApO1xuXG4gIC8vIENvbG9yIGRlZmluaXRpb24gZm9yIHRleHRcbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLWRlZmF1bHQtdGV4dDogbGlnaHQtZGFyayhcbiAgICB2YXIoLS1zYmItY29sb3ItYmxhY2spLFxuICAgIHZhcigtLXNiYi1jb2xvci13aGl0ZSlcbiAgKTtcbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLWhvdmVyLXRleHQ6IGxpZ2h0LWRhcmsoXG4gICAgdmFyKC0tc2JiLWNvbG9yLWlyb24pLFxuICAgIHZhcigtLXNiYi1jb2xvci1zaWx2ZXIpXG4gICk7XG4gIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC1mb2N1cy10ZXh0OiBsaWdodC1kYXJrKFxuICAgIHZhcigtLXNiYi1jb2xvci1hbnRocmFjaXRlKSxcbiAgICB2YXIoLS1zYmItY29sb3ItZ3JhcGhpdGUpXG4gICk7XG4gIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC1hbGxvY2F0ZWQtdGV4dDogbGlnaHQtZGFyayhcbiAgICB2YXIoLS1zYmItY29sb3Itc21va2UpLFxuICAgIHZhcigtLXNiYi1jb2xvci1tZXRhbClcbiAgKTtcblxuICAvLyBDb2xvciBiYWNrZ3JvdW5kIGRlZmluaXRpb24gZm9yIHBsYWNlIHdpdGggc3RhdGUgRlJFRVxuICAtLXNiYi1zZWF0LXJlc2VydmF0aW9uLXBsYWNlLWNvbnRyb2wtZnJlZS1iYWNrZ3JvdW5kLWRlZmF1bHQ6IHZhcigtLXNiYi1iYWNrZ3JvdW5kLWNvbG9yLTIpO1xuICAtLXNiYi1zZWF0LXJlc2VydmF0aW9uLXBsYWNlLWNvbnRyb2wtZnJlZS1iYWNrZ3JvdW5kLWhvdmVyOiBsaWdodC1kYXJrKFxuICAgIHZhcigtLXNiYi1jb2xvci1jbG91ZCksXG4gICAgdmFyKC0tc2JiLWNvbG9yLW1pZG5pZ2h0KVxuICApO1xuICAtLXNiYi1zZWF0LXJlc2VydmF0aW9uLXBsYWNlLWNvbnRyb2wtZnJlZS1iYWNrZ3JvdW5kLWZvY3VzOiBsaWdodC1kYXJrKFxuICAgIHZhcigtLXNiYi1jb2xvci1zaWx2ZXIpLFxuICAgIHZhcigtLXNiYi1jb2xvci1ibGFjaylcbiAgKTtcblxuICAvLyBDb2xvciBiYWNrZ3JvdW5kIGRlZmluaXRpb24gZm9yIGJhY2tyZXN0IHdpdGggc3RhdGUgRlJFRVxuICAtLXNiYi1zZWF0LXJlc2VydmF0aW9uLXBsYWNlLWNvbnRyb2wtZnJlZS1iYWNrcmVzdC1iYWNrZ3JvdW5kLWRlZmF1bHQ6IGxpZ2h0LWRhcmsoXG4gICAgdmFyKC0tc2JiLWNvbG9yLWJsYWNrKSxcbiAgICB2YXIoLS1zYmItY29sb3Itd2hpdGUpXG4gICk7XG4gIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC1mcmVlLWJhY2tyZXN0LWJhY2tncm91bmQtaG92ZXI6IGxpZ2h0LWRhcmsoXG4gICAgdmFyKC0tc2JiLWNvbG9yLWJsYWNrKSxcbiAgICB2YXIoLS1zYmItY29sb3Itd2hpdGUpXG4gICk7XG4gIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC1mcmVlLWJhY2tyZXN0LWJhY2tncm91bmQtZm9jdXM6IGxpZ2h0LWRhcmsoXG4gICAgdmFyKC0tc2JiLWNvbG9yLWJsYWNrKSxcbiAgICB2YXIoLS1zYmItY29sb3Itd2hpdGUpXG4gICk7XG5cbiAgLy8gQ29sb3IgYmFja2dyb3VuZCBkZWZpbml0aW9uIGZvciBwbGFjZSB3aXRoIHN0YXRlIFNFTEVDVEVEXG4gIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC1zZWxlY3RlZC1iYWNrZ3JvdW5kLWRlZmF1bHQ6IHZhcigtLXNiYi1jb2xvci1wcmltYXJ5KTtcbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLXNlbGVjdGVkLWJhY2tncm91bmQtaG92ZXI6IHZhcigtLXNiYi1jb2xvci1wcmltYXJ5MTI1KTtcbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLXNlbGVjdGVkLWJhY2tncm91bmQtZm9jdXM6IHZhcigtLXNiYi1jb2xvci1wcmltYXJ5MTUwKTtcblxuICAvLyBDb2xvciBiYWNrZ3JvdW5kIGRlZmluaXRpb24gZm9yIGJhY2tyZXN0IHdpdGggc3RhdGUgU0VMRUNURURcbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLXNlbGVjdGVkLWJhY2tyZXN0LWJhY2tncm91bmQtZGVmYXVsdDogdmFyKFxuICAgIC0tc2JiLWNvbG9yLXByaW1hcnkxNTBcbiAgKTtcbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLXNlbGVjdGVkLWJhY2tyZXN0LWJhY2tncm91bmQtaG92ZXI6ICM3ZDAwMGY7XG4gIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC1zZWxlY3RlZC1iYWNrcmVzdC1iYWNrZ3JvdW5kLWZvY3VzOiAjNWEwMDBiO1xuXG4gIC8vIENvbG9yIGJhY2tncm91bmQgZGVmaW5pdGlvbiBmb3IgcGxhY2Ugd2l0aCBzdGF0ZSBBTExPQ0FURURcbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLWFsbG9jYXRlZC1iYWNrZ3JvdW5kLWRlZmF1bHQ6IGxpZ2h0LWRhcmsoXG4gICAgdmFyKC0tc2JiLWNvbG9yLW1pbGspLFxuICAgIHZhcigtLXNiYi1jb2xvci1taWRuaWdodClcbiAgKTtcblxuICAvLyBDb2xvciBkZWZpbml0aW9ucyBmb3IgaGlnaCBjb250cmFzdCBtb2RlXG4gIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC1mcmVlLWJhY2tyZXN0LWhpZ2gtY29udHJhc3Q6IENhbnZhc1RleHQ7XG4gIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC1mcmVlLWJhY2tncm91bmQtaGlnaC1jb250cmFzdDogQ2FudmFzO1xuICAtLXNiYi1zZWF0LXJlc2VydmF0aW9uLXBsYWNlLWNvbnRyb2wtZnJlZS10ZXh0LWhpZ2gtY29udHJhc3Q6IEJ1dHRvblRleHQ7XG4gIC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC1mcmVlLWljb24taGlnaC1jb250cmFzdDogQ2FudmFzVGV4dDtcbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLWFsbG9jYXRlZC1iYWNrcmVzdC1oaWdoLWNvbnRyYXN0OiBHcmF5VGV4dDtcbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLWFsbG9jYXRlZC1iYWNrZ3JvdW5kLWhpZ2gtY29udHJhc3Q6IENhbnZhcztcbiAgLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLWFsbG9jYXRlZC10ZXh0LWhpZ2gtY29udHJhc3Q6IEdyYXlUZXh0O1xuICAtLXNiYi1zZWF0LXJlc2VydmF0aW9uLXBsYWNlLWNvbnRyb2wtYWxsb2NhdGVkLWljb24taGlnaC1jb250cmFzdDogR3JheVRleHQ7XG5cbiAgd2lkdGg6IHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKHZhcigtLXNiYi1zZWF0LXJlc2VydmF0aW9uLXBsYWNlLWNvbnRyb2wtd2lkdGgpKTtcbiAgaGVpZ2h0OiBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbSh2YXIoLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLWhlaWdodCkpO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0LWJsb2NrLXN0YXJ0OiBzYmItc3ItZnVuY3Rpb25zLnNyLXB4LXRvLXJlbSh2YXIoLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLXRvcCkpO1xuICBpbnNldC1pbmxpbmUtc3RhcnQ6IHNiYi1zci1mdW5jdGlvbnMuc3ItcHgtdG8tcmVtKHZhcigtLXNiYi1zZWF0LXJlc2VydmF0aW9uLXBsYWNlLWNvbnRyb2wtbGVmdCkpO1xuICBmb250LXdlaWdodDogMzAwO1xuICBjdXJzb3I6IHZhcigtLXNiYi1jdXJzb3ItcG9pbnRlcik7XG59XG5cbjpob3N0KDpob3Zlcikge1xuICAuc2JiLXNyLXBsYWNlLWN0cmwge1xuICAgICYtLXN0YXRlLWZyZWU6bm90KCN7JGRpc2FibGVkfSkge1xuICAgICAgQGluY2x1ZGUgY29sb3JpemVQbGFjZSgnZnJlZScsICdob3ZlcicpO1xuICAgIH1cblxuICAgICYtLXN0YXRlLXNlbGVjdGVkOm5vdCgjeyRkaXNhYmxlZH0pIHtcbiAgICAgIEBpbmNsdWRlIGNvbG9yaXplUGxhY2UoJ3NlbGVjdGVkJywgJ2hvdmVyJyk7XG4gICAgfVxuICB9XG59XG5cbjpob3N0KDpmb2N1cy12aXNpYmxlKSB7XG4gIC5zYmItc3ItcGxhY2UtY3RybCB7XG4gICAgJi0tc3RhdGUtZnJlZTpub3QoI3skZGlzYWJsZWR9KSB7XG4gICAgICBAaW5jbHVkZSBjb2xvcml6ZVBsYWNlKCdmcmVlJywgJ2ZvY3VzJyk7XG4gICAgfVxuICB9XG59XG5cbjpob3N0KDphY3RpdmUpIHtcbiAgLnNiYi1zci1wbGFjZS1jdHJsIHtcbiAgICAmLS1zdGF0ZS1zZWxlY3RlZDpub3QoI3skZGlzYWJsZWR9KSB7XG4gICAgICBAaW5jbHVkZSBjb2xvcml6ZVBsYWNlKCdzZWxlY3RlZCcsICdmb2N1cycpO1xuICAgIH1cbiAgfVxufVxuXG4vLyByb3RhdGVzIHRoZSBET00tcGFydCBcInN2Zy1wbGFjZVwiIGJ5IDE4MCBkZWdyZWVzIGlmIHRoZSBob3N0IGlzIGluIFJUTCBtb2RlLlxuQGluY2x1ZGUgc2JiLXNyLW1peGlucy5yb3RhdGUtZG9tLXBhcnQoc3ZnLXBsYWNlKTtcblxuLnNiYi1zci1wbGFjZS1jdHJsIHtcbiAgJHJvb3Q6ICY7XG5cbiAgd2lkdGg6IG1heC1jb250ZW50O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZvbnQtc2l6ZTogc2JiLXNyLWZ1bmN0aW9ucy5zci1weC10by1yZW0odmFyKC0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC10ZXh0LXNpemUpKTtcblxuICAmLS1zdGF0ZS1mcmVlIHtcbiAgICBAaW5jbHVkZSBjb2xvcml6ZVBsYWNlKCdmcmVlJywgJ2RlZmF1bHQnKTtcbiAgfVxuXG4gICYtLXN0YXRlLXNlbGVjdGVkIHtcbiAgICBAaW5jbHVkZSBjb2xvcml6ZVBsYWNlKCdzZWxlY3RlZCcsICdkZWZhdWx0Jyk7XG4gIH1cblxuICAmLS1zdGF0ZS1hbGxvY2F0ZWQsXG4gICYtLXN0YXRlLXJlc3RyaWN0ZWQge1xuICAgIEBpbmNsdWRlIGNvbG9yaXplUGxhY2UoJ2FsbG9jYXRlZCcsICdkZWZhdWx0Jyk7XG5cbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICB9XG5cbiAgJl9fdGV4dCB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBpbnNldC1ibG9jay1zdGFydDogNTAlO1xuICAgIHRyYW5zbGF0ZTogLTUwJSAtNTAlO1xuICAgIHJvdGF0ZTogY2FsYyh2YXIoLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLXRleHQtcm90YXRpb24pICogMWRlZyk7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLXNiYi10eXBvLWZvbnQtZmFtaWx5KTtcblxuICAgIC8vIGRvbnQgdXNlIHNiYi5weC10by1yZW0gb3IgLS1zYmItdHlwby1zY2FsZS0wLTc1eDsgd2Ugd2FudCBcImVtXCIgaW4gdGhpcyBjYXNlIVxuICAgIGZvbnQtc2l6ZTogMC43NWVtO1xuICAgIGxpbmUtaGVpZ2h0OiBpbml0aWFsO1xuXG4gICAgI3skcm9vdH0tLXN0YXRlLWZyZWUgJixcbiAgICAjeyRyb290fS0tc3RhdGUtYWxsb2NhdGVkICYge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgI3skcm9vdH0tLXR5cGUtYmljeWNsZSAmIHtcbiAgICAgIGluc2V0LWJsb2NrLXN0YXJ0OiA2NSU7XG4gICAgICBpbnNldC1pbmxpbmUtc3RhcnQ6IDUwJTtcblxuICAgICAgLy8gV2UgbmVlZCB0byBhZGp1c3QgdHJhbnNmb3JtIG9yaWdpbiBwb2ludCBmb3IgYmljeWNsZSBwbGFjZXMgdGV4dCAobmVjZXNzYXJ5IGZvciByb3RhdGlvbiksXG4gICAgICAvLyBiZWNhdXNlIHRoZSBwb3NpdGlvbiBvZiBwbGFjZSBudW1iZXIgaXMgbm90IGNlbnRlcmVkIGluIHRoZSBwbGFjZSBhcmVhLlxuICAgICAgLy8gVGhlIHZhbHVlIDE2JSBpcyB0aGUgb3B0aW1hbCB2YWx1ZSBmb3IgdGhlIHJvdGF0aW9uIG9mZnNldCBvbiB0aGUgb3JpZ2luIHktYXhpcy5cbiAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciAxNiU7XG5cbiAgICAgIC8vIHVzZSBhIHNtYWxsZXIgZm9udC1zaXplIHRvIGF2b2lkIGExMXkgdmlvbGF0aW9uXG4gICAgICBmb250LXNpemU6IDAuNjg3NWVtO1xuICAgIH1cblxuICAgIC8vIERlcGVuZGluZyBvbiB0aGUgcGxhY2Ugb3JpZW50YXRpb24sIG1pbm9yIHBvc2l0aW9uaW5nIGFkanVzdG1lbnRzIG1heSBuZWVkIHRvIGJlIG1hZGUgdG8gY2VudGVyIHRoZSB0ZXh0LFxuICAgIC8vIGJlY2F1c2Ugb2YgdGhlIHdpZHRoIG9mIHRoZSBTVkcgd2hpY2ggaXMgbm90IHNxdWFyZVxuICAgICN7JHJvb3R9LS1vcmllbnRhdGlvbi0wI3skcm9vdH0tLXR5cGUtc2VhdCAmIHtcbiAgICAgIGluc2V0LWlubGluZS1zdGFydDogNDUlO1xuICAgIH1cblxuICAgICN7JHJvb3R9LS1vcmllbnRhdGlvbi05MCN7JHJvb3R9LS10eXBlLXNlYXQgJiB7XG4gICAgICBpbnNldC1ibG9jay1zdGFydDogNDYlO1xuICAgICAgaW5zZXQtaW5saW5lLXN0YXJ0OiA1MCU7XG4gICAgfVxuXG4gICAgI3skcm9vdH0tLW9yaWVudGF0aW9uLTE4MCN7JHJvb3R9LS10eXBlLXNlYXQgJiB7XG4gICAgICBpbnNldC1pbmxpbmUtc3RhcnQ6IDU1JTtcbiAgICB9XG5cbiAgICAjeyRyb290fS0tb3JpZW50YXRpb24tMjcwI3skcm9vdH0tLXR5cGUtc2VhdCAmIHtcbiAgICAgIGluc2V0LWJsb2NrLXN0YXJ0OiA1MiU7XG4gICAgICBpbnNldC1pbmxpbmUtc3RhcnQ6IDUyJTtcbiAgICB9XG4gIH1cbn1cblxuOmhvc3QoOmRpcihydGwpKSB7XG4gIC8vIEZvciBSVEwsIHdlIG5lZWQgdG8gYWRqdXN0IHRoZSB0ZXh0IHBvc2l0aW9uIHRvIHRoZSByaWdodCBzaWRlXG4gIC5zYmItc3ItcGxhY2UtY3RybCB7XG4gICAgJi0tb3JpZW50YXRpb24tMCAuc2JiLXNyLXBsYWNlLWN0cmxfX3RleHQge1xuICAgICAgaW5zZXQtaW5saW5lLXN0YXJ0OiAzJTtcbiAgICB9XG5cbiAgICAmLS1vcmllbnRhdGlvbi05MCAuc2JiLXNyLXBsYWNlLWN0cmxfX3RleHQsXG4gICAgJi0tb3JpZW50YXRpb24tMTgwIC5zYmItc3ItcGxhY2UtY3RybF9fdGV4dCB7XG4gICAgICBpbnNldC1pbmxpbmUtc3RhcnQ6IDEwJTtcbiAgICB9XG5cbiAgICAmLS1vcmllbnRhdGlvbi0yNzAgLnNiYi1zci1wbGFjZS1jdHJsX190ZXh0IHtcbiAgICAgIGluc2V0LWlubGluZS1zdGFydDogNSU7XG4gICAgfVxuXG4gICAgJi0tdHlwZS1iaWN5Y2xlIC5zYmItc3ItcGxhY2UtY3RybF9fdGV4dCB7XG4gICAgICBpbnNldC1pbmxpbmUtc3RhcnQ6IC0xMCU7XG4gICAgfVxuICB9XG59XG4iLCJpbXBvcnQgeyBTYmJCdXR0b25CYXNlRWxlbWVudCB9IGZyb20gJ0BzYmItZXN0YS9seW5lLWVsZW1lbnRzL2NvcmUvYmFzZS1lbGVtZW50cy5qcyc7XG5pbXBvcnQgeyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIgfSBmcm9tICdAc2JiLWVzdGEvbHluZS1lbGVtZW50cy9jb3JlL2NvbnRyb2xsZXJzLmpzJztcbmltcG9ydCB7IGZvcmNlVHlwZSB9IGZyb20gJ0BzYmItZXN0YS9seW5lLWVsZW1lbnRzL2NvcmUvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBib3hTaXppbmdTdHlsZXMgfSBmcm9tICdAc2JiLWVzdGEvbHluZS1lbGVtZW50cy9jb3JlL3N0eWxlcy5qcyc7XG5pbXBvcnQge1xuICB0eXBlIENTU1Jlc3VsdEdyb3VwLFxuICBodG1sLFxuICBub3RoaW5nLFxuICB0eXBlIFRlbXBsYXRlUmVzdWx0LFxuICB0eXBlIFByb3BlcnR5VmFsdWVzLFxuICB1bnNhZmVDU1MsXG59IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IHN0eWxlTWFwIH0gZnJvbSAnbGl0L2RpcmVjdGl2ZXMvc3R5bGUtbWFwLmpzJztcblxuaW1wb3J0IHsgZ2V0STE4blNlYXRSZXNlcnZhdGlvbiB9IGZyb20gJy4uL2NvbW1vbi90cmFuc2xhdGlvbnMudHMnO1xuaW1wb3J0IHR5cGUgeyBQbGFjZVNlbGVjdGlvbiwgUGxhY2VTdGF0ZSwgUGxhY2VUeXBlLCBUcmF2ZWxEaXJlY3Rpb24gfSBmcm9tICcuLi9jb21tb24vdHlwZXMudHMnO1xuaW1wb3J0IHsgU2JiU2VhdFJlc2VydmF0aW9uR3JhcGhpY0VsZW1lbnQgfSBmcm9tICcuLi9zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWMvc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljLmNvbXBvbmVudC50cyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL3NlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC5zY3NzP2lubGluZSc7XG5cblNiYlNlYXRSZXNlcnZhdGlvbkdyYXBoaWNFbGVtZW50LmRlZmluZSgpO1xuXG50eXBlIFRyYXZlbERpcmVjdGlvbkkxOG5LZXkgPVxuICB8ICdUUkFWRUxfRElSRUNUSU9OX0lOX0RJUkVDVElPTidcbiAgfCAnVFJBVkVMX0RJUkVDVElPTl9JTl9PUFBPU0lURV9ESVJFQ1RJT04nXG4gIHwgJ1RSQVZFTF9ESVJFQ1RJT05fVFJBTlNWRVJTRUxZJztcblxuLyoqXG4gKiBPdXRwdXQgdGhlIGdyYXBoaWMgb2YgYSBzZWF0IG9yIGEgYmljeWNsZSBwbGFjZSBhcyBhIGNvbnRyb2wgZWxlbWVudC5cbiAqL1xuZXhwb3J0IGNsYXNzIFNiYlNlYXRSZXNlcnZhdGlvblBsYWNlQ29udHJvbEVsZW1lbnQgZXh0ZW5kcyBTYmJCdXR0b25CYXNlRWxlbWVudCB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgZWxlbWVudE5hbWU6IHN0cmluZyA9ICdzYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sJztcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW2JveFNpemluZ1N0eWxlcywgdW5zYWZlQ1NTKHN0eWxlKV07XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgZXZlbnRzID0ge1xuICAgIHNlbGVjdHBsYWNlOiAnc2VsZWN0cGxhY2UnLFxuICB9IGFzIGNvbnN0O1xuXG4gIC8qKiBwbGFjZVR5cGUgb2YgdGhlIHBsYWNlLCBlLmcuICdTRUFUJywgJ0JJQ1lDTEUnICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICd0eXBlJyB9KVxuICBwdWJsaWMgYWNjZXNzb3IgcGxhY2VUeXBlOiBQbGFjZVR5cGUgPSAnU0VBVCc7XG5cbiAgLyoqIHN0YXRlIG9mIHRoZSBwbGFjZSwgZS5nLiAnRlJFRScsICdTRUxFQ1RFRCcsICdCTE9DS0VEJyAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnc3RhdGUnLCByZWZsZWN0OiB0cnVlIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBzdGF0ZTogUGxhY2VTdGF0ZSA9ICdGUkVFJztcblxuICAvKiogZGlyZWN0aW9uIG9mIGEgd2hvbGUgdHJhaW4sIHVzZWQgdG8gY29tcHV0ZSBhbiBvcmllbnRhdGlvbiBvZiBhIHBsYWNlICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ3RyYXZlbC1kaXJlY3Rpb24nIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciB0cmF2ZWxEaXJlY3Rpb246IFRyYXZlbERpcmVjdGlvbiA9ICdOT05FJztcblxuICAvKiogcHJvcGVydHkgaWRzIG9mIHRoZSBwbGFjZSwgdG8gZGlzcGxheSBtb3JlIGluZm8gYWJvdXQgdGhlIHBsYWNlICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ3Byb3BlcnR5SWRzJywgdHlwZTogQXJyYXkgfSlcbiAgcHVibGljIGFjY2Vzc29yIHByb3BlcnR5SWRzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIC8qKiBsYWJlbCBvZiB0aGUgcGxhY2UsIGUuZy4gJzFBJywgJzJCJyAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAndGV4dCcgfSlcbiAgcHVibGljIGFjY2Vzc29yIHRleHQ6IHN0cmluZyA9ICcnO1xuXG4gIC8qKiBEZWNrIEluZGV4IFByb3AgdG8gaWRlbnRpZmllciB0aGUgcmlnaHQgcGxhY2UgdG8gZGVjayAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnZGVjay1pbmRleCcsIHR5cGU6IE51bWJlciB9KVxuICBwdWJsaWMgYWNjZXNzb3IgZGVja0luZGV4OiBudW1iZXIgPSBudWxsITtcblxuICAvKiogQ29hY2ggSW5kZXggUHJvcCB0byBpZGVudGlmaWVyIHRoZSByaWdodCBwbGFjZSB0byBjb2FjaCAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnY29hY2gtaW5kZXgnLCB0eXBlOiBOdW1iZXIgfSlcbiAgcHVibGljIGFjY2Vzc29yIGNvYWNoSW5kZXg6IG51bWJlciA9IG51bGwhO1xuXG4gIC8qKiBQcmV2ZW50IGNsaWNrIHByb3AgcHJldmVudCBhbnkgcGxhY2UgYWN0aW9uICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdwcmV2ZW50LWNsaWNrJywgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3IgcHJldmVudENsaWNrOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIFNldCB0aGUgcGxhY2UgZm9jdXMgb3V0bGluZSBzdHlsZSAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAna2V5Zm9jdXMnIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBrZXlmb2N1czogc3RyaW5nID0gJ3VuZm9jdXMnO1xuXG4gIC8qKiBEaXNhYmxlIHRoZSBtb3VzZSBvdmVyIHRpdGxlIGluZm9ybWF0aW9uICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuLCB1c2VEZWZhdWx0OiB0cnVlIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBzaG93VGl0bGVJbmZvOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBfb3B0aW9uYWxTY3JlZW5yZWFkZXJJbmZvOiBzdHJpbmcgPSAnJztcblxuICBwcml2YXRlIF9sYW5ndWFnZSA9IG5ldyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIodGhpcyk7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHRoaXMuX3NlbGVjdFBsYWNlKCkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHdpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIud2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdrZXlmb2N1cycpKSB7XG4gICAgICBpZiAodGhpcy5rZXlmb2N1cyA9PT0gJ2ZvY3VzJykge1xuICAgICAgICB0aGlzLmZvY3VzKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gaWYgdGl0bGUgd2FzIHNob3duIG9uY2UsIHdlIGNhbm5vdCB1bnNldCBpdCBjb21wbGV0ZWx5LCBidXQgdGhpc1xuICAgIC8vIGJlaGF2aW9yIHNob3VsZCBub3QgaGFwcGVuIHZlcnkgb2Z0ZW4gYXMgdGhlIHRpdGxlIHNob3VsZFxuICAgIC8vIG5vdCBzd2l0Y2ggZnJvbSBvbiB0byBvZmYgYW5kIG9uIGFnYWluXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnc2hvd1RpdGxlSW5mbycpKSB7XG4gICAgICBpZiAoIXRoaXMuc2hvd1RpdGxlSW5mbykge1xuICAgICAgICB0aGlzLnRpdGxlID0gJyc7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgY29uc3QgbmFtZTogc3RyaW5nID0gdGhpcy5fZ2V0UGxhY2VTdmcodGhpcy5wbGFjZVR5cGUsIHRoaXMuc3RhdGUpO1xuICAgIGNvbnN0IHR5cGU6IHN0cmluZyA9IHRoaXMudHlwZS50b0xvd2VyQ2FzZSgpO1xuICAgIGNvbnN0IHN0YXRlOiBzdHJpbmcgPSB0aGlzLnN0YXRlLnRvTG93ZXJDYXNlKCk7XG4gICAgY29uc3QgdGV4dDogc3RyaW5nIHwgbnVsbCA9IHRoaXMudGV4dDtcbiAgICBjb25zdCB3aWR0aCA9IHRoaXMuc3R5bGU/LmdldFByb3BlcnR5VmFsdWUoJy0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC13aWR0aCcpO1xuICAgIGNvbnN0IGhlaWdodCA9IHRoaXMuc3R5bGU/LmdldFByb3BlcnR5VmFsdWUoJy0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC1oZWlnaHQnKTtcbiAgICBjb25zdCByb3RhdGlvbiA9IHRoaXMuc3R5bGU/LmdldFByb3BlcnR5VmFsdWUoJy0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbC1yb3RhdGlvbicpO1xuICAgIGNvbnN0IHRleHRSb3RhdGlvbiA9IHRoaXMuc3R5bGU/LmdldFByb3BlcnR5VmFsdWUoXG4gICAgICAnLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLXRleHQtcm90YXRpb24nLFxuICAgICk7XG4gICAgY29uc3QgaW52ZXJzZVJvdGF0aW9uUGxhY2VDaGVja0ljb24gPSBOdW1iZXIodGV4dFJvdGF0aW9uKSAtIE51bWJlcihyb3RhdGlvbik7XG4gICAgY29uc3QgZGlzYWJsZWRDbGFzcyA9IHRoaXMucHJldmVudENsaWNrID8gJ3NiYi1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLS1kaXNhYmxlZCcgOiBudWxsO1xuXG4gICAgLy8gb25seSBzZXQgdGl0bGUgdG8gdGhlIFNiYkJ1dHRvbkJhc2VFbGVtZW50IGlmIHJlcXVlc3RlZDsgb3RoZXJ3aXNlIHByb3ZpZGUgdGhlIHRpdGxlXG4gICAgLy8gaW5mb3JtYXRpb24gdG8gc2NyZWVuIHJlYWRlcnMgdmlhIGFuIGFkZGl0aW9uYWwgZWxlbWVudFxuICAgIGlmICh0aGlzLnNob3dUaXRsZUluZm8pIHtcbiAgICAgIHRoaXMudGl0bGUgPSB0aGlzLl9nZXRUaXRsZURlc2NyaXB0aW9uUGxhY2Uocm90YXRpb24pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9vcHRpb25hbFNjcmVlbnJlYWRlckluZm8gPSB0aGlzLl9nZXRUaXRsZURlc2NyaXB0aW9uUGxhY2Uocm90YXRpb24pO1xuICAgIH1cblxuICAgIHRoaXMudGFiSW5kZXggPSAtMTtcblxuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdlxuICAgICAgICBwYXJ0PVwic2JiLXNyLXBsYWNlLXBhcnRcIlxuICAgICAgICBjbGFzcz1cInNiYi1zci1wbGFjZS1jdHJsIHNiYi1zci1wbGFjZS1jdHJsLS1vcmllbnRhdGlvbi0ke3JvdGF0aW9ufSBzYmItc3ItcGxhY2UtY3RybC0tc3RhdGUtJHtzdGF0ZX0gc2JiLXNyLXBsYWNlLWN0cmwtLXR5cGUtJHt0eXBlfSAke2Rpc2FibGVkQ2xhc3N9XCJcbiAgICAgID5cbiAgICAgICAgPHNiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWNcbiAgICAgICAgICBzdHlsZT0ke3N0eWxlTWFwKHtcbiAgICAgICAgICAgICctLXNiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWMtd2lkdGgnOiB3aWR0aCxcbiAgICAgICAgICAgICctLXNiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWMtaGVpZ2h0JzogaGVpZ2h0LFxuICAgICAgICAgICAgJy0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpYy1yb3RhdGlvbic6IHJvdGF0aW9uLFxuICAgICAgICAgICAgJy0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpYy1pbnZlcnNlLXJvdGF0aW9uJzogaW52ZXJzZVJvdGF0aW9uUGxhY2VDaGVja0ljb24sXG4gICAgICAgICAgfSl9XG4gICAgICAgICAgLm5hbWU9JHtuYW1lfVxuICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgID48L3NiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWM+XG4gICAgICAgIDxzcGFuICR7dGhpcy50ZXh0ID8/IG5vdGhpbmd9IGNsYXNzPVwic2JiLXNyLXBsYWNlLWN0cmxfX3RleHRcIiBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgID4ke3RleHR9PC9zcGFuXG4gICAgICAgID5cbiAgICAgICAgJHshdGhpcy5zaG93VGl0bGVJbmZvXG4gICAgICAgICAgPyBodG1sYDxzYmItc2NyZWVuLXJlYWRlci1vbmx5IGlkPVwiJHt0aGlzLmlkfVwiXG4gICAgICAgICAgICAgID4ke3RoaXMuX29wdGlvbmFsU2NyZWVucmVhZGVySW5mb308L3NiYi1zY3JlZW4tcmVhZGVyLW9ubHlcbiAgICAgICAgICAgID5gXG4gICAgICAgICAgOiBub3RoaW5nfVxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxuXG4gIHByaXZhdGUgX2dldFBsYWNlU3ZnKHR5cGU6IFBsYWNlVHlwZSwgc3RhdGU6IFBsYWNlU3RhdGUpOiBzdHJpbmcge1xuICAgIGNvbnN0IHR5cGVTdHJpbmcgPSB0eXBlIGFzIHN0cmluZztcbiAgICBjb25zdCBzdGF0ZVN0cmluZyA9IHN0YXRlIGFzIHN0cmluZztcbiAgICByZXR1cm4gYFBMQUNFXyR7dHlwZVN0cmluZ31fJHtzdGF0ZVN0cmluZ31gO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0VGl0bGVEZXNjcmlwdGlvblBsYWNlKHJvdGF0aW9uOiBzdHJpbmcgfCB1bmRlZmluZWQpOiBzdHJpbmcge1xuICAgIGNvbnN0IHRyYW5zbGF0aW9uS2V5ID0gJ1BMQUNFX0NPTlRST0xfJyArIHRoaXMudHlwZSArICdfJyArIHRoaXMuc3RhdGU7XG4gICAgbGV0IGRlc2NyaXB0aW9uID0gZ2V0STE4blNlYXRSZXNlcnZhdGlvbih0cmFuc2xhdGlvbktleSwgdGhpcy5fbGFuZ3VhZ2UuY3VycmVudCwgW3RoaXMudGV4dF0pO1xuXG4gICAgY29uc3QgcmVsYXRpdmVUcmF2ZWxEaXJlY3Rpb24gPSB0aGlzLl9nZXRSZWxhdGl2ZVRyYXZlbERpcmVjdGlvbihyb3RhdGlvbik7XG5cbiAgICBpZiAodGhpcy5wcm9wZXJ0eUlkcy5sZW5ndGggfHwgcmVsYXRpdmVUcmF2ZWxEaXJlY3Rpb24pIHtcbiAgICAgIGRlc2NyaXB0aW9uICs9XG4gICAgICAgICcuICcgKyBnZXRJMThuU2VhdFJlc2VydmF0aW9uKCdQTEFDRV9QUk9QRVJUWScsIHRoaXMuX2xhbmd1YWdlLmN1cnJlbnQpLmNvbmNhdCgnOiAnKTtcblxuICAgICAgZGVzY3JpcHRpb24gKz0gW3JlbGF0aXZlVHJhdmVsRGlyZWN0aW9uLCAuLi50aGlzLnByb3BlcnR5SWRzXVxuICAgICAgICAubWFwKChwcm9wZXJ0eUlkKSA9PlxuICAgICAgICAgIGdldEkxOG5TZWF0UmVzZXJ2YXRpb24oJ1BMQUNFX1BST1BFUlRJRVMuJyArIHByb3BlcnR5SWQsIHRoaXMuX2xhbmd1YWdlLmN1cnJlbnQpLFxuICAgICAgICApXG4gICAgICAgIC5maWx0ZXIoKHZhbHVlKSA9PiB2YWx1ZSlcbiAgICAgICAgLmpvaW4oJywgJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRlc2NyaXB0aW9uO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0UmVsYXRpdmVUcmF2ZWxEaXJlY3Rpb24oXG4gICAgcm90YXRpb25WYWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICApOiBUcmF2ZWxEaXJlY3Rpb25JMThuS2V5IHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoXG4gICAgICAhdGhpcy50cmF2ZWxEaXJlY3Rpb24gfHxcbiAgICAgIHRoaXMudHJhdmVsRGlyZWN0aW9uID09PSAnTk9ORScgfHxcbiAgICAgIHRoaXMucGxhY2VUeXBlICE9PSAnU0VBVCcgfHxcbiAgICAgICFyb3RhdGlvblZhbHVlXG4gICAgKVxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICBjb25zdCByb3RhdGlvbiA9IE51bWJlcihyb3RhdGlvblZhbHVlKTtcblxuICAgIGlmIChyb3RhdGlvbiA9PT0gOTAgfHwgcm90YXRpb24gPT09IDI3MCkge1xuICAgICAgcmV0dXJuICdUUkFWRUxfRElSRUNUSU9OX1RSQU5TVkVSU0VMWSc7XG4gICAgfVxuXG4gICAgY29uc3QgaW5EaXJlY3Rpb24gPVxuICAgICAgKHJvdGF0aW9uID09PSAwICYmIHRoaXMudHJhdmVsRGlyZWN0aW9uID09PSAnUklHSFQnKSB8fFxuICAgICAgKHJvdGF0aW9uID09PSAxODAgJiYgdGhpcy50cmF2ZWxEaXJlY3Rpb24gPT09ICdMRUZUJyk7XG5cbiAgICBpZiAoaW5EaXJlY3Rpb24pIHtcbiAgICAgIHJldHVybiAnVFJBVkVMX0RJUkVDVElPTl9JTl9ESVJFQ1RJT04nO1xuICAgIH0gZWxzZSBpZiAocm90YXRpb24gPT09IDAgfHwgcm90YXRpb24gPT09IDE4MCkge1xuICAgICAgcmV0dXJuICdUUkFWRUxfRElSRUNUSU9OX0lOX09QUE9TSVRFX0RJUkVDVElPTic7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qKiBJZiB0aGUgcGxhY2Ugc2VsZWN0YWJsZSwgd2UgZW1pdCB0aGUgcGxhY2VTZWxlY3Rpb24gb2JqZWN0IHdoaWNoIGNvbnRhaW5zIGluZm9zIHRvIHRoZSBwbGFjZSBzdGF0ZSAqL1xuICBwcml2YXRlIF9zZWxlY3RQbGFjZSgpOiB2b2lkIHtcbiAgICBjb25zdCBzZWxlY3RhYmxlID0gKHRoaXMuc3RhdGUgPT09ICdGUkVFJyB8fCB0aGlzLnN0YXRlID09PSAnU0VMRUNURUQnKSAmJiAhdGhpcy5wcmV2ZW50Q2xpY2s7XG5cbiAgICBpZiAoc2VsZWN0YWJsZSkge1xuICAgICAgdGhpcy5zdGF0ZSA9IHRoaXMuc3RhdGUgPT09ICdGUkVFJyA/ICdTRUxFQ1RFRCcgOiAnRlJFRSc7XG4gICAgICBjb25zdCBwbGFjZVNlbGVjdGlvbjogUGxhY2VTZWxlY3Rpb24gPSB7XG4gICAgICAgIGlkOiB0aGlzLmlkLFxuICAgICAgICBkZWNrSW5kZXg6IHRoaXMuZGVja0luZGV4LFxuICAgICAgICBjb2FjaEluZGV4OiB0aGlzLmNvYWNoSW5kZXgsXG4gICAgICAgIG51bWJlcjogdGhpcy50ZXh0LFxuICAgICAgICBzdGF0ZTogdGhpcy5zdGF0ZSxcbiAgICAgICAgcGxhY2VUeXBlOiB0aGlzLnBsYWNlVHlwZSxcbiAgICAgIH07XG5cbiAgICAgIC8qKlxuICAgICAgICogQHR5cGUge0N1c3RvbUV2ZW50PFBsYWNlU2VsZWN0aW9uPn1cbiAgICAgICAqIEVtaXRzIHdoZW4gYSBwbGFjZSB3YXMgc2VsZWN0ZWQgdmlhIHVzZXIgaW50ZXJhY3Rpb24gYW5kIHJldHVybnMgYVxuICAgICAgICogUGxhY2VTZWxlY3Rpb24gb2JqZWN0IHdpdGggbmVjZXNzYXJ5IHBsYWNlIGluZm9ybWF0aW9uLlxuICAgICAgICovXG4gICAgICB0aGlzLmRpc3BhdGNoRXZlbnQoXG4gICAgICAgIG5ldyBDdXN0b21FdmVudDxQbGFjZVNlbGVjdGlvbj4oJ3NlbGVjdHBsYWNlJywge1xuICAgICAgICAgIGRldGFpbDogcGxhY2VTZWxlY3Rpb24sXG4gICAgICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgICAgICBjb21wb3NlZDogdHJ1ZSxcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgIH1cbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLXNlYXQtcmVzZXJ2YXRpb24tcGxhY2UtY29udHJvbCc6IFNiYlNlYXRSZXNlcnZhdGlvblBsYWNlQ29udHJvbEVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUNxQkEsaUNBQWlDLFFBQVE7Ozs7SUFVNUIsK0NBQXFDO21CQUFTOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2NBQTlDLDhDQUE4QyxZQUFvQjs7OzRCQVE1RSxXQUFXLEVBQ1gsU0FBUyxFQUFFLFdBQVcsUUFBUSxDQUFDLENBQUE7d0JBSS9CLFdBQVcsRUFDWCxTQUFTO0lBQUUsV0FBVztJQUFTLFNBQVM7SUFBTSxDQUFDLENBQUE7a0NBSS9DLFNBQVMsRUFBRSxXQUFXLG9CQUFvQixDQUFDLENBQUE7OEJBSTNDLFNBQVM7SUFBRSxXQUFXO0lBQWUsTUFBTTtJQUFPLENBQUMsQ0FBQTt1QkFJbkQsV0FBVyxFQUNYLFNBQVMsRUFBRSxXQUFXLFFBQVEsQ0FBQyxDQUFBOzRCQUkvQixXQUFXLEVBQ1gsU0FBUztJQUFFLFdBQVc7SUFBYyxNQUFNO0lBQVEsQ0FBQyxDQUFBOzZCQUluRCxXQUFXLEVBQ1gsU0FBUztJQUFFLFdBQVc7SUFBZSxNQUFNO0lBQVEsQ0FBQyxDQUFBOytCQUlwRCxXQUFXLEVBQ1gsU0FBUztJQUFFLFdBQVc7SUFBaUIsTUFBTTtJQUFTLENBQUMsQ0FBQTsyQkFJdkQsV0FBVyxFQUNYLFNBQVMsRUFBRSxXQUFXLFlB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