/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[2]!./node_modules/resolve-url-loader/index.js??ruleSet[1].rules[4].oneOf[1].use[3]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[4]!./assets/scss/content-blocks/cb_hero.scss ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
@charset "UTF-8";
.shadow-md {
  box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.16);
}
/**
 * Program Box Item Component
 * Shared styles for program box items used across hero and programbox content blocks
 *
 * Usage: @include program-box-item($block);
 *
 * @param {string} $block - The BEM block class name
 */
/**
 * Alternative: Individual mixins for more granular control
 */
/**
 * Reusable copyright overlay component
 *
 * Usage:
 * <div class="copyright">© 2024 Photographer Name</div>
 * <div class="copyright copyright--top-left">© 2024 Photographer Name</div>
 * <div class="copyright copyright--masonry">© 2024 Photographer Name</div>
 */
.copyright {
  position: absolute;
  background-color: rgba(0, 0, 0, 0.65);
  color: #ffffff;
  padding: 2px 6px;
  font-size: 0.75rem;
  border-radius: 2px;
  line-height: 1.2;
  z-index: 10;
  pointer-events: none;
  min-width: -moz-max-content;
  min-width: max-content;
  bottom: 8px;
  right: 8px;
}
.copyright--top-right {
  top: 8px;
  right: 8px;
  bottom: auto;
}
.copyright--top-left {
  top: 8px;
  left: 8px;
  right: auto;
  bottom: auto;
}
.copyright--bottom-left {
  bottom: 8px;
  left: 8px;
  right: auto;
}
.copyright--edge, .copyright--masonry, .copyright--collage {
  bottom: 0;
  right: 0;
  border-radius: 0;
  white-space: nowrap;
}
.copyright--modal {
  position: absolute;
  right: 0;
  top: -22px;
  bottom: auto;
  display: block;
  padding: 0.25rem 0.5rem;
  margin: 0;
  font-weight: 400;
}
@media (min-width: 768px) {
  .copyright--modal {
    font-size: 1.25rem;
    top: -32px;
  }
}
.copyright--light {
  background-color: rgba(255, 255, 255, 0.9);
  color: #000000;
}
.copyright--dark {
  background-color: rgba(0, 0, 0, 0.8);
  color: #ffffff;
}
.copyright--transparent {
  background-color: transparent;
  text-shadow: 0 0 4px rgba(0, 0, 0, 0.8);
}
.copyright--large {
  font-size: 0.875rem;
  padding: 4px 8px;
}
@media (max-width: 639px) {
  .copyright--hide-mobile {
    display: none;
  }
}
.copyright--hover-show {
  opacity: 0;
  transition: opacity 0.3s ease;
}
*:hover > .copyright--hover-show, *:focus-within > .copyright--hover-show {
  opacity: 1;
}
.ce-igelb_hero__wrapper {
  display: grid;
  grid-template-areas: "hero-area";
  grid-template-columns: 1fr;
  grid-template-rows: 1fr;
  background-color: var(--color-black, #000000);
}
.ce-igelb_hero__background-image {
  grid-area: hero-area;
  z-index: 2;
  position: relative;
}
.ce-igelb_hero__background-image::before {
  content: "";
  position: absolute;
  z-index: 2;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.45);
}
.ce-igelb_hero__background-image img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
  position: relative;
  z-index: 1;
}
.ce-igelb_hero__content {
  grid-area: hero-area;
  z-index: 3;
}
.ce-igelb_hero h2.ce-igelb_hero__header {
  color: #ffffff;
  margin: 0 auto;
  max-width: 40ch;
  text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.7);
}
.ce-igelb_hero__item {
  padding: 1.75rem;
  box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.16);
}
.ce-igelb_hero__item-icon {
  color: var(--color-secondary, #ffcc00);
}
.ce-igelb_hero__item-icon, .ce-igelb_hero__item-header {
  transition: all 0.3s ease-in-out;
}
.ce-igelb_hero__item-header {
  text-align: center;
  width: 100%;
}
.ce-igelb_hero__item-bodytext {
  text-align: center;
  width: 100%;
}
.ce-igelb_hero__item-bodytext > p {
  text-align: center;
}
.ce-igelb_hero a.ce-igelb_hero__link:hover .ce-igelb_hero__item-icon,
.ce-igelb_hero a.ce-igelb_hero__link:focus .ce-igelb_hero__item-icon {
  color: var(--color-black, #000000);
}
.ce-igelb_hero a.ce-igelb_hero__link:hover h3.ce-igelb_hero__item-header,
.ce-igelb_hero a.ce-igelb_hero__link:focus h3.ce-igelb_hero__item-header {
  text-decoration: underline;
}
.ce-igelb_hero a.ce-igelb_hero__link:focus {
  outline: 2px solid var(--color-primary, #009ddf);
  outline-offset: 2px;
}
@media (prefers-reduced-motion: reduce) {
  .ce-igelb_hero__item-icon,
  .ce-igelb_hero__item-header {
    transition: none;
  }
}
@media (forced-colors: active) {
  a.ce-igelb_hero__link:focus {
    outline: 2px solid ButtonText;
  }
}

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2JfaGVyby5jc3MiLCJtYXBwaW5ncyI6Ijs7O0FBQUEsZ0JBQWdCO0FDNkNoQjtFQXRCUSwyQ0FoQkg7QURKTDtBRUNBOzs7Ozs7O0VBQUE7QUF5RkE7O0VBQUE7QUN6RkE7Ozs7Ozs7RUFBQTtBQTBCQTtFQUNJO0VBQ0EscUNDYmU7RURjZixjQ2pCVTtFRGtCVjtFQUNBLGtCQWhCa0I7RUFpQmxCLGtCQWRzQjtFQWV0QjtFQUNBO0VBQ0E7RUFDQTtFQUFBO0VBRUEsV0FuQmdCO0VBb0JoQixVQXBCZ0I7QUhjcEI7QUdhSTtFQUNJLFFBNUJZO0VBNkJaLFVBN0JZO0VBOEJaO0FIWFI7QUdlSTtFQUNJLFFBbkNZO0VBb0NaLFNBcENZO0VBcUNaO0VBQ0E7QUhiUjtBR2lCSTtFQUNJLFdBM0NZO0VBNENaLFNBNUNZO0VBNkNaO0FIZlI7QUdtQkk7RUFHSTtFQUNBO0VBQ0E7RUFDQTtBSG5CUjtBR3NCSTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUhwQlI7QUs1Q0k7RUZ3REE7SUFXUTtJQUNBO0VIbkJWO0FBQ0Y7QUcyQkk7RUFDSTtFQUNBLGNDdkZNO0FKOERkO0FHNkJJO0VBQ0k7RUFDQSxjQzlGTTtBSm1FZDtBRytCSTtFQUNJO0VBQ0E7QUg3QlI7QUdpQ0k7RUFDSTtFQUNBO0FIL0JSO0FLdkRJO0VGMEZBO0lBRVE7RUhqQ1Y7QUFDRjtBR3FDSTtFQUNJO0VBQ0E7QUhuQ1I7QUdxQ1E7RUFFSTtBSHBDWjtBQTFGSTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUE2RlI7QUExRkk7RUFDSTtFQUNBO0VBQ0E7QUE0RlI7QUEzRlE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBNkZaO0FBM0ZRO0VBQ0k7RUFDQTtFQUNBO0tBQUE7RUFDQTtFQUNBO0VBQ0E7QUE2Rlo7QUF6Rkk7RUFDSTtFQUNBO0FBMkZSO0FBeEZJO0VBQ0ksY0luQ007RUpvQ047RUFDQTtFQUNBO0FBMEZSO0FFeEhRO0VBQ0k7RUFDQSwyQ0RuQlA7QUQ4SUw7QUV4SFE7RUFDSSxzQ0FaVTtBRnNJdEI7QUV0SFE7RUFFSTtBRnVIWjtBRXBIUTtFQUNJO0VBQ0E7QUZzSFo7QUVuSFE7RUFDSTtFQUNBO0FGcUhaO0FFbkhZO0VBQ0k7QUZxSGhCO0FFMUdZOztFQUNJLGtDQTFDWTtBRnVKNUI7QUUxR1k7O0VBQ0k7QUY2R2hCO0FFeEdRO0VBQ0k7RUFDQTtBRjBHWjtBRXJHSTtFQUVJOztJQUVJO0VGdUdWO0FBQ0Y7QUVuR0k7RUFDSTtJQUNJO0VGcUdWO0FBQ0YsQyIsInNvdXJjZXMiOlsid2VicGFjazovL2p1Z2VuZC1mdWVyLWV1cm9wYS8uL2Fzc2V0cy9zY3NzL2NvbnRlbnQtYmxvY2tzL2NiX2hlcm8uc2NzcyIsIndlYnBhY2s6Ly9qdWdlbmQtZnVlci1ldXJvcGEvLi9hc3NldHMvc2Nzcy9nbG9iYWwvX3NoYWRvd3Muc2NzcyIsIndlYnBhY2s6Ly9qdWdlbmQtZnVlci1ldXJvcGEvLi9hc3NldHMvc2Nzcy9jb21wb25lbnRzL19wcm9ncmFtLWJveC1pdGVtLnNjc3MiLCJ3ZWJwYWNrOi8vanVnZW5kLWZ1ZXItZXVyb3BhLy4vYXNzZXRzL3Njc3MvY29tcG9uZW50cy9fY29weXJpZ2h0LnNjc3MiLCJ3ZWJwYWNrOi8vanVnZW5kLWZ1ZXItZXVyb3BhLy4vYXNzZXRzL3Njc3MvZ2xvYmFsL19jb2xvcnMuc2NzcyIsIndlYnBhY2s6Ly9qdWdlbmQtZnVlci1ldXJvcGEvLi9hc3NldHMvc2Nzcy9nbG9iYWwvX2JyZWFrcG9pbnRzLnNjc3MiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gYXNzZXRzL3Njc3MvY29udGVudC1ibG9ja3MvY2JfaGVyby5zY3NzXG5AdXNlICcuLi9nbG9iYWwvY29sb3JzJyBhcyBjb2xvcnM7XG5AdXNlICcuLi9jb21wb25lbnRzL3Byb2dyYW0tYm94LWl0ZW0nIGFzIHByb2dyYW0tYm94O1xuQHVzZSAnLi4vY29tcG9uZW50cy9jb3B5cmlnaHQnO1xuXG4vLyBCbG9jayBuYW1lIGZvciBCRU0gbWV0aG9kb2xvZ3lcbiRibG9jazogJ2NlLWlnZWxiX2hlcm8nO1xuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gTWFpbiBjb21wb25lbnQgc3R5bGVzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLiN7JGJsb2NrfSB7XG5cbiAgICAmX193cmFwcGVyIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1hcmVhczogXCJoZXJvLWFyZWFcIjtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1ibGFjaywgY29sb3JzLiRjb2xvci1ibGFjayk7XG4gICAgfVxuXG4gICAgJl9fYmFja2dyb3VuZC1pbWFnZSB7XG4gICAgICAgIGdyaWQtYXJlYTogaGVyby1hcmVhO1xuICAgICAgICB6LWluZGV4OiAyO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNDUpOyAvLyBTZW1pLXRyYW5zcGFyZW50IG92ZXJsYXlcbiAgICAgICAgfVxuICAgICAgICBpbWcge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2NvbnRlbnQge1xuICAgICAgICBncmlkLWFyZWE6IGhlcm8tYXJlYTtcbiAgICAgICAgei1pbmRleDogMztcbiAgICB9XG5cbiAgICBoMi4jeyRibG9ja31fX2hlYWRlciB7XG4gICAgICAgIGNvbG9yOiBjb2xvcnMuJGNvbG9yLXdoaXRlO1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgbWF4LXdpZHRoOiA0MGNoO1xuICAgICAgICB0ZXh0LXNoYWRvdzogMnB4IDJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjcpO1xuICAgIH1cbn1cblxuLy8gSW5jbHVkZSBzaGFyZWQgcHJvZ3JhbSBib3ggaXRlbSBzdHlsZXNcbkBpbmNsdWRlIHByb2dyYW0tYm94LnByb2dyYW0tYm94LWl0ZW0oJGJsb2NrKTtcbiIsIi8vIGFzc2V0cy9zY3NzL2dsb2JhbC9fc2hhZG93cy5zY3NzXG5cbi8vIFNoYWRvdyB0b2tlbiBkZWZpbml0aW9uc1xuLy8gQmFzZWQgb24gVGFpbHdpbmQncyBzaGFkb3cgc2NhbGUgZm9yIGNvbnNpc3RlbmN5XG4vLyBDdXJyZW50bHkgdXNpbmcgbWQgYXMgZGVmYXVsdCwgZXh0ZW5zaWJsZSBmb3IgZnV0dXJlIHNoYWRvdyB2YXJpYW50c1xuXG4vLyBTaGFkb3cgdmFsdWVzXG4kbWQ6IDJweCAycHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNik7XG4kZGVmYXVsdDogJG1kO1xuJHNoYWRvdy1kZWZhdWx0OiAkZGVmYXVsdDtcblxuLy8gRnV0dXJlIHNoYWRvdyBkZWZpbml0aW9ucyBjYW4gYmUgYWRkZWQgaGVyZTpcbi8vICRzbTogMCAxcHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjA1KTtcbi8vICRsZzogMCAxMHB4IDE1cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuMSksIDAgNHB4IDZweCAtNHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbi8vICR4bDogMCAyMHB4IDI1cHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMSksIDAgOHB4IDEwcHggLTZweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4vLyAkMnhsOiAwIDI1cHggNTBweCAtMTJweCByZ2JhKDAsIDAsIDAsIDAuMjUpO1xuLy8gJGlubmVyOiBpbnNldCAwIDJweCA0cHggMCByZ2JhKDAsIDAsIDAsIDAuMDUpO1xuLy8gJG5vbmU6IG5vbmU7XG5cbi8vIE1peGluIGZvciBlYXN5IGFwcGxpY2F0aW9uXG4vLyBVc2FnZTogQGluY2x1ZGUgc2hhZG93cy5hcHBseSgnbWQnKSBvciBAaW5jbHVkZSBzaGFkb3dzLmFwcGx5KCdkZWZhdWx0JylcbkBtaXhpbiBhcHBseSgkc2l6ZTogJ2RlZmF1bHQnKSB7XG4gICAgQGlmICRzaXplID09ICdtZCcge1xuICAgICAgICBib3gtc2hhZG93OiAkbWQ7XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIGJveC1zaGFkb3c6ICRkZWZhdWx0O1xuICAgIH1cblxuICAgIC8vIEZ1dHVyZSBzaXplIG9wdGlvbnMgY2FuIGJlIGFkZGVkIGhlcmU6XG4gICAgLy8gQGVsc2UgaWYgJHNpemUgPT0gJ3NtJyB7XG4gICAgLy8gICAgIGJveC1zaGFkb3c6ICRzbTtcbiAgICAvLyB9IEBlbHNlIGlmICRzaXplID09ICdsZycge1xuICAgIC8vICAgICBib3gtc2hhZG93OiAkbGc7XG4gICAgLy8gfSBAZWxzZSBpZiAkc2l6ZSA9PSAneGwnIHtcbiAgICAvLyAgICAgYm94LXNoYWRvdzogJHhsO1xuICAgIC8vIH0gQGVsc2UgaWYgJHNpemUgPT0gJzJ4bCcge1xuICAgIC8vICAgICBib3gtc2hhZG93OiAkMnhsO1xuICAgIC8vIH0gQGVsc2UgaWYgJHNpemUgPT0gJ2lubmVyJyB7XG4gICAgLy8gICAgIGJveC1zaGFkb3c6ICRpbm5lcjtcbiAgICAvLyB9IEBlbHNlIGlmICRzaXplID09ICdub25lJyB7XG4gICAgLy8gICAgIGJveC1zaGFkb3c6ICRub25lO1xuICAgIC8vIH1cbn1cblxuXG4uc2hhZG93LW1kIHtcbiAgICBAaW5jbHVkZSBhcHBseSgnbWQnKTtcbn1cbiIsIi8vIGFzc2V0cy9zY3NzL2NvbXBvbmVudHMvX3Byb2dyYW0tYm94LWl0ZW0uc2Nzc1xuQHVzZSAnLi4vZ2xvYmFsL2NvbG9ycycgYXMgY29sb3JzO1xuQHVzZSAnLi4vZ2xvYmFsL3NoYWRvd3MnIGFzIHNoYWRvd3M7XG5cbi8qKlxuICogUHJvZ3JhbSBCb3ggSXRlbSBDb21wb25lbnRcbiAqIFNoYXJlZCBzdHlsZXMgZm9yIHByb2dyYW0gYm94IGl0ZW1zIHVzZWQgYWNyb3NzIGhlcm8gYW5kIHByb2dyYW1ib3ggY29udGVudCBibG9ja3NcbiAqXG4gKiBVc2FnZTogQGluY2x1ZGUgcHJvZ3JhbS1ib3gtaXRlbSgkYmxvY2spO1xuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSAkYmxvY2sgLSBUaGUgQkVNIGJsb2NrIGNsYXNzIG5hbWVcbiAqL1xuQG1peGluIHByb2dyYW0tYm94LWl0ZW0oJGJsb2NrKSB7XG4gICAgLy8gVmlzdWFsIGNvbmZpZ3VyYXRpb25cbiAgICAkdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4zcztcbiAgICAkdHJhbnNpdGlvbi1lYXNpbmc6IGVhc2UtaW4tb3V0O1xuXG4gICAgLy8gQ29sb3JzXG4gICAgJGl0ZW0taWNvbi1jb2xvcjogdmFyKC0tY29sb3Itc2Vjb25kYXJ5LCBjb2xvcnMuJGNvbG9yLWpmZS15ZWxsb3cpO1xuICAgICRpdGVtLWljb24taG92ZXItY29sb3I6IHZhcigtLWNvbG9yLWJsYWNrLCBjb2xvcnMuJGNvbG9yLWJsYWNrKTtcblxuICAgICRpdGVtLWJveC1zaGFkb3c6IHNoYWRvd3MuJHNoYWRvdy1kZWZhdWx0O1xuXG4gICAgLiN7JGJsb2NrfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMS43NXJlbTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6ICRpdGVtLWJveC1zaGFkb3c7XG4gICAgICAgIH1cbiAgICAgICAgLy8gUHJvZ3JhbSBib3ggaXRlbSBpY29uIHN0eWxpbmdcbiAgICAgICAgJl9faXRlbS1pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkaXRlbS1pY29uLWNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVHJhbnNpdGlvbiBlZmZlY3RzIGZvciBpbnRlcmFjdGl2ZSBlbGVtZW50c1xuICAgICAgICAmX19pdGVtLWljb24sXG4gICAgICAgICZfX2l0ZW0taGVhZGVyIHtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAkdHJhbnNpdGlvbi1kdXJhdGlvbiAkdHJhbnNpdGlvbi1lYXNpbmc7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLWhlYWRlciB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tYm9keXRleHQge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgICAgID5wIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIC8vIG9wdGlvbmFsIHN0eWxlcyBmb3IgdGhlIGxpbmsgd3JhcHBlciBjYW4gYmUgYWRkZWQgaGVyZVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gSG92ZXIgYW5kIGZvY3VzIHN0YXRlcyBmb3IgdGhlIGxpbmsgd3JhcHBlclxuICAgICAgICBhLiN7JGJsb2NrfV9fbGluazpob3ZlcixcbiAgICAgICAgYS4jeyRibG9ja31fX2xpbms6Zm9jdXMge1xuICAgICAgICAgICAgLiN7JGJsb2NrfV9faXRlbS1pY29uIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGl0ZW0taWNvbi1ob3Zlci1jb2xvcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaDMuI3skYmxvY2t9X19pdGVtLWhlYWRlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBGb2N1cyBzdGF0ZSBhY2Nlc3NpYmlsaXR5XG4gICAgICAgIGEuI3skYmxvY2t9X19saW5rOmZvY3VzIHtcbiAgICAgICAgICAgIG91dGxpbmU6IDJweCBzb2xpZCB2YXIoLS1jb2xvci1wcmltYXJ5LCBjb2xvcnMuJGNvbG9yLWpmZS1saWdodGJsdWUpO1xuICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDJweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFJlZHVjZWQgbW90aW9uIHN1cHBvcnRcbiAgICBAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuXG4gICAgICAgIC4jeyRibG9ja31fX2l0ZW0taWNvbixcbiAgICAgICAgLiN7JGJsb2NrfV9faXRlbS1oZWFkZXIge1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIEhpZ2ggY29udHJhc3QgbW9kZSBzdXBwb3J0XG4gICAgQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpIHtcbiAgICAgICAgYS4jeyRibG9ja31fX2xpbms6Zm9jdXMge1xuICAgICAgICAgICAgb3V0bGluZTogMnB4IHNvbGlkIEJ1dHRvblRleHQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qKlxuICogQWx0ZXJuYXRpdmU6IEluZGl2aWR1YWwgbWl4aW5zIGZvciBtb3JlIGdyYW51bGFyIGNvbnRyb2xcbiAqL1xuXG4vLyBNaXhpbiBmb3IgaWNvbiBzdHlsaW5nIG9ubHlcbkBtaXhpbiBwcm9ncmFtLWJveC1pdGVtLWljb24oJGJsb2NrKSB7XG4gICAgLiN7JGJsb2NrfV9faXRlbS1pY29uIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXNlY29uZGFyeSwgY29sb3JzLiRjb2xvci1qZmUteWVsbG93KTtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZS1pbi1vdXQ7XG4gICAgfVxufVxuXG4vLyBNaXhpbiBmb3IgaGVhZGVyIHN0eWxpbmcgb25seVxuQG1peGluIHByb2dyYW0tYm94LWl0ZW0taGVhZGVyKCRibG9jaykge1xuICAgIC4jeyRibG9ja31fX2l0ZW0taGVhZGVyIHtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZS1pbi1vdXQ7XG4gICAgfVxufVxuXG4vLyBNaXhpbiBmb3IgaW50ZXJhY3RpdmUgc3RhdGVzIG9ubHlcbkBtaXhpbiBwcm9ncmFtLWJveC1pdGVtLWludGVyYWN0aW9ucygkYmxvY2spIHtcblxuICAgIGEuI3skYmxvY2t9X19saW5rOmhvdmVyLFxuICAgIGEuI3skYmxvY2t9X19saW5rOmZvY3VzIHtcbiAgICAgICAgLiN7JGJsb2NrfV9faXRlbS1pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1ibGFjaywgY29sb3JzLiRjb2xvci1ibGFjayk7XG4gICAgICAgIH1cblxuICAgICAgICBoMy4jeyRibG9ja31fX2l0ZW0taGVhZGVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYS4jeyRibG9ja31fX2xpbms6Zm9jdXMge1xuICAgICAgICBvdXRsaW5lOiAycHggc29saWQgdmFyKC0tY29sb3ItcHJpbWFyeSwgY29sb3JzLiRjb2xvci1qZmUtbGlnaHRibHVlKTtcbiAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDJweDtcbiAgICB9XG59XG4iLCIvLyBhc3NldHMvc2Nzcy9jb21wb25lbnRzL19jb3B5cmlnaHQuc2Nzc1xuQHVzZSAnLi4vZ2xvYmFsL2NvbG9ycycgYXMgY29sb3JzO1xuQHVzZSAnLi4vZ2xvYmFsL2JyZWFrcG9pbnRzJyBhcyBicDtcblxuLyoqXG4gKiBSZXVzYWJsZSBjb3B5cmlnaHQgb3ZlcmxheSBjb21wb25lbnRcbiAqXG4gKiBVc2FnZTpcbiAqIDxkaXYgY2xhc3M9XCJjb3B5cmlnaHRcIj7CqSAyMDI0IFBob3RvZ3JhcGhlciBOYW1lPC9kaXY+XG4gKiA8ZGl2IGNsYXNzPVwiY29weXJpZ2h0IGNvcHlyaWdodC0tdG9wLWxlZnRcIj7CqSAyMDI0IFBob3RvZ3JhcGhlciBOYW1lPC9kaXY+XG4gKiA8ZGl2IGNsYXNzPVwiY29weXJpZ2h0IGNvcHlyaWdodC0tbWFzb25yeVwiPsKpIDIwMjQgUGhvdG9ncmFwaGVyIE5hbWU8L2Rpdj5cbiAqL1xuXG4vLyBCbG9jayBuYW1lXG4kYmxvY2s6ICdjb3B5cmlnaHQnO1xuXG4vLyBDb25maWd1cmF0aW9uIHZhcmlhYmxlc1xuJGNvcHlyaWdodC1iZy1jb2xvcjogY29sb3JzLiRjb2xvci1vdmVybGF5LW1kICFkZWZhdWx0O1xuJGNvcHlyaWdodC10ZXh0LWNvbG9yOiBjb2xvcnMuJGNvbG9yLXdoaXRlICFkZWZhdWx0O1xuJGNvcHlyaWdodC1mb250LXNpemU6IDAuNzVyZW0gIWRlZmF1bHQ7XG4kY29weXJpZ2h0LXBhZGRpbmcteTogMnB4ICFkZWZhdWx0O1xuJGNvcHlyaWdodC1wYWRkaW5nLXg6IDZweCAhZGVmYXVsdDtcbiRjb3B5cmlnaHQtYm9yZGVyLXJhZGl1czogMnB4ICFkZWZhdWx0O1xuJGNvcHlyaWdodC1zcGFjaW5nOiA4cHggIWRlZmF1bHQ7XG5cblxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gQ29weXJpZ2h0IENvbXBvbmVudFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi4jeyRibG9ja30ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29weXJpZ2h0LWJnLWNvbG9yO1xuICAgIGNvbG9yOiAkY29weXJpZ2h0LXRleHQtY29sb3I7XG4gICAgcGFkZGluZzogJGNvcHlyaWdodC1wYWRkaW5nLXkgJGNvcHlyaWdodC1wYWRkaW5nLXg7XG4gICAgZm9udC1zaXplOiAkY29weXJpZ2h0LWZvbnQtc2l6ZTtcbiAgICBib3JkZXItcmFkaXVzOiAkY29weXJpZ2h0LWJvcmRlci1yYWRpdXM7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICB6LWluZGV4OiAxMDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsgLy8gRG9uJ3QgaW50ZXJmZXJlIHdpdGggY2xpY2tzIG9uIHBhcmVudFxuICAgIG1pbi13aWR0aDogbWF4LWNvbnRlbnQ7XG4gICAgLy8gRGVmYXVsdCBwb3NpdGlvbjogYm90dG9tLXJpZ2h0XG4gICAgYm90dG9tOiAkY29weXJpZ2h0LXNwYWNpbmc7XG4gICAgcmlnaHQ6ICRjb3B5cmlnaHQtc3BhY2luZztcblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy8gUG9zaXRpb24gbW9kaWZpZXJzXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIC8vIFRvcC1yaWdodCBwb3NpdGlvblxuICAgICYtLXRvcC1yaWdodCB7XG4gICAgICAgIHRvcDogJGNvcHlyaWdodC1zcGFjaW5nO1xuICAgICAgICByaWdodDogJGNvcHlyaWdodC1zcGFjaW5nO1xuICAgICAgICBib3R0b206IGF1dG87XG4gICAgfVxuXG4gICAgLy8gVG9wLWxlZnQgcG9zaXRpb25cbiAgICAmLS10b3AtbGVmdCB7XG4gICAgICAgIHRvcDogJGNvcHlyaWdodC1zcGFjaW5nO1xuICAgICAgICBsZWZ0OiAkY29weXJpZ2h0LXNwYWNpbmc7XG4gICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICBib3R0b206IGF1dG87XG4gICAgfVxuXG4gICAgLy8gQm90dG9tLWxlZnQgcG9zaXRpb25cbiAgICAmLS1ib3R0b20tbGVmdCB7XG4gICAgICAgIGJvdHRvbTogJGNvcHlyaWdodC1zcGFjaW5nO1xuICAgICAgICBsZWZ0OiAkY29weXJpZ2h0LXNwYWNpbmc7XG4gICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgIH1cblxuICAgIC8vIEVkZ2UgcG9zaXRpb24gKG5vIHNwYWNpbmcsIG5vIGJvcmRlci1yYWRpdXMpIC0gc2hhcmVkIGJhc2VcbiAgICAmLS1lZGdlLFxuICAgICYtLW1hc29ucnksXG4gICAgJi0tY29sbGFnZSB7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgfVxuICAgIC8vIE1vZGFsL0xpZ2h0Ym94IHBvc2l0aW9uIChvdXRzaWRlIGltYWdlLCBhYm92ZSlcbiAgICAmLS1tb2RhbCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHRvcDogLTIycHg7XG4gICAgICAgIGJvdHRvbTogYXV0bztcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG5cbiAgICAgICAgQGluY2x1ZGUgYnAuYnJlYWtwb2ludCgnbWQnKSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMjVyZW07XG4gICAgICAgICAgICB0b3A6IC0zMnB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyBTdHlsZSBtb2RpZmllcnNcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgLy8gTGlnaHQgYmFja2dyb3VuZCB2YXJpYW50XG4gICAgJi0tbGlnaHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGNvbG9ycy4kY29sb3Itd2hpdGUsIDAuOSk7XG4gICAgICAgIGNvbG9yOiBjb2xvcnMuJGNvbG9yLWJsYWNrO1xuICAgIH1cblxuICAgIC8vIERhcmsgYmFja2dyb3VuZCB2YXJpYW50IChtb3JlIG9wYXF1ZSlcbiAgICAmLS1kYXJrIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShjb2xvcnMuJGNvbG9yLWJsYWNrLCAwLjgpO1xuICAgICAgICBjb2xvcjogY29sb3JzLiRjb2xvci13aGl0ZTtcbiAgICB9XG5cbiAgICAvLyBUcmFuc3BhcmVudCB2YXJpYW50IChzdWJ0bGUpXG4gICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgdGV4dC1zaGFkb3c6IDAgMCA0cHggcmdiYShjb2xvcnMuJGNvbG9yLWJsYWNrLCAwLjgpO1xuICAgIH1cblxuICAgIC8vIExhcmdlciB0ZXh0IHNpemVcbiAgICAmLS1sYXJnZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgICAgIHBhZGRpbmc6IDRweCA4cHg7XG4gICAgfVxuXG4gICAgLy8gSGlkZGVuIG9uIHNtYWxsIHNjcmVlbnNcbiAgICAmLS1oaWRlLW1vYmlsZSB7XG4gICAgICAgIEBpbmNsdWRlIGJwLmJyZWFrcG9pbnQtZG93bignc20nKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2hvdyBvbmx5IG9uIGhvdmVyIChyZXF1aXJlcyBwYXJlbnQgdG8gaGF2ZSBob3ZlciBzdGF0ZSlcbiAgICAmLS1ob3Zlci1zaG93IHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2U7XG5cbiAgICAgICAgKjpob3ZlciA+ICYsXG4gICAgICAgICo6Zm9jdXMtd2l0aGluID4gJiB7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLy8gYXNzZXRzL3Njc3MvX2NvbG9ycy5zY3NzXG5cbi8vIEJhc2UgY29sb3JzIGZyb20gZGVzaWduIGRvY3VtZW50XG4kY29sb3ItamZlLWxpZ2h0Ymx1ZTogIzAwOWRkZjsgICAgICAgICAgLy8gSkZFIGxpZ2h0IGJsdWVcbiRjb2xvci1qZmUteWVsbG93OiAjZmZjYzAwOyAgICAgICAgICAgICAvLyBKRkUgeWVsbG93XG4kY29sb3ItamZlLWFsbW9zdC13aGl0ZTogI2ZhZmFmYTsgICAgICAgIC8vIEpGRSBhbG1vc3Qgd2hpdGUgKGJhY2tncm91bmQgb3B0aW9uKVxuJGNvbG9yLWpmZS1ncmF5OiAjZjNmM2YyOyAgICAgICAgICAgICAgIC8vIEpGRSBncmF5IChiYWNrZ3JvdW5kIG9wdGlvbilcbiRjb2xvci1qZmUtZ3JheS1tZWRpdW06ICNDRkNGQ0Y7ICAgICAgICAvLyBKRkUgbWVkaXVtIGdyYXkgKGZvciBib3JkZXJzIGV0Yy4pXG4kY29sb3ItamZlLWdyYXktZGFyazogcmdiYSgxODksIDE4OSwgMTg5LCAxKTsgLy8gSkZFIGRhcmsgZ3JheSAoZm9yIGRhcmtlciBib3JkZXJzIGV0Yy4pXG4kY29sb3ItamZlLWdyYXktZGFya2VyOnJnYmEoMTA1LCAxMDUsIDEwNSwgMSk7IC8vIEpGRSBkYXJrZXIgZ3JheSAoRm9ybSBkZXNjcmlwdGlvbiB0ZXh0IGV0Yy4pXG4vLyBQcm9ncmFtIHNwZWNpZmljIGNvbG9yc1xuJGNvbG9yLWUtanVnZW5kLWJsdWU6ICMwMDMzOTk7ICAgICAgICAgIC8vIEVyYXNtdXMrIFlvdXRoIGJsdWVcbiRjb2xvci1lc2stbWFnZW50YTogI2U1MDA2YzsgICAgICAgICAgICAvLyBFU0MgbWFnZW50YVxuJGNvbG9yLWUtc3BvcnQtb3JhbmdlOiAjZTM1MzBmOyAgICAgICAgIC8vIEVyYXNtdXMrIFNwb3J0IG9yYW5nZVxuXG4vLyBVdGlsaXR5IGNvbG9yc1xuJGNvbG9yLXdoaXRlOiAjZmZmZmZmOyAgICAgICAgICAgICAgLy8gV2hpdGUgY29sb3IgZm9yIGJhY2tncm91bmRzXG4kY29sb3ItYmxhY2s6ICMwMDAwMDA7ICAgICAgICAgICAgICAvLyBCbGFjayBjb2xvciBmb3IgdGV4dFxuJGNvbG9yLW92ZXJsYXktc206IHJnYmEoMCwgMCwgMCwgMC4zKTtcbiRjb2xvci1vdmVybGF5LW1kOiByZ2JhKDAsIDAsIDAsIDAuNjUpO1xuJGNvbG9yLW92ZXJsYXktbGc6IHJnYmEoMCwgMCwgMCwgMC44NSk7XG5cbi8vIFNlY29uZGFyeSBhbmQgZGVyaXZlZCBjb2xvcnNcbiRjb2xvci1qZmUteWVsbG93LWhvdmVyOiAjRUJCQzAwOyAgICAgICAvLyBIb3ZlciBzdGF0ZSBmb3IgSkZFIHllbGxvd1xuJGNvbG9yLWUtanVnZW5kLWhvdmVyOiAjMDAyYjgwOyAgICAgICAgIC8vIEhvdmVyIHN0YXRlIGZvciBFcmFzbXVzKyBZb3V0aCBibHVlXG4kY29sb3ItZXNrLWhvdmVyOiAjZDAwMDYyOyAgICAgICAgICAgICAgLy8gSG92ZXIgc3RhdGUgZm9yIEVTQyBtYWdlbnRhXG4kY29sb3ItZS1zcG9ydC1ob3ZlcjogI2M5NDkwZDsgICAgICAgICAgLy8gSG92ZXIgc3RhdGUgZm9yIEVyYXNtdXMrIFNwb3J0IG9yYW5nZVxuXG4vLyBFcnJvciBhbmQgd2FybmluZyBjb2xvcnNcbiRjb2xvci1lcnJvcjogI2RmMDAwMDsgICAgICAgICAgICAgICAgLy8gRXJyb3IgY29sb3IgKHJlZClcbiRjb2xvci1lcnJvci1iZzogI2RmMDAwMDFhOyAgICAgICAgICAgICAvLyBFcnJvciBiYWNrZ3JvdW5kIGNvbG9yIChsaWdodCByZWQpXG4kY29sb3Itd2FybmluZzogI2ZmYjMwMDsgICAgICAgICAgICAgIC8vIFdhcm5pbmcgY29sb3IgKHllbGxvdylcbiRjb2xvci13YXJuaW5nLWJnOiAjZmZiMzAwMWE7ICAgICAgICAgIC8vIFdhcm5pbmcgYmFja2dyb3VuZCBjb2xvciAobGlnaHQgeWVsbG93KVxuJGNvbG9yLXN1Y2Nlc3M6ICM5NWRmMDA7ICAgICAgICAgICAgICAvLyBTdWNjZXNzIGNvbG9yIChncmVlbilcbiRjb2xvci1zdWNjZXNzLWJnOiAjOTVkZjAwMWE7ICAgICAgICAgIC8vIFN1Y2Nlc3MgYmFja2dyb3VuZCBjb2xvciAobGlnaHQgZ3JlZW4pXG4iLCIvLyBBVVRPLUdFTkVSQVRFRCBGSUxFIGZyb20gYnVpbGQtYnJlYWtwb2ludHMuanNcbi8vIERPIE5PVCBFRElUIERJUkVDVExZXG5cbi8vIEltcG9ydCBTYXNzIG1hcCBtb2R1bGVcbkB1c2UgXCJzYXNzOm1hcFwiO1xuXG4vLyBCcmVha3BvaW50IHZhbHVlc1xuJGJyZWFrcG9pbnQtc206IDY0MHB4O1xuJGJyZWFrcG9pbnQtbWQ6IDc2OHB4O1xuJGJyZWFrcG9pbnQtbGc6IDEwMjRweDtcbiRicmVha3BvaW50LXhsOiAxMjgwcHg7XG4kYnJlYWtwb2ludC0yeGw6IDE1MzZweDtcblxuLy8gTWFwIGZvciBwcm9ncmFtbWF0aWMgYWNjZXNzXG4kYnJlYWtwb2ludHM6IChcbiAgJ3NtJzogJGJyZWFrcG9pbnQtc20sXG4gICdtZCc6ICRicmVha3BvaW50LW1kLFxuICAnbGcnOiAkYnJlYWtwb2ludC1sZyxcbiAgJ3hsJzogJGJyZWFrcG9pbnQteGwsXG4gICcyeGwnOiAkYnJlYWtwb2ludC0yeGxcbik7XG5cbi8vIE1peGluIGZvciBlYXN5IG1lZGlhIHF1ZXJpZXMgYmFzZWQgb24gZGVmaW5lZCBicmVha3BvaW50c1xuQG1peGluIGJyZWFrcG9pbnQoJHBvaW50KSB7XG4gIEBpZiBtYXAuaGFzLWtleSgkYnJlYWtwb2ludHMsICRwb2ludCkge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiBtYXAuZ2V0KCRicmVha3BvaW50cywgJHBvaW50KSkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAd2FybiBcIkJyZWFrcG9pbnQgJyN7JHBvaW50fScgaXMgbm90IGRlZmluZWQgaW4gJGJyZWFrcG9pbnRzIG1hcC5cIjtcbiAgfVxufVxuXG4vLyBNaXhpbiBmb3IgbWF4LXdpZHRoIG1lZGlhIHF1ZXJpZXMgKHNtYWxsZXIgdGhhbiBhIGJyZWFrcG9pbnQpXG5AbWl4aW4gYnJlYWtwb2ludC1kb3duKCRwb2ludCkge1xuICBAaWYgbWFwLmhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkcG9pbnQpIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogbWFwLmdldCgkYnJlYWtwb2ludHMsICRwb2ludCkgLSAxcHgpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgQHdhcm4gXCJCcmVha3BvaW50ICcjeyRwb2ludH0nIGlzIG5vdCBkZWZpbmVkIGluICRicmVha3BvaW50cyBtYXAuXCI7XG4gIH1cbn1cblxuLy8gTWl4aW4gZm9yIGNyZWF0aW5nIHN0eWxlcyBiZXR3ZWVuIHR3byBicmVha3BvaW50c1xuQG1peGluIGJyZWFrcG9pbnQtYmV0d2VlbigkbWluLCAkbWF4KSB7XG4gIEBpZiBtYXAuaGFzLWtleSgkYnJlYWtwb2ludHMsICRtaW4pIGFuZCBtYXAuaGFzLWtleSgkYnJlYWtwb2ludHMsICRtYXgpIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogbWFwLmdldCgkYnJlYWtwb2ludHMsICRtaW4pKSBhbmQgKG1heC13aWR0aDogbWFwLmdldCgkYnJlYWtwb2ludHMsICRtYXgpIC0gMXB4KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEB3YXJuIFwiQnJlYWtwb2ludCAnI3skbWlufScgb3IgJyN7JG1heH0nIGlzIG5vdCBkZWZpbmVkIGluICRicmVha3BvaW50cyBtYXAuXCI7XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=*/