/* Color Variables */
.c-gold, .contact-left__title {
  color: #fff;
}

@media (min-width: 1025px) {
  .c-gold, .contact-left__title {
    background: linear-gradient(to right, #7e7e7e 0, #fff 20%, #797979 100%);
    background-clip: border-box;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
  }
}

.c-blue, .contact-info__access-txt a {
  color: #002355;
}

@media (min-width: 1025px) {
  .c-blue, .contact-info__access-txt a {
    background: linear-gradient(to right, #14335f 0%, #15396d 60%, #174076 80%, #133362 100%);
    background-clip: border-box;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
  }
}

/* Font Variables */
/* Media Queries Breakpoints */
/* Media Queries Breakpoints */
/* Layout sizes */
.arrow-right-blue {
  background-image: url("data:image/svg+xml,%3Csvg width='19' height='26' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M18.172 12.927L.438 25.3 7.51 12.927.44.67l17.733 12.257z' fill='%23002355'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
}

.arrow-right-orange, .contact-info__title-mob:after {
  background-image: url("data:image/svg+xml,%3Csvg width='19' height='26' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M18.172 12.927L.438 25.3 7.51 12.927.44.67l17.733 12.257z' fill='%23B18749'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
}

.arrow-right-white {
  background-image: url("data:image/svg+xml,%3Csvg width='19' height='26' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M18.172 12.927L.438 25.3 7.51 12.927.44.67l17.733 12.257z' fill='%23ffffff'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
}

.icon-empty {
  height: 55px;
  width: 55px;
  min-width: 55px;
  border-radius: 50%;
  background-image: url("data:image/svg+xml,%3Csvg width='19' height='18' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1.23.478l17.156 17.155M18.386.478L1.231 17.633' stroke='%23000' stroke-opacity='.5'/%3E%3C/svg%3E");
  background-color: #ededed;
  background-repeat: no-repeat;
  background-position: 50% 50%;
  overflow: hidden;
}

.contact-left {
  position: relative;
  background-repeat: no-repeat;
  background-position: 0 0;
  color: #fff;
  letter-spacing: 0.1em;
  font-size: 1.6rem;
}

@media (max-width: 1023px) {
  .contact-left {
    padding: 20px 0;
  }
}

@media (min-width: 1024px) {
  .contact-left {
    width: 42%;
    min-width: 42%;
    min-height: 1040px;
  }
}

.contact-left__wrap {
  background-size: cover;
  background-repeat: no-repeat;
  background-position: 0 100%;
  background-color: #02407b;
  position: sticky;
  top: 0;
}

@media (max-width: 1023px) {
  .contact-left__wrap {
    padding-bottom: 30px;
  }
}

@media (min-width: 1025px) {
  .contact-left__wrap {
    min-height: 100vh;
    background-size: contain;
  }
}

@media (min-width: 1441px) {
  .contact-left__wrap {
    background-size: cover;
  }
}

.contact-left__inner {
  max-width: 400px;
  margin: 0 auto;
}

@media (max-width: 1023px) {
  .contact-left__inner {
    padding: 20px;
    background-color: rgba(0, 35, 85, 0.9);
  }
}

.contact-left__title {
  letter-spacing: 0.1em;
  text-transform: uppercase;
  font-weight: 700;
  font-family: "itc-avant-garde-gothic-pro", sans-serif;
  margin-bottom: 25px;
  font-size: 2rem;
}

.contact-left__title.large {
  font-size: 2.2rem;
}

.contact-left__title span:not(:last-child)::after {
  content: ' / ';
}

.contact-left__items {
  margin-bottom: 30px;
}

.contact-left__item {
  margin-bottom: 10px;
}

.contact-left__item a:hover {
  color: rgba(255, 255, 255, 0.6);
}

.contact-left__icon {
  width: 18px;
  height: 22px;
  margin-right: 10px;
  color: currentColor;
}

.contact-left__map {
  padding: 10vmin;
  text-align: center;
  display: flex;
  justify-content: center;
  align-items: center;
}

.contact-left__map .inner {
  max-width: 500px;
  width: 100%;
}

.contact-left__map-title {
  text-transform: none;
  font-size: 3rem;
  margin-bottom: 1em;
  letter-spacing: .1em;
}

.contact-left__map-title span {
  font-weight: bold;
  color: #B18749;
}

.contact-left__map iframe,
.contact-left__map .map-holder {
  max-width: 100%;
  border: 4px solid #B18749 !important;
}

.contacts-list {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  margin-top: 2em;
}

.contacts-list__item {
  margin-bottom: 25px;
  padding-left: 40px;
  position: relative;
  font-size: 1.7rem;
}

.contacts-list__item:nth-child(odd) {
  width: 60%;
}

.contacts-list__item:nth-child(even) {
  width: 38%;
}

.contacts-list__item a {
  font-weight: 700;
  color: #fff;
}

.contacts-list__icon {
  max-height: 25px;
  width: 28px;
  color: #B18749;
  position: absolute;
  left: 0;
  top: 2px;
}

.contacts-list__title {
  font-size: 1.8rem;
  display: block;
  font-weight: 700;
  margin-bottom: 5px;
  font-family: "itc-avant-garde-gothic-pro", sans-serif;
}

.contacts-list__pos {
  font-size: 1.6rem;
  color: #819195;
}

.page-dealer .contact-left__wrap {
  background-image: url(../jpg/bg-left.jpg);
}

.page-dealer .contact-left__item {
  margin-top: 20px;
}

.page-dealer .contact-left__inner {
  color: #fff !important;
}

.page-dealer .contact-info__heading {
  padding-left: 60px;
}

.page-dealer .dealer-data {
  margin-top: 20px;
}

.page-dealer .dealer-class {
  margin: 15px 0;
}

.page-dealer .dealer-class dl {
  margin-top: 15px;
}

.page-dealer .dealer-class dl a {
  display: block;
  padding: 3px 5px;
}

.page-dealer .dealer-class dl a:hover {
  text-decoration: none;
}

.contact-info {
  flex: 1;
}

@media (min-width: 1024px) {
  .contact-info {
    padding-right: 30px;
  }
}

.contact-info__inner {
  max-width: 713px;
}

@media (max-width: 1023px) {
  .contact-info__inner {
    padding: 20px;
  }
}

@media (min-width: 1024px) {
  .contact-info__inner {
    margin-left: 70px;
  }
}

@media (min-width: 1441px) {
  .contact-info__inner {
    margin-left: 140px;
  }
}

.contact-info__tab {
  flex-direction: column;
}

@media (max-width: 767px) {
  .contact-info__tab {
    display: block;
  }
}

@media (min-width: 768px) {
  .contact-info__tab {
    display: flex;
  }
}

.contact-info__tab .content {
  width: 100%;
}

.contact-info__tab .content.is-open {
  animation: tabs-appear__top .3s linear 1 forwards;
}

.contact-info__title {
  letter-spacing: 0.1em;
  margin-bottom: 40px;
}

.contact-info__subtitle {
  color: #819195;
  font-size: 2.4rem;
  margin-bottom: 20px;
  max-width: 670px;
}

.contact-info__row {
  padding: 15px 0 15px 35px;
  position: relative;
  line-height: 1.7;
  border-top: 1px solid #CCD3D4;
  width: 100%;
}

@media (min-width: 1024px) {
  .contact-info__row {
    padding: 35px 0 35px 85px;
    letter-spacing: 0.1em;
  }
}

.contact-info__row a[href*=mailto] {
  text-decoration: underline;
}

.contact-info__row a[href*=mailto]:hover {
  color: #002355;
}

.contact-info__row p:not(:last-child) {
  margin-bottom: 1.5em;
}

.contact-info__row:hover .contact-info__icon {
  color: #002355;
}

.contact-info__heading {
  text-transform: uppercase;
  color: #002355;
  font-weight: 700;
  font-family: "itc-avant-garde-gothic-pro", sans-serif;
  font-size: 2.2rem;
  margin-bottom: 35px;
}

.contact-info__subheading {
  font-size: 20px;
  color: #819195;
  margin: -30px 0 30px;
}

.contact-info__email-item:not(:last-child) {
  margin-bottom: 10px;
}

@media (min-width: 1024px) {
  .contact-info__find-links {
    padding-top: 25px;
    padding-bottom: 25px;
  }
}

.contact-info__find-links .link-arrow {
  text-transform: uppercase;
}

@media (max-width: 767px) {
  .contact-info__find-links .link-arrow {
    display: block;
  }
}

.contact-info__icon {
  max-width: 24px;
  max-height: 24px;
  top: 15px;
  position: absolute;
  left: 0;
  color: #CCD3D4;
}

@media (max-width: 1023px) {
  .contact-info__find-links .contact-info__icon {
    top: 25px;
  }
}

@media (min-width: 1024px) {
  .contact-info__icon {
    max-width: 44px;
    max-height: 44px;
    top: 30px;
  }
}

.contact-info__access-txt a {
  text-decoration: none;
  font-weight: 700;
}

.contact-info__about img {
  max-width: 100%;
}

.contact-info__title-mob {
  text-transform: uppercase;
  font-size: 16px;
  letter-spacing: 1px;
  font-weight: 700;
  padding-left: 0 !important;
  position: relative;
}

.is-open .contact-info__title-mob {
  color: #B18749;
}

.contact-info__title-mob:after {
  content: '';
  position: absolute;
  right: 0;
  height: 15px;
  width: 15px;
  background-size: 12px;
  transform: translate(0, -50%) rotate(90deg);
  top: 50%;
}

.is-open .contact-info__title-mob:after {
  transform: translate(0, -50%) rotate(-90deg);
}

#section1.is-open + .contact-info__find-wrap {
  display: block;
  order: 3;
}

.contact-tabs {
  margin-bottom: 40px;
}

@media (max-width: 767px) {
  .contact-tabs {
    display: none;
  }
}

.contact-tabs__list {
  display: flex;
  justify-content: space-between;
}

.contact-tabs__item {
  width: calc(100%/3 - 12px);
  transition: border .3s;
}

.contact-tabs__item:hover {
  border-color: #B18749;
}

.contact-tabs__link {
  height: 180px;
  position: relative;
  border: 1px solid #CCD3D4;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  transition: all .3s;
  font-size: 16px;
  color: #002355;
  letter-spacing: .1em;
}

@media (min-width: 1441px) {
  .contact-tabs__link {
    height: 225px;
  }
}

.tabs-allowed .contact-tabs__link {
  display: flex;
}

.contact-tabs__link:after {
  content: '';
  border: 2px solid #002355;
  border-image: linear-gradient(to right, #14335f 0%, #15396d 60%, #174076 80%, #133362 100%);
  border-image-slice: 100%;
  border-image-slice: 1;
  height: 100%;
  width: 100%;
  position: absolute;
  left: 0;
  top: 0;
  pointer-events: none;
  transition: all .3s;
  opacity: 0;
  transform: scale(1.1);
}

.contact-tabs__link.is-selected {
  border-color: transparent;
}

.contact-tabs__link.is-selected:after {
  opacity: 1;
  transform: scale(1);
}

.contact-tabs__img {
  margin-bottom: 10px;
  max-height: 45px;
  pointer-events: none;
  filter: grayscale(1);
}

.is-selected .contact-tabs__img {
  filter: invert(1);
}

@keyframes tabs-appear__top {
  0% {
    opacity: 0;
    transform: translateY(-30px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

@media (min-width: 1025px) {
  .contact-data {
    display: flex;
  }
}

.contact-data__content {
  flex: 1;
}

@media (max-width: 1024px) {
  .contact-top-gap {
    padding-top: 60px;
  }
}

@media (min-width: 1025px) {
  .contact-top-gap {
    padding-top: 120px;
  }
}

@media (min-width: 1441px) {
  .contact-top-gap {
    padding-top: 160px;
  }
}

/*
.site-header {
	@include media(">=desktop") {
		transform: translateY(-15px);
		&:before {
			height: 65px;
		}
	}
	@include media(">desktop-l") {
		transform: translateY(-25px);
		&:before {
			height: 85px;
		}
	}

	&__logo {
		.logo-img {
			@include media(">=desktop") {
				clip: rect(0, 50px, 44px, 0);
			}
		}

		@include media(">=desktop") {
			transform: translateX(-107px);
		}
	}
}
*/
.page-fr {
  margin-bottom: 20vmin;
}

.page-fr .contact-info__subtitle {
  font-size: 2.2rem;
}

@media (max-width: 1024px) {
  .page-fr .contact-top-gap {
    padding-top: 60px;
  }
}

@media (min-width: 1025px) {
  .page-fr .contact-top-gap {
    padding-top: 100px;
  }
  .page-fr .contact-top-gap.with-flag {
    padding-top: 35px;
  }
}

@media (min-width: 1441px) {
  .page-fr .contact-top-gap {
    padding-top: 140px;
  }
  .page-fr .contact-top-gap.with-flag {
    padding-top: 55px;
  }
}

.page-fr .contact-left {
  background-color: #002355;
}

.page-fr .contact-left__wrap {
  position: relative;
}

@media (max-width: 768px) {
  .page-fr .contact-left__wrap {
    padding-bottom: 0;
  }
}

@media (min-width: 769px) {
  .page-fr .contact-left__wrap:after {
    content: '';
    height: 60px;
    width: 100%;
    left: 0;
    bottom: 0;
    position: absolute;
    background: linear-gradient(to top, #002355, transparent);
  }
}

.page-fr .contact-left__inner {
  color: #819195;
  max-width: 500px;
}

.page-fr .contact-left__caption {
  height: 24px;
  line-height: 24px;
  white-space: nowrap;
  text-align: center;
  padding: 0 25px;
  font-size: 13px;
  letter-spacing: 0.1em;
  color: #002355;
  max-width: 200px;
  display: block;
  margin: 0 auto;
  background-image: linear-gradient(110deg, #886635 0%, #896635 10%, #b58f53 23%, #cba264 31%, #947240 65%, #cda260 90%, #cda260 100%);
}

@media (min-width: 769px) {
  .page-fr .contact-left__caption {
    position: absolute;
    right: 10%;
    bottom: 50px;
  }
}

.page-fr .contact-left__caption:before, .page-fr .contact-left__caption:after {
  content: '';
  position: absolute;
  height: 3px;
  width: 3px;
  background-color: #002355;
  border-radius: 50%;
  transform: translate(0, -50%);
  top: 50%;
}

.page-fr .contact-left__caption:before {
  left: 15px;
}

.page-fr .contact-left__caption:after {
  right: 15px;
}

.page-fr .contact-left .french-aircraft-img {
  position: absolute;
  bottom: 0;
  left: 50px;
  transform: translate(0, 30%);
  max-width: 105%;
  height: auto;
}

@media (max-width: 1024px) {
  .page-fr .contact-left .french-aircraft-img {
    display: none;
  }
}

.page-fr .contact-info {
  background-image: url(../jpg/bg-right.jpg);
  background-repeat: no-repeat;
  background-position: 0 0;
  background-size: contain;
}

.page-fr .contact-info__subtitle {
  color: #002355;
  letter-spacing: .05em;
}

.page-fr .contact-info__heading {
  text-transform: none;
  font-family: "Frutiger LT Std", sans-serif;
  font-weight: 400;
}

.page-fr .contact-info__row {
  padding-left: 0;
}

.page-fr .contact-info__form {
  border-top: none;
}

.page-fr .contact-info__about h2, .page-fr .contact-info__about h3, .page-fr .contact-info__about h4 {
  text-transform: none;
  margin-bottom: .5em;
}

.page-fr .contact-info__about h3 {
  font-size: 3rem;
}

.page-fr .contact-info__about h4 {
  font-size: 2.5rem;
}

.page-fr .custom-form {
  max-width: 700px;
}

.air-data__heading {
  font-size: 6rem;
  margin-bottom: .8em;
  letter-spacing: 0.1em;
}

.air-data__items {
  display: flex;
  flex-wrap: wrap;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  margin-bottom: 5vmin;
}

.air-data__title, .air-data__value {
  padding: .5em 15px;
  margin: 0 0 1px;
}

.air-data__title {
  width: 25%;
  text-align: right;
  background-color: #002355;
  color: #fff;
  font-size: 1.6rem;
  font-weight: 700;
}

.air-data__value {
  width: 70%;
  background-color: #CCD3D4;
  font-size: 1.4rem;
}

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdC5jc3MiLCJzb3VyY2VzIjpbImNvbnRhY3Quc2NzcyIsImNvcmUvX2NvcmUuc2NzcyIsImNvcmUvbWl4aW5zL19pbmNsdWRlLW1lZGlhLnNjc3MiLCJjb3JlL21peGlucy9fZmxleGJveC10b29sa2l0LnNjc3MiLCJjb3JlL21peGlucy9fbWluaS1taXhpbnMuc2NzcyIsImNvcmUvdmFyaWFibGVzL19jb2xvcnMuc2NzcyIsImNvcmUvdmFyaWFibGVzL19mb250LnNjc3MiLCJjb3JlL3ZhcmlhYmxlcy9fYnJlYWtwb2ludHMuc2NzcyIsImNvcmUvdmFyaWFibGVzL19wYWdlLXNpemVzLnNjc3MiLCJlbGVtZW50cy9faWNvbnMuc2NzcyIsInBhZ2VzL19jb250YWN0LnNjc3MiLCJwYWdlcy9jb250YWN0L19jb250YWN0X2xlZnQuc2NzcyIsInBhZ2VzL2NvbnRhY3QvX2NvbnRhY3RfcmlnaHQuc2NzcyIsInBhZ2VzL2NvbnRhY3QvX2NvbnRhY3RfdGFicy5zY3NzIiwicGFnZXMvX2Zlcm5jaC5zY3NzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIENvcmUgc2V0dGluZ3NcbkBpbXBvcnQgJ2NvcmUvY29yZSc7XG4vLyBTaXRlIENvbXBvbmVudHNcbkBpbXBvcnQgJ2VsZW1lbnRzL2ljb25zJztcblxuQGltcG9ydCAncGFnZXMvY29udGFjdCc7XG5AaW1wb3J0ICdwYWdlcy9mZXJuY2gnO1xuIiwiQGltcG9ydCAnbWl4aW5zL2luY2x1ZGUtbWVkaWEnLFxuXHRcdCdtaXhpbnMvZmxleGJveC10b29sa2l0Jyxcblx0XHQnbWl4aW5zL21pbmktbWl4aW5zJztcblxuQGltcG9ydCAndmFyaWFibGVzL2NvbG9ycycsXG5cdFx0J3ZhcmlhYmxlcy9mb250Jyxcblx0XHQndmFyaWFibGVzL2JyZWFrcG9pbnRzJyxcblx0XHQndmFyaWFibGVzL3BhZ2Utc2l6ZXMnOyIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8gICAgIF8gICAgICAgICAgICBfICAgICAgICAgICBfICAgICAgICAgICAgICAgICAgICAgICAgICAgXyBfXG4vLyAgICAoXykgICAgICAgICAgfCB8ICAgICAgICAgfCB8ICAgICAgICAgICAgICAgICAgICAgICAgIHwgKF8pXG4vLyAgICAgXyBfIF9fICAgX19ffCB8XyAgIF8gIF9ffCB8IF9fXyAgIF8gX18gX19fICAgX19fICBfX3wgfF8gIF9fIF9cbi8vICAgIHwgfCAnXyBcXCAvIF9ffCB8IHwgfCB8LyBfYCB8LyBfIFxcIHwgJ18gYCBfIFxcIC8gXyBcXC8gX2AgfCB8LyBfYCB8XG4vLyAgICB8IHwgfCB8IHwgKF9ffCB8IHxffCB8IChffCB8ICBfXy8gfCB8IHwgfCB8IHwgIF9fLyAoX3wgfCB8IChffCB8XG4vLyAgICB8X3xffCB8X3xcXF9fX3xffFxcX18sX3xcXF9fLF98XFxfX198IHxffCB8X3wgfF98XFxfX198XFxfXyxffF98XFxfXyxffFxuLy9cbi8vICAgICAgU2ltcGxlLCBlbGVnYW50IGFuZCBtYWludGFpbmFibGUgbWVkaWEgcXVlcmllcyBpbiBTYXNzXG4vLyAgICAgICAgICAgICAgICAgICAgICAgIHYxLjQuOVxuLy9cbi8vICAgICAgICBodHRwczovL2VkdWFyZG9ib3VjYXMuZ2l0aHViLmlvL2luY2x1ZGUtbWVkaWFcbi8vXG4vLyAgICAgICAgIEF1dGhvcnM6IEVkdWFyZG8gQm91Y2FzIChAZWR1YXJkb2JvdWNhcylcbi8vICAgICAgICAgICAgICAgICAgSHVnbyBHaXJhdWRlbCAoQGh1Z29naXJhdWRlbClcbi8vXG4vLyAgICAgIFRoaXMgcHJvamVjdCBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1JVCBsaWNlbnNlXG4vLy8vXG4vLy8gaW5jbHVkZS1tZWRpYSBsaWJyYXJ5IHB1YmxpYyBjb25maWd1cmF0aW9uXG4vLy8gQGF1dGhvciBFZHVhcmRvIEJvdWNhc1xuLy8vIEBhY2Nlc3MgcHVibGljXG4vLy8vXG5cblxuLy8vXG4vLy8gQ3JlYXRlcyBhIGxpc3Qgb2YgZ2xvYmFsIGJyZWFrcG9pbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gQ3JlYXRlcyBhIHNpbmdsZSBicmVha3BvaW50IHdpdGggdGhlIGxhYmVsIGBwaG9uZWBcbi8vLyAgJGJyZWFrcG9pbnRzOiAoJ3Bob25lJzogMzIwcHgpO1xuLy8vXG4kYnJlYWtwb2ludHM6IChcbiAgJ3Bob25lJzogMzIwcHgsXG4gICd0YWJsZXQnOiA3NjhweCxcbiAgJ2Rlc2t0b3AnOiAxMDI0cHhcbikgIWRlZmF1bHQ7XG5cblxuLy8vXG4vLy8gQ3JlYXRlcyBhIGxpc3Qgb2Ygc3RhdGljIGV4cHJlc3Npb25zIG9yIG1lZGlhIHR5cGVzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gQ3JlYXRlcyBhIHNpbmdsZSBtZWRpYSB0eXBlIChzY3JlZW4pXG4vLy8gICRtZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nOiAnc2NyZWVuJyk7XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gQ3JlYXRlcyBhIHN0YXRpYyBleHByZXNzaW9uIHdpdGggbG9naWNhbCBkaXNqdW5jdGlvbiAoT1Igb3BlcmF0b3IpXG4vLy8gICRtZWRpYS1leHByZXNzaW9uczogKFxuLy8vICAgICdyZXRpbmEyeCc6ICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpJ1xuLy8vICApO1xuLy8vXG4kbWVkaWEtZXhwcmVzc2lvbnM6IChcbiAgJ3NjcmVlbic6ICdzY3JlZW4nLFxuICAncHJpbnQnOiAncHJpbnQnLFxuICAnaGFuZGhlbGQnOiAnaGFuZGhlbGQnLFxuICAnbGFuZHNjYXBlJzogJyhvcmllbnRhdGlvbjogbGFuZHNjYXBlKScsICdwb3J0cmFpdCc6ICcob3JpZW50YXRpb246IHBvcnRyYWl0KScsXG4gICdyZXRpbmEyeCc6ICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpLCAobWluLXJlc29sdXRpb246IDJkcHB4KScsXG4gICdyZXRpbmEzeCc6ICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAzKSwgKG1pbi1yZXNvbHV0aW9uOiAzNTBkcGkpLCAobWluLXJlc29sdXRpb246IDNkcHB4KSdcbikgIWRlZmF1bHQ7XG5cblxuLy8vXG4vLy8gRGVmaW5lcyBhIG51bWJlciB0byBiZSBhZGRlZCBvciBzdWJ0cmFjdGVkIGZyb20gZWFjaCB1bml0IHdoZW4gZGVjbGFyaW5nIGJyZWFrcG9pbnRzIHdpdGggZXhjbHVzaXZlIGludGVydmFsc1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEludGVydmFsIGZvciBwaXhlbHMgaXMgZGVmaW5lZCBhcyBgMWAgYnkgZGVmYXVsdFxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjEyOHB4Jykge31cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIEBtZWRpYSAobWluLXdpZHRoOiAxMjlweCkge31cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBJbnRlcnZhbCBmb3IgZW1zIGlzIGRlZmluZWQgYXMgYDAuMDFgIGJ5IGRlZmF1bHRcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz4yMGVtJykge31cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIEBtZWRpYSAobWluLXdpZHRoOiAyMC4wMWVtKSB7fVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEludGVydmFsIGZvciByZW1zIGlzIGRlZmluZWQgYXMgYDAuMWAgYnkgZGVmYXVsdCwgdG8gYmUgdXNlZCB3aXRoIGBmb250LXNpemU6IDYyLjUlO2Bcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz4yLjByZW0nKSB7fVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDIuMXJlbSkge31cbi8vL1xuJHVuaXQtaW50ZXJ2YWxzOiAoXG4gICdweCc6IDEsXG4gICdlbSc6IDAuMDEsXG4gICdyZW0nOiAwLjEsXG4gICcnOiAwXG4pICFkZWZhdWx0O1xuXG4vLy9cbi8vLyBEZWZpbmVzIHdoZXRoZXIgc3VwcG9ydCBmb3IgbWVkaWEgcXVlcmllcyBpcyBhdmFpbGFibGUsIHVzZWZ1bCBmb3IgY3JlYXRpbmcgc2VwYXJhdGUgc3R5bGVzaGVldHNcbi8vLyBmb3IgYnJvd3NlcnMgdGhhdCBkb24ndCBzdXBwb3J0IG1lZGlhIHF1ZXJpZXMuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gRGlzYWJsZXMgc3VwcG9ydCBmb3IgbWVkaWEgcXVlcmllc1xuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICAuZm9vIHtcbi8vLyAgICBjb2xvcjogdG9tYXRvO1xuLy8vICB9XG4vLy9cbiRpbS1tZWRpYS1zdXBwb3J0OiB0cnVlICFkZWZhdWx0O1xuXG4vLy9cbi8vLyBTZWxlY3RzIHdoaWNoIGJyZWFrcG9pbnQgdG8gZW11bGF0ZSB3aGVuIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXMgaXMgZGlzYWJsZWQuIE1lZGlhIHF1ZXJpZXMgdGhhdCBzdGFydCBhdCBvclxuLy8vIGludGVyY2VwdCB0aGUgYnJlYWtwb2ludCB3aWxsIGJlIGRpc3BsYXllZCwgYW55IG90aGVycyB3aWxsIGJlIGlnbm9yZWQuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIHNob3cgYmVjYXVzZSBpdCBpbnRlcmNlcHRzIHRoZSBzdGF0aWMgYnJlYWtwb2ludFxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCc7XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICAuZm9vIHtcbi8vLyAgICBjb2xvcjogdG9tYXRvO1xuLy8vICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIE5PVCBzaG93IGJlY2F1c2UgaXQgZG9lcyBub3QgaW50ZXJjZXB0IHRoZSBkZXNrdG9wIGJyZWFrcG9pbnRcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ3RhYmxldCc7XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PWRlc2t0b3AnKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gIC8qIE5vIG91dHB1dCAqL1xuLy8vXG4kaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnICFkZWZhdWx0O1xuXG4vLy9cbi8vLyBTZWxlY3RzIHdoaWNoIG1lZGlhIGV4cHJlc3Npb25zIGFyZSBhbGxvd2VkIGluIGFuIGV4cHJlc3Npb24gZm9yIGl0IHRvIGJlIHVzZWQgd2hlbiBtZWRpYSBxdWVyaWVzXG4vLy8gYXJlIG5vdCBzdXBwb3J0ZWQuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIHNob3cgYmVjYXVzZSBpdCBpbnRlcmNlcHRzIHRoZSBzdGF0aWMgYnJlYWtwb2ludCBhbmQgY29udGFpbnMgb25seSBhY2NlcHRlZCBtZWRpYSBleHByZXNzaW9uc1xuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCc7XG4vLy8gICRpbS1uby1tZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nKTtcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0JywgJ3NjcmVlbicpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyAgIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgIC5mb28ge1xuLy8vICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBOT1Qgc2hvdyBiZWNhdXNlIGl0IGludGVyY2VwdHMgdGhlIHN0YXRpYyBicmVha3BvaW50IGJ1dCBjb250YWlucyBhIG1lZGlhIGV4cHJlc3Npb24gdGhhdCBpcyBub3QgYWNjZXB0ZWRcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xuLy8vICAkaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJyk7XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcsICdyZXRpbmEyeCcpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyAgLyogTm8gb3V0cHV0ICovXG4vLy9cbiRpbS1uby1tZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nLCAncG9ydHJhaXQnLCAnbGFuZHNjYXBlJykgIWRlZmF1bHQ7XG5cbi8vLy9cbi8vLyBDcm9zcy1lbmdpbmUgbG9nZ2luZyBlbmdpbmVcbi8vLyBAYXV0aG9yIEh1Z28gR2lyYXVkZWxcbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vLy9cblxuXG4vLy9cbi8vLyBMb2cgYSBtZXNzYWdlIGVpdGhlciB3aXRoIGBAZXJyb3JgIGlmIHN1cHBvcnRlZFxuLy8vIGVsc2Ugd2l0aCBgQHdhcm5gLCB1c2luZyBgZmVhdHVyZS1leGlzdHMoJ2F0LWVycm9yJylgXG4vLy8gdG8gZGV0ZWN0IHN1cHBvcnQuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG1lc3NhZ2UgLSBNZXNzYWdlIHRvIGxvZ1xuLy8vXG5AZnVuY3Rpb24gaW0tbG9nKCRtZXNzYWdlKSB7XG4gIEBpZiBmZWF0dXJlLWV4aXN0cygnYXQtZXJyb3InKSB7XG4gICAgQGVycm9yICRtZXNzYWdlO1xuICB9IEBlbHNlIHtcbiAgICBAd2FybiAkbWVzc2FnZTtcbiAgICAkXzogbm9vcCgpO1xuICB9XG5cbiAgQHJldHVybiAkbWVzc2FnZTtcbn1cblxuXG4vLy9cbi8vLyBXcmFwcGVyIG1peGluIGZvciB0aGUgbG9nIGZ1bmN0aW9uIHNvIGl0IGNhbiBiZSB1c2VkIHdpdGggYSBtb3JlIGZyaWVuZGx5XG4vLy8gQVBJIHRoYW4gYEBpZiBpbS1sb2coJy4uJykge31gIG9yIGAkXzogaW0tbG9nKCcuLicpYC4gQmFzaWNhbGx5LCB1c2UgdGhlIGZ1bmN0aW9uXG4vLy8gd2l0aGluIGZ1bmN0aW9ucyBiZWNhdXNlIGl0IGlzIG5vdCBwb3NzaWJsZSB0byBpbmNsdWRlIGEgbWl4aW4gaW4gYSBmdW5jdGlvblxuLy8vIGFuZCB1c2UgdGhlIG1peGluIGV2ZXJ5d2hlcmUgZWxzZSBiZWNhdXNlIGl0J3MgbXVjaCBtb3JlIGVsZWdhbnQuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG1lc3NhZ2UgLSBNZXNzYWdlIHRvIGxvZ1xuLy8vXG5AbWl4aW4gbG9nKCRtZXNzYWdlKSB7XG4gIEBpZiBpbS1sb2coJG1lc3NhZ2UpIHt9XG59XG5cblxuLy8vXG4vLy8gRnVuY3Rpb24gd2l0aCBubyBgQHJldHVybmAgY2FsbGVkIG5leHQgdG8gYEB3YXJuYCBpbiBTYXNzIDMuM1xuLy8vIHRvIHRyaWdnZXIgYSBjb21waWxpbmcgZXJyb3IgYW5kIHN0b3AgdGhlIHByb2Nlc3MuXG4vLy9cbkBmdW5jdGlvbiBub29wKCkge31cblxuLy8vXG4vLy8gRGV0ZXJtaW5lcyB3aGV0aGVyIGEgbGlzdCBvZiBjb25kaXRpb25zIGlzIGludGVyY2VwdGVkIGJ5IHRoZSBzdGF0aWMgYnJlYWtwb2ludC5cbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gICAkY29uZGl0aW9ucyAgLSBNZWRpYSBxdWVyeSBjb25kaXRpb25zXG4vLy9cbi8vLyBAcmV0dXJuIHtCb29sZWFufSAtIFJldHVybnMgdHJ1ZSBpZiB0aGUgY29uZGl0aW9ucyBhcmUgaW50ZXJjZXB0ZWQgYnkgdGhlIHN0YXRpYyBicmVha3BvaW50XG4vLy9cbkBmdW5jdGlvbiBpbS1pbnRlcmNlcHRzLXN0YXRpYy1icmVha3BvaW50KCRjb25kaXRpb25zLi4uKSB7XG4gICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQpO1xuXG4gIEBpZiBub3QgJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWUge1xuICAgIEBpZiBpbS1sb2coJ2AjeyRpbS1uby1tZWRpYS1icmVha3BvaW50fWAgaXMgbm90IGEgdmFsaWQgYnJlYWtwb2ludC4nKSB7fVxuICB9XG5cbiAgQGVhY2ggJGNvbmRpdGlvbiBpbiAkY29uZGl0aW9ucyB7XG4gICAgQGlmIG5vdCBtYXAtaGFzLWtleSgkbWVkaWEtZXhwcmVzc2lvbnMsICRjb25kaXRpb24pIHtcbiAgICAgICRvcGVyYXRvcjogZ2V0LWV4cHJlc3Npb24tb3BlcmF0b3IoJGNvbmRpdGlvbik7XG4gICAgICAkcHJlZml4OiBnZXQtZXhwcmVzc2lvbi1wcmVmaXgoJG9wZXJhdG9yKTtcbiAgICAgICR2YWx1ZTogZ2V0LWV4cHJlc3Npb24tdmFsdWUoJGNvbmRpdGlvbiwgJG9wZXJhdG9yKTtcblxuICAgICAgQGlmICgkcHJlZml4ID09ICdtYXgnIGFuZCAkdmFsdWUgPD0gJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWUpIG9yXG4gICAgICAgICAgKCRwcmVmaXggPT0gJ21pbicgYW5kICR2YWx1ZSA+ICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlKSB7XG4gICAgICAgIEByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfSBAZWxzZSBpZiBub3QgaW5kZXgoJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zLCAkY29uZGl0aW9uKSB7XG4gICAgICBAcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gdHJ1ZTtcbn1cblxuLy8vL1xuLy8vIFBhcnNpbmcgZW5naW5lXG4vLy8gQGF1dGhvciBIdWdvIEdpcmF1ZGVsXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy8vXG5cblxuLy8vXG4vLy8gR2V0IG9wZXJhdG9yIG9mIGFuIGV4cHJlc3Npb25cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gZXh0cmFjdCBvcGVyYXRvciBmcm9tXG4vLy9cbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gQW55IG9mIGA+PWAsIGA+YCwgYDw9YCwgYDxgLCBg4omlYCwgYOKJpGBcbi8vL1xuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRleHByZXNzaW9uKSB7XG4gIEBlYWNoICRvcGVyYXRvciBpbiAoJz49JywgJz4nLCAnPD0nLCAnPCcsICfiiaUnLCAn4omkJykge1xuICAgIEBpZiBzdHItaW5kZXgoJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xuICAgICAgQHJldHVybiAkb3BlcmF0b3I7XG4gICAgfVxuICB9XG5cbiAgLy8gSXQgaXMgbm90IHBvc3NpYmxlIHRvIGluY2x1ZGUgYSBtaXhpbiBpbnNpZGUgYSBmdW5jdGlvbiwgc28gd2UgaGF2ZSB0b1xuICAvLyByZWx5IG9uIHRoZSBgaW0tbG9nKC4uKWAgZnVuY3Rpb24gcmF0aGVyIHRoYW4gdGhlIGBsb2coLi4pYCBtaXhpbi4gQmVjYXVzZVxuICAvLyBmdW5jdGlvbnMgY2Fubm90IGJlIGNhbGxlZCBhbnl3aGVyZSBpbiBTYXNzLCB3ZSBuZWVkIHRvIGhhY2sgdGhlIGNhbGwgaW5cbiAgLy8gYSBkdW1teSB2YXJpYWJsZSwgc3VjaCBhcyBgJF9gLiBJZiBhbnlib2R5IGV2ZXIgcmFpc2UgYSBzY29waW5nIGlzc3VlIHdpdGhcbiAgLy8gU2FzcyAzLjMsIGNoYW5nZSB0aGlzIGxpbmUgaW4gYEBpZiBpbS1sb2coLi4pIHt9YCBpbnN0ZWFkLlxuICAkXzogaW0tbG9nKCdObyBvcGVyYXRvciBmb3VuZCBpbiBgI3skZXhwcmVzc2lvbn1gLicpO1xufVxuXG5cbi8vL1xuLy8vIEdldCBkaW1lbnNpb24gb2YgYW4gZXhwcmVzc2lvbiwgYmFzZWQgb24gYSBmb3VuZCBvcGVyYXRvclxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBleHRyYWN0IGRpbWVuc2lvbiBmcm9tXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yIGZyb20gYCRleHByZXNzaW9uYFxuLy8vXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIGB3aWR0aGAgb3IgYGhlaWdodGAgKG9yIHBvdGVudGlhbGx5IGFueXRoaW5nIGVsc2UpXG4vLy9cbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi1kaW1lbnNpb24oJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xuICAkb3BlcmF0b3ItaW5kZXg6IHN0ci1pbmRleCgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcbiAgJHBhcnNlZC1kaW1lbnNpb246IHN0ci1zbGljZSgkZXhwcmVzc2lvbiwgMCwgJG9wZXJhdG9yLWluZGV4IC0gMSk7XG4gICRkaW1lbnNpb246ICd3aWR0aCc7XG5cbiAgQGlmIHN0ci1sZW5ndGgoJHBhcnNlZC1kaW1lbnNpb24pID4gMCB7XG4gICAgJGRpbWVuc2lvbjogJHBhcnNlZC1kaW1lbnNpb247XG4gIH1cblxuICBAcmV0dXJuICRkaW1lbnNpb247XG59XG5cblxuLy8vXG4vLy8gR2V0IGRpbWVuc2lvbiBwcmVmaXggYmFzZWQgb24gYW4gb3BlcmF0b3Jcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3BlcmF0b3IgLSBPcGVyYXRvclxuLy8vXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIGBtaW5gIG9yIGBtYXhgXG4vLy9cbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi1wcmVmaXgoJG9wZXJhdG9yKSB7XG4gIEByZXR1cm4gaWYoaW5kZXgoKCc8JywgJzw9JywgJ+KJpCcpLCAkb3BlcmF0b3IpLCAnbWF4JywgJ21pbicpO1xufVxuXG5cbi8vL1xuLy8vIEdldCB2YWx1ZSBvZiBhbiBleHByZXNzaW9uLCBiYXNlZCBvbiBhIGZvdW5kIG9wZXJhdG9yXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIGV4dHJhY3QgdmFsdWUgZnJvbVxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3BlcmF0b3IgLSBPcGVyYXRvciBmcm9tIGAkZXhwcmVzc2lvbmBcbi8vL1xuLy8vIEByZXR1cm4ge051bWJlcn0gLSBBIG51bWVyaWMgdmFsdWVcbi8vL1xuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLXZhbHVlKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpIHtcbiAgJG9wZXJhdG9yLWluZGV4OiBzdHItaW5kZXgoJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XG4gICR2YWx1ZTogc3RyLXNsaWNlKCRleHByZXNzaW9uLCAkb3BlcmF0b3ItaW5kZXggKyBzdHItbGVuZ3RoKCRvcGVyYXRvcikpO1xuXG4gIEBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICR2YWx1ZSkge1xuICAgICR2YWx1ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICR2YWx1ZSk7XG4gIH0gQGVsc2Uge1xuICAgICR2YWx1ZTogdG8tbnVtYmVyKCR2YWx1ZSk7XG4gIH1cblxuICAkaW50ZXJ2YWw6IG1hcC1nZXQoJHVuaXQtaW50ZXJ2YWxzLCB1bml0KCR2YWx1ZSkpO1xuXG4gIEBpZiBub3QgJGludGVydmFsIHtcbiAgICAvLyBJdCBpcyBub3QgcG9zc2libGUgdG8gaW5jbHVkZSBhIG1peGluIGluc2lkZSBhIGZ1bmN0aW9uLCBzbyB3ZSBoYXZlIHRvXG4gICAgLy8gcmVseSBvbiB0aGUgYGltLWxvZyguLilgIGZ1bmN0aW9uIHJhdGhlciB0aGFuIHRoZSBgbG9nKC4uKWAgbWl4aW4uIEJlY2F1c2VcbiAgICAvLyBmdW5jdGlvbnMgY2Fubm90IGJlIGNhbGxlZCBhbnl3aGVyZSBpbiBTYXNzLCB3ZSBuZWVkIHRvIGhhY2sgdGhlIGNhbGwgaW5cbiAgICAvLyBhIGR1bW15IHZhcmlhYmxlLCBzdWNoIGFzIGAkX2AuIElmIGFueWJvZHkgZXZlciByYWlzZSBhIHNjb3BpbmcgaXNzdWUgd2l0aFxuICAgIC8vIFNhc3MgMy4zLCBjaGFuZ2UgdGhpcyBsaW5lIGluIGBAaWYgaW0tbG9nKC4uKSB7fWAgaW5zdGVhZC5cbiAgICAkXzogaW0tbG9nKCdVbmtub3duIHVuaXQgYCN7dW5pdCgkdmFsdWUpfWAuJyk7XG4gIH1cblxuICBAaWYgJG9wZXJhdG9yID09ICc+JyB7XG4gICAgJHZhbHVlOiAkdmFsdWUgKyAkaW50ZXJ2YWw7XG4gIH0gQGVsc2UgaWYgJG9wZXJhdG9yID09ICc8JyB7XG4gICAgJHZhbHVlOiAkdmFsdWUgLSAkaW50ZXJ2YWw7XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZTtcbn1cblxuXG4vLy9cbi8vLyBQYXJzZSBhbiBleHByZXNzaW9uIHRvIHJldHVybiBhIHZhbGlkIG1lZGlhLXF1ZXJ5IGV4cHJlc3Npb25cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gcGFyc2Vcbi8vL1xuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBWYWxpZCBtZWRpYSBxdWVyeVxuLy8vXG5AZnVuY3Rpb24gcGFyc2UtZXhwcmVzc2lvbigkZXhwcmVzc2lvbikge1xuICAvLyBJZiBpdCBpcyBwYXJ0IG9mICRtZWRpYS1leHByZXNzaW9ucywgaXQgaGFzIG5vIG9wZXJhdG9yXG4gIC8vIHRoZW4gdGhlcmUgaXMgbm8gbmVlZCB0byBnbyBhbnkgZnVydGhlciwganVzdCByZXR1cm4gdGhlIHZhbHVlXG4gIEBpZiBtYXAtaGFzLWtleSgkbWVkaWEtZXhwcmVzc2lvbnMsICRleHByZXNzaW9uKSB7XG4gICAgQHJldHVybiBtYXAtZ2V0KCRtZWRpYS1leHByZXNzaW9ucywgJGV4cHJlc3Npb24pO1xuICB9XG5cbiAgJG9wZXJhdG9yOiBnZXQtZXhwcmVzc2lvbi1vcGVyYXRvcigkZXhwcmVzc2lvbik7XG4gICRkaW1lbnNpb246IGdldC1leHByZXNzaW9uLWRpbWVuc2lvbigkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcbiAgJHByZWZpeDogZ2V0LWV4cHJlc3Npb24tcHJlZml4KCRvcGVyYXRvcik7XG4gICR2YWx1ZTogZ2V0LWV4cHJlc3Npb24tdmFsdWUoJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XG5cbiAgQHJldHVybiAnKCN7JHByZWZpeH0tI3skZGltZW5zaW9ufTogI3skdmFsdWV9KSc7XG59XG5cbi8vL1xuLy8vIFNsaWNlIGAkbGlzdGAgYmV0d2VlbiBgJHN0YXJ0YCBhbmQgYCRlbmRgIGluZGV4ZXNcbi8vL1xuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkbGlzdCAtIExpc3QgdG8gc2xpY2Vcbi8vLyBAcGFyYW0ge051bWJlcn0gJHN0YXJ0IFsxXSAtIFN0YXJ0IGluZGV4XG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRlbmQgW2xlbmd0aCgkbGlzdCldIC0gRW5kIGluZGV4XG4vLy9cbi8vLyBAcmV0dXJuIHtMaXN0fSBTbGljZWQgbGlzdFxuLy8vXG5AZnVuY3Rpb24gc2xpY2UoJGxpc3QsICRzdGFydDogMSwgJGVuZDogbGVuZ3RoKCRsaXN0KSkge1xuICBAaWYgbGVuZ3RoKCRsaXN0KSA8IDEgb3IgJHN0YXJ0ID4gJGVuZCB7XG4gICAgQHJldHVybiAoKTtcbiAgfVxuXG4gICRyZXN1bHQ6ICgpO1xuXG4gIEBmb3IgJGkgZnJvbSAkc3RhcnQgdGhyb3VnaCAkZW5kIHtcbiAgICAkcmVzdWx0OiBhcHBlbmQoJHJlc3VsdCwgbnRoKCRsaXN0LCAkaSkpO1xuICB9XG5cbiAgQHJldHVybiAkcmVzdWx0O1xufVxuXG4vLy8vXG4vLy8gU3RyaW5nIHRvIG51bWJlciBjb252ZXJ0ZXJcbi8vLyBAYXV0aG9yIEh1Z28gR2lyYXVkZWxcbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vLy9cblxuXG4vLy9cbi8vLyBDYXN0cyBhIHN0cmluZyBpbnRvIGEgbnVtYmVyXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZyB8IE51bWJlcn0gJHZhbHVlIC0gVmFsdWUgdG8gYmUgcGFyc2VkXG4vLy9cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9XG4vLy9cbkBmdW5jdGlvbiB0by1udW1iZXIoJHZhbHVlKSB7XG4gIEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gJ251bWJlcicge1xuICAgIEByZXR1cm4gJHZhbHVlO1xuICB9IEBlbHNlIGlmIHR5cGUtb2YoJHZhbHVlKSAhPSAnc3RyaW5nJyB7XG4gICAgJF86IGltLWxvZygnVmFsdWUgZm9yIGB0by1udW1iZXJgIHNob3VsZCBiZSBhIG51bWJlciBvciBhIHN0cmluZy4nKTtcbiAgfVxuXG4gICRmaXJzdC1jaGFyYWN0ZXI6IHN0ci1zbGljZSgkdmFsdWUsIDEsIDEpO1xuICAkcmVzdWx0OiAwO1xuICAkZGlnaXRzOiAwO1xuICAkbWludXM6ICgkZmlyc3QtY2hhcmFjdGVyID09ICctJyk7XG4gICRudW1iZXJzOiAoJzAnOiAwLCAnMSc6IDEsICcyJzogMiwgJzMnOiAzLCAnNCc6IDQsICc1JzogNSwgJzYnOiA2LCAnNyc6IDcsICc4JzogOCwgJzknOiA5KTtcblxuICAvLyBSZW1vdmUgKy8tIHNpZ24gaWYgcHJlc2VudCBhdCBmaXJzdCBjaGFyYWN0ZXJcbiAgQGlmICgkZmlyc3QtY2hhcmFjdGVyID09ICcrJyBvciAkZmlyc3QtY2hhcmFjdGVyID09ICctJykge1xuICAgICR2YWx1ZTogc3RyLXNsaWNlKCR2YWx1ZSwgMik7XG4gIH1cblxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIHN0ci1sZW5ndGgoJHZhbHVlKSB7XG4gICAgJGNoYXJhY3Rlcjogc3RyLXNsaWNlKCR2YWx1ZSwgJGksICRpKTtcblxuICAgIEBpZiBub3QgKGluZGV4KG1hcC1rZXlzKCRudW1iZXJzKSwgJGNoYXJhY3Rlcikgb3IgJGNoYXJhY3RlciA9PSAnLicpIHtcbiAgICAgIEByZXR1cm4gdG8tbGVuZ3RoKGlmKCRtaW51cywgLSRyZXN1bHQsICRyZXN1bHQpLCBzdHItc2xpY2UoJHZhbHVlLCAkaSkpXG4gICAgfVxuXG4gICAgQGlmICRjaGFyYWN0ZXIgPT0gJy4nIHtcbiAgICAgICRkaWdpdHM6IDE7XG4gICAgfSBAZWxzZSBpZiAkZGlnaXRzID09IDAge1xuICAgICAgJHJlc3VsdDogJHJlc3VsdCAqIDEwICsgbWFwLWdldCgkbnVtYmVycywgJGNoYXJhY3Rlcik7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkZGlnaXRzOiAkZGlnaXRzICogMTA7XG4gICAgICAkcmVzdWx0OiAkcmVzdWx0ICsgbWFwLWdldCgkbnVtYmVycywgJGNoYXJhY3RlcikgLyAkZGlnaXRzO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gaWYoJG1pbnVzLCAtJHJlc3VsdCwgJHJlc3VsdCk7XG59XG5cblxuLy8vXG4vLy8gQWRkIGAkdW5pdGAgdG8gYCR2YWx1ZWBcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdmFsdWUgLSBWYWx1ZSB0byBhZGQgdW5pdCB0b1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkdW5pdCAtIFN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgdW5pdFxuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyfSAtIGAkdmFsdWVgIGV4cHJlc3NlZCBpbiBgJHVuaXRgXG4vLy9cbkBmdW5jdGlvbiB0by1sZW5ndGgoJHZhbHVlLCAkdW5pdCkge1xuICAkdW5pdHM6ICgncHgnOiAxcHgsICdjbSc6IDFjbSwgJ21tJzogMW1tLCAnJSc6IDElLCAnY2gnOiAxY2gsICdwYyc6IDFwYywgJ2luJzogMWluLCAnZW0nOiAxZW0sICdyZW0nOiAxcmVtLCAncHQnOiAxcHQsICdleCc6IDFleCwgJ3Z3JzogMXZ3LCAndmgnOiAxdmgsICd2bWluJzogMXZtaW4sICd2bWF4JzogMXZtYXgpO1xuXG4gIEBpZiBub3QgaW5kZXgobWFwLWtleXMoJHVuaXRzKSwgJHVuaXQpIHtcbiAgICAkXzogaW0tbG9nKCdJbnZhbGlkIHVuaXQgYCN7JHVuaXR9YC4nKTtcbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlICogbWFwLWdldCgkdW5pdHMsICR1bml0KTtcbn1cblxuLy8vXG4vLy8gVGhpcyBtaXhpbiBhaW1zIGF0IHJlZGVmaW5pbmcgdGhlIGNvbmZpZ3VyYXRpb24ganVzdCBmb3IgdGhlIHNjb3BlIG9mXG4vLy8gdGhlIGNhbGwuIEl0IGlzIGhlbHBmdWwgd2hlbiBoYXZpbmcgYSBjb21wb25lbnQgbmVlZGluZyBhbiBleHRlbmRlZFxuLy8vIGNvbmZpZ3VyYXRpb24gc3VjaCBhcyBjdXN0b20gYnJlYWtwb2ludHMgKHJlZmVycmVkIHRvIGFzIHR3ZWFrcG9pbnRzKVxuLy8vIGZvciBpbnN0YW5jZS5cbi8vL1xuLy8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxuLy8vXG4vLy8gQHBhcmFtIHtNYXB9ICR0d2Vha3BvaW50cyBbKCldIC0gTWFwIG9mIHR3ZWFrcG9pbnRzIHRvIGJlIG1lcmdlZCB3aXRoIGAkYnJlYWtwb2ludHNgXG4vLy8gQHBhcmFtIHtNYXB9ICR0d2Vhay1tZWRpYS1leHByZXNzaW9ucyBbKCldIC0gTWFwIG9mIHR3ZWFrZWQgbWVkaWEgZXhwcmVzc2lvbnMgdG8gYmUgbWVyZ2VkIHdpdGggYCRtZWRpYS1leHByZXNzaW9uYFxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEV4dGVuZCB0aGUgZ2xvYmFsIGJyZWFrcG9pbnRzIHdpdGggYSB0d2Vha3BvaW50XG4vLy8gIEBpbmNsdWRlIG1lZGlhLWNvbnRleHQoKCdjdXN0b20nOiA2NzhweCkpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIEBpbmNsdWRlIG1lZGlhKCc+cGhvbmUnLCAnPD1jdXN0b20nKSB7XG4vLy8gICAgICAgLy8gLi4uXG4vLy8gICAgICB9XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gRXh0ZW5kIHRoZSBnbG9iYWwgbWVkaWEgZXhwcmVzc2lvbnMgd2l0aCBhIGN1c3RvbSBvbmVcbi8vLyAgQGluY2x1ZGUgbWVkaWEtY29udGV4dCgkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnM6ICgnYWxsJzogJ2FsbCcpKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBAaW5jbHVkZSBtZWRpYSgnYWxsJywgJz5waG9uZScpIHtcbi8vLyAgICAgICAvLyAuLi5cbi8vLyAgICAgIH1cbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBFeHRlbmQgYm90aCBjb25maWd1cmF0aW9uIG1hcHNcbi8vLyAgQGluY2x1ZGUgbWVkaWEtY29udGV4dCgoJ2N1c3RvbSc6IDY3OHB4KSwgKCdhbGwnOiAnYWxsJykpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIEBpbmNsdWRlIG1lZGlhKCdhbGwnLCAnPnBob25lJywgJzw9Y3VzdG9tJykge1xuLy8vICAgICAgIC8vIC4uLlxuLy8vICAgICAgfVxuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG5AbWl4aW4gbWVkaWEtY29udGV4dCgkdHdlYWtwb2ludHM6ICgpLCAkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnM6ICgpKSB7XG4gIC8vIFNhdmUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cbiAgJGdsb2JhbC1icmVha3BvaW50czogJGJyZWFrcG9pbnRzO1xuICAkZ2xvYmFsLW1lZGlhLWV4cHJlc3Npb25zOiAkbWVkaWEtZXhwcmVzc2lvbnM7XG5cbiAgLy8gVXBkYXRlIGdsb2JhbCBjb25maWd1cmF0aW9uXG4gICRicmVha3BvaW50czogbWFwLW1lcmdlKCRicmVha3BvaW50cywgJHR3ZWFrcG9pbnRzKSAhZ2xvYmFsO1xuICAkbWVkaWEtZXhwcmVzc2lvbnM6IG1hcC1tZXJnZSgkbWVkaWEtZXhwcmVzc2lvbnMsICR0d2Vhay1tZWRpYS1leHByZXNzaW9ucykgIWdsb2JhbDtcblxuICBAY29udGVudDtcblxuICAvLyBSZXN0b3JlIGdsb2JhbCBjb25maWd1cmF0aW9uXG4gICRicmVha3BvaW50czogJGdsb2JhbC1icmVha3BvaW50cyAhZ2xvYmFsO1xuICAkbWVkaWEtZXhwcmVzc2lvbnM6ICRnbG9iYWwtbWVkaWEtZXhwcmVzc2lvbnMgIWdsb2JhbDtcbn1cblxuLy8vL1xuLy8vIGluY2x1ZGUtbWVkaWEgcHVibGljIGV4cG9zZWQgQVBJXG4vLy8gQGF1dGhvciBFZHVhcmRvIEJvdWNhc1xuLy8vIEBhY2Nlc3MgcHVibGljXG4vLy8vXG5cblxuLy8vXG4vLy8gR2VuZXJhdGVzIGEgbWVkaWEgcXVlcnkgYmFzZWQgb24gYSBsaXN0IG9mIGNvbmRpdGlvbnNcbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gICAkY29uZGl0aW9ucyAgLSBNZWRpYSBxdWVyeSBjb25kaXRpb25zXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBhIHNpbmdsZSBzZXQgYnJlYWtwb2ludFxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPnBob25lJykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCB0d28gc2V0IGJyZWFrcG9pbnRzXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+cGhvbmUnLCAnPD10YWJsZXQnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIGN1c3RvbSB2YWx1ZXNcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49MzU4cHgnLCAnPDg1MHB4JykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBzZXQgYnJlYWtwb2ludHMgd2l0aCBjdXN0b20gdmFsdWVzXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+ZGVza3RvcCcsICc8PTEzNTBweCcpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggYSBzdGF0aWMgZXhwcmVzc2lvblxuLy8vICBAaW5jbHVkZSBtZWRpYSgncmV0aW5hMngnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBNaXhpbmcgZXZlcnl0aGluZ1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj0zNTBweCcsICc8dGFibGV0JywgJ3JldGluYTN4JykgeyB9XG4vLy9cbkBtaXhpbiBtZWRpYSgkY29uZGl0aW9ucy4uLikge1xuICBAaWYgKCRpbS1tZWRpYS1zdXBwb3J0IGFuZCBsZW5ndGgoJGNvbmRpdGlvbnMpID09IDApIG9yXG4gICAgICAobm90ICRpbS1tZWRpYS1zdXBwb3J0IGFuZCBpbS1pbnRlcmNlcHRzLXN0YXRpYy1icmVha3BvaW50KCRjb25kaXRpb25zLi4uKSkge1xuICAgIEBjb250ZW50O1xuICB9IEBlbHNlIGlmICgkaW0tbWVkaWEtc3VwcG9ydCBhbmQgbGVuZ3RoKCRjb25kaXRpb25zKSA+IDApIHtcbiAgICBAbWVkaWEgI3t1bnF1b3RlKHBhcnNlLWV4cHJlc3Npb24obnRoKCRjb25kaXRpb25zLCAxKSkpfSB7XG4gICAgICAvLyBSZWN1cnNpdmUgY2FsbFxuICAgICAgQGluY2x1ZGUgbWVkaWEoc2xpY2UoJGNvbmRpdGlvbnMsIDIpLi4uKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiQG1peGluIGZsZXgtY29sdW1uIHtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cblxuQG1peGluIGZsZXgtY2VudGVyIHtcblx0ZGlzcGxheTogZmxleDtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbkBtaXhpbiBmbGV4LWNlbnRlci1jb2x1bW4ge1xuXHRAaW5jbHVkZSBmbGV4LWNlbnRlcjtcblx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cblxuQG1peGluIGZsZXgtY2VudGVyLXZlcnQge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG5AbWl4aW4gZmxleC1jZW50ZXItaG9yaXoge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cbiIsIi8vIGNsZWFyZml4XG5AbWl4aW4gY2xlYXJmaXgoKSB7XG4gICAgJjpiZWZvcmUsICY6YWZ0ZXIge1xuICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgICAgY29udGVudDogXCIgXCI7XG4gICAgfVxuICAgICY6YWZ0ZXIge1xuICAgICAgICBjbGVhcjogYm90aDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb3Zlci1iYWNrZ3JvdW5kIHtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xufVxuXG4vLyByb3RhdGVcbkBtaXhpbiByb3RhdGUoJGRlZykge1xuICAgIEBpbmNsdWRlIHRyYW5zZm9ybShyb3RhdGUoI3skZGVnfWRlZykpO1xuICAgIG91dGxpbmU6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbi8vIHNjYWxlXG5AbWl4aW4gc2NhbGUoJHgsJHkpIHtcbiAgICBAaW5jbHVkZSB0cmFuc2Zvcm0oc2NhbGUoJHgsICR5KSk7XG59XG5cbi8vIHRyYW5zbGF0ZVxuQG1peGluIHRyYW5zbGF0ZSgkeCwgJHkpIHtcbiAgICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlKCR4LCAkeSkpO1xufVxuXG4vLyBza2V3XG5AbWl4aW4gc2tldygkeCwgJHkpIHtcbiAgICBAaW5jbHVkZSB0cmFuc2Zvcm0oc2tldygjeyR4fWRlZywgI3skeX1kZWcpKTtcbiAgICBvdXRsaW5lOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG5cbkBtaXhpbiBwbGFjZWhvbGRlciB7XG4gICAgJjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gICAgICAgIEBjb250ZW50XG4gICAgfVxuICAgICY6LW1vei1wbGFjZWhvbGRlciB7XG4gICAgICAgIEBjb250ZW50XG4gICAgfVxuICAgICY6Oi1tb3otcGxhY2Vob2xkZXIge1xuICAgICAgICBAY29udGVudFxuICAgIH1cbiAgICAmOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XG4gICAgICAgIEBjb250ZW50XG4gICAgfVxufVxuXG5AbWl4aW4gZ3JhZGllbnQtaG9yaXpvbnRhbCgkc3RhcnQtY29sb3I6ICM1NTUsICRlbmQtY29sb3I6ICMzMzMsICRzdGFydC1wZXJjZW50OiAwJSwgJGVuZC1wZXJjZW50OiAxMDAlKSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAkc3RhcnQtY29sb3IgJHN0YXJ0LXBlcmNlbnQsICRlbmQtY29sb3IgJGVuZC1wZXJjZW50KTsgLy8gU3RhbmRhcmQsIElFMTAsIEZpcmVmb3ggMTYrLCBPcGVyYSAxMi4xMCssIFNhZmFyaSA3KywgQ2hyb21lIDI2K1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcbn1cblxuLy8gVmVydGljYWwgZ3JhZGllbnQsIGZyb20gdG9wIHRvIGJvdHRvbVxuLy9cbi8vIENyZWF0ZXMgdHdvIGNvbG9yIHN0b3BzLCBzdGFydCBhbmQgZW5kLCBieSBzcGVjaWZ5aW5nIGEgY29sb3IgYW5kIHBvc2l0aW9uIGZvciBlYWNoIGNvbG9yIHN0b3AuXG4vLyBDb2xvciBzdG9wcyBhcmUgbm90IGF2YWlsYWJsZSBpbiBJRTkgYW5kIGJlbG93LlxuQG1peGluIGdyYWRpZW50LXZlcnRpY2FsKCRzdGFydC1jb2xvcjogIzU1NSwgJGVuZC1jb2xvcjogIzMzMywgJHN0YXJ0LXBlcmNlbnQ6IDAlLCAkZW5kLXBlcmNlbnQ6IDEwMCUpIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAkc3RhcnQtY29sb3IgJHN0YXJ0LXBlcmNlbnQsICRlbmQtY29sb3IgJGVuZC1wZXJjZW50KTsgLy8gU3RhbmRhcmQsIElFMTAsIEZpcmVmb3ggMTYrLCBPcGVyYSAxMi4xMCssIFNhZmFyaSA3KywgQ2hyb21lIDI2K1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcbn1cblxuQG1peGluIGdyYWRpZW50LWRpcmVjdGlvbmFsKCRzdGFydC1jb2xvcjogIzU1NSwgJGVuZC1jb2xvcjogIzMzMywgJGRlZzogNDVkZWcpIHtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KCRkZWcsICRzdGFydC1jb2xvciwgJGVuZC1jb2xvcik7IC8vIFN0YW5kYXJkLCBJRTEwLCBGaXJlZm94IDE2KywgT3BlcmEgMTIuMTArLCBTYWZhcmkgNyssIENocm9tZSAyNitcbn1cblxuQG1peGluIGdyYWRpZW50LWhvcml6b250YWwtdGhyZWUtY29sb3JzKCRzdGFydC1jb2xvcjogIzAwYjNlZSwgJG1pZC1jb2xvcjogIzdhNDNiNiwgJGNvbG9yLXN0b3A6IDUwJSwgJGVuZC1jb2xvcjogI2MzMzI1Zikge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgJHN0YXJ0LWNvbG9yLCAkbWlkLWNvbG9yICRjb2xvci1zdG9wLCAkZW5kLWNvbG9yKTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xufVxuXG5AbWl4aW4gZ3JhZGllbnQtdmVydGljYWwtdGhyZWUtY29sb3JzKCRzdGFydC1jb2xvcjogIzAwYjNlZSwgJG1pZC1jb2xvcjogIzdhNDNiNiwgJGNvbG9yLXN0b3A6IDUwJSwgJGVuZC1jb2xvcjogI2MzMzI1Zikge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCgkc3RhcnQtY29sb3IsICRtaWQtY29sb3IgJGNvbG9yLXN0b3AsICRlbmQtY29sb3IpO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG59XG5cbkBtaXhpbiBncmFkaWVudC1yYWRpYWwoJGlubmVyLWNvbG9yOiAjNTU1LCAkb3V0ZXItY29sb3I6ICMzMzMpIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiByYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCAkaW5uZXItY29sb3IsICRvdXRlci1jb2xvcik7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbn1cblxuQG1peGluIGdyYWRpZW50LXN0cmlwZWQoJGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LC4xNSksICRhbmdsZTogNDVkZWcpIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoJGFuZ2xlLCAkY29sb3IgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDUwJSwgJGNvbG9yIDUwJSwgJGNvbG9yIDc1JSwgdHJhbnNwYXJlbnQgNzUlLCB0cmFuc3BhcmVudCk7XG59XG4iLCIvKiBDb2xvciBWYXJpYWJsZXMgKi9cblxuJGMtYnJhbmQtZGFyazogIzAwMjM1NTtcbiRjLWJyYW5kLWRhcmsyOiAjMTQzNDYyO1xuJGMtYnJhbmQtbGlnaHQ6ICNCMTg3NDk7XG5cbiRjLWJvcmRlci1ncmF5OiAjQ0NEM0Q0O1xuXG4kd2hpdGU6ICNmZmY7XG4kYmx1ZTogIzAwMjM1NTtcbiRibHVlLWRhcms6ICMxNDM0NjI7XG4kYmx1ZS1saWdodDogIzE4NDk4MjtcblxuLy8gJGMtdGV4dC1wcmltYXJ5OiAkYy1icmFuZC1kYXJrO1xuJGMtdGV4dC1wcmltYXJ5OiAkYmx1ZTtcbiRjLXRleHQtbGlnaHQ6ICM1NTU1NTU7XG4kYy10ZXh0LWdyYXk6ICM4MTkxOTU7XG5cbiRiZy1ib2R5OiAjZmZmO1xuJGJnLWdvbGQ6IGxpbmVhci1ncmFkaWVudCgxMTBkZWcsICAjODg2NjM1IDAlLCM4OTY2MzUgMTAlLCNiNThmNTMgMjMlLCNjYmEyNjQgMzElLCM5NDcyNDAgNjUlLCNjZGEyNjAgOTAlLCNjZGEyNjAgMTAwJSk7XG4kYmctYmx1ZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjMTQzMzVmIDAlLCAjMTUzOTZkIDYwJSwgIzE3NDA3NiA4MCUsICMxMzMzNjIgMTAwJSk7XG4kYmctc2lsdmVyOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICM3ZTdlN2UgMCwgI2ZmZiAyMCUsICM3OTc5NzkgMTAwJSk7XG5cbi5jLWdvbGQge1xuXHRjb2xvcjogJHdoaXRlO1xuXHRAaW5jbHVkZSBtZWRpYShcIj5kZXNrdG9wXCIpIHtcblx0XHQvLyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsICNCMTg3NDkgMCUsICNDQkEyNjQgMjMlLCAjOTQ3MjQwIDY1JSwgI0NDQTI2MCAxMDAlKTtcblx0XHRiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICM3ZTdlN2UgMCwgI2ZmZiAyMCUsICM3OTc5NzkgMTAwJSk7XG5cdFx0YmFja2dyb3VuZC1jbGlwOiBib3JkZXItYm94O1xuXHRcdC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiB0ZXh0O1xuXHRcdC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0fVxufVxuXG4uYy1ibHVlIHtcblx0Y29sb3I6ICRibHVlO1xuXHRAaW5jbHVkZSBtZWRpYShcIj5kZXNrdG9wXCIpIHtcblx0XHQvLyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsICNCMTg3NDkgMCUsICNDQkEyNjQgMjMlLCAjOTQ3MjQwIDY1JSwgI0NDQTI2MCAxMDAlKTtcblx0XHRiYWNrZ3JvdW5kOiAkYmctYmx1ZTtcblx0XHRiYWNrZ3JvdW5kLWNsaXA6IGJvcmRlci1ib3g7XG5cdFx0LXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7XG5cdFx0LXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6IHRyYW5zcGFyZW50O1xuXHR9XG59XG4iLCIvKiBGb250IFZhcmlhYmxlcyAqL1xuXG4kZm9udC1mYW1pbHktc2Fucy1zZXJpZjogVmVyZGFuYSwgc2Fucy1zZXJpZjtcbiRmb250LWZhbWlseS1zZXJpZjogR2VvcmdpYSwgc2VyaWY7XG4kZm9udC1mYW1pbHktbW9ub3NwYWNlOiBTRk1vbm8tUmVndWxhciwgTWVubG8sIE1vbmFjbywgQ29uc29sYXMsIFwiTGliZXJhdGlvbiBNb25vXCIsIFwiQ291cmllciBOZXdcIiwgbW9ub3NwYWNlICFkZWZhdWx0O1xuXG4vLyAkZi1wcmltYXJ5OiBcdCdsYXRvJywgJGZvbnQtZmFtaWx5LXNhbnMtc2VyaWY7XG4vLyAkZi1zZWNvbmRhcnk6IFx0J3BsYXlmYWlyJywgJGZvbnQtZmFtaWx5LXNlcmlmO1xuXG4kZi1wcmltYXJ5OiBcIml0Yy1hdmFudC1nYXJkZS1nb3RoaWMtcHJvXCIsIHNhbnMtc2VyaWY7XG4kZi1zZWNvbmRhcnk6IFwiRnJ1dGlnZXIgTFQgU3RkXCIsIHNhbnMtc2VyaWY7XG5cbiRmdy1ub3JtYWw6XHQ0MDA7XG4kZnctbWVkaXVtOlx0NTAwO1xuJGZ3LXNlbWk6XHQ2MDA7XG4kZnctYm9sZDpcdDcwMDtcbiRmdy1ibGFjazpcdDkwMDtcblxuJGxoLWJhc2U6IDEuNTsiLCIvKiBNZWRpYSBRdWVyaWVzIEJyZWFrcG9pbnRzICovXG5cbiRicmVha3BvaW50czogKFxuICAgICdwaG9uZSc6IDMyMHB4LFxuICAgICd0YWJsZXQnOiA3NjhweCxcbiAgICAnZGVza3RvcCc6IDEwMjRweCxcbiAgICAnZGVza3RvcC1tJzogMTI4MHB4LFxuICAgICdkZXNrdG9wLWwnOiAxNDQwcHgsXG4gICAgJ2Rlc2t0b3AtMTkyMCc6IDE5MjBweFxuKTtcbiIsIi8qIE1lZGlhIFF1ZXJpZXMgQnJlYWtwb2ludHMgKi9cblxuJGJyZWFrcG9pbnRzOiAoXG4gICAgJ3Bob25lJzogMzIwcHgsXG4gICAgJ3Bob25lLWwnOiA1NzZweCxcbiAgICAndGFibGV0JzogNzY4cHgsXG4gICAgJ2Rlc2t0b3AnOiAxMDI0cHgsXG4gICAgJ2Rlc2t0b3AtbSc6IDEyODBweCxcbiAgICAnZGVza3RvcC1sJzogMTQ0MHB4LFxuXHQnZGVza3RvcC0xOTIwJzogMTkyMHB4XG4pO1xuXG4vKiBMYXlvdXQgc2l6ZXMgKi9cblxuJGNvbnRlbnQtd2lkdGgteGw6IFx0MTg4MHB4O1xuJGNvbnRlbnQtd2lkdGg6IFx0MTQ0MHB4O1xuJGNvbnRlbnQtd2lkdGgtbDogXHQxMjgwcHg7XG4kY29udGVudC13aWR0aC1tOiBcdDEwMjRweDtcbiRjb250ZW50LXdpZHRoLXM6IFx0NzY4cHg7XG4kY29udGVudC13aWR0aC14czogXHQ1NzZweDtcblxuJHNlY3Rpb24tdmVydGljYWwtZ2FwOiA4dm1pbjtcblxuJG5hdmJhci13aWR0aF9fbDogNjBweDtcbiRuYXZiYXItd2lkdGg6IDQ1cHg7XG5cbiRwYWdlLXRvcC1zcGFjZV9fbDogMTIwcHgiLCIuYXJyb3ctcmlnaHQtYmx1ZSB7XG5cdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0Nzdmcgd2lkdGg9JzE5JyBoZWlnaHQ9JzI2JyBmaWxsPSdub25lJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnJTNFJTNDcGF0aCBmaWxsLXJ1bGU9J2V2ZW5vZGQnIGNsaXAtcnVsZT0nZXZlbm9kZCcgZD0nTTE4LjE3MiAxMi45MjdMLjQzOCAyNS4zIDcuNTEgMTIuOTI3LjQ0LjY3bDE3LjczMyAxMi4yNTd6JyBmaWxsPSclMjMwMDIzNTUnLyUzRSUzQy9zdmclM0VcIik7XG5cdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG59XG4uYXJyb3ctcmlnaHQtb3JhbmdlIHtcblx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB3aWR0aD0nMTknIGhlaWdodD0nMjYnIGZpbGw9J25vbmUnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyclM0UlM0NwYXRoIGZpbGwtcnVsZT0nZXZlbm9kZCcgY2xpcC1ydWxlPSdldmVub2RkJyBkPSdNMTguMTcyIDEyLjkyN0wuNDM4IDI1LjMgNy41MSAxMi45MjcuNDQuNjdsMTcuNzMzIDEyLjI1N3onIGZpbGw9JyUyM0IxODc0OScvJTNFJTNDL3N2ZyUzRVwiKTtcblx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbn1cbi5hcnJvdy1yaWdodC13aGl0ZSB7XG5cdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0Nzdmcgd2lkdGg9JzE5JyBoZWlnaHQ9JzI2JyBmaWxsPSdub25lJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnJTNFJTNDcGF0aCBmaWxsLXJ1bGU9J2V2ZW5vZGQnIGNsaXAtcnVsZT0nZXZlbm9kZCcgZD0nTTE4LjE3MiAxMi45MjdMLjQzOCAyNS4zIDcuNTEgMTIuOTI3LjQ0LjY3bDE3LjczMyAxMi4yNTd6JyBmaWxsPSclMjNmZmZmZmYnLyUzRSUzQy9zdmclM0VcIik7XG5cdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG59XG4uaWNvbi1lbXB0eSB7XG5cdGhlaWdodDogNTVweDtcblx0d2lkdGg6IDU1cHg7XG5cdG1pbi13aWR0aDogNTVweDtcblx0Ym9yZGVyLXJhZGl1czogNTAlO1xuXHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHdpZHRoPScxOScgaGVpZ2h0PScxOCcgZmlsbD0nbm9uZScgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyUzRSUzQ3BhdGggZD0nTTEuMjMuNDc4bDE3LjE1NiAxNy4xNTVNMTguMzg2LjQ3OEwxLjIzMSAxNy42MzMnIHN0cm9rZT0nJTIzMDAwJyBzdHJva2Utb3BhY2l0eT0nLjUnLyUzRSUzQy9zdmclM0VcIik7XG5cdGJhY2tncm91bmQtY29sb3I6ICNlZGVkZWQ7XG5cdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cdGJhY2tncm91bmQtcG9zaXRpb246IDUwJSA1MCU7XG5cdG92ZXJmbG93OiBoaWRkZW47XG59IiwiQGltcG9ydCBcImNvbnRhY3QvY29udGFjdF9sZWZ0XCI7XG5AaW1wb3J0IFwiY29udGFjdC9jb250YWN0X3JpZ2h0XCI7XG5AaW1wb3J0IFwiY29udGFjdC9jb250YWN0X3RhYnNcIjtcblxuLmNvbnRhY3QtZGF0YSB7XG4gICAgQGluY2x1ZGUgbWVkaWEoXCI+ZGVza3RvcFwiKSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgfVxuICAgICZfX2NvbnRlbnQge1xuICAgICAgICBmbGV4OiAxO1xuICAgIH1cbn1cblxuLmNvbnRhY3QtdG9wLWdhcCB7XG4gICAgQGluY2x1ZGUgbWVkaWEoXCI8PWRlc2t0b3BcIikge1xuICAgICAgICBwYWRkaW5nLXRvcDogNjBweDtcbiAgICB9XG4gICAgQGluY2x1ZGUgbWVkaWEoXCI+ZGVza3RvcFwiKSB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAxMjBweDtcbiAgICB9XG4gICAgQGluY2x1ZGUgbWVkaWEoXCI+ZGVza3RvcC1sXCIpIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDE2MHB4O1xuICAgIH1cbn1cblxuXG4iLCIuY29udGFjdC1sZWZ0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDA7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMWVtO1xuICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgIEBpbmNsdWRlIG1lZGlhKFwiPGRlc2t0b3BcIikge1xuICAgICAgICBwYWRkaW5nOiAyMHB4IDA7XG4gICAgfVxuICAgIEBpbmNsdWRlIG1lZGlhKFwiPj1kZXNrdG9wXCIpIHtcbiAgICAgICAgd2lkdGg6IDQyJTtcbiAgICAgICAgbWluLXdpZHRoOiA0MiU7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDEwNDBweDtcbiAgICB9XG5cbiAgICAmX193cmFwIHtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDI0MDdiO1xuICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPGRlc2t0b3BcIikge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMwcHg7XG4gICAgICAgIH1cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI+ZGVza3RvcFwiKSB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMDB2aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj5kZXNrdG9wLWxcIikge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgICAgIC8vbWluLWhlaWdodDogODMwcHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pbm5lciB7XG4gICAgICAgIG1heC13aWR0aDogNDAwcHg7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjxkZXNrdG9wXCIpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDIwcHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRjLWJyYW5kLWRhcmssIC45KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3RpdGxlIHtcbiAgICAgICAgQGV4dGVuZCAuYy1nb2xkO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4xZW07XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkZnctYm9sZDtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRmLXByaW1hcnk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDI1cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICAgICAgJi5sYXJnZSB7XG4gICAgICAgICAgZm9udC1zaXplOiAyLjJyZW07XG4gICAgICAgIH1cblxuICAgICAgICBzcGFuIHtcbiAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICBjb250ZW50OiAnIC8gJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pdGVtcyB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XG4gICAgfVxuXG4gICAgJl9faXRlbSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgICAgIGEge1xuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6IHJnYmEoJHdoaXRlLCAwLjYpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faWNvbiB7XG4gICAgICAgIHdpZHRoOiAxOHB4O1xuICAgICAgICBoZWlnaHQ6IDIycHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICAgICAgY29sb3I6IGN1cnJlbnRDb2xvcjtcbiAgICB9XG5cbiAgICAmX19tYXAge1xuICAgICAgICBwYWRkaW5nOiAxMHZtaW47XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIC5pbm5lciB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDUwMHB4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cbiAgICAgICAgJi10aXRsZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFlbTtcbiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAuMWVtO1xuICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRjLWJyYW5kLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmcmFtZSxcbiAgICAgICAgLm1hcC1ob2xkZXIge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyOiA0cHggc29saWQgJGMtYnJhbmQtbGlnaHQgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuXG4uY29udGFjdHMtbGlzdCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIG1hcmdpbi10b3A6IDJlbTtcbiAgICAmX19pdGVtIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjVweDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiA0MHB4O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGZvbnQtc2l6ZTogMS43cmVtO1xuICAgICAgICAmOm50aC1jaGlsZChvZGQpIHtcbiAgICAgICAgICAgIHdpZHRoOiA2MCU7XG4gICAgICAgIH1cbiAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgd2lkdGg6IDM4JTtcbiAgICAgICAgfVxuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICB9XG4gICAgfVxuICAgICZfX2ljb24ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAyNXB4O1xuICAgICAgICB3aWR0aDogMjhweDtcbiAgICAgICAgY29sb3I6ICRjLWJyYW5kLWxpZ2h0O1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHRvcDogMnB4O1xuICAgIH1cbiAgICAmX190aXRsZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS44cmVtO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgICAgICBmb250LWZhbWlseTogJGYtcHJpbWFyeTtcbiAgICB9XG4gICAgJl9fcG9zIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgICAgIGNvbG9yOiAkYy10ZXh0LWdyYXk7XG4gICAgfVxufVxuXG4ucGFnZS1kZWFsZXIge1xuICAgIC5jb250YWN0LWxlZnRfX3dyYXAge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL2JnL2JnLWxlZnQuanBnKTtcbiAgICB9XG4gICAgLmNvbnRhY3QtbGVmdF9faXRlbSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgfVxuICAgIC5jb250YWN0LWxlZnRfX2lubmVyIHtcbiAgICAgICAgY29sb3I6ICNmZmYgIWltcG9ydGFudDtcbiAgICB9XG4gICAgLmNvbnRhY3QtaW5mb19faGVhZGluZyB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogNjBweDtcbiAgICB9XG4gICAgLmRlYWxlci1kYXRhIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICB9XG4gICAgLmRlYWxlci1jbGFzcyB7XG4gICAgICAgIG1hcmdpbjogMTVweCAwO1xuICAgICAgICBkbCB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxNXB4O1xuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgLy9AZXh0ZW5kIC5jLWdvbGQ7XG4gICAgICAgICAgICAgICAgLy90ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAzcHggNXB4O1xuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufSIsIi5jb250YWN0LWluZm8ge1xuICAgIGZsZXg6IDE7XG4gICAgQGluY2x1ZGUgbWVkaWEoXCI+PWRlc2t0b3BcIikge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAzMHB4O1xuICAgIH1cbiAgICAmX19pbm5lciB7XG4gICAgICAgIG1heC13aWR0aDogNzEzcHg7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPGRlc2t0b3BcIikge1xuICAgICAgICAgICAgcGFkZGluZzogMjBweDtcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj49ZGVza3RvcFwiKSB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogNzBweDtcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj5kZXNrdG9wLWxcIikge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDE0MHB4O1xuICAgICAgICB9XG4gICAgfVxuICAgICZfX3RhYiB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj49dGFibGV0XCIpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgLy9ib3JkZXItYm90dG9tOiAxcHggc29saWQgJGMtYm9yZGVyLWdyYXk7XG5cbiAgICAgICAgLmNvbnRlbnQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAmLmlzLW9wZW4ge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogdGFicy1hcHBlYXJfX3RvcCAuM3MgbGluZWFyIDEgZm9yd2FyZHM7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX190aXRsZSB7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjFlbTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNDBweDtcbiAgICB9XG4gICAgJl9fc3VidGl0bGUge1xuICAgICAgICBjb2xvcjogJGMtdGV4dC1ncmF5O1xuICAgICAgICBmb250LXNpemU6IDIuNHJlbTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICAgICAgbWF4LXdpZHRoOiA2NzBweDtcbiAgICB9XG5cbiAgICAmX19yb3cge1xuICAgICAgICBwYWRkaW5nOiAxNXB4IDAgMTVweCAzNXB4O1xuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj49ZGVza3RvcFwiKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAzNXB4IDAgMzVweCA4NXB4O1xuICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMWVtO1xuICAgICAgICB9XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNztcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRjLWJvcmRlci1ncmF5O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgYVtocmVmKj1tYWlsdG9dIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRibHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHAge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjVlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgLmNvbnRhY3QtaW5mb19faWNvbiB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRibHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faGVhZGluZyB7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGNvbG9yOiAkYy1icmFuZC1kYXJrO1xuICAgICAgICBmb250LXdlaWdodDogJGZ3LWJvbGQ7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkZi1wcmltYXJ5O1xuICAgICAgICBmb250LXNpemU6IDIuMnJlbTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMzVweDtcbiAgICB9XG4gICAgJl9fc3ViaGVhZGluZyB7XG4gICAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgICAgY29sb3I6ICRjLXRleHQtZ3JheTtcbiAgICAgICAgbWFyZ2luOiAtMzBweCAwIDMwcHg7XG4gICAgfVxuICAgICZfX2ZpbmQtd3JhcCB7XG4gICAgICAgIC8vZGlzcGxheTogbm9uZTtcbiAgICB9XG4gICAgJl9fZW1haWwtaXRlbSB7XG4gICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgICAgICB9XG4gICAgfVxuICAgICZfX2ZpbmQtbGlua3Mge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj49ZGVza3RvcFwiKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMjVweDtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyNXB4O1xuICAgICAgICB9XG4gICAgICAgIC5saW5rLWFycm93IHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgICZfX2ljb24ge1xuICAgICAgICBtYXgtd2lkdGg6IDI0cHg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDI0cHg7XG4gICAgICAgIHRvcDogMTVweDtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8ZGVza3RvcFwiKSB7XG4gICAgICAgICAgICAuY29udGFjdC1pbmZvX19maW5kLWxpbmtzICYge1xuICAgICAgICAgICAgICAgIHRvcDogMjVweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj49ZGVza3RvcFwiKSB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDQ0cHg7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA0NHB4O1xuICAgICAgICAgICAgdG9wOiAzMHB4O1xuICAgICAgICB9XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgY29sb3I6ICNDQ0QzRDQ7XG4gICAgfVxuXG4gICAgJl9fYWNjZXNzIHtcbiAgICAgICAgJi10eHQge1xuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkZnctYm9sZDtcbiAgICAgICAgICAgICAgICBAZXh0ZW5kIC5jLWJsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19hYm91dCB7XG4gICAgICAgIGltZyB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX190aXRsZS1tb2Ige1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAxcHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkZnctYm9sZDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgLmlzLW9wZW4gJiB7XG4gICAgICAgICAgICBjb2xvcjogJGMtYnJhbmQtbGlnaHQ7XG4gICAgICAgIH1cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBAZXh0ZW5kIC5hcnJvdy1yaWdodC1vcmFuZ2U7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxNXB4O1xuICAgICAgICAgICAgd2lkdGg6IDE1cHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDEycHg7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtNTAlKSByb3RhdGUoOTBkZWcpO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAuaXMtb3BlbiAmIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtNTAlKSByb3RhdGUoLTkwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxufVxuXG4jc2VjdGlvbjEuaXMtb3BlbiArIC5jb250YWN0LWluZm9fX2ZpbmQtd3JhcCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgb3JkZXI6IDM7XG59XG4iLCIuY29udGFjdC10YWJzIHtcbiAgICBtYXJnaW4tYm90dG9tOiA0MHB4O1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0XCIpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAmX19saXN0IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIH1cblxuICAgICZfX2l0ZW0ge1xuICAgICAgICB3aWR0aDogY2FsYygxMDAlLzMgLSAxMnB4KTtcbiAgICAgICAgdHJhbnNpdGlvbjogYm9yZGVyIC4zcztcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRjLWJyYW5kLWxpZ2h0O1xuICAgICAgICB9XG4gICAgfVxuICAgICZfX2xpbmsge1xuICAgICAgICBoZWlnaHQ6IDE4MHB4O1xuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj5kZXNrdG9wLWxcIikge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMjVweDtcbiAgICAgICAgfVxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRjLWJvcmRlci1ncmF5O1xuXG4gICAgICAgIC50YWJzLWFsbG93ZWQgJiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAkYmx1ZTtcbiAgICAgICAgICAgIGJvcmRlci1pbWFnZTogJGJnLWJsdWU7XG4gICAgICAgICAgICBib3JkZXItaW1hZ2Utc2xpY2U6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItaW1hZ2Utc2xpY2U6IDE7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAuM3M7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xuICAgICAgICB9XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgLjNzO1xuICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgIGNvbG9yOiAkYy1icmFuZC1kYXJrO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogLjFlbTtcbiAgICAgICAgJi5pcy1zZWxlY3RlZCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgICZfX2ltZyB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDQ1cHg7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICBmaWx0ZXI6IGdyYXlzY2FsZSgxKTtcbiAgICAgICAgLmlzLXNlbGVjdGVkICYge1xuICAgICAgICAgICAgZmlsdGVyOiBpbnZlcnQoMSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBrZXlmcmFtZXMgdGFicy1hcHBlYXJfX3RvcCB7XG4gICAgMCUge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTMwcHgpO1xuICAgIH1cbiAgICAxMDAlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgIH1cbn1cbiIsIi8qXG4uc2l0ZS1oZWFkZXIge1xuXHRAaW5jbHVkZSBtZWRpYShcIj49ZGVza3RvcFwiKSB7XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xNXB4KTtcblx0XHQmOmJlZm9yZSB7XG5cdFx0XHRoZWlnaHQ6IDY1cHg7XG5cdFx0fVxuXHR9XG5cdEBpbmNsdWRlIG1lZGlhKFwiPmRlc2t0b3AtbFwiKSB7XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yNXB4KTtcblx0XHQmOmJlZm9yZSB7XG5cdFx0XHRoZWlnaHQ6IDg1cHg7XG5cdFx0fVxuXHR9XG5cblx0Jl9fbG9nbyB7XG5cdFx0LmxvZ28taW1nIHtcblx0XHRcdEBpbmNsdWRlIG1lZGlhKFwiPj1kZXNrdG9wXCIpIHtcblx0XHRcdFx0Y2xpcDogcmVjdCgwLCA1MHB4LCA0NHB4LCAwKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRAaW5jbHVkZSBtZWRpYShcIj49ZGVza3RvcFwiKSB7XG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwN3B4KTtcblx0XHR9XG5cdH1cbn1cbiovXG5cbi5wYWdlLWZyIHtcblxuXHRtYXJnaW4tYm90dG9tOiAyMHZtaW47XG5cblx0LmNvbnRhY3QtaW5mb19fc3VidGl0bGUge1xuXHRcdGZvbnQtc2l6ZTogMi4ycmVtXG5cdH1cblxuXHQuY29udGFjdC10b3AtZ2FwIHtcblx0XHRAaW5jbHVkZSBtZWRpYShcIjw9ZGVza3RvcFwiKSB7XG5cdFx0XHRwYWRkaW5nLXRvcDogNjBweDtcblx0XHR9XG5cdFx0QGluY2x1ZGUgbWVkaWEoXCI+ZGVza3RvcFwiKSB7XG5cdFx0XHRwYWRkaW5nLXRvcDogMTAwcHg7XG4gICAgICAmLndpdGgtZmxhZyB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAzNXB4O1xuICAgICAgfVxuXHRcdH1cblx0XHRAaW5jbHVkZSBtZWRpYShcIj5kZXNrdG9wLWxcIikge1xuXHRcdFx0cGFkZGluZy10b3A6IDE0MHB4O1xuICAgICAgJi53aXRoLWZsYWcge1xuICAgICAgICBwYWRkaW5nLXRvcDogNTVweDtcbiAgICAgIH1cblx0XHR9XG5cdH1cblxuXHQuY29udGFjdC1sZWZ0IHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkYy1icmFuZC1kYXJrO1xuXG5cdFx0Jl9fd3JhcCB7XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHRAaW5jbHVkZSBtZWRpYShcIjw9dGFibGV0XCIpIHtcblx0XHRcdFx0cGFkZGluZy1ib3R0b206IDA7XG5cdFx0XHR9XG5cdFx0XHRAaW5jbHVkZSBtZWRpYShcIj50YWJsZXRcIikge1xuXHRcdFx0XHQmOmFmdGVyIHtcblx0XHRcdFx0XHRjb250ZW50OiAnJztcblx0XHRcdFx0XHRoZWlnaHQ6IDYwcHg7XG5cdFx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRcdFx0bGVmdDogMDtcblx0XHRcdFx0XHRib3R0b206IDA7XG5cdFx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHRcdGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byB0b3AsICRjLWJyYW5kLWRhcmssIHRyYW5zcGFyZW50KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0XHQmX19pbm5lciB7XG5cdFx0XHRjb2xvcjogJGMtdGV4dC1ncmF5O1xuXHRcdFx0bWF4LXdpZHRoOiA1MDBweDtcblx0XHR9XG5cdFx0Jl9fY2FwdGlvbiB7XG5cdFx0XHRoZWlnaHQ6IDI0cHg7XG5cdFx0XHRsaW5lLWhlaWdodDogMjRweDtcblx0XHRcdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHRwYWRkaW5nOiAwIDI1cHg7XG5cdFx0XHRmb250LXNpemU6IDEzcHg7XG5cdFx0XHRsZXR0ZXItc3BhY2luZzogMC4xZW07XG5cdFx0XHRjb2xvcjogJGMtYnJhbmQtZGFyaztcblx0XHRcdG1heC13aWR0aDogMjAwcHg7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdG1hcmdpbjogMCBhdXRvO1xuXHRcdFx0QGluY2x1ZGUgbWVkaWEoXCI+dGFibGV0XCIpIHtcblx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHRyaWdodDogMTAlO1xuXHRcdFx0XHRib3R0b206IDUwcHg7XG5cdFx0XHR9XG5cdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiAkYmctZ29sZDtcblx0XHRcdCY6YmVmb3JlLCAmOmFmdGVyIHtcblx0XHRcdFx0Y29udGVudDogJyc7XG5cdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0aGVpZ2h0OiAzcHg7XG5cdFx0XHRcdHdpZHRoOiAzcHg7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRjLWJyYW5kLWRhcms7XG5cdFx0XHRcdGJvcmRlci1yYWRpdXM6IDUwJTtcblx0XHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTUwJSk7XG5cdFx0XHRcdHRvcDogNTAlO1xuXHRcdFx0fVxuXHRcdFx0JjpiZWZvcmUge1xuXHRcdFx0XHRsZWZ0OiAxNXB4O1xuXHRcdFx0fVxuXHRcdFx0JjphZnRlciB7XG5cdFx0XHRcdHJpZ2h0OiAxNXB4O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC5mcmVuY2gtYWlyY3JhZnQtaW1nIHtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdGJvdHRvbTogMDtcblx0XHRcdGxlZnQ6IDUwcHg7XG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAzMCUpO1xuXHRcdFx0bWF4LXdpZHRoOiAxMDUlO1xuXHRcdFx0aGVpZ2h0OiBhdXRvO1xuXHRcdFx0QGluY2x1ZGUgbWVkaWEoXCI8PWRlc2t0b3BcIikge1xuXHRcdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC5jb250YWN0LWluZm8ge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvZnJlbmNoL2JnLXJpZ2h0LmpwZyk7XG5cdFx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDA7XG5cdFx0YmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuXHRcdCZfX3N1YnRpdGxlIHtcblx0XHRcdGNvbG9yOiAkYy1icmFuZC1kYXJrO1xuXHRcdFx0bGV0dGVyLXNwYWNpbmc6IC4wNWVtO1xuXHRcdH1cblx0XHQmX19oZWFkaW5nIHtcblx0XHRcdHRleHQtdHJhbnNmb3JtOiBub25lO1xuXHRcdFx0Zm9udC1mYW1pbHk6ICRmLXNlY29uZGFyeTtcblx0XHRcdGZvbnQtd2VpZ2h0OiA0MDA7XG5cdFx0fVxuXHRcdCZfX3JvdyB7XG5cdFx0XHRwYWRkaW5nLWxlZnQ6IDA7XG5cdFx0fVxuXHRcdCZfX2Zvcm0ge1xuXHRcdFx0Ym9yZGVyLXRvcDogbm9uZTtcblx0XHR9XG5cdFx0Jl9fYWJvdXQge1xuXHRcdFx0aDIsIGgzLCBoNCB7XG5cdFx0XHRcdHRleHQtdHJhbnNmb3JtOiBub25lO1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiAuNWVtO1xuXHRcdFx0fVxuXHRcdFx0aDMge1xuXHRcdFx0XHRmb250LXNpemU6IDNyZW07XG5cdFx0XHR9XG5cdFx0XHRoNCB7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMi41cmVtO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC5jdXN0b20tZm9ybSB7XG5cdFx0bWF4LXdpZHRoOiA3MDBweDtcblx0fVxuXG59XG5cbi5haXItZGF0YSB7XG5cdCZfX2hlYWRpbmcge1xuXHRcdGZvbnQtc2l6ZTogNnJlbTtcblx0XHRtYXJnaW4tYm90dG9tOiAuOGVtO1xuXHRcdGxldHRlci1zcGFjaW5nOiAwLjFlbTtcblx0fVxuXHQmX19pdGVtcyB7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRmbGV4LXdyYXA6IHdyYXA7XG5cdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0XHRsZXR0ZXItc3BhY2luZzogMC4xZW07XG5cdFx0bWFyZ2luLWJvdHRvbTogNXZtaW47XG5cdH1cblx0Jl9fdGl0bGUsXG5cdCZfX3ZhbHVlIHtcblx0XHRwYWRkaW5nOiAuNWVtIDE1cHg7XG5cdFx0bWFyZ2luOiAwIDAgMXB4O1xuXHR9XG5cdCZfX3RpdGxlIHtcblx0XHR3aWR0aDogMjUlO1xuXHRcdHRleHQtYWxpZ246IHJpZ2h0O1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICRjLWJyYW5kLWRhcms7XG5cdFx0Y29sb3I6ICNmZmY7XG5cdFx0Zm9udC1zaXplOiAxLjZyZW07XG5cdFx0Zm9udC13ZWlnaHQ6IDcwMDtcblx0fVxuXHQmX192YWx1ZSB7XG5cdFx0d2lkdGg6IDcwJTtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkYy1ib3JkZXItZ3JheTtcblx0XHRmb250LXNpemU6IDEuNHJlbTtcblx0fVxu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 */
