/* 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, .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='%23002355'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
}

.arrow-right-orange {
  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;
}

.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+PWRlc2t0b3BcIikge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAzMHB4O1xuICAgIH1cbiAgICAmX19pbm5lciB7XG4gICAgICAgIG1heC13aWR0aDogNzEzcHg7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPGRlc2t0b3BcIikge1xuICAgICAgICAgICAgcGFkZGluZzogMjBweDtcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj49ZGVza3RvcFwiKSB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogNzBweDtcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj5kZXNrdG9wLWxcIikge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDE0MHB4O1xuICAgICAgICB9XG4gICAgfVxuICAgICZfX3RhYiB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj49dGFibGV0XCIpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgLy9ib3JkZXItYm90dG9tOiAxcHggc29saWQgJGMtYm9yZGVyLWdyYXk7XG5cbiAgICAgICAgLmNvbnRlbnQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAmLmlzLW9wZW4ge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogdGFicy1hcHBlYXJfX3RvcCAuM3MgbGluZWFyIDEgZm9yd2FyZHM7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX190aXRsZSB7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjFlbTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNDBweDtcbiAgICB9XG4gICAgJl9fc3VidGl0bGUge1xuICAgICAgICBjb2xvcjogJGMtdGV4dC1ncmF5O1xuICAgICAgICBmb250LXNpemU6IDIuNHJlbTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICAgICAgbWF4LXdpZHRoOiA2NzBweDtcbiAgICB9XG5cbiAgICAmX19yb3cge1xuICAgICAgICBwYWRkaW5nOiAxNXB4IDAgMTVweCAzNXB4O1xuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj49ZGVza3RvcFwiKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAzNXB4IDAgMzVweCA4NXB4O1xuICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMWVtO1xuICAgICAgICB9XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNztcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRjLWJvcmRlci1ncmF5O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgYVtocmVmKj1tYWlsdG9dIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRibHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHAge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjVlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgLmNvbnRhY3QtaW5mb19faWNvbiB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRibHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faGVhZGluZyB7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGNvbG9yOiAkYy1icmFuZC1kYXJrO1xuICAgICAgICBmb250LXdlaWdodDogJGZ3LWJvbGQ7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkZi1wcmltYXJ5O1xuICAgICAgICBmb250LXNpemU6IDIuMnJlbTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMzVweDtcbiAgICB9XG4gICAgJl9fc3ViaGVhZGluZyB7XG4gICAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgICAgY29sb3I6ICRjLXRleHQtZ3JheTtcbiAgICAgICAgbWFyZ2luOiAtMzBweCAwIDMwcHg7XG4gICAgfVxuICAgICZfX2ZpbmQtd3JhcCB7XG4gICAgICAgIC8vZGlzcGxheTogbm9uZTtcbiAgICB9XG4gICAgJl9fZW1haWwtaXRlbSB7XG4gICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgICAgICB9XG4gICAgfVxuICAgICZfX2ZpbmQtbGlua3Mge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj49ZGVza3RvcFwiKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMjVweDtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyNXB4O1xuICAgICAgICB9XG4gICAgICAgIC5saW5rLWFycm93IHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgICZfX2ljb24ge1xuICAgICAgICBtYXgtd2lkdGg6IDI0cHg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDI0cHg7XG4gICAgICAgIHRvcDogMTVweDtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8ZGVza3RvcFwiKSB7XG4gICAgICAgICAgICAuY29udGFjdC1pbmZvX19maW5kLWxpbmtzICYge1xuICAgICAgICAgICAgICAgIHRvcDogMjVweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj49ZGVza3RvcFwiKSB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDQ0cHg7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA0NHB4O1xuICAgICAgICAgICAgdG9wOiAzMHB4O1xuICAgICAgICB9XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgY29sb3I6ICNDQ0QzRDQ7XG4gICAgfVxuXG4gICAgJl9fYWNjZXNzIHtcbiAgICAgICAgJi10eHQge1xuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkZnctYm9sZDtcbiAgICAgICAgICAgICAgICBAZXh0ZW5kIC5jLWJsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19hYm91dCB7XG4gICAgICAgIGltZyB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX190aXRsZS1tb2Ige1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAxcHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkZnctYm9sZDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICBcbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBAZXh0ZW5kIC5hcnJvdy1yaWdodC1ibHVlO1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTVweDtcbiAgICAgICAgICAgIHdpZHRoOiAxNXB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiAxMnB4O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTUwJSkgcm90YXRlKDkwZGVnKTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgLmlzLW9wZW4gJiB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTUwJSkgcm90YXRlKC05MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbn1cblxuI3NlY3Rpb24xLmlzLW9wZW4gKyAuY29udGFjdC1pbmZvX19maW5kLXdyYXAge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG9yZGVyOiAzO1xufVxuIiwiLmNvbnRhY3QtdGFicyB7XG4gICAgbWFyZ2luLWJvdHRvbTogNDBweDtcblxuICAgIEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgJl9fbGlzdCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICB9XG5cbiAgICAmX19pdGVtIHtcbiAgICAgICAgd2lkdGg6IGNhbGMoMTAwJS8zIC0gMTJweCk7XG4gICAgICAgIHRyYW5zaXRpb246IGJvcmRlciAuM3M7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkYy1icmFuZC1saWdodDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAmX19saW5rIHtcbiAgICAgICAgaGVpZ2h0OiAxODBweDtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI+ZGVza3RvcC1sXCIpIHtcbiAgICAgICAgICAgIGhlaWdodDogMjI1cHg7XG4gICAgICAgIH1cbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkYy1ib3JkZXItZ3JheTtcblxuICAgICAgICAudGFicy1hbGxvd2VkICYge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgYm9yZGVyOiAycHggc29saWQgJGJsdWU7XG4gICAgICAgICAgICBib3JkZXItaW1hZ2U6ICRiZy1ibHVlO1xuICAgICAgICAgICAgYm9yZGVyLWltYWdlLXNsaWNlOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWltYWdlLXNsaWNlOiAxO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgLjNzO1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKTtcbiAgICAgICAgfVxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIC4zcztcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICBjb2xvcjogJGMtYnJhbmQtZGFyaztcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC4xZW07XG4gICAgICAgICYuaXMtc2VsZWN0ZWQge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAmX19pbWcge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgICAgICBtYXgtaGVpZ2h0OiA0NXB4O1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgZmlsdGVyOiBncmF5c2NhbGUoMSk7XG4gICAgICAgIC5pcy1zZWxlY3RlZCAmIHtcbiAgICAgICAgICAgIGZpbHRlcjogaW52ZXJ0KDEpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5Aa2V5ZnJhbWVzIHRhYnMtYXBwZWFyX190b3Age1xuICAgIDAlIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zMHB4KTtcbiAgICB9XG4gICAgMTAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICB9XG59XG4iLCIvKlxuLnNpdGUtaGVhZGVyIHtcblx0QGluY2x1ZGUgbWVkaWEoXCI+PWRlc2t0b3BcIikge1xuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTVweCk7XG5cdFx0JjpiZWZvcmUge1xuXHRcdFx0aGVpZ2h0OiA2NXB4O1xuXHRcdH1cblx0fVxuXHRAaW5jbHVkZSBtZWRpYShcIj5kZXNrdG9wLWxcIikge1xuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjVweCk7XG5cdFx0JjpiZWZvcmUge1xuXHRcdFx0aGVpZ2h0OiA4NXB4O1xuXHRcdH1cblx0fVxuXG5cdCZfX2xvZ28ge1xuXHRcdC5sb2dvLWltZyB7XG5cdFx0XHRAaW5jbHVkZSBtZWRpYShcIj49ZGVza3RvcFwiKSB7XG5cdFx0XHRcdGNsaXA6IHJlY3QoMCwgNTBweCwgNDRweCwgMCk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0QGluY2x1ZGUgbWVkaWEoXCI+PWRlc2t0b3BcIikge1xuXHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDdweCk7XG5cdFx0fVxuXHR9XG59XG4qL1xuXG4ucGFnZS1mciB7XG5cblx0bWFyZ2luLWJvdHRvbTogMjB2bWluO1xuXG5cdC5jb250YWN0LWluZm9fX3N1YnRpdGxlIHtcblx0XHRmb250LXNpemU6IDIuMnJlbVxuXHR9XG5cblx0LmNvbnRhY3QtdG9wLWdhcCB7XG5cdFx0QGluY2x1ZGUgbWVkaWEoXCI8PWRlc2t0b3BcIikge1xuXHRcdFx0cGFkZGluZy10b3A6IDYwcHg7XG5cdFx0fVxuXHRcdEBpbmNsdWRlIG1lZGlhKFwiPmRlc2t0b3BcIikge1xuXHRcdFx0cGFkZGluZy10b3A6IDEwMHB4O1xuICAgICAgJi53aXRoLWZsYWcge1xuICAgICAgICBwYWRkaW5nLXRvcDogMzVweDtcbiAgICAgIH1cblx0XHR9XG5cdFx0QGluY2x1ZGUgbWVkaWEoXCI+ZGVza3RvcC1sXCIpIHtcblx0XHRcdHBhZGRpbmctdG9wOiAxNDBweDtcbiAgICAgICYud2l0aC1mbGFnIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDU1cHg7XG4gICAgICB9XG5cdFx0fVxuXHR9XG5cblx0LmNvbnRhY3QtbGVmdCB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJGMtYnJhbmQtZGFyaztcblxuXHRcdCZfX3dyYXAge1xuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0QGluY2x1ZGUgbWVkaWEoXCI8PXRhYmxldFwiKSB7XG5cdFx0XHRcdHBhZGRpbmctYm90dG9tOiAwO1xuXHRcdFx0fVxuXHRcdFx0QGluY2x1ZGUgbWVkaWEoXCI+dGFibGV0XCIpIHtcblx0XHRcdFx0JjphZnRlciB7XG5cdFx0XHRcdFx0Y29udGVudDogJyc7XG5cdFx0XHRcdFx0aGVpZ2h0OiA2MHB4O1xuXHRcdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0XHRcdGxlZnQ6IDA7XG5cdFx0XHRcdFx0Ym90dG9tOiAwO1xuXHRcdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gdG9wLCAkYy1icmFuZC1kYXJrLCB0cmFuc3BhcmVudCk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0Jl9faW5uZXIge1xuXHRcdFx0Y29sb3I6ICRjLXRleHQtZ3JheTtcblx0XHRcdG1heC13aWR0aDogNTAwcHg7XG5cdFx0fVxuXHRcdCZfX2NhcHRpb24ge1xuXHRcdFx0aGVpZ2h0OiAyNHB4O1xuXHRcdFx0bGluZS1oZWlnaHQ6IDI0cHg7XG5cdFx0XHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0cGFkZGluZzogMCAyNXB4O1xuXHRcdFx0Zm9udC1zaXplOiAxM3B4O1xuXHRcdFx0bGV0dGVyLXNwYWNpbmc6IDAuMWVtO1xuXHRcdFx0Y29sb3I6ICRjLWJyYW5kLWRhcms7XG5cdFx0XHRtYXgtd2lkdGg6IDIwMHB4O1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRtYXJnaW46IDAgYXV0bztcblx0XHRcdEBpbmNsdWRlIG1lZGlhKFwiPnRhYmxldFwiKSB7XG5cdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0cmlnaHQ6IDEwJTtcblx0XHRcdFx0Ym90dG9tOiA1MHB4O1xuXHRcdFx0fVxuXHRcdFx0YmFja2dyb3VuZC1pbWFnZTogJGJnLWdvbGQ7XG5cdFx0XHQmOmJlZm9yZSwgJjphZnRlciB7XG5cdFx0XHRcdGNvbnRlbnQ6ICcnO1xuXHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdGhlaWdodDogM3B4O1xuXHRcdFx0XHR3aWR0aDogM3B4O1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkYy1icmFuZC1kYXJrO1xuXHRcdFx0XHRib3JkZXItcmFkaXVzOiA1MCU7XG5cdFx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC01MCUpO1xuXHRcdFx0XHR0b3A6IDUwJTtcblx0XHRcdH1cblx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0bGVmdDogMTVweDtcblx0XHRcdH1cblx0XHRcdCY6YWZ0ZXIge1xuXHRcdFx0XHRyaWdodDogMTVweDtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQuZnJlbmNoLWFpcmNyYWZ0LWltZyB7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRib3R0b206IDA7XG5cdFx0XHRsZWZ0OiA1MHB4O1xuXHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMzAlKTtcblx0XHRcdG1heC13aWR0aDogMTA1JTtcblx0XHRcdGhlaWdodDogYXV0bztcblx0XHRcdEBpbmNsdWRlIG1lZGlhKFwiPD1kZXNrdG9wXCIpIHtcblx0XHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQuY29udGFjdC1pbmZvIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL2ZyZW5jaC9iZy1yaWdodC5qcGcpO1xuXHRcdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogMCAwO1xuXHRcdGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcblx0XHQmX19zdWJ0aXRsZSB7XG5cdFx0XHRjb2xvcjogJGMtYnJhbmQtZGFyaztcblx0XHRcdGxldHRlci1zcGFjaW5nOiAuMDVlbTtcblx0XHR9XG5cdFx0Jl9faGVhZGluZyB7XG5cdFx0XHR0ZXh0LXRyYW5zZm9ybTogbm9uZTtcblx0XHRcdGZvbnQtZmFtaWx5OiAkZi1zZWNvbmRhcnk7XG5cdFx0XHRmb250LXdlaWdodDogNDAwO1xuXHRcdH1cblx0XHQmX19yb3cge1xuXHRcdFx0cGFkZGluZy1sZWZ0OiAwO1xuXHRcdH1cblx0XHQmX19mb3JtIHtcblx0XHRcdGJvcmRlci10b3A6IG5vbmU7XG5cdFx0fVxuXHRcdCZfX2Fib3V0IHtcblx0XHRcdGgyLCBoMywgaDQge1xuXHRcdFx0XHR0ZXh0LXRyYW5zZm9ybTogbm9uZTtcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogLjVlbTtcblx0XHRcdH1cblx0XHRcdGgzIHtcblx0XHRcdFx0Zm9udC1zaXplOiAzcmVtO1xuXHRcdFx0fVxuXHRcdFx0aDQge1xuXHRcdFx0XHRmb250LXNpemU6IDIuNXJlbTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQuY3VzdG9tLWZvcm0ge1xuXHRcdG1heC13aWR0aDogNzAwcHg7XG5cdH1cblxufVxuXG4uYWlyLWRhdGEge1xuXHQmX19oZWFkaW5nIHtcblx0XHRmb250LXNpemU6IDZyZW07XG5cdFx0bWFyZ2luLWJvdHRvbTogLjhlbTtcblx0XHRsZXR0ZXItc3BhY2luZzogMC4xZW07XG5cdH1cblx0Jl9faXRlbXMge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0ZmxleC13cmFwOiB3cmFwO1xuXHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdFx0bGV0dGVyLXNwYWNpbmc6IDAuMWVtO1xuXHRcdG1hcmdpbi1ib3R0b206IDV2bWluO1xuXHR9XG5cdCZfX3RpdGxlLFxuXHQmX192YWx1ZSB7XG5cdFx0cGFkZGluZzogLjVlbSAxNXB4O1xuXHRcdG1hcmdpbjogMCAwIDFweDtcblx0fVxuXHQmX190aXRsZSB7XG5cdFx0d2lkdGg6IDI1JTtcblx0XHR0ZXh0LWFsaWduOiByaWdodDtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkYy1icmFuZC1kYXJrO1xuXHRcdGNvbG9yOiAjZmZmO1xuXHRcdGZvbnQtc2l6ZTogMS42cmVtO1xuXHRcdGZvbnQtd2VpZ2h0OiA3MDA7XG5cdH1cblx0Jl9fdmFsdWUge1xuXHRcdHdpZHRoOiA3MCU7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJGMtYm9yZGVyLWdyYXk7XG5cdFx0Zm9udC1zaXplOiAxLjRyZW07XG5cdH1cbn0iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFLQUEscUJBQXFCO0FBdUJyQixBQUFBLE9BQU8sRU1zQkYsb0JBQU8sQ050Qko7RUFDUCxLQUFLLEVBaEJFLElBQUk7Q0F3Qlg7O0FINGdCRyxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU07RUdyaEI3QixBQUFBLE9BQU8sRU1zQkYsb0JBQU8sQ050Qko7SUFJTixVQUFVLEVBQUUsNERBQTREO0lBQ3hFLGVBQWUsRUFBRSxVQUFVO0lBQzNCLHVCQUF1QixFQUFFLElBQUk7SUFDN0IsdUJBQXVCLEVBQUUsV0FBVztHQUVyQzs7O0FBRUQsQUFBQSxPQUFPLEVPOEZFLHlCQUFJLENBQ0QsQ0FBQyxDUC9GTDtFQUNQLEtBQUssRUExQkMsT0FBTztDQWtDYjs7QUhpZ0JHLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTTtFRzFnQjdCLEFBQUEsT0FBTyxFTzhGRSx5QkFBSSxDQUNELENBQUMsQ1AvRkw7SUFJTixVQUFVLEVBbEJGLDZFQUE2RTtJQW1CckYsZUFBZSxFQUFFLFVBQVU7SUFDM0IsdUJBQXVCLEVBQUUsSUFBSTtJQUM3Qix1QkFBdUIsRUFBRSxXQUFXO0dBRXJDOzs7QUMzQ0Qsb0JBQW9CO0FDQXBCLCtCQUErQjtBQ0EvQiwrQkFBK0I7QUFZL0Isa0JBQWtCO0FDWmxCLEFBQUEsaUJBQWlCLEVHK0laLHdCQUFXLEFBUVAsTUFBTSxDSHZKRztFQUNqQixnQkFBZ0IsRUFBRSxxUEFBcVA7RUFDdlEsaUJBQWlCLEVBQUUsU0FBUztDQUM1Qjs7QUFDRCxBQUFBLG1CQUFtQixDQUFDO0VBQ25CLGdCQUFnQixFQUFFLHFQQUFxUDtFQUN2USxpQkFBaUIsRUFBRSxTQUFTO0NBQzVCOztBQUNELEFBQUEsa0JBQWtCLENBQUM7RUFDbEIsZ0JBQWdCLEVBQUUscVBBQXFQO0VBQ3ZRLGlCQUFpQixFQUFFLFNBQVM7Q0FDNUI7O0FBQ0QsQUFBQSxXQUFXLENBQUM7RUFDWCxNQUFNLEVBQUUsSUFBSTtFQUNaLEtBQUssRUFBRSxJQUFJO0VBQ1gsU0FBUyxFQUFFLElBQUk7RUFDZixhQUFhLEVBQUUsR0FBRztFQUNsQixnQkFBZ0IsRUFBRSxzTkFBc047RUFDeE8sZ0JBQWdCLEVBQUUsT0FBTztFQUN6QixpQkFBaUIsRUFBRSxTQUFTO0VBQzVCLG1CQUFtQixFQUFFLE9BQU87RUFDNUIsUUFBUSxFQUFFLE1BQU07Q0FDaEI7O0FFdEJELEFBQUEsYUFBYSxDQUFDO0VBQ1YsUUFBUSxFQUFFLFFBQVE7RUFDbEIsaUJBQWlCLEVBQUUsU0FBUztFQUM1QixtQkFBbUIsRUFBRSxHQUFHO0VBQ3hCLEtBQUssRUFBRSxJQUFJO0VBQ1gsY0FBYyxFQUFFLEtBQUs7RUFDckIsU0FBUyxFQUFFLE1BQU07Q0EwR3BCOztBVDRiRyxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU07RVM1aUI3QixBQUFBLGFBQWEsQ0FBQztJQVFOLE9BQU8sRUFBRSxNQUFNO0dBd0d0Qjs7O0FUNGJHLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTTtFUzVpQjdCLEFBQUEsYUFBYSxDQUFDO0lBV04sS0FBSyxFQUFFLEdBQUc7SUFDVixTQUFTLEVBQUUsR0FBRztJQUNkLFVBQVUsRUFBRSxNQUFNO0dBbUd6Qjs7O0FBaEdJLEFBQUQsbUJBQU8sQ0FBQztFQUNKLGVBQWUsRUFBRSxLQUFLO0VBQ3RCLGlCQUFpQixFQUFFLFNBQVM7RUFDNUIsbUJBQW1CLEVBQUUsTUFBTTtFQUMzQixnQkFBZ0IsRUFBRSxPQUFPO0VBQ3pCLFFBQVEsRUFBRSxNQUFNO0VBQ2hCLEdBQUcsRUFBRSxDQUFDO0NBWVQ7O0FUMGdCRCxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU07RVM1aEJ4QixBQUFELG1CQUFPLENBQUM7SUFRQSxjQUFjLEVBQUUsSUFBSTtHQVUzQjs7O0FUMGdCRCxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU07RVM1aEJ4QixBQUFELG1CQUFPLENBQUM7SUFXQSxVQUFVLEVBQUUsS0FBSztJQUNqQixlQUFlLEVBQUUsT0FBTztHQU0vQjs7O0FUMGdCRCxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU07RVM1aEJ4QixBQUFELG1CQUFPLENBQUM7SUFlQSxlQUFlLEVBQUUsS0FBSztHQUc3Qjs7O0FBRUEsQUFBRCxvQkFBUSxDQUFDO0VBQ0wsU0FBUyxFQUFFLEtBQUs7RUFDaEIsTUFBTSxFQUFFLE1BQU07Q0FLakI7O0FUaWdCRCxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU07RVN4Z0J4QixBQUFELG9CQUFRLENBQUM7SUFJRCxPQUFPLEVBQUUsSUFBSTtJQUNiLGdCQUFnQixFTnZDYixvQkFBTztHTXlDakI7OztBQUVBLEFBQUQsb0JBQVEsQ0FBQztFQUVMLGNBQWMsRUFBRSxLQUFLO0VBQ3JCLGNBQWMsRUFBRSxTQUFTO0VBQ3pCLFdBQVcsRUxsQ1QsR0FBRztFS21DTCxXQUFXLEVMekNQLDRCQUE0QixFQUFFLFVBQVU7RUswQzVDLGFBQWEsRUFBRSxJQUFJO0VBQ25CLFNBQVMsRUFBRSxJQUFJO0NBWWxCOztBQW5CQSxBQVFHLG9CQVJJLEFBUUgsTUFBTSxDQUFDO0VBQ04sU0FBUyxFQUFFLE1BQU07Q0FDbEI7O0FBVkosQUFjTyxvQkFkQSxDQVlKLElBQUksQUFDRCxJQUFLLENBQUEsV0FBVyxDQUNkLE9BQU8sQ0FBQztFQUNQLE9BQU8sRUFBRSxLQUFLO0NBQ2Y7O0FBS1IsQUFBRCxvQkFBUSxDQUFDO0VBQ0wsYUFBYSxFQUFFLElBQUk7Q0FDdEI7O0FBRUEsQUFBRCxtQkFBTyxDQUFDO0VBQ0osYUFBYSxFQUFFLElBQUk7Q0FNdEI7O0FBUEEsQUFHTyxtQkFIRCxDQUVILENBQUMsQUFDSSxNQUFNLENBQUM7RUFDSixLQUFLLEVObEViLHdCQUFJO0NNbUVDOztBQUlSLEFBQUQsbUJBQU8sQ0FBQztFQUNKLEtBQUssRUFBRSxJQUFJO0VBQ1gsTUFBTSxFQUFFLElBQUk7RUFDWixZQUFZLEVBQUUsSUFBSTtFQUNsQixLQUFLLEVBQUUsWUFBWTtDQUN0Qjs7QUFFQSxBQUFELGtCQUFNLENBQUM7RUFDSCxPQUFPLEVBQUUsTUFBTTtFQUNmLFVBQVUsRUFBRSxNQUFNO0VBQ2xCLE9BQU8sRUFBRSxJQUFJO0VBQ2IsZUFBZSxFQUFFLE1BQU07RUFDdkIsV0FBVyxFQUFFLE1BQU07Q0FvQnRCOztBQXpCQSxBQU1HLGtCQU5FLENBTUYsTUFBTSxDQUFDO0VBQ0gsU0FBUyxFQUFFLEtBQUs7RUFDaEIsS0FBSyxFQUFFLElBQUk7Q0FDZDs7QUFDQSxBQUFELHdCQUFPLENBQUM7RUFDSixjQUFjLEVBQUUsSUFBSTtFQUNwQixTQUFTLEVBQUUsSUFBSTtFQUNmLGFBQWEsRUFBRSxHQUFHO0VBQ2xCLGNBQWMsRUFBRSxJQUFJO0NBS3ZCOztBQVRBLEFBS0csd0JBTEcsQ0FLSCxJQUFJLENBQUM7RUFDRCxXQUFXLEVBQUUsSUFBSTtFQUNqQixLQUFLLEVObkdMLE9BQU87Q01vR1Y7O0FBbEJSLEFBb0JHLGtCQXBCRSxDQW9CRixNQUFNO0FBcEJULGtCQUFLLENBcUJGLFdBQVcsQ0FBQztFQUNSLFNBQVMsRUFBRSxJQUFJO0VBQ2YsTUFBTSxFQUFFLEdBQUcsQ0FBQyxLQUFLLENOekdiLE9BQU8sQ015R3NCLFVBQVU7Q0FDOUM7O0FBS1QsQUFBQSxjQUFjLENBQUM7RUFDWCxPQUFPLEVBQUUsSUFBSTtFQUNiLGVBQWUsRUFBRSxhQUFhO0VBQzlCLFNBQVMsRUFBRSxJQUFJO0VBQ2YsVUFBVSxFQUFFLEdBQUc7Q0FxQ2xCOztBQXBDSSxBQUFELG9CQUFPLENBQUM7RUFDSixhQUFhLEVBQUUsSUFBSTtFQUNuQixZQUFZLEVBQUUsSUFBSTtFQUNsQixRQUFRLEVBQUUsUUFBUTtFQUNsQixTQUFTLEVBQUUsTUFBTTtDQVlwQjs7QUFoQkEsQUFLRyxvQkFMRyxBQUtGLFVBQVcsQ0FBQSxHQUFHLEVBQUU7RUFDYixLQUFLLEVBQUUsR0FBRztDQUNiOztBQVBKLEFBUUcsb0JBUkcsQUFRRixVQUFXLENBQUEsSUFBSSxFQUFFO0VBQ2QsS0FBSyxFQUFFLEdBQUc7Q0FDYjs7QUFWSixBQVlHLG9CQVpHLENBWUgsQ0FBQyxDQUFDO0VBQ0UsV0FBVyxFQUFFLEdBQUc7RUFDaEIsS0FBSyxFQUFFLElBQUk7Q0FDZDs7QUFFSixBQUFELG9CQUFPLENBQUM7RUFDSixVQUFVLEVBQUUsSUFBSTtFQUNoQixLQUFLLEVBQUUsSUFBSTtFQUNYLEtBQUssRU54SUcsT0FBTztFTXlJZixRQUFRLEVBQUUsUUFBUTtFQUNsQixJQUFJLEVBQUUsQ0FBQztFQUNQLEdBQUcsRUFBRSxHQUFHO0NBQ1g7O0FBQ0EsQUFBRCxxQkFBUSxDQUFDO0VBQ0wsU0FBUyxFQUFFLE1BQU07RUFDakIsT0FBTyxFQUFFLEtBQUs7RUFDZCxXQUFXLEVBQUUsR0FBRztFQUNoQixhQUFhLEVBQUUsR0FBRztFQUNsQixXQUFXLEVMN0lQLDRCQUE0QixFQUFFLFVBQVU7Q0s4SS9DOztBQUNBLEFBQUQsbUJBQU0sQ0FBQztFQUNILFNBQVMsRUFBRSxNQUFNO0VBQ2pCLEtBQUssRU4xSUMsT0FBTztDTTJJaEI7O0FBR0wsQUFDSSxZQURRLENBQ1IsbUJBQW1CLENBQUM7RUFDaEIsZ0JBQWdCLEVBQUUsNkJBQTZCO0NBQ2xEOztBQUhMLEFBSUksWUFKUSxDQUlSLG1CQUFtQixDQUFDO0VBQ2hCLFVBQVUsRUFBRSxJQUFJO0NBQ25COztBQU5MLEFBT0ksWUFQUSxDQU9SLG9CQUFvQixDQUFDO0VBQ2pCLEtBQUssRUFBRSxlQUFlO0NBQ3pCOztBQVRMLEFBVUksWUFWUSxDQVVSLHNCQUFzQixDQUFDO0VBQ25CLFlBQVksRUFBRSxJQUFJO0NBQ3JCOztBQVpMLEFBYUksWUFiUSxDQWFSLFlBQVksQ0FBQztFQUNULFVBQVUsRUFBRSxJQUFJO0NBQ25COztBQWZMLEFBZ0JJLFlBaEJRLENBZ0JSLGFBQWEsQ0FBQztFQUNWLE1BQU0sRUFBRSxNQUFNO0NBYWpCOztBQTlCTCxBQWtCUSxZQWxCSSxDQWdCUixhQUFhLENBRVQsRUFBRSxDQUFDO0VBQ0MsVUFBVSxFQUFFLElBQUk7Q0FVbkI7O0FBN0JULEFBb0JZLFlBcEJBLENBZ0JSLGFBQWEsQ0FFVCxFQUFFLENBRUUsQ0FBQyxDQUFDO0VBR0UsT0FBTyxFQUFFLEtBQUs7RUFDZCxPQUFPLEVBQUUsT0FBTztDQUluQjs7QUE1QmIsQUF5QmdCLFlBekJKLENBZ0JSLGFBQWEsQ0FFVCxFQUFFLENBRUUsQ0FBQyxBQUtJLE1BQU0sQ0FBQztFQUNKLGVBQWUsRUFBRSxJQUFJO0NBQ3hCOztBQ3pMakIsQUFBQSxhQUFhLENBQUM7RUFDVixJQUFJLEVBQUUsQ0FBQztDQXNLVjs7QVZxWUcsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNO0VVNWlCN0IsQUFBQSxhQUFhLENBQUM7SUFHTixhQUFhLEVBQUUsSUFBSTtHQW9LMUI7OztBQWxLSSxBQUFELG9CQUFRLENBQUM7RUFDTCxTQUFTLEVBQUUsS0FBSztDQVVuQjs7QVY0aEJELE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTTtFVXZpQnhCLEFBQUQsb0JBQVEsQ0FBQztJQUdELE9BQU8sRUFBRSxJQUFJO0dBUXBCOzs7QVY0aEJELE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTTtFVXZpQnhCLEFBQUQsb0JBQVEsQ0FBQztJQU1ELFdBQVcsRUFBRSxJQUFJO0dBS3hCOzs7QVY0aEJELE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTTtFVXZpQnhCLEFBQUQsb0JBQVEsQ0FBQztJQVNELFdBQVcsRUFBRSxLQUFLO0dBRXpCOzs7QUFDQSxBQUFELGtCQUFNLENBQUM7RUFPSCxjQUFjLEVBQUUsTUFBTTtDQVN6Qjs7QVYyZ0JELE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSztFVTNoQnZCLEFBQUQsa0JBQU0sQ0FBQztJQUVDLE9BQU8sRUFBRSxLQUFLO0dBY3JCOzs7QVYyZ0JELE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSztFVTNoQnZCLEFBQUQsa0JBQU0sQ0FBQztJQUtDLE9BQU8sRUFBRSxJQUFJO0dBV3BCOzs7QUFoQkEsQUFVRyxrQkFWRSxDQVVGLFFBQVEsQ0FBQztFQUNMLEtBQUssRUFBRSxJQUFJO0NBSWQ7O0FBZkosQUFZTyxrQkFaRixDQVVGLFFBQVEsQUFFSCxRQUFRLENBQUM7RUFDTixTQUFTLEVBQUUsc0NBQXNDO0NBQ3BEOztBQUlSLEFBQUQsb0JBQVEsQ0FBQztFQUNMLGNBQWMsRUFBRSxLQUFLO0VBQ3JCLGFBQWEsRUFBRSxJQUFJO0NBQ3RCOztBQUNBLEFBQUQsdUJBQVcsQ0FBQztFQUNSLEtBQUssRVB4QkMsT0FBTztFT3lCYixTQUFTLEVBQUUsTUFBTTtFQUNqQixhQUFhLEVBQUUsSUFBSTtFQUNuQixTQUFTLEVBQUUsS0FBSztDQUNuQjs7QUFFQSxBQUFELGtCQUFNLENBQUM7RUFDSCxPQUFPLEVBQUUsZ0JBQWdCO0VBS3pCLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLFdBQVcsRUFBRSxHQUFHO0VBQ2hCLFVBQVUsRUFBRSxHQUFHLENBQUMsS0FBSyxDUGhEYixPQUFPO0VPaURmLEtBQUssRUFBRSxJQUFJO0NBa0JkOztBVm1lRCxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU07RVU5ZnhCLEFBQUQsa0JBQU0sQ0FBQztJQUdDLE9BQU8sRUFBRSxnQkFBZ0I7SUFDekIsY0FBYyxFQUFFLEtBQUs7R0F1QjVCOzs7QUEzQkEsQUFVRyxrQkFWRSxDQVVGLENBQUMsQ0FBQSxBQUFBLElBQUMsRUFBRCxNQUFDLEFBQUEsRUFBYztFQUNaLGVBQWUsRUFBRSxTQUFTO0NBSTdCOztBQWZKLEFBWU8sa0JBWkYsQ0FVRixDQUFDLENBQUEsQUFBQSxJQUFDLEVBQUQsTUFBQyxBQUFBLENBRUcsTUFBTSxDQUFDO0VBQ0osS0FBSyxFUGxEZCxPQUFPO0NPbUREOztBQWRSLEFBaUJPLGtCQWpCRixDQWdCRixDQUFDLEFBQ0ksSUFBSyxDRExGLFdBQVcsRUNLSTtFQUNmLGFBQWEsRUFBRSxLQUFLO0NBQ3ZCOztBQW5CUixBQXVCTyxrQkF2QkYsQUFzQkQsTUFBTSxDQUNILG1CQUFtQixDQUFDO0VBQ2hCLEtBQUssRVA3RGQsT0FBTztDTzhERDs7QUFJUixBQUFELHNCQUFVLENBQUM7RUFDUCxjQUFjLEVBQUUsU0FBUztFQUN6QixLQUFLLEVQM0VFLE9BQU87RU80RWQsV0FBVyxFTi9EVCxHQUFHO0VNZ0VMLFdBQVcsRU50RVAsNEJBQTRCLEVBQUUsVUFBVTtFTXVFNUMsU0FBUyxFQUFFLE1BQU07RUFDakIsYUFBYSxFQUFFLElBQUk7Q0FDdEI7O0FBQ0EsQUFBRCx5QkFBYSxDQUFDO0VBQ1YsU0FBUyxFQUFFLElBQUk7RUFDZixLQUFLLEVQckVDLE9BQU87RU9zRWIsTUFBTSxFQUFFLFlBQVk7Q0FDdkI7O0FBSUEsQUFDRyx5QkFEUyxBQUNSLElBQUssQ0RsQ0UsV0FBVyxFQ2tDQTtFQUNmLGFBQWEsRUFBRSxJQUFJO0NBQ3RCOztBVjhjTCxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU07RVU1Y3hCLEFBQUQseUJBQWEsQ0FBQztJQUVOLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLGNBQWMsRUFBRSxJQUFJO0dBUTNCOzs7QUFYQSxBQUtHLHlCQUxTLENBS1QsV0FBVyxDQUFDO0VBQ1IsY0FBYyxFQUFFLFNBQVM7Q0FJNUI7O0FWa2NMLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSztFVTVjdkIsQUFLRyx5QkFMUyxDQUtULFdBQVcsQ0FBQztJQUdKLE9BQU8sRUFBRSxLQUFLO0dBRXJCOzs7QUFFSixBQUFELG1CQUFPLENBQUM7RUFDSixTQUFTLEVBQUUsSUFBSTtFQUNmLFVBQVUsRUFBRSxJQUFJO0VBQ2hCLEdBQUcsRUFBRSxJQUFJO0VBV1QsUUFBUSxFQUFFLFFBQVE7RUFDbEIsSUFBSSxFQUFFLENBQUM7RUFDUCxLQUFLLEVBQUUsT0FBTztDQUNqQjs7QVYrYUQsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNO0VVM2JqQixBQUFBLHlCQUF5QixDQUxoQyxtQkFBTSxDQUs2QjtJQUN4QixHQUFHLEVBQUUsSUFBSTtHQUNaOzs7QVZ5YlQsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNO0VVaGN4QixBQUFELG1CQUFPLENBQUM7SUFVQSxTQUFTLEVBQUUsSUFBSTtJQUNmLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLEdBQUcsRUFBRSxJQUFJO0dBS2hCOzs7QUFHSSxBQUNHLHlCQURDLENBQ0QsQ0FBQyxDQUFDO0VBQ0UsZUFBZSxFQUFFLElBQUk7RUFDckIsV0FBVyxFTnBIakIsR0FBRztDTXNIQTs7QUFJUixBQUNHLG9CQURJLENBQ0osR0FBRyxDQUFDO0VBQ0EsU0FBUyxFQUFFLElBQUk7Q0FDbEI7O0FBR0osQUFBRCx3QkFBWSxDQUFDO0VBQ1QsY0FBYyxFQUFFLFNBQVM7RUFDekIsU0FBUyxFQUFFLElBQUk7RUFDZixjQUFjLEVBQUUsR0FBRztFQUNuQixXQUFXLEVOcElULEdBQUc7RU1xSUwsWUFBWSxFQUFFLFlBQVk7RUFDMUIsUUFBUSxFQUFFLFFBQVE7Q0FnQnJCOztBQXRCQSxBQVFHLHdCQVJRLEFBUVAsTUFBTSxDQUFDO0VBRUosT0FBTyxFQUFFLEVBQUU7RUFDWCxRQUFRLEVBQUUsUUFBUTtFQUNsQixLQUFLLEVBQUUsQ0FBQztFQUNSLE1BQU0sRUFBRSxJQUFJO0VBQ1osS0FBSyxFQUFFLElBQUk7RUFDWCxlQUFlLEVBQUUsSUFBSTtFQUNyQixTQUFTLEVBQUUsa0JBQWtCLENBQUMsYUFBYTtFQUMzQyxHQUFHLEVBQUUsR0FBRztDQUlYOztBQUhHLEFBQUEsUUFBUSxDQWxCZix3QkFBVyxBQVFQLE1BQU0sQ0FVUTtFQUNQLFNBQVMsRUFBRSxrQkFBa0IsQ0FBQyxjQUFjO0NBQy9DOztBQU1iLEFBQUEsU0FBUyxBQUFBLFFBQVEsR0FBRyx3QkFBd0IsQ0FBQztFQUN6QyxPQUFPLEVBQUUsS0FBSztFQUNkLEtBQUssRUFBRSxDQUFDO0NBQ1g7O0FDNUtELEFBQUEsYUFBYSxDQUFDO0VBQ1YsYUFBYSxFQUFFLElBQUk7Q0FxRXRCOztBWHNlRyxNQUFNLEVBQUUsU0FBUyxFQUFFLEtBQUs7RVc1aUI1QixBQUFBLGFBQWEsQ0FBQztJQUlOLE9BQU8sRUFBRSxJQUFJO0dBa0VwQjs7O0FBL0RJLEFBQUQsbUJBQU8sQ0FBQztFQUNKLE9BQU8sRUFBRSxJQUFJO0VBQ2IsZUFBZSxFQUFFLGFBQWE7Q0FDakM7O0FBRUEsQUFBRCxtQkFBTyxDQUFDO0VBQ0osS0FBSyxFQUFFLG1CQUFtQjtFQUMxQixVQUFVLEVBQUUsVUFBVTtDQUl6Qjs7QUFOQSxBQUdHLG1CQUhHLEFBR0YsTUFBTSxDQUFDO0VBQ0osWUFBWSxFUlpSLE9BQU87Q1FhZDs7QUFFSixBQUFELG1CQUFPLENBQUM7RUFDSixNQUFNLEVBQUUsS0FBSztFQUliLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLE1BQU0sRUFBRSxHQUFHLENBQUMsS0FBSyxDUm5CVCxPQUFPO0VRd0NmLFdBQVcsRUFBRSxNQUFNO0VBQ25CLGVBQWUsRUFBRSxNQUFNO0VBQ3ZCLGNBQWMsRUFBRSxNQUFNO0VBQ3RCLFVBQVUsRUFBRSxPQUFPO0VBQ25CLFNBQVMsRUFBRSxJQUFJO0VBQ2YsS0FBSyxFUmpERSxPQUFPO0VRa0RkLGNBQWMsRUFBRSxJQUFJO0NBUXZCOztBWGdmRCxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU07RVd6aEJ4QixBQUFELG1CQUFPLENBQUM7SUFHQSxNQUFNLEVBQUUsS0FBSztHQXNDcEI7OztBQWpDRyxBQUFBLGFBQWEsQ0FSaEIsbUJBQU0sQ0FRYTtFQUNaLE9BQU8sRUFBRSxJQUFJO0NBQ2hCOztBQVZKLEFBV0csbUJBWEcsQUFXRixNQUFNLENBQUM7RUFDSixPQUFPLEVBQUUsRUFBRTtFQUNYLE1BQU0sRUFBRSxHQUFHLENBQUMsS0FBSyxDUnZCdEIsT0FBTztFUXdCRixZQUFZLEVSYmQsNkVBQTZFO0VRYzNFLGtCQUFrQixFQUFFLElBQUk7RUFDeEIsa0JBQWtCLEVBQUUsQ0FBQztFQUNyQixNQUFNLEVBQUUsSUFBSTtFQUNaLEtBQUssRUFBRSxJQUFJO0VBQ1gsUUFBUSxFQUFFLFFBQVE7RUFDbEIsSUFBSSxFQUFFLENBQUM7RUFDUCxHQUFHLEVBQUUsQ0FBQztFQUNOLGNBQWMsRUFBRSxJQUFJO0VBQ3BCLFVBQVUsRUFBRSxPQUFPO0VBQ25CLE9BQU8sRUFBRSxDQUFDO0VBQ1YsU0FBUyxFQUFFLFVBQVU7Q0FDeEI7O0FBMUJKLEFBa0NHLG1CQWxDRyxBQWtDRixZQUFZLENBQUM7RUFDVixZQUFZLEVBQUUsV0FBVztDQUs1Qjs7QUF4Q0osQUFvQ08sbUJBcENELEFBa0NGLFlBQVksQUFFUixNQUFNLENBQUM7RUFDSixPQUFPLEVBQUUsQ0FBQztFQUNWLFNBQVMsRUFBRSxRQUFRO0NBQ3RCOztBQUdSLEFBQUQsa0JBQU0sQ0FBQztFQUNILGFBQWEsRUFBRSxJQUFJO0VBQ25CLFVBQVUsRUFBRSxJQUFJO0VBQ2hCLGNBQWMsRUFBRSxJQUFJO0VBQ3BCLE1BQU0sRUFBRSxZQUFZO0NBSXZCOztBQUhHLEFBQUEsWUFBWSxDQUxmLGtCQUFLLENBS2E7RUFDWCxNQUFNLEVBQUUsU0FBUztDQUNwQjs7QUFJVCxVQUFVLENBQVYsZ0JBQVU7RUFDTixFQUFFO0lBQ0UsT0FBTyxFQUFFLENBQUM7SUFDVixTQUFTLEVBQUUsaUJBQWlCOztFQUVoQyxJQUFJO0lBQ0EsT0FBTyxFQUFFLENBQUM7SUFDVixTQUFTLEVBQUUsYUFBYTs7OztBWDZkNUIsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNO0VReGlCN0IsQUFBQSxhQUFhLENBQUM7SUFFTixPQUFPLEVBQUUsSUFBSTtHQUtwQjs7O0FBSEksQUFBRCxzQkFBVSxDQUFDO0VBQ1AsSUFBSSxFQUFFLENBQUM7Q0FDVjs7QVJraUJELE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTTtFUS9oQjdCLEFBQUEsZ0JBQWdCLENBQUM7SUFFVCxXQUFXLEVBQUUsSUFBSTtHQVF4Qjs7O0FScWhCRyxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU07RVEvaEI3QixBQUFBLGdCQUFnQixDQUFDO0lBS1QsV0FBVyxFQUFFLEtBQUs7R0FLekI7OztBUnFoQkcsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNO0VRL2hCN0IsQUFBQSxnQkFBZ0IsQ0FBQztJQVFULFdBQVcsRUFBRSxLQUFLO0dBRXpCOzs7QUl2QkQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQTJCRTtBQUVGLEFBQUEsUUFBUSxDQUFDO0VBRVIsYUFBYSxFQUFFLE1BQU07Q0F1SXJCOztBQXpJRCxBQUlDLFFBSk8sQ0FJUCx1QkFBdUIsQ0FBQztFQUN2QixTQUFTLEVBQUUsTUFDWjtDQUFDOztBWnlnQkUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNO0VZL2dCN0IsQUFRQyxRQVJPLENBUVAsZ0JBQWdCLENBQUM7SUFFZixXQUFXLEVBQUUsSUFBSTtHQWNsQjs7O0FadWZFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTTtFWS9nQjdCLEFBUUMsUUFSTyxDQVFQLGdCQUFnQixDQUFDO0lBS2YsV0FBVyxFQUFFLEtBQUs7R0FXbkI7RUF4QkYsQUFjTSxRQWRFLENBUVAsZ0JBQWdCLEFBTVYsVUFBVSxDQUFDO0lBQ1YsV0FBVyxFQUFFLElBQUk7R0FDbEI7OztBWitmSCxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU07RVkvZ0I3QixBQVFDLFFBUk8sQ0FRUCxnQkFBZ0IsQ0FBQztJQVdmLFdBQVcsRUFBRSxLQUFLO0dBS25CO0VBeEJGLEFBY00sUUFkRSxDQVFQLGdCQUFnQixBQU1WLFVBQVUsQ0FNQztJQUNWLFdBQVcsRUFBRSxJQUFJO0dBQ2xCOzs7QUF0QlAsQUEwQkMsUUExQk8sQ0EwQlAsYUFBYSxDQUFDO0VBQ2IsZ0JBQWdCLEVUdERILE9BQU87Q1M0SHBCOztBQWpHRixBQTZCRSxRQTdCTSxDQTZCTCxtQkFBTSxDQUFDO0VBQ1AsUUFBUSxFQUFFLFFBQVE7Q0FlbEI7O0Faa2VDLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSztFWS9nQjVCLEFBNkJFLFFBN0JNLENBNkJMLG1CQUFNLENBQUM7SUFHTixjQUFjLEVBQUUsQ0FBQztHQWFsQjs7O0Faa2VDLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSztFWS9nQjVCLEFBbUNJLFFBbkNJLENBNkJMLG1CQUFNLEFBTUosTUFBTSxDQUFDO0lBQ1AsT0FBTyxFQUFFLEVBQUU7SUFDWCxNQUFNLEVBQUUsSUFBSTtJQUNaLEtBQUssRUFBRSxJQUFJO0lBQ1gsSUFBSSxFQUFFLENBQUM7SUFDUCxNQUFNLEVBQUUsQ0FBQztJQUNULFFBQVEsRUFBRSxRQUFRO0lBQ2xCLFVBQVUsRUFBRSw2Q0FBbUQ7R0FDL0Q7OztBQTNDTCxBQThDRSxRQTlDTSxDQThDTCxvQkFBTyxDQUFDO0VBQ1IsS0FBSyxFVDVETSxPQUFPO0VTNkRsQixTQUFTLEVBQUUsS0FBSztDQUNoQjs7QUFqREgsQUFrREUsUUFsRE0sQ0FrREwsc0JBQVMsQ0FBQztFQUNWLE1BQU0sRUFBRSxJQUFJO0VBQ1osV0FBVyxFQUFFLElBQUk7RUFDakIsV0FBVyxFQUFFLE1BQU07RUFDbkIsVUFBVSxFQUFFLE1BQU07RUFDbEIsT0FBTyxFQUFFLE1BQU07RUFDZixTQUFTLEVBQUUsSUFBSTtFQUNmLGNBQWMsRUFBRSxLQUFLO0VBQ3JCLEtBQUssRVRyRk8sT0FBTztFU3NGbkIsU0FBUyxFQUFFLEtBQUs7RUFDaEIsT0FBTyxFQUFFLEtBQUs7RUFDZCxNQUFNLEVBQUUsTUFBTTtFQU1kLGdCQUFnQixFVDdFVCxrSEFBNkc7Q1M4RnBIOztBWjJiQyxNQUFNLEVBQUUsU0FBUyxFQUFFLEtBQUs7RVkvZ0I1QixBQWtERSxRQWxETSxDQWtETCxzQkFBUyxDQUFDO0lBYVQsUUFBUSxFQUFFLFFBQVE7SUFDbEIsS0FBSyxFQUFFLEdBQUc7SUFDVixNQUFNLEVBQUUsSUFBSTtHQW1CYjs7O0FBcEZILEFBb0VHLFFBcEVLLENBa0RMLHNCQUFTLEFBa0JSLE9BQU8sRUFwRVgsUUFBUSxDQWtETCxzQkFBUyxBQWtCRSxNQUFNLENBQUM7RUFDakIsT0FBTyxFQUFFLEVBQUU7RUFDWCxRQUFRLEVBQUUsUUFBUTtFQUNsQixNQUFNLEVBQUUsR0FBRztFQUNYLEtBQUssRUFBRSxHQUFHO0VBQ1YsZ0JBQWdCLEVUcEdMLE9BQU87RVNxR2xCLGFBQWEsRUFBRSxHQUFHO0VBQ2xCLFNBQVMsRUFBRSxrQkFBa0I7RUFDN0IsR0FBRyxFQUFFLEdBQUc7Q0FDUjs7QUE3RUosQUE4RUcsUUE5RUssQ0FrREwsc0JBQVMsQUE0QlIsT0FBTyxDQUFDO0VBQ1IsSUFBSSxFQUFFLElBQUk7Q0FDVjs7QUFoRkosQUFpRkcsUUFqRkssQ0FrREwsc0JBQVMsQUErQlIsTUFBTSxDQUFDO0VBQ1AsS0FBSyxFQUFFLElBQUk7Q0FDWDs7QUFuRkosQUFzRkUsUUF0Rk0sQ0EwQlAsYUFBYSxDQTREWixvQkFBb0IsQ0FBQztFQUNwQixRQUFRLEVBQUUsUUFBUTtFQUNsQixNQUFNLEVBQUUsQ0FBQztFQUNULElBQUksRUFBRSxJQUFJO0VBQ1YsU0FBUyxFQUFFLGlCQUFpQjtFQUM1QixTQUFTLEVBQUUsSUFBSTtFQUNmLE1BQU0sRUFBRSxJQUFJO0NBSVo7O0FaK2FDLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTTtFWS9nQjdCLEFBc0ZFLFFBdEZNLENBMEJQLGFBQWEsQ0E0RFosb0JBQW9CLENBQUM7SUFRbkIsT0FBTyxFQUFFLElBQUk7R0FFZDs7O0FBaEdILEFBbUdDLFFBbkdPLENBbUdQLGFBQWEsQ0FBQztFQUNiLGdCQUFnQixFQUFFLGtDQUFrQztFQUNwRCxpQkFBaUIsRUFBRSxTQUFTO0VBQzVCLG1CQUFtQixFQUFFLEdBQUc7RUFDeEIsZUFBZSxFQUFFLE9BQU87Q0E0QnhCOztBQW5JRixBQUlDLFFBSk8sQ0FJUCx1QkFBdUIsQ0FvR1Y7RUFDWCxLQUFLLEVUcElPLE9BQU87RVNxSW5CLGNBQWMsRUFBRSxLQUFLO0NBQ3JCOztBQTNHSCxBQTRHRSxRQTVHTSxDQTRHTCxzQkFBUyxDQUFDO0VBQ1YsY0FBYyxFQUFFLElBQUk7RUFDcEIsV0FBVyxFUmpJQSxpQkFBaUIsRUFBRSxVQUFVO0VRa0l4QyxXQUFXLEVBQUUsR0FBRztDQUNoQjs7QUFoSEgsQUFpSEUsUUFqSE0sQ0FpSEwsa0JBQUssQ0FBQztFQUNOLFlBQVksRUFBRSxDQUFDO0NBQ2Y7O0FBbkhILEFBb0hFLFFBcEhNLENBb0hMLG1CQUFNLENBQUM7RUFDUCxVQUFVLEVBQUUsSUFBSTtDQUNoQjs7QUF0SEgsQUF3SEcsUUF4SEssQ0F1SEwsb0JBQU8sQ0FDUCxFQUFFLEVBeEhMLFFBQVEsQ0F1SEwsb0JBQU8sQ0FDSCxFQUFFLEVBeEhULFFBQVEsQ0F1SEwsb0JBQU8sQ0FDQyxFQUFFLENBQUM7RUFDVixjQUFjLEVBQUUsSUFBSTtFQUNwQixhQUFhLEVBQUUsSUFBSTtDQUNuQjs7QUEzSEosQUE0SEcsUUE1SEssQ0F1SEwsb0JBQU8sQ0FLUCxFQUFFLENBQUM7RUFDRixTQUFTLEVBQUUsSUFBSTtDQUNmOztBQTlISixBQStIRyxRQS9ISyxDQXVITCxvQkFBTyxDQVFQLEVBQUUsQ0FBQztFQUNGLFNBQVMsRUFBRSxNQUFNO0NBQ2pCOztBQWpJSixBQXFJQyxRQXJJTyxDQXFJUCxZQUFZLENBQUM7RUFDWixTQUFTLEVBQUUsS0FBSztDQUNoQjs7QUFLQSxBQUFELGtCQUFVLENBQUM7RUFDVixTQUFTLEVBQUUsSUFBSTtFQUNmLGFBQWEsRUFBRSxJQUFJO0VBQ25CLGNBQWMsRUFBRSxLQUFLO0NBQ3JCOztBQUNBLEFBQUQsZ0JBQVEsQ0FBQztFQUNSLE9BQU8sRUFBRSxJQUFJO0VBQ2IsU0FBUyxFQUFFLElBQUk7RUFDZixjQUFjLEVBQUUsU0FBUztFQUN6QixjQUFjLEVBQUUsS0FBSztFQUNyQixhQUFhLEVBQUUsS0FBSztDQUNwQjs7QUFDQSxBQUFELGdCQUFRLEVBQ1AsZ0JBQU8sQ0FBQztFQUNSLE9BQU8sRUFBRSxTQUFTO0VBQ2xCLE1BQU0sRUFBRSxPQUFPO0NBQ2Y7O0FBQ0EsQUFBRCxnQkFBUSxDQUFDO0VBQ1IsS0FBSyxFQUFFLEdBQUc7RUFDVixVQUFVLEVBQUUsS0FBSztFQUNqQixnQkFBZ0IsRVQzTEgsT0FBTztFUzRMcEIsS0FBSyxFQUFFLElBQUk7RUFDWCxTQUFTLEVBQUUsTUFBTTtFQUNqQixXQUFXLEVBQUUsR0FBRztDQUNoQjs7QUFDQSxBQUFELGdCQUFRLENBQUM7RUFDUixLQUFLLEVBQUUsR0FBRztFQUNWLGdCQUFnQixFVDlMRixPQUFPO0VTK0xyQixTQUFTLEVBQUUsTUFBTTtDQUNqQiJ9 */
