/* ====================================*/
/* ====================================*/
/* ====================================*/
/* ====================================*/
/* ====================================*/
/* ====================================*/
/* ====================================*/
/* ====================================*/
/* ====================================*/
/* ====================================*/
/* ====================================*/
/* ====================================*/
/* ====================================*/
/* ====================================*/
/* ====================================*/
/* ====================================*/
/* ====================================*/
/* ====================================*/
/* ====================================*/
/* ====================================*/
/* ====================================*/
/* ====================================*/
/* ====================================*/
/* ====================================*/
.footer {
  margin-top: auto;
  width: 100%;
  border-top: 1px solid #c7c7c8;
}
@media (min-width: 1201px) {
  .footer__wrapper {
    margin-left: auto;
    margin-right: auto;
    width: 100%;
    max-width: 1736px;
    padding-left: 32px;
    padding-right: 32px;
  }
}
@media (min-width: 1201px) {
  .footer__wrapper {
    display: flex;
  }
}
.footer__block {
  padding-top: 60px;
  padding-bottom: 60px;
}
@media (max-width: 1200px) {
  .footer__block {
    max-width: 584px;
    margin-left: auto;
    margin-right: auto;
  }
}
@media (max-width: 1200px) and (min-width: 601px) {
  .footer__block {
    padding-left: 32px;
    padding-right: 32px;
  }
}
@media (max-width: 600px) {
  .footer__block {
    padding-left: 15px;
    padding-right: 15px;
  }
}
@media (min-width: 1501px) {
  .footer .footer__company {
    padding-right: 60px;
  }
}
@media (max-width: 1500px) and (min-width: 1201px) {
  .footer .footer__company {
    padding-right: 45px;
  }
}
@media (min-width: 1201px) {
  .footer .footer__company {
    width: 50%;
  }
}
@media (max-width: 1200px) {
  .footer .footer__company {
    text-align: center;
  }
}
.footer__company-list {
  list-style: none;
  padding-left: 0;
}
.footer__company-list:not(:last-child) {
  margin-bottom: 30px;
}
.footer__company-list:last-child {
  margin-bottom: 30px;
}
.footer__company-link {
  text-decoration: none;
  color: #55565a;
}
@media (min-width: 1501px) {
  .footer__form-block {
    padding-left: 60px;
    padding-right: 60px;
  }
}
@media (max-width: 1500px) and (min-width: 1201px) {
  .footer__form-block {
    padding-left: 45px;
    padding-right: 45px;
  }
}
@media (min-width: 1201px) {
  .footer__form-block {
    border-left: 1px solid;
    border-right: 1px solid;
    border-color: #c7c7c8;
    min-width: 640px;
  }
}
.footer__form-block-title {
  text-align: center;
}
.footer__form-block-subtext {
  text-align: center;
}
.footer__form .footer__form-error {
  text-align: center;
  margin-bottom: 30px;
  color: #e63816;
}
.footer__form .footer__form-success {
  text-align: center;
  margin-bottom: 30px;
  color: #28a745;
}
.footer__form {
  margin-top: 30px;
}
@media (min-width: 601px) {
  .footer__form-top {
    display: grid;
    grid-template-columns: 1fr 280px;
    grid-auto-rows: auto;
    column-gap: 40px;
  }
}
.footer__form-input {
  grid-column: 1;
}
.footer__form-textarea {
  grid-column: 2;
  grid-row: 1/4;
}
.footer__form-bottom {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-start;
}
@media (min-width: 601px) {
  .footer__form-btn {
    order: 0;
  }
}
@media (min-width: 601px) {
  .footer__form-btn.form__group {
    width: auto;
  }
}
@media (max-width: 600px) {
  .footer__form-btn .btn {
    width: 100%;
  }
}
@media (min-width: 601px) {
  .footer__form-recaptcha {
    order: 1;
  }
}
.footer__form-recaptcha.form__group {
  display: initial;
}
@media (min-width: 601px) {
  .footer__form-recaptcha.form__group {
    width: 280px;
    min-height: 75px;
  }
}
@media (max-width: 600px) {
  .footer__form-recaptcha.form__group {
    min-height: 78px;
  }
}
@media (min-width: 601px) {
  .footer__form-g-recaptcha {
    transform: scale(0.9210526316);
    margin-left: -10px;
    margin-top: -3px;
  }
}
.footer__form-g-recaptcha-error {
  text-align: right;
}
.ajax_form .footer__form-g-recaptcha-error .error, .footer__form-g-recaptcha-error {
  color: #ff7575;
  font-size: 0.875rem;
  line-height: 1.5;
}
.footer__form-privacy-policy {
  font-size: 0.875rem;
  line-height: 1.5;
}
.footer__form-privacy-policy a {
  text-decoration: underline;
  color: #0077AB;
}
@media (min-width: 1501px) {
  .footer__social {
    padding-left: 60px;
  }
}
@media (max-width: 1500px) and (min-width: 1201px) {
  .footer__social {
    padding-left: 45px;
  }
}
@media (min-width: 1201px) {
  .footer__social {
    text-align: right;
    width: 50%;
  }
}
@media (max-width: 1200px) {
  .footer__social {
    text-align: center;
  }
}
.footer__title {
  font-size: 1.5rem;
  line-height: 1.2083333333;
  margin-bottom: 40px;
  text-transform: uppercase;
}
.footer__social-weblinks {
  list-style: none;
  padding-left: 0;
  margin-bottom: 0;
  text-transform: uppercase;
}
.footer__social-item {
  margin-bottom: 5px;
}
.footer__social-link {
  text-decoration: none;
  color: #55565a;
}
.footer__line {
  margin-top: 0;
  margin-bottom: 0;
  border-top: 1px solid;
}
@media (min-width: 1201px) {
  .footer__line {
    display: none;
  }
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIl92YXJpYWJsZXMuc2NzcyIsImZvb3Rlci5zY3NzIiwiX2Jvb3RzdHJhcC12YXJpYWJsZXMuc2NzcyIsIl9mdW5jdGlvbnMuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQTZDQTtBQUtBO0FBSUE7QUFzQkE7QUFVQTtBQXRGQTtBQTZDQTtBQUtBO0FBSUE7QUFzQkE7QUFVQTtBQXRGQTtBQTZDQTtBQUtBO0FBSUE7QUFzQkE7QUFVQTtBQXRGQTtBQTZDQTtBQUtBO0FBSUE7QUFzQkE7QUFVQTtBQ2hGQTtFQUNJO0VBQ0E7RUFDQTs7QUFPSTtFQUhKO0lBSVE7SUFDQTtJQUNBO0lBRUEsV0RrREk7SUNoREosY0QyQ2dCO0lDMUNoQixlRDBDZ0I7OztBQ3ZDcEI7RUFkSjtJQWVROzs7QUFNUjtFQUNJO0VBQ0E7O0FBRUE7RUFKSjtJQUtRO0lBQ0E7SUFDQTs7O0FBSUo7RUFYSjtJQVlRLGNEc0JlO0lDckJmLGVEcUJlOzs7QUNsQm5CO0VBaEJKO0lBaUJRLGNEa0JlO0lDakJmLGVEaUJlOzs7QUNObkI7RUFISjtJQUlROzs7QUFHSjtFQVBKO0lBUVE7OztBQUdKO0VBWEo7SUFZUTs7O0FBR0o7RUFmSjtJQWdCUTs7O0FBT1I7RUFDSTtFQUNBOztBQUVBO0VBQ0k7O0FBR0o7RUFDSTs7QUFNUjtFQUNJO0VBQ0EsT0QvRks7O0FDcUdMO0VBREo7SUFFUTtJQUNBOzs7QUFHSjtFQU5KO0lBT1E7SUFDQTs7O0FBR0o7RUFYSjtJQVlRO0lBQ0E7SUFDQSxjRG5HSDtJQ29HRzs7O0FBTVI7RUFDSTs7QUFLSjtFQUNJOztBQU1BO0VBQ0k7RUFDQTtFQUNBLE9EcElOOztBQzJJRTtFQUNJO0VBQ0E7RUFDQSxPRDFJRjs7QUNnSk47RUFDSTs7QUFNQTtFQURKO0lBRVE7SUFDQTtJQUNBO0lBQ0E7OztBQU9SO0VBQ0k7O0FBS0o7RUFDSTtFQUNBOztBQUtKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBTUE7RUFESjtJQUVROzs7QUFJQTtFQURKO0lBRVE7OztBQUtKO0VBREo7SUFFUTs7O0FBUVI7RUFESjtJQUVROzs7QUFHSjtFQUNJOztBQUVBO0VBSEo7SUFJUTtJQUNBOzs7QUFHSjtFQVJKO0lBU1E7OztBQVNSO0VBREo7SUFFUTtJQUNBO0lBQ0E7OztBQU1SO0VBQ0k7O0FBRUE7RUFDSSxPQzVNQTtFQ3RDUjtFQUNBOztBRnlQQTtFRTFQQTtFQUNBOztBRjRQSTtFQUNJO0VBQ0EsT0RyT007O0FDOE9WO0VBRko7SUFHUTs7O0FBR0o7RUFOSjtJQU9ROzs7QUFHSjtFQVZKO0lBV1E7SUFDQTs7O0FBR0o7RUFmSjtJQWdCUTs7O0FBTVI7RUU1UkE7RUFDQTtFRjZSSTtFQUNBOztBQUtKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBT0o7RUFDSTs7QUFLSjtFQUNJO0VBQ0EsT0Q5VEs7O0FDbVVUO0VBQ0k7RUFDQTtFQUNBOztBQUVBO0VBTEo7SUFNUSIsInNvdXJjZXNDb250ZW50IjpbIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG5cbiRmb250LXNpemUtYmFzZTogMXJlbSAhZGVmYXVsdDsgLy8gQXNzdW1lcyB0aGUgYnJvd3NlciBkZWZhdWx0LCB0eXBpY2FsbHkgYDE2cHhgXG4kbGluZS1oZWlnaHQtYmFzZTogMS44O1xuJGZvbnQtc2l6ZS1tYWluOiAxNjtcbiRjb2xvci1iYXNlOiAjNTU1NjVhO1xuJGJhY2tncm91bmQtYmFzZS1jb2xvcjogI2Y3ZjdmNztcblxuJHByb2R1Y3QtZ3JheS1jb2xvcjogI2U2ZTZlNjtcblxuJHJlZDogI2U2MzgxNjtcblxuXG4kZXJyb3I6ICRyZWQ7XG4kc3VjY2VzczogIzI4YTc0NTtcblxuXG4kZm9ybS1ib3JkZXItcmFkaXVzOiAzMnB4O1xuXG4kZ3JheS0xOiAjNjU2NTY1O1xuJGdyYXktMjogI2M3YzdjODtcbiRncmF5LTM6ICM5ZDlkOWQ7XG4kZ3JheS00OiAjYTZhN2E5O1xuXG5cbiRibHVlLTE6ICMwMDk1ZDY7XG5cbiR3aGl0ZTogI2ZmZjtcblxuXG5cblxuXG4kYmFja2dyb3VuZC1iYXNlLWNvbG9yOiAjZjlmOWY5O1xuLy8kYmx1ZS0xOiAjMDA3N0FCO1xuLy8kZ3JheS00OiAjNkM2RDZFO1xuLy8kcmVkOiAjQ0YzMjE0O1xuXG4kY29udHJhc3QtYmx1ZS0xOiAjMDA3N0FCO1xuJGNvbnRyYXN0LWdyYXktMzogIzZFNkU2RTtcbiRjb250cmFzdC1ncmF5LTQ6ICM2QzZENkU7XG4kY29udHJhc3QtcmVkOiAjQ0YzMjE0O1xuXG5cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cblxuJGRpc3BsYXlzOiBub25lLCBpbmxpbmUsIGlubGluZS1ibG9jaywgYmxvY2ssIHRhYmxlLCB0YWJsZS1yb3csIHRhYmxlLWNlbGwsIGZsZXgsXG5pbmxpbmUtZmxleCAhZGVmYXVsdDtcblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cblxuJG1haW4tY29udGFpbmVyLW1heC13aWRodDogMTY3MnB4O1xuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuXG4kbWVkaWEteHhsOiAxOTIwcHg7IC8vIGZ1bGwgaGRcbiRtZWRpYS14bDogMTUwMHB4OyAvLyBsYXB0b3AgPFxuJG1lZGlhLW1kOiAxMjAwcHg7IC8vIHRhYmxldCA8XG4kbWVkaWEtc206IDYwMHB4OyAvLyBtb2JpbGUgPFxuXG4kZm9udC1tZWRpYS14eGw6IDE5MjBweDsgLy8gZnVsbCBoZFxuJGZvbnQtbWVkaWEteGw6IDE0MjBweDsgLy8gbGFwdG9wIDxcbiRmb250LW1lZGlhLW1kOiA3NjhweDsgLy8gdGFibGV0IDxcbiRmb250LW1lZGlhLXNtOiAzNzVweDsgLy8gbW9iaWxlIDxcblxuJGNvbnRhaW5lci1wYWRkaW5nLXh4bC1sLXI6IDMycHg7XG4kY29udGFpbmVyLXBhZGRpbmcteGwtbC1yOiAzMnB4O1xuJGNvbnRhaW5lci1wYWRkaW5nLW1kLWwtcjogMzJweDtcbiRjb250YWluZXItcGFkZGluZy1zbS1sLXI6IDE1cHg7XG5cbiRjb250YWluZXIteHhsOiAkbWFpbi1jb250YWluZXItbWF4LXdpZGh0ICsgJGNvbnRhaW5lci1wYWRkaW5nLXh4bC1sLXIgKiAyO1xuJGNvbnRhaW5lci14bDogJG1lZGlhLXhsIC0gJGNvbnRhaW5lci1wYWRkaW5nLXhsLWwtciAqIDI7XG4kY29udGFpbmVyLW1kOiAkbWVkaWEtbWQgLSAkY29udGFpbmVyLXBhZGRpbmctbWQtbC1yICogMjtcbiRjb250YWluZXItc206ICRtZWRpYS1zbSAtICRjb250YWluZXItcGFkZGluZy1zbS1sLXIgKiAyO1xuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuXG4vLyDQlNCw0L3QvdGL0LUg0LTQu9GPINCx0LvQvtC60LAg0LPQsNC70LXRgNC10LlcblxuJGdhbGxlcnlOYXZCdXR0b25XaWR0aDogMTYwcHg7XG4kZ2FsbGVyeUl0ZW1QYWRkaW5nOiAyMnB4O1xuJGdhbGxlcnlXaWR0aEFiczogMTQ2OHB4O1xuJGdhbGxlcnlXaWR0aEltZ0hvcjogNzEycHg7XG4kZ2FsbGVyeVdpZHRoSW1nVmVyOiAzMzRweDtcblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cbiIsIkBpbXBvcnQgXCJib290c3RyYXAtZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwiYm9vdHN0cmFwLXZhcmlhYmxlc1wiO1xuQGltcG9ydCBcInZhcmlhYmxlc1wiO1xuQGltcG9ydCBcImZ1bmN0aW9uc1wiO1xuQGltcG9ydCBcImZvbnQtc3R5bGVcIjtcblxuLmZvb3RlciB7XG4gICAgbWFyZ2luLXRvcDogYXV0bztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGdyYXktMjtcblxuICAgIC8vIC5mb290ZXJfX3dyYXBwZXJcblxuICAgICZfX3dyYXBwZXIge1xuXG5cbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRtZWRpYS1tZCArIDFweCkge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAgICAgbWF4LXdpZHRoOiAkY29udGFpbmVyLXh4bDtcblxuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkY29udGFpbmVyLXBhZGRpbmcteHhsLWwtcjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRjb250YWluZXItcGFkZGluZy14eGwtbC1yO1xuICAgICAgICB9XG5cbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRtZWRpYS1tZCArIDFweCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIC5mb290ZXJfX2Jsb2NrXG5cbiAgICAmX19ibG9jayB7XG4gICAgICAgIHBhZGRpbmctdG9wOiA2MHB4O1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNjBweDtcblxuICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogJG1lZGlhLW1kKSB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6ICg1MjBweCArICRjb250YWluZXItcGFkZGluZy1tZC1sLXIgKjIpO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgIH1cblxuXG4gICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkbWVkaWEtbWQpIGFuZCAobWluLXdpZHRoOiAkbWVkaWEtc20gKyAxcHgpIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJGNvbnRhaW5lci1wYWRkaW5nLW1kLWwtcjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRjb250YWluZXItcGFkZGluZy1tZC1sLXI7XG4gICAgICAgIH1cblxuICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogJG1lZGlhLXNtKSB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRjb250YWluZXItcGFkZGluZy1zbS1sLXI7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkY29udGFpbmVyLXBhZGRpbmctc20tbC1yO1xuICAgICAgICB9XG5cbiAgICB9XG5cblxuICAgIC8vIC5mb290ZXJfX2NvbXBhbnlcblxuICAgIC5mb290ZXJfX2NvbXBhbnkge1xuXG5cbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRtZWRpYS14bCArIDFweCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogNjBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkbWVkaWEteGwpIGFuZCAobWluLXdpZHRoOiAkbWVkaWEtbWQgKyAxcHgpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDQ1cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1lZGlhLW1kICsgMXB4KSB7XG4gICAgICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6ICRtZWRpYS1tZCkge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAvLyAuZm9vdGVyX19jb21wYW55LWxpc3RcblxuICAgICZfX2NvbXBhbnktbGlzdCB7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcblxuICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gLmZvb3Rlcl9fY29tcGFueS1saW5rXG5cbiAgICAmX19jb21wYW55LWxpbmsge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIGNvbG9yOiAkY29sb3ItYmFzZVxuICAgIH1cblxuICAgIC8vIC5mb290ZXJfX2Zvcm0tYmxvY2tcblxuICAgICZfX2Zvcm0tYmxvY2sge1xuICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1lZGlhLXhsICsgMXB4KSB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDYwcHg7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiA2MHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6ICRtZWRpYS14bCkgYW5kIChtaW4td2lkdGg6ICRtZWRpYS1tZCArIDFweCkge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiA0NXB4O1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogNDVweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWVkaWEtbWQgKyAxcHgpIHtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGdyYXktMjtcbiAgICAgICAgICAgIG1pbi13aWR0aDogNjQwcHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyAuZm9vdGVyX19mb3JtLWJsb2NrLXRpdGxlXG5cbiAgICAmX19mb3JtLWJsb2NrLXRpdGxlIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cblxuICAgIC8vIC5mb290ZXJfX2Zvcm0tYmxvY2stc3VidGV4dFxuXG4gICAgJl9fZm9ybS1ibG9jay1zdWJ0ZXh0IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cblxuICAgIC8vIC5mb290ZXJfX2Zvcm0tZXJyb3JcblxuICAgICZfX2Zvcm0tZXJyb3Ige1xuICAgICAgICAuZm9vdGVyX19mb3JtICYge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDtcbiAgICAgICAgICAgIGNvbG9yOiAkZXJyb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyAuZm9vdGVyX19mb3JtLXN1Y2Nlc3NcblxuICAgICZfX2Zvcm0tc3VjY2VzcyB7XG4gICAgICAgIC5mb290ZXJfX2Zvcm0gJiB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xuICAgICAgICAgICAgY29sb3I6ICRzdWNjZXNzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gLmZvb3Rlcl9fZm9ybVxuXG4gICAgJl9fZm9ybSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDMwcHg7XG4gICAgfVxuXG4gICAgLy8gLmZvb3Rlcl9fZm9ybS10b3BcblxuICAgICZfX2Zvcm0tdG9wIHtcbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRtZWRpYS1zbSArIDFweCkge1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDI4MHB4O1xuICAgICAgICAgICAgZ3JpZC1hdXRvLXJvd3M6IGF1dG87XG4gICAgICAgICAgICBjb2x1bW4tZ2FwOiA0MHB4O1xuICAgICAgICB9XG4gICAgfVxuXG5cbiAgICAvLyAuZm9vdGVyX19mb3JtLWlucHV0XG5cbiAgICAmX19mb3JtLWlucHV0IHtcbiAgICAgICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgfVxuXG4gICAgLy8gLmZvb3Rlcl9fZm9ybS10ZXh0YXJlYVxuXG4gICAgJl9fZm9ybS10ZXh0YXJlYSB7XG4gICAgICAgIGdyaWQtY29sdW1uOiAyO1xuICAgICAgICBncmlkLXJvdzogMS80O1xuICAgIH1cblxuICAgIC8vIC5mb290ZXJfX2Zvcm0tYm90dG9tXG5cbiAgICAmX19mb3JtLWJvdHRvbSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICB9XG5cbiAgICAvLyAuZm9vdGVyX19mb3JtLWJ0blxuXG4gICAgJl9fZm9ybS1idG4ge1xuICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1lZGlhLXNtICsgMXB4KSB7XG4gICAgICAgICAgICBvcmRlcjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYuZm9ybV9fZ3JvdXAge1xuICAgICAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRtZWRpYS1zbSArIDFweCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmJ0biB7XG4gICAgICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogJG1lZGlhLXNtKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyAuZm9vdGVyX19mb3JtLXJlY2FwdGNoYVxuXG4gICAgJl9fZm9ybS1yZWNhcHRjaGEge1xuICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1lZGlhLXNtICsgMXB4KSB7XG4gICAgICAgICAgICBvcmRlcjogMTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuZm9ybV9fZ3JvdXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5pdGlhbDtcblxuICAgICAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRtZWRpYS1zbSArIDFweCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAyODBweDtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiA3NXB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogJG1lZGlhLXNtKSB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogNzhweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuXG4gICAgLy8gLmZvb3Rlcl9fZm9ybS1nLXJlY2FwdGNoYVxuXG4gICAgJl9fZm9ybS1nLXJlY2FwdGNoYSB7XG4gICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWVkaWEtc20gKyAxcHgpIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoKDI4MC8zMDQpKTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMTBweDtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IC0zcHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyAuZm9vdGVyX19mb3JtLWctcmVjYXB0Y2hhLWVycm9yXG5cbiAgICAmX19mb3JtLWctcmVjYXB0Y2hhLWVycm9yIHtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG5cbiAgICAgICAgLmFqYXhfZm9ybSAmIC5lcnJvciwgJiB7XG4gICAgICAgICAgICBjb2xvcjogJHJlZC1lcnJvcjtcbiAgICAgICAgICAgIEBpbmNsdWRlIEZTTCgxNCwgMjEpO1xuICAgICAgICB9XG4gICAgfVxuXG5cbiAgICAvLyAuZm9vdGVyX19mb3JtLXByaXZhY3ktcG9saWN5XG5cbiAgICAmX19mb3JtLXByaXZhY3ktcG9saWN5IHtcbiAgICAgICAgQGluY2x1ZGUgRlNMKDE0LCAyMSk7XG5cbiAgICAgICAgYSB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIGNvbG9yOiAkY29udHJhc3QtYmx1ZS0xO1xuICAgICAgICB9XG4gICAgfVxuXG5cbiAgICAvLyAuZm9vdGVyX19zb2NpYWxcblxuICAgICZfX3NvY2lhbCB7XG5cbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRtZWRpYS14bCArIDFweCkge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiA2MHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6ICRtZWRpYS14bCkgYW5kIChtaW4td2lkdGg6ICRtZWRpYS1tZCArIDFweCkge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiA0NXB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRtZWRpYS1tZCArIDFweCkge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6ICRtZWRpYS1tZCkge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gLmZvb3Rlcl9fdGl0bGVcblxuICAgICZfX3RpdGxlIHtcbiAgICAgICAgQGluY2x1ZGUgRlNMKDI0LCAyOSk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDQwcHg7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgfVxuXG4gICAgLy8gLmZvb3Rlcl9fc29jaWFsLXdlYmxpbmtzXG5cbiAgICAmX19zb2NpYWwtd2VibGlua3Mge1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cblxuICAgIH1cblxuICAgIC8vIC5mb290ZXJfX3NvY2lhbC1pdGVtXG5cbiAgICAmX19zb2NpYWwtaXRlbSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgICB9XG5cbiAgICAvLyAuZm9vdGVyX19zb2NpYWwtbGlua1xuXG4gICAgJl9fc29jaWFsLWxpbmsge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIGNvbG9yOiAkY29sb3ItYmFzZVxuICAgIH1cblxuICAgIC8vIC5mb290ZXJfX2xpbmVcblxuICAgICZfX2xpbmUge1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQ7XG5cbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRtZWRpYS1tZCArIDFweCkge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxufVxuXG5cblxuXG5cblxuIiwiJHdoaXRlOiAjZmZmICFkZWZhdWx0O1xuJGdyYXktMTAwOiAjZjhmOWZhICFkZWZhdWx0O1xuJGdyYXktMjAwOiAjZTllY2VmICFkZWZhdWx0O1xuJGdyYXktMzAwOiAjZGVlMmU2ICFkZWZhdWx0O1xuJGdyYXktNDAwOiAjY2VkNGRhICFkZWZhdWx0O1xuJGdyYXktNTAwOiAjYWRiNWJkICFkZWZhdWx0O1xuJGdyYXktNjAwOiAjNmM3NTdkICFkZWZhdWx0O1xuJGdyYXktNzAwOiAjNDk1MDU3ICFkZWZhdWx0O1xuJGdyYXktODAwOiAjMzQzYTQwICFkZWZhdWx0O1xuJGdyYXktOTAwOiAjMjEyNTI5ICFkZWZhdWx0O1xuJGJsYWNrOiAjMjAyMDIwICFkZWZhdWx0O1xuLy8gc2Nzcy1kb2NzLWVuZCBncmF5LWNvbG9yLXZhcmlhYmxlc1xuXG4vLyBmdXN2LWRpc2FibGVcbi8vIHNjc3MtZG9jcy1zdGFydCBncmF5LWNvbG9ycy1tYXBcbiRncmF5czogKFxuICAgIFwiMTAwXCI6ICRncmF5LTEwMCxcbiAgICBcIjIwMFwiOiAkZ3JheS0yMDAsXG4gICAgXCIzMDBcIjogJGdyYXktMzAwLFxuICAgIFwiNDAwXCI6ICRncmF5LTQwMCxcbiAgICBcIjUwMFwiOiAkZ3JheS01MDAsXG4gICAgXCI2MDBcIjogJGdyYXktNjAwLFxuICAgIFwiNzAwXCI6ICRncmF5LTcwMCxcbiAgICBcIjgwMFwiOiAkZ3JheS04MDAsXG4gICAgXCI5MDBcIjogJGdyYXktOTAwLFxuKSAhZGVmYXVsdDtcbi8vIHNjc3MtZG9jcy1lbmQgZ3JheS1jb2xvcnMtbWFwXG4vLyBmdXN2LWVuYWJsZVxuXG4vLyBzY3NzLWRvY3Mtc3RhcnQgY29sb3ItdmFyaWFibGVzXG4vLyAkYmx1ZTogIzAwN2JmZiAhZGVmYXVsdDtcbiRibHVlOiAjMGQ2ZWZkICFkZWZhdWx0O1xuXG4kaW5kaWdvOiAjNjYxMGYyICFkZWZhdWx0O1xuJHB1cnBsZTogIzZmNDJjMSAhZGVmYXVsdDtcbiRwaW5rOiAjZTgzZThjICFkZWZhdWx0O1xuJHJlZDogI2U2MzgxNiAhZGVmYXVsdDtcbiRncmF5OiAjYjdiNmIyICFkZWZhdWx0O1xuJG9yYW5nZTogI2ZkN2UxNCAhZGVmYXVsdDtcbiR5ZWxsb3c6ICNmZmMxMDcgIWRlZmF1bHQ7XG4kZ3JlZW46ICMyOGE3NDUgIWRlZmF1bHQ7XG4kdGVhbDogIzIwYzk5NyAhZGVmYXVsdDtcbiRjeWFuOiAjMTdhMmI4ICFkZWZhdWx0O1xuLy8gc2Nzcy1kb2NzLWVuZCBjb2xvci12YXJpYWJsZXNcblxuJGdyYXktc3Ryb2tlOiAjZGJkYmRiICFkZWZhdWx0O1xuJGdyYXktZGFyazogIzMyMzIzMiAhZGVmYXVsdDtcbiRncmF5LXdhcm06ICNmOWY3ZjMgIWRlZmF1bHQ7XG4kZ3JheS1saWdodDogI2YwZjBmMCAhZGVmYXVsdDtcblxuJHJlZC1lcnJvcjogI2ZmNzU3NSAhZGVmYXVsdDtcblxuLy8gc2Nzcy1kb2NzLXN0YXJ0IGNvbG9ycy1tYXBcbiRjb2xvcnM6IChcbiAgICBcImJsdWVcIjogJGJsdWUsXG4gICAgXCJpbmRpZ29cIjogJGluZGlnbyxcbiAgICBcInB1cnBsZVwiOiAkcHVycGxlLFxuICAgIFwicGlua1wiOiAkcGluayxcbiAgICBcInJlZFwiOiAkcmVkLFxuICAgIFwib3JhbmdlXCI6ICRvcmFuZ2UsXG4gICAgXCJ5ZWxsb3dcIjogJHllbGxvdyxcbiAgICBcImdyZWVuXCI6ICRncmVlbixcbiAgICBcInRlYWxcIjogJHRlYWwsXG4gICAgXCJjeWFuXCI6ICRjeWFuLFxuICAgIFwiYmxhY2tcIjogJGJsYWNrLFxuICAgIFwid2hpdGVcIjogJHdoaXRlLFxuICAgIFwiZ3JheVwiOiAkZ3JheS02MDAsXG4gICAgXCJncmF5LWRhcmtcIjogJGdyYXktODAwLFxuKSAhZGVmYXVsdDtcbiIsIkBpbXBvcnQgXCJ2YXJpYWJsZXNcIjtcblxuLy8g0J/QtdGA0LXQstC+0LTQuNGC0Ywg0YDQsNC30LzQtdGAINC40Lcg0L/QuNC60YHQtdC70LXQuSDQsiByZW0g0L7RgtC90L7RgdC40YLQtdC70YzQvdC+INCx0LDQt9C+0LLQvtCz0L4g0YDQsNGJ0LzQtdGA0LAg0YjRgNC40YTRgtC+0LIg0LIg0LHRgNCw0YPQt9C10YDQtVxuQGZ1bmN0aW9uIHJlbUZTKCRmb250LXNpemUpIHtcbiAgICAkZm9udC1zaXplLXB4OiAkZm9udC1zaXplICogMXB4O1xuICAgICRmb250LXNpemUtbWFpbi1weDogJGZvbnQtc2l6ZS1tYWluICogMXB4O1xuICAgIEByZXR1cm4gKCRmb250LXNpemUtcHgvJGZvbnQtc2l6ZS1tYWluLXB4KSAqIDFyZW07XG59XG5cbi8vINCj0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdGCINGA0LDQt9C80LXRgNGLINGI0YDQuNGE0YLQsCDQuCDQstGL0YHQvtGC0Ysg0YjRgNC40YTRgtCwXG4vLyBAaW5jbHVkZSBGU0woMjAsIDMyKTtcbkBtaXhpbiBGU0woJGZvbnQtc2l6ZSwgJGZvbnQtbGluZS1oZWlnaHQpIHtcbiAgICBmb250LXNpemU6IHJlbUZTKCRmb250LXNpemUpO1xuICAgIGxpbmUtaGVpZ2h0OiAoJGZvbnQtbGluZS1oZWlnaHQvJGZvbnQtc2l6ZSk7XG59XG5cbkBtaXhpbiBtYXJnaW4tdG9wKCkge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWVkaWEtc20gKyAxcHgpIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMTgwcHg7XG4gICAgfVxuXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRtZWRpYS1zbSkge1xuICAgICAgICBtYXJnaW4tdG9wOiAxMDBweDtcbiAgICB9XG59XG5cbkBtaXhpbiBtYXJnaW4tYm90dG9tKCkge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWVkaWEtc20gKyAxcHgpIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTgwcHg7XG4gICAgfVxuXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRtZWRpYS1zbSkge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMDBweDtcbiAgICB9XG59XG5cbkBtaXhpbiBtYXJnaW4tdG9wLWJvdHRvbSgpIHtcbiAgICBAaW5jbHVkZSBtYXJnaW4tdG9wKCk7XG4gICAgQGluY2x1ZGUgbWFyZ2luLWJvdHRvbSgpO1xufVxuXG5cbkBmdW5jdGlvbiBzdHJpcC11bml0KCRudW1iZXIpIHtcbiAgICBAaWYgdHlwZS1vZigkbnVtYmVyKSA9PSBcIm51bWJlclwiIGFuZCBub3QgdW5pdGxlc3MoJG51bWJlcikge1xuICAgICAgICBAcmV0dXJuICRudW1iZXIgLyAoJG51bWJlciAqIDAgKyAxKTtcbiAgICB9XG5cbiAgICBAcmV0dXJuICRudW1iZXI7XG59XG5cbkBmdW5jdGlvbiBjYWxjRmx1aWRGb250U2l6ZSgkdy1tYXgsICR3LW1pbiwgJGYtbWF4LCAkZi1taW4sICR1bml0czogcHgpIHtcbiAgICAkZi1taW46IHN0cmlwLXVuaXQoJGYtbWluKTtcbiAgICAkZi1tYXg6IHN0cmlwLXVuaXQoJGYtbWF4KTtcbiAgICAkdy1taW46IHN0cmlwLXVuaXQoJHctbWluKTtcbiAgICAkdy1tYXg6IHN0cmlwLXVuaXQoJHctbWF4KTtcblxuICAgICRrOiAoJGYtbWF4IC0gJGYtbWluKS8gKCR3LW1heCAtICR3LW1pbik7XG4gICAgJGI6ICRmLW1pbiAtICRrICogJHctbWluO1xuXG4gICAgJGI6ICRiICsgJHVuaXRzO1xuXG4gICAgQHJldHVybiBjYWxjKCN7JGt9ICogMTAwdncgKyAjeyRifSk7XG59XG5cbi8vXG5cbkBtaXhpbiBtZWRpYV9mb250X3NpemVfd2lkdGhfX3YyKFxuICAgICRtZWRpYV9tYXgsXG4gICAgJG1lZGlhX21pbixcbiAgICAkZm9udF9uYW1lX21heCxcbiAgICAkZm9udF9uYW1lX21pbixcbiAgICAkaXNfbWVkaWFfbWluXG4pIHtcbiAgICAkbWVkaWFfbWF4OiBzdHJpcC11bml0KCRtZWRpYV9tYXgpO1xuICAgICRtZWRpYV9taW46IHN0cmlwLXVuaXQoJG1lZGlhX21pbik7XG4gICAgJGZvbnRfbmFtZV9tYXg6IHN0cmlwLXVuaXQoJGZvbnRfbmFtZV9tYXgpO1xuICAgICRmb250X25hbWVfbWluOiBzdHJpcC11bml0KCRmb250X25hbWVfbWluKTtcblxuICAgICRrOiAoJGZvbnRfbmFtZV9tYXggLSAkZm9udF9uYW1lX21pbikvICgkbWVkaWFfbWF4IC0gJG1lZGlhX21pbik7XG4gICAgJGI6ICRmb250X25hbWVfbWluIC0gJGsgKiAkbWVkaWFfbWluO1xuXG4gICAgJGI6ICRiIC8gJGZvbnQtc2l6ZS1tYWluICogMXJlbTtcblxuICAgICRtZWRpYV9tYXhfcHg6ICRtZWRpYV9tYXggKiAxcHg7XG5cbiAgICBAaWYgJGlzX21lZGlhX21pbiA9PSAxIHtcbiAgICAgICAgJG1lZGlhX21pbl9weDogJG1lZGlhX21pbiAqIDFweDtcblxuICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogJG1lZGlhX21heF9weCkgYW5kIChtaW4td2lkdGg6ICRtZWRpYV9taW5fcHgpIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogY2FsYygjeyRrfSAqIDEwMHZ3ICsgI3skYn0pO1xuICAgICAgICB9XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkbWVkaWFfbWF4X3B4KSB7XG4gICAgICAgICAgICBmb250LXNpemU6IGNhbGMoI3ska30gKiAxMDB2dyArICN7JGJ9KTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gQGluY2x1ZGUgbWVkaWFfZm9udF9zaXplX3dpZHRoKDkwMCwgMzIwLCA4MCwgNTgsIDApO1xuQG1peGluIG1lZGlhX2ZvbnRfc2l6ZV93aWR0aChcbiAgICAkbWVkaWFfbWF4LFxuICAgICRtZWRpYV9taW4sXG4gICAgJGZvbnRfbmFtZV9tYXgsXG4gICAgJGZvbnRfbmFtZV9taW4sXG4gICAgJGlzX21pbl9tZWRpYVxuKSB7XG4gICAgJHJhem46ICRmb250X25hbWVfbWF4IC0gJGZvbnRfbmFtZV9taW47XG5cbiAgICBAZm9yICRmb250X25hbWVfaSBmcm9tIDEgdGhyb3VnaCAkcmF6biB7XG4gICAgICAgICRtZWRpYTogJG1lZGlhX21heC8kZm9udF9uYW1lX21heDtcblxuICAgICAgICAkbWVkaWFfY29lZjogKCRtZWRpYV9tYXggLSAkbWVkaWFfbWluKSAvXG4gICAgICAgICAgICAoJGZvbnRfbmFtZV9tYXggLSAkZm9udF9uYW1lX21pbik7XG5cbiAgICAgICAgQGlmICRpc19taW5fbWVkaWEgPT0gMSB7XG4gICAgICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogKCRtZWRpYV9tYXggLSAoKCRmb250X25hbWVfaSAtIDEpICogJG1lZGlhX2NvZWYpKSAqIDFweCkgYW5kIChtaW4td2lkdGg6ICRtZWRpYV9taW4gKiAxcHgpIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICgoJGZvbnRfbmFtZV9tYXggLSAkZm9udF9uYW1lX2kpIC8gJGZvbnQtc2l6ZS1tYWluKSAqXG4gICAgICAgICAgICAgICAgICAgIDFyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgJGZvbnRfbWF4X21lZGlhOiAkbWVkaWFfbWF4IC1cbiAgICAgICAgICAgICAgICBmbG9vcigoJGZvbnRfbmFtZV9pIC0gMSkgKiAkbWVkaWFfY29lZikgKlxuICAgICAgICAgICAgICAgIDFweDtcblxuICAgICAgICAgICAgJGZvbnRfbWluX21lZGlhOiAkbWVkaWFfbWF4IC1cbiAgICAgICAgICAgICAgICBmbG9vcigoJGZvbnRfbmFtZV9pKSAqICRtZWRpYV9jb2VmKSAqXG4gICAgICAgICAgICAgICAgMXB4O1xuXG4gICAgICAgICAgICBAaWYgJGZvbnRfbWluX21lZGlhID4gJG1lZGlhX21pbiB7XG4gICAgICAgICAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6ICRmb250X21heF9tZWRpYSkgYW5kIChtaW4td2lkdGg6ICgkZm9udF9taW5fbWVkaWEgKyAxcHgpKSB7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICgkZm9udF9uYW1lX21heCAtICRmb250X25hbWVfaSkgLyAkZm9udC1zaXplLW1haW5cbiAgICAgICAgICAgICAgICAgICAgICAgICkgKiAxcmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkZm9udF9tYXhfbWVkaWEpIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKCRmb250X25hbWVfbWF4IC0gJGZvbnRfbmFtZV9pKSAvICRmb250LXNpemUtbWFpblxuICAgICAgICAgICAgICAgICAgICAgICAgKSAqIDFyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyBAaW5jbHVkZSBtZWRpYV9mb250X3NpemVfd2lkdGgoOTAwLCAzMjAsIDgwLCA1OCwgMCk7XG4vLyBAbWl4aW4gbWVkaWFfZm9udF9zaXplX3dpZHRoKFxuLy8gICAgICRtZWRpYV9tYXgsXG4vLyAgICAgJG1lZGlhX21pbixcbi8vICAgICAkZm9udF9uYW1lX21heCxcbi8vICAgICAkZm9udF9uYW1lX21pbixcbi8vICAgICAkaXNfbWluX21lZGlhXG4vLyApIHtcbi8vICAgICAkcmF6bjogJGZvbnRfbmFtZV9tYXggLSAkZm9udF9uYW1lX21pbjtcblxuLy8gICAgIEBmb3IgJGZvbnRfbmFtZV9pIGZyb20gMSB0aHJvdWdoICRyYXpuIHtcbi8vICAgICAgICAgJG1lZGlhOiAkbWVkaWFfbWF4LyRmb250X25hbWVfbWF4O1xuXG4vLyAgICAgICAgICRtZWRpYV9jb2VmOiAoJG1lZGlhX21heCAtICRtZWRpYV9taW4pIC9cbi8vICAgICAgICAgICAgICgkZm9udF9uYW1lX21heCAtICRmb250X25hbWVfbWluKTtcblxuLy8gICAgICAgICBAaWYgJGlzX21pbl9tZWRpYSA9PSAxIHtcbi8vICAgICAgICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAoJG1lZGlhX21heCAtICgoJGZvbnRfbmFtZV9pIC0gMSkgKiAkbWVkaWFfY29lZikpICogMXB4KSBhbmQgKG1pbi13aWR0aDogJG1lZGlhX21pbiAqIDFweCkge1xuLy8gICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogKCgkZm9udF9uYW1lX21heCAtICRmb250X25hbWVfaSkgLyAkZm9udC1zaXplLW1haW4pICpcbi8vICAgICAgICAgICAgICAgICAgICAgMXJlbTtcbi8vICAgICAgICAgICAgIH1cbi8vICAgICAgICAgfSBAZWxzZSB7XG4vLyAgICAgICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogKCRtZWRpYV9tYXggLSAoKCRmb250X25hbWVfaSAtIDEpICogJG1lZGlhX2NvZWYpKSAqIDFweCkge1xuLy8gICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogKCgkZm9udF9uYW1lX21heCAtICRmb250X25hbWVfaSkgLyAkZm9udC1zaXplLW1haW4pICpcbi8vICAgICAgICAgICAgICAgICAgICAgMXJlbTtcbi8vICAgICAgICAgICAgIH1cbi8vICAgICAgICAgfVxuLy8gICAgIH1cbi8vIH1cblxuLy8gQGluY2x1ZGUgbWVkaWFfZm9udF9zaXplX2hlaWdodCg5MDAsIDMyMCwgODAsIDU4LCAwKTtcbkBtaXhpbiBtZWRpYV9mb250X3NpemVfaGVpZ2h0KFxuICAgICRtZWRpYV9tYXgsXG4gICAgJG1lZGlhX21pbixcbiAgICAkZm9udF9zaXplX21heCxcbiAgICAkZm9udF9zaXplX21pbixcbiAgICAkaXNfbWluX21lZGlhXG4pIHtcbiAgICAkcmF6bjogJGZvbnRfc2l6ZV9tYXggLSAkZm9udF9zaXplX21pbjtcblxuICAgIEBmb3IgJGZvbnRfc2l6ZV9pIGZyb20gMSB0aHJvdWdoICRyYXpuIHtcbiAgICAgICAgJG1lZGlhOiAkbWVkaWFfbWF4LyRmb250X3NpemVfbWF4O1xuXG4gICAgICAgICRtZWRpYV9jb2VmOiAoJG1lZGlhX21heCAtICRtZWRpYV9taW4pIC9cbiAgICAgICAgICAgICgkZm9udF9zaXplX21heCAtICRmb250X3NpemVfbWluKTtcblxuICAgICAgICBAaWYgJGlzX21pbl9tZWRpYSA9PSAxIHtcbiAgICAgICAgICAgIEBtZWRpYSAobWF4LWhlaWdodDogKCRtZWRpYV9tYXggLSAoKCRmb250X3NpemVfaSAtIDEpICogJG1lZGlhX2NvZWYpKSAqIDFweCkgYW5kIChtaW4taGVpZ2h0OiAkbWVkaWFfbWluICogMXB4KSB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAoKCRmb250X3NpemVfbWF4IC0gJGZvbnRfbmFtZV9pKSAvICRmb250LXNpemUtbWFpbikgKlxuICAgICAgICAgICAgICAgICAgICAxcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIEBtZWRpYSAobWF4LWhlaWdodDogKCRtZWRpYV9tYXggLSAoKCRmb250X3NpemVfaSAtIDEpICogJG1lZGlhX2NvZWYpKSAqIDFweCkge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogKCgkZm9udF9zaXplX21heCAtICRmb250X3NpemVfaSkgLyAkZm9udC1zaXplLW1haW4pICpcbiAgICAgICAgICAgICAgICAgICAgMXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gUmV0dXJucyBhIGJsYW5rIHN0cmluZyBpZiBzbWFsbGVzdCBicmVha3BvaW50LCBvdGhlcndpc2UgcmV0dXJucyB0aGUgbmFtZSB3aXRoIGEgZGFzaCBpbiBmcm9udC5cbi8vIFVzZWZ1bCBmb3IgbWFraW5nIHJlc3BvbnNpdmUgdXRpbGl0aWVzLlxuLy9cbi8vICAgID4+IGJyZWFrcG9pbnQtaW5maXgoeHMsICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXG4vLyAgICBcIlwiICAoUmV0dXJucyBhIGJsYW5rIHN0cmluZylcbi8vICAgID4+IGJyZWFrcG9pbnQtaW5maXgoc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXG4vLyAgICBcIi1zbVwiXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1pbmZpeCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAgIEByZXR1cm4gaWYoYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cykgPT0gbnVsbCwgXCJcIiwgXCItI3skbmFtZX1cIik7XG59XG5cbi8vIE1pbmltdW0gYnJlYWtwb2ludCB3aWR0aC4gTnVsbCBmb3IgdGhlIHNtYWxsZXN0IChmaXJzdCkgYnJlYWtwb2ludC5cbi8vXG4vLyAgICA+PiBicmVha3BvaW50LW1pbihzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcbi8vICAgIDU3NnB4XG5AZnVuY3Rpb24gYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgICAkbWluOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJG5hbWUpO1xuICAgIEByZXR1cm4gaWYoJG1pbiAhPSAwLCAkbWluLCBudWxsKTtcbn1cblxuLy8gTWVkaWEgb2YgYXQgbGVhc3QgdGhlIG1pbmltdW0gYnJlYWtwb2ludCB3aWR0aC4gTm8gcXVlcnkgZm9yIHRoZSBzbWFsbGVzdCBicmVha3BvaW50LlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50IGFuZCB3aWRlci5cbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LXVwKCRuYW1lLCAkYnJlYWtwb2ludHM6ICRtZWRpYS1icmVha3BvaW50cykge1xuICAgICRtaW46IGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHMpO1xuICAgIEBpZiAkbWluIHtcbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIHtcbiAgICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNsaWNrRG90cygpIHtcbiAgICAuc2xpY2stZG90cyB7XG4gICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHdpZHRoOiBpbmhlcml0O1xuICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICgkbWVkaWEteGwrMSkpIHtcbiAgICAgICAgICAgIGJvdHRvbTogNjVweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkbWVkaWEteGwpIGFuZCAobWluLXdpZHRoOiAoJG1lZGlhLW1kKzEpKSB7XG4gICAgICAgICAgICBib3R0b206IDUwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogJG1lZGlhLW1kKSBhbmQgKG1pbi13aWR0aDogKCRtZWRpYS1zbSsxKSkge1xuICAgICAgICAgICAgYm90dG9tOiA0MHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6ICRtZWRpYS1zbSkge1xuICAgICAgICAgICAgYm90dG9tOiAzMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgbGkge1xuICAgICAgICAgICAgd2lkdGg6IGluaXRpYWw7XG4gICAgICAgICAgICBoZWlnaHQ6IGluaXRpYWw7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogNy41cHg7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDcuNXB4O1xuXG4gICAgICAgICAgICBidXR0b24ge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxNHB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTRweDtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiBpbmhlcml0O1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogaW5pdGlhbDtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogMC4yMXMgYmFja2dyb3VuZC1jb2xvciwgMC4yMXMgd2lkdGgsXG4gICAgICAgICAgICAgICAgICAgIDAuMjFzIGhlaWdodDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYuc2xpY2stYWN0aXZlIGJ1dHRvbjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHJlZDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpub3QoLnNsaWNrLWFjdGl2ZSkgYnV0dG9uOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIHdpZHRoOiA4cHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiA4cHg7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5AbWl4aW4gc2xpY2tCaWdBcnJvd3MoKSB7XG4gICAgLnNsaWNrLWFycm93IHtcbiAgICAgICAgd2lkdGg6IDY1cHg7XG4gICAgICAgIGhlaWdodDogNjVweDtcblxuICAgICAgICAmLnNsaWNrLXByZXYge1xuICAgICAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRtZWRpYS14eGwgKyAxcHgpIHtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6ICRtZWRpYS14eGwpIGFuZCAobWluLXdpZHRoOiAkbWVkaWEteGwgKyAxcHgpIHtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6ICRtZWRpYS14bCkge1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5zbGljay1uZXh0IHtcbiAgICAgICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWVkaWEteHhsICsgMXB4KSB7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkbWVkaWEteHhsKSBhbmQgKG1pbi13aWR0aDogJG1lZGlhLXhsICsgMXB4KSB7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkbWVkaWEteGwpIHtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuXG4vLy8g0JLQvtC30LLRgNCw0YnQsNC10YIgQ1NTLdCy0YvRgNCw0LbQtdC90LjQtSDQstC40LTQsFxuLy8vIG1pbihjYWxjKCgxMDB2dyAtIGNvbnRhaW5lciAtIG5hdiAtIGl0ZW1zIC0gc2Nyb2xsYmFyKSAqICh3aWR0aFggLyB0b3RhbFdpZHRoKSksIHdpZHRoWClcbkBmdW5jdGlvbiBmbHVpZC1tYXgoJHdpZHRoWHB4KSB7XG4gICAgJHVuaXRsZXNzWDogJHdpZHRoWHB4ICAgICAgICAgIC8gMXB4O1xuICAgICR1bml0bGVzc1RvdGFsOiAkZ2FsbGVyeVdpZHRoQWJzICAgLyAxcHg7XG5cbiAgICAvLyDQktGL0LHQuNGA0LDQtdC8INC90YPQttC90YPRjiDRhNGD0L3QutGG0LjRjjog0LXRgdC70Lgg0L7RgtGA0LjRhtCw0YLQtdC70YzQvdC+0LUg4oCUIG1heCwg0LjQvdCw0YfQtSBtaW5cbiAgICAkZm46IGlmKCR1bml0bGVzc1ggPCAwLCBcIm1heFwiLCBcIm1pblwiKTtcblxuICAgIEByZXR1cm4gdW5xdW90ZShcbiAgICAgICAgICAgICAgICAgICAgXCIjeyRmbn0oY2FsYygoMTAwdncgLSAjeyRjb250YWluZXItcGFkZGluZy14eGwtbC1yICogMn0gLSAjeyRnYWxsZXJ5TmF2QnV0dG9uV2lkdGh9IC0gI3skZ2FsbGVyeUl0ZW1QYWRkaW5nICogMn0gLSB2YXIoLS1zY3JvbGxCYXIpKSAqICgjeyR1bml0bGVzc1h9IC8gI3skdW5pdGxlc3NUb3RhbH0pKSwgI3skd2lkdGhYcHh9KVwiXG4gICAgKTtcblxufVxuIl0sImZpbGUiOiJmb290ZXIuY3NzIn0= */
