@charset "UTF-8";
.contact-form-multi-step {
  position: relative;
  margin: 11.6875rem -0.9375rem 0;
  font-family: var(--wp--preset--font-family--secondary-font);
}
@media (min-width: 992px) {
  .contact-form-multi-step {
    overflow: hidden;
  }
}
@media (min-width: 1200px) {
  .contact-form-multi-step {
    width: 100vw;
    position: relative;
    right: 50%;
    left: 50%;
    margin: 0 -50vw;
  }
}
.contact-form-multi-step__wrapper {
  min-height: 100vh;
  padding: 6.25rem 0.9375rem 1.25rem;
  position: relative;
}
@media (min-width: 768px) {
  .contact-form-multi-step__wrapper {
    padding-bottom: 2.25rem;
  }
  .contact-form-multi-step__wrapper::after {
    content: "";
    min-width: 9.0625rem;
    min-height: 2.25rem;
    position: absolute;
    top: -0.25rem;
    left: calc(50% - 9.0625rem);
    transform: matrix(-1, 0, 0, -1, 0, 0) translateX(-50%);
    background-image: url("../../../assets/images/png/notch-down.png");
    background-repeat: no-repeat;
  }
}
.contact-form-multi-step__header {
  margin-bottom: 2.3125rem;
}
@media (min-width: 768px) {
  .contact-form-multi-step__header {
    margin-bottom: 5.9375rem;
  }
}
.contact-form-multi-step__logo {
  max-width: 12rem;
  margin: 0 auto;
}
.contact-form-multi-step__background {
  z-index: -1;
}
.contact-form-multi-step__background > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.contact-form-multi-step__background__icon--top-left {
  top: -20.9375rem;
  left: -18.75rem;
}
.contact-form-multi-step__background__icon--bottom-right {
  right: -18.75rem;
  bottom: -10.625rem;
}
.contact-form-multi-step__content {
  margin-top: 3.8125rem;
}
@media (min-width: 768px) {
  .contact-form-multi-step__content {
    margin-top: 4.3125rem;
  }
}
.contact-form-multi-step__form__step {
  margin-bottom: 1.5625rem;
  color: var(--wp--preset--color--white);
  font-size: 1.875rem;
  line-height: 1.6;
}
@media (min-width: 768px) {
  .contact-form-multi-step__form__step {
    margin-bottom: 1.5rem;
  }
}
.contact-form-multi-step__form__field {
  margin-bottom: 1.25rem;
}
.contact-form-multi-step__form__field:last-of-type {
  margin-bottom: 0;
}
.contact-form-multi-step__form__field--checkbox__radiobutton {
  margin-bottom: 0.125rem !important;
}
@media (min-width: 768px) {
  .contact-form-multi-step__form__field--checkbox__radiobutton {
    margin-bottom: 0.375rem !important;
  }
}
.contact-form-multi-step__form__field--checkbox__radiobutton:last-of-type {
  margin-bottom: 0 !important;
}
.contact-form-multi-step__form__field--checkbox .wpcf7-list-item {
  margin: 0;
}
.contact-form-multi-step__form__field--checkbox .wpcf7-list-item label {
  display: block;
}
.contact-form-multi-step__form__field--checkbox .wpcf7-list-item label .wpcf7-list-item-label {
  display: inline-block;
  padding: 0.375rem 1.5625rem 0 2.25rem;
  position: relative;
  color: var(--wp--preset--color--white);
  cursor: pointer;
  transition: opacity var(--transition-speed) var(--transition-timing-function);
}
@media (min-width: 768px) {
  .contact-form-multi-step__form__field--checkbox .wpcf7-list-item label .wpcf7-list-item-label {
    padding: 0.0625rem 1.5625rem 0 1.625rem;
  }
}
.contact-form-multi-step__form__field--checkbox .wpcf7-list-item label .wpcf7-list-item-label::before {
  content: "";
  display: block;
  min-width: 1.875rem;
  min-height: 1.875rem;
  position: absolute;
  z-index: 1;
  top: 0.125rem;
  left: 0;
  border: 0.125rem solid var(--wp--preset--color--brand-dark);
  border-radius: 40%;
}
@media (min-width: 768px) {
  .contact-form-multi-step__form__field--checkbox .wpcf7-list-item label .wpcf7-list-item-label::before {
    min-width: 1.375rem;
    min-height: 1.375rem;
  }
}
.contact-form-multi-step__form__field--checkbox .wpcf7-list-item label .wpcf7-list-item-label::after {
  content: "✓";
  display: flex;
  align-items: center;
  justify-content: center;
  width: 1.875rem;
  height: 1.875rem;
  position: absolute;
  z-index: 2;
  top: 0.125rem;
  left: 0;
  text-align: center;
  color: var(--wp--preset--color--brand-dark);
  opacity: 0;
  transition: opacity 0.3s ease-in-out;
  font-size: 1.75rem;
}
@media (min-width: 768px) {
  .contact-form-multi-step__form__field--checkbox .wpcf7-list-item label .wpcf7-list-item-label::after {
    width: 1.375rem;
    height: 1.375rem;
    top: 0.25rem;
    font-size: 1.125rem;
  }
}
.contact-form-multi-step__form__field--checkbox .wpcf7-list-item label .wpcf7-list-item-label a {
  font-weight: 400;
  color: var(--wp--preset--color--brand-primary);
  text-decoration: underline;
  transition: color var(--transition-speed) var(--transition-timing-function);
}
.contact-form-multi-step__form__field--checkbox .wpcf7-list-item label .wpcf7-list-item-label a:hover {
  color: var(--wp--preset--color--brand-dark);
}
.contact-form-multi-step__form__field--checkbox .wpcf7-list-item label input {
  width: 1.125rem;
  height: 1.125rem;
  position: absolute;
  z-index: 0;
  top: 0.125rem;
  border: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}
.contact-form-multi-step__form__field--checkbox .wpcf7-list-item label input:checked + .wpcf7-list-item-label::after {
  opacity: 1;
}
.contact-form-multi-step__form__field--checkbox .wpcf7-list-item label input:disabled + .wpcf7-list-item-label {
  cursor: auto;
  opacity: 0.5;
}
.contact-form-multi-step__form__field--checkbox__more-content {
  display: none;
  margin-top: 0.375rem;
  font-weight: 400;
  font-size: 0.75rem;
  line-height: 1.3333333333;
}
.contact-form-multi-step__form__field--checkbox__more-content[aria-hidden=false] {
  display: block;
}
.contact-form-multi-step__form__field--checkbox__more-button, .contact-form-multi-step__form__field--checkbox__less-button {
  display: inline-block;
  padding: 0;
  margin-left: 0.1875rem;
  color: var(--wp--preset--color--brand-primary);
  text-decoration: underline;
  text-transform: lowercase;
  border: 0;
  background-color: transparent;
  transition: color var(--transition-speed) var(--transition-timing-function);
}
.contact-form-multi-step__form__field--checkbox__more-button:hover, .contact-form-multi-step__form__field--checkbox__less-button:hover {
  color: var(--wp--preset--color--brand-dark);
}
.contact-form-multi-step__form__field--checkbox__more-button[aria-hidden=true], .contact-form-multi-step__form__field--checkbox__less-button[aria-hidden=true] {
  display: none;
}
.contact-form-multi-step__form__row {
  display: flex;
  flex-wrap: wrap;
  margin-top: 1rem;
}
@media (min-width: 768px) {
  .contact-form-multi-step__form__row {
    margin-top: 1.0625rem;
    column-gap: 3.5rem;
  }
}
.contact-form-multi-step__form__row--desktop {
  display: block;
}
@media (min-width: 768px) {
  .contact-form-multi-step__form__row--desktop {
    display: flex;
    flex-wrap: nowrap;
    justify-content: center;
    column-gap: 4.8125rem;
  }
  .contact-form-multi-step__form__row--desktop .contact-form-multi-step__form__field {
    margin-bottom: 0;
  }
}
@media (min-width: 1440px) {
  .contact-form-multi-step__form__row--desktop {
    justify-content: flex-start;
  }
}
.contact-form-multi-step__form__row__heading {
  width: 100%;
  margin-bottom: 1.125rem;
  font-weight: 700;
  text-align: center;
  color: var(--wp--preset--color--white);
  font-size: 1.25rem;
  line-height: 1.5;
}
@media (min-width: 768px) {
  .contact-form-multi-step__form__row__heading {
    margin-bottom: 1.25rem;
  }
}
.contact-form-multi-step__form__row .contact-form-multi-step__form__field {
  flex: 1;
}
@media (min-width: 768px) {
  .contact-form-multi-step__form__row .contact-form-multi-step__form__field {
    max-width: 19.5rem;
  }
}
.contact-form-multi-step__form__row .contact-form-multi-step__form__field .wpcf7-list-item-label {
  padding-right: 0 !important;
}
.contact-form-multi-step__form__label {
  margin-bottom: 0.8125rem;
  color: var(--wp--preset--color--white);
  font-size: 1.5rem;
  line-height: 1.4583333333;
}
@media (min-width: 768px) {
  .contact-form-multi-step__form__label {
    margin-bottom: 0.9375rem;
  }
}
.contact-form-multi-step__form .wpcf7-form-control-wrap {
  display: block;
}
.contact-form-multi-step__form .wpcf7-form-control-wrap > *:not(.wpcf7-not-valid-tip):not(.wpcf7-acceptance) {
  width: 100%;
  padding: 1.3125rem 0.9375rem 1.25rem;
  color: var(--wp--preset--color--white);
  border: none;
  border-radius: 0.625rem;
  background: rgba(255, 255, 255, 0.53) 0 0 no-repeat padding-box;
  font-size: 1.125rem;
  line-height: 1.5;
}
@media (min-width: 768px) {
  .contact-form-multi-step__form .wpcf7-form-control-wrap > *:not(.wpcf7-not-valid-tip):not(.wpcf7-acceptance) {
    padding: 1.375rem 0.9375rem 1.125rem;
  }
}
.contact-form-multi-step__form .wpcf7-form-control-wrap > *:not(.wpcf7-not-valid-tip):not(.wpcf7-acceptance)::placeholder {
  color: var(--wp--preset--color--white);
  font-size: 1.125rem;
  line-height: 1.5;
}
.contact-form-multi-step__form .wpcf7-form-control-wrap .nice-select {
  height: auto;
  padding-right: 1.3125rem;
  float: none;
  position: relative;
}
.contact-form-multi-step__form .wpcf7-form-control-wrap .nice-select::after {
  width: 0.375rem;
  height: 0.375rem;
  right: 0.9375rem;
  border-color: var(--wp--preset--color--white);
}
.contact-form-multi-step__form .wpcf7-form-control-wrap .nice-select .nice-select-dropdown {
  width: 100%;
  margin-top: 0;
}
.contact-form-multi-step__form .wpcf7-form-control-wrap .nice-select .nice-select-dropdown .list {
  max-height: 15rem;
  margin-bottom: 0;
}
.contact-form-multi-step__form .wpcf7-form-control-wrap .nice-select .nice-select-dropdown .option {
  color: var(--wp--preset--color--basic-body);
}
.contact-form-multi-step__form .uacf7-steps.steps-form {
  max-width: calc(80% + 1.5rem);
  margin: 0 auto;
}
@media (min-width: 768px) {
  .contact-form-multi-step__form .uacf7-steps.steps-form {
    max-width: 26.5rem;
  }
}
.contact-form-multi-step__form .uacf7-steps .steps-row {
  display: flex !important;
  align-items: center;
  justify-content: center;
  position: relative;
  column-gap: 2.3125rem;
}
@media (min-width: 768px) {
  .contact-form-multi-step__form .uacf7-steps .steps-row {
    column-gap: 5.3125rem;
  }
}
.contact-form-multi-step__form .uacf7-steps .steps-row::before {
  content: none !important;
}
.contact-form-multi-step__form .uacf7-steps .steps-row::after {
  content: "";
  width: 100%;
  min-height: 0.5rem;
  position: absolute;
  z-index: 1;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  border-radius: 0.625rem;
  background: var(--wp--preset--color--white);
  opacity: 0.5;
}
.contact-form-multi-step__form .uacf7-steps .steps-step {
  width: 1.875rem;
  height: 1.875rem;
  position: relative;
  z-index: 3;
  border-radius: 50%;
  background-color: var(--wp--preset--color--brand-primary);
}
.contact-form-multi-step__form .uacf7-steps .steps-step::after {
  content: "";
  width: 0.8125rem;
  height: 0.8125rem;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  background-color: var(--wp--preset--color--brand-dark);
}
.contact-form-multi-step__form .uacf7-steps .steps-step.completed {
  width: 1.25rem;
  height: 1.25rem;
}
.contact-form-multi-step__form .uacf7-steps .steps-step.completed::after {
  width: 0.6875rem;
  height: 0.6875rem;
  background-color: var(--wp--preset--color--white);
}
.contact-form-multi-step__form .uacf7-steps .steps-step:not(.active):not(.completed) {
  opacity: 0;
  visibility: hidden;
}
.contact-form-multi-step__form .uacf7-steps .steps-step .btn-circle {
  display: none;
}
.contact-form-multi-step__form .uacf7-steps .steps-step .btn-circle + p {
  display: none;
}
.contact-form-multi-step__form .uacf7-steps .steps-progressbar {
  min-height: 0.5rem;
  position: absolute;
  z-index: 2;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  border-radius: 0.625rem;
  background-color: var(--wp--preset--color--brand-primary);
}
@media (min-width: 768px) {
  .contact-form-multi-step__form .uacf7-step > p {
    text-align: center;
  }
}
.contact-form-multi-step .response-output-wrapper {
  display: block !important;
  position: fixed;
  z-index: 1001;
  top: 0;
  left: 50%;
  transform: translateX(-50%) translateY(0);
  text-align: center;
  opacity: 0;
  visibility: hidden;
  transition: opacity, visibility, transform, var(--transition-speed) var(--transition-timing-function);
}
@media (max-width: 767px) {
  .contact-form-multi-step .response-output-wrapper {
    width: calc(100% - 40px);
  }
}
.contact-form-multi-step .response-output-wrapper .content-wrapper {
  display: block !important;
  min-width: 19.25rem;
  padding: 0.75rem 1.875rem 1.875rem !important;
  background-color: var(--wp--preset--color--brand-primary);
  box-shadow: 0 0.3125rem 1.25rem 0 rgba(0, 0, 0, 0.25);
}
@media (min-width: 768px) {
  .contact-form-multi-step .response-output-wrapper .content-wrapper {
    padding: 1.5rem 4.125rem 2.5rem !important;
  }
}
.contact-form-multi-step .response-output-wrapper .content-wrapper img {
  width: 3.75rem;
  height: 3.75rem;
}
.contact-form-multi-step .response-output-wrapper .content-wrapper .wpcf7-response-output {
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  text-align: center;
  color: var(--wp--preset--color--white);
  border: none !important;
  font-size: 1.125rem;
  line-height: 1.2222222222;
}
@media (min-width: 768px) {
  .contact-form-multi-step .response-output-wrapper .content-wrapper .wpcf7-response-output {
    font-size: 1.375rem;
    line-height: 1.1818181818;
  }
}
.contact-form-multi-step .response-output-wrapper .close-form {
  position: absolute;
  top: 0.5rem;
  right: 0.75rem;
  font-weight: bold;
  color: var(--wp--preset--color--white);
  cursor: pointer;
  font-size: 1.25rem;
  line-height: 1;
}
.contact-form-multi-step .wpcf7 form.sent .response-output-wrapper {
  transform: translateX(-50%) translateY(15.625rem);
  opacity: 1;
  visibility: visible;
}
.contact-form-multi-step .wpcf7 form .form-overlay {
  width: 200vw;
  height: 200vh;
  position: fixed;
  z-index: -1;
  top: -100vh;
  left: -100vw;
  background: #000;
  opacity: 0;
  transition: all 0.2s ease;
}
.contact-form-multi-step .wpcf7 form.sent .form-overlay {
  opacity: 0.6;
}
@keyframes hideResponseOutput {
  0%, 90% {
    transform: translateX(-50%) translateY(15.625rem);
    opacity: 1;
  }
  100% {
    transform: translateX(-50%) translateY(0);
    opacity: 0;
    visibility: hidden;
  }
}
@keyframes hideResponseOutputQuick {
  0% {
    transform: translateX(-50%) translateY(15.625rem);
    opacity: 1;
  }
  100% {
    transform: translateX(-50%) translateY(0);
    opacity: 0;
    visibility: hidden;
  }
}
.contact-form-multi-step .wpcf7 form.sent .response-output-wrapper {
  animation: hideResponseOutput 4s var(--transition-timing-function) forwards;
}
.contact-form-multi-step .response-output-wrapper {
  display: block !important;
  position: fixed;
  z-index: 1001;
  top: 0;
  left: 50%;
  transform: translateX(-50%) translateY(0);
  text-align: center;
  opacity: 0;
  visibility: hidden;
  transition: opacity, visibility, transform, var(--transition-speed) var(--transition-timing-function);
}
@media (max-width: 767px) {
  .contact-form-multi-step .response-output-wrapper {
    width: calc(100% - 40px);
  }
}
.contact-form-multi-step .response-output-wrapper .content-wrapper {
  display: block !important;
  min-width: 19.25rem;
  padding: 0.75rem 1.875rem 1.875rem !important;
  background-color: var(--wp--preset--color--brand-primary);
  box-shadow: 0 0.3125rem 1.25rem 0 rgba(0, 0, 0, 0.25);
}
@media (min-width: 768px) {
  .contact-form-multi-step .response-output-wrapper .content-wrapper {
    padding: 1.5rem 4.125rem 2.5rem !important;
  }
}
.contact-form-multi-step .response-output-wrapper .content-wrapper img {
  width: 3.75rem;
  height: 3.75rem;
}
.contact-form-multi-step .response-output-wrapper .content-wrapper .wpcf7-response-output {
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  text-align: center;
  color: var(--wp--preset--color--white);
  border: none !important;
  font-size: 1.125rem;
  line-height: 1.2222222222;
}
@media (min-width: 768px) {
  .contact-form-multi-step .response-output-wrapper .content-wrapper .wpcf7-response-output {
    font-size: 1.375rem;
    line-height: 1.1818181818;
  }
}
.contact-form-multi-step .response-output-wrapper .close-form {
  position: absolute;
  top: 0.5rem;
  right: 0.75rem;
  font-weight: bold;
  color: var(--wp--preset--color--white);
  cursor: pointer;
  font-size: 1.25rem;
  line-height: 1;
}
.contact-form-multi-step .wpcf7 form.sent .response-output-wrapper {
  transform: translateX(-50%) translateY(15.625rem);
  opacity: 1;
  visibility: visible;
}
.contact-form-multi-step .wpcf7 form .form-overlay {
  width: 200vw;
  height: 200vh;
  position: fixed;
  z-index: -1;
  top: -100vh;
  left: -100vw;
  background: #000;
  opacity: 0;
  transition: all 0.2s ease;
}
.contact-form-multi-step .wpcf7 form.sent .form-overlay {
  opacity: 0.6;
}
@keyframes hideResponseOutput {
  0%, 90% {
    transform: translateX(-50%) translateY(15.625rem);
    opacity: 1;
  }
  100% {
    transform: translateX(-50%) translateY(0);
    opacity: 0;
    visibility: hidden;
  }
}
@keyframes hideResponseOutputQuick {
  0% {
    transform: translateX(-50%) translateY(15.625rem);
    opacity: 1;
  }
  100% {
    transform: translateX(-50%) translateY(0);
    opacity: 0;
    visibility: hidden;
  }
}
.contact-form-multi-step .wpcf7 form.sent .response-output-wrapper {
  animation: hideResponseOutput 4s var(--transition-timing-function) forwards;
}
.contact-form-multi-step__privacy {
  margin-top: 1.25rem;
}
@media (min-width: 768px) {
  .contact-form-multi-step__privacy {
    width: calc(80% - 7.5rem);
    max-width: 78.75rem;
    margin: 1.25rem auto 0;
  }
}
.contact-form-multi-step__privacy__top {
  justify-content: center;
}
@media (min-width: 768px) {
  .contact-form-multi-step__privacy__top {
    align-items: center;
    justify-content: space-between;
    color: var(--wp--preset--color--white);
    font-size: 0.875rem;
    line-height: 1.1428571429;
  }
}
.contact-form-multi-step__privacy__bottom {
  padding: 0 0.9375rem;
  margin-top: 0.875rem;
  color: var(--wp--preset--color--white);
  font-size: 0.875rem;
  line-height: 1.1428571429;
}
@media (min-width: 768px) {
  .contact-form-multi-step__privacy__bottom {
    padding: 0;
  }
}
.contact-form-multi-step__privacy__link {
  color: var(--wp--preset--color--white);
  text-decoration: underline;
  font-size: 0.875rem;
  line-height: 1.2857142857;
}
.contact-form-multi-step__privacy__text {
  text-align: center;
  color: var(--wp--preset--color--white);
  opacity: 0.5;
  font-size: 0.75rem;
  line-height: 1.3333333333;
}
@media (min-width: 768px) {
  .contact-form-multi-step__privacy__text {
    text-align: left;
  }
}
.contact-form-multi-step__privacy__text a {
  color: var(--wp--preset--color--white) !important;
  text-decoration: underline;
}
.contact-form-multi-step__privacy__copy {
  margin-top: 0.625rem;
}
@media (min-width: 768px) {
  .contact-form-multi-step__privacy__copy {
    margin-top: 0;
  }
}
.contact-form-multi-step .uacf7-multisetp-form {
  max-width: calc(100% - 0.46875rem);
  margin: 1.75rem auto 0;
}
@media (min-width: 768px) {
  .contact-form-multi-step .uacf7-multisetp-form {
    max-width: 46.875rem;
    margin: 1.875rem auto 0;
  }
}
.contact-form-multi-step .uacf7-multisetp-form .uacf7-prev {
  display: none;
}
.contact-form-multi-step .uacf7-multisetp-form .uacf7-next,
.contact-form-multi-step .uacf7-multisetp-form .wpcf7-submit {
  width: 100%;
  padding: 1.4375rem 4.1875rem 1.375rem 2.6875rem;
  float: none !important;
  position: relative;
  margin-top: 3.75rem !important;
  text-align: left;
  color: var(--wp--preset--color--brand-dark);
  border: none;
  border-radius: 0.625rem;
  background-color: var(--wp--preset--color--white);
  transition: color, background-color, padding-left, 0.3s ease-out;
  font-size: 1.5rem;
  line-height: 1.4583333333;
}
@media (min-width: 768px) {
  .contact-form-multi-step .uacf7-multisetp-form .uacf7-next,
  .contact-form-multi-step .uacf7-multisetp-form .wpcf7-submit {
    max-width: 19.5rem;
    margin: 2.5rem auto 0 !important;
  }
}
.contact-form-multi-step .uacf7-multisetp-form .uacf7-next::after,
.contact-form-multi-step .uacf7-multisetp-form .wpcf7-submit::after {
  content: "";
  height: 100%;
  min-width: 1.6875rem;
  position: absolute;
  top: 50%;
  right: 2.9375rem;
  transform: translateY(-50%);
  background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="27.003" height="15.753" viewBox="0 0 27.003 15.753"><path d="M22.829,10.454a1.125,1.125,0,0,1,1.593,0l6.75,6.75a1.125,1.125,0,0,1,0,1.593l-6.75,6.75a1.126,1.126,0,1,1-1.593-1.593L28.784,18l-5.956-5.954a1.125,1.125,0,0,1,0-1.593Z" transform="translate(-4.5 -10.123)" fill="%23008540" fill-rule="evenodd"></path><path d="M4.5,18a1.125,1.125,0,0,1,1.125-1.125H29.25a1.125,1.125,0,0,1,0,2.25H5.625A1.125,1.125,0,0,1,4.5,18Z" transform="translate(-4.5 -10.123)" fill="%23008540" fill-rule="evenodd"></path></svg>');
  background-repeat: no-repeat;
  background-position: center;
}
.contact-form-multi-step .uacf7-multisetp-form .uacf7-next:hover,
.contact-form-multi-step .uacf7-multisetp-form .wpcf7-submit:hover {
  padding-left: 4.6875rem;
  color: var(--wp--preset--color--white);
  background-color: var(--wp--preset--color--brand-primary);
}
.contact-form-multi-step .uacf7-multisetp-form .wpcf7-submit {
  margin-top: 2.5rem !important;
}
@media (min-width: 768px) {
  .contact-form-multi-step .uacf7-multisetp-form .wpcf7-submit {
    position: relative;
    left: 50%;
    transform: translateX(-50%);
    margin: 2.3125rem auto 0 !important;
  }
}
.contact-form-multi-step .wpcf7-spinner {
  display: none !important;
}
.contact-form-multi-step .wpcf7-not-valid-tip {
  color: #d10000;
}
.contact-form-multi-step .wpcf7-response-output {
  max-width: calc(100% - 0.46875rem);
  margin: 2rem auto !important;
  color: var(--wp--preset--color--white);
}
@media (min-width: 768px) {
  .contact-form-multi-step .wpcf7-response-output {
    max-width: 46.875rem;
  }
}
.contact-form-multi-step .wpcf7 form.invalid .wpcf7-response-output {
  border-color: #d10000;
}
@media (min-width: 992px) {
  .contact-form-multi-step .acf-innerblocks-container {
    max-width: 50rem;
    margin: 0 auto;
  }
}
.contact-form-multi-step .acf-innerblocks-container h2.wp-block-heading {
  font-size: 2.375rem;
  line-height: 2.0526315789;
}
@media (min-width: 768px) {
  .contact-form-multi-step .acf-innerblocks-container h2.wp-block-heading {
    font-size: 3.75rem;
    line-height: 1.3;
  }
}
.contact-form-multi-step .acf-innerblocks-container > *:last-child {
  margin-bottom: 0;
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYi9hcHAvdGhlbWVzL2ludmltZWQvcGFydHMvZ3V0ZW5iZXJnL2FjZi1jb250YWN0LWZvcm0tbXVsdGktc3RlcC9zdHlsZS5zY3NzIiwid2ViL2FwcC90aGVtZXMvaW52aW1lZC9hc3NldHMvY3NzL19fc2V0dGluZ3MvX3ZhcmlhYmxlcy5zY3NzIiwid2ViL2FwcC90aGVtZXMvaW52aW1lZC9hc3NldHMvY3NzL19fc2V0dGluZ3MvX2luY2x1ZGUtbWVkaWEuc2NzcyIsIndlYi9hcHAvdGhlbWVzL2ludmltZWQvYXNzZXRzL2Nzcy9fX3NldHRpbmdzL19taXhpbnMuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBRUE7RUFDQztFQUNBO0VBRUEsYUNNZ0I7O0FDbWlCZjtFRjdpQkY7SUFPRTs7O0FFc2lCQTtFRjdpQkY7SUFVRTtJQUVBO0lBQ0E7SUFDQTtJQUNBOzs7QUFHRDtFQUNDO0VBQ0E7RUFFQTs7QUV1aEJBO0VGM2hCRDtJQU9FOztFQUVBO0lBQ0M7SUFFQTtJQUNBO0lBRUE7SUFDQTtJQUNBO0lBQ0E7SUFFQTtJQUNBOzs7QUFLSDtFQUNDOztBRWdnQkE7RUZqZ0JEO0lBSUU7OztBQUlGO0VBQ0M7RUFFQTs7QUFHRDtFQUNDOztBQUVBO0VBQ0M7RUFDQTtFQUVBOztBQUlBO0VBQ0M7RUFDQTs7QUFHRDtFQUNDO0VBQ0E7O0FBS0g7RUFDQzs7QUUyZEE7RUY1ZEQ7SUFJRTs7O0FBS0Q7RUFDQztFQUVBLE9DdERZO0VFeUNiO0VBakNDOztBRDhmRDtFRm5kQTtJQU9FOzs7QUFJRjtFQUNDOztBQUVBO0VBQ0M7O0FBSUE7RUFDQzs7QUUrYkg7RUZoY0U7SUFJRTs7O0FBR0Q7RUFDQzs7QUFJRjtFQUNDOztBQUVBO0VBQ0M7O0FBRUE7RUFDQztFQUVBO0VBRUE7RUFFQSxPQy9GUTtFRGlHUjtFQUVBOztBRW1hTDtFRjlhSTtJQWNFOzs7QUFHRDtFQUNDO0VBRUE7RUFFQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBOztBRStZTjtFRjdaSztJQWlCRTtJQUNBOzs7QUFJRjtFQUNDO0VBRUE7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQSxPQ25JWTtFRHFJWjtFQUVBO0VHMUdOOztBRDZkQTtFRnZZSztJQXdCRTtJQUNBO0lBRUE7SUdqSFA7OztBSHVISztFQUNDO0VBQ0EsT0N2SmU7RUR3SmY7RUFFQTs7QUFFQTtFQUNDLE9DNUpXOztBRGlLZDtFQUNDO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFFQTtFQUVBO0VBQ0E7RUFDQTs7QUFHQztFQUNDOztBQUlGO0VBQ0M7RUFDQTs7QUFNSjtFQUNDO0VBRUE7RUFFQTtFR3JLSDtFQWpDQzs7QUgwTUU7RUFDQzs7QUFJRjtFQUVDO0VBRUE7RUFFQTtFQUVBLE9DcE5rQjtFRHFObEI7RUFDQTtFQUVBO0VBQ0E7RUFFQTs7QUFFQTtFQUNDLE9DN05jOztBRGdPZjtFQUNDOztBQU1KO0VBQ0M7RUFDQTtFQUVBOztBRStRRDtFRm5SQTtJQU9FO0lBRUE7OztBQUdEO0VBQ0M7O0FFc1FGO0VGdlFDO0lBSUU7SUFDQTtJQUNBO0lBRUE7O0VBRUE7SUFDQzs7O0FFNFBKO0VGdlFDO0lBZUU7OztBQUlGO0VBQ0M7RUFFQTtFQUVBO0VBQ0E7RUFDQSxPQ3pSVztFRXlDYjtFQWpDQzs7QUQ4ZkQ7RUZwUEM7SUFXRTs7O0FBSUY7RUFDQzs7QUVvT0Y7RUZyT0M7SUFJRTs7O0FBR0Q7RUFDQzs7QUFLSDtFQUNDO0VBRUEsT0NqVFk7RUV5Q2I7RUFqQ0M7O0FEOGZEO0VGeE5BO0lBT0U7OztBQUlGO0VBQ0M7O0FBRUE7RUFDQztFQUNBO0VBRUEsT0NoVVc7RURrVVg7RUFDQTtFQUNBO0VHM1JGO0VBakNDOztBRDhmRDtFRjFNQztJQVlFOzs7QUFHRDtFQUNDLE9DNVVVO0VFeUNiO0VBakNDOztBSDBVQTtFQUNDO0VBQ0E7RUFFQTtFQUNBOztBQUVBO0VBQ0M7RUFDQTtFQUVBO0VBRUEsY0MvVlU7O0FEa1dYO0VBQ0M7RUFFQTs7QUFFQTtFQUNDO0VBRUE7O0FBR0Q7RUFDQyxPQ3pXYzs7QURnWGpCO0VBQ0M7RUFFQTs7QUU4SUY7RUZqSkM7SUFNRTs7O0FBS0Q7RUFDQztFQUNBO0VBQ0E7RUFFQTtFQUVBOztBRStISDtFRnRJRTtJQVNFOzs7QUFHRDtFQUNDOztBQUdEO0VBQ0M7RUFFQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0EsWUM3WlM7RUQ4WlQ7O0FBSUY7RUFDQztFQUNBO0VBRUE7RUFDQTtFQUVBO0VBQ0Esa0JDL1prQjs7QURpYWxCO0VBQ0M7RUFFQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBLGtCQzVhYzs7QUQrYWY7RUFDQztFQUNBOztBQUVBO0VBQ0M7RUFDQTtFQUVBLGtCQ25jUTs7QUR1Y1Y7RUFDQztFQUNBOztBQUdEO0VBQ0M7O0FBRUE7RUFDQzs7QUFLSDtFQUNDO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0Esa0JDcGRrQjs7QUMyZnJCO0VGakNDO0lBRUU7OztBQU1KO0VBQ0M7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFFQTtFQUNBO0VBRUEsWUFDQzs7QUVVRDtFRnpCRDtJQXFCRTs7O0FBR0Q7RUFDQztFQUVBO0VBQ0E7RUFFQSxrQkNoZ0JvQjtFRGlnQnBCOztBRU5EO0VGREE7SUFVRTs7O0FBR0Q7RUFDQztFQUNBOztBQUdEO0VBQ0M7RUFFQTtFQUNBO0VBRUE7RUFDQSxPQzloQlc7RURnaUJYO0VHdmZGO0VBakNDOztBRDhmRDtFRmlCQztJRzllRDtJQWpDQzs7O0FIaWlCRDtFQUNDO0VBQ0E7RUFDQTtFQUVBO0VBQ0EsT0MvaUJZO0VEZ2pCWjtFR3ZnQkQ7RUFqQ0M7O0FIOGlCRjtFQUNDO0VBRUE7RUFDQTs7QUFHRDtFQUNDO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFFQTs7QUFHRDtFQUNDOztBQUdEO0VBQ0M7SUFFQztJQUVBOztFQUVEO0lBQ0M7SUFFQTtJQUNBOzs7QUFJRjtFQUNDO0lBQ0M7SUFFQTs7RUFFRDtJQUNDO0lBRUE7SUFDQTs7O0FBSUY7RUFDQzs7QUFFRDtFQUNDO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBRUE7RUFDQTtFQUVBLFlBQ0M7O0FFekhEO0VGMEdEO0lBcUJFOzs7QUFHRDtFQUNDO0VBRUE7RUFDQTtFQUVBLGtCQ25vQm9CO0VEb29CcEI7O0FFeklEO0VGa0lBO0lBVUU7OztBQUdEO0VBQ0M7RUFDQTs7QUFHRDtFQUNDO0VBRUE7RUFDQTtFQUVBO0VBQ0EsT0NqcUJXO0VEbXFCWDtFRzFuQkY7RUFqQ0M7O0FEOGZEO0VGb0pDO0lHam5CRDtJQWpDQzs7O0FIb3FCRDtFQUNDO0VBQ0E7RUFDQTtFQUVBO0VBQ0EsT0NsckJZO0VEbXJCWjtFRzFvQkQ7RUFqQ0M7O0FIaXJCRjtFQUNDO0VBRUE7RUFDQTs7QUFHRDtFQUNDO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFFQTs7QUFHRDtFQUNDOztBQUdEO0VBQ0M7SUFFQztJQUVBOztFQUVEO0lBQ0M7SUFFQTtJQUNBOzs7QUFJRjtFQUNDO0lBQ0M7SUFFQTs7RUFFRDtJQUNDO0lBRUE7SUFDQTs7O0FBSUY7RUFDQzs7QUFHRDtFQUNDOztBRS9PQTtFRjhPRDtJQUlFO0lBQ0E7SUFFQTs7O0FBR0Q7RUFDQzs7QUV6UEQ7RUZ3UEE7SUFJRTtJQUNBO0lBRUEsT0Nyd0JXO0lFeUNiO0lBakNDOzs7QUhtd0JEO0VBQ0M7RUFFQTtFQUVBLE9DaHhCWTtFRXlDYjtFQWpDQzs7QUQ4ZkQ7RUZxUUE7SUFTRTs7O0FBSUY7RUFDQyxPQ3p4Qlk7RUQweEJaO0VHanZCRDtFQWpDQzs7QUh1eEJEO0VBQ0M7RUFDQSxPQ2p5Qlk7RURteUJaO0VHMXZCRDtFQWpDQzs7QUQ4ZkQ7RUZ5UkE7SUFRRTs7O0FBR0Q7RUFDQztFQUNBOztBQUlGO0VBQ0M7O0FFM1NEO0VGMFNBO0lBSUU7OztBQUtIO0VBQ0M7RUFFQTs7QUV0VEE7RUZtVEQ7SUFNRTtJQUVBOzs7QUFHRDtFQUNDOztBQUdEO0FBQUE7RUFFQztFQUNBO0VBRUE7RUFDQTtFQUNBO0VBRUE7RUFDQSxPQ3QwQmlCO0VEdzBCakI7RUFDQTtFQUNBLGtCQ3QxQlk7RUR3MUJaLFlBQ0M7RUdoekJGO0VBakNDOztBRDhmRDtFRmtVQTtBQUFBO0lBd0JFO0lBRUE7OztBQUdEO0FBQUE7RUFDQztFQUVBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTs7QUFHRDtBQUFBO0VBQ0M7RUFFQSxPQ3gzQlc7RUQwM0JYLGtCQy8yQm1COztBRG0zQnJCO0VBQ0M7O0FFelhEO0VGd1hBO0lBSUU7SUFDQTtJQUNBO0lBQ0E7OztBQUtIO0VBQ0M7O0FBR0Q7RUFDQzs7QUFHRDtFQUNDO0VBRUE7RUFFQSxPQ3Y1QmE7O0FDc2dCYjtFRjRZRDtJQVFFOzs7QUFLRDtFQUNDOztBRTFaRDtFRjhaRDtJQUVFO0lBRUE7OztBQUdEO0VHbDRCQTtFQWpDQzs7QUQ4ZkQ7RUZxYUE7SUdsNEJBO0lBakNDOzs7QUgwNkJEO0VBQ0MiLCJmaWxlIjoid2ViL2FwcC90aGVtZXMvaW52aW1lZC9wYXJ0cy9ndXRlbmJlcmcvYWNmLWNvbnRhY3QtZm9ybS1tdWx0aS1zdGVwL3N0eWxlLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIkBpbXBvcnQgXCJfX3NldHRpbmdzL2luaXRcIjtcclxuXHJcbi5jb250YWN0LWZvcm0tbXVsdGktc3RlcCB7XHJcblx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdG1hcmdpbjogcmVtKDE4NykgcmVtKC0xNSkgMDtcclxuXHJcblx0Zm9udC1mYW1pbHk6ICRmb250LXNlY29uZGFyeTtcclxuXHJcblx0QGluY2x1ZGUgbWVkaWEoXCI+PWxnXCIpIHtcclxuXHRcdG92ZXJmbG93OiBoaWRkZW47XHJcblx0fVxyXG5cdEBpbmNsdWRlIG1lZGlhKFwiPj14bFwiKSB7XHJcblx0XHR3aWR0aDogMTAwdnc7XHJcblxyXG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdFx0cmlnaHQ6IDUwJTtcclxuXHRcdGxlZnQ6IDUwJTtcclxuXHRcdG1hcmdpbjogMCAtNTB2dztcclxuXHR9XHJcblxyXG5cdCZfX3dyYXBwZXIge1xyXG5cdFx0bWluLWhlaWdodDogMTAwdmg7XHJcblx0XHRwYWRkaW5nOiByZW0oMTAwKSByZW0oMTUpIHJlbSgyMCk7XHJcblxyXG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuXHRcdEBpbmNsdWRlIG1lZGlhKFwiPj1tZFwiKSB7XHJcblx0XHRcdHBhZGRpbmctYm90dG9tOiByZW0oMzYpO1xyXG5cclxuXHRcdFx0Jjo6YWZ0ZXIge1xyXG5cdFx0XHRcdGNvbnRlbnQ6IFwiXCI7XHJcblxyXG5cdFx0XHRcdG1pbi13aWR0aDogcmVtKDE0NSk7XHJcblx0XHRcdFx0bWluLWhlaWdodDogcmVtKDM2KTtcclxuXHJcblx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0XHRcdHRvcDogcmVtKC00KTtcclxuXHRcdFx0XHRsZWZ0OiBjYWxjKDUwJSAtIHJlbSgxNDUpKTtcclxuXHRcdFx0XHR0cmFuc2Zvcm06IG1hdHJpeCgtMSwgMCwgMCwgLTEsIDAsIDApIHRyYW5zbGF0ZVgoLTUwJSk7XHJcblxyXG5cdFx0XHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uLy4uLy4uL2Fzc2V0cy9pbWFnZXMvcG5nL25vdGNoLWRvd24ucG5nXCIpO1xyXG5cdFx0XHRcdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdCZfX2hlYWRlciB7XHJcblx0XHRtYXJnaW4tYm90dG9tOiByZW0oMzcpO1xyXG5cclxuXHRcdEBpbmNsdWRlIG1lZGlhKFwiPj1tZFwiKSB7XHJcblx0XHRcdG1hcmdpbi1ib3R0b206IHJlbSg5NSk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQmX19sb2dvIHtcclxuXHRcdG1heC13aWR0aDogcmVtKDE5Mik7XHJcblxyXG5cdFx0bWFyZ2luOiAwIGF1dG87XHJcblx0fVxyXG5cclxuXHQmX19iYWNrZ3JvdW5kIHtcclxuXHRcdHotaW5kZXg6IC0xO1xyXG5cclxuXHRcdCYgPiBpbWcge1xyXG5cdFx0XHR3aWR0aDogMTAwJTtcclxuXHRcdFx0aGVpZ2h0OiAxMDAlO1xyXG5cclxuXHRcdFx0b2JqZWN0LWZpdDogY292ZXI7XHJcblx0XHR9XHJcblxyXG5cdFx0Jl9faWNvbiB7XHJcblx0XHRcdCYtLXRvcC1sZWZ0IHtcclxuXHRcdFx0XHR0b3A6IHJlbSgtMzM1KTtcclxuXHRcdFx0XHRsZWZ0OiByZW0oLTMwMCk7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdCYtLWJvdHRvbS1yaWdodCB7XHJcblx0XHRcdFx0cmlnaHQ6IHJlbSgtMzAwKTtcclxuXHRcdFx0XHRib3R0b206IHJlbSgtMTcwKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Jl9fY29udGVudCB7XHJcblx0XHRtYXJnaW4tdG9wOiByZW0oNjEpO1xyXG5cclxuXHRcdEBpbmNsdWRlIG1lZGlhKFwiPj1tZFwiKSB7XHJcblx0XHRcdG1hcmdpbi10b3A6IHJlbSg2OSk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQmX19mb3JtIHtcclxuXHRcdCZfX3N0ZXAge1xyXG5cdFx0XHRtYXJnaW4tYm90dG9tOiByZW0oMjUpO1xyXG5cclxuXHRcdFx0Y29sb3I6ICRjb2xvci0td2hpdGU7XHJcblxyXG5cdFx0XHRAaW5jbHVkZSBmb250KDMwLCA0OCk7XHJcblx0XHRcdEBpbmNsdWRlIG1lZGlhKFwiPj1tZFwiKSB7XHJcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogcmVtKDI0KTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdCZfX2ZpZWxkIHtcclxuXHRcdFx0bWFyZ2luLWJvdHRvbTogcmVtKDIwKTtcclxuXHJcblx0XHRcdCY6bGFzdC1vZi10eXBlIHtcclxuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQmLS1jaGVja2JveCB7XHJcblx0XHRcdFx0Jl9fcmFkaW9idXR0b24ge1xyXG5cdFx0XHRcdFx0bWFyZ2luLWJvdHRvbTogcmVtKDIpICFpbXBvcnRhbnQ7XHJcblxyXG5cdFx0XHRcdFx0QGluY2x1ZGUgbWVkaWEoXCI+PW1kXCIpIHtcclxuXHRcdFx0XHRcdFx0bWFyZ2luLWJvdHRvbTogcmVtKDYpICFpbXBvcnRhbnQ7XHJcblx0XHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdFx0JjpsYXN0LW9mLXR5cGUge1xyXG5cdFx0XHRcdFx0XHRtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHQud3BjZjctbGlzdC1pdGVtIHtcclxuXHRcdFx0XHRcdG1hcmdpbjogMDtcclxuXHJcblx0XHRcdFx0XHRsYWJlbCB7XHJcblx0XHRcdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xyXG5cclxuXHRcdFx0XHRcdFx0LndwY2Y3LWxpc3QtaXRlbS1sYWJlbCB7XHJcblx0XHRcdFx0XHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cclxuXHRcdFx0XHRcdFx0XHRwYWRkaW5nOiByZW0oNikgcmVtKDI1KSAwIHJlbSgzNik7XHJcblxyXG5cdFx0XHRcdFx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcblx0XHRcdFx0XHRcdFx0Y29sb3I6ICRjb2xvci0td2hpdGU7XHJcblxyXG5cdFx0XHRcdFx0XHRcdGN1cnNvcjogcG9pbnRlcjtcclxuXHJcblx0XHRcdFx0XHRcdFx0dHJhbnNpdGlvbjogb3BhY2l0eSAkdHJhbnMtc3BlZWQgJHRyYW5zLWZ1bmM7XHJcblxyXG5cdFx0XHRcdFx0XHRcdEBpbmNsdWRlIG1lZGlhKFwiPj1tZFwiKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRwYWRkaW5nOiByZW0oMSkgcmVtKDI1KSAwIHJlbSgyNik7XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRcdFx0XHQmOjpiZWZvcmUge1xyXG5cdFx0XHRcdFx0XHRcdFx0Y29udGVudDogXCJcIjtcclxuXHJcblx0XHRcdFx0XHRcdFx0XHRkaXNwbGF5OiBibG9jaztcclxuXHJcblx0XHRcdFx0XHRcdFx0XHRtaW4td2lkdGg6IHJlbSgzMCk7XHJcblx0XHRcdFx0XHRcdFx0XHRtaW4taGVpZ2h0OiByZW0oMzApO1xyXG5cclxuXHRcdFx0XHRcdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdFx0XHRcdFx0XHRcdHotaW5kZXg6IDE7XHJcblx0XHRcdFx0XHRcdFx0XHR0b3A6IHJlbSgyKTtcclxuXHRcdFx0XHRcdFx0XHRcdGxlZnQ6IDA7XHJcblxyXG5cdFx0XHRcdFx0XHRcdFx0Ym9yZGVyOiByZW0oMikgc29saWQgJGNvbG9yLS1icmFuZC1kYXJrO1xyXG5cdFx0XHRcdFx0XHRcdFx0Ym9yZGVyLXJhZGl1czogNDAlO1xyXG5cclxuXHRcdFx0XHRcdFx0XHRcdEBpbmNsdWRlIG1lZGlhKFwiPj1tZFwiKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdG1pbi13aWR0aDogcmVtKDIyKTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0bWluLWhlaWdodDogcmVtKDIyKTtcclxuXHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdFx0XHRcdCY6OmFmdGVyIHtcclxuXHRcdFx0XHRcdFx0XHRcdGNvbnRlbnQ6IFwi4pyTXCI7XHJcblxyXG5cdFx0XHRcdFx0XHRcdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdFx0XHRcdFx0XHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblx0XHRcdFx0XHRcdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHJcblx0XHRcdFx0XHRcdFx0XHR3aWR0aDogcmVtKDMwKTtcclxuXHRcdFx0XHRcdFx0XHRcdGhlaWdodDogcmVtKDMwKTtcclxuXHJcblx0XHRcdFx0XHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHRcdFx0XHRcdFx0XHR6LWluZGV4OiAyO1xyXG5cdFx0XHRcdFx0XHRcdFx0dG9wOiByZW0oMik7XHJcblx0XHRcdFx0XHRcdFx0XHRsZWZ0OiAwO1xyXG5cclxuXHRcdFx0XHRcdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHRcdFx0XHRcdFx0XHRcdGNvbG9yOiAkY29sb3ItLWJyYW5kLWRhcms7XHJcblxyXG5cdFx0XHRcdFx0XHRcdFx0b3BhY2l0eTogMDtcclxuXHJcblx0XHRcdFx0XHRcdFx0XHR0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZS1pbi1vdXQ7XHJcblxyXG5cdFx0XHRcdFx0XHRcdFx0QGluY2x1ZGUgZm9udCgyOCk7XHJcblx0XHRcdFx0XHRcdFx0XHRAaW5jbHVkZSBtZWRpYShcIj49bWRcIikge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR3aWR0aDogcmVtKDIyKTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0aGVpZ2h0OiByZW0oMjIpO1xyXG5cclxuXHRcdFx0XHRcdFx0XHRcdFx0dG9wOiByZW0oNCk7XHJcblxyXG5cdFx0XHRcdFx0XHRcdFx0XHRAaW5jbHVkZSBmb250KDE4KTtcclxuXHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdFx0XHRcdGEge1xyXG5cdFx0XHRcdFx0XHRcdFx0Zm9udC13ZWlnaHQ6IDQwMDtcclxuXHRcdFx0XHRcdFx0XHRcdGNvbG9yOiAkY29sb3ItLWJyYW5kLXByaW1hcnk7XHJcblx0XHRcdFx0XHRcdFx0XHR0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxuXHJcblx0XHRcdFx0XHRcdFx0XHR0cmFuc2l0aW9uOiBjb2xvciAkdHJhbnMtc3BlZWQgJHRyYW5zLWZ1bmM7XHJcblxyXG5cdFx0XHRcdFx0XHRcdFx0Jjpob3ZlciB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdGNvbG9yOiAkY29sb3ItLWJyYW5kLWRhcms7XHJcblx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdFx0XHRpbnB1dCB7XHJcblx0XHRcdFx0XHRcdFx0d2lkdGg6IHJlbSgxOCk7XHJcblx0XHRcdFx0XHRcdFx0aGVpZ2h0OiByZW0oMTgpO1xyXG5cclxuXHRcdFx0XHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHRcdFx0XHRcdFx0ei1pbmRleDogMDtcclxuXHRcdFx0XHRcdFx0XHR0b3A6IHJlbSgyKTtcclxuXHJcblx0XHRcdFx0XHRcdFx0Ym9yZGVyOiBub25lO1xyXG5cclxuXHRcdFx0XHRcdFx0XHQtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XHJcblx0XHRcdFx0XHRcdFx0LW1vei1hcHBlYXJhbmNlOiBub25lO1xyXG5cdFx0XHRcdFx0XHRcdGFwcGVhcmFuY2U6IG5vbmU7XHJcblxyXG5cdFx0XHRcdFx0XHRcdCY6Y2hlY2tlZCArIC53cGNmNy1saXN0LWl0ZW0tbGFiZWwge1xyXG5cdFx0XHRcdFx0XHRcdFx0Jjo6YWZ0ZXIge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRvcGFjaXR5OiAxO1xyXG5cdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHRcdFx0JjpkaXNhYmxlZCArIC53cGNmNy1saXN0LWl0ZW0tbGFiZWwge1xyXG5cdFx0XHRcdFx0XHRcdFx0Y3Vyc29yOiBhdXRvO1xyXG5cdFx0XHRcdFx0XHRcdFx0b3BhY2l0eTogMC41O1xyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0Jl9fbW9yZS1jb250ZW50IHtcclxuXHRcdFx0XHRcdGRpc3BsYXk6IG5vbmU7XHJcblxyXG5cdFx0XHRcdFx0bWFyZ2luLXRvcDogcmVtKDYpO1xyXG5cclxuXHRcdFx0XHRcdGZvbnQtd2VpZ2h0OiA0MDA7XHJcblxyXG5cdFx0XHRcdFx0QGluY2x1ZGUgZm9udCgxMiwgMTYpO1xyXG5cclxuXHRcdFx0XHRcdCZbYXJpYS1oaWRkZW49XCJmYWxzZVwiXSB7XHJcblx0XHRcdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0Jl9fbW9yZS1idXR0b24sXHJcblx0XHRcdFx0Jl9fbGVzcy1idXR0b24ge1xyXG5cdFx0XHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cclxuXHRcdFx0XHRcdHBhZGRpbmc6IDA7XHJcblxyXG5cdFx0XHRcdFx0bWFyZ2luLWxlZnQ6IHJlbSgzKTtcclxuXHJcblx0XHRcdFx0XHRjb2xvcjogJGNvbG9yLS1icmFuZC1wcmltYXJ5O1xyXG5cdFx0XHRcdFx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcblx0XHRcdFx0XHR0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlO1xyXG5cclxuXHRcdFx0XHRcdGJvcmRlcjogMDtcclxuXHRcdFx0XHRcdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG5cclxuXHRcdFx0XHRcdHRyYW5zaXRpb246IGNvbG9yICR0cmFucy1zcGVlZCAkdHJhbnMtZnVuYztcclxuXHJcblx0XHRcdFx0XHQmOmhvdmVyIHtcclxuXHRcdFx0XHRcdFx0Y29sb3I6ICRjb2xvci0tYnJhbmQtZGFyaztcclxuXHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHQmW2FyaWEtaGlkZGVuPVwidHJ1ZVwiXSB7XHJcblx0XHRcdFx0XHRcdGRpc3BsYXk6IG5vbmU7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0Jl9fcm93IHtcclxuXHRcdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdFx0ZmxleC13cmFwOiB3cmFwO1xyXG5cclxuXHRcdFx0bWFyZ2luLXRvcDogcmVtKDE2KTtcclxuXHJcblx0XHRcdEBpbmNsdWRlIG1lZGlhKFwiPj1tZFwiKSB7XHJcblx0XHRcdFx0bWFyZ2luLXRvcDogcmVtKDE3KTtcclxuXHJcblx0XHRcdFx0Y29sdW1uLWdhcDogcmVtKDU2KTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Ji0tZGVza3RvcCB7XHJcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XHJcblxyXG5cdFx0XHRcdEBpbmNsdWRlIG1lZGlhKFwiPj1tZFwiKSB7XHJcblx0XHRcdFx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0XHRcdFx0ZmxleC13cmFwOiBub3dyYXA7XHJcblx0XHRcdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHJcblx0XHRcdFx0XHRjb2x1bW4tZ2FwOiByZW0oNzcpO1xyXG5cclxuXHRcdFx0XHRcdC5jb250YWN0LWZvcm0tbXVsdGktc3RlcF9fZm9ybV9fZmllbGQge1xyXG5cdFx0XHRcdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRAaW5jbHVkZSBtZWRpYShcIj49eHhsXCIpIHtcclxuXHRcdFx0XHRcdGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdCZfX2hlYWRpbmcge1xyXG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xyXG5cclxuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiByZW0oMTgpO1xyXG5cclxuXHRcdFx0XHRmb250LXdlaWdodDogNzAwO1xyXG5cdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHRcdFx0XHRjb2xvcjogJGNvbG9yLS13aGl0ZTtcclxuXHJcblx0XHRcdFx0QGluY2x1ZGUgZm9udCgyMCwgMzApO1xyXG5cdFx0XHRcdEBpbmNsdWRlIG1lZGlhKFwiPj1tZFwiKSB7XHJcblx0XHRcdFx0XHRtYXJnaW4tYm90dG9tOiByZW0oMjApO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0LmNvbnRhY3QtZm9ybS1tdWx0aS1zdGVwX19mb3JtX19maWVsZCB7XHJcblx0XHRcdFx0ZmxleDogMTtcclxuXHJcblx0XHRcdFx0QGluY2x1ZGUgbWVkaWEoXCI+PW1kXCIpIHtcclxuXHRcdFx0XHRcdG1heC13aWR0aDogcmVtKDMxMik7XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHQud3BjZjctbGlzdC1pdGVtLWxhYmVsIHtcclxuXHRcdFx0XHRcdHBhZGRpbmctcmlnaHQ6IDAgIWltcG9ydGFudDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHQmX19sYWJlbCB7XHJcblx0XHRcdG1hcmdpbi1ib3R0b206IHJlbSgxMyk7XHJcblxyXG5cdFx0XHRjb2xvcjogJGNvbG9yLS13aGl0ZTtcclxuXHJcblx0XHRcdEBpbmNsdWRlIGZvbnQoMjQsIDM1KTtcclxuXHRcdFx0QGluY2x1ZGUgbWVkaWEoXCI+PW1kXCIpIHtcclxuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiByZW0oMTUpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0LndwY2Y3LWZvcm0tY29udHJvbC13cmFwIHtcclxuXHRcdFx0ZGlzcGxheTogYmxvY2s7XHJcblxyXG5cdFx0XHQmID4gKjpub3QoLndwY2Y3LW5vdC12YWxpZC10aXApOm5vdCgud3BjZjctYWNjZXB0YW5jZSkge1xyXG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0XHRcdHBhZGRpbmc6IHJlbSgyMSkgcmVtKDE1KSByZW0oMjApO1xyXG5cclxuXHRcdFx0XHRjb2xvcjogJGNvbG9yLS13aGl0ZTtcclxuXHJcblx0XHRcdFx0Ym9yZGVyOiBub25lO1xyXG5cdFx0XHRcdGJvcmRlci1yYWRpdXM6IHJlbSgxMCk7XHJcblx0XHRcdFx0YmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUzKSAwIDAgbm8tcmVwZWF0IHBhZGRpbmctYm94O1xyXG5cclxuXHRcdFx0XHRAaW5jbHVkZSBmb250KDE4LCAyNyk7XHJcblx0XHRcdFx0QGluY2x1ZGUgbWVkaWEoXCI+PW1kXCIpIHtcclxuXHRcdFx0XHRcdHBhZGRpbmc6IHJlbSgyMikgcmVtKDE1KSByZW0oMTgpO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0Jjo6cGxhY2Vob2xkZXIge1xyXG5cdFx0XHRcdFx0Y29sb3I6ICRjb2xvci0td2hpdGU7XHJcblxyXG5cdFx0XHRcdFx0QGluY2x1ZGUgZm9udCgxOCwgMjcpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Lm5pY2Utc2VsZWN0IHtcclxuXHRcdFx0XHRoZWlnaHQ6IGF1dG87XHJcblx0XHRcdFx0cGFkZGluZy1yaWdodDogcmVtKDIxKTtcclxuXHJcblx0XHRcdFx0ZmxvYXQ6IG5vbmU7XHJcblx0XHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuXHRcdFx0XHQmOjphZnRlciB7XHJcblx0XHRcdFx0XHR3aWR0aDogcmVtKDYpO1xyXG5cdFx0XHRcdFx0aGVpZ2h0OiByZW0oNik7XHJcblxyXG5cdFx0XHRcdFx0cmlnaHQ6IHJlbSgxNSk7XHJcblxyXG5cdFx0XHRcdFx0Ym9yZGVyLWNvbG9yOiAkY29sb3ItLXdoaXRlO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0Lm5pY2Utc2VsZWN0LWRyb3Bkb3duIHtcclxuXHRcdFx0XHRcdHdpZHRoOiAxMDAlO1xyXG5cclxuXHRcdFx0XHRcdG1hcmdpbi10b3A6IDA7XHJcblxyXG5cdFx0XHRcdFx0Lmxpc3Qge1xyXG5cdFx0XHRcdFx0XHRtYXgtaGVpZ2h0OiByZW0oMjQwKTtcclxuXHJcblx0XHRcdFx0XHRcdG1hcmdpbi1ib3R0b206IDA7XHJcblx0XHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdFx0Lm9wdGlvbiB7XHJcblx0XHRcdFx0XHRcdGNvbG9yOiAkY29sb3ItLWJhc2ljLWJvZHk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0LnVhY2Y3LXN0ZXBzIHtcclxuXHRcdFx0Ji5zdGVwcy1mb3JtIHtcclxuXHRcdFx0XHRtYXgtd2lkdGg6IGNhbGMoODAlICsgcmVtKDI0KSk7XHJcblxyXG5cdFx0XHRcdG1hcmdpbjogMCBhdXRvO1xyXG5cclxuXHRcdFx0XHRAaW5jbHVkZSBtZWRpYShcIj49bWRcIikge1xyXG5cdFx0XHRcdFx0bWF4LXdpZHRoOiByZW0oNDI0KTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdC5zdGVwcyB7XHJcblx0XHRcdFx0Ji1yb3cge1xyXG5cdFx0XHRcdFx0ZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xyXG5cdFx0XHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHRcdFx0XHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG5cclxuXHRcdFx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcblx0XHRcdFx0XHRjb2x1bW4tZ2FwOiByZW0oMzcpO1xyXG5cdFx0XHRcdFx0QGluY2x1ZGUgbWVkaWEoXCI+PW1kXCIpIHtcclxuXHRcdFx0XHRcdFx0Y29sdW1uLWdhcDogcmVtKDg1KTtcclxuXHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHQmOjpiZWZvcmUge1xyXG5cdFx0XHRcdFx0XHRjb250ZW50OiBub25lICFpbXBvcnRhbnQ7XHJcblx0XHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdFx0Jjo6YWZ0ZXIge1xyXG5cdFx0XHRcdFx0XHRjb250ZW50OiBcIlwiO1xyXG5cclxuXHRcdFx0XHRcdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRcdFx0XHRcdG1pbi1oZWlnaHQ6IHJlbSg4KTtcclxuXHJcblx0XHRcdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdFx0XHRcdFx0ei1pbmRleDogMTtcclxuXHRcdFx0XHRcdFx0dG9wOiA1MCU7XHJcblx0XHRcdFx0XHRcdGxlZnQ6IDUwJTtcclxuXHRcdFx0XHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XHJcblxyXG5cdFx0XHRcdFx0XHRib3JkZXItcmFkaXVzOiByZW0oMTApO1xyXG5cdFx0XHRcdFx0XHRiYWNrZ3JvdW5kOiAkY29sb3ItLXdoaXRlO1xyXG5cdFx0XHRcdFx0XHRvcGFjaXR5OiAwLjU7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHQmLXN0ZXAge1xyXG5cdFx0XHRcdFx0d2lkdGg6IHJlbSgzMCk7XHJcblx0XHRcdFx0XHRoZWlnaHQ6IHJlbSgzMCk7XHJcblxyXG5cdFx0XHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdFx0XHRcdFx0ei1pbmRleDogMztcclxuXHJcblx0XHRcdFx0XHRib3JkZXItcmFkaXVzOiA1MCU7XHJcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItLWJyYW5kLXByaW1hcnk7XHJcblxyXG5cdFx0XHRcdFx0Jjo6YWZ0ZXIge1xyXG5cdFx0XHRcdFx0XHRjb250ZW50OiBcIlwiO1xyXG5cclxuXHRcdFx0XHRcdFx0d2lkdGg6IHJlbSgxMyk7XHJcblx0XHRcdFx0XHRcdGhlaWdodDogcmVtKDEzKTtcclxuXHJcblx0XHRcdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdFx0XHRcdFx0dG9wOiA1MCU7XHJcblx0XHRcdFx0XHRcdGxlZnQ6IDUwJTtcclxuXHRcdFx0XHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XHJcblxyXG5cdFx0XHRcdFx0XHRib3JkZXItcmFkaXVzOiA1MCU7XHJcblx0XHRcdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRjb2xvci0tYnJhbmQtZGFyaztcclxuXHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHQmLmNvbXBsZXRlZCB7XHJcblx0XHRcdFx0XHRcdHdpZHRoOiByZW0oMjApO1xyXG5cdFx0XHRcdFx0XHRoZWlnaHQ6IHJlbSgyMCk7XHJcblxyXG5cdFx0XHRcdFx0XHQmOjphZnRlciB7XHJcblx0XHRcdFx0XHRcdFx0d2lkdGg6IHJlbSgxMSk7XHJcblx0XHRcdFx0XHRcdFx0aGVpZ2h0OiByZW0oMTEpO1xyXG5cclxuXHRcdFx0XHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItLXdoaXRlO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdFx0Jjpub3QoLmFjdGl2ZSk6bm90KC5jb21wbGV0ZWQpIHtcclxuXHRcdFx0XHRcdFx0b3BhY2l0eTogMDtcclxuXHRcdFx0XHRcdFx0dmlzaWJpbGl0eTogaGlkZGVuO1xyXG5cdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRcdC5idG4tY2lyY2xlIHtcclxuXHRcdFx0XHRcdFx0ZGlzcGxheTogbm9uZTtcclxuXHJcblx0XHRcdFx0XHRcdCYgKyBwIHtcclxuXHRcdFx0XHRcdFx0XHRkaXNwbGF5OiBub25lO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHQmLXByb2dyZXNzYmFyIHtcclxuXHRcdFx0XHRcdG1pbi1oZWlnaHQ6IHJlbSg4KTtcclxuXHJcblx0XHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHRcdFx0XHR6LWluZGV4OiAyO1xyXG5cdFx0XHRcdFx0dG9wOiA1MCU7XHJcblx0XHRcdFx0XHRsZWZ0OiAwO1xyXG5cdFx0XHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xyXG5cclxuXHRcdFx0XHRcdGJvcmRlci1yYWRpdXM6IHJlbSgxMCk7XHJcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItLWJyYW5kLXByaW1hcnk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0LnVhY2Y3LXN0ZXAge1xyXG5cdFx0XHQmID4gcCB7XHJcblx0XHRcdFx0QGluY2x1ZGUgbWVkaWEoXCI+PW1kXCIpIHtcclxuXHRcdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC5yZXNwb25zZS1vdXRwdXQtd3JhcHBlciB7XHJcblx0XHRkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xyXG5cclxuXHRcdHBvc2l0aW9uOiBmaXhlZDtcclxuXHRcdHotaW5kZXg6IDEwMDE7XHJcblx0XHR0b3A6IDA7XHJcblx0XHRsZWZ0OiA1MCU7XHJcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgwKTtcclxuXHJcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblxyXG5cdFx0b3BhY2l0eTogMDtcclxuXHRcdHZpc2liaWxpdHk6IGhpZGRlbjtcclxuXHJcblx0XHR0cmFuc2l0aW9uOlxyXG5cdFx0XHRvcGFjaXR5LFxyXG5cdFx0XHR2aXNpYmlsaXR5LFxyXG5cdFx0XHR0cmFuc2Zvcm0sXHJcblx0XHRcdCR0cmFucy1zcGVlZCAkdHJhbnMtZnVuYztcclxuXHJcblx0XHRAaW5jbHVkZSBtZWRpYShcIjxtZFwiKSB7XHJcblx0XHRcdHdpZHRoOiBjYWxjKDEwMCUgLSA0MHB4KTtcclxuXHRcdH1cclxuXHJcblx0XHQuY29udGVudC13cmFwcGVyIHtcclxuXHRcdFx0ZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcclxuXHJcblx0XHRcdG1pbi13aWR0aDogcmVtKDMwOCk7XHJcblx0XHRcdHBhZGRpbmc6IHJlbSgxMikgcmVtKDMwKSByZW0oMzApICFpbXBvcnRhbnQ7XHJcblxyXG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItLWJyYW5kLXByaW1hcnk7XHJcblx0XHRcdGJveC1zaGFkb3c6IDAgcmVtKDUpIHJlbSgyMCkgMCByZ2JhKDAsIDAsIDAsIDAuMjUpO1xyXG5cclxuXHRcdFx0QGluY2x1ZGUgbWVkaWEoXCI+PW1kXCIpIHtcclxuXHRcdFx0XHRwYWRkaW5nOiByZW0oMjQpIHJlbSg2NikgcmVtKDQwKSAhaW1wb3J0YW50O1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRpbWcge1xyXG5cdFx0XHRcdHdpZHRoOiByZW0oNjApO1xyXG5cdFx0XHRcdGhlaWdodDogcmVtKDYwKTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0LndwY2Y3LXJlc3BvbnNlLW91dHB1dCB7XHJcblx0XHRcdFx0ZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcclxuXHJcblx0XHRcdFx0bWFyZ2luOiAwICFpbXBvcnRhbnQ7XHJcblx0XHRcdFx0cGFkZGluZzogMCAhaW1wb3J0YW50O1xyXG5cclxuXHRcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblx0XHRcdFx0Y29sb3I6ICRjb2xvci0td2hpdGU7XHJcblxyXG5cdFx0XHRcdGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xyXG5cclxuXHRcdFx0XHRAaW5jbHVkZSBmb250KDE4LCAyMik7XHJcblx0XHRcdFx0QGluY2x1ZGUgbWVkaWEoXCI+PW1kXCIpIHtcclxuXHRcdFx0XHRcdEBpbmNsdWRlIGZvbnQoMjIsIDI2KTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHQuY2xvc2UtZm9ybSB7XHJcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdFx0dG9wOiByZW0oOCk7XHJcblx0XHRcdHJpZ2h0OiByZW0oMTIpO1xyXG5cclxuXHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XHJcblx0XHRcdGNvbG9yOiAkY29sb3ItLXdoaXRlO1xyXG5cdFx0XHRjdXJzb3I6IHBvaW50ZXI7XHJcblxyXG5cdFx0XHRAaW5jbHVkZSBmb250KDIwLCAyMCk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQud3BjZjcgZm9ybS5zZW50IC5yZXNwb25zZS1vdXRwdXQtd3JhcHBlciB7XHJcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWShyZW0oMjUwKSk7XHJcblxyXG5cdFx0b3BhY2l0eTogMTtcclxuXHRcdHZpc2liaWxpdHk6IHZpc2libGU7XHJcblx0fVxyXG5cclxuXHQud3BjZjcgZm9ybSAuZm9ybS1vdmVybGF5IHtcclxuXHRcdHdpZHRoOiAyMDB2dztcclxuXHRcdGhlaWdodDogMjAwdmg7XHJcblxyXG5cdFx0cG9zaXRpb246IGZpeGVkO1xyXG5cdFx0ei1pbmRleDogLTE7XHJcblx0XHR0b3A6IC0xMDB2aDtcclxuXHRcdGxlZnQ6IC0xMDB2dztcclxuXHJcblx0XHRiYWNrZ3JvdW5kOiAjMDAwO1xyXG5cdFx0b3BhY2l0eTogMDtcclxuXHJcblx0XHR0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xyXG5cdH1cclxuXHJcblx0LndwY2Y3IGZvcm0uc2VudCAuZm9ybS1vdmVybGF5IHtcclxuXHRcdG9wYWNpdHk6IDAuNjtcclxuXHR9XHJcblxyXG5cdEBrZXlmcmFtZXMgaGlkZVJlc3BvbnNlT3V0cHV0IHtcclxuXHRcdDAlLFxyXG5cdFx0OTAlIHtcclxuXHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkocmVtKDI1MCkpO1xyXG5cclxuXHRcdFx0b3BhY2l0eTogMTtcclxuXHRcdH1cclxuXHRcdDEwMCUge1xyXG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgwKTtcclxuXHJcblx0XHRcdG9wYWNpdHk6IDA7XHJcblx0XHRcdHZpc2liaWxpdHk6IGhpZGRlbjtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdEBrZXlmcmFtZXMgaGlkZVJlc3BvbnNlT3V0cHV0UXVpY2sge1xyXG5cdFx0MCUge1xyXG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWShyZW0oMjUwKSk7XHJcblxyXG5cdFx0XHRvcGFjaXR5OiAxO1xyXG5cdFx0fVxyXG5cdFx0MTAwJSB7XHJcblx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKDApO1xyXG5cclxuXHRcdFx0b3BhY2l0eTogMDtcclxuXHRcdFx0dmlzaWJpbGl0eTogaGlkZGVuO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LndwY2Y3IGZvcm0uc2VudCAucmVzcG9uc2Utb3V0cHV0LXdyYXBwZXIge1xyXG5cdFx0YW5pbWF0aW9uOiBoaWRlUmVzcG9uc2VPdXRwdXQgNHMgJHRyYW5zLWZ1bmMgZm9yd2FyZHM7XHJcblx0fVxyXG5cdC5yZXNwb25zZS1vdXRwdXQtd3JhcHBlciB7XHJcblx0XHRkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xyXG5cclxuXHRcdHBvc2l0aW9uOiBmaXhlZDtcclxuXHRcdHotaW5kZXg6IDEwMDE7XHJcblx0XHR0b3A6IDA7XHJcblx0XHRsZWZ0OiA1MCU7XHJcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgwKTtcclxuXHJcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblxyXG5cdFx0b3BhY2l0eTogMDtcclxuXHRcdHZpc2liaWxpdHk6IGhpZGRlbjtcclxuXHJcblx0XHR0cmFuc2l0aW9uOlxyXG5cdFx0XHRvcGFjaXR5LFxyXG5cdFx0XHR2aXNpYmlsaXR5LFxyXG5cdFx0XHR0cmFuc2Zvcm0sXHJcblx0XHRcdCR0cmFucy1zcGVlZCAkdHJhbnMtZnVuYztcclxuXHJcblx0XHRAaW5jbHVkZSBtZWRpYShcIjxtZFwiKSB7XHJcblx0XHRcdHdpZHRoOiBjYWxjKDEwMCUgLSA0MHB4KTtcclxuXHRcdH1cclxuXHJcblx0XHQuY29udGVudC13cmFwcGVyIHtcclxuXHRcdFx0ZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcclxuXHJcblx0XHRcdG1pbi13aWR0aDogcmVtKDMwOCk7XHJcblx0XHRcdHBhZGRpbmc6IHJlbSgxMikgcmVtKDMwKSByZW0oMzApICFpbXBvcnRhbnQ7XHJcblxyXG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItLWJyYW5kLXByaW1hcnk7XHJcblx0XHRcdGJveC1zaGFkb3c6IDAgcmVtKDUpIHJlbSgyMCkgMCByZ2JhKDAsIDAsIDAsIDAuMjUpO1xyXG5cclxuXHRcdFx0QGluY2x1ZGUgbWVkaWEoXCI+PW1kXCIpIHtcclxuXHRcdFx0XHRwYWRkaW5nOiByZW0oMjQpIHJlbSg2NikgcmVtKDQwKSAhaW1wb3J0YW50O1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRpbWcge1xyXG5cdFx0XHRcdHdpZHRoOiByZW0oNjApO1xyXG5cdFx0XHRcdGhlaWdodDogcmVtKDYwKTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0LndwY2Y3LXJlc3BvbnNlLW91dHB1dCB7XHJcblx0XHRcdFx0ZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcclxuXHJcblx0XHRcdFx0bWFyZ2luOiAwICFpbXBvcnRhbnQ7XHJcblx0XHRcdFx0cGFkZGluZzogMCAhaW1wb3J0YW50O1xyXG5cclxuXHRcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblx0XHRcdFx0Y29sb3I6ICRjb2xvci0td2hpdGU7XHJcblxyXG5cdFx0XHRcdGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xyXG5cclxuXHRcdFx0XHRAaW5jbHVkZSBmb250KDE4LCAyMik7XHJcblx0XHRcdFx0QGluY2x1ZGUgbWVkaWEoXCI+PW1kXCIpIHtcclxuXHRcdFx0XHRcdEBpbmNsdWRlIGZvbnQoMjIsIDI2KTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHQuY2xvc2UtZm9ybSB7XHJcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdFx0dG9wOiByZW0oOCk7XHJcblx0XHRcdHJpZ2h0OiByZW0oMTIpO1xyXG5cclxuXHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XHJcblx0XHRcdGNvbG9yOiAkY29sb3ItLXdoaXRlO1xyXG5cdFx0XHRjdXJzb3I6IHBvaW50ZXI7XHJcblxyXG5cdFx0XHRAaW5jbHVkZSBmb250KDIwLCAyMCk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQud3BjZjcgZm9ybS5zZW50IC5yZXNwb25zZS1vdXRwdXQtd3JhcHBlciB7XHJcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWShyZW0oMjUwKSk7XHJcblxyXG5cdFx0b3BhY2l0eTogMTtcclxuXHRcdHZpc2liaWxpdHk6IHZpc2libGU7XHJcblx0fVxyXG5cclxuXHQud3BjZjcgZm9ybSAuZm9ybS1vdmVybGF5IHtcclxuXHRcdHdpZHRoOiAyMDB2dztcclxuXHRcdGhlaWdodDogMjAwdmg7XHJcblxyXG5cdFx0cG9zaXRpb246IGZpeGVkO1xyXG5cdFx0ei1pbmRleDogLTE7XHJcblx0XHR0b3A6IC0xMDB2aDtcclxuXHRcdGxlZnQ6IC0xMDB2dztcclxuXHJcblx0XHRiYWNrZ3JvdW5kOiAjMDAwO1xyXG5cdFx0b3BhY2l0eTogMDtcclxuXHJcblx0XHR0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xyXG5cdH1cclxuXHJcblx0LndwY2Y3IGZvcm0uc2VudCAuZm9ybS1vdmVybGF5IHtcclxuXHRcdG9wYWNpdHk6IDAuNjtcclxuXHR9XHJcblxyXG5cdEBrZXlmcmFtZXMgaGlkZVJlc3BvbnNlT3V0cHV0IHtcclxuXHRcdDAlLFxyXG5cdFx0OTAlIHtcclxuXHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkocmVtKDI1MCkpO1xyXG5cclxuXHRcdFx0b3BhY2l0eTogMTtcclxuXHRcdH1cclxuXHRcdDEwMCUge1xyXG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgwKTtcclxuXHJcblx0XHRcdG9wYWNpdHk6IDA7XHJcblx0XHRcdHZpc2liaWxpdHk6IGhpZGRlbjtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdEBrZXlmcmFtZXMgaGlkZVJlc3BvbnNlT3V0cHV0UXVpY2sge1xyXG5cdFx0MCUge1xyXG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWShyZW0oMjUwKSk7XHJcblxyXG5cdFx0XHRvcGFjaXR5OiAxO1xyXG5cdFx0fVxyXG5cdFx0MTAwJSB7XHJcblx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKDApO1xyXG5cclxuXHRcdFx0b3BhY2l0eTogMDtcclxuXHRcdFx0dmlzaWJpbGl0eTogaGlkZGVuO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LndwY2Y3IGZvcm0uc2VudCAucmVzcG9uc2Utb3V0cHV0LXdyYXBwZXIge1xyXG5cdFx0YW5pbWF0aW9uOiBoaWRlUmVzcG9uc2VPdXRwdXQgNHMgJHRyYW5zLWZ1bmMgZm9yd2FyZHM7XHJcblx0fVxyXG5cclxuXHQmX19wcml2YWN5IHtcclxuXHRcdG1hcmdpbi10b3A6IHJlbSgyMCk7XHJcblxyXG5cdFx0QGluY2x1ZGUgbWVkaWEoXCI+PW1kXCIpIHtcclxuXHRcdFx0d2lkdGg6IGNhbGMoODAlIC0gcmVtKDEyMCkpO1xyXG5cdFx0XHRtYXgtd2lkdGg6IHJlbSgxMjYwKTtcclxuXHJcblx0XHRcdG1hcmdpbjogcmVtKDIwKSBhdXRvIDA7XHJcblx0XHR9XHJcblxyXG5cdFx0Jl9fdG9wIHtcclxuXHRcdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcblxyXG5cdFx0XHRAaW5jbHVkZSBtZWRpYShcIj49bWRcIikge1xyXG5cdFx0XHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblx0XHRcdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG5cclxuXHRcdFx0XHRjb2xvcjogJGNvbG9yLS13aGl0ZTtcclxuXHJcblx0XHRcdFx0QGluY2x1ZGUgZm9udCgxNCwgMTYpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0Jl9fYm90dG9tIHtcclxuXHRcdFx0cGFkZGluZzogMCByZW0oMTUpO1xyXG5cclxuXHRcdFx0bWFyZ2luLXRvcDogcmVtKDE0KTtcclxuXHJcblx0XHRcdGNvbG9yOiAkY29sb3ItLXdoaXRlO1xyXG5cclxuXHRcdFx0QGluY2x1ZGUgZm9udCgxNCwgMTYpO1xyXG5cdFx0XHRAaW5jbHVkZSBtZWRpYShcIj49bWRcIikge1xyXG5cdFx0XHRcdHBhZGRpbmc6IDA7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHQmX19saW5rIHtcclxuXHRcdFx0Y29sb3I6ICRjb2xvci0td2hpdGU7XHJcblx0XHRcdHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG5cclxuXHRcdFx0QGluY2x1ZGUgZm9udCgxNCwgMTgpO1xyXG5cdFx0fVxyXG5cclxuXHRcdCZfX3RleHQge1xyXG5cdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblx0XHRcdGNvbG9yOiAkY29sb3ItLXdoaXRlO1xyXG5cclxuXHRcdFx0b3BhY2l0eTogMC41O1xyXG5cclxuXHRcdFx0QGluY2x1ZGUgZm9udCgxMiwgMTYpO1xyXG5cdFx0XHRAaW5jbHVkZSBtZWRpYShcIj49bWRcIikge1xyXG5cdFx0XHRcdHRleHQtYWxpZ246IGxlZnQ7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdGEge1xyXG5cdFx0XHRcdGNvbG9yOiAkY29sb3ItLXdoaXRlICFpbXBvcnRhbnQ7XHJcblx0XHRcdFx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHQmX19jb3B5IHtcclxuXHRcdFx0bWFyZ2luLXRvcDogcmVtKDEwKTtcclxuXHJcblx0XHRcdEBpbmNsdWRlIG1lZGlhKFwiPj1tZFwiKSB7XHJcblx0XHRcdFx0bWFyZ2luLXRvcDogMDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LnVhY2Y3LW11bHRpc2V0cC1mb3JtIHtcclxuXHRcdG1heC13aWR0aDogY2FsYygxMDAlIC0gcmVtKDcuNSkpO1xyXG5cclxuXHRcdG1hcmdpbjogcmVtKDI4KSBhdXRvIDA7XHJcblxyXG5cdFx0QGluY2x1ZGUgbWVkaWEoXCI+PW1kXCIpIHtcclxuXHRcdFx0bWF4LXdpZHRoOiByZW0oNzUwKTtcclxuXHJcblx0XHRcdG1hcmdpbjogcmVtKDMwKSBhdXRvIDA7XHJcblx0XHR9XHJcblxyXG5cdFx0LnVhY2Y3LXByZXYge1xyXG5cdFx0XHRkaXNwbGF5OiBub25lO1xyXG5cdFx0fVxyXG5cclxuXHRcdC51YWNmNy1uZXh0LFxyXG5cdFx0LndwY2Y3LXN1Ym1pdCB7XHJcblx0XHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0XHRwYWRkaW5nOiByZW0oMjMpIHJlbSg2NykgcmVtKDIyKSByZW0oNDMpO1xyXG5cclxuXHRcdFx0ZmxvYXQ6IG5vbmUgIWltcG9ydGFudDtcclxuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdFx0XHRtYXJnaW4tdG9wOiByZW0oNjApICFpbXBvcnRhbnQ7XHJcblxyXG5cdFx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xyXG5cdFx0XHRjb2xvcjogJGNvbG9yLS1icmFuZC1kYXJrO1xyXG5cclxuXHRcdFx0Ym9yZGVyOiBub25lO1xyXG5cdFx0XHRib3JkZXItcmFkaXVzOiByZW0oMTApO1xyXG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItLXdoaXRlO1xyXG5cclxuXHRcdFx0dHJhbnNpdGlvbjpcclxuXHRcdFx0XHRjb2xvcixcclxuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yLFxyXG5cdFx0XHRcdHBhZGRpbmctbGVmdCxcclxuXHRcdFx0XHQwLjNzIGVhc2Utb3V0O1xyXG5cclxuXHRcdFx0QGluY2x1ZGUgZm9udCgyNCwgMzUpO1xyXG5cdFx0XHRAaW5jbHVkZSBtZWRpYShcIj49bWRcIikge1xyXG5cdFx0XHRcdG1heC13aWR0aDogcmVtKDMxMik7XHJcblxyXG5cdFx0XHRcdG1hcmdpbjogcmVtKDQwKSBhdXRvIDAgIWltcG9ydGFudDtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Jjo6YWZ0ZXIge1xyXG5cdFx0XHRcdGNvbnRlbnQ6IFwiXCI7XHJcblxyXG5cdFx0XHRcdGhlaWdodDogMTAwJTtcclxuXHRcdFx0XHRtaW4td2lkdGg6IHJlbSgyNyk7XHJcblxyXG5cdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdFx0XHR0b3A6IDUwJTtcclxuXHRcdFx0XHRyaWdodDogcmVtKDQ3KTtcclxuXHRcdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XHJcblxyXG5cdFx0XHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9zdmcreG1sLDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjcuMDAzXCIgaGVpZ2h0PVwiMTUuNzUzXCIgdmlld0JveD1cIjAgMCAyNy4wMDMgMTUuNzUzXCI+PHBhdGggZD1cIk0yMi44MjksMTAuNDU0YTEuMTI1LDEuMTI1LDAsMCwxLDEuNTkzLDBsNi43NSw2Ljc1YTEuMTI1LDEuMTI1LDAsMCwxLDAsMS41OTNsLTYuNzUsNi43NWExLjEyNiwxLjEyNiwwLDEsMS0xLjU5My0xLjU5M0wyOC43ODQsMThsLTUuOTU2LTUuOTU0YTEuMTI1LDEuMTI1LDAsMCwxLDAtMS41OTNaXCIgdHJhbnNmb3JtPVwidHJhbnNsYXRlKC00LjUgLTEwLjEyMylcIiBmaWxsPVwiJTIzMDA4NTQwXCIgZmlsbC1ydWxlPVwiZXZlbm9kZFwiPjwvcGF0aD48cGF0aCBkPVwiTTQuNSwxOGExLjEyNSwxLjEyNSwwLDAsMSwxLjEyNS0xLjEyNUgyOS4yNWExLjEyNSwxLjEyNSwwLDAsMSwwLDIuMjVINS42MjVBMS4xMjUsMS4xMjUsMCwwLDEsNC41LDE4WlwiIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgtNC41IC0xMC4xMjMpXCIgZmlsbD1cIiUyMzAwODU0MFwiIGZpbGwtcnVsZT1cImV2ZW5vZGRcIj48L3BhdGg+PC9zdmc+Jyk7XHJcblx0XHRcdFx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuXHRcdFx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdCY6aG92ZXIge1xyXG5cdFx0XHRcdHBhZGRpbmctbGVmdDogcmVtKDc1KTtcclxuXHJcblx0XHRcdFx0Y29sb3I6ICRjb2xvci0td2hpdGU7XHJcblxyXG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRjb2xvci0tYnJhbmQtcHJpbWFyeTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdC53cGNmNy1zdWJtaXQge1xyXG5cdFx0XHRtYXJnaW4tdG9wOiByZW0oNDApICFpbXBvcnRhbnQ7XHJcblxyXG5cdFx0XHRAaW5jbHVkZSBtZWRpYShcIj49bWRcIikge1xyXG5cdFx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRcdFx0XHRsZWZ0OiA1MCU7XHJcblx0XHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xyXG5cdFx0XHRcdG1hcmdpbjogcmVtKDM3KSBhdXRvIDAgIWltcG9ydGFudDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LndwY2Y3LXNwaW5uZXIge1xyXG5cdFx0ZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xyXG5cdH1cclxuXHJcblx0LndwY2Y3LW5vdC12YWxpZC10aXAge1xyXG5cdFx0Y29sb3I6ICNkMTAwMDA7XHJcblx0fVxyXG5cclxuXHQud3BjZjctcmVzcG9uc2Utb3V0cHV0IHtcclxuXHRcdG1heC13aWR0aDogY2FsYygxMDAlIC0gcmVtKDcuNSkpO1xyXG5cclxuXHRcdG1hcmdpbjogcmVtKDMyKSBhdXRvICFpbXBvcnRhbnQ7XHJcblxyXG5cdFx0Y29sb3I6ICRjb2xvci0td2hpdGU7XHJcblxyXG5cdFx0QGluY2x1ZGUgbWVkaWEoXCI+PW1kXCIpIHtcclxuXHRcdFx0bWF4LXdpZHRoOiByZW0oNzUwKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC53cGNmNyBmb3JtLmludmFsaWQge1xyXG5cdFx0LndwY2Y3LXJlc3BvbnNlLW91dHB1dCB7XHJcblx0XHRcdGJvcmRlci1jb2xvcjogI2QxMDAwMDtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC5hY2YtaW5uZXJibG9ja3MtY29udGFpbmVyIHtcclxuXHRcdEBpbmNsdWRlIG1lZGlhKFwiPj1sZ1wiKSB7XHJcblx0XHRcdG1heC13aWR0aDogcmVtKDgwMCk7XHJcblxyXG5cdFx0XHRtYXJnaW46IDAgYXV0bztcclxuXHRcdH1cclxuXHJcblx0XHRoMi53cC1ibG9jay1oZWFkaW5nIHtcclxuXHRcdFx0QGluY2x1ZGUgZm9udCgzOCwgNzgpO1xyXG5cdFx0XHRAaW5jbHVkZSBtZWRpYShcIj49bWRcIikge1xyXG5cdFx0XHRcdEBpbmNsdWRlIGZvbnQoNjAsIDc4KTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdCYgPiAqOmxhc3QtY2hpbGQge1xyXG5cdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4iLCIvLyogQlJFQUtQT0lOVFMgKi8vXHJcbiRicmVha3BvaW50czogKHhzOiAzNzVweCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCwgeHhsOiAxNDQwcHgsIG1heDogMTkyMHB4KTtcclxuXHJcbi8vKiBDT05UQUlORVIgd2lkdGggdmFyaWFibGVzICovL1xyXG4kY29udGFpbmVyLW1vYmlsZTogNzIwcHg7XHJcbiRjb250YWluZXItbGc6IDk2MHB4O1xyXG4kY29udGFpbmVyLXhsOiAxMDgwcHg7XHJcbiRjb250YWluZXIteHhsOiB2YXIoLS13cC0tc3R5bGUtLWdsb2JhbC0td2lkZS1zaXplKTsgLy8gdGhlbWUuanNvbiBzZXR0aW5ncy5sYXlvdXRcclxuJGNvbnRhaW5lci1wYWRkaW5nOiAgMTU7IC8vdGhlbWUuanNvbiBzZXR0aW5nLmN1c3RvbS5iYXNlUGFkZGluZ1xyXG5cclxuLy8qIEZPTlRTICovL1xyXG4kZm9udC1iYXNlOiB2YXIoLS13cC0tcHJlc2V0LS1mb250LWZhbWlseS0tYmFzZS1mb250KTsgLy90aGVtZS5qc29uIHNldHRpbmcudHlwb2dyYXBoeS5mb250RmFtaWxpZXNcclxuJGZvbnQtc2Vjb25kYXJ5OiB2YXIoLS13cC0tcHJlc2V0LS1mb250LWZhbWlseS0tc2Vjb25kYXJ5LWZvbnQpOyAvL3RoZW1lLmpzb24gc2V0dGluZy50eXBvZ3JhcGh5LmZvbnRGYW1pbGllc1xyXG5cclxuJGxpbmUtaGVpZ2h0LW1vYmlsZTogMjYuMjhweDtcclxuXHJcbiRmb250LXNpemUtZGVza3RvcDogdmFyKC0td3AtLXByZXNldC0tZm9udC1zaXplLS1tZWRpdW0pOy8vdGhlbWUuanNvbiBzZXR0aW5nLnR5cG9ncmFwaHkuZm9udFNpemVzXHJcbiRsaW5lLWhlaWdodC1kZXNrdG9wOiAxLjU7XHJcblxyXG4kZm9udC1zaXplLWxhcmdlOiB2YXIoLS13cC0tcHJlc2V0LS1mb250LXNpemUtLWxhcmdlKTtcclxuJGZvbnQtc2l6ZS1tZWRpdW06IHZhcigtLXdwLS1wcmVzZXQtLWZvbnQtc2l6ZS0tbWVkaXVtKTtcclxuJGZvbnQtc2l6ZS1zbWFsbDogdmFyKC0td3AtLXByZXNldC0tZm9udC1zaXplLS1zbWFsbCk7XHJcblxyXG4vLyBTZXQgTW9iaWxlIGZvbnQtc2l6ZSAvIGxpbmUtaGVpZ2h0IHN0eWxlcyBpbiB0aGVtZS5qc29uIHN0eWxlcy50eXBvZ3JhcGh5XHJcblxyXG4vLyogU1BBQ0lOR1MgKi8vXHJcblxyXG4vLyBCbG9jayBTcGFjaW5nc1xyXG4kc3BhY2luZy1tb2JpbGU6IDQwOyAvL3RoZW1lLmpzb24gc2V0dGluZy5zcGFjaW5nLnNwYWNpbmdTaXplc1xyXG4kc3BhY2luZzogdmFyKC0td3AtLXByZXNldC0tc3BhY2luZy0tbWVkaXVtKTtcclxuXHJcbiRtYXJnaW4tbW9iaWxlOiAxODsgLy90aGVtZS5qc29uIHNldHRpbmcuc3BhY2luZy5zcGFjaW5nU2l6ZXNcclxuJG1hcmdpbjogdmFyKC0td3AtLXByZXNldC0tc3BhY2luZy0tc21hbGwpO1xyXG5cclxuLy8gTWVkaWEgU3BhY2luZ1xyXG4kbWVkaWEtbWFyZ2luOiB2YXIoLS13cC0tY3VzdG9tLS1tZWRpYS1zcGFjaW5nKTsgLy90aGVtZS5qc29uIHNldHRpbmcuY3VzdG9tLm1lZGlhU3BhY2luZzsgLy9weFxyXG5cclxuLy8qIENPTE9SUyAqLy9cclxuXHJcbi8vIEJhc2UgQ29sb3JzXHJcbiRjb2xvci0tYmxhY2s6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS1ibGFjayk7IC8vdGhlbWUuanNvbiBzZXR0aW5nLmNvbG9yXHJcbiRjb2xvci0td2hpdGU6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS13aGl0ZSk7IC8vdGhlbWUuanNvbiBzZXR0aW5nLmNvbG9yXHJcblxyXG4vLyBCYXNpYyBDb2xvcnNcclxuJGNvbG9yLS1iYXNpYy1oZWFkZXI6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS1iYXNpYy1oZWFkZXIpOyAvL3RoZW1lLmpzb24gc2V0dGluZy5jb2xvclxyXG4kY29sb3ItLWJhc2ljLXBsYWNlaG9sZGVyOiB2YXIoLS13cC0tcHJlc2V0LS1jb2xvci0tYmFzaWMtcGxhY2Vob2xkZXIpOyAvL3RoZW1lLmpzb24gc2V0dGluZy5jb2xvclxyXG4kY29sb3ItLWJhc2ljLWJvZHk6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS1iYXNpYy1ib2R5KTsgLy90aGVtZS5qc29uIHNldHRpbmcuY29sb3JcclxuJGNvbG9yLS1iYXNpYy1zZWNvbmRhcnk6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS1iYXNpYy1zZWNvbmRhcnkpOyAvL3RoZW1lLmpzb24gc2V0dGluZy5jb2xvclxyXG4kY29sb3ItLWJhc2ljLWRhcms6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS1iYXNpYy1kYXJrKTsgLy90aGVtZS5qc29uIHNldHRpbmcuY29sb3JcclxuJGNvbG9yLS1iYXNpYy1saWdodDogdmFyKC0td3AtLXByZXNldC0tY29sb3ItLWJhc2ljLWxpZ2h0KTsgLy90aGVtZS5qc29uIHNldHRpbmcuY29sb3JcclxuXHJcbi8vIEJyYW5kIENvbG9yc1xyXG4kY29sb3ItLWJyYW5kLXByaW1hcnk6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS1icmFuZC1wcmltYXJ5KTsgLy90aGVtZS5qc29uIHNldHRpbmcuY29sb3JcclxuJGNvbG9yLS1icmFuZC1kYXJrOiB2YXIoLS13cC0tcHJlc2V0LS1jb2xvci0tYnJhbmQtZGFyayk7IC8vdGhlbWUuanNvbiBzZXR0aW5nLmNvbG9yXHJcbiRjb2xvci0tYnJhbmQtbGlnaHQ6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS1icmFuZC1saWdodCk7IC8vdGhlbWUuanNvbiBzZXR0aW5nLmNvbG9yXHJcblxyXG4vLyBNYWluIENvbG9yc1xyXG4kY29sb3ItLXNlY29uZGFyeTogdmFyKC0td3AtLXByZXNldC0tY29sb3ItLXNlY29uZGFyeSk7IC8vdGhlbWUuanNvbiBzZXR0aW5nLmNvbG9yXHJcblxyXG4vLyBBZGRpdGlvbmFsIENvbG9yc1xyXG4kY29sb3ItLTE6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS1jb2xvci0xKTsgLy90aGVtZS5qc29uIHNldHRpbmcuY29sb3JcclxuJGNvbG9yLS0yOiB2YXIoLS13cC0tcHJlc2V0LS1jb2xvci0tY29sb3ItMik7IC8vdGhlbWUuanNvbiBzZXR0aW5nLmNvbG9yXHJcbiRjb2xvci0tMzogdmFyKC0td3AtLXByZXNldC0tY29sb3ItLWNvbG9yLTMpOyAvL3RoZW1lLmpzb24gc2V0dGluZy5jb2xvclxyXG4kY29sb3ItLTQ6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS1jb2xvci00KTsgLy90aGVtZS5qc29uIHNldHRpbmcuY29sb3JcclxuJGNvbG9yLS01OiB2YXIoLS13cC0tcHJlc2V0LS1jb2xvci0tY29sb3ItNSk7IC8vdGhlbWUuanNvbiBzZXR0aW5nLmNvbG9yXHJcbiRjb2xvci0tNjogdmFyKC0td3AtLXByZXNldC0tY29sb3ItLWNvbG9yLTYpOyAvL3RoZW1lLmpzb24gc2V0dGluZy5jb2xvclxyXG4kY29sb3ItLTc6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS1jb2xvci03KTsgLy90aGVtZS5qc29uIHNldHRpbmcuY29sb3JcclxuJGNvbG9yLS04OiB2YXIoLS13cC0tcHJlc2V0LS1jb2xvci0tY29sb3ItOCk7IC8vdGhlbWUuanNvbiBzZXR0aW5nLmNvbG9yXHJcbiRjb2xvci0tOTogdmFyKC0td3AtLXByZXNldC0tY29sb3ItLWNvbG9yLTkpOyAvL3RoZW1lLmpzb24gc2V0dGluZy5jb2xvclxyXG4kY29sb3ItLTEwOiB2YXIoLS13cC0tcHJlc2V0LS1jb2xvci0tY29sb3ItMTApOyAvL3RoZW1lLmpzb24gc2V0dGluZy5jb2xvclxyXG4kY29sb3ItLTExOiB2YXIoLS13cC0tcHJlc2V0LS1jb2xvci0tY29sb3ItMTEpOyAvL3RoZW1lLmpzb24gc2V0dGluZy5jb2xvclxyXG4kY29sb3ItLTEyOiB2YXIoLS13cC0tcHJlc2V0LS1jb2xvci0tY29sb3ItMTIpOyAvL3RoZW1lLmpzb24gc2V0dGluZy5jb2xvclxyXG4kY29sb3ItLTEzOiB2YXIoLS13cC0tcHJlc2V0LS1jb2xvci0tY29sb3ItMTMpOyAvL3RoZW1lLmpzb24gc2V0dGluZy5jb2xvclxyXG4kY29sb3ItLTE0OiB2YXIoLS13cC0tcHJlc2V0LS1jb2xvci0tY29sb3ItMTQpOyAvL3RoZW1lLmpzb24gc2V0dGluZy5jb2xvclxyXG4kY29sb3ItLTE1OiB2YXIoLS13cC0tcHJlc2V0LS1jb2xvci0tY29sb3ItMTUpOyAvL3RoZW1lLmpzb24gc2V0dGluZy5jb2xvclxyXG4kY29sb3ItLTE2OiB2YXIoLS13cC0tcHJlc2V0LS1jb2xvci0tY29sb3ItMTYpOyAvL3RoZW1lLmpzb24gc2V0dGluZy5jb2xvclxyXG4kY29sb3ItLTE3OiB2YXIoLS13cC0tcHJlc2V0LS1jb2xvci0tY29sb3ItMTcpOyAvL3RoZW1lLmpzb24gc2V0dGluZy5jb2xvclxyXG4kY29sb3ItLTE4OiB2YXIoLS13cC0tcHJlc2V0LS1jb2xvci0tY29sb3ItMTgpOyAvL3RoZW1lLmpzb24gc2V0dGluZy5jb2xvclxyXG5cclxuLy8gRWxlbWVudHMgQ29sb3JzXHJcbiRjb2xvci0tYmc6IHZhcigtLXdwLS1wcmVzZXQtLWNvbG9yLS1iZyk7IC8vdGhlbWUuanNvbiBzZXR0aW5nLmNvbG9yXHJcbiRjb2xvci0tYm9yZGVyOiAkY29sb3ItLWJhc2ljLWJvZHk7XHJcblxyXG4vLyBUaGVtZSBUZXh0IENvbG9yc1xyXG4kY29sb3ItLXRleHQ6ICRjb2xvci0tYmFzaWMtYm9keTtcclxuJGNvbG9yLS10ZXh0LWxpZ2h0OiAkY29sb3ItLXdoaXRlO1xyXG4kY29sb3ItLWxpbms6ICRjb2xvci0tYnJhbmQtcHJpbWFyeTtcclxuJGNvbG9yLS1saW5rLWhvdmVyOiAkY29sb3ItLWJhc2ljLWJvZHk7XHJcblxyXG4vLyogT1RIRVIgKi8vXHJcblxyXG4vLyBUcmFuc2l0aW9uc1xyXG4kdHJhbnMtc3BlZWQ6IHZhcigtLXRyYW5zaXRpb24tc3BlZWQpO1xyXG4kdHJhbnMtc3BlZWQtbGFyZ2U6IHZhcigtLXRyYW5zaXRpb24tc3BlZWQtbGFyZ2UpO1xyXG4kdHJhbnMtZnVuYzogdmFyKC0tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24pO1xyXG5cclxuLy8gT3V0bGluZVxyXG4kb3V0bGluZTogMnB4IHNvbGlkIGJsdWU7IiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8gICAgIF8gICAgICAgICAgICBfICAgICAgICAgICBfICAgICAgICAgICAgICAgICAgICAgICAgICAgXyBfXHJcbi8vICAgIChfKSAgICAgICAgICB8IHwgICAgICAgICB8IHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAoXylcclxuLy8gICAgIF8gXyBfXyAgIF9fX3wgfF8gICBfICBfX3wgfCBfX18gICBfIF9fIF9fXyAgIF9fXyAgX198IHxfICBfXyBfXHJcbi8vICAgIHwgfCAnXyBcXCAvIF9ffCB8IHwgfCB8LyBfYCB8LyBfIFxcIHwgJ18gYCBfIFxcIC8gXyBcXC8gX2AgfCB8LyBfYCB8XHJcbi8vICAgIHwgfCB8IHwgfCAoX198IHwgfF98IHwgKF98IHwgIF9fLyB8IHwgfCB8IHwgfCAgX18vIChffCB8IHwgKF98IHxcclxuLy8gICAgfF98X3wgfF98XFxfX198X3xcXF9fLF98XFxfXyxffFxcX19ffCB8X3wgfF98IHxffFxcX19ffFxcX18sX3xffFxcX18sX3xcclxuLy9cclxuLy8gICAgICBTaW1wbGUsIGVsZWdhbnQgYW5kIG1haW50YWluYWJsZSBtZWRpYSBxdWVyaWVzIGluIFNhc3NcclxuLy8gICAgICAgICAgICAgICAgICAgICAgICB2MS40LjlcclxuLy9cclxuLy8gICAgICAgICAgICAgICAgaHR0cDovL2luY2x1ZGUtbWVkaWEuY29tXHJcbi8vXHJcbi8vICAgICAgICAgQXV0aG9yczogRWR1YXJkbyBCb3VjYXMgKEBlZHVhcmRvYm91Y2FzKVxyXG4vLyAgICAgICAgICAgICAgICAgIEh1Z28gR2lyYXVkZWwgKEBodWdvZ2lyYXVkZWwpXHJcbi8vXHJcbi8vICAgICAgVGhpcyBwcm9qZWN0IGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgTUlUIGxpY2Vuc2VcclxuXHJcblxyXG4vLy8vXHJcbi8vLyBpbmNsdWRlLW1lZGlhIGxpYnJhcnkgcHVibGljIGNvbmZpZ3VyYXRpb25cclxuLy8vIEBhdXRob3IgRWR1YXJkbyBCb3VjYXNcclxuLy8vIEBhY2Nlc3MgcHVibGljXHJcbi8vLy9cclxuXHJcblxyXG4vLy9cclxuLy8vIENyZWF0ZXMgYSBsaXN0IG9mIGdsb2JhbCBicmVha3BvaW50c1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc2luZ2xlIGJyZWFrcG9pbnQgd2l0aCB0aGUgbGFiZWwgYHBob25lYFxyXG4vLy8gICRicmVha3BvaW50czogKCdwaG9uZSc6IDMyMHB4KTtcclxuLy8vXHJcbiRicmVha3BvaW50czogKFxyXG5cdCdwaG9uZSc6IDMyMHB4LFxyXG5cdCd0YWJsZXQnOiA3NjhweCxcclxuXHQnZGVza3RvcCc6IDEwMjRweFxyXG4pICFkZWZhdWx0O1xyXG5cclxuXHJcbi8vL1xyXG4vLy8gQ3JlYXRlcyBhIGxpc3Qgb2Ygc3RhdGljIGV4cHJlc3Npb25zIG9yIG1lZGlhIHR5cGVzXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzaW5nbGUgbWVkaWEgdHlwZSAoc2NyZWVuKVxyXG4vLy8gICRtZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nOiAnc2NyZWVuJyk7XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzdGF0aWMgZXhwcmVzc2lvbiB3aXRoIGxvZ2ljYWwgZGlzanVuY3Rpb24gKE9SIG9wZXJhdG9yKVxyXG4vLy8gICRtZWRpYS1leHByZXNzaW9uczogKFxyXG4vLy8gICAgJ3JldGluYTJ4JzogJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAobWluLXJlc29sdXRpb246IDE5MmRwaSknXHJcbi8vLyAgKTtcclxuLy8vXHJcbiRtZWRpYS1leHByZXNzaW9uczogKFxyXG5cdCdzY3JlZW4nOiAnc2NyZWVuJyxcclxuXHQncHJpbnQnOiAncHJpbnQnLFxyXG5cdCdoYW5kaGVsZCc6ICdoYW5kaGVsZCcsXHJcblx0J2xhbmRzY2FwZSc6ICcob3JpZW50YXRpb246IGxhbmRzY2FwZSknLFxyXG5cdCdwb3J0cmFpdCc6ICcob3JpZW50YXRpb246IHBvcnRyYWl0KScsXHJcblx0J3JldGluYTJ4JzogJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAobWluLXJlc29sdXRpb246IDE5MmRwaSksIChtaW4tcmVzb2x1dGlvbjogMmRwcHgpJyxcclxuXHQncmV0aW5hM3gnOiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMyksIChtaW4tcmVzb2x1dGlvbjogMzUwZHBpKSwgKG1pbi1yZXNvbHV0aW9uOiAzZHBweCknXHJcbikgIWRlZmF1bHQ7XHJcblxyXG5cclxuLy8vXHJcbi8vLyBEZWZpbmVzIGEgbnVtYmVyIHRvIGJlIGFkZGVkIG9yIHN1YnRyYWN0ZWQgZnJvbSBlYWNoIHVuaXQgd2hlbiBkZWNsYXJpbmcgYnJlYWtwb2ludHMgd2l0aCBleGNsdXNpdmUgaW50ZXJ2YWxzXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEludGVydmFsIGZvciBwaXhlbHMgaXMgZGVmaW5lZCBhcyBgMWAgYnkgZGVmYXVsdFxyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+MTI4cHgnKSB7fVxyXG4vLy9cclxuLy8vICAvKiBHZW5lcmF0ZXM6ICovXHJcbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDEyOXB4KSB7fVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBJbnRlcnZhbCBmb3IgZW1zIGlzIGRlZmluZWQgYXMgYDAuMDFgIGJ5IGRlZmF1bHRcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjIwZW0nKSB7fVxyXG4vLy9cclxuLy8vICAvKiBHZW5lcmF0ZXM6ICovXHJcbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDIwLjAxZW0pIHt9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEludGVydmFsIGZvciByZW1zIGlzIGRlZmluZWQgYXMgYDAuMWAgYnkgZGVmYXVsdCwgdG8gYmUgdXNlZCB3aXRoIGBmb250LXNpemU6IDYyLjUlO2BcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjIuMHJlbScpIHt9XHJcbi8vL1xyXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cclxuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogMi4xcmVtKSB7fVxyXG4vLy9cclxuJHVuaXQtaW50ZXJ2YWxzOiAoXHJcblx0J3B4JzogMSxcclxuXHQnZW0nOiAwLjAxLFxyXG5cdCdyZW0nOiAwLjEsXHJcblx0Jyc6IDBcclxuKSAhZGVmYXVsdDtcclxuXHJcbi8vL1xyXG4vLy8gRGVmaW5lcyB3aGV0aGVyIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXMgaXMgYXZhaWxhYmxlLCB1c2VmdWwgZm9yIGNyZWF0aW5nIHNlcGFyYXRlIHN0eWxlc2hlZXRzXHJcbi8vLyBmb3IgYnJvd3NlcnMgdGhhdCBkb24ndCBzdXBwb3J0IG1lZGlhIHF1ZXJpZXMuXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIERpc2FibGVzIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXNcclxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xyXG4vLy8gICAgLmZvbyB7XHJcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XHJcbi8vLyAgICB9XHJcbi8vLyAgfVxyXG4vLy9cclxuLy8vICAvKiBHZW5lcmF0ZXM6ICovXHJcbi8vLyAgLmZvbyB7XHJcbi8vLyAgICBjb2xvcjogdG9tYXRvO1xyXG4vLy8gIH1cclxuLy8vXHJcbiRpbS1tZWRpYS1zdXBwb3J0OiB0cnVlICFkZWZhdWx0O1xyXG5cclxuLy8vXHJcbi8vLyBTZWxlY3RzIHdoaWNoIGJyZWFrcG9pbnQgdG8gZW11bGF0ZSB3aGVuIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXMgaXMgZGlzYWJsZWQuIE1lZGlhIHF1ZXJpZXMgdGhhdCBzdGFydCBhdCBvclxyXG4vLy8gaW50ZXJjZXB0IHRoZSBicmVha3BvaW50IHdpbGwgYmUgZGlzcGxheWVkLCBhbnkgb3RoZXJzIHdpbGwgYmUgaWdub3JlZC5cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIHNob3cgYmVjYXVzZSBpdCBpbnRlcmNlcHRzIHRoZSBzdGF0aWMgYnJlYWtwb2ludFxyXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcclxuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcclxuLy8vICAgIC5mb28ge1xyXG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xyXG4vLy8gICAgfVxyXG4vLy8gIH1cclxuLy8vXHJcbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xyXG4vLy8gIC5mb28ge1xyXG4vLy8gICAgY29sb3I6IHRvbWF0bztcclxuLy8vICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBOT1Qgc2hvdyBiZWNhdXNlIGl0IGRvZXMgbm90IGludGVyY2VwdCB0aGUgZGVza3RvcCBicmVha3BvaW50XHJcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xyXG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAndGFibGV0JztcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj1kZXNrdG9wJykge1xyXG4vLy8gICAgLmZvbyB7XHJcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XHJcbi8vLyAgICB9XHJcbi8vLyAgfVxyXG4vLy9cclxuLy8vICAvKiBObyBvdXRwdXQgKi9cclxuLy8vXHJcbiRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCcgIWRlZmF1bHQ7XHJcblxyXG4vLy9cclxuLy8vIFNlbGVjdHMgd2hpY2ggbWVkaWEgZXhwcmVzc2lvbnMgYXJlIGFsbG93ZWQgaW4gYW4gZXhwcmVzc2lvbiBmb3IgaXQgdG8gYmUgdXNlZCB3aGVuIG1lZGlhIHF1ZXJpZXNcclxuLy8vIGFyZSBub3Qgc3VwcG9ydGVkLlxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgc2hvdyBiZWNhdXNlIGl0IGludGVyY2VwdHMgdGhlIHN0YXRpYyBicmVha3BvaW50IGFuZCBjb250YWlucyBvbmx5IGFjY2VwdGVkIG1lZGlhIGV4cHJlc3Npb25zXHJcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xyXG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCc7XHJcbi8vLyAgJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicpO1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcsICdzY3JlZW4nKSB7XHJcbi8vLyAgICAuZm9vIHtcclxuLy8vICAgICAgY29sb3I6IHRvbWF0bztcclxuLy8vICAgIH1cclxuLy8vICB9XHJcbi8vL1xyXG4vLy8gICAvKiBHZW5lcmF0ZXM6ICovXHJcbi8vLyAgIC5mb28ge1xyXG4vLy8gICAgIGNvbG9yOiB0b21hdG87XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIE5PVCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnQgYnV0IGNvbnRhaW5zIGEgbWVkaWEgZXhwcmVzc2lvbiB0aGF0IGlzIG5vdCBhY2NlcHRlZFxyXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcclxuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xyXG4vLy8gICRpbS1uby1tZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nKTtcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnLCAncmV0aW5hMngnKSB7XHJcbi8vLyAgICAuZm9vIHtcclxuLy8vICAgICAgY29sb3I6IHRvbWF0bztcclxuLy8vICAgIH1cclxuLy8vICB9XHJcbi8vL1xyXG4vLy8gIC8qIE5vIG91dHB1dCAqL1xyXG4vLy9cclxuJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicsICdwb3J0cmFpdCcsICdsYW5kc2NhcGUnKSAhZGVmYXVsdDtcclxuXHJcbi8vLy9cclxuLy8vIENyb3NzLWVuZ2luZSBsb2dnaW5nIGVuZ2luZVxyXG4vLy8gQGF1dGhvciBIdWdvIEdpcmF1ZGVsXHJcbi8vLyBAYWNjZXNzIHByaXZhdGVcclxuLy8vL1xyXG5cclxuXHJcbi8vL1xyXG4vLy8gTG9nIGEgbWVzc2FnZSBlaXRoZXIgd2l0aCBgQGVycm9yYCBpZiBzdXBwb3J0ZWRcclxuLy8vIGVsc2Ugd2l0aCBgQHdhcm5gLCB1c2luZyBgZmVhdHVyZS1leGlzdHMoJ2F0LWVycm9yJylgXHJcbi8vLyB0byBkZXRlY3Qgc3VwcG9ydC5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJG1lc3NhZ2UgLSBNZXNzYWdlIHRvIGxvZ1xyXG4vLy9cclxuQGZ1bmN0aW9uIGltLWxvZygkbWVzc2FnZSkge1xyXG5cdEBpZiBmZWF0dXJlLWV4aXN0cygnYXQtZXJyb3InKSB7XHJcblx0XHRAZXJyb3IgJG1lc3NhZ2U7XHJcblx0fSBAZWxzZSB7XHJcblx0XHRAd2FybiAkbWVzc2FnZTtcclxuXHRcdCRfOiBub29wKCk7XHJcblx0fVxyXG5cclxuXHRAcmV0dXJuICRtZXNzYWdlO1xyXG59XHJcblxyXG5cclxuLy8vXHJcbi8vLyBXcmFwcGVyIG1peGluIGZvciB0aGUgbG9nIGZ1bmN0aW9uIHNvIGl0IGNhbiBiZSB1c2VkIHdpdGggYSBtb3JlIGZyaWVuZGx5XHJcbi8vLyBBUEkgdGhhbiBgQGlmIGltLWxvZygnLi4nKSB7fWAgb3IgYCRfOiBpbS1sb2coJy4uJylgLiBCYXNpY2FsbHksIHVzZSB0aGUgZnVuY3Rpb25cclxuLy8vIHdpdGhpbiBmdW5jdGlvbnMgYmVjYXVzZSBpdCBpcyBub3QgcG9zc2libGUgdG8gaW5jbHVkZSBhIG1peGluIGluIGEgZnVuY3Rpb25cclxuLy8vIGFuZCB1c2UgdGhlIG1peGluIGV2ZXJ5d2hlcmUgZWxzZSBiZWNhdXNlIGl0J3MgbXVjaCBtb3JlIGVsZWdhbnQuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRtZXNzYWdlIC0gTWVzc2FnZSB0byBsb2dcclxuLy8vXHJcbkBtaXhpbiBsb2coJG1lc3NhZ2UpIHtcclxuXHRAaWYgaW0tbG9nKCRtZXNzYWdlKSB7fVxyXG59XHJcblxyXG5cclxuLy8vXHJcbi8vLyBGdW5jdGlvbiB3aXRoIG5vIGBAcmV0dXJuYCBjYWxsZWQgbmV4dCB0byBgQHdhcm5gIGluIFNhc3MgMy4zXHJcbi8vLyB0byB0cmlnZ2VyIGEgY29tcGlsaW5nIGVycm9yIGFuZCBzdG9wIHRoZSBwcm9jZXNzLlxyXG4vLy9cclxuQGZ1bmN0aW9uIG5vb3AoKSB7fVxyXG5cclxuLy8vXHJcbi8vLyBEZXRlcm1pbmVzIHdoZXRoZXIgYSBsaXN0IG9mIGNvbmRpdGlvbnMgaXMgaW50ZXJjZXB0ZWQgYnkgdGhlIHN0YXRpYyBicmVha3BvaW50LlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7QXJnbGlzdH0gICAkY29uZGl0aW9ucyAgLSBNZWRpYSBxdWVyeSBjb25kaXRpb25zXHJcbi8vL1xyXG4vLy8gQHJldHVybiB7Qm9vbGVhbn0gLSBSZXR1cm5zIHRydWUgaWYgdGhlIGNvbmRpdGlvbnMgYXJlIGludGVyY2VwdGVkIGJ5IHRoZSBzdGF0aWMgYnJlYWtwb2ludFxyXG4vLy9cclxuQGZ1bmN0aW9uIGltLWludGVyY2VwdHMtc3RhdGljLWJyZWFrcG9pbnQoJGNvbmRpdGlvbnMuLi4pIHtcclxuXHQkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICRpbS1uby1tZWRpYS1icmVha3BvaW50KTtcclxuXHJcblx0QGlmIG5vdCAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSB7XHJcblx0XHRAaWYgaW0tbG9nKCdgI3skaW0tbm8tbWVkaWEtYnJlYWtwb2ludH1gIGlzIG5vdCBhIHZhbGlkIGJyZWFrcG9pbnQuJykge31cclxuXHR9XHJcblxyXG5cdEBlYWNoICRjb25kaXRpb24gaW4gJGNvbmRpdGlvbnMge1xyXG5cdFx0QGlmIG5vdCBtYXAtaGFzLWtleSgkbWVkaWEtZXhwcmVzc2lvbnMsICRjb25kaXRpb24pIHtcclxuXHRcdFx0JG9wZXJhdG9yOiBnZXQtZXhwcmVzc2lvbi1vcGVyYXRvcigkY29uZGl0aW9uKTtcclxuXHRcdFx0JHByZWZpeDogZ2V0LWV4cHJlc3Npb24tcHJlZml4KCRvcGVyYXRvcik7XHJcblx0XHRcdCR2YWx1ZTogZ2V0LWV4cHJlc3Npb24tdmFsdWUoJGNvbmRpdGlvbiwgJG9wZXJhdG9yKTtcclxuXHJcblx0XHRcdEBpZiAoJHByZWZpeCA9PSAnbWF4JyBhbmQgJHZhbHVlIDw9ICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlKSBvclxyXG5cdFx0XHRcdFx0KCRwcmVmaXggPT0gJ21pbicgYW5kICR2YWx1ZSA+ICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlKSB7XHJcblx0XHRcdFx0QHJldHVybiBmYWxzZTtcclxuXHRcdFx0fVxyXG5cdFx0fSBAZWxzZSBpZiBub3QgaW5kZXgoJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zLCAkY29uZGl0aW9uKSB7XHJcblx0XHRcdEByZXR1cm4gZmFsc2U7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRAcmV0dXJuIHRydWU7XHJcbn1cclxuXHJcbi8vLy9cclxuLy8vIFBhcnNpbmcgZW5naW5lXHJcbi8vLyBAYXV0aG9yIEh1Z28gR2lyYXVkZWxcclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxyXG4vLy8vXHJcblxyXG5cclxuLy8vXHJcbi8vLyBHZXQgb3BlcmF0b3Igb2YgYW4gZXhwcmVzc2lvblxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gZXh0cmFjdCBvcGVyYXRvciBmcm9tXHJcbi8vL1xyXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIEFueSBvZiBgPj1gLCBgPmAsIGA8PWAsIGA8YCwgYOKJpWAsIGDiiaRgXHJcbi8vL1xyXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tb3BlcmF0b3IoJGV4cHJlc3Npb24pIHtcclxuXHRAZWFjaCAkb3BlcmF0b3IgaW4gKCc+PScsICc+JywgJzw9JywgJzwnLCAn4omlJywgJ+KJpCcpIHtcclxuXHRcdEBpZiBzdHItaW5kZXgoJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xyXG5cdFx0XHRAcmV0dXJuICRvcGVyYXRvcjtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8vIEl0IGlzIG5vdCBwb3NzaWJsZSB0byBpbmNsdWRlIGEgbWl4aW4gaW5zaWRlIGEgZnVuY3Rpb24sIHNvIHdlIGhhdmUgdG9cclxuXHQvLyByZWx5IG9uIHRoZSBgaW0tbG9nKC4uKWAgZnVuY3Rpb24gcmF0aGVyIHRoYW4gdGhlIGBsb2coLi4pYCBtaXhpbi4gQmVjYXVzZVxyXG5cdC8vIGZ1bmN0aW9ucyBjYW5ub3QgYmUgY2FsbGVkIGFueXdoZXJlIGluIFNhc3MsIHdlIG5lZWQgdG8gaGFjayB0aGUgY2FsbCBpblxyXG5cdC8vIGEgZHVtbXkgdmFyaWFibGUsIHN1Y2ggYXMgYCRfYC4gSWYgYW55Ym9keSBldmVyIHJhaXNlIGEgc2NvcGluZyBpc3N1ZSB3aXRoXHJcblx0Ly8gU2FzcyAzLjMsIGNoYW5nZSB0aGlzIGxpbmUgaW4gYEBpZiBpbS1sb2coLi4pIHt9YCBpbnN0ZWFkLlxyXG5cdCRfOiBpbS1sb2coJ05vIG9wZXJhdG9yIGZvdW5kIGluIGAjeyRleHByZXNzaW9ufWAuJyk7XHJcbn1cclxuXHJcblxyXG4vLy9cclxuLy8vIEdldCBkaW1lbnNpb24gb2YgYW4gZXhwcmVzc2lvbiwgYmFzZWQgb24gYSBmb3VuZCBvcGVyYXRvclxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gZXh0cmFjdCBkaW1lbnNpb24gZnJvbVxyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yIGZyb20gYCRleHByZXNzaW9uYFxyXG4vLy9cclxuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBgd2lkdGhgIG9yIGBoZWlnaHRgIChvciBwb3RlbnRpYWxseSBhbnl0aGluZyBlbHNlKVxyXG4vLy9cclxuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLWRpbWVuc2lvbigkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKSB7XHJcblx0JG9wZXJhdG9yLWluZGV4OiBzdHItaW5kZXgoJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XHJcblx0JHBhcnNlZC1kaW1lbnNpb246IHN0ci1zbGljZSgkZXhwcmVzc2lvbiwgMCwgJG9wZXJhdG9yLWluZGV4IC0gMSk7XHJcblx0JGRpbWVuc2lvbjogJ3dpZHRoJztcclxuXHJcblx0QGlmIHN0ci1sZW5ndGgoJHBhcnNlZC1kaW1lbnNpb24pID4gMCB7XHJcblx0XHQkZGltZW5zaW9uOiAkcGFyc2VkLWRpbWVuc2lvbjtcclxuXHR9XHJcblxyXG5cdEByZXR1cm4gJGRpbWVuc2lvbjtcclxufVxyXG5cclxuXHJcbi8vL1xyXG4vLy8gR2V0IGRpbWVuc2lvbiBwcmVmaXggYmFzZWQgb24gYW4gb3BlcmF0b3JcclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJG9wZXJhdG9yIC0gT3BlcmF0b3JcclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gYG1pbmAgb3IgYG1heGBcclxuLy8vXHJcbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi1wcmVmaXgoJG9wZXJhdG9yKSB7XHJcblx0QHJldHVybiBpZihpbmRleCgoJzwnLCAnPD0nLCAn4omkJyksICRvcGVyYXRvciksICdtYXgnLCAnbWluJyk7XHJcbn1cclxuXHJcblxyXG4vLy9cclxuLy8vIEdldCB2YWx1ZSBvZiBhbiBleHByZXNzaW9uLCBiYXNlZCBvbiBhIGZvdW5kIG9wZXJhdG9yXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBleHRyYWN0IHZhbHVlIGZyb21cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3BlcmF0b3IgLSBPcGVyYXRvciBmcm9tIGAkZXhwcmVzc2lvbmBcclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IC0gQSBudW1lcmljIHZhbHVlXHJcbi8vL1xyXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tdmFsdWUoJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xyXG5cdCRvcGVyYXRvci1pbmRleDogc3RyLWluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xyXG5cdCR2YWx1ZTogc3RyLXNsaWNlKCRleHByZXNzaW9uLCAkb3BlcmF0b3ItaW5kZXggKyBzdHItbGVuZ3RoKCRvcGVyYXRvcikpO1xyXG5cclxuXHRAaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkdmFsdWUpIHtcclxuXHRcdCR2YWx1ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICR2YWx1ZSk7XHJcblx0fSBAZWxzZSB7XHJcblx0XHQkdmFsdWU6IHRvLW51bWJlcigkdmFsdWUpO1xyXG5cdH1cclxuXHJcblx0JGludGVydmFsOiBtYXAtZ2V0KCR1bml0LWludGVydmFscywgdW5pdCgkdmFsdWUpKTtcclxuXHJcblx0QGlmIG5vdCAkaW50ZXJ2YWwge1xyXG5cdFx0Ly8gSXQgaXMgbm90IHBvc3NpYmxlIHRvIGluY2x1ZGUgYSBtaXhpbiBpbnNpZGUgYSBmdW5jdGlvbiwgc28gd2UgaGF2ZSB0b1xyXG5cdFx0Ly8gcmVseSBvbiB0aGUgYGltLWxvZyguLilgIGZ1bmN0aW9uIHJhdGhlciB0aGFuIHRoZSBgbG9nKC4uKWAgbWl4aW4uIEJlY2F1c2VcclxuXHRcdC8vIGZ1bmN0aW9ucyBjYW5ub3QgYmUgY2FsbGVkIGFueXdoZXJlIGluIFNhc3MsIHdlIG5lZWQgdG8gaGFjayB0aGUgY2FsbCBpblxyXG5cdFx0Ly8gYSBkdW1teSB2YXJpYWJsZSwgc3VjaCBhcyBgJF9gLiBJZiBhbnlib2R5IGV2ZXIgcmFpc2UgYSBzY29waW5nIGlzc3VlIHdpdGhcclxuXHRcdC8vIFNhc3MgMy4zLCBjaGFuZ2UgdGhpcyBsaW5lIGluIGBAaWYgaW0tbG9nKC4uKSB7fWAgaW5zdGVhZC5cclxuXHRcdCRfOiBpbS1sb2coJ1Vua25vd24gdW5pdCBgI3t1bml0KCR2YWx1ZSl9YC4nKTtcclxuXHR9XHJcblxyXG5cdEBpZiAkb3BlcmF0b3IgPT0gJz4nIHtcclxuXHRcdCR2YWx1ZTogJHZhbHVlICsgJGludGVydmFsO1xyXG5cdH0gQGVsc2UgaWYgJG9wZXJhdG9yID09ICc8JyB7XHJcblx0XHQkdmFsdWU6ICR2YWx1ZSAtICRpbnRlcnZhbDtcclxuXHR9XHJcblxyXG5cdEByZXR1cm4gJHZhbHVlO1xyXG59XHJcblxyXG5cclxuLy8vXHJcbi8vLyBQYXJzZSBhbiBleHByZXNzaW9uIHRvIHJldHVybiBhIHZhbGlkIG1lZGlhLXF1ZXJ5IGV4cHJlc3Npb25cclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIHBhcnNlXHJcbi8vL1xyXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIFZhbGlkIG1lZGlhIHF1ZXJ5XHJcbi8vL1xyXG5AZnVuY3Rpb24gcGFyc2UtZXhwcmVzc2lvbigkZXhwcmVzc2lvbikge1xyXG5cdC8vIElmIGl0IGlzIHBhcnQgb2YgJG1lZGlhLWV4cHJlc3Npb25zLCBpdCBoYXMgbm8gb3BlcmF0b3JcclxuXHQvLyB0aGVuIHRoZXJlIGlzIG5vIG5lZWQgdG8gZ28gYW55IGZ1cnRoZXIsIGp1c3QgcmV0dXJuIHRoZSB2YWx1ZVxyXG5cdEBpZiBtYXAtaGFzLWtleSgkbWVkaWEtZXhwcmVzc2lvbnMsICRleHByZXNzaW9uKSB7XHJcblx0XHRAcmV0dXJuIG1hcC1nZXQoJG1lZGlhLWV4cHJlc3Npb25zLCAkZXhwcmVzc2lvbik7XHJcblx0fVxyXG5cclxuXHQkb3BlcmF0b3I6IGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRleHByZXNzaW9uKTtcclxuXHQkZGltZW5zaW9uOiBnZXQtZXhwcmVzc2lvbi1kaW1lbnNpb24oJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XHJcblx0JHByZWZpeDogZ2V0LWV4cHJlc3Npb24tcHJlZml4KCRvcGVyYXRvcik7XHJcblx0JHZhbHVlOiBnZXQtZXhwcmVzc2lvbi12YWx1ZSgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcclxuXHJcblx0QHJldHVybiAnKCN7JHByZWZpeH0tI3skZGltZW5zaW9ufTogI3skdmFsdWV9KSc7XHJcbn1cclxuXHJcbi8vL1xyXG4vLy8gU2xpY2UgYCRsaXN0YCBiZXR3ZWVuIGAkc3RhcnRgIGFuZCBgJGVuZGAgaW5kZXhlc1xyXG4vLy9cclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TGlzdH0gJGxpc3QgLSBMaXN0IHRvIHNsaWNlXHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJHN0YXJ0IFsxXSAtIFN0YXJ0IGluZGV4XHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJGVuZCBbbGVuZ3RoKCRsaXN0KV0gLSBFbmQgaW5kZXhcclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtMaXN0fSBTbGljZWQgbGlzdFxyXG4vLy9cclxuQGZ1bmN0aW9uIHNsaWNlKCRsaXN0LCAkc3RhcnQ6IDEsICRlbmQ6IGxlbmd0aCgkbGlzdCkpIHtcclxuXHRAaWYgbGVuZ3RoKCRsaXN0KSA8IDEgb3IgJHN0YXJ0ID4gJGVuZCB7XHJcblx0XHRAcmV0dXJuICgpO1xyXG5cdH1cclxuXHJcblx0JHJlc3VsdDogKCk7XHJcblxyXG5cdEBmb3IgJGkgZnJvbSAkc3RhcnQgdGhyb3VnaCAkZW5kIHtcclxuXHRcdCRyZXN1bHQ6IGFwcGVuZCgkcmVzdWx0LCBudGgoJGxpc3QsICRpKSk7XHJcblx0fVxyXG5cclxuXHRAcmV0dXJuICRyZXN1bHQ7XHJcbn1cclxuXHJcbi8vLy9cclxuLy8vIFN0cmluZyB0byBudW1iZXIgY29udmVydGVyXHJcbi8vLyBAYXV0aG9yIEh1Z28gR2lyYXVkZWxcclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxyXG4vLy8vXHJcblxyXG5cclxuLy8vXHJcbi8vLyBDYXN0cyBhIHN0cmluZyBpbnRvIGEgbnVtYmVyXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmcgfCBOdW1iZXJ9ICR2YWx1ZSAtIFZhbHVlIHRvIGJlIHBhcnNlZFxyXG4vLy9cclxuLy8vIEByZXR1cm4ge051bWJlcn1cclxuLy8vXHJcbkBmdW5jdGlvbiB0by1udW1iZXIoJHZhbHVlKSB7XHJcblx0QGlmIHR5cGUtb2YoJHZhbHVlKSA9PSAnbnVtYmVyJyB7XHJcblx0XHRAcmV0dXJuICR2YWx1ZTtcclxuXHR9IEBlbHNlIGlmIHR5cGUtb2YoJHZhbHVlKSAhPSAnc3RyaW5nJyB7XHJcblx0XHQkXzogaW0tbG9nKCdWYWx1ZSBmb3IgYHRvLW51bWJlcmAgc2hvdWxkIGJlIGEgbnVtYmVyIG9yIGEgc3RyaW5nLicpO1xyXG5cdH1cclxuXHJcblx0JGZpcnN0LWNoYXJhY3Rlcjogc3RyLXNsaWNlKCR2YWx1ZSwgMSwgMSk7XHJcblx0JHJlc3VsdDogMDtcclxuXHQkZGlnaXRzOiAwO1xyXG5cdCRtaW51czogKCRmaXJzdC1jaGFyYWN0ZXIgPT0gJy0nKTtcclxuXHQkbnVtYmVyczogKCcwJzogMCwgJzEnOiAxLCAnMic6IDIsICczJzogMywgJzQnOiA0LCAnNSc6IDUsICc2JzogNiwgJzcnOiA3LCAnOCc6IDgsICc5JzogOSk7XHJcblxyXG5cdC8vIFJlbW92ZSArLy0gc2lnbiBpZiBwcmVzZW50IGF0IGZpcnN0IGNoYXJhY3RlclxyXG5cdEBpZiAoJGZpcnN0LWNoYXJhY3RlciA9PSAnKycgb3IgJGZpcnN0LWNoYXJhY3RlciA9PSAnLScpIHtcclxuXHRcdCR2YWx1ZTogc3RyLXNsaWNlKCR2YWx1ZSwgMik7XHJcblx0fVxyXG5cclxuXHRAZm9yICRpIGZyb20gMSB0aHJvdWdoIHN0ci1sZW5ndGgoJHZhbHVlKSB7XHJcblx0XHQkY2hhcmFjdGVyOiBzdHItc2xpY2UoJHZhbHVlLCAkaSwgJGkpO1xyXG5cclxuXHRcdEBpZiBub3QgKGluZGV4KG1hcC1rZXlzKCRudW1iZXJzKSwgJGNoYXJhY3Rlcikgb3IgJGNoYXJhY3RlciA9PSAnLicpIHtcclxuXHRcdFx0QHJldHVybiB0by1sZW5ndGgoaWYoJG1pbnVzLCAtJHJlc3VsdCwgJHJlc3VsdCksIHN0ci1zbGljZSgkdmFsdWUsICRpKSlcclxuXHRcdH1cclxuXHJcblx0XHRAaWYgJGNoYXJhY3RlciA9PSAnLicge1xyXG5cdFx0XHQkZGlnaXRzOiAxO1xyXG5cdFx0fSBAZWxzZSBpZiAkZGlnaXRzID09IDAge1xyXG5cdFx0XHQkcmVzdWx0OiAkcmVzdWx0ICogMTAgKyBtYXAtZ2V0KCRudW1iZXJzLCAkY2hhcmFjdGVyKTtcclxuXHRcdH0gQGVsc2Uge1xyXG5cdFx0XHQkZGlnaXRzOiAkZGlnaXRzICogMTA7XHJcblx0XHRcdCRyZXN1bHQ6ICRyZXN1bHQgKyBtYXAtZ2V0KCRudW1iZXJzLCAkY2hhcmFjdGVyKSAvICRkaWdpdHM7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRAcmV0dXJuIGlmKCRtaW51cywgLSRyZXN1bHQsICRyZXN1bHQpO1xyXG59XHJcblxyXG5cclxuLy8vXHJcbi8vLyBBZGQgYCR1bml0YCB0byBgJHZhbHVlYFxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdmFsdWUgLSBWYWx1ZSB0byBhZGQgdW5pdCB0b1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR1bml0IC0gU3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB1bml0XHJcbi8vL1xyXG4vLy8gQHJldHVybiB7TnVtYmVyfSAtIGAkdmFsdWVgIGV4cHJlc3NlZCBpbiBgJHVuaXRgXHJcbi8vL1xyXG5AZnVuY3Rpb24gdG8tbGVuZ3RoKCR2YWx1ZSwgJHVuaXQpIHtcclxuXHQkdW5pdHM6ICgncHgnOiAxcHgsICdjbSc6IDFjbSwgJ21tJzogMW1tLCAnJSc6IDElLCAnY2gnOiAxY2gsICdwYyc6IDFwYywgJ2luJzogMWluLCAnZW0nOiAxZW0sICdyZW0nOiAxcmVtLCAncHQnOiAxcHQsICdleCc6IDFleCwgJ3Z3JzogMXZ3LCAndmgnOiAxdmgsICd2bWluJzogMXZtaW4sICd2bWF4JzogMXZtYXgpO1xyXG5cclxuXHRAaWYgbm90IGluZGV4KG1hcC1rZXlzKCR1bml0cyksICR1bml0KSB7XHJcblx0XHQkXzogaW0tbG9nKCdJbnZhbGlkIHVuaXQgYCN7JHVuaXR9YC4nKTtcclxuXHR9XHJcblxyXG5cdEByZXR1cm4gJHZhbHVlICogbWFwLWdldCgkdW5pdHMsICR1bml0KTtcclxufVxyXG5cclxuLy8vXHJcbi8vLyBUaGlzIG1peGluIGFpbXMgYXQgcmVkZWZpbmluZyB0aGUgY29uZmlndXJhdGlvbiBqdXN0IGZvciB0aGUgc2NvcGUgb2ZcclxuLy8vIHRoZSBjYWxsLiBJdCBpcyBoZWxwZnVsIHdoZW4gaGF2aW5nIGEgY29tcG9uZW50IG5lZWRpbmcgYW4gZXh0ZW5kZWRcclxuLy8vIGNvbmZpZ3VyYXRpb24gc3VjaCBhcyBjdXN0b20gYnJlYWtwb2ludHMgKHJlZmVycmVkIHRvIGFzIHR3ZWFrcG9pbnRzKVxyXG4vLy8gZm9yIGluc3RhbmNlLlxyXG4vLy9cclxuLy8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TWFwfSAkdHdlYWtwb2ludHMgWygpXSAtIE1hcCBvZiB0d2Vha3BvaW50cyB0byBiZSBtZXJnZWQgd2l0aCBgJGJyZWFrcG9pbnRzYFxyXG4vLy8gQHBhcmFtIHtNYXB9ICR0d2Vhay1tZWRpYS1leHByZXNzaW9ucyBbKCldIC0gTWFwIG9mIHR3ZWFrZWQgbWVkaWEgZXhwcmVzc2lvbnMgdG8gYmUgbWVyZ2VkIHdpdGggYCRtZWRpYS1leHByZXNzaW9uYFxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBFeHRlbmQgdGhlIGdsb2JhbCBicmVha3BvaW50cyB3aXRoIGEgdHdlYWtwb2ludFxyXG4vLy8gIEBpbmNsdWRlIG1lZGlhLWNvbnRleHQoKCdjdXN0b20nOiA2NzhweCkpIHtcclxuLy8vICAgIC5mb28ge1xyXG4vLy8gICAgICBAaW5jbHVkZSBtZWRpYSgnPnBob25lJywgJzw9Y3VzdG9tJykge1xyXG4vLy8gICAgICAgLy8gLi4uXHJcbi8vLyAgICAgIH1cclxuLy8vICAgIH1cclxuLy8vICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEV4dGVuZCB0aGUgZ2xvYmFsIG1lZGlhIGV4cHJlc3Npb25zIHdpdGggYSBjdXN0b20gb25lXHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEtY29udGV4dCgkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnM6ICgnYWxsJzogJ2FsbCcpKSB7XHJcbi8vLyAgICAuZm9vIHtcclxuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoJ2FsbCcsICc+cGhvbmUnKSB7XHJcbi8vLyAgICAgICAvLyAuLi5cclxuLy8vICAgICAgfVxyXG4vLy8gICAgfVxyXG4vLy8gIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gRXh0ZW5kIGJvdGggY29uZmlndXJhdGlvbiBtYXBzXHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEtY29udGV4dCgoJ2N1c3RvbSc6IDY3OHB4KSwgKCdhbGwnOiAnYWxsJykpIHtcclxuLy8vICAgIC5mb28ge1xyXG4vLy8gICAgICBAaW5jbHVkZSBtZWRpYSgnYWxsJywgJz5waG9uZScsICc8PWN1c3RvbScpIHtcclxuLy8vICAgICAgIC8vIC4uLlxyXG4vLy8gICAgICB9XHJcbi8vLyAgICB9XHJcbi8vLyAgfVxyXG4vLy9cclxuQG1peGluIG1lZGlhLWNvbnRleHQoJHR3ZWFrcG9pbnRzOiAoKSwgJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zOiAoKSkge1xyXG5cdC8vIFNhdmUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cclxuXHQkZ2xvYmFsLWJyZWFrcG9pbnRzOiAkYnJlYWtwb2ludHM7XHJcblx0JGdsb2JhbC1tZWRpYS1leHByZXNzaW9uczogJG1lZGlhLWV4cHJlc3Npb25zO1xyXG5cclxuXHQvLyBVcGRhdGUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cclxuXHQkYnJlYWtwb2ludHM6IG1hcC1tZXJnZSgkYnJlYWtwb2ludHMsICR0d2Vha3BvaW50cykgIWdsb2JhbDtcclxuXHQkbWVkaWEtZXhwcmVzc2lvbnM6IG1hcC1tZXJnZSgkbWVkaWEtZXhwcmVzc2lvbnMsICR0d2Vhay1tZWRpYS1leHByZXNzaW9ucykgIWdsb2JhbDtcclxuXHJcblx0QGNvbnRlbnQ7XHJcblxyXG5cdC8vIFJlc3RvcmUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cclxuXHQkYnJlYWtwb2ludHM6ICRnbG9iYWwtYnJlYWtwb2ludHMgIWdsb2JhbDtcclxuXHQkbWVkaWEtZXhwcmVzc2lvbnM6ICRnbG9iYWwtbWVkaWEtZXhwcmVzc2lvbnMgIWdsb2JhbDtcclxufVxyXG5cclxuLy8vL1xyXG4vLy8gaW5jbHVkZS1tZWRpYSBwdWJsaWMgZXhwb3NlZCBBUElcclxuLy8vIEBhdXRob3IgRWR1YXJkbyBCb3VjYXNcclxuLy8vIEBhY2Nlc3MgcHVibGljXHJcbi8vLy9cclxuXHJcblxyXG4vLy9cclxuLy8vIEdlbmVyYXRlcyBhIG1lZGlhIHF1ZXJ5IGJhc2VkIG9uIGEgbGlzdCBvZiBjb25kaXRpb25zXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAgICRjb25kaXRpb25zICAtIE1lZGlhIHF1ZXJ5IGNvbmRpdGlvbnNcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBhIHNpbmdsZSBzZXQgYnJlYWtwb2ludFxyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+cGhvbmUnKSB7IH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCB0d28gc2V0IGJyZWFrcG9pbnRzXHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz5waG9uZScsICc8PXRhYmxldCcpIHsgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIGN1c3RvbSB2YWx1ZXNcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj0zNThweCcsICc8ODUwcHgnKSB7IH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBzZXQgYnJlYWtwb2ludHMgd2l0aCBjdXN0b20gdmFsdWVzXHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz5kZXNrdG9wJywgJzw9MTM1MHB4JykgeyB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggYSBzdGF0aWMgZXhwcmVzc2lvblxyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCdyZXRpbmEyeCcpIHsgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBNaXhpbmcgZXZlcnl0aGluZ1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PTM1MHB4JywgJzx0YWJsZXQnLCAncmV0aW5hM3gnKSB7IH1cclxuLy8vXHJcbkBtaXhpbiBtZWRpYSgkY29uZGl0aW9ucy4uLikge1xyXG5cdEBpZiAoJGltLW1lZGlhLXN1cHBvcnQgYW5kIGxlbmd0aCgkY29uZGl0aW9ucykgPT0gMCkgb3JcclxuXHRcdFx0KG5vdCAkaW0tbWVkaWEtc3VwcG9ydCBhbmQgaW0taW50ZXJjZXB0cy1zdGF0aWMtYnJlYWtwb2ludCgkY29uZGl0aW9ucy4uLikpIHtcclxuXHRcdEBjb250ZW50O1xyXG5cdH0gQGVsc2UgaWYgKCRpbS1tZWRpYS1zdXBwb3J0IGFuZCBsZW5ndGgoJGNvbmRpdGlvbnMpID4gMCkge1xyXG5cdFx0QG1lZGlhICN7dW5xdW90ZShwYXJzZS1leHByZXNzaW9uKG50aCgkY29uZGl0aW9ucywgMSkpKX0ge1xyXG5cdFx0XHQvLyBSZWN1cnNpdmUgY2FsbFxyXG5cdFx0XHRAaW5jbHVkZSBtZWRpYShzbGljZSgkY29uZGl0aW9ucywgMikuLi4pIHtcclxuXHRcdFx0XHRAY29udGVudDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4iLCIvL1xyXG4vLyBNSVhJTlNcclxuLy9cclxuQG1peGluIGNmIHtcclxuXHQmOmJlZm9yZSxcclxuXHQmOmFmdGVyIHtcclxuXHRcdGNvbnRlbnQ6ICcnO1xyXG5cclxuXHRcdGRpc3BsYXk6IHRhYmxlO1xyXG5cdH1cclxuXHJcblx0JjphZnRlciB7XHJcblx0XHRjbGVhcjogYm90aDtcclxuXHR9XHJcbn1cclxuXHJcbkBmdW5jdGlvbiB2dy1zaXplKCRzLCAkdzogMTQ0MCkge1xyXG5cdEByZXR1cm4gKCRzIC8gJHcpICogMTAwICsgdnc7XHJcbn1cclxuXHJcbkBmdW5jdGlvbiByZW0oJHNpemVWYWx1ZTogMTYpIHtcclxuXHRAcmV0dXJuIGNhbGMoJHNpemVWYWx1ZSAvIDE2KSArIHJlbTtcclxufVxyXG5cclxuQGZ1bmN0aW9uIHJlbCgkc2l6ZSwgJHJlbCkge1xyXG5cdEByZXR1cm4gY2FsYygkc2l6ZSAvICRyZWwpO1xyXG59XHJcblxyXG5AZnVuY3Rpb24gZW0oJHNpemUsICRyZWwpIHtcclxuXHRAcmV0dXJuIHJlbCgkc2l6ZSwgJHJlbCkgKiAxZW07XHJcbn1cclxuXHJcbkBtaXhpbiBvYmplY3QtZml0LWNvdmVyKCkge1xyXG5cdHdpZHRoOiAxMDAlO1xyXG5cdGhlaWdodDogMTAwJTtcclxuXHJcblx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdHRvcDogMDtcclxuXHRsZWZ0OiAwO1xyXG5cclxuXHRvYmplY3QtZml0OiBjb3ZlcjtcclxufVxyXG5cclxuQG1peGluIGxpbmUtaGVpZ2h0KCRmb250LXNpemUsICRsaW5lLWhlaWdodDogMCkge1xyXG5cdEBpZiAkbGluZS1oZWlnaHQgIT0gMCB7XHJcblx0XHRAaWYgJGxpbmUtaGVpZ2h0IDwgMTAge1xyXG5cdFx0XHRsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0O1xyXG5cdFx0fVxyXG5cdFx0QGVsc2Uge1xyXG5cdFx0XHRsaW5lLWhlaWdodDogY2FsYygkbGluZS1oZWlnaHQgLyAkZm9udC1zaXplKTtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbkBtaXhpbiBsZXR0ZXItc3BhY2luZygkZm9udC1zaXplLCAkbGV0dGVyLXNwYWNpbmc6IDApIHtcclxuXHRAaWYgJGxldHRlci1zcGFjaW5nICE9IDAge1xyXG5cdFx0QGlmICRsZXR0ZXItc3BhY2luZyA8IDEwIHtcclxuXHRcdFx0bGV0dGVyLXNwYWNpbmc6IHJlbSgkbGV0dGVyLXNwYWNpbmcpO1xyXG5cdFx0fVxyXG5cdFx0QGVsc2Uge1xyXG5cdFx0XHRsZXR0ZXItc3BhY2luZzogcmVtKCgkZm9udC1zaXplICogJGxldHRlci1zcGFjaW5nKSAvIDEwMDApO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuQG1peGluIGZvbnQoJGZvbnQtc2l6ZS1tYXAsICRsaW5lLWhlaWdodDogMCwgJGxldHRlci1zcGFjaW5nOiAwKSB7XHJcblx0QGlmIHR5cGUtb2YoJGZvbnQtc2l6ZS1tYXApID09ICdtYXAnIHtcclxuXHRcdEBlYWNoICRicmVha3BvaW50LCAkZm9udC1zaXplIGluICRmb250LXNpemUtbWFwIHtcclxuXHRcdFx0QGlmICRicmVha3BvaW50ID09IG51bGwge1xyXG5cdFx0XHRcdGZvbnQtc2l6ZTogcmVtKCRmb250LXNpemUpO1xyXG5cclxuXHRcdFx0XHRAaW5jbHVkZSBsaW5lLWhlaWdodChtYXAtZ2V0KCRmb250LXNpemUtbWFwLCBudGgobWFwLWtleXMoJGZvbnQtc2l6ZS1tYXApLCAtMSkpLCAkbGluZS1oZWlnaHQpO1xyXG5cdFx0XHRcdEBpbmNsdWRlIGxldHRlci1zcGFjaW5nKG1hcC1nZXQoJGZvbnQtc2l6ZS1tYXAsIG50aChtYXAta2V5cygkZm9udC1zaXplLW1hcCksIC0xKSksICRsZXR0ZXItc3BhY2luZyk7XHJcblx0XHRcdH1cclxuXHRcdFx0QGVsc2Uge1xyXG5cdFx0XHRcdEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkYnJlYWtwb2ludCkpIHtcclxuXHRcdFx0XHRcdGZvbnQtc2l6ZTogcmVtKCRmb250LXNpemUpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRAZWxzZSB7XHJcblx0XHRmb250LXNpemU6IHJlbSgkZm9udC1zaXplLW1hcCk7XHJcblxyXG5cdFx0QGluY2x1ZGUgbGluZS1oZWlnaHQoJGZvbnQtc2l6ZS1tYXAsICRsaW5lLWhlaWdodCk7XHJcblx0XHRAaW5jbHVkZSBsZXR0ZXItc3BhY2luZygkZm9udC1zaXplLW1hcCwgJGxldHRlci1zcGFjaW5nKTtcclxuXHR9XHJcbn1cclxuXHJcbkBtaXhpbiBib3gtc2hhZG93LTEoKSB7XHJcblx0Ym94LXNoYWRvdzogcmVtKDApIHJlbSgwKSByZW0oMTYpIHJlbSgwKSByZ2JhKDE3MSwgMTkwLCAyMDksIDAuMjApO1xyXG59XHJcblxyXG5AbWl4aW4gYm94LXNoYWRvdy0yKCkge1xyXG5cdGJveC1zaGFkb3c6IHJlbSgwKSByZW0oMCkgcmVtKDE2KSByZW0oMCkgcmdiYSgxNzEsIDE5MCwgMjA5LCAwLjI4KTtcclxufVxyXG5cclxuQG1peGluIGJveC1zaGFkb3ctMygpIHtcclxuXHRib3gtc2hhZG93OiByZW0oMCkgcmVtKDApIHJlbSgxNikgcmVtKDApIHJnYmEoMTcxLCAxOTAsIDIwOSwgMC40OCk7XHJcbn1cclxuXHJcbkBtaXhpbiBib3gtc2hhZG93LTQoKSB7XHJcblx0Ym94LXNoYWRvdzogcmVtKDApIHJlbSgwKSByZW0oMTYpIHJlbSgwKSByZ2JhKDE3MSwgMTkwLCAyMDksIDAuNjgpO1xyXG59XHJcblxyXG5AbWl4aW4gYm94LXNoYWRvdy01KCkge1xyXG5cdGJveC1zaGFkb3c6IHJlbSgwKSByZW0oMCkgcmVtKDEyKSByZW0oMCkgcmdiYSgxNzEsIDE5MCwgMjA5LCAwLjY4KTtcclxufVxyXG5cclxuQG1peGluIGZpbHRlci0yKCkge1xyXG5cdGZpbHRlcjogZHJvcC1zaGFkb3coMHB4IDBweCAxMnB4IHJnYmEoMTcxLCAxOTAsIDIwOSwgMC4yOCkpO1xyXG59XHJcbiJdfQ== */
