/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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_image_gallery_lightbox.scss ***!
  \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
@charset "UTF-8";
.shadow-md {
  box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.16);
}
/**
 * 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;
}
/*
 * Swiper CSS will be added via JavaScript import:
 * import 'swiper/css';
 * import 'swiper/css/navigation';
 * import 'swiper/css/pagination';
 */
.ce-igelb_imagegallerylightbox__modal {
  display: none;
}
.ce-igelb_imagegallerylightbox__modal.is-open {
  display: block;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1000;
  overflow-y: auto;
}
.ce-igelb_imagegallerylightbox__modal.micromodal-slide .ce-igelb_imagegallerylightbox__overlay {
  transition: opacity 0.3s ease;
  opacity: 0;
}
.ce-igelb_imagegallerylightbox__modal.micromodal-slide.is-open .ce-igelb_imagegallerylightbox__overlay {
  opacity: 1;
}
.ce-igelb_imagegallerylightbox__modal.micromodal-slide .ce-igelb_imagegallerylightbox__container {
  transition: transform 0.3s ease;
  transform: translateY(20px);
}
.ce-igelb_imagegallerylightbox__modal.micromodal-slide.is-open .ce-igelb_imagegallerylightbox__container {
  transform: translateY(0);
}
.ce-igelb_imagegallerylightbox__overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.65);
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 1rem;
  z-index: 1000;
}
@media (max-width: 639px) {
  .ce-igelb_imagegallerylightbox__overlay {
    padding: 0.5rem;
  }
}
.ce-igelb_imagegallerylightbox__container {
  background-color: transparent;
  padding: 0;
  max-width: 90vw;
  max-height: 90vh;
  width: 100%;
  border-radius: 0;
  overflow: visible;
  position: relative;
  z-index: 1001;
  display: flex;
  flex-direction: column;
}
@media (min-width: 1024px) {
  .ce-igelb_imagegallerylightbox__container {
    max-width: 80vw;
  }
}
@media (min-width: 1280px) {
  .ce-igelb_imagegallerylightbox__container {
    max-width: 1000px;
    max-height: 85vh;
  }
}
.ce-igelb_imagegallerylightbox__header {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  padding: 1.75rem 0;
}
.ce-igelb_imagegallerylightbox__content {
  flex-grow: 1;
  display: flex;
  justify-content: center;
  align-items: center;
  overflow: visible;
  position: relative;
}
.ce-igelb_imagegallerylightbox__close {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  background-color: var(--color-jfe-yellow, #ffcc00);
  color: #000000;
  border: 0;
  padding: 0.5rem;
  border-radius: 50%;
  width: 3.5rem;
  height: 3.5rem;
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 0;
  cursor: pointer;
  font-size: 1.75rem;
  line-height: 1;
  transition: color 0.3s ease;
  transform: scale3d(1, 1, 1);
}
.ce-igelb_imagegallerylightbox__close:hover, .ce-igelb_imagegallerylightbox__close:focus {
  outline-offset: 2px;
  outline: 2px solid var(--color-jfe-yellow, #ffcc00);
}
.ce-igelb_imagegallerylightbox__swiper {
  width: 100%;
  height: 100%;
}
.ce-igelb_imagegallerylightbox__swiper .swiper-slide {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  padding: 0;
  height: auto;
  max-height: calc(90vh - 64px);
}
.ce-igelb_imagegallerylightbox__swiper .swiper-slide img {
  max-width: 100%;
  max-height: 100%;
  width: 100%;
  height: auto;
  -o-object-fit: contain;
     object-fit: contain;
}
.ce-igelb_imagegallerylightbox__swiper .swiper-slide figcaption {
  margin-top: 0;
  position: relative;
  color: #ffffff;
  text-align: left;
  font-size: 1rem;
  font-weight: 700;
  width: 100%;
  padding: 1rem 0;
  min-height: 8rem;
}
@media (min-width: 768px) {
  .ce-igelb_imagegallerylightbox__swiper .swiper-slide figcaption {
    font-size: 1.25rem;
  }
}
.ce-igelb_imagegallerylightbox__swiper-picture {
  aspect-ratio: 16/9;
  display: flex;
  justify-content: center;
  align-items: center;
}
.ce-igelb_imagegallerylightbox__swiper ~ .swiper-button-next,
.ce-igelb_imagegallerylightbox__swiper ~ .swiper-button-prev {
  background-color: var(--color-jfe-yellow, #ffcc00);
  color: #000000;
  border-radius: 0;
  width: 2.5rem;
  height: 2.5rem;
  transition: background-color 0.3s ease;
  transform: translateY(calc(-50% - 2.75rem));
}
.ce-igelb_imagegallerylightbox__swiper ~ .swiper-button-next:hover, .ce-igelb_imagegallerylightbox__swiper ~ .swiper-button-next:focus,
.ce-igelb_imagegallerylightbox__swiper ~ .swiper-button-prev:hover,
.ce-igelb_imagegallerylightbox__swiper ~ .swiper-button-prev:focus {
  outline: 2px solid var(--color-jfe-yellow, #ffcc00);
  outline-offset: 2px;
}
.ce-igelb_imagegallerylightbox__swiper ~ .swiper-button-next:after,
.ce-igelb_imagegallerylightbox__swiper ~ .swiper-button-prev:after {
  content: none;
}
@media (min-width: 640px) {
  .ce-igelb_imagegallerylightbox__swiper ~ .swiper-button-next,
  .ce-igelb_imagegallerylightbox__swiper ~ .swiper-button-prev {
    width: 3rem;
    height: 3rem;
  }
}
@media (min-width: 1280px) {
  .ce-igelb_imagegallerylightbox__swiper ~ .swiper-button-next,
  .ce-igelb_imagegallerylightbox__swiper ~ .swiper-button-prev {
    bottom: 60px;
    top: initial;
    transform: translateY(0);
  }
}
@media (min-width: 1280px) {
  .ce-igelb_imagegallerylightbox__swiper ~ .swiper-button-prev {
    left: initial;
    right: 84px;
  }
}
@media (min-width: 1280px) {
  .ce-igelb_imagegallerylightbox__swiper ~ .swiper-button-next {
    left: initial;
    right: 4px;
  }
}
.ce-igelb_imagegallerylightbox__gallery {
  width: 100%;
  margin-bottom: 2rem;
}
.ce-igelb_imagegallerylightbox__gallery-item {
  position: relative;
  overflow: hidden;
  border-radius: 0;
  cursor: pointer;
  background-color: var(--color-jfe-gray-medium, #CFCFCF);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  margin-bottom: 1.5rem;
}
.ce-igelb_imagegallerylightbox__gallery-item:hover, .ce-igelb_imagegallerylightbox__gallery-item:focus {
  transform: translateY(-4px);
  box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.16);
}
.ce-igelb_imagegallerylightbox__gallery-item img {
  display: block;
  width: 100%;
  height: auto;
  transition: transform 0.3s ease;
}
.ce-igelb_imagegallerylightbox__gallery-item:hover img, .ce-igelb_imagegallerylightbox__gallery-item:focus img {
  transform: scale(1.05);
}
.ce-igelb_imagegallerylightbox__gallery-item:focus-within {
  outline: 2px solid var(--color-jfe-lightblue, #009ddf);
  outline-offset: 2px;
}
.ce-igelb_imagegallerylightbox__gallery-trigger {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: none;
  background-color: transparent;
  color: transparent;
  cursor: pointer;
  z-index: 11;
  transition: background-color 0.3s ease;
}
.ce-igelb_imagegallerylightbox__gallery-trigger:focus, .ce-igelb_imagegallerylightbox__gallery-trigger:hover {
  outline: none;
  background-color: rgba(0, 0, 0, 0.65);
}
.ce-igelb_imagegallerylightbox__gallery-trigger .ce-igelb_imagegallerylightbox__gallery-plus-hover {
  display: none;
  width: 3rem;
  height: 3rem;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background-color: var(--color-jfe-yellow, #ffcc00);
  border-radius: 50%;
  color: #000000;
  font-size: 2rem;
  justify-content: center;
  align-items: center;
}
.ce-igelb_imagegallerylightbox__gallery-trigger:focus .ce-igelb_imagegallerylightbox__gallery-plus-hover, .ce-igelb_imagegallerylightbox__gallery-trigger:hover .ce-igelb_imagegallerylightbox__gallery-plus-hover {
  display: flex;
}
.ce-igelb_imagegallerylightbox__gallery--masonry .ce-igelb_imagegallerylightbox__gallery-item {
  margin-bottom: 32px;
}
.ce-igelb_imagegallerylightbox__gallery--masonry .ce-igelb_imagegallerylightbox__gallery-item figure,
.ce-igelb_imagegallerylightbox__gallery--masonry .ce-igelb_imagegallerylightbox__gallery-item picture {
  display: block;
  width: 100%;
  height: auto;
  margin: 0;
}
.ce-igelb_imagegallerylightbox__gallery--masonry .ce-igelb_imagegallerylightbox__gallery-item img {
  width: 100%;
  height: auto;
  display: block;
  aspect-ratio: auto;
  -o-object-fit: contain;
     object-fit: contain;
}
.ce-igelb_imagegallerylightbox__gallery--collage {
  display: grid;
  gap: 1rem;
  grid-template-columns: 1fr;
  margin-bottom: 1rem;
  position: relative;
}
@media (min-width: 768px) {
  .ce-igelb_imagegallerylightbox__gallery--collage {
    gap: 0;
    grid-template-columns: 60% 40%;
    grid-template-rows: repeat(2, auto);
  }
}
.ce-igelb_imagegallerylightbox__gallery--collage .ce-igelb_imagegallerylightbox__gallery-item {
  position: relative;
  overflow: hidden;
  border-radius: 0;
  cursor: pointer;
  background-color: var(--color-jfe-gray-medium, #CFCFCF);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.ce-igelb_imagegallerylightbox__gallery--collage .ce-igelb_imagegallerylightbox__gallery-item--collage {
  margin-bottom: 0;
}
.ce-igelb_imagegallerylightbox__gallery--collage .ce-igelb_imagegallerylightbox__gallery-item img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  transition: transform 0.3s ease;
  aspect-ratio: 16/9;
  -o-object-position: center;
     object-position: center;
}
.ce-igelb_imagegallerylightbox__gallery--collage .ce-igelb_imagegallerylightbox__gallery-item:hover, .ce-igelb_imagegallerylightbox__gallery--collage .ce-igelb_imagegallerylightbox__gallery-item:focus {
  transform: translateY(-4px);
  box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.16);
}
.ce-igelb_imagegallerylightbox__gallery--collage .ce-igelb_imagegallerylightbox__gallery-item:hover img, .ce-igelb_imagegallerylightbox__gallery--collage .ce-igelb_imagegallerylightbox__gallery-item:focus img {
  transform: scale(1.05);
}
@media (min-width: 768px) {
  .ce-igelb_imagegallerylightbox__gallery--collage .ce-igelb_imagegallerylightbox__gallery-item:first-child {
    grid-column: 1;
    grid-row: 1/span 2;
  }
}
@media (min-width: 768px) {
  .ce-igelb_imagegallerylightbox__gallery--collage .ce-igelb_imagegallerylightbox__gallery-item:nth-child(2) {
    grid-column: 2;
    grid-row: 1;
  }
}
@media (min-width: 768px) {
  .ce-igelb_imagegallerylightbox__gallery--collage .ce-igelb_imagegallerylightbox__gallery-item:nth-child(3) {
    grid-column: 2;
    grid-row: 2;
    position: relative;
  }
}
.ce-igelb_imagegallerylightbox__gallery--collage .ce-igelb_imagegallerylightbox__gallery-more {
  position: absolute;
  right: 0;
  top: 100%;
  z-index: 10;
}
.ce-igelb_imagegallerylightbox__gallery--collage .ce-igelb_imagegallerylightbox__gallery-more .ce-igelb_imagegallerylightbox__more-trigger {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  background-color: #ffffff;
  border: none;
  border-radius: 0;
  font-size: 2rem;
  font-weight: bold;
  color: #000000;
  cursor: pointer;
  box-shadow: none;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  border-left: 4px solid var(--color-jfe-lightblue, #009ddf);
}
.ce-igelb_imagegallerylightbox__gallery--collage .ce-igelb_imagegallerylightbox__gallery-more .ce-igelb_imagegallerylightbox__more-trigger:hover, .ce-igelb_imagegallerylightbox__gallery--collage .ce-igelb_imagegallerylightbox__gallery-more .ce-igelb_imagegallerylightbox__more-trigger:focus {
  transform: translateY(-4px);
  box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.16);
}
.ce-igelb_imagegallerylightbox__gallery--collage .ce-igelb_imagegallerylightbox__gallery-more .ce-igelb_imagegallerylightbox__more-trigger:focus {
  outline: 2px solid var(--color-jfe-lightblue, #009ddf);
  outline-offset: 2px;
}
.ce-igelb_imagegallerylightbox__gallery--collage .ce-igelb_imagegallerylightbox__gallery-more .ce-igelb_imagegallerylightbox__more-count {
  line-height: 1;
}
.ce-igelb_imagegallerylightbox__gallery-info {
  padding-right: 4rem;
}
h2.h4.ce-igelb_imagegallerylightbox__headline,
h3.h4.ce-igelb_imagegallerylightbox__headline,
h4.h4.ce-igelb_imagegallerylightbox__headline,
h5.h4.ce-igelb_imagegallerylightbox__headline {
  margin-bottom: 0;
}

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