input,
textarea {
  border: none;
  -webkit-box-shadow: none;
          box-shadow: none;
  background: unset;
  width: 100%;
}
input::-webkit-input-placeholder, textarea::-webkit-input-placeholder {
  color: rgba(255,255,255,0.6);
  font-size: 16px;
  line-height: 24px;
}
input::-moz-placeholder, textarea::-moz-placeholder {
  color: rgba(255,255,255,0.6);
  font-size: 16px;
  line-height: 24px;
}
input:-ms-input-placeholder, textarea:-ms-input-placeholder {
  color: rgba(255,255,255,0.6);
  font-size: 16px;
  line-height: 24px;
}
input::-ms-input-placeholder, textarea::-ms-input-placeholder {
  color: rgba(255,255,255,0.6);
  font-size: 16px;
  line-height: 24px;
}
input::placeholder,
textarea::placeholder {
  color: rgba(255,255,255,0.6);
  font-size: 16px;
  line-height: 24px;
}
input,
textarea {
  width: 100%;
  border: 1px dashed rgba(178,192,191,0.4);
  border-radius: 10px;
  font-size: 16px;
  line-height: 24px;
  color: #fff;
  outline: none;
  -webkit-transition: all 0.3s ease-out;
  transition: all 0.3s ease-out;
}
input {
  height: 60px;
  padding: 0 22px 0 155px;
}
@media only screen and (max-width: 1121px) {
  input {
    padding: 0 22px 0 115px;
  }
}
textarea {
  height: 120px;
  resize: none;
  padding: 17px 22px 17px 155px;
}
.input {
  position: relative;
}
.input__placeholder {
  position: absolute;
  top: 17px;
  left: 22px;
  margin: auto;
  color: rgba(255,255,255,0.7);
  font-size: 16px;
  line-height: 24px;
  -webkit-transition: all 0.3s ease-out;
  transition: all 0.3s ease-out;
  z-index: 0;
}
.input__placeholder.active {
  font-size: 12px;
  line-height: 24px;
  top: 8px;
}
.input--black input,
.input--black textarea {
  color: #171a1b;
}
.input--black .input__placeholder {
  color: rgba(16,18,19,0.5);
}
.input--anim input {
  padding: 20px 20px 0;
  height: 70px;
}
.input--anim .input__placeholder {
  top: 22px;
}
.input--anim .input__placeholder.active {
  top: 8px;
}
.radios {
  gap: 40px;
}
.radio {
  cursor: pointer;
}
.radio__wrapper {
  position: relative;
}
.radio input {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  margin: auto;
  opacity: 0;
  z-index: 2;
  cursor: pointer;
}
.radio__icon {
  position: relative;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  border: 1px solid #fff;
  background-color: #0f1112;
}
.radio__icon:before {
  content: '';
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  margin: auto;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background-color: #0f1112;
  -webkit-transform-origin: center;
          transform-origin: center;
  -webkit-transition: all 0.3s ease-out;
  transition: all 0.3s ease-out;
}
.radio__name {
  margin-left: 7px;
}
.radio.active .radio__icon:before {
  background-color: #fff;
}
.checkboxes {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
  gap: 40px;
}
.checkbox {
  position: relative;
}
.checkbox input {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  margin: auto;
  width: 100%;
  height: 100%;
  opacity: 0;
  z-index: 1;
  cursor: pointer;
}
.checkbox input:checked + .checkbox__icon {
  background-color: #fff;
}
.checkbox input:checked + .checkbox__icon--white {
  background-color: #171a1b;
}
.checkbox__icon {
  width: 24px;
  height: 24px;
  border: 1px solid #fff;
  background-color: #0f1112;
  border-radius: 5px;
  -webkit-transition: all 0.3s ease-out;
  transition: all 0.3s ease-out;
}
.checkbox__icon--white {
  background-color: #fff;
  border-color: #171a1b;
}
.checkbox__text {
  margin-left: 14px;
}
.form--pt_95 {
  padding-top: 95px;
}
@media only screen and (max-width: 768px) {
  .form--pt_95 {
    padding-top: 60px;
  }
}
@media only screen and (max-width: 990px) {
  .form--cta {
    padding-top: 60px;
  }
  .form--cta.form--pt_95 {
    padding-top: 95px;
  }
  .form--cta.form--narrow {
    max-width: 510px;
    width: 100%;
  }
}
.form--narrow {
  max-width: 570px;
  width: 100%;
}
@media only screen and (max-width: 580px) {
  .form--narrow {
    max-width: 470px;
    width: 100%;
  }
}
.form-radios {
  gap: 140px;
}
@media only screen and (max-width: 1120px) {
  .form-radios {
    gap: 60px;
  }
}
.form__top {
  background-color: #131516;
  border-radius: 10px;
  padding: 17px 22px 19px;
  border: 1px solid #131516;
}
.form__rows {
  gap: 16px;
}
.form__row,
.form__input {
  width: 100%;
}
@media only screen and (max-width: 520px) {
  .form__row--desktop {
    display: none;
  }
}
@media only screen and (min-width: 520px) {
  .form__row--mobile {
    display: none;
  }
}
.form-bottom {
  margin-top: 45px;
}
@media only screen and (max-width: 480px) {
  .form-bottom {
    margin-top: 20px;
  }
}
.form-bottom--md_mt {
  margin-top: 35px;
}
.form-bottom--sm_mt {
  margin-top: 20px;
}
.form-bottom__block {
  width: 100%;
}
@media only screen and (max-width: 480px) {
  .form-bottom .form__row {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 40px;
  }
  .form-bottom .form__input {
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
  }
  .form-bottom .btns {
    width: 100%;
  }
  .form-bottom .btns .btn {
    width: 100%;
  }
}
.form__inputSub {
  margin-top: 15px;
}
.form--black input:-webkit-autofill,
.form--black input:-webkit-autofill:hover,
.form--black input:-webkit-autofill:focus,
.form--black textarea:-webkit-autofill,
.form--black textarea:-webkit-autofill:hover,
.form--black textarea:-webkit-autofill:focus,
.form--black select:-webkit-autofill,
.form--black select:-webkit-autofill:hover,
.form--black select:-webkit-autofill:focus {
  -webkit-text-fill-color: #0f1112;
  -webkit-box-shadow: 0 0 0px 1000px transparent inset;
  -webkit-transition: background-color 5000s ease-in-out 0s;
  transition: background-color 5000s ease-in-out 0s;
  background: -webkit-linear-gradient(top, #fff 0%, #fff 50%, #fff 51%, #fff 100%);
}
.form--black .upload-file {
  color: #171a1b;
}
.form--black .checkbox {
  color: #171a1b;
}
.form--light .form__top {
  background-color: #103cfd;
  border-color: #103cfd;
}
.form--light .form__row--mobile .select-user__title {
  background-color: #103cfd;
  color: #fff;
}
.form--light .form__row--mobile .select-user__select {
  background-color: unset;
}
.form--light .form__row--mobile .select2-container--default .select2-selection--single .select2-selection__placeholder {
  color: #fff;
}
.form--light input:-webkit-autofill,
.form--light input:-webkit-autofill:hover,
.form--light input:-webkit-autofill:focus,
.form--light textarea:-webkit-autofill,
.form--light textarea:-webkit-autofill:hover,
.form--light textarea:-webkit-autofill:focus,
.form--light select:-webkit-autofill,
.form--light select:-webkit-autofill:hover,
.form--light select:-webkit-autofill:focus {
  -webkit-text-fill-color: #0f1112;
  -webkit-box-shadow: 0 0 0px 1000px transparent inset;
  -webkit-transition: background-color 5000s ease-in-out 0s;
  transition: background-color 5000s ease-in-out 0s;
  background: -webkit-linear-gradient(top, #fff 0%, #fff 50%, #fff 51%, #fff 100%);
}
.form--light .radio__icon {
  background-color: transparent;
}
.form--light .radio__icon:before {
  background-color: transparent;
}
.form--light .radio.active .radio__icon:before {
  background-color: #fff;
}
.form--light .input__placeholder {
  color: rgba(23,26,27,0.5);
}
.form--light .upload-file {
  color: #0f1112;
}
.form--light .upload-file__delete path:first-child {
  stroke: #0f1112;
}
.form--light .upload-file__delete path:last-child {
  fill: #0f1112;
}
.form--light .upload__title {
  color: #0f1112;
}
.form--light .upload__text {
  color: rgba(23,26,27,0.5);
}
.form--light .checkbox__text {
  color: #0f1112;
}
.form--light .checkbox__text p {
  color: #0f1112;
}
.form--light .checkbox__icon {
  background-color: #fff;
  border-color: #0f1112;
}
.form--light .checkbox__icon path {
  fill: #fff;
}
.form--light .checkbox input:checked + .checkbox__icon {
  background-color: #0f1112;
}
.form--light .checkbox input:checked + .checkbox__icon--white {
  background-color: #171a1b;
}
.form--light input,
.form--light textarea {
  color: #0f1112;
}
.form--light input,
.form--light textarea {
  border-color: rgba(23,26,27,0.4);
}
.form--light .upload .btn--grey {
  background-color: #dfdfdf;
  color: #171a1b;
}
.form--light .wpcf7 form .wpcf7-response-output {
  color: #0f1112;
}
.form--light .btns .btn {
  background-color: #0f1112;
  color: #fff;
}
.form--light .btns .btn:hover:before {
  background-color: #103cfd;
}
.btn .wpcf7-form-control-wrap {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  margin: auto;
  width: 100%;
  height: 100%;
}
.upload {
  position: relative;
}
.upload .wpcf7-form-control-wrap {
  position: absolute;
  top: 0;
  left: 0;
  width: 90%;
  height: 100%;
  z-index: 10;
  padding: 0;
}
.upload .wpcf7-form-control-wrap input {
  padding: 0;
  opacity: 0;
  width: 100%;
  height: 100%;
}
@media only screen and (max-width: 580px) {
  .upload .wpcf7-form-control-wrap {
    width: 100%;
    height: 100%;
  }
}
.upload__title {
  font-size: 18px;
  line-height: 25px;
  color: #fff;
}
.upload__wrapper {
  gap: 30px;
}
.upload__wrapper--sm {
  gap: 20px;
}
.upload__wrapper.hidden {
  display: none;
}
.upload__block {
  gap: 15px;
}
.upload__block--sm {
  gap: 10px;
}
.upload__text {
  color: rgba(255,255,255,0.7);
}
.upload-file {
  color: #fff;
  font-size: 14px;
  line-height: 21px;
  display: none;
  position: relative;
  z-index: 11;
}
.upload-file__icon,
.upload-file__delete {
  width: 14px;
  height: 14px;
}
.upload-file__icon svg,
.upload-file__delete svg {
  width: 100%;
  height: 100%;
}
.upload-file__icon {
  margin-right: 4px;
  -ms-flex-negative: 0;
      flex-shrink: 0;
}
.upload-file__delete {
  margin-left: 6px;
  cursor: pointer;
}
.upload-file__delete path {
  -webkit-transition: all 0.3s ease-out;
  transition: all 0.3s ease-out;
}
.upload-file__delete:hover path:first-child {
  stroke: #17018a;
}
.upload-file__delete:hover path:last-child {
  fill: #17018a;
}
.upload-file.active {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
.upload--black .upload__title {
  color: #171a1b;
}
.upload--black .upload__text {
  color: rgba(16,18,19,0.5);
}
@media only screen and (max-width: 580px) {
  .upload__wrapper,
  .upload__block {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
  }
  .upload__block:last-child {
    -webkit-box-orient: vertical;
    -webkit-box-direction: reverse;
        -ms-flex-direction: column-reverse;
            flex-direction: column-reverse;
  }
  .upload__wrapper {
    padding: 20px;
    border-radius: 10px;
    border: 1px dashed rgba(178,192,191,0.4);
    gap: 4px;
  }
}
.select-user__wrapper {
  gap: 10px;
}
.select-user__title,
.select-user__select {
  border-radius: 10px;
  background-color: rgba(217,217,217,0.02);
}
.select-user__title {
  padding: 16px 22px;
  color: rgba(255,255,255,0.7);
  font-size: 16px;
  line-height: 24px;
  -ms-flex-negative: 0;
      flex-shrink: 0;
}
.select-user__select {
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  width: 100%;
  max-width: 100%;
}
.select-user__select .wpcf7-form-control-wrap,
.select-user__select .wpcf7-form-control {
  width: 100% !important;
}
.filters .form__rows {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 40px;
}
.filters .form__row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 30px;
}
@media only screen and (max-width: 768px) {
  .filters .form__row {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
}
.filters .input__placeholder {
  z-index: -1;
}
.captcha {
  width: 100%;
  margin-bottom: 24px;
}

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZvcm0uc3R5bCIsImZvcm0uY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3J1cHR1cmUvcnVwdHVyZS9pbmRleC5zdHlsIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBOztFQUVJLFlBQU87RUFDUCx3QkFBVztVQUFYLGdCQUFXO0VBQ1gsaUJBQVc7RUFDWCxXQUFNO0FDRFY7QURFSTtFQUNJLDRCQUFNO0VBQ04sZUFBVTtFQUNWLGlCQUFZO0FDQ3BCO0FESkk7RUFDSSw0QkFBTTtFQUNOLGVBQVU7RUFDVixpQkFBWTtBQ0NwQjtBREpJO0VBQ0ksNEJBQU07RUFDTixlQUFVO0VBQ1YsaUJBQVk7QUNDcEI7QURKSTtFQUNJLDRCQUFNO0VBQ04sZUFBVTtFQUNWLGlCQUFZO0FDQ3BCO0FESkk7O0VBQ0ksNEJBQU07RUFDTixlQUFVO0VBQ1YsaUJBQVk7QUNDcEI7QURDQTs7RUFFSSxXQUFNO0VBQ04sd0NBQU87RUFDUCxtQkFBYztFQUNkLGVBQVU7RUFDVixpQkFBWTtFQUNaLFdBQU07RUFDTixhQUFRO0VBQ1IscUNBQVc7RUFBWCw2QkFBVztBQ0NmO0FEQ0E7RUFDSSxZQUFPO0VBQ1AsdUJBQVE7QUNDWjtBQ29IVztFQUFBO0lGbEhILHVCQUFRO0VDRWQ7QUFDRjtBREFBO0VBQ0ksYUFBTztFQUNQLFlBQU87RUFDUCw2QkFBUTtBQ0VaO0FEQUE7RUFDSSxrQkFBUztBQ0ViO0FEREk7RUFDSSxrQkFBUztFQUNULFNBQUk7RUFDSixVQUFLO0VBQ0wsWUFBTztFQUNQLDRCQUFNO0VBQ04sZUFBVTtFQUNWLGlCQUFZO0VBQ1oscUNBQVc7RUFBWCw2QkFBVztFQUNYLFVBQVE7QUNHaEI7QURGUTtFQUNJLGVBQVU7RUFDVixpQkFBWTtFQUNaLFFBQUk7QUNJaEI7QURGUTs7RUFFSSxjQUFNO0FDSWxCO0FERlk7RUFDSSx5QkFBTTtBQ0l0QjtBRERRO0VBQ0ksb0JBQVE7RUFDUixZQUFPO0FDR25CO0FETVk7RUFDSSxTQUFJO0FDSnBCO0FES2dCO0VBQ0ksUUFB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Qk07SUFDSSxhQUFRO0lBQ1IsbUJBQWM7SUFDZCx3Q0FBTztJQUNQLFFBQUk7RUMrQmQ7QUFDRjtBRDVCUTtFQUNJLFNBQUk7QUM4QmhCO0FEN0JROztFQUVJLG1CQUFjO0VBQ2Qsd0NBQWlCO0FDK0I3QjtBRDlCUTtFQUNJLGtCQUFRO0VBQ1IsNEJBQU07RUFDTixlQUFVO0VBQ1YsaUJBQVk7RUFDWixvQkFBWTtNQUFaLGNBQVk7QUNnQ3hCO0FEL0JRO0VBQ0ksbUJBQVU7TUFBVixvQkFBVTtVQUFWLFlBQVU7RUFDVixXQUFNO0VBQ04sZUFBVTtBQ2lDdEI7QURoQ1k7O0VBRUksc0JBQU07QUNrQ3RCO0FEOUJRO0VBQ0ksb0JBQVE7RUFBUixvQkFBUTtFQUFSLGFBQVE7RUFDUix5QkFBWTtNQUFaLHNCQUFZO1VBQVosbUJBQVk7RUFDWiw0QkFBZTtFQUFmLDZCQUFlO01BQWYsMEJBQWU7VUFBZixzQkFBZTtFQUNmLFNBQUk7QUNnQ2hCO0FEL0JRO0VBQ0ksb0JBQVE7RUFBUixvQkFBUTtFQUFSLGFBQVE7RUFDUix5QkFBWTtNQUFaLHNCQUFZO1VBQVosbUJBQVk7RUFDWixTQUFJO0FDaUNoQjtBQ3BZVztFQUFBO0lGcVdLLDRCQUFlO0lBQWYsNkJBQWU7UUFBZiwwQkFBZTtZQUFmLHNCQUFlO0VDbUM3QjtBQUNGO0FEbENRO0VBQ0ksV0FBUTtBQ29DcEI7QURqQ0E7RUFDSSxXQUFNO0VBQ04sbUJBQWM7QUNtQ2xCIiwiZmlsZSI6ImZvcm0uY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGltcG9ydCAnc3VwcG9ydHMvX3ZhcnMuc3R5bCdcblxuaW5wdXQsXG50ZXh0YXJlYVxuICAgIGJvcmRlciBub25lXG4gICAgYm94LXNoYWRvdyBub25lXG4gICAgYmFja2dyb3VuZCB1bnNldFxuICAgIHdpZHRoIDEwMCVcbiAgICAmOjpwbGFjZWhvbGRlclxuICAgICAgICBjb2xvciByZ2JhKDI1NSwyNTUsMjU1LC42KVxuICAgICAgICBmb250LXNpemUgJGJhc2Utc2l6ZVxuICAgICAgICBsaW5lLWhlaWdodCAkYmFzZS1saW5lXG5cbmlucHV0LFxudGV4dGFyZWFcbiAgICB3aWR0aCAxMDAlXG4gICAgYm9yZGVyIDFweCBkYXNoZWQgJHNsaWdodC1ncmV5XG4gICAgYm9yZGVyLXJhZGl1cyAxMHB4IFxuICAgIGZvbnQtc2l6ZSAkYmFzZS1zaXplXG4gICAgbGluZS1oZWlnaHQgJGJhc2UtbGluZVxuICAgIGNvbG9yICR3aGl0ZVxuICAgIG91dGxpbmUgbm9uZVxuICAgIHRyYW5zaXRpb24gJHRyYW5zXG5cbmlucHV0XG4gICAgaGVpZ2h0IDYwcHhcbiAgICBwYWRkaW5nIDAgMjJweCAwIDE1NXB4XG5cbiAgICArYmVsb3coMTEyMXB4KVxuICAgICAgICBwYWRkaW5nIDAgMjJweCAwIDExNXB4XG5cblxudGV4dGFyZWFcbiAgICBoZWlnaHQgMTIwcHhcbiAgICByZXNpemUgbm9uZVxuICAgIHBhZGRpbmcgMTdweCAyMnB4IDE3cHggMTU1cHhcblxuLmlucHV0XG4gICAgcG9zaXRpb24gcmVsYXRpdmVcbiAgICAmX19wbGFjZWhvbGRlclxuICAgICAgICBwb3NpdGlvbiBhYnNvbHV0ZVxuICAgICAgICB0b3AgMTdweFxuICAgICAgICBsZWZ0IDIycHhcbiAgICAgICAgbWFyZ2luIGF1dG9cbiAgICAgICAgY29sb3IgJGxpZ2h0LXdoaXRlXG4gICAgICAgIGZvbnQtc2l6ZSAkYmFzZS1zaXplXG4gICAgICAgIGxpbmUtaGVpZ2h0ICRiYXNlLWxpbmVcbiAgICAgICAgdHJhbnNpdGlvbiAkdHJhbnNcbiAgICAgICAgei1pbmRleCAwXG4gICAgICAgICYuYWN0aXZlXG4gICAgICAgICAgICBmb250LXNpemUgMTJweFxuICAgICAgICAgICAgbGluZS1oZWlnaHQgMjRweFxuICAgICAgICAgICAgdG9wIDhweFxuICAgICYtLWJsYWNrXG4gICAgICAgIGlucHV0LFxuICAgICAgICB0ZXh0YXJlYVxuICAgICAgICAgICAgY29sb3IgJGxpZ2h0ZXItYmxhY2tcbiAgICAgICAgLmlucHV0XG4gICAgICAgICAgICAmX19wbGFjZWhvbGRlclxuICAgICAgICAgICAgICAgIGNvbG9yICRtaWQtbGlnaHRlci1ibGFja1xuXG4gICAgJi0tYW5pbVxuICAgICAgICBpbnB1dFxuICAgICAgICAgICAgcGFkZGluZyAyMHB4IDIwcHggMFxuICAgICAgICAgICAgaGVpZ2h0IDcwcHhcbiAgICAgICAgICAgIC8vICY6Zm9jdXNcbiAgICAgICAgICAgIC8vICAgICArIFxuICAgICAgICAgICAgLy8gICAgICAgICAuaW5wdXRcbiAgICAgICAgICAgIC8vICAgICAgICAgICAgICZfX3BsYWNlaG9sZGVyXG4gICAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgZm9udC1zaXplIDEycHhcbiAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodCAyNHB4XG4gICAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgdG9wIDhweFxuICAgICAgICAuaW5wdXRcbiAgICAgICAgICAgICZfX3BsYWNlaG9sZGVyXG4gICAgICAgICAgICAgICAgdG9wIDIycHhcbiAgICAgICAgICAgICAgICAmLmFjdGl2ZVxuICAgICAgICAgICAgICAgICAgICB0b3AgOHB4XG5cbi5yYWRpb3NcbiAgICBnYXAgNDBweFxuXG4ucmFkaW9cbiAgICBjdXJzb3IgcG9pbnRlclxuICAgICZfX3dyYXBwZXJcbiAgICAgICAgcG9zaXRpb24gcmVsYXRpdmVcbiAgICBpbnB1dFxuICAgICAgICBwb3NpdGlvbiBhYnNvbHV0ZVxuICAgICAgICB3aWR0aCAxMDAlXG4gICAgICAgIGhlaWdodCAxMDAlXG4gICAgICAgIHRvcCAwXG4gICAgICAgIGxlZnQgMFxuICAgICAgICByaWdodCAwXG4gICAgICAgIGJvdHRvbSAwXG4gICAgICAgIG1hcmdpbiBhdXRvXG4gICAgICAgIG9wYWNpdHkgMFxuICAgICAgICB6LWluZGV4IDJcbiAgICAgICAgY3Vyc29yIHBvaW50ZXJcbiAgICAmX19pY29uXG4gICAgICAgIHBvc2l0aW9uIHJlbGF0aXZlXG4gICAgICAgIHdpZHRoIDE0cHhcbiAgICAgICAgaGVpZ2h0IDE0cHhcbiAgICAgICAgYm9yZGVyLXJhZGl1cyA1MCVcbiAgICAgICAgYm9yZGVyIDFweCBzb2xpZCAkd2hpdGVcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvciAkYmxhY2tcbiAgICAgICAgJjpiZWZvcmVcbiAgICAgICAgICAgIGNvbnRlbnQgJydcbiAgICAgICAgICAgIHBvc2l0aW9uIGFic29sdXRlXG4gICAgICAgICAgICB0b3AgMFxuICAgICAgICAgICAgcmlnaHQgMFxuICAgICAgICAgICAgYm90dG9tIDBcbiAgICAgICAgICAgIGxlZnQgMFxuICAgICAgICAgICAgbWFyZ2luIGF1dG9cbiAgICAgICAgICAgIHdpZHRoIDEwMCVcbiAgICAgICAgICAgIGhlaWdodCAxMDAlXG4gICAgICAgICAgICBib3JkZXItcmFkaXVzIDUwJVxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvciAkYmxhY2tcbiAgICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW4gY2VudGVyXG4gICAgICAgICAgICB0cmFuc2l0aW9uICR0cmFuc1xuICAgICZfX25hbWVcbiAgICAgICAgbWFyZ2luLWxlZnQgN3B4XG4gICAgJi5hY3RpdmVcbiAgICAgICAgLnJhZGlvXG4gICAgICAgICAgICAmX19pY29uXG4gICAgICAgICAgICAgICAgJjpiZWZvcmVcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvciAkd2hpdGVcblxuLmNoZWNrYm94ZXNcbiAgICBkaXNwbGF5IGZsZXhcbiAgICBhbGlnbi1pdGVtcyBjZW50ZXJcbiAgICBqdXN0aWZ5LWNvbnRlbnQgZmxleC1zdGFydFxuICAgIGdhcCA0MHB4XG5cbi5jaGVja2JveFxuICAgIHBvc2l0aW9uIHJlbGF0aXZlXG4gICAgaW5wdXRcbiAgICAgICAgcG9zaXRpb24gYWJzb2x1dGVcbiAgICAgICAgdG9wIDBcbiAgICAgICAgbGVmdCAwXG4gICAgICAgIHJpZ2h0IDBcbiAgICAgICAgYm90dG9tIDBcbiAgICAgICAgbWFyZ2luIGF1dG9cbiAgICAgICAgd2lkdGggMTAwJVxuICAgICAgICBoZWlnaHQgMTAwJVxuICAgICAgICBvcGFjaXR5IDBcbiAgICAgICAgei1pbmRleCAxXG4gICAgICAgIGN1cnNvciBwb2ludGVyXG4gICAgICAgICY6Y2hlY2tlZFxuICAgICAgICAgICAgKyBcbiAgICAgICAgICAgICAgICAuY2hlY2tib3hcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvciAkd2hpdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICYtLXdoaXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvciAkbGlnaHRlci1ibGFja1xuICAgICZfX2ljb25cbiAgICAgICAgd2lkdGggMjRweFxuICAgICAgICBoZWlnaHQgMjRweFxuICAgICAgICBib3JkZXIgMXB4IHNvbGlkICR3aGl0ZVxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yICRibGFja1xuICAgICAgICBib3JkZXItcmFkaXVzIDVweFxuICAgICAgICB0cmFuc2l0aW9uICR0cmFuc1xuICAgICAgICAmLS13aGl0ZVxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvciAkd2hpdGVcbiAgICAgICAgICAgIGJvcmRlci1jb2xvciAkbGlnaHRlci1ibGFja1xuICAgICZfX3RleHRcbiAgICAgICAgbWFyZ2luLWxlZnQgMTRweFxuXG4uZm9ybVxuICAgICYtLXB0Xzk1XG4gICAgICAgIHBhZGRpbmctdG9wIDk1cHhcbiAgICAgICAgK2JlbG93KDc2OHB4KVxuICAgICAgICAgICAgcGFkZGluZy10b3AgNjBweFxuXG4gICAgJi0tY3RhXG4gICAgICAgICtiZWxvdyg5OTBweClcbiAgICAgICAgICAgIHBhZGRpbmctdG9wIDYwcHhcbiAgICAgICAgICAgICYuZm9ybS0tcHRfOTVcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcCA5NXB4XG4gICAgICAgICAgICAmLmZvcm0tLW5hcnJvd1xuICAgICAgICAgICAgICAgIG1heC13aWR0aCA1MTBweFxuICAgICAgICAgICAgICAgIHdpZHRoIDEwMCVcblxuICAgICYtLW5hcnJvd1xuICAgICAgICBtYXgtd2lkdGggNTcwcHhcbiAgICAgICAgd2lkdGggMTAwJVxuXG4gICAgICAgICtiZWxvdyg1ODBweClcbiAgICAgICAgICAgIG1heC13aWR0aCA0NzBweFxuICAgICAgICAgICAgd2lkdGggMTAwJVxuICAgICYtcmFkaW9zXG4gICAgICAgIGdhcCAxNDBweFxuXG4gICAgICAgICtiZWxvdygxMTIwcHgpXG4gICAgICAgICAgICBnYXAgNjBweFxuXG4gICAgJl9fdG9wXG4gICAgICAgIGJhY2tncm91bmQtY29sb3IgJG1pZC1ibGFja1xuICAgICAgICBib3JkZXItcmFkaXVzIDEwcHhcbiAgICAgICAgcGFkZGluZyAxN3B4IDIycHggMTlweFxuICAgICAgICBib3JkZXIgMXB4IHNvbGlkICRtaWQtYmxhY2tcbiAgICAmX19yb3dzXG4gICAgICAgIGdhcCAxNnB4XG4gICAgJl9fcm93LFxuICAgICZfX2lucHV0XG4gICAgICAgIHdpZHRoIDEwMCVcbiAgICAmX19yb3dcbiAgICAgICAgJi0tZGVza3RvcFxuICAgICAgICAgICAgK2JlbG93KDUyMHB4KVxuICAgICAgICAgICAgICAgIGRpc3BsYXkgbm9uZVxuICAgICAgICAmLS1tb2JpbGVcbiAgICAgICAgICAgICthYm92ZSg1MjBweClcbiAgICAgICAgICAgICAgICBkaXNwbGF5IG5vbmVcbiAgICAmLWJvdHRvbVxuICAgICAgICBtYXJnaW4tdG9wIDQ1cHhcbiAgICAgICAgK2JlbG93KDQ4MHB4KVxuICAgICAgICAgICAgbWFyZ2luLXRvcCAyMHB4XG4gICAgICAgICYtLW1kX210XG4gICAgICAgICAgICBtYXJnaW4tdG9wIDM1cHhcbiAgICAgICAgJi0tc21fbXRcbiAgICAgICAgICAgIG1hcmdpbi10b3AgMjBweFxuICAgICAgICAmX19ibG9ja1xuICAgICAgICAgICAgd2lkdGggMTAwJVxuXG4gICAgICAgICtiZWxvdyg0ODBweClcbiAgICAgICAgICAgIC5mb3JtXG4gICAgICAgICAgICAgICAgJl9fcm93XG4gICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uIGNvbHVtblxuICAgICAgICAgICAgICAgICAgICBnYXAgNDBweFxuICAgICAgICAgICAgICAgICZfX2lucHV0XG4gICAgICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50IGZsZXgtc3RhcnRcbiAgICAgICAgICAgIC5idG5zXG4gICAgICAgICAgICAgICAgd2lkdGggMTAwJVxuICAgICAgICAgICAgICAgIC5idG5cbiAgICAgICAgICAgICAgICAgICAgd2lkdGggMTAwJVxuXG4gICAgJl9faW5wdXRTdWJcbiAgICAgICAgbWFyZ2luLXRvcCAxNXB4XG5cbiAgICAmLS1ibGFja1xuICAgICAgICBpbnB1dDotd2Via2l0LWF1dG9maWxsLFxuICAgICAgICBpbnB1dDotd2Via2l0LWF1dG9maWxsOmhvdmVyLCBcbiAgICAgICAgaW5wdXQ6LXdlYmtpdC1hdXRvZmlsbDpmb2N1c1xuICAgICAgICBpbnB1dDotd2Via2l0LWF1dG9maWxsLCBcbiAgICAgICAgdGV4dGFyZWE6LXdlYmtpdC1hdXRvZmlsbCxcbiAgICAgICAgdGV4dGFyZWE6LXdlYmtpdC1hdXRvZmlsbDpob3ZlclxuICAgICAgICB0ZXh0YXJlYTotd2Via2l0LWF1dG9maWxsOmZvY3VzLFxuICAgICAgICBzZWxlY3Q6LXdlYmtpdC1hdXRvZmlsbCxcbiAgICAgICAgc2VsZWN0Oi13ZWJraXQtYXV0b2ZpbGw6aG92ZXIsXG4gICAgICAgIHNlbGVjdDotd2Via2l0LWF1dG9maWxsOmZvY3VzXG4gICAgICAgICAgICAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogJGJsYWNrXG4gICAgICAgICAgICAtd2Via2l0LWJveC1zaGFkb3cgMCAwIDBweCAxMDAwcHggdHJhbnNwYXJlbnQgaW5zZXRcbiAgICAgICAgICAgIHRyYW5zaXRpb24gYmFja2dyb3VuZC1jb2xvciA1MDAwcyBlYXNlLWluLW91dCAwc1xuICAgICAgICAgICAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCAgI2ZmZiAwJSwjZmZmIDUwJSwjZmZmIDUxJSwjZmZmIDEwMCUpXG4gICAgICAgIC51cGxvYWRcbiAgICAgICAgICAgICYtZmlsZVxuICAgICAgICAgICAgICAgIGNvbG9yICRsaWdodGVyLWJsYWNrXG4gICAgICAgIC5jaGVja2JveFxuICAgICAgICAgICAgY29sb3IgJGxpZ2h0ZXItYmxhY2tcblxuICAgICYtLWxpZ2h0XG4gICAgICAgIC5mb3JtXG4gICAgICAgICAgICAmX190b3BcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yICRzbGlnaHQtYmx1ZVxuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvciAkc2xpZ2h0LWJsdWVcbiAgICAgICAgICAgICZfX3Jvd1xuICAgICAgICAgICAgICAgICYtLW1vYmlsZVxuICAgICAgICAgICAgICAgICAgICAuc2VsZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICAmLXVzZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmX190aXRsZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yICRzbGlnaHQtYmx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvciAkd2hpdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmX19zZWxlY3RcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvciB1bnNldFxuICAgICAgICAgICAgICAgICAgICAuc2VsZWN0Mi1jb250YWluZXItLWRlZmF1bHQgLnNlbGVjdDItc2VsZWN0aW9uLS1zaW5nbGUgLnNlbGVjdDItc2VsZWN0aW9uX19wbGFjZWhvbGRlclxuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3IgJHdoaXRlXG5cbiAgICAgICAgaW5wdXQ6LXdlYmtpdC1hdXRvZmlsbCxcbiAgICAgICAgaW5wdXQ6LXdlYmtpdC1hdXRvZmlsbDpob3ZlciwgXG4gICAgICAgIGlucHV0Oi13ZWJraXQtYXV0b2ZpbGw6Zm9jdXNcbiAgICAgICAgaW5wdXQ6LXdlYmtpdC1hdXRvZmlsbCwgXG4gICAgICAgIHRleHRhcmVhOi13ZWJraXQtYXV0b2ZpbGwsXG4gICAgICAgIHRleHRhcmVhOi13ZWJraXQtYXV0b2ZpbGw6aG92ZXJcbiAgICAgICAgdGV4dGFyZWE6LXdlYmtpdC1hdXRvZmlsbDpmb2N1cyxcbiAgICAgICAgc2VsZWN0Oi13ZWJraXQtYXV0b2ZpbGwsXG4gICAgICAgIHNlbGVjdDotd2Via2l0LWF1dG9maWxsOmhvdmVyLFxuICAgICAgICBzZWxlY3Q6LXdlYmtpdC1hdXRvZmlsbDpmb2N1c1xuICAgICAgICAgICAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6ICRibGFja1xuICAgICAgICAgICAgLXdlYmtpdC1ib3gtc2hhZG93IDAgMCAwcHggMTAwMHB4IHRyYW5zcGFyZW50IGluc2V0XG4gICAgICAgICAgICB0cmFuc2l0aW9uIGJhY2tncm91bmQtY29sb3IgNTAwMHMgZWFzZS1pbi1vdXQgMHNcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwgICNmZmYgMCUsI2ZmZiA1MCUsI2ZmZiA1MSUsI2ZmZiAxMDAlKVxuICAgICAgICAgICAgXG5cbiAgICAgICAgLnJhZGlvXG4gICAgICAgICAgICAmX19pY29uXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvciB0cmFuc3BhcmVudFxuICAgICAgICAgICAgICAgICY6YmVmb3JlXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3IgdHJhbnNwYXJlbnRcblxuICAgICAgICAgICAgJi5hY3RpdmVcbiAgICAgICAgICAgICAgICAucmFkaW9cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgJjpiZWZvcmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yICR3aGl0ZVxuXG4gICAgICAgIC5pbnB1dFxuICAgICAgICAgICAgJl9fcGxhY2Vob2xkZXJcbiAgICAgICAgICAgICAgICBjb2xvciByZ2JhKDIzLDI2LDI3LC41KVxuXG4gICAgICAgIC51cGxvYWRcbiAgICAgICAgICAgICYtZmlsZVxuICAgICAgICAgICAgICAgIGNvbG9yICRibGFja1xuICAgICAgICAgICAgICAgICZfX2RlbGV0ZVxuICAgICAgICAgICAgICAgICAgICBwYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlICRibGFja1xuICAgICAgICAgICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbCAkYmxhY2tcbiAgICAgICAgICAgICZfX3RpdGxlXG4gICAgICAgICAgICAgICAgY29sb3IgJGJsYWNrXG4gICAgICAgICAgICAmX190ZXh0XG4gICAgICAgICAgICAgICAgY29sb3IgcmdiYSgyMywyNiwyNywuNSlcblxuICAgICAgICAuY2hlY2tib3hcbiAgICAgICAgICAgICZfX3RleHRcbiAgICAgICAgICAgICAgICBjb2xvciAkYmxhY2tcbiAgICAgICAgICAgICAgICBwXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yICRibGFja1xuICAgICAgICAgICAgJl9faWNvblxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3IgJHdoaXRlXG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yICRibGFja1xuICAgICAgICAgICAgICAgIHBhdGhcbiAgICAgICAgICAgICAgICAgICAgZmlsbCAkd2hpdGVcbiAgICAgICAgICAgIGlucHV0XG4gICAgICAgICAgICAgICAgJjpjaGVja2VkXG4gICAgICAgICAgICAgICAgICAgICsgXG4gICAgICAgICAgICAgICAgICAgICAgICAuY2hlY2tib3hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmX19pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3IgJGJsYWNrXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYtLXdoaXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yICRsaWdodGVyLWJsYWNrXG4gICAgICAgICAgICAgICAgXG4gICAgICAgIFxuICAgICAgICBpbnB1dCxcbiAgICAgICAgdGV4dGFyZWFcbiAgICAgICAgICAgIGNvbG9yICRibGFja1xuXG4gICAgICAgIGlucHV0LFxuICAgICAgICB0ZXh0YXJlYVxuICAgICAgICAgICAgYm9yZGVyLWNvbG9yIHJnYmEoMjMsMjYsMjcsLjQpXG5cblxuICAgICAgICAudXBsb2FkXG4gICAgICAgICAgICAuYnRuXG4gICAgICAgICAgICAgICAgJi0tZ3JleVxuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yICNERkRGREZcbiAgICAgICAgICAgICAgICAgICAgY29sb3IgIzE3MUExQlxuICAgICAgICAud3BjZjcgXG4gICAgICAgICAgICBmb3JtIFxuICAgICAgICAgICAgICAgIC53cGNmNy1yZXNwb25zZS1vdXRwdXRcbiAgICAgICAgICAgICAgICAgICAgY29sb3IgJGJsYWNrXG5cbiAgICAgICAgLmJ0bnNcbiAgICAgICAgICAgIC5idG5cbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yICRibGFja1xuICAgICAgICAgICAgICAgIGNvbG9yICR3aGl0ZVxuICAgICAgICAgICAgICAgICY6aG92ZXJcbiAgICAgICAgICAgICAgICAgICAgJjpiZWZvcmVcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3IgJHNsaWdodC1ibHVlXG5cbi5idG5cbiAgICAud3BjZjctZm9ybS1jb250cm9sLXdyYXBcbiAgICAgICAgcG9zaXRpb24gYWJzb2x1dGVcbiAgICAgICAgdG9wIDBcbiAgICAgICAgcmlnaHQgMFxuICAgICAgICBib3R0b20gMFxuICAgICAgICBsZWZ0IDBcbiAgICAgICAgbWFyZ2luIGF1dG9cbiAgICAgICAgd2lkdGggMTAwJVxuICAgICAgICBoZWlnaHQgMTAwJVxuXG4udXBsb2FkXG4gICAgcG9zaXRpb24gcmVsYXRpdmVcbiAgICAud3BjZjctZm9ybS1jb250cm9sLXdyYXBcbiAgICAgICAgcG9zaXRpb24gYWJzb2x1dGVcbiAgICAgICAgdG9wIDBcbiAgICAgICAgbGVmdCAwXG4gICAgICAgIHdpZHRoIDkwJVxuICAgICAgICBoZWlnaHQgMTAwJVxuICAgICAgICB6LWluZGV4IDEwXG4gICAgICAgIHBhZGRpbmcgMFxuICAgICAgICBpbnB1dFxuICAgICAgICAgICAgcGFkZGluZyAwXG4gICAgICAgICAgICBvcGFjaXR5IDBcbiAgICAgICAgICAgIHdpZHRoIDEwMCVcbiAgICAgICAgICAgIGhlaWdodCAxMDAlXG4gICAgICAgICAgICAvL2hlaWdodCAyMHB4XG4gICAgICAgICtiZWxvdyg1ODBweClcbiAgICAgICAgICAgIHdpZHRoIDEwMCVcbiAgICAgICAgICAgIGhlaWdodCAxMDAlXG4gICAgJl9fdGl0bGVcbiAgICAgICAgZm9udC1zaXplICRoNC1zaXplLTM3NVxuICAgICAgICBsaW5lLWhlaWdodCAkaDQtbGluZS0zNzVcbiAgICAgICAgY29sb3IgJHdoaXRlXG4gICAgJl9fd3JhcHBlclxuICAgICAgICBnYXAgMzBweFxuICAgICAgICAmLS1zbVxuICAgICAgICAgICAgZ2FwIDIwcHhcbiAgICAgICAgJi5oaWRkZW5cbiAgICAgICAgICAgIGRpc3BsYXkgbm9uZVxuICAgICZfX2Jsb2NrXG4gICAgICAgICYtLXNtXG4gICAgICAgICAgICBnYXAgMTBweFxuICAgICAgICBnYXAgMTVweFxuICAgICZfX3RleHRcbiAgICAgICAgY29sb3IgJGxpZ2h0LXdoaXRlXG4gICAgJi1maWxlXG4gICAgICAgIGNvbG9yICR3aGl0ZVxuICAgICAgICBmb250LXNpemUgJHA2LXNpemVcbiAgICAgICAgbGluZS1oZWlnaHQgJHA2LWxpbmVcbiAgICAgICAgZGlzcGxheSBub25lXG4gICAgICAgIHBvc2l0aW9uIHJlbGF0aXZlXG4gICAgICAgIHotaW5kZXggMTFcbiAgICAgICAgJl9faWNvbixcbiAgICAgICAgJl9fZGVsZXRlXG4gICAgICAgICAgICB3aWR0aCAxNHB4XG4gICAgICAgICAgICBoZWlnaHQgMTRweFxuICAgICAgICAgICAgc3ZnXG4gICAgICAgICAgICAgICAgd2lkdGggMTAwJVxuICAgICAgICAgICAgICAgIGhlaWdodCAxMDAlXG4gICAgICAgICZfX2ljb25cbiAgICAgICAgICAgIG1hcmdpbi1yaWdodCA0cHhcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rIDBcbiAgICAgICAgJl9fZGVsZXRlXG4gICAgICAgICAgICBtYXJnaW4tbGVmdCA2cHhcbiAgICAgICAgICAgIGN1cnNvciBwb2ludGVyXG4gICAgICAgICAgICBwYXRoXG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbiAkdHJhbnNcbiAgICAgICAgICAgICY6aG92ZXJcbiAgICAgICAgICAgICAgICBwYXRoXG4gICAgICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGRcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZSAkYmx1ZS1tYWluXG4gICAgICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZFxuICAgICAgICAgICAgICAgICAgICAgICAgZmlsbCAkYmx1ZS1tYWluXG4gICAgICAgICYuYWN0aXZlXG4gICAgICAgICAgICBkaXNwbGF5IGZsZXhcblxuICAgICYtLWJsYWNrXG4gICAgICAgIC51cGxvYWRcbiAgICAgICAgICAgICZfX3RpdGxlXG4gICAgICAgICAgICAgICAgY29sb3IgJGxpZ2h0ZXItYmxhY2tcbiAgICAgICAgICAgICZfX3RleHRcbiAgICAgICAgICAgICAgICBjb2xvciAkbWlkLWxpZ2h0ZXItYmxhY2tcblxuICAgICtiZWxvdyg1ODBweClcbiAgICAgICAgJl9fd3JhcHBlcixcbiAgICAgICAgJl9fYmxvY2tcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uIGNvbHVtblxuICAgICAgICAgICAgYWxpZ24taXRlbXMgY2VudGVyXG4gICAgICAgICZfX2Jsb2NrXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGRcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbiBjb2x1bW4tcmV2ZXJzZVxuICAgICAgICAmX193cmFwcGVyXG4gICAgICAgICAgICBwYWRkaW5nIDIwcHhcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXMgMTBweFxuICAgICAgICAgICAgYm9yZGVyIDFweCBkYXNoZWQgJHNsaWdodC1ncmV5XG4gICAgICAgICAgICBnYXAgNHB4XG5cbi5zZWxlY3RcbiAgICAmLXVzZXJcbiAgICAgICAgJl9fd3JhcHBlclxuICAgICAgICAgICAgZ2FwIDEwcHhcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX3NlbGVjdFxuICAgICAgICAgICAgYm9yZGVyLXJhZGl1cyAxMHB4XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yICRzbGlnaHRseS13aGl0ZVxuICAgICAgICAmX190aXRsZVxuICAgICAgICAgICAgcGFkZGluZyAxNnB4IDIycHhcbiAgICAgICAgICAgIGNvbG9yICRsaWdodC13aGl0ZVxuICAgICAgICAgICAgZm9udC1zaXplICRiYXNlLXNpemVcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0ICRiYXNlLWxpbmVcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rIDBcbiAgICAgICAgJl9fc2VsZWN0XG4gICAgICAgICAgICBmbGV4LWdyb3cgMVxuICAgICAgICAgICAgd2lkdGggMTAwJVxuICAgICAgICAgICAgbWF4LXdpZHRoIDEwMCVcbiAgICAgICAgICAgIC53cGNmNy1mb3JtLWNvbnRyb2wtd3JhcCxcbiAgICAgICAgICAgIC53cGNmNy1mb3JtLWNvbnRyb2xcbiAgICAgICAgICAgICAgICB3aWR0aCAxMDAlICFpbXBvcnRhbnRcblxuLmZpbHRlcnNcbiAgICAuZm9ybVxuICAgICAgICAmX19yb3dzXG4gICAgICAgICAgICBkaXNwbGF5IGZsZXhcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zIGNlbnRlclxuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb24gY29sdW1uXG4gICAgICAgICAgICBnYXAgNDBweFxuICAgICAgICAmX19yb3dcbiAgICAgICAgICAgIGRpc3BsYXkgZmxleFxuICAgICAgICAgICAgYWxpZ24taXRlbXMgY2VudGVyXG4gICAgICAgICAgICBnYXAgMzBweFxuICAgICAgICAgICAgK2JlbG93KDc2OHB4KVxuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uIGNvbHVtblxuICAgIC5pbnB1dFxuICAgICAgICAmX19wbGFjZWhvbGRlclxuICAgICAgICAgICAgei1pbmRleCAtMVxuXG5cbi5jYXB0Y2hhXG4gICAgd2lkdGggMTAwJVxuICAgIG1hcmdpbi1ib3R0b20gMjRweCIsImlucHV0LFxudGV4dGFyZWEge1xuICBib3JkZXI6IG5vbmU7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGJhY2tncm91bmQ6IHVuc2V0O1xuICB3aWR0aDogMTAwJTtcbn1cbmlucHV0OjpwbGFjZWhvbGRlcixcbnRleHRhcmVhOjpwbGFjZWhvbGRlciB7XG4gIGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuNik7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG59XG5pbnB1dCxcbnRleHRhcmVhIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlcjogMXB4IGRhc2hlZCByZ2JhKDE3OCwxOTIsMTkxLDAuNCk7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gIGNvbG9yOiAjZmZmO1xuICBvdXRsaW5lOiBub25lO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLW91dDtcbn1cbmlucHV0IHtcbiAgaGVpZ2h0OiA2MHB4O1xuICBwYWRkaW5nOiAwIDIycHggMCAxNTVweDtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTEyMXB4KSB7XG4gIGlucHV0IHtcbiAgICBwYWRkaW5nOiAwIDIycHggMCAxMTVweDtcbiAgfVxufVxudGV4dGFyZWEge1xuICBoZWlnaHQ6IDEyMHB4O1xuICByZXNpemU6IG5vbmU7XG4gIHBhZGRpbmc6IDE3cHggMjJweCAxN3B4IDE1NXB4O1xufVxuLmlucHV0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLmlucHV0X19wbGFjZWhvbGRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxN3B4O1xuICBsZWZ0OiAyMnB4O1xuICBtYXJnaW46IGF1dG87XG4gIGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuNyk7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2Utb3V0O1xuICB6LWluZGV4OiAwO1xufVxuLmlucHV0X19wbGFjZWhvbGRlci5hY3RpdmUge1xuICBmb250LXNpemU6IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICB0b3A6IDhweDtcbn1cbi5pbnB1dC0tYmxhY2sgaW5wdXQsXG4uaW5wdXQtLWJsYWNrIHRleHRhcmVhIHtcbiAgY29sb3I6ICMxNzFhMWI7XG59XG4uaW5wdXQtLWJsYWNrIC5pbnB1dF9fcGxhY2Vob2xkZXIge1xuICBjb2xvcjogcmdiYSgxNiwxOCwxOSwwLjUpO1xufVxuLmlucHV0LS1hbmltIGlucHV0IHtcbiAgcGFkZGluZzogMjBweCAyMHB4IDA7XG4gIGhlaWdodDogNzBweDtcbn1cbi5pbnB1dC0tYW5pbSAuaW5wdXRfX3BsYWNlaG9sZGVyIHtcbiAgdG9wOiAyMnB4O1xufVxuLmlucHV0LS1hbmltIC5pbnB1dF9fcGxhY2Vob2xkZXIuYWN0aXZlIHtcbiAgdG9wOiA4cHg7XG59XG4ucmFkaW9zIHtcbiAgZ2FwOiA0MHB4O1xufVxuLnJhZGlvIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLnJhZGlvX193cmFwcGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLnJhZGlvIGlucHV0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIG1hcmdpbjogYXV0bztcbiAgb3BhY2l0eTogMDtcbiAgei1pbmRleDogMjtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLnJhZGlvX19pY29uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTRweDtcbiAgaGVpZ2h0OiAxNHB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwZjExMTI7XG59XG4ucmFkaW9fX2ljb246YmVmb3JlIHtcbiAgY29udGVudDogJyc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICBtYXJnaW46IGF1dG87XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzBmMTExMjtcbiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLW91dDtcbn1cbi5yYWRpb19fbmFtZSB7XG4gIG1hcmdpbi1sZWZ0OiA3cHg7XG59XG4ucmFkaW8uYWN0aXZlIC5yYWRpb19faWNvbjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuLmNoZWNrYm94ZXMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIGdhcDogNDBweDtcbn1cbi5jaGVja2JveCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5jaGVja2JveCBpbnB1dCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG87XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9wYWNpdHk6IDA7XG4gIHotaW5kZXg6IDE7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5jaGVja2JveCBpbnB1dDpjaGVja2VkICsgLmNoZWNrYm94X19pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbn1cbi5jaGVja2JveCBpbnB1dDpjaGVja2VkICsgLmNoZWNrYm94X19pY29uLS13aGl0ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxNzFhMWI7XG59XG4uY2hlY2tib3hfX2ljb24ge1xuICB3aWR0aDogMjRweDtcbiAgaGVpZ2h0OiAyNHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGYxMTEyO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2Utb3V0O1xufVxuLmNoZWNrYm94X19pY29uLS13aGl0ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJvcmRlci1jb2xvcjogIzE3MWExYjtcbn1cbi5jaGVja2JveF9fdGV4dCB7XG4gIG1hcmdpbi1sZWZ0OiAxNHB4O1xufVxuLmZvcm0tLXB0Xzk1IHtcbiAgcGFkZGluZy10b3A6IDk1cHg7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5mb3JtLS1wdF85NSB7XG4gICAgcGFkZGluZy10b3A6IDYwcHg7XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTkwcHgpIHtcbiAgLmZvcm0tLWN0YSB7XG4gICAgcGFkZGluZy10b3A6IDYwcHg7XG4gIH1cbiAgLmZvcm0tLWN0YS5mb3JtLS1wdF85NSB7XG4gICAgcGFkZGluZy10b3A6IDk1cHg7XG4gIH1cbiAgLmZvcm0tLWN0YS5mb3JtLS1uYXJyb3cge1xuICAgIG1heC13aWR0aDogNTEwcHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cbi5mb3JtLS1uYXJyb3cge1xuICBtYXgtd2lkdGg6IDU3MHB4O1xuICB3aWR0aDogMTAwJTtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTgwcHgpIHtcbiAgLmZvcm0tLW5hcnJvdyB7XG4gICAgbWF4LXdpZHRoOiA0NzBweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuLmZvcm0tcmFkaW9zIHtcbiAgZ2FwOiAxNDBweDtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTEyMHB4KSB7XG4gIC5mb3JtLXJhZGlvcyB7XG4gICAgZ2FwOiA2MHB4O1xuICB9XG59XG4uZm9ybV9fdG9wIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzEzMTUxNjtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgcGFkZGluZzogMTdweCAyMnB4IDE5cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMxMzE1MTY7XG59XG4uZm9ybV9fcm93cyB7XG4gIGdhcDogMTZweDtcbn1cbi5mb3JtX19yb3csXG4uZm9ybV9faW5wdXQge1xuICB3aWR0aDogMTAwJTtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTIwcHgpIHtcbiAgLmZvcm1fX3Jvdy0tZGVza3RvcCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA1MjBweCkge1xuICAuZm9ybV9fcm93LS1tb2JpbGUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbi5mb3JtLWJvdHRvbSB7XG4gIG1hcmdpbi10b3A6IDQ1cHg7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gIC5mb3JtLWJvdHRvbSB7XG4gICAgbWFyZ2luLXRvcDogMjBweDtcbiAgfVxufVxuLmZvcm0tYm90dG9tLS1tZF9tdCB7XG4gIG1hcmdpbi10b3A6IDM1cHg7XG59XG4uZm9ybS1ib3R0b20tLXNtX210IHtcbiAgbWFyZ2luLXRvcDogMjBweDtcbn1cbi5mb3JtLWJvdHRvbV9fYmxvY2sge1xuICB3aWR0aDogMTAwJTtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLmZvcm0tYm90dG9tIC5mb3JtX19yb3cge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiA0MHB4O1xuICB9XG4gIC5mb3JtLWJvdHRvbSAuZm9ybV9faW5wdXQge1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgfVxuICAuZm9ybS1ib3R0b20gLmJ0bnMge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gIC5mb3JtLWJvdHRvbSAuYnRucyAuYnRuIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuLmZvcm1fX2lucHV0U3ViIHtcbiAgbWFyZ2luLXRvcDogMTVweDtcbn1cbi5mb3JtLS1ibGFjayBpbnB1dDotd2Via2l0LWF1dG9maWxsLFxuLmZvcm0tLWJsYWNrIGlucHV0Oi13ZWJraXQtYXV0b2ZpbGw6aG92ZXIsXG4uZm9ybS0tYmxhY2sgaW5wdXQ6LXdlYmtpdC1hdXRvZmlsbDpmb2N1cyxcbi5mb3JtLS1ibGFjayB0ZXh0YXJlYTotd2Via2l0LWF1dG9maWxsLFxuLmZvcm0tLWJsYWNrIHRleHRhcmVhOi13ZWJraXQtYXV0b2ZpbGw6aG92ZXIsXG4uZm9ybS0tYmxhY2sgdGV4dGFyZWE6LXdlYmtpdC1hdXRvZmlsbDpmb2N1cyxcbi5mb3JtLS1ibGFjayBzZWxlY3Q6LXdlYmtpdC1hdXRvZmlsbCxcbi5mb3JtLS1ibGFjayBzZWxlY3Q6LXdlYmtpdC1hdXRvZmlsbDpob3Zlcixcbi5mb3JtLS1ibGFjayBzZWxlY3Q6LXdlYmtpdC1hdXRvZmlsbDpmb2N1cyB7XG4gIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiAjMGYxMTEyO1xuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMCAwcHggMTAwMHB4IHRyYW5zcGFyZW50IGluc2V0O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDUwMDBzIGVhc2UtaW4tb3V0IDBzO1xuICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsICNmZmYgMCUsICNmZmYgNTAlLCAjZmZmIDUxJSwgI2ZmZiAxMDAlKTtcbn1cbi5mb3JtLS1ibGFjayAudXBsb2FkLWZpbGUge1xuICBjb2xvcjogIzE3MWExYjtcbn1cbi5mb3JtLS1ibGFjayAuY2hlY2tib3gge1xuICBjb2xvcjogIzE3MWExYjtcbn1cbi5mb3JtLS1saWdodCAuZm9ybV9fdG9wIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzEwM2NmZDtcbiAgYm9yZGVyLWNvbG9yOiAjMTAzY2ZkO1xufVxuLmZvcm0tLWxpZ2h0IC5mb3JtX19yb3ctLW1vYmlsZSAuc2VsZWN0LXVzZXJfX3RpdGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzEwM2NmZDtcbiAgY29sb3I6ICNmZmY7XG59XG4uZm9ybS0tbGlnaHQgLmZvcm1fX3Jvdy0tbW9iaWxlIC5zZWxlY3QtdXNlcl9fc2VsZWN0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG59XG4uZm9ybS0tbGlnaHQgLmZvcm1fX3Jvdy0tbW9iaWxlIC5zZWxlY3QyLWNvbnRhaW5lci0tZGVmYXVsdCAuc2VsZWN0Mi1zZWxlY3Rpb24tLXNpbmdsZSAuc2VsZWN0Mi1zZWxlY3Rpb25fX3BsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICNmZmY7XG59XG4uZm9ybS0tbGlnaHQgaW5wdXQ6LXdlYmtpdC1hdXRvZmlsbCxcbi5mb3JtLS1saWdodCBpbnB1dDotd2Via2l0LWF1dG9maWxsOmhvdmVyLFxuLmZvcm0tLWxpZ2h0IGlucHV0Oi13ZWJraXQtYXV0b2ZpbGw6Zm9jdXMsXG4uZm9ybS0tbGlnaHQgdGV4dGFyZWE6LXdlYmtpdC1hdXRvZmlsbCxcbi5mb3JtLS1saWdodCB0ZXh0YXJlYTotd2Via2l0LWF1dG9maWxsOmhvdmVyLFxuLmZvcm0tLWxpZ2h0IHRleHRhcmVhOi13ZWJraXQtYXV0b2ZpbGw6Zm9jdXMsXG4uZm9ybS0tbGlnaHQgc2VsZWN0Oi13ZWJraXQtYXV0b2ZpbGwsXG4uZm9ybS0tbGlnaHQgc2VsZWN0Oi13ZWJraXQtYXV0b2ZpbGw6aG92ZXIsXG4uZm9ybS0tbGlnaHQgc2VsZWN0Oi13ZWJraXQtYXV0b2ZpbGw6Zm9jdXMge1xuICAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogIzBmMTExMjtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDAgMHB4IDEwMDBweCB0cmFuc3BhcmVudCBpbnNldDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciA1MDAwcyBlYXNlLWluLW91dCAwcztcbiAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCAjZmZmIDAlLCAjZmZmIDUwJSwgI2ZmZiA1MSUsICNmZmYgMTAwJSk7XG59XG4uZm9ybS0tbGlnaHQgLnJhZGlvX19pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4uZm9ybS0tbGlnaHQgLnJhZGlvX19pY29uOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLmZvcm0tLWxpZ2h0IC5yYWRpby5hY3RpdmUgLnJhZGlvX19pY29uOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG4uZm9ybS0tbGlnaHQgLmlucHV0X19wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiByZ2JhKDIzLDI2LDI3LDAuNSk7XG59XG4uZm9ybS0tbGlnaHQgLnVwbG9hZC1maWxlIHtcbiAgY29sb3I6ICMwZjExMTI7XG59XG4uZm9ybS0tbGlnaHQgLnVwbG9hZC1maWxlX19kZWxldGUgcGF0aDpmaXJzdC1jaGlsZCB7XG4gIHN0cm9rZTogIzBmMTExMjtcbn1cbi5mb3JtLS1saWdodCAudXBsb2FkLWZpbGVfX2RlbGV0ZSBwYXRoOmxhc3QtY2hpbGQge1xuICBmaWxsOiAjMGYxMTEyO1xufVxuLmZvcm0tLWxpZ2h0IC51cGxvYWRfX3RpdGxlIHtcbiAgY29sb3I6ICMwZjExMTI7XG59XG4uZm9ybS0tbGlnaHQgLnVwbG9hZF9fdGV4dCB7XG4gIGNvbG9yOiByZ2JhKDIzLDI2LDI3LDAuNSk7XG59XG4uZm9ybS0tbGlnaHQgLmNoZWNrYm94X190ZXh0IHtcbiAgY29sb3I6ICMwZjExMTI7XG59XG4uZm9ybS0tbGlnaHQgLmNoZWNrYm94X190ZXh0IHAge1xuICBjb2xvcjogIzBmMTExMjtcbn1cbi5mb3JtLS1saWdodCAuY2hlY2tib3hfX2ljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3JkZXItY29sb3I6ICMwZjExMTI7XG59XG4uZm9ybS0tbGlnaHQgLmNoZWNrYm94X19pY29uIHBhdGgge1xuICBmaWxsOiAjZmZmO1xufVxuLmZvcm0tLWxpZ2h0IC5jaGVja2JveCBpbnB1dDpjaGVja2VkICsgLmNoZWNrYm94X19pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzBmMTExMjtcbn1cbi5mb3JtLS1saWdodCAuY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZCArIC5jaGVja2JveF9faWNvbi0td2hpdGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTcxYTFiO1xufVxuLmZvcm0tLWxpZ2h0IGlucHV0LFxuLmZvcm0tLWxpZ2h0IHRleHRhcmVhIHtcbiAgY29sb3I6ICMwZjExMTI7XG59XG4uZm9ybS0tbGlnaHQgaW5wdXQsXG4uZm9ybS0tbGlnaHQgdGV4dGFyZWEge1xuICBib3JkZXItY29sb3I6IHJnYmEoMjMsMjYsMjcsMC40KTtcbn1cbi5mb3JtLS1saWdodCAudXBsb2FkIC5idG4tLWdyZXkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGZkZmRmO1xuICBjb2xvcjogIzE3MWExYjtcbn1cbi5mb3JtLS1saWdodCAud3BjZjcgZm9ybSAud3BjZjctcmVzcG9uc2Utb3V0cHV0IHtcbiAgY29sb3I6ICMwZjExMTI7XG59XG4uZm9ybS0tbGlnaHQgLmJ0bnMgLmJ0biB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwZjExMTI7XG4gIGNvbG9yOiAjZmZmO1xufVxuLmZvcm0tLWxpZ2h0IC5idG5zIC5idG46aG92ZXI6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzEwM2NmZDtcbn1cbi5idG4gLndwY2Y3LWZvcm0tY29udHJvbC13cmFwIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIG1hcmdpbjogYXV0bztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn1cbi51cGxvYWQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4udXBsb2FkIC53cGNmNy1mb3JtLWNvbnRyb2wtd3JhcCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogOTAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHotaW5kZXg6IDEwO1xuICBwYWRkaW5nOiAwO1xufVxuLnVwbG9hZCAud3BjZjctZm9ybS1jb250cm9sLXdyYXAgaW5wdXQge1xuICBwYWRkaW5nOiAwO1xuICBvcGFjaXR5OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1ODBweCkge1xuICAudXBsb2FkIC53cGNmNy1mb3JtLWNvbnRyb2wtd3JhcCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICB9XG59XG4udXBsb2FkX190aXRsZSB7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgbGluZS1oZWlnaHQ6IDI1cHg7XG4gIGNvbG9yOiAjZmZmO1xufVxuLnVwbG9hZF9fd3JhcHBlciB7XG4gIGdhcDogMzBweDtcbn1cbi51cGxvYWRfX3dyYXBwZXItLXNtIHtcbiAgZ2FwOiAyMHB4O1xufVxuLnVwbG9hZF9fd3JhcHBlci5oaWRkZW4ge1xuICBkaXNwbGF5OiBub25lO1xufVxuLnVwbG9hZF9fYmxvY2sge1xuICBnYXA6IDE1cHg7XG59XG4udXBsb2FkX19ibG9jay0tc20ge1xuICBnYXA6IDEwcHg7XG59XG4udXBsb2FkX190ZXh0IHtcbiAgY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC43KTtcbn1cbi51cGxvYWQtZmlsZSB7XG4gIGNvbG9yOiAjZmZmO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGxpbmUtaGVpZ2h0OiAyMXB4O1xuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDExO1xufVxuLnVwbG9hZC1maWxlX19pY29uLFxuLnVwbG9hZC1maWxlX19kZWxldGUge1xuICB3aWR0aDogMTRweDtcbiAgaGVpZ2h0OiAxNHB4O1xufVxuLnVwbG9hZC1maWxlX19pY29uIHN2Zyxcbi51cGxvYWQtZmlsZV9fZGVsZXRlIHN2ZyB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG4udXBsb2FkLWZpbGVfX2ljb24ge1xuICBtYXJnaW4tcmlnaHQ6IDRweDtcbiAgZmxleC1zaHJpbms6IDA7XG59XG4udXBsb2FkLWZpbGVfX2RlbGV0ZSB7XG4gIG1hcmdpbi1sZWZ0OiA2cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi51cGxvYWQtZmlsZV9fZGVsZXRlIHBhdGgge1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLW91dDtcbn1cbi51cGxvYWQtZmlsZV9fZGVsZXRlOmhvdmVyIHBhdGg6Zmlyc3QtY2hpbGQge1xuICBzdHJva2U6ICMxNzAxOGE7XG59XG4udXBsb2FkLWZpbGVfX2RlbGV0ZTpob3ZlciBwYXRoOmxhc3QtY2hpbGQge1xuICBmaWxsOiAjMTcwMThhO1xufVxuLnVwbG9hZC1maWxlLmFjdGl2ZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG4udXBsb2FkLS1ibGFjayAudXBsb2FkX190aXRsZSB7XG4gIGNvbG9yOiAjMTcxYTFiO1xufVxuLnVwbG9hZC0tYmxhY2sgLnVwbG9hZF9fdGV4dCB7XG4gIGNvbG9yOiByZ2JhKDE2LDE4LDE5LDAuNSk7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU4MHB4KSB7XG4gIC51cGxvYWRfX3dyYXBwZXIsXG4gIC51cGxvYWRfX2Jsb2NrIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIH1cbiAgLnVwbG9hZF9fYmxvY2s6bGFzdC1jaGlsZCB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xuICB9XG4gIC51cGxvYWRfX3dyYXBwZXIge1xuICAgIHBhZGRpbmc6IDIwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBib3JkZXI6IDFweCBkYXNoZWQgcmdiYSgxNzgsMTkyLDE5MSwwLjQpO1xuICAgIGdhcDogNHB4O1xuICB9XG59XG4uc2VsZWN0LXVzZXJfX3dyYXBwZXIge1xuICBnYXA6IDEwcHg7XG59XG4uc2VsZWN0LXVzZXJfX3RpdGxlLFxuLnNlbGVjdC11c2VyX19zZWxlY3Qge1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIxNywyMTcsMjE3LDAuMDIpO1xufVxuLnNlbGVjdC11c2VyX190aXRsZSB7XG4gIHBhZGRpbmc6IDE2cHggMjJweDtcbiAgY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC43KTtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBsaW5lLWhlaWdodDogMjRweDtcbiAgZmxleC1zaHJpbms6IDA7XG59XG4uc2VsZWN0LXVzZXJfX3NlbGVjdCB7XG4gIGZsZXgtZ3JvdzogMTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTtcbn1cbi5zZWxlY3QtdXNlcl9fc2VsZWN0IC53cGNmNy1mb3JtLWNvbnRyb2wtd3JhcCxcbi5zZWxlY3QtdXNlcl9fc2VsZWN0IC53cGNmNy1mb3JtLWNvbnRyb2wge1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xufVxuLmZpbHRlcnMgLmZvcm1fX3Jvd3Mge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDQwcHg7XG59XG4uZmlsdGVycyAuZm9ybV9fcm93IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAzMHB4O1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAuZmlsdGVycyAuZm9ybV9fcm93IHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB9XG59XG4uZmlsdGVycyAuaW5wdXRfX3BsYWNlaG9sZGVyIHtcbiAgei1pbmRleDogLTE7XG59XG4uY2FwdGNoYSB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAyNHB4O1xufVxuIiwiYmFzZS1mb250LXNpemUgPz0gMTZweFxucmFzdGVyaXNlLW1lZGlhLXF1ZXJpZXMgPz0gZmFsc2VcblxucnVwdHVyZSA9IHtcbiAgcmFzdGVyaXNlLW1lZGlhLXF1ZXJpZXM6IHJhc3RlcmlzZS1tZWRpYS1xdWVyaWVzXG4gIG1vYmlsZS1jdXRvZmY6IDQwMHB4XG4gIGRlc2t0b3AtY3V0b2ZmOiAxMDUwcHhcbiAgaGQtY3V0b2ZmOiAxODAwcHhcbiAgZW5hYmxlLWVtLWJyZWFrcG9pbnRzOiBmYWxzZVxuICBiYXNlLWZvbnQtc2l6ZTogYmFzZS1mb250LXNpemVcbiAgYW50aS1vdmVybGFwOiBmYWxzZVxuICBkZW5zaXR5LXF1ZXJpZXM6ICdkcHB4JyAnd2Via2l0JyAnbW96JyAnZHBpJ1xuICByZXRpbmEtZGVuc2l0eTogMS41XG4gIHVzZS1kZXZpY2Utd2lkdGg6IGZhbHNlXG59XG5ydXB0dXJlLnNjYWxlID0gMCAocnVwdHVyZS5tb2JpbGUtY3V0b2ZmKSA2MDBweCA4MDBweCAocnVwdHVyZS5kZXNrdG9wLWN1dG9mZikgKHJ1cHR1cmUuaGQtY3V0b2ZmKVxucnVwdHVyZS5zY2FsZS1uYW1lcyA9ICd4cycgJ3MnICdtJyAnbCcgJ3hsJyAnaGQnXG5cbi1pcy1zdHJpbmcodmFsKVxuICBpZiB0eXBlb2YodmFsKSBpcyBub3QgJ3VuaXQnXG4gICAgaWYgdmFsIGlzIGEgJ3N0cmluZycgb3IgdmFsIGlzIGEgJ2lkZW50J1xuICAgICAgdHJ1ZVxuICAgIGVsc2VcbiAgICAgIGZhbHNlXG4gIGVsc2VcbiAgICBmYWxzZVxuXG4tZ2V0LXNjYWxlLW51bWJlcihzY2FsZS1uYW1lKVxuICBmb3IgbGlzdC1pdGVtLCBpIGluIHJ1cHR1cmUuc2NhbGUtbmFtZXNcbiAgICBpZiBsaXN0LWl0ZW0gaXMgc2NhbGUtbmFtZVxuICAgICAgcmV0dXJuIGkgKyAxXG4gIHJldHVybiBmYWxzZVxuXG4tY29udmVydC10byh0by11bml0LCB2YWx1ZSwgY29udGV4dCA9IHJ1cHR1cmUuYmFzZS1mb250LXNpemUpXG4gIGZyb20tdW5pdCA9IHVuaXQodmFsdWUpXG4gIHJldHVybiB2YWx1ZSBpZiB0by11bml0IGlzIGZyb20tdW5pdFxuICBpZiB0by11bml0IGluICgnZW0nICdyZW0nKVxuICAgIHJldHVybiB2YWx1ZSBpZiBmcm9tLXVuaXQgaW4gKCdlbScgJ3JlbScpXG4gICAgcmV0dXJuIHVuaXQoKHZhbHVlIC8gY29udGV4dCksIHRvLXVuaXQpXG4gIGlmIHRvLXVuaXQgaXMgJ3B4J1xuICAgIHJldHVybiB1bml0KCh2YWx1ZSAqIGNvbnRleHQpLCAncHgnKVxuXG4tb24tc2NhbGUobilcbiAgcmV0dXJuIHVuaXQobikgaXMgJydcblxuLWxhcmdlci10aGFuLXNjYWxlKG4pXG4gIHJldHVybiAobiA+IChsZW5ndGgocnVwdHVyZS5zY2FsZSkgLSAxKSkgYW5kIC1vbi1zY2FsZShuKVxuXG4taXMtemVybyhuKVxuICByZXR1cm4gbiBpcyAwXG5cbi1vdmVybGFwLXNoaWZ0KGFudGktb3ZlcmxhcCwgbilcbiAgc2hpZnQtdW5pdCA9IHVuaXQobilcbiAgYW50aS1vdmVybGFwID0gMHB4IHVubGVzcyBhbnRpLW92ZXJsYXBcbiAgYW50aS1vdmVybGFwID0gMXB4IGlmIGFudGktb3ZlcmxhcCBpcyB0cnVlXG4gIGlmIGxlbmd0aChhbnRpLW92ZXJsYXApIGlzIDFcbiAgICByZXR1cm4gLWNvbnZlcnQtdG8oc2hpZnQtdW5pdCwgYW50aS1vdmVybGFwKVxuICBmb3IgdmFsIGluIGFudGktb3ZlcmxhcFxuICAgIHJldHVybiB2YWwgaWYgdW5pdCh2YWwpIGlzIHNoaWZ0LXVuaXRcblxuLWFkanVzdC1vdmVybGFwKGFudGktb3ZlcmxhcCwgbiwgc2lkZSA9ICdtaW4nKVxuICAtc2hpZnQgPSAtb3ZlcmxhcC1zaGlmdChhbnRpLW92ZXJsYXAsIG4pXG4gIGlmIChzaWRlIGlzICdtaW4nIGFuZCAtc2hpZnQgPiAwKSBvciAoc2lkZSBpcyAnbWF4JyBhbmQgLXNoaWZ0IDwgMClcbiAgICBuID0gbiArIC1zaGlmdFxuICByZXR1cm4gblxuXG4taXMtcG9zaXRpdmUobilcbiAgcmV0dXJuIG4gPj0gMFxuXG4tZGVuc2l0eS1xdWVyaWVzKGRlbnNpdHkpXG4gIGlmIHR5cGVvZihkZW5zaXR5KSBpcyBub3QgJ3VuaXQnXG4gICAgaWYgbm90IC1pcy1zdHJpbmcoZGVuc2l0eSlcbiAgICAgIGRlbnNpdHkgPSAnJXMnICUgZGVuc2l0eVxuICBkZW5zaXR5ID0gcnVwdHVyZS5yZXRpbmEtZGVuc2l0eSBpZiBkZW5zaXR5IGlzICdyZXRpbmEnXG4gIHF1ZXJpZXMgPSAoKVxuICBmb3IgcXVlcnkgaW4gcnVwdHVyZS5kZW5zaXR5LXF1ZXJpZXNcbiAgICBpZiBxdWVyeSBpcyAnd2Via2l0J1xuICAgICAgcHVzaChxdWVyaWVzLCAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogJXMpJyAlIChkZW5zaXR5KSlcbiAgICBlbHNlIGlmIHF1ZXJ5IGlzICdtb3onXG4gICAgICBwdXNoKHF1ZXJpZXMsICcobWluLS1tb3otZGV2aWNlLXBpeGVsLXJhdGlvOiAlcyknICUgKGRlbnNpdHkpKVxuICAgIGVsc2UgaWYgcXVlcnkgaXMgJ28nXG4gICAgICBwdXNoKHF1ZXJpZXMsICcoLW8tbWluLWRldmljZS1waXhlbC1yYXRpbzogJXMvMSknICUgKGRlbnNpdHkpKVxuICAgIGVsc2UgaWYgcXVlcnkgaXMgJ3JhdGlvJ1xuICAgICAgcHVzaChxdWVyaWVzLCAnKG1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86ICVzKScgJSAoZGVuc2l0eSkpXG4gICAgZWxzZSBpZiBxdWVyeSBpcyAnZHBpJ1xuICAgICAgaWYgLWlzLXN0cmluZyhkZW5zaXR5KVxuICAgICAgICBkZW5zaXR5PWNvbnZlcnQoZGVuc2l0eSlcbiAgICAgIHB1c2gocXVlcmllcywgJyhtaW4tcmVzb2x1dGlvbjogJXNkcGkpJyAlIChyb3VuZChkZW5zaXR5ICogOTYsIDEpKSlcbiAgICBlbHNlIGlmIHF1ZXJ5IGlzICdkcHB4J1xuICAgICAgcHVzaChxdWVyaWVzLCAnKG1pbi1yZXNvbHV0aW9uOiAlc2RwcHgpJyAlIChkZW5zaXR5KSlcbiAgcmV0dXJuIHF1ZXJpZXNcblxuY3JlYXRlLWZhbGxiYWNrLWNsYXNzKHNlbGVjdGVkLCBjbGFzcylcbiAgL3snJyArIGNsYXNzICsgJyAnICsgc2VsZWN0ZWR9XG4gICAge2Jsb2NrfVxuXG4vLyArYmV0d2VlbihtaW4sIG1heClcbi8vIHVzYWdlIChzY2FsZSBjYW4gYmUgbWl4ZWQgd2l0aCBjdXN0b20gdmFsdWVzKTpcbi8vICAgLSArYmV0d2VlbigxLCAzKSBzY2FsZTpzY2FsZVxuLy8gICAtICtiZXR3ZWVuKDAsIDMpIDAgd2lkdGg6c2NhbGVcbi8vICAgLSArYmV0d2VlbigyMDBweCwgNTAwcHgpIGN1c3RvbTpjdXN0b21cbi8vICAgLSArYmV0d2VlbigwLCAzMDBweCkgMCB3aWR0aDpjdXN0b21cbi8vICAgLSArYmV0d2VlbigxLCAzMDBweCkgc2NhbGU6Y3VzdG9tXG4vLyAgIC0gK2JldHdlZW4oMjAwcHgsIDQpIGN1c3RvbTpzY2FsZVxuXG5iZXR3ZWVuKG1pbiwgbWF4LCBhbnRpLW92ZXJsYXAgPSBydXB0dXJlLmFudGktb3ZlcmxhcCwgZGVuc2l0eSA9IG51bGwsIG9yaWVudGF0aW9uID0gbnVsbCwgdXNlLWRldmljZS13aWR0aCA9IHJ1cHR1cmUudXNlLWRldmljZS13aWR0aCwgZmFsbGJhY2stY2xhc3MgPSBudWxsKVxuICBzZWxlY3RlZCA9IHNlbGVjdG9yKClcblxuICBpZiAtaXMtc3RyaW5nKG9yaWVudGF0aW9uKVxuICAgIG9yaWVudGF0aW9uID0gY29udmVydChvcmllbnRhdGlvbilcbiAgaWYgLWlzLXN0cmluZyhkZW5zaXR5KVxuICAgIGRlbnNpdHkgPSBjb252ZXJ0KGRlbnNpdHkpXG4gIGlmIC1pcy1zdHJpbmcobWluKVxuICAgIG1pbiA9IC1nZXQtc2NhbGUtbnVtYmVyKG1pbilcbiAgaWYgLWlzLXN0cmluZyhtYXgpXG4gICAgbWF4ID0gLWdldC1zY2FsZS1udW1iZXIobWF4KVxuXG4gIC1taW4gPSBydXB0dXJlLnNjYWxlW21pbiAtIDFdIHVubGVzcyAtaXMtemVybyhtaW4pIG9yIChub3QgLW9uLXNjYWxlKG1pbikpXG4gIC1tYXggPSBydXB0dXJlLnNjYWxlW21heF0gdW5sZXNzIG5vdCAtb24tc2NhbGUobWF4KVxuICAtbWluID89IG1pblxuICAtbWF4ID89IG1heFxuXG4gIGlmIChydXB0dXJlLnJhc3RlcmlzZS1tZWRpYS1xdWVyaWVzKVxuICAgIGlmIG5vdCAoZGVuc2l0eSBvciAtbWF4IG9yIG9yaWVudGF0aW9uKVxuICAgICAge2Jsb2NrfVxuICBlbHNlXG4gICAgY29uZGl0aW9uID0gJ29ubHkgc2NyZWVuJ1xuICAgIHVzZS1kZXZpY2Utd2lkdGggPSB1c2UtZGV2aWNlLXdpZHRoID8gJ2RldmljZS0nIDogJydcbiAgICB1bmxlc3MgLW1pbiBpcyAwXG4gICAgICAtbWluID0gLWNvbnZlcnQtdG8oJ2VtJywgLW1pbikgaWYgcnVwdHVyZS5lbmFibGUtZW0tYnJlYWtwb2ludHNcbiAgICAgIC1taW4gPSAtYWRqdXN0LW92ZXJsYXAoYW50aS1vdmVybGFwLCAtbWluLCBzaWRlOiAnbWluJylcbiAgICAgIGNvbmRpdGlvbiA9IGNvbmRpdGlvbiArICcgYW5kIChtaW4tJyArIHVzZS1kZXZpY2Utd2lkdGggKyAnd2lkdGg6ICVzKScgJSAoLW1pbilcbiAgICB1bmxlc3MgLWxhcmdlci10aGFuLXNjYWxlKG1heClcbiAgICAgIC1tYXggPSAtY29udmVydC10bygnZW0nLCAtbWF4KSBpZiBydXB0dXJlLmVuYWJsZS1lbS1icmVha3BvaW50c1xuICAgICAgLW1heCA9IC1hZGp1c3Qtb3ZlcmxhcChhbnRpLW92ZXJsYXAsIC1tYXgsIHNpZGU6ICdtYXgnKVxuICAgICAgY29uZGl0aW9uID0gY29uZGl0aW9uICsgJyBhbmQgKG1heC0nICsgdXNlLWRldmljZS13aWR0aCArICd3aWR0aDogJXMpJyAlICgtbWF4KVxuICAgIGlmIG9yaWVudGF0aW9uXG4gICAgICBjb25kaXRpb24gPSBjb25kaXRpb24gKyAnIGFuZCAob3JpZW50YXRpb246ICVzKScgJSAob3JpZW50YXRpb24pXG4gICAgaWYgZGVuc2l0eVxuICAgICAgY29uZGl0aW9ucyA9ICgpXG4gICAgICBmb3IgcXVlcnkgaW4gLWRlbnNpdHktcXVlcmllcyhkZW5zaXR5KVxuICAgICAgICBwdXNoKGNvbmRpdGlvbnMsIGNvbmRpdGlvbiArICcgYW5kICVzJyAlIChxdWVyeSkpXG4gICAgICBjb25kaXRpb24gPSBqb2luKCcsICcsIGNvbmRpdGlvbnMpXG4gICAgQG1lZGlhIGNvbmRpdGlvblxuICAgICAge2Jsb2NrfVxuICBpZiBmYWxsYmFjay1jbGFzc1xuICAgICtjcmVhdGUtZmFsbGJhY2stY2xhc3Moc2VsZWN0ZWQsIGZhbGxiYWNrLWNsYXNzKVxuICAgICAge2Jsb2NrfVxuXG5hdChzY2FsZS1wb2ludCwgYW50aS1vdmVybGFwID0gcnVwdHVyZS5hbnRpLW92ZXJsYXAsIGRlbnNpdHkgPSBudWxsLCBvcmllbnRhdGlvbiA9IG51bGwsIHVzZS1kZXZpY2Utd2lkdGggPSBydXB0dXJlLnVzZS1kZXZpY2Utd2lkdGgsIGZhbGxiYWNrLWNsYXNzID0gbnVsbClcbiAgaWYgLWlzLXN0cmluZyhvcmllbnRhdGlvbilcbiAgICBvcmllbnRhdGlvbiA9IGNvbnZlcnQob3JpZW50YXRpb24pXG4gIGlmIC1pcy1zdHJpbmcoZGVuc2l0eSlcbiAgICBkZW5zaXR5ID0gY29udmVydChkZW5zaXR5KVxuICArYmV0d2VlbihzY2FsZS1wb2ludCwgc2NhbGUtcG9pbnQsIGFudGktb3ZlcmxhcCwgZGVuc2l0eSwgb3JpZW50YXRpb24sIHVzZS1kZXZpY2Utd2lkdGgsIGZhbGxiYWNrLWNsYXNzKVxuICAgIHtibG9ja31cblxuZnJvbS13aWR0aChzY2FsZS1wb2ludCwgYW50aS1vdmVybGFwID0gcnVwdHVyZS5hbnRpLW92ZXJsYXAsIGRlbnNpdHkgPSBudWxsLCBvcmllbnRhdGlvbiA9IG51bGwsIHVzZS1kZXZpY2Utd2lkdGggPSBydXB0dXJlLnVzZS1kZXZpY2Utd2lkdGgsIGZhbGxiYWNrLWNsYXNzID0gbnVsbClcbiAgaWYgLWlzLXN0cmluZyhvcmllbnRhdGlvbilcbiAgICBvcmllbnRhdGlvbiA9IGNvbnZlcnQob3JpZW50YXRpb24pXG4gIGlmIC1pcy1zdHJpbmcoZGVuc2l0eSlcbiAgICBkZW5zaXR5ID0gY29udmVydChkZW5zaXR5KVxuICArYmV0d2VlbihzY2FsZS1wb2ludCwgbGVuZ3RoKHJ1cHR1cmUuc2NhbGUpLCBhbnRpLW92ZXJsYXAsIGRlbnNpdHksIG9yaWVudGF0aW9uLCB1c2UtZGV2aWNlLXdpZHRoLCBmYWxsYmFjay1jbGFzcylcbiAgICB7YmxvY2t9XG5cbmFib3ZlID0gZnJvbS13aWR0aFxuXG50by13aWR0aChzY2FsZS1wb2ludCwgYW50aS1vdmVybGFwID0gcnVwdHVyZS5hbnRpLW92ZXJsYXAsIGRlbnNpdHkgPSBudWxsLCBvcmllbnRhdGlvbiA9IG51bGwsIHVzZS1kZXZpY2Utd2lkdGggPSBydXB0dXJlLnVzZS1kZXZpY2Utd2lkdGgsIGZhbGxiYWNrLWNsYXNzID0gbnVsbClcbiAgaWYgLWlzLXN0cmluZyhvcmllbnRhdGlvbilcbiAgICBvcmllbnRhdGlvbiA9IGNvbnZlcnQob3JpZW50YXRpb24pXG4gIGlmIC1pcy1zdHJpbmcoZGVuc2l0eSlcbiAgICBkZW5zaXR5ID0gY29udmVydChkZW5zaXR5KVxuICArYmV0d2VlbigxLCBzY2FsZS1wb2ludCwgYW50aS1vdmVybGFwLCBkZW5zaXR5LCBvcmllbnRhdGlvbiwgdXNlLWRldmljZS13aWR0aCwgZmFsbGJhY2stY2xhc3MpXG4gICAge2Jsb2NrfVxuXG5iZWxvdyA9IHRvLXdpZHRoXG5cbm1vYmlsZShhbnRpLW92ZXJsYXAgPSBydXB0dXJlLmFudGktb3ZlcmxhcCwgZGVuc2l0eSA9IG51bGwsIG9yaWVudGF0aW9uID0gbnVsbCwgdXNlLWRldmljZS13aWR0aCA9IHJ1cHR1cmUudXNlLWRldmljZS13aWR0aCwgZmFsbGJhY2stY2xhc3MgPSBudWxsKVxuICBpZiAtaXMtc3RyaW5nKG9yaWVudGF0aW9uKVxuICAgIG9yaWVudGF0aW9uID0gY29udmVydChvcmllbnRhdGlvbilcbiAgaWYgLWlzLXN0cmluZyhkZW5zaXR5KVxuICAgIGRlbnNpdHkgPSBjb252ZXJ0KGRlbnNpdHkpXG4gICtiZWxvdyhydXB0dXJlLm1vYmlsZS1jdXRvZmYsIGFudGktb3ZlcmxhcCwgZGVuc2l0eSwgb3JpZW50YXRpb24sIHVzZS1kZXZpY2Utd2lkdGgsIGZhbGxiYWNrLWNsYXNzKVxuICAgIHtibG9ja31cblxudGFibGV0KGFudGktb3ZlcmxhcCA9IHJ1cHR1cmUuYW50aS1vdmVybGFwLCBkZW5zaXR5ID0gbnVsbCwgb3JpZW50YXRpb24gPSBudWxsLCB1c2UtZGV2aWNlLXdpZHRoID0gcnVwdHVyZS51c2UtZGV2aWNlLXdpZHRoLCBmYWxsYmFjay1jbGFzcyA9IG51bGwpXG4gIGlmIC1pcy1zdHJpbmcob3JpZW50YXRpb24pXG4gICAgb3JpZW50YXRpb24gPSBjb252ZXJ0KG9yaWVudGF0aW9uKVxuICBpZiAtaXMtc3RyaW5nKGRlbnNpdHkpXG4gICAgZGVuc2l0eSA9IGNvbnZlcnQoZGVuc2l0eSlcbiAgK2JldHdlZW4ocnVwdHVyZS5tb2JpbGUtY3V0b2ZmLCBydXB0dXJlLmRlc2t0b3AtY3V0b2ZmLCBhbnRpLW92ZXJsYXAsIGRlbnNpdHksIG9yaWVudGF0aW9uLCB1c2UtZGV2aWNlLXdpZHRoLCBmYWxsYmFjay1jbGFzcylcbiAgICB7YmxvY2t9XG5cbmRlc2t0b3AoYW50aS1vdmVybGFwID0gcnVwdHVyZS5hbnRpLW92ZXJsYXAsIGRlbnNpdHkgPSBudWxsLCBvcmllbnRhdGlvbiA9IG51bGwsIHVzZS1kZXZpY2Utd2lkdGggPSBydXB0dXJlLnVzZS1kZXZpY2Utd2lkdGgsIGZhbGxiYWNrLWNsYXNzID0gbnVsbClcbiAgaWYgLWlzLXN0cmluZyhvcmllbnRhdGlvbilcbiAgICBvcmllbnRhdGlvbiA9IGNvbnZlcnQob3JpZW50YXRpb24pXG4gIGlmIC1pcy1zdHJpbmcoZGVuc2l0eSlcbiAgICBkZW5zaXR5ID0gY29udmVydChkZW5zaXR5KVxuICArYWJvdmUocnVwdHVyZS5kZXNrdG9wLWN1dG9mZiwgYW50aS1vdmVybGFwLCBkZW5zaXR5LCBvcmllbnRhdGlvbiwgdXNlLWRldmljZS13aWR0aCwgZmFsbGJhY2stY2xhc3MpXG4gICAge2Jsb2NrfVxuXG5oZChhbnRpLW92ZXJsYXAgPSBydXB0dXJlLmFudGktb3ZlcmxhcCwgZGVuc2l0eSA9IG51bGwsIG9yaWVudGF0aW9uID0gbnVsbCwgdXNlLWRldmljZS13aWR0aCA9IHJ1cHR1cmUudXNlLWRldmljZS13aWR0aCwgZmFsbGJhY2stY2xhc3MgPSBudWxsKVxuICBpZiAtaXMtc3RyaW5nKG9yaWVudGF0aW9uKVxuICAgIG9yaWVudGF0aW9uID0gY29udmVydChvcmllbnRhdGlvbilcbiAgaWYgLWlzLXN0cmluZyhkZW5zaXR5KVxuICAgIGRlbnNpdHkgPSBjb252ZXJ0KGRlbnNpdHkpXG4gICthYm92ZShydXB0dXJlLmhkLWN1dG9mZiwgYW50aS1vdmVybGFwLCBkZW5zaXR5LCBvcmllbnRhdGlvbiwgdXNlLWRldmljZS13aWR0aCwgZmFsbGJhY2stY2xhc3MpXG4gICAge2Jsb2NrfVxuXG5kZW5zaXR5KGRlbnNpdHksIG9yaWVudGF0aW9uID0gbnVsbCwgZmFsbGJhY2stY2xhc3MgPSBudWxsKVxuICBzZWxlY3RlZCA9IHNlbGVjdG9yKClcbiAgaWYgbm90IChydXB0dXJlLnJhc3RlcmlzZS1tZWRpYS1xdWVyaWVzKVxuICAgIGNvbmRpdGlvbnMgPSAoKVxuICAgIGZvciBxdWVyeSBpbiAtZGVuc2l0eS1xdWVyaWVzKGRlbnNpdHkpXG4gICAgICBjb25kaXRpb24gPSAnb25seSBzY3JlZW4gYW5kICVzJyAlIChxdWVyeSlcbiAgICAgIGlmIG9yaWVudGF0aW9uXG4gICAgICAgIGNvbmRpdGlvbiA9IGNvbmRpdGlvbiArICcgYW5kIChvcmllbnRhdGlvbjogJXMpJyAlIChvcmllbnRhdGlvbilcbiAgICAgIHB1c2goY29uZGl0aW9ucywgY29uZGl0aW9uKVxuICAgIGNvbmRpdGlvbiA9IGpvaW4oJywgJywgY29uZGl0aW9ucylcbiAgICBAbWVkaWEgY29uZGl0aW9uXG4gICAgICB7YmxvY2t9XG4gICAgaWYgZmFsbGJhY2stY2xhc3NcbiAgICAgICtjcmVhdGUtZmFsbGJhY2stY2xhc3Moc2VsZWN0ZWQsIGZhbGxiYWNrLWNsYXNzKVxuICAgICAgICB7YmxvY2t9XG5cbnBpeGVsLXJhdGlvID0gZGVuc2l0eVxuXG5yZXRpbmEob3JpZW50YXRpb24gPSBudWxsLCBmYWxsYmFjay1jbGFzcyA9IG51bGwpXG4gICtkZW5zaXR5KCdyZXRpbmEnLCBvcmllbnRhdGlvbiwgZmFsbGJhY2stY2xhc3MpXG4gICAge2Jsb2NrfVxuXG5sYW5kc2NhcGUoZGVuc2l0eSA9IG51bGwsIGZhbGxiYWNrLWNsYXNzID0gbnVsbClcbiAgc2VsZWN0ZWQgPSBzZWxlY3RvcigpXG4gIGlmIG5vdCAocnVwdHVyZS5yYXN0ZXJpc2UtbWVkaWEtcXVlcmllcylcbiAgICBpZiAtaXMtc3RyaW5nKGRlbnNpdHkpXG4gICAgICBkZW5zaXR5ID0gY29udmVydChkZW5zaXR5KVxuICAgIGlmIGRlbnNpdHlcbiAgICAgICtwaXhlbC1yYXRpbyhkZW5zaXR5LCBvcmllbnRhdGlvbjogbGFuZHNjYXBlLCBmYWxsYmFjay1jbGFzcylcbiAgICAgICAge2Jsb2NrfVxuICAgIGVsc2VcbiAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpXG4gICAgICAgIHtibG9ja31cbiAgICAgIGlmIGZhbGxiYWNrLWNsYXNzXG4gICAgICAgICtjcmVhdGUtZmFsbGJhY2stY2xhc3Moc2VsZWN0ZWQsIGZhbGxiYWNrLWNsYXNzKVxuICAgICAgICAgIHtibG9ja31cblxucG9ydHJhaXQoZGVuc2l0eSA9IG51bGwsIGZhbGxiYWNrLWNsYXNzID0gbnVsbClcbiAgc2VsZWN0ZWQgPSBzZWxlY3RvcigpXG4gIGlmIG5vdCAocnVwdHVyZS5yYXN0ZXJpc2UtbWVkaWEtcXVlcmllcylcbiAgICBpZiAtaXMtc3RyaW5nKGRlbnNpdHkpXG4gICAgICBkZW5zaXR5ID0gY29udmVydChkZW5zaXR5KVxuICAgIGlmIGRlbnNpdHlcbiAgICAgICtwaXhlbC1yYXRpbyhkZW5zaXR5LCBvcmllbnRhdGlvbjogcG9ydHJhaXQsIGZhbGxiYWNrLWNsYXNzKVxuICAgICAgICB7YmxvY2t9XG4gICAgZWxzZVxuICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAob3JpZW50YXRpb246IHBvcnRyYWl0KVxuICAgICAgICB7YmxvY2t9XG4gICAgICBpZiBmYWxsYmFjay1jbGFzc1xuICAgICAgICArY3JlYXRlLWZhbGxiYWNrLWNsYXNzKHNlbGVjdGVkLCBmYWxsYmFjay1jbGFzcylcbiAgICAgICAgICB7YmxvY2t9XG5cbnJ1cHR1cmUtaG92ZXIoZGVuc2l0eSA9IG51bGwsIG9yaWVudGF0aW9uID0gbnVsbCwgZmFsbGJhY2stY2xhc3MgPSBudWxsKVxuICBjb25kaXRpb24gPSBcIm9ubHkgc2NyZWVuIGFuZCAoaG92ZXI6IGhvdmVyKVwiO1xuICBAbWVkaWEgKHtjb25kaXRpb259KVxuICAgIHtibG9ja31cblxuaG92ZXIgPSBydXB0dXJlLWhvdmVyXG4iXX0= */
