#institut {
  background-color: #fff;
}
#institut .bgwhite {
  background-color: #fff;
}
#institut .bggrey {
  background-color: #f5f5f5;
}
#institut .bgalternative {
  background-color: #f7f7f1;
}
#institut .bgmaincolor {
  background-color: #f64e2d;
  color: #fff;
}
#institut h1 {
  color: #f64e2d;
  font-size: 3.2rem;
  line-height: 1.125em;
  font-weight: 400;
  text-rendering: optimizelegibility;
  margin: 0.75em 0;
}
#institut h2 {
  color: #f64e2d;
  line-height: 1.2em;
}
#institut h3 {
  color: #353535;
}
#institut h4 {
  color: #353535;
}
#institut h5 {
  color: #353535;
}
#institut p {
  font-size: 1.2rem;
  font-weight: 400;
}
#institut b,
#institut strong {
  font-weight: 600;
}
#institut ul {
  padding-left: 0;
  font-weight: 400;
  list-style-type: square;
}
#institut li::before {
  background-image: url("/fileadmin/ABIS_Institut/Redaktion/Icons/list-icon.svg");
}
#institut a {
  color: #f64e2d;
}
#institut .news a {
  color: #f64e2d;
}
#institut .trainer_mail a {
  color: #fff !important;
}
#institut .bgalternativ {
  background-color: #f7f7f1 !important;
}
#institut button {
  background-color: #f64e2d;
  color: #fff;
}
#institut button:hover {
  box-shadow: 2px 2px 5px rgba(0,0,0,0.3);
  opacity: 0.9;
}
#institut button.alt {
  background-color: #fff;
  border: 1px solid #f64e2d;
  color: #f64e2d;
}
#institut button.alt:hover {
  background-color: #f64e2d;
  color: #fff;
}
#institut input[type="submit"] {
  background-color: #f64e2d;
  color: #fff;
  border: 1px solid #f64e2d;
  border-radius: 30px;
}
#institut a.active,
#institut a.menu-link {
  color: #fff !important;
  background-color: #f64e2d;
}
#institut .menu ul li a {
  color: #f64e2d;
}
#institut .menu ul li a.active {
  color: #fff;
}
#institut .menu ul li > a:hover,
#institut .menu ul li.submenu-item > a:hover {
  color: #fff !important;
  background-color: #f64e2d;
}
#institut .menu li.submenu-item a {
  color: #353535;
}
#institut .menu ul li.submenu-item {
  line-height: 1.25em;
}
#institut .menu ul li.submenu-item a {
  color: #353535 !important;
}
#institut .menu ul li.submenu-item a.active {
  color: #fff !important;
  background-color: #f64e2d;
}
#institut .menu ul li.submenu-item.active a:hover {
  color: #fff !important;
  background-color: #f64e2d;
}
#institut .footer__navigation a {
  color: #f64e2d !important;
}
#institut .footer__navigation a:hover {
  color: #fff !important;
  background-color: #f64e2d;
}
#institut .footer__navigation li.active a {
  color: #fff !important;
  background-color: #f64e2d;
}
#institut .footer__navigation li.active a:hover {
  color: #fff !important;
  background-color: #f64e2d;
}
.dropdown2025 .accordion .accordion-item {
  color: #353535;
  border-bottom: 1px solid #909090;
}
.dropdown2025 .accordion .accordion-item .accordion-content p {
  color: #353535;
}
.dropdown2025 .accordion .accordion-item .accordion-header i.accordion-icon {
  color: #f64e2d !important;
  font-weight: 400;
}
.floating-menu .floating-button {
  background-color: #f64e2d;
  color: #fff !important;
}
.floating-menu .floating-button:hover {
  background-color: #f64e2d;
}
.productbox {
  background: url("/fileadmin/ABIS_Institut/Redaktion/Images/bg_app.jpg") left 0;
  background-size: cover;
}
.productbox__title {
  color: #fff;
}
.productbox__dachzeile,
.productbox__item h3,
.productbox__overlay {
  left: 5px;
}
.productbox__overlay h3,
.productbox__overlay p {
  color: #353535;
}
.productbox__button {
  background-color: #f64e2d;
}
.productbox__actions a {
  color: #f64e2d;
}
.productbox__actions .fa {
  color: #f64e2d;
  font-size: 1.1rem;
}
.productbox__overlay,
.productbox__item {
  border-radius: 20px;
  background-color: #fff;
  flex: 1;
  flex-direction: column;
  padding: 10px;
  color: #353535;
  max-width: 95%;
  width: 95%;
  margin: 20px 20px 20px 0;
  box-shadow: 2px 2px 8px 0 rgba(255,255,255,0);
}
.productbox__actions {
  justify-content: space-between;
  align-items: flex-start;
  gap: 15px;
  line-height: 1.4rem;
  border-top: 1px solid rgba(0,0,0,0.2);
  padding-top: 2rem;
  margin: 0 auto 1rem auto;
  max-width: 80%;
}
.productbox__infoabend {
  justify-content: flex-end;
}
.productbox__overlay h3,
.productbox__item h3 {
  color: #222;
  font-weight: 600;
  line-height: 1.4rem;
  font-size: 1.2rem;
  position: relative;
  text-align: center;
  margin: 15px auto 10px auto;
  hyphens: auto;
}
.productbox__overlay p,
.productbox__item p {
  color: #353535;
}
.introtext2023 {
  border-top: 0;
}
.introtext2023 .wrapper .introtext__title h1 {
  color: #f64e2d;
}
.introtext2023 .wrapper .introtext__text h1 {
  font-size: 2.8rem;
  font-weight: 400;
  color: #f64e2d;
}
.introtext2023 .wrapper .introtext__text p {
  color: #353535;
}
#institut .swiper-pagination {
  padding: 0 10px;
  margin: 0 auto;
  top: 688px;
  z-index: 1;
}
#institut .swiper-pagination-bullet {
  padding: 1px;
  margin: 5px;
  width: 10px;
  height: 10px;
  display: inline-block;
  border-radius: 100%;
  background: $blackColor;
  opacity: 0.2;
  border: 1px solid #fff;
  color: #ececec;
}
#institut .swiper-pagination-bullet-active {
  opacity: 1;
  background: #f64e2d;
}
#institut .kacheln__consulting h3 {
  color: #f64e2d;
}
#institut .kacheln__consulting .kachel__text a {
  color: #353535;
}
#institut .kacheln__consulting .kachel__container .kachel__image i {
  color: #f64e2d;
}
#institut .kachel__container__typ-icon .kachel__image {
  min-height: 1em;
  align-items: center;
  justify-content: center;
}
#institut .kachel__container__typ-icon .kachel__image i {
  font-size: 58px;
}
#institut .team .team__item .team__content h3 {
  color: #353535 !important;
}
#institut .team .team__item .team__content p {
  color: #353535;
}
#institut .bentobox .block h3 {
  color: #353535;
}
#institut .bentobox .box2 a {
  color: #353535;
}
#institut .lernreise .mcode {
  color: #353535;
}
#institut .lernreise .tabs-container date {
  font-size: 0.95rem;
  padding-top: 5px;
  color: #353535;
}
#institut .lernreise .tabs-container .modulheader h3 {
  color: #353535;
}
#institut .lernreise .tabs-container .tab .tab__text h2 {
  color: #f64e2d;
}
#institut .lernreise .module h3 {
  color: #353535;
}
#institut .lernreise .module p {
  color: #353535;
}
#institut .lernreise [role="tab"][aria-selected="true"] {
  color: #f64e2d;
  font-weight: 600;
}
#institut .lernreise [role="tab"][aria-selected="true"]:focus {
  outline: 2px dotted #f64e2d;
}
#institut .lernreise .lr-btn {
  background-color: #f64e2d;
  color: #fff;
  border: 1px solid #f64e2d;
  border-radius: 30px;
  padding: 10px 20px;
  font-size: 1.1rem;
  font-weight: 600;
  margin: 15px 0;
  text-decoration: none;
  display: inline-block;
  transition: all 0.3s ease;
}
#institut .lernreise .lr-btn:hover {
  background-color: #fff;
  color: #f64e2d;
  border: 1px solid #f64e2d;
}
#institut .lernreise .lr-page {
  color: #353535;
}
#institut .portfolio__icon i {
  color: #f64e2d;
}
#institut .portfolio__text h6 {
  color: #f64e2d;
}
#institut .digitalproducts {
  background-color: #f7f7f1;
}
#institut .digitalproducts.bgwhite {
  background-color: #fff !important;
}
#institut .digitalproducts.bgwhite .digitalcourse {
  background-color: #f7f7f1 !important;
}
#institut .digitalproducts.bgwhite .digitalcourse .right .button {
  background-color: #f64e2d;
}
#institut .abis3spalter__button {
  background-color: #fff;
  color: #f64e2d;
  border: 1px solid #f64e2d;
  border-radius: 10px;
  padding: 10px 20px;
  font-size: 1.1rem;
  font-weight: 600;
  margin: 15px 0;
  text-decoration: none;
  display: inline-block;
  position: absolute;
  bottom: 10px;
  transition: all 0.3s ease;
}
#institut .abis3spalter__button:hover {
  background-color: #f64e2d;
  color: #fff;
  border: 1px solid #f64e2d;
}
#institut .infoblock {
  background-color: #f64e2d;
  color: #fff;
  border-radius: 0px;
  padding: 2rem 0;
  box-shadow: 0 0 8px rgba(0,0,0,0.1) inset;
}
#institut .infoblock h3 {
  color: #fff;
}
#institut .infoblock p {
  color: #fff;
}
#institut .infoblock.bgwhite {
  background-color: #fff !important;
  color: #353535;
}
#institut .infoblock.bgwhite i .fa-solid {
  color: #f64e2d;
}
#institut .infoblock.bgwhite h2 {
  color: #f64e2d !important;
}
#institut .infoblock.bgwhite h3 {
  color: #353535;
}
#institut .infoblock.bgwhite p {
  color: #353535;
}
#institut .infoblock.bgwhite .infoblock-row:not(:last-child)::after {
  border-right: 1px solid rgba(0,0,0,0.4);
}
#institut .infoblock.bgwhite .infoblock-icon i {
  font-size: 2.5rem;
  color: #f64e2d;
}
#institut .infoblock.bgwhite .infoblock-icon img {
  width: 28px;
  height: 28px;
}
#institut .trainer .trainer__name {
  color: #353535;
}
#institut .trainer .trainer__name h3 {
  margin: 1.025rem 0 0.2rem 0 !important;
  padding-top: 5px;
}
#institut .trainer .trainer__focus h4 {
  color: #353535;
}
#institut .trainer .trainer__foto .trainer_foto_text {
  background-color: #f64e2d;
  color: #fff;
}
#institut .trainer .trainer__foto .trainer_foto_text p {
  color: #fff;
}
#institut .trainer .trainer__foto .trainer_foto_text h4 {
  color: #353535;
  font-size: 1.25rem;
}
#institut .trainer .trainer_texte p {
  font-size: 1rem;
}
#institut .trainer .swiper-impressionen .trainer__foto p {
  color: #fff !important;
}
#institut .trainer .swiper-impressionen .trainer__foto h4 {
  color: #fff !important;
}
#institut .trainer .swiper-impressionen .trainer_foto_text {
  color: #fff !important;
}
#institut .trainer .swiper-impressionen .trainer_mail a {
  color: #fff;
}
#institut .infoboxen {
  background-color: #f7f7f1;
  border-radius: 10px;
  padding: 20px;
  box-shadow: 0 0 16px rgba(0,0,0,0.1);
}
#institut .infoboxen h3 {
  color: #353535;
}
#institut .infoboxen p {
  color: #353535;
}
#institut .infoboxen__container h3 {
  border-top: 3px solid #f64e2d;
}
#institut .parallaxItem .parallaxText p {
  font-style: normal;
  margin: 0 auto;
  color: #fff !important;
  font-size: 1.65rem !important;
  text-shadow: 1px 1px 2px rgba(0,71,80,0.5);
}
#institut .impressionen {
  background-color: #f7f7f1;
}
#institut__mainbox a {
  color: #f64e2d;
}
#institut .testimonialsn .swiper-testimonials.stimmen .swiper-slide {
  margin: 5px 0 0 10px;
  width: 400px;
}
#institut .testimonialsn .swiper-testimonials.stimmen .swiper-slide h3 {
  color: #f64e2d;
}
#institut .testimonialsn .swiper-testimonials.stimmen .swiper-slide h3::before {
  color: #f64e2d;
}
#institut .testimonialsn .swiper-testimonials.stimmen .swiper-slide p {
  font-size: 0.75rem !important;
}
#institut .testimonialsn .swiper-testimonials.stimmen .swiper-slide .swiper-slide-wrapper {
  border-radius: 0 25px 25px 25px;
  box-shadow: 2px 2px 12px rgba(0,0,0,0.25);
  height: 95%;
}
#institut .testimonialsn .swiper-testimonials.stimmen .swiper-slide .testimonialsn__name p {
  font-weight: 500;
}
#institut .testimonialsn .testimonials-prev,
#institut .testimonialsn .testimonials-next {
  display: none;
}
#institut .testimonialsn .swiper-pagination {
  top: 510px;
}
#institut .testimonialsn .swiper-pagination-bullet {
  color: #ececec;
}
#institut .testimonial2025__card .testimonial2025__content h3 {
  color: #353535;
  font-size: 1.4rem;
  margin-bottom: 0.5rem;
}
#institut .testimonial2025__card .testimonial2025__content p {
  color: #f64e2d;
  font-size: 1.1rem;
  line-height: 1.4rem;
}
#institut.home .introtext2023 .introtext__title {
  text-align: center;
}
#institut.home .introtext2023 .introtext__title h2 {
  margin: 1rem auto;
}
#institut.home .introtext {
  border-top: 0;
}
#institut.home .introtext .introtext__title {
  text-align: center;
}
#institut.home .introtext .introtext__text p {
  color: #353535;
  font-size: 1.4rem;
}
#institut.home .introtext .introtext__title h1 {
  color: #f64e2d;
  margin: 0 auto 0.5rem auto;
  padding-top: 2rem;
  text-align: center;
  font-size: 1.8rem;
  line-height: 1.2em;
  width: 75%;
}
#institut.home .introtext .introtext__title h2 {
  color: #f64e2d;
  font-size: 3.6rem;
  line-height: 1.1em;
  font-weight: 700;
  text-align: center;
  margin: 2rem auto 0 auto;
  width: 100%;
}
#institut.subpage .introtext2023 .introtext__title h1 {
  margin-top: 0;
  padding-top: 0;
}
#institut.subpage .textcontainer {
  background-image: url("/fileadmin//ABIS_Business/Redaktion/abis-angebot.jpg");
  background-position-y: -230px;
  background-repeat: no-repeat;
  background-size: cover;
  padding: 2rem 0;
}
#institut.subpage .textcontainer h2 {
  color: #fff;
  text-shadow: 2px 2px 8px rgba(0,0,0,0.25);
}
#institut.subpage .textcontainer h3 {
  display: none;
}
#institut.subpage .textcontainer .tx-powermail input {
  border-radius: 5px;
}
#institut.subpage .textcontainer .tx-powermail .row:has(input[type='text']) {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  gap: 1rem;
  min-width: 300px;
}
#institut.subpage .textcontainer .tx-powermail .row:has(input[name="tx_powermail_pi1[field][ihrname]"]):has(#powermail_field_ihree_mail) {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  gap: 1rem;
}
#institut.subpage .textcontainer .tx-powermail .row:has(input[name="tx_powermail_pi1[field][ihrname]"]):has(#powermail_field_ihree_mail) .powermail_fieldwrap {
  width: calc(50% - 2rem);
  flex: 0 1 calc(50% - 2.1rem);
}
#institut.subpage .textcontainer .tx-powermail .row:has(input[name="tx_powermail_pi1[field][ihrname]"]):has(#powermail_field_ihree_mail) .powermail_fieldwrap .powermail__field {
  width: 100%;
}
#institut.subpage .textcontainer .tx-powermail #powermail_field_ihree_mail {
  margin-top: 3px;
}
#institut.subpage .textcontainer .tx-powermail input[type='text'] {
  width: 100%;
  height: 3.5rem;
}
#institut.subpage .textcontainer .tx-powermail textarea {
  width: 100%;
  border-radius: 5px;
}
#institut.subpage .textcontainer .tx-powermail input[type='submit'] {
  border-radius: 25px;
}
#institut.subpage .textcontainer .tx-powermail input[type='text'],
#institut.subpage .textcontainer .tx-powermail textarea {
  margin-top: 10px;
  box-shadow: 2px 2px 8px rgba(0,0,0,0.25) inset;
}
#institut.subpage .textcontainer .tx-powermail .powermail_label {
  display: none;
}
#institut.subpage .textcontainer .tx-powermail .powermail-errors-list li {
  color: #fff;
}
#institut.subpage .textcontainer .tx-powermail .form-check-label {
  color: #fff;
}
#institut.subpage .textcontainer .tx-powermail .form-check-label a {
  color: #fff;
  text-decoration: underline;
}
.introtext2023 {
  border-top: 0;
}
.introtext2023 .introtext__text p {
  color: $blackColor;
  font-size: 1.2rem;
}
.blog h4 {
  font-size: 1.1rem;
}
@media only screen and (max-width: 700px) {
  #institut .btn-group button {
    margin-top: 1rem;
  }
  #institut.subpage .textcontainer .tx-powermail .row:has(input[name="tx_powermail_pi1[field][ihrname]"]):has(#powermail_field_ihree_mail) {
    display: flex;
    flex-direction: column;
  }
  #institut.subpage .textcontainer .tx-powermail .powermail_fieldwrap {
    width: calc(100%);
    flex: 0 1 calc(100%);
  }
  #institut.subpage .textcontainer .tx-powermail .powermail_fieldwrap input {
    width: 100%;
  }
}
@media only screen and (min-width: 1024px) {
  #institut .wrapper {
    width: 90%;
  }
}
@media only screen and (min-width: 1400px) {
  #institut .wrapper {
    width: $wrapperWidth;
  }
}
#c1334 .kachel__title {
  text-align: left;
  padding-top: 2rem;
}
#c1334 .kachel__image {
  padding-top: 3rem !important;
}
#c1334 .kachel__image img {
  margin-top: 3rem;
  margin-bottom: 4rem;
}
#c1334 .kachel__image img[src$=".svg"] {
  margin-top: 4rem;
  width: 85px;
  height: auto;
}
#c1405 h3 {
  font-size: 1.2rem;
}

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluc3RpdHV0LnN0eWwiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvYXhpcy9heGlzL3V0aWxpdGllcy5zdHlsIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3J1cHR1cmUvcnVwdHVyZS9pbmRleC5zdHlsIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWlCQTtFQUNFLHNCQUFpQjs7QUFDakI7RUFDRSxzQkFBaUI7O0FBQ25CO0VBQ0UseUJBQWlCOztBQUNuQjtFQUNFLHlCQUFpQjs7QUFDbkI7RUFDRSx5QkFBaUI7RUFDakIsV0FBTTs7QUFHUjtFQUNFLGNBQU07RUFDTixpQkFBVTtFQUNWLG9CQUFZO0VBQ1osZ0JBQVk7RUFDWixrQ0FBZTtFQUNmLGdCQUFPOztBQUNUO0VBQ0UsY0FBTTtFQUNOLGtCQUFZOztBQUVkO0VBQ0UsY0FBTTs7QUFDUjtFQUNFLGNBQU07O0FBQ1I7RUFDRSxjQUFNOztBQUNSO0VBQ0UsaUJBQVU7RUFDVixnQkFBWTs7QUFDZDs7RUFFRSxnQkFBWTs7QUFDZDtFQUNFLGVBQWE7RUFDYixnQkFBWTtFQUNaLHVCQUFnQjs7QUFFbEI7RUFDRSwrRUFBNkU7O0FBQy9FO0VBQ0UsY0FBTTs7QUFFTjtFQUNFLGNBQU07O0FBRVI7RUFDRSxzQkFBTTs7QUFFVjtFQUNFLG9DQUFpQjs7QUFDbkI7RUFDRSx5QkFBaUI7RUFDakIsV0FBTTs7QUFDTjtFQUNFLHVDQUFXO0VBQ1gsWUFBUTs7QUFDWjtFQUNFLHNCQUFpQjtFQUNqQix5QkFBTztFQUNQLGNBQU07O0FBQ047RUFDRSx5QkFBaUI7RUFDakIsV0FBTTs7QUFFVjtFQUNFLHlCQUFpQjtFQUNqQixXQUFNO0VBQ04seUJBQU87RUFDUCxtQkFBYzs7QUFJaEI7O0VBRUUsc0JBQU07RUFDTix5QkFBaUI7O0FBQ25CO0VBQ0UsY0FBTTs7QUFDUjtFQUNFLFdBQU07O0FBQ1I7O0VBRUUsc0JBQU07RUFDTix5QkFBaUI7O0FBRW5CO0VBQ0UsY0FBTTs7QUFDUjtFQUNFLG1CQUFZOztBQUNaO0VB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RSxpQkFBVTs7QUVwZFA7RUZ5ZEw7SUFDRSxnQkFBVzs7RUFJWDtJQUNFLGFBQVE7SUFDUixzQkFBZTs7RUFDakI7SUFDRSxpQkFBTTtJQUNOLG9CQUFLOztFQUNMO0lBQ0UsV0FBTTs7O0FFcmVQO0VGMGVQO0lBQ0UsVUFBTTs7O0FFM2VEO0VGa2ZQO0lBQ0Usb0JBQU07OztBQUlWO0VBQ0UsZ0JBQVc7RUFDWCxpQkFBWTs7QUFDZDtFQUNFLDRCQUFZOztBQUNaO0VBQ0UsZ0JBQVc7RUFDWCxtQkFBYzs7QUFDaEI7RUFDRSxnQkFBVztFQUNYLFdBQU07RUFDTixZQUFPOztBQUdYO0VBQ0UsaUJBQVUiLCJmaWxlIjoiaW5zdGl0dXQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLy9jb2xvcnNcbi8vJG1haW5jb2xvci1pbnN0aXR1dCA9ICNmNzUwMmRcbi8vJGJhY2tncm91bmRDb2xvci1JbnN0aXR1dCA9IHJnYmEoMjQ1LCAyNDUsIDIzNSwgMC40KVxuJG1haW5jb2xvci1pbnN0aXR1dCA9ICNGNjRFMkRcbiRzZWNvbmRhcnlDb2xvci1pbnN0aXR1dCA9ICMzNTM1MzVcbiRiYWNrZ3JvdW5kQ29sb3ItSW5zdGl0dXQgPSByZ2JhKDI0NywgMjQ3LCAyNDEsIDEpXG5cbiR3aGl0ZSA9ICNmZmZmZmZcbiRsaWdodEdyYXkgPSAjZWNlY2VjXG4kYmdncmV5ID0gI2Y1ZjVmNVxuJGJsYWNrID0gIzIyMjIyMlxuLy9WYXJpYWJsZW56dXdlaXN1bmdcbiRtYWluY29sb3IgPSAkbWFpbmNvbG9yLWluc3RpdHV0XG4kc2Vjb25kYXJ5Y29sb3IgPSAkc2Vjb25kYXJ5Q29sb3ItaW5zdGl0dXRcbiRiYWNrZ3JvdW5kY29sb3IgPSAkYmFja2dyb3VuZENvbG9yLUluc3RpdHV0XG4kYmdhbHRlcm5hdGl2ID0gJGJhY2tncm91bmRjb2xvclxuLy9iYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kY29sb3JcbiNpbnN0aXR1dFxuICBiYWNrZ3JvdW5kLWNvbG9yICR3aGl0ZVxuICAuYmd3aGl0ZVxuICAgIGJhY2tncm91bmQtY29sb3IgJHdoaXRlXG4gIC5iZ2dyZXlcbiAgICBiYWNrZ3JvdW5kLWNvbG9yICRiZ2dyZXlcbiAgLmJnYWx0ZXJuYXRpdmVcbiAgICBiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kY29sb3JcbiAgLmJnbWFpbmNvbG9yXG4gICAgYmFja2dyb3VuZC1jb2xvciAkbWFpbmNvbG9yXG4gICAgY29sb3IgJHdoaXRlXG5cblxuICBoMVxuICAgIGNvbG9yICRtYWluY29sb3JcbiAgICBmb250LXNpemUgMy4ycmVtXG4gICAgbGluZS1oZWlnaHQgMS4xMjVlbVxuICAgIGZvbnQtd2VpZ2h0IDQwMFxuICAgIHRleHQtcmVuZGVyaW5nIG9wdGltaXplbGVnaWJpbGl0eVxuICAgIG1hcmdpbiAwLjc1ZW0gMFxuICBoMlxuICAgIGNvbG9yICRtYWluY29sb3JcbiAgICBsaW5lLWhlaWdodCAxLjJlbVxuICAgIC8vd2lkdGggNzUlXG4gIGgzXG4gICAgY29sb3IgJHNlY29uZGFyeWNvbG9yXG4gIGg0XG4gICAgY29sb3IgJHNlY29uZGFyeWNvbG9yXG4gIGg1XG4gICAgY29sb3IgJHNlY29uZGFyeWNvbG9yXG4gIHBcbiAgICBmb250LXNpemUgMS4ycmVtXG4gICAgZm9udC13ZWlnaHQgNDAwXG4gIGIsXG4gIHN0cm9uZ1xuICAgIGZvbnQtd2VpZ2h0IDYwMFxuICB1bFxuICAgIHBhZGRpbmctbGVmdCAwXG4gICAgZm9udC13ZWlnaHQgNDAwXG4gICAgbGlzdC1zdHlsZS10eXBlIHNxdWFyZVxuXG4gIGxpOjpiZWZvcmVcbiAgICBiYWNrZ3JvdW5kLWltYWdlIHVybChcIi9maWxlYWRtaW4vQUJJU19JbnN0aXR1dC9SZWRha3Rpb24vSWNvbnMvbGlzdC1pY29uLnN2Z1wiKVxuICBhXG4gICAgY29sb3IgJG1haW5jb2xvclxuICAubmV3c1xuICAgIGFcbiAgICAgIGNvbG9yICRtYWluY29sb3JcbiAgLnRyYWluZXJfbWFpbFxuICAgIGFcbiAgICAgIGNvbG9yICR3aGl0ZSFpbXBvcnRhbnRcblxuICAuYmdhbHRlcm5hdGl2XG4gICAgYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZGNvbG9yICFpbXBvcnRhbnRcbiAgYnV0dG9uXG4gICAgYmFja2dyb3VuZC1jb2xvciAkbWFpbmNvbG9yXG4gICAgY29sb3IgJHdoaXRlXG4gICAgJjpob3ZlclxuICAgICAgYm94LXNoYWRvdyAycHggMnB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMylcbiAgICAgIG9wYWNpdHkgMC45XG4gIGJ1dHRvbi5hbHRcbiAgICBiYWNrZ3JvdW5kLWNvbG9yICR3aGl0ZVxuICAgIGJvcmRlciAxcHggc29saWQgJG1haW5jb2xvclxuICAgIGNvbG9yICRtYWluY29sb3JcbiAgICAmOmhvdmVyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yICRtYWluY29sb3JcbiAgICAgIGNvbG9yICR3aGl0ZVxuXG4gIGlucHV0W3R5cGU9XCJzdWJtaXRcIl1cbiAgICBiYWNrZ3JvdW5kLWNvbG9yICRtYWluY29sb3JcbiAgICBjb2xvciAkd2hpdGVcbiAgICBib3JkZXIgMXB4IHNvbGlkICRtYWluY29sb3JcbiAgICBib3JkZXItcmFkaXVzIDMwcHhcbi8vTWVudVxuXG4jaW5zdGl0dXRcbiAgYS5hY3RpdmUsXG4gIGEubWVudS1saW5rXG4gICAgY29sb3IgJHdoaXRlIWltcG9ydGFudFxuICAgIGJhY2tncm91bmQtY29sb3IgJG1haW5jb2xvclxuICAubWVudSB1bCBsaSBhXG4gICAgY29sb3IgJG1haW5jb2xvclxuICAubWVudSB1bCBsaSBhLmFjdGl2ZVxuICAgIGNvbG9yICR3aGl0ZVxuICAubWVudSB1bCBsaSA+IGE6aG92ZXJcbiAgLm1lbnUgdWwgbGkuc3VibWVudS1pdGVtID4gYTpob3ZlclxuICAgIGNvbG9yICR3aGl0ZSFpbXBvcnRhbnRcbiAgICBiYWNrZ3JvdW5kLWNvbG9yICRtYWluY29sb3JcblxuICAubWVudSBsaS5zdWJtZW51LWl0ZW0gYVxuICAgIGNvbG9yICRzZWNvbmRhcnljb2xvclxuICAubWVudSB1bCBsaS5zdWJtZW51LWl0ZW1cbiAgICBsaW5lLWhlaWdodCAxLjI1ZW1cbiAgICBhXG4gICAgICBjb2xvciAkc2Vjb25kYXJ5Y29sb3IhaW1wb3J0YW50XG4gICAgYS5hY3RpdmVcbiAgICAgIGNvbG9yICR3aGl0ZSFpbXBvcnRhbnRcbiAgICAgIGJhY2tncm91bmQtY29sb3IgJG1haW5jb2xvclxuICAgICYuYWN0aXZlIGE6aG92ZXJcbiAgICAgIGNvbG9yICR3aGl0ZSFpbXBvcnRhbnRcbiAgICAgIGJhY2tncm91bmQtY29sb3IgJG1haW5jb2xvclxuXG4gIC5mb290ZXJfX25hdmlnYXRpb25cbiAgICBhXG4gICAgICBjb2xvciAkbWFpbmNvbG9yIWltcG9ydGFudFxuICAgIGE6aG92ZXJcbiAgICAgIGNvbG9yICR3aGl0ZSFpbXBvcnRhbnRcbiAgICAgIGJhY2tncm91bmQtY29sb3IgJG1haW5jb2xvclxuICAgIGxpLmFjdGl2ZVxuICAgICAgYVxuICAgICAgICBjb2xvciAkd2hpdGUhaW1wb3J0YW50XG4gICAgICAgIGJhY2tncm91bmQtY29sb3IgJG1haW5jb2xvclxuICAgICAgYTpob3ZlclxuICAgICAgICBjb2xvciAkd2hpdGUhaW1wb3J0YW50XG4gICAgICAgIGJhY2tncm91bmQtY29sb3IgJG1haW5jb2xvclxuLy9BY2NvcmRpb25cbiAgLmRyb3Bkb3duMjAyNVxuICAgIC5hY2NvcmRpb25cbiAgICAgIC5hY2NvcmRpb24taXRlbVxuICAgICAgICBjb2xvciAkc2Vjb25kYXJ5Y29sb3JcbiAgICAgICAgYm9yZGVyLWJvdHRvbSAxcHggc29saWQgIzkwOTA5MFxuICAgICAgICAuYWNjb3JkaW9uLWNvbnRlbnQgcFxuICAgICAgICAgIGNvbG9yICRzZWNvbmRhcnljb2xvclxuICAgICAgICAuYWNjb3JkaW9uLWhlYWRlclxuICAgICAgICAgIGkuYWNjb3JkaW9uLWljb25cbiAgICAgICAgICAgY29sb3IgJG1haW5jb2xvciFpbXBvcnRhbnRcbiAgICAgICAgICAgZm9udC13ZWlnaHQgNDAwXG5cblxuICAuZmxvYXRpbmctbWVudVxuICAgIC5mbG9hdGluZy1idXR0b25cbiAgICAgIGJhY2tncm91bmQtY29sb3IgJG1haW5jb2xvclxuICAgICAgY29sb3IgJHdoaXRlIWltcG9ydGFudFxuICAgICAgJjpob3ZlclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yICRtYWluY29sb3JcbiAgLnByb2R1Y3Rib3hcbiAgICBiYWNrZ3JvdW5kIHVybChcIi9maWxlYWRtaW4vQUJJU19JbnN0aXR1dC9SZWRha3Rpb24vSW1hZ2VzL2JnX2FwcC5qcGdcIikgbGVmdCAwXG4gICAgYmFja2dyb3VuZC1zaXplIGNvdmVyXG4gICAgJl9fdGl0bGVcbiAgICAgIGNvbG9yICR3aGl0ZVxuICAgICZfX2RhY2h6ZWlsZVxuICAgICZfX2l0ZW0gaDNcbiAgICAmX19vdmVybGF5XG4gICAgICBsZWZ0IDVweFxuICAgICZfX292ZXJsYXkgaDNcbiAgICAmX19vdmVybGF5IHBcbiAgICAgIGNvbG9yICRzZWNvbmRhcnljb2xvclxuICAgICZfX2J1dHRvblxuICAgICAgYmFja2dyb3VuZC1jb2xvciAkbWFpbmNvbG9yXG4gICAgJl9fYWN0aW9ucyBhXG4gICAgICBjb2xvciAkbWFpbmNvbG9yXG4gICAgJl9fYWN0aW9ucyAuZmFcbiAgICAgIGNvbG9yICRtYWluY29sb3JcbiAgICAgIGZvbnQtc2l6ZSAxLjFyZW1cbiAgICAmX19vdmVybGF5XG4gICAgJl9faXRlbVxuICAgICAgYm9yZGVyLXJhZGl1cyAyMHB4XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yICR3aGl0ZVxuICAgICAgZmxleCAxXG4gICAgICBmbGV4LWRpcmVjdGlvbiBjb2x1bW5cbiAgICAgIHBhZGRpbmcgMTBweFxuICAgICAgY29sb3IgJHNlY29uZGFyeWNvbG9yXG4gICAgICBtYXgtd2lkdGggOTUlXG4gICAgICB3aWR0aCA5NSVcbiAgICAgIG1hcmdpbiAyMHB4IDIwcHggMjBweCAwXG4gICAgICBib3gtc2hhZG93IDJweCAycHggOHB4IDAgcmdiYSgyNTUsMjU1LDI1NSwwKVxuICAgICZfX2FjdGlvbnNcbiAgICAgIGp1c3RpZnktY29udGVudCBzcGFjZS1iZXR3ZWVuXG4gICAgICBhbGlnbi1pdGVtcyBmbGV4LXN0YXJ0XG4gICAgICBnYXAgMTVweFxuICAgICAgbGluZS1oZWlnaHQgMS40cmVtXG4gICAgICBib3JkZXItdG9wIDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMilcbiAgICAgIHBhZGRpbmctdG9wIDJyZW1cbiAgICAgIG1hcmdpbiAwIGF1dG8gMXJlbSBhdXRvXG4gICAgICBtYXgtd2lkdGggODAlXG4gICAgJl9faW5mb2FiZW5kXG4gICAgICBqdXN0aWZ5LWNvbnRlbnQgZmxleC1lbmRcbiAgICAmX19vdmVybGF5XG4gICAgJl9faXRlbVxuICAgICAgaDNcbiAgICAgICAgY29sb3IgJGJsYWNrXG4gICAgICAgIGZvbnQtd2VpZ2h0IDYwMFxuICAgICAgICBsaW5lLWhlaWdodCAxLjRyZW1cbiAgICAgICAgZm9udC1zaXplIDEuMnJlbVxuICAgICAgICBwb3NpdGlvbiByZWxhdGl2ZVxuICAgICAgICB0ZXh0LWFsaWduIGNlbnRlclxuICAgICAgICBtYXJnaW4gMTVweCBhdXRvIDEwcHggYXV0b1xuICAgICAgICBoeXBoZW5zIGF1dG9cbiAgICAgIHBcbiAgICAgICAgY29sb3IgJHNlY29uZGFyeWNvbG9yXG5cblxuXG4gICAvL0ludHJvdGV4dFxuICAuaW50cm90ZXh0MjAyM1xuICAgIGJvcmRlci10b3AgMFxuICAgIC53cmFwcGVyXG4gICAgICAuaW50cm90ZXh0X190aXRsZSBoMVxuICAgICAgICBjb2xvciAkbWFpbmNvbG9yXG4gICAgICAuaW50cm90ZXh0X190ZXh0XG4gICAgICAgIGgxXG4gICAgICAgICAgZm9udC1zaXplIDIuOHJlbVxuICAgICAgICAgIGZvbnQtd2VpZ2h0IDQwMFxuICAgICAgICAgIGNvbG9yICRtYWluY29sb3JcbiAgICAgICAgcFxuICAgICAgICAgIGNvbG9yICRzZWNvbmRhcnljb2xvclxuXG4jaW5zdGl0dXRcbi8vU2xpZGVyXG4gIC5zd2lwZXItcGFnaW5hdGlvblxuICAgIHBhZGRpbmcgMCAxMHB4XG4gICAgbWFyZ2luIDAgYXV0b1xuICAgIHRvcCA2ODhweFxuICAgIHotaW5kZXggMzAwMFxuXG4gIC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXRcbiAgICBwYWRkaW5nIDFweFxuICAgIG1hcmdpbiA1cHhcbiAgICB3aWR0aCAxMHB4XG4gICAgaGVpZ2h0IDEwcHhcbiAgICBkaXNwbGF5IGlubGluZS1ibG9ja1xuICAgIGJvcmRlci1yYWRpdXMgMTAwJVxuICAgIGJhY2tncm91bmQgJGJsYWNrQ29sb3JcbiAgICBvcGFjaXR5IC4yXG4gICAgYm9yZGVyIDFweCBzb2xpZCAkd2hpdGVcbiAgICBjb2xvciAkbGlnaHRHcmF5XG5cbiAgLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldC1hY3RpdmVcbiAgICBvcGFjaXR5IDFcbiAgICBiYWNrZ3JvdW5kICRtYWluY29sb3JcbiAgLy9rYWNoZWxuIGNvbnN1bHRpbmdcbiAgLmthY2hlbG5fX2NvbnN1bHRpbmdcbiAgICBoM1xuICAgICAgY29sb3IgJG1haW5jb2xvclxuICAgIC5rYWNoZWxfX3RleHQgYVxuICAgICAgICBjb2xvciAkc2Vjb25kYXJ5Y29sb3JcbiAgLmthY2hlbG5fX2NvbnN1bHRpbmdcbiAgICAua2FjaGVsX19jb250YWluZXJcbiAgICAgIC5rYWNoZWxfX2ltYWdlXG4gICAgICAgIGlcbiAgICAgICAgICAgIGNvbG9yICRtYWluY29sb3JcblxuICAua2FjaGVsX19jb250YWluZXJfX3R5cC1pY29uXG4gICAgLmthY2hlbF9faW1hZ2VcbiAgICAgIG1pbi1oZWlnaHQgMWVtXG4gICAgICBhbGlnbi1pdGVtcyBjZW50ZXJcbiAgICAgIGp1c3RpZnktY29udGVudCBjZW50ZXJcbiAgICAgIGlcbiAgICAgICAgZm9udC1zaXplIDU4cHhcbiAgLy9UZWFtXG4gIC50ZWFtXG4gICAgLnRlYW1fX2l0ZW1cbiAgICAgIC50ZWFtX19jb250ZW50XG4gICAgICAgIGgzXG4gICAgICAgICAgICBjb2xvciAkc2Vjb25kYXJ5Y29sb3IhaW1wb3J0YW50XG4gICAgICAgIHBcbiAgICAgICAgICAgIGNvbG9yICRzZWNvbmRhcnljb2xvclxuICAvL0JlbnRvYm94XG4gIC5iZW50b2JveFxuICAgIC5ibG9ja1xuICAgICAgaDNcbiAgICAgICAgY29sb3IgJHNlY29uZGFyeWNvbG9yXG4gICAgLmJveDJcbiAgICAgIGFcbiAgICAgICAgY29sb3IgJHNlY29uZGFyeWNvbG9yXG5cbiAgLy9MZXJucmVpc2VcbiAgLmxlcm5yZWlzZVxuICAgIC5tY29kZVxuICAgICAgY29sb3IgJHNlY29uZGFyeWNvbG9yXG4gICAgLnRhYnMtY29udGFpbmVyXG4gICAgICBkYXRlXG4gICAgICAgIGZvbnQtc2l6ZSAwLjk1cmVtXG4gICAgICAgIHBhZGRpbmctdG9wIDVweFxuICAgICAgICBjb2xvciAkc2Vjb25kYXJ5Y29sb3JcbiAgICAgIC5tb2R1bGhlYWRlciBoM1xuICAgICAgICBjb2xvciAkc2Vjb25kYXJ5Y29sb3JcbiAgICAgIC50YWJcbiAgICAgICAgLnRhYl9fdGV4dCBoMlxuICAgICAgICAgIGNvbG9yICRtYWluY29sb3JcblxuICAgIC5tb2R1bGVcbiAgICAgICAgaDNcbiAgICAgICAgICAgIGNvbG9yICRzZWNvbmRhcnljb2xvclxuICAgICAgICBwXG4gICAgICAgICAgICBjb2xvciAkc2Vjb25kYXJ5Y29sb3JcblxuXG4gICAgW3JvbGU9XCJ0YWJcIl1bYXJpYS1zZWxlY3RlZD1cInRydWVcIl1cbiAgICAgIGNvbG9yICRtYWluY29sb3JcbiAgICAgIGZvbnQtd2VpZ2h0IDYwMFxuICAgICAgJjpmb2N1c1xuICAgICAgICBvdXRsaW5lIDJweCBkb3R0ZWQgJG1haW5jb2xvclxuICAgIC5sci1idG5cbiAgICAgICAgYmFja2dyb3VuZC1jb2xvciAkbWFpbmNvbG9yXG4gICAgICAgIGNvbG9yICR3aGl0ZVxuICAgICAgICBib3JkZXIgMXB4IHNvbGlkICRtYWluY29sb3JcbiAgICAgICAgYm9yZGVyLXJhZGl1cyAzMHB4XG4gICAgICAgIHBhZGRpbmcgMTBweCAyMHB4XG4gICAgICAgIGZvbnQtc2l6ZSAxLjFyZW1cbiAgICAgICAgZm9udC13ZWlnaHQgNjAwXG4gICAgICAgIG1hcmdpbiAxNXB4IDBcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uIG5vbmVcbiAgICAgICAgZGlzcGxheSBpbmxpbmUtYmxvY2tcbiAgICAgICAgdHJhbnNpdGlvbiBhbGwgMC4zcyBlYXNlXG4gICAgICAgICY6aG92ZXJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yICR3aGl0ZVxuICAgICAgICAgIGNvbG9yICRtYWluY29sb3JcbiAgICAgICAgICBib3JkZXIgMXB4IHNvbGlkICRtYWluY29sb3JcbiAgICAubHItcGFnZVxuICAgICAgY29sb3IgJHNlY29uZGFyeWNvbG9yXG5cbiAgLy9Qb3J0Zm9saW9cbiAgLnBvcnRmb2xpb1xuICAgICZfX2ljb25cbiAgICAgIGlcbiAgICAgICAgY29sb3IgJG1haW5jb2xvclxuICAgICZfX3RleHRcbiAgICAgIGg2XG4gICAgICAgIGNvbG9yICRtYWluY29sb3JcbiAgLy9EaWdpdGFsIFByb2R1Y3RzXG4gIC5kaWdpdGFscHJvZHVjdHNcbiAgICBiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kY29sb3JcbiAgLmRpZ2l0YWxwcm9kdWN0cy5iZ3doaXRlXG4gICAgYmFja2dyb3VuZC1jb2xvciAkd2hpdGUhaW1wb3J0YW50XG4gICAgLmRpZ2l0YWxjb3Vyc2VcbiAgICAgIGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmRjb2xvciFpbXBvcnRhbnRcbiAgICAgIC5yaWdodFxuICAgICAgICAuYnV0dG9uXG4gICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yICRtYWluY29sb3JcbiAgLy9BYmlzIDMgc3BhbHRlclxuICAuYWJpczNzcGFsdGVyX19idXR0b25cbiAgICBiYWNrZ3JvdW5kLWNvbG9yICR3aGl0ZVxuICAgIGNvbG9yICRtYWluY29sb3JcbiAgICBib3JkZXIgMXB4IHNvbGlkICRtYWluY29sb3JcbiAgICBib3JkZXItcmFkaXVzIDEwcHhcbiAgICBwYWRkaW5nIDEwcHggMjBweFxuICAgIGZvbnQtc2l6ZSAxLjFyZW1cbiAgICBmb250LXdlaWdodCA2MDBcbiAgICBtYXJnaW4gMTVweCAwXG4gICAgdGV4dC1kZWNvcmF0aW9uIG5vbmVcbiAgICBkaXNwbGF5IGlubGluZS1ibG9ja1xuICAgIHBvc2l0aW9uIGFic29sdXRlXG4gICAgYm90dG9tIDEwcHg7XG4gICAgdHJhbnNpdGlvbiBhbGwgMC4zcyBlYXNlXG5cbiAgLmFiaXMzc3BhbHRlcl9fYnV0dG9uOmhvdmVyXG4gICAgYmFja2dyb3VuZC1jb2xvciAkbWFpbmNvbG9yXG4gICAgY29sb3IgJHdoaXRlXG4gICAgYm9yZGVyIDFweCBzb2xpZCAkbWFpbmNvbG9yXG5cbiAgLmluZm9ibG9ja1xuICAgIGJhY2tncm91bmQtY29sb3IgJG1haW5jb2xvclxuICAgIGNvbG9yICR3aGl0ZVxuICAgIGJvcmRlci1yYWRpdXMgMHB4XG4gICAgcGFkZGluZyAycmVtIDBcbiAgICBib3gtc2hhZG93IDAgMCA4cHggcmdiYSgwLCAwLCAwLCAwLjEpIGluc2V0XG4gICAgaDNcbiAgICAgIGNvbG9yICR3aGl0ZVxuICAgIHBcbiAgICAgIGNvbG9yICR3aGl0ZVxuXG4gICAgJi5iZ3doaXRlXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yICR3aGl0ZSFpbXBvcnRhbnRcbiAgICAgIGNvbG9yICRzZWNvbmRhcnljb2xvclxuICAgICAgaSAuZmEtc29saWRcbiAgICAgICAgY29sb3IgJG1haW5jb2xvclxuICAgICAgaDJcbiAgICAgICAgY29sb3IgJG1haW5jb2xvciFpbXBvcnRhbnRcbiAgICAgIGgzXG4gICAgICAgIGNvbG9yICRzZWNvbmRhcnljb2xvclxuICAgICAgcFxuICAgICAgICBjb2xvciAkc2Vjb25kYXJ5Y29sb3JcbiAgICAgIC5pbmZvYmxvY2stcm93XG4gICAgICAgICY6bm90KDpsYXN0LWNoaWxkKTo6YWZ0ZXJcbiAgICAgICAgICBib3JkZXItcmlnaHQgMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC40KVxuICAgICAgLmluZm9ibG9jay1pY29uXG4gICAgICAgIGlcbiAgICAgICAgICBmb250LXNpemU6IDIuNXJlbVxuICAgICAgICAgIGNvbG9yOiAkbWFpbmNvbG9yXG4gICAgICAgIGltZ1xuICAgICAgICAgIHdpZHRoOiAyOHB4XG4gICAgICAgICAgaGVpZ2h0OiAyOHB4XG5cbiAgLy9UcmFpbmVyXG4gIC50cmFpbmVyXG4gICAgLnRyYWluZXJfX25hbWVcbiAgICAgIGNvbG9yICRzZWNvbmRhcnljb2xvclxuICAgICAgaDNcbiAgICAgICAgbWFyZ2luIDEuMDI1cmVtIDAgMC4ycmVtIDAhaW1wb3J0YW50XG4gICAgICAgIHBhZGRpbmctdG9wIDVweFxuXG4gICAgLnRyYWluZXJfX2ZvY3VzXG4gICAgICBoNFxuICAgICAgICBjb2xvciAkc2Vjb25kYXJ5Y29sb3JcbiAgICAudHJhaW5lcl9fZm90b1xuICAgICAgLnRyYWluZXJfZm90b190ZXh0XG4gICAgICAgIGJhY2tncm91bmQtY29sb3IgJG1haW5jb2xvclxuICAgICAgICBjb2xvciAkd2hpdGVcbiAgICAgICAgcFxuICAgICAgICAgY29sb3IgJHdoaXRlXG4gICAgICAgIGg0XG4gICAgICAgICAgY29sb3IgJHNlY29uZGFyeWNvbG9yXG4gICAgICAgICAgZm9udC1zaXplIDEuMjVyZW1cbiAgICAudHJhaW5lcl90ZXh0ZVxuICAgICAgcFxuICAgICAgICBmb250LXNpemUgMXJlbVxuXG4gICAgLnN3aXBlci1pbXByZXNzaW9uZW5cbiAgICAgIC50cmFpbmVyX19mb3RvXG4gICAgICAgIHBcbiAgICAgICAgICBjb2xvciAkd2hpdGUgIWltcG9ydGFudFxuICAgICAgICBoNFxuICAgICAgICAgIGNvbG9yICR3aGl0ZSAhaW1wb3J0YW50XG4gICAgICAudHJhaW5lcl9mb3RvX3RleHRcbiAgICAgICAgY29sb3IgJHdoaXRlICFpbXBvcnRhbnRcbiAgICAgIC50cmFpbmVyX21haWwgYVxuICAgICAgICBjb2xvciAkd2hpdGVcbiAgLy9JbmZvYm94ZW5cbiAgLmluZm9ib3hlblxuICAgIGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmRjb2xvclxuICAgIGJvcmRlci1yYWRpdXMgMTBweFxuICAgIHBhZGRpbmcgMjBweFxuICAgIGJveC1zaGFkb3cgMCAwIDE2cHggcmdiYSgwLCAwLCAwLCAwLjEpXG4gICAgaDNcbiAgICAgIGNvbG9yICRzZWNvbmRhcnljb2xvclxuICAgIHBcbiAgICAgIGNvbG9yICRzZWNvbmRhcnljb2xvclxuICAgICZfX2NvbnRhaW5lclxuICAgICAgaDNcbiAgICAgICAgYm9yZGVyLXRvcDogM3B4IHNvbGlkICRtYWluY29sb3JcblxuICAucGFyYWxsYXhJdGVtXG4gICAgLnBhcmFsbGF4VGV4dFxuICAgICAgcFxuICAgICAgICBmb250LXN0eWxlIG5vcm1hbFxuICAgICAgICBtYXJnaW4gMCBhdXRvXG4gICAgICAgIGNvbG9yICR3aGl0ZSAhaW1wb3J0YW50XG4gICAgICAgIGZvbnQtc2l6ZSAxLjY1cmVtIWltcG9ydGFudFxuICAgICAgICB0ZXh0LXNoYWRvdyAxcHggMXB4IDJweCByZ2JhKDAsNzEsODAsMC41KVxuXG4gIC5pbXByZXNzaW9uZW5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kY29sb3JcbiAgJl9fbWFpbmJveFxuICAgIGFcbiAgICAgIGNvbG9yOiAkbWFpbmNvbG9yXG5cbiAgICAvL1Rlc3RpbW9uaWFsc1xuICAudGVzdGltb25pYWxzblxuICAgIC5zd2lwZXItdGVzdGltb25pYWxzLnN0aW1tZW5cbiAgICAgIC5zd2lwZXItc2xpZGVcbiAgICAgICAgbWFyZ2luOiA1cHggMCAwIDEwcHg7XG4gICAgICAgIHdpZHRoIDQwMHB4XG4gICAgICAgIGgzXG4gICAgICAgICAgY29sb3IgJG1haW5jb2xvclxuICAgICAgICAgICY6OmJlZm9yZVxuICAgICAgICAgICAgY29sb3IgJG1haW5jb2xvclxuICAgICAgICBwXG4gICAgICAgICAgZm9udC1zaXplIDAuNzVyZW0haW1wb3J0YW50XG4gICAgICAgIC5zd2lwZXItc2xpZGUtd3JhcHBlclxuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAgMjVweCAyNXB4IDI1cHhcbiAgICAgICAgICBib3gtc2hhZG93OiAycHggMnB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjI1KVxuICAgICAgICAgIGhlaWdodDogOTUlXG4gICAgICAgIC50ZXN0aW1vbmlhbHNuX19uYW1lIHBcbiAgICAgICAgICBmb250LXdlaWdodDogNTAwXG4gICAgLnRlc3RpbW9uaWFscy1wcmV2LFxuICAgIC50ZXN0aW1vbmlhbHMtbmV4dFxuICAgICAgZGlzcGxheSBub25lXG4gICAgLnN3aXBlci1wYWdpbmF0aW9uXG4gICAgICB0b3AgNTEwcHhcbiAgICAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0XG4gICAgICBjb2xvcjogI2VjZWNlY1xuXG4gIC50ZXN0aW1vbmlhbDIwMjVfX2NhcmRcbiAgICAudGVzdGltb25pYWwyMDI1X19jb250ZW50IGgzXG4gICAgICAgIGNvbG9yICRzZWNvbmRhcnljb2xvclxuICAgICAgICBmb250LXNpemUgMS40cmVtXG4gICAgICAgIG1hcmdpbi1ib3R0b20gMC41cmVtXG4gIC50ZXN0aW1vbmlhbDIwMjVfX2NhcmRcbiAgICAudGVzdGltb25pYWwyMDI1X19jb250ZW50IHBcbiAgICAgICAgY29sb3IgJG1haW5jb2xvclxuICAgICAgICBmb250LXNpemUgMS4xcmVtXG4gICAgICAgIGxpbmUtaGVpZ2h0IDEuNHJlbVxuXG4jaW5zdGl0dXQuaG9tZVxuICAuaW50cm90ZXh0MjAyM1xuICAgIC5pbnRyb3RleHRfX3RpdGxlXG4gICAgICB0ZXh0LWFsaWduIGNlbnRlclxuICAgICAgaDJcbiAgICAgICAgbWFyZ2luIDFyZW0gYXV0b1xuICAuaW50cm90ZXh0XG4gICAgYm9yZGVyLXRvcCAwXG4gICAgLmludHJvdGV4dF9fdGl0bGVcbiAgICAgICAgdGV4dC1hbGlnbiBjZW50ZXJcbiAgICAuaW50cm90ZXh0X190ZXh0XG4gICAgICBwXG4gICAgICAgIGNvbG9yICRzZWNvbmRhcnljb2xvclxuICAgICAgICBmb250LXNpemUgMS40cmVtXG4gICAgLmludHJvdGV4dF9fdGl0bGVcbiAgICAgIGgxXG4gICAgICAgIGNvbG9yICRtYWluY29sb3JcbiAgICAgICAgbWFyZ2luIDAgYXV0byAwLjVyZW0gYXV0b1xuICAgICAgICBwYWRkaW5nLXRvcCAycmVtXG4gICAgICAgIHRleHQtYWxpZ24gY2VudGVyXG4gICAgICAgIGZvbnQtc2l6ZSAxLjhyZW1cbiAgICAgICAgbGluZS1oZWlnaHQgMS4yZW1cbiAgICAgICAgd2lkdGggNzUlXG4gICAgICBoMlxuICAgICAgICBjb2xvciAkbWFpbmNvbG9yXG4gICAgICAgIGZvbnQtc2l6ZSAzLjZyZW1cbiAgICAgICAgbGluZS1oZWlnaHQgMS4xZW1cbiAgICAgICAgZm9udC13ZWlnaHQgNzAwXG4gICAgICAgIHRleHQtYWxpZ24gY2VudGVyXG4gICAgICAgIG1hcmdpbiAycmVtIGF1dG8gMCBhdXRvXG4gICAgICAgIHdpZHRoIDEwMCVcblxuI2luc3RpdHV0LnN1YnBhZ2VcbiAgLmludHJvdGV4dDIwMjNcbiAgICAuaW50cm90ZXh0X190aXRsZVxuICAgICAgaDFcbiAgICAgICAgbWFyZ2luLXRvcCAwXG4gICAgICAgIHBhZGRpbmctdG9wIDBcblxuXG5cbiAgLnRleHRjb250YWluZXJcbiAgICBiYWNrZ3JvdW5kLWltYWdlIHVybCgnL2ZpbGVhZG1pbi8vQUJJU19CdXNpbmVzcy9SZWRha3Rpb24vYWJpcy1hbmdlYm90LmpwZycpXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbi15IC0yMzBweFxuICAgIGJhY2tncm91bmQtcmVwZWF0IG5vLXJlcGVhdFxuICAgIGJhY2tncm91bmQtc2l6ZSBjb3ZlclxuICAgIHBhZGRpbmcgMnJlbSAwXG4gICAgaDJcbiAgICAgIGNvbG9yICR3aGl0ZVxuICAgICAgdGV4dC1zaGFkb3cgMnB4IDJweCA4cHggcmdiYSgwLDAsMCwwLjI1KVxuICAgIGgzXG4gICAgICBkaXNwbGF5IG5vbmVcbiAgICAudHgtcG93ZXJtYWlsXG4gICAgICBpbnB1dFxuICAgICAgICBib3JkZXItcmFkaXVzIDVweFxuICAgICAgLnJvdzpoYXMoaW5wdXRbdHlwZT0ndGV4dCddKVxuICAgICAgICBkaXNwbGF5IGZsZXhcbiAgICAgICAgZmxleC1kaXJlY3Rpb24gcm93XG4gICAgICAgIGZsZXgtd3JhcCB3cmFwXG4gICAgICAgIGdhcCAxcmVtXG4gICAgICAgIG1pbi13aWR0aCAzMDBweFxuXG4gICAgICAvKiBQbGFjZSBuYW1lIGFuZCBlbWFpbCBpbnB1dHMgc2lkZS1ieS1zaWRlIHdpdGggMXJlbSBnYXAgKi9cbiAgICAgIC5yb3c6aGFzKGlucHV0W25hbWU9XCJ0eF9wb3dlcm1haWxfcGkxW2ZpZWxkXVtpaHJuYW1lXVwiXSk6aGFzKCNwb3dlcm1haWxfZmllbGRfaWhyZWVfbWFpbClcbiAgICAgICAgZGlzcGxheSBmbGV4XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uIHJvd1xuICAgICAgICBmbGV4LXdyYXAgd3JhcFxuICAgICAgICBnYXAgMXJlbVxuICAgICAgICAucG93ZXJtYWlsX2ZpZWxkd3JhcFxuICAgICAgICAgIHdpZHRoIGNhbGMoNTAlIC0gMnJlbSlcbiAgICAgICAgICBmbGV4IDAgMSBjYWxjKDUwJSAtIDIuMXJlbSlcbiAgICAgICAgICAucG93ZXJtYWlsX19maWVsZFxuICAgICAgICAgICAgd2lkdGggMTAwJVxuICAgICAgICAvL2lucHV0W25hbWU9XCJ0eF9wb3dlcm1haWxfcGkxW2ZpZWxkXVtpaHJuYW1lXVwiXSxcbiAgICAgICAjcG93ZXJtYWlsX2ZpZWxkX2locmVlX21haWxcbiAgICAgICAgbWFyZ2luLXRvcCAzcHhcbiAgICAgICAgLy8gIHdpZHRoIDEwMCVcbiAgICAgIGlucHV0W3R5cGU9J3RleHQnXVxuICAgICAgICB3aWR0aCAxMDAlXG4gICAgICAgIGhlaWdodCAzLjVyZW1cbiAgICAgIHRleHRhcmVhXG4gICAgICAgIHdpZHRoIDEwMCVcbiAgICAgICAgYm9yZGVyLXJhZGl1cyA1cHhcbiAgICAgIGlucHV0W3R5cGU9J3N1Ym1pdCddXG4gICAgICAgIGJvcmRlci1yYWRpdXMgMjVweFxuICAgICAgaW5wdXRbdHlwZT0ndGV4dCddXG4gICAgICB0ZXh0YXJlYVxuICAgICAgICBtYXJnaW4tdG9wIDEwcHhcbiAgICAgICAgYm94LXNoYWRvdyAycHggMnB4IDhweCByZ2JhKDAsMCwwLDAuMjUpIGluc2V0XG4gICAgICAucG93ZXJtYWlsX2xhYmVsXG4gICAgICAgIGRpc3BsYXkgbm9uZVxuICAgICAgLnBvd2VybWFpbC1lcnJvcnMtbGlzdFxuICAgICAgICBsaVxuICAgICAgICAgIGNvbG9yICR3aGl0ZVxuICAgICAgLmZvcm0tY2hlY2stbGFiZWxcbiAgICAgICAgY29sb3IgJHdoaXRlXG4gICAgICAgIGFcbiAgICAgICAgICBjb2xvciAkd2hpdGVcbiAgICAgICAgICB0ZXh0LWRlY29yYXRpb24gdW5kZXJsaW5lXG5cblxuXG4uaW50cm90ZXh0MjAyM1xuICAgIGJvcmRlci10b3AgMFxuICAgIC5pbnRyb3RleHRfX3RleHRcbiAgICAgIHBcbiAgICAgICAgY29sb3IgJGJsYWNrQ29sb3JcbiAgICAgICAgZm9udC1zaXplIDEuMnJlbVxuICAgLmJsb2dcbiAgICAgIGg0XG4gICAgICAgIGZvbnQtc2l6ZSAxLjFyZW1cblxuK2JlbG93KDcwMHB4KVxuICAjaW5zdGl0dXRcbiAgICAuYnRuLWdyb3VwXG4gICAgICBidXR0b25cbiAgICAgICAgbWFyZ2luLXRvcCAxcmVtXG4gICNpbnN0aXR1dC5zdWJwYWdlXG4gICAgLnRleHRjb250YWluZXJcbiAgICAgIC50eC1wb3dlcm1haWxcbiAgICAgICAgLnJvdzpoYXMoaW5wdXRbbmFtZT1cInR4X3Bvd2VybWFpbF9waTFbZmllbGRdW2locm5hbWVdXCJdKTpoYXMoI3Bvd2VybWFpbF9maWVsZF9paHJlZV9tYWlsKVxuICAgICAgICAgIGRpc3BsYXkgZmxleFxuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uIGNvbHVtblxuICAgICAgICAucG93ZXJtYWlsX2ZpZWxkd3JhcFxuICAgICAgICAgIHdpZHRoIGNhbGMoMTAwJSlcbiAgICAgICAgICBmbGV4IDAgMSBjYWxjKDEwMCUpXG4gICAgICAgICAgaW5wdXRcbiAgICAgICAgICAgIHdpZHRoIDEwMCVcblxuXG4rYWJvdmUoMTAyNHB4KVxuICAjaW5zdGl0dXRcbiAgICAud3JhcHBlclxuICAgICAgd2lkdGggOTAlXG5cblxuXG5cbithYm92ZSgxNDAwcHgpXG4gICNpbnN0aXR1dFxuICAgIC53cmFwcGVyXG4gICAgICB3aWR0aCAkd3JhcHBlcldpZHRoXG5cbiNjMTMzNFxuXG4gIC5rYWNoZWxfX3RpdGxlXG4gICAgdGV4dC1hbGlnbiBsZWZ0XG4gICAgcGFkZGluZy10b3AgMnJlbVxuICAua2FjaGVsX19pbWFnZVxuICAgIHBhZGRpbmctdG9wIDNyZW0haW1wb3J0YW50XG4gICAgaW1nXG4gICAgICBtYXJnaW4tdG9wIDNyZW1cbiAgICAgIG1hcmdpbi1ib3R0b20gNHJlbVxuICAgIGltZ1tzcmMkPVwiLnN2Z1wiXVxuICAgICAgbWFyZ2luLXRvcCA0cmVtXG4gICAgICB3aWR0aCA4NXB4XG4gICAgICBoZWlnaHQgYXV0b1xuXG4jYzE0MDVcbiAgaDNcbiAgICBmb250LXNpemUgMS4ycmVtIiwiLy8gLS0tLS0tLS0tXG4vLyBVdGlsaXRpZXNcbi8vIC0tLS0tLS0tLVxuXG4vLyBBbGlhczogTm8gU2VsZWN0XG4vLyBZb3UgY2FuJ3QgaGlnaGxpZ2h0IHRoaXMuXG5cbm5vLXNlbGVjdCgpXG4gIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZVxuICB1c2VyLXNlbGVjdDogbm9uZVxuXG4vLyBBbGlhczogQlxuLy8gQm9yZGVyLCBidXQgcXVpY2tlciBhbmQgd2l0aCBhbiBpbnRlbGxpZ2VudCBkZWZhdWx0LlxuXG5iKClcbiAgYXJndW1lbnRzID0gdW5xdW90ZSgnMXB4IHNvbGlkJykgdW5sZXNzIGFyZ3VtZW50c1xuICBib3JkZXI6IGFyZ3VtZW50c1xuXG4vLyBBbGlhczogVHJhbnNpdGlvblxuLy9cbi8vIFRyYW5zaXRpb24gd2l0aCBhbiBpbnRlbGxpZ2VudCBkZWZhdWx0LlxuLy9cbi8vIGV4LiB0cmFuc2l0aW9uKClcbi8vIGV4LiB0cmFuc2l0aW9uOiBjb2xvciAxcyBlYXNlXG4vLyBleC4gdHJhbnNpdGlvbihjb2xvciAxcyBlYXNlLCBiYWNrZ3JvdW5kIDIuNHMgbGluZWFyKVxuXG50cmFuc2l0aW9uKClcbiAgYXJndW1lbnRzID0gdW5xdW90ZSgnYWxsIC4zcyBlYXNlJykgdW5sZXNzIGFyZ3VtZW50c1xuICB0cmFuc2l0aW9uOiBhcmd1bWVudHNcblxuLy8gQWxpYXM6IEJvcmRlciBCb3hcbi8vIEEgcXVpY2tlciB3YXkgdG8gc3BlY2lmeSBib3JkZXItYm94IHNpemluZy5cblxuYm9yZGVyLWJveCgpXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3hcblxuLy8gQWxpYXM6IE9wZW50eXBlIGxpZ2F0dXJlc1xuLy9cbi8vIFRoZSB2YXN0IG1ham9yaXR5IG9mIGZvbnRzIGNvbnRhaW4gbG93ZXJjYXNlIGFuZCB1cHBlcmNhc2UgYWxwaGFiZXRzLFxuLy8gbnVtZXJhbHMsIHB1bmN0dWF0aW9uIGFuZCBhY2NlbnRzLiBNYW55IHByb2Zlc3Npb25hbGx5LWRlc2lnbmVkIGZvbnRzXG4vLyBhbHNvIGNvbnRhaW4gbGlnYXR1cmVzLCBhbHRlcm5hdGl2ZSBjaGFyYWN0ZXJzLCBzbWFsbGNhcHMsIGRpZmZlcmVudCBraW5kcyBvZlxuLy8gbnVtYmVycywgYW5kIHNvbWV0aW1lcyBtdWNoIG1vcmUgYmVzaWRlcy4gVGhpcyBlbmFibGVzIGl0LlxuLy9cbi8vIFNvdXJjZTogaHR0cDovL3d3dy5uZXduZXQtc29mdC5jb20vYmxvZy9jc3N0eXBvZ3JhcGh5XG4vLyBBZGRpdGlvbmFsOiBodHRwOi8vYmxvZy5mb250ZGVjay5jb20vcG9zdC8xNTc3NzE2NTczNC9vcGVudHlwZS0xXG5cbm9wZW4tdHlwZS1saWdhdHVyZXMoKVxuICBmb250LWZlYXR1cmUtc2V0dGluZ3M6IFwibGlnYVwiLCBcImRsaWdcIlxuXG4vLyBBbGlhczogTXVsdGktbGluZSBwYWRkaW5nXG4vL1xuLy8gWW91IGNhbiBub3QgYXBwbHkgdGhlIGJhY2tncm91bmQgYW5kIHBhZGRpbmcgdG8gYSA8c3Bhbj4gb3IgYW4gaW5saW5lIGVsZW1lbnQuXG4vLyBUaGUgbGVmdCBhbmQgcmlnaHQgcGFkZGluZyB3aWxsIG9ubHkgYXBwbHkgdG8gdGhlIHZlcnkgZmlyc3QgYW5kIHZlcnkgbGFzdCBsaW5lLlxuLy8gT24gZWFjaCBvZiB0aGUgbWlkZGxlIGxpbmVzLCB0aGUgYmFja2dyb3VuZCB3aWxsIGJ1dHQgdXAgaW1tZWRpYXRlbHkgbmV4dCB0byB0aGUgdGV4dC5cbi8vXG4vLyBUaGUgYXR0cmlidXRlIGJveC1kZWNvcmF0aW9uLWJyZWFrIHNvbHZlcyB0aGlzIHByb2JsZW0gYnV0IG5lZWRzIHByZWZpeGluZy5cbi8vXG4vLyBTb3VyY2U6IGh0dHA6Ly9jb2RlcGVuLmlvL2NocmlzY295aWVyL3Blbi9oSXZGZVxuXG5tdWx0aS1saW5lLXBhZGRpbmcoKVxuICBib3gtZGVjb3JhdGlvbi1icmVhazogY2xvbmU7XG5cbi8vIE1peGluOiBSb3VuZGVkXG4vL1xuLy8gVW5sZXNzIHlvdSBhcmUgd29ya2luZyB3aXRoIGEgcmlkaWN1bG91c2x5IGxhcmdlIGVsZW1lbnQsIHRoaXMgd2lsbCByb3VuZCB0aGVcbi8vIGNvcm5lcnMgYXMgbXVjaCBhcyBjc3Mgd2lsbCBhbGxvdy4gRXZlbiBpbiBJRS5cbi8vXG4vLyBleC4gcm91bmRlZCgpXG5cbnJvdW5kZWQoKVxuICBib3JkZXItcmFkaXVzOiA5OTlweFxuXG4vLyBNaXhpbjogVHJpYW5nbGVcbi8vXG4vLyBPbmUgb2YgbXkgZmF2b3JpdGVzLiBNYWtlcyBhIGxpdHRsZSBjc3MgdHJpYW5nbGUgZm9yIHlvdS4gUGFzcyBpdCBhIGRpcmVjdGlvblxuLy8gKHVwLCBkb3duLCBsZWZ0LCByaWdodCksIHNpemUgKGluIHBpeGVscyksIGFuZCBhIGNvbG9yLlxuLy9cbi8vIGV4LiB0cmlhbmdsZSgpXG4vLyBleC4gdHJpYW5nbGU6ICdkb3duJyAxNXB4IGJsdWVcblxudHJpYW5nbGUoJGRpcmVjdGlvbiA9ICd1cCcsICRzaXplID0gMTBweCwgJGNvbG9yID0gIzAwMClcbiAgd2lkdGg6IDBcbiAgaGVpZ2h0OiAwXG4gIGlmICRkaXJlY3Rpb24gPT0gJ3VwJ1xuICAgIGJvcmRlci1sZWZ0OiAkc2l6ZSBzb2xpZCB0cmFuc3BhcmVudFxuICAgIGJvcmRlci1yaWdodDogJHNpemUgc29saWQgdHJhbnNwYXJlbnRcbiAgICBib3JkZXItYm90dG9tOiAkc2l6ZSBzb2xpZCAkY29sb3JcbiAgZWxzZSBpZiAkZGlyZWN0aW9uID09ICdkb3duJ1xuICAgIGJvcmRlci1sZWZ0OiAkc2l6ZSBzb2xpZCB0cmFuc3BhcmVudFxuICAgIGJvcmRlci1yaWdodDogJHNpemUgc29saWQgdHJhbnNwYXJlbnRcbiAgICBib3JkZXItdG9wOiAkc2l6ZSBzb2xpZCAkY29sb3JcbiAgZWxzZSBpZiAkZGlyZWN0aW9uID09ICdsZWZ0J1xuICAgIGJvcmRlci10b3A6ICRzaXplIHNvbGlkIHRyYW5zcGFyZW50XG4gICAgYm9yZGVyLWJvdHRvbTogJHNpemUgc29saWQgdHJhbnNwYXJlbnRcbiAgICBib3JkZXItcmlnaHQ6ICRzaXplIHNvbGlkICRjb2xvclxuICBlbHNlIGlmICRkaXJlY3Rpb24gPT0gJ3JpZ2h0J1xuICAgIGJvcmRlci10b3A6ICRzaXplIHNvbGlkIHRyYW5zcGFyZW50XG4gICAgYm9yZGVyLWJvdHRvbTogJHNpemUgc29saWQgdHJhbnNwYXJlbnRcbiAgICBib3JkZXItbGVmdDogJHNpemUgc29saWQgJGNvbG9yXG5cbi8vIE1peGluOiBEZWJ1Z1xuLy9cbi8vIERlYnVnZ2luZyB0b29sIC0gYWRkcyBhIGJvcmRlciB0byB0aGUgY3VycmVudCBlbGVtZW50LCBpdHMgY2hpbGRyZW4sXG4vLyBncmFuZGNoaWxkcmVuLCBldGMgc28geW91IGNhbiBzZWUgd2hhdCdzIHVwIOKAkyBncmVhdCBmb3IgcHJlY2lzZSBsYXlvdXRcbi8vIHR3ZWFrcy4gIEl0IHdpbGwgYWxzbyBhZGQgZmxhZ3MgaWYgeW91IG1hZGUgbWlzdGFrZXMgbGlrZSBwdXQgaW4gaW5saW5lXG4vLyBzdHlsZXMsIGZvcmdvdCBhbiBhbHQgb24gYW4gaW1hZ2UsIGxlZnQgdGhlIGFsdCBibGFuaywgZXRjLiBOb3QgdG8gYmUgdXNlZFxuLy8gaW4gcHJvZHVjdGlvbiwgb2J2aW91c2x5LlxuLy9cbi8vIHZpYSBkYm94OiBodHRwOi8vY29kZXBlbi5pby9kYm94L3Blbi9HSlp6WW8/ZWRpdG9ycz0xMTBcblxuZGVidWcoKVxuICBib3JkZXIgMXB4IHNvbGlkIE1lZGl1bVB1cnBsZVxuICA+ICpcbiAgICBib3JkZXIgMXB4IHNvbGlkIERhcmtLaGFraVxuICA+ICogPiAqXG4gICAgYm9yZGVyIDFweCBzb2xpZCBNZWRpdW1UdXJxdW9pc2VcbiAgPiAqID4gKiA+ICpcbiAgICBib3JkZXIgMXB4IHNvbGlkIExpZ2h0U2xhdGVHcmF5XG4gID4gKiA+ICogPiAqID4gKlxuICAgIGJvcmRlciAxcHggc29saWQgTGlnaHRCbHVlXG4gID4gKiA+ICogPiAqID4gKiA+ICpcbiAgICBib3JkZXIgMXB4IHNvbGlkIE1lZGl1bVNsYXRlQmx1ZVxuICA+ICogPiAqID4gKiA+ICogPiAqID4gKlxuICAgIGJvcmRlciAxcHggc29saWQgRGVlcFNreUJsdWVcbiAgPiAqID4gKiA+ICogPiAqID4gKiA+ICogPiAqXG4gICAgYm9yZGVyIDFweCBzb2xpZCBEYXJrU2VhR3JlZW5cblxuICBpbWdcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZjAwXG4gICAgLXdlYmtpdC1maWx0ZXI6IGh1ZS1yb3RhdGUoMzMwZGVnKSBjb250cmFzdCguNzUpIHNhdHVyYXRlKDYpXG4gICAgZmlsdGVyOiBodWUtcm90YXRlKDMzMGRlZykgY29udHJhc3QoLjc1KSBzYXR1cmF0ZSg2KVxuXG4gIGltZ1thbHRdXG4gICAgYm9yZGVyOiAxcHggc29saWQgTGltZUdyZWVuXG4gICAgLXdlYmtpdC1maWx0ZXI6IG5vbmVcbiAgICBmaWx0ZXI6IG5vbmVcblxuICBpbWdbYWx0PVwiXCJdXG4gICAgYm9yZGVyOiAxcHggc29saWQgZ29sZFxuICAgIC13ZWJraXQtZmlsdGVyOiBjb250cmFzdCgxKSBzYXR1cmF0ZSgyKVxuICAgIGZpbHRlcjogY29udHJhc3QoMSkgc2F0dXJhdGUoMilcblxuICBhXG4gICAgYmFja2dyb3VuZDogcmdiYSgjZjAwLCAuMSlcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZjAwXG5cbiAgYVt0aXRsZV1cbiAgICBiYWNrZ3JvdW5kOiBub25lXG4gICAgYm9yZGVyLWNvbG9yOiBMaW1lR3JlZW5cblxuICBzdHlsZVxuICAgIGJvcmRlcjogYmxvY2tcblxuICBbc3R5bGVdLCBzdHlsZSwgW2NsYXNzPVwiXCJdLCBbaWQ9XCJcIl0sIGFbaHJlZj1cIiNcIl1cbiAgICBiYWNrZ3JvdW5kOiByZ2JhKHllbGxvdywgLjIpXG4gICAgYm9yZGVyOiAxcHggc29saWQgZ29sZFxuXG4vLyBCbG9jayBNaXhpbjogUXVhbnRpdHkgUXVlcmllc1xuLy9cbi8vIFNldCBydWxlcyBmb3IgYSBzZWxlY3RvciBiYXNlZCBvbiBhIHNwZWNpZmljIHNpYmxpbmcgY291bnQuXG4vLyB2aWE6IGh0dHBzOi8vZ2l0aHViLmNvbS9wYXNjYWxkdWV6L3Bvc3Rjc3MtcXVhbnRpdHktcXVlcmllc1xuLy9cbi8vIGV4LiArcXVhbnRpdHktYXQtbGVhc3QoNilcbi8vIGV4LiArcXVhbnRpdHktYXQtbW9zdCgxMiwgZGl2KVxuLy8gZXguICtxdWFudGl0eS1iZXR3ZWVuKDAsIDgsIHNwYW4pXG4vLyBleC4gK3F1YW50aXR5LWV4YWN0bHkoNSlcblxucXVhbnRpdHktYXQtbGVhc3QoJGNvdW50ID0gNCwgJHNlbGVjdG9yID0gbGkpXG4gICYgPiB7JHNlbGVjdG9yfTpudGgtbGFzdC1jaGlsZChuK3skY291bnR9KVxuICAmID4geyRzZWxlY3Rvcn06bnRoLWxhc3QtY2hpbGQobit7JGNvdW50fSkgfiB7JHNlbGVjdG9yfVxuICAgIHtibG9ja31cblxucXVhbnRpdHktYXQtbW9zdCgkY291bnQgPSA0LCAkc2VsZWN0b3IgPSBsaSlcbiAgJiA+IHskc2VsZWN0b3J9Om50aC1sYXN0LWNoaWxkKC1uK3skY291bnR9KTpmaXJzdC1jaGlsZFxuICAmID4geyRzZWxlY3Rvcn06bnRoLWxhc3QtY2hpbGQoLW4reyRjb3VudH0pOmZpcnN0LWNoaWxkIH4geyRzZWxlY3Rvcn1cbiAgICB7YmxvY2t9XG5cbnF1YW50aXR5LWJldHdlZW4oJHN0YXJ0ID0gMCwgJGVuZCA9IDEwLCAkc2VsZWN0b3IgPSBsaSlcbiAgJiA+IHskc2VsZWN0b3J9Om50aC1sYXN0LWNoaWxkKG4reyRzdGFydH0pOm50aC1sYXN0LWNoaWxkKC1uK3skZW5kfSk6Zmlyc3QtY2hpbGRcbiAgJiA+IHskc2VsZWN0b3J9Om50aC1sYXN0LWNoaWxkKG4reyRzdGFydH0pOm50aC1sYXN0LWNoaWxkKC1uK3skZW5kfSk6Zmlyc3QtY2hpbGQgfiB7JHNlbGVjdG9yfVxuICAgIHtibG9ja31cblxucXVhbnRpdHktZXhhY3RseSgkY291bnQgPSA0LCAkc2VsZWN0b3IgPSBsaSlcbiAgJiA+IHskc2VsZWN0b3J9Om50aC1sYXN0LWNoaWxkKHskY291bnR9KTpmaXJzdC1jaGlsZFxuICAmID4geyRzZWxlY3Rvcn06bnRoLWxhc3QtY2hpbGQoeyRjb3VudH0pOmZpcnN0LWNoaWxkIH4geyRzZWxlY3Rvcn1cbiAgICB7YmxvY2t9XG5cbi8vIEZ1bmN0aW9uOiBSZW0gQ2FsY3VsYXRvclxuLy9cbi8vIENhbGN1bGF0ZXMgYW5kIHJldHVybnMgdGhlIHJlbSB2YWx1ZSBiYXNlZCBvbiBweCBpbnB1dC4gRGVmYXVsdCBiYXNlIGZvbnRcbi8vIHNpemUgaXMgMTZweCwgYnV0IGNhbiBiZSBjaGFuZ2VkIHdpdGggYmFzZS1mb250LXNpemUuXG4vL1xuLy8gZXggICAgICAgOiByZW0oMzBweCkgb3IgcmVtKDMwKVxuLy8gcmV0dXJucyAgOiAxLjg3NXJlbVxuXG5yZW0oJHZhbHVlKVxuICAkYmFzZS1mb250LXNpemUgPz0gMTZweFxuICAkdHlwZSA9IHVuaXQoJHZhbHVlKVxuICBpZiAkdHlwZSA9PSBweFxuICAgIHJldHVybiB1bml0KCR2YWx1ZSAvICRiYXNlLWZvbnQtc2l6ZSwgJ3JlbScpXG4gIGVsc2VcbiAgICByZXR1cm4gdW5pdCgkdmFsdWUsICR0eXBlKVxuXG4vLyBDdXN0b20gYW5pbWF0aW9uIHRpbWluZyBmdW5jdGlvbnMsIHBvcnRlZCBmcm9tIGJvdXJib25cbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS90aG91Z2h0Ym90L2JvdXJib24vYmxvYi9tYXN0ZXIvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX3RpbWluZy1mdW5jdGlvbnMuc2Nzc1xuXG4vLyBlYXNlLWluXG4kZWFzZS1pbi1xdWFkID0gICAgICBjdWJpYy1iZXppZXIoMC41NTAsICAwLjA4NSwgMC42ODAsIDAuNTMwKVxuJGVhc2UtaW4tY3ViaWMgPSAgICAgY3ViaWMtYmV6aWVyKDAuNTUwLCAgMC4wNTUsIDAuNjc1LCAwLjE5MClcbiRlYXNlLWluLXF1YXJ0ID0gICAgIGN1YmljLWJlemllcigwLjg5NSwgIDAuMDMwLCAwLjY4NSwgMC4yMjApXG4kZWFzZS1pbi1xdWludCA9ICAgICBjdWJpYy1iZXppZXIoMC43NTUsICAwLjA1MCwgMC44NTUsIDAuMDYwKVxuJGVhc2UtaW4tc2luZSA9ICAgICAgY3ViaWMtYmV6aWVyKDAuNDcwLCAgMC4wMDAsIDAuNzQ1LCAwLjcxNSlcbiRlYXNlLWluLWV4cG8gPSAgICAgIGN1YmljLWJlemllcigwLjk1MCwgIDAuMDUwLCAwLjc5NSwgMC4wMzUpXG4kZWFzZS1pbi1jaXJjID0gICAgICBjdWJpYy1iZXppZXIoMC42MDAsICAwLjA0MCwgMC45ODAsIDAuMzM1KVxuJGVhc2UtaW4tYmFjayA9ICAgICAgY3ViaWMtYmV6aWVyKDAuNjAwLCAtMC4yODAsIDAuNzM1LCAwLjA0NSlcbiRlYXNlLWluLXN3aWZ0ID0gICAgIGN1YmljLWJlemllcigwLjkwMCwgIDAuMDAwLCAwLjQ1MCwgMS4wMDApXG5cbi8vIGVhc2Utb3V0XG4kZWFzZS1vdXQtcXVhZCA9ICAgICBjdWJpYy1iZXppZXIoMC4yNTAsICAwLjQ2MCwgMC40NTAsIDAuOTQwKVxuJGVhc2Utb3V0LWN1YmljID0gICAgY3ViaWMtYmV6aWVyKDAuMjE1LCAgMC42MTAsIDAuMzU1LCAxLjAwMClcbiRlYXNlLW91dC1xdWFydCA9ICAgIGN1YmljLWJlemllcigwLjE2NSwgIDAuODQwLCAwLjQ0MCwgMS4wMDApXG4kZWFzZS1vdXQtcXVpbnQgPSAgICBjdWJpYy1iZXppZXIoMC4yMzAsICAxLjAwMCwgMC4zMjAsIDEuMDAwKVxuJGVhc2Utb3V0LXNpbmUgPSAgICAgY3ViaWMtYmV6aWVyKDAuMzkwLCAgMC41NzUsIDAuNTY1LCAxLjAwMClcbiRlYXNlLW91dC1leHBvID0gICAgIGN1YmljLWJlemllcigwLjE5MCwgIDEuMDAwLCAwLjIyMCwgMS4wMDApXG4kZWFzZS1vdXQtY2lyYyA9ICAgICBjdWJpYy1iZXppZXIoMC4wNzUsICAwLjgyMCwgMC4xNjUsIDEuMDAwKVxuJGVhc2Utb3V0LWJhY2sgPSAgICAgY3ViaWMtYmV6aWVyKDAuMTc1LCAgMC44ODUsIDAuMzIwLCAxLjI3NSlcbiRlYXNlLW91dC1zd2lmdCA9ICAgIGN1YmljLWJlemllcigwLjU1MCwgIDAuMDAwLCAwLjEwMCwgMS4wMDApXG5cbi8vIGVhc2UtaW4tb3V0XG4kZWFzZS1pbi1vdXQtcXVhZCA9ICBjdWJpYy1iZXppZXIoMC40NTUsICAwLjAzMCwgMC41MTUsIDAuOTU1KVxuJGVhc2UtaW4tb3V0LWN1YmljID0gY3ViaWMtYmV6aWVyKDAuNjQ1LCAgMC4wNDUsIDAuMzU1LCAxLjAwMClcbiRlYXNlLWluLW91dC1xdWFydCA9IGN1YmljLWJlemllcigwLjc3MCwgIDAuMDAwLCAwLjE3NSwgMS4wMDApXG4kZWFzZS1pbi1vdXQtcXVpbnQgPSBjdWJpYy1iZXppZXIoMC44NjAsICAwLjAwMCwgMC4wNzAsIDEuMDAwKVxuJGVhc2UtaW4tb3V0LXNpbmUgPSAgY3ViaWMtYmV6aWVyKDAuNDQ1LCAgMC4wNTAsIDAuNTUwLCAwLjk1MClcbiRlYXNlLWluLW91dC1leHBvID0gIGN1YmljLWJlemllcigxLjAwMCwgIDAuMDAwLCAwLjAwMCwgMS4wMDApXG4kZWFzZS1pbi1vdXQtY2lyYyA9ICBjdWJpYy1iZXppZXIoMC43ODUsICAwLjEzNSwgMC4xNTAsIDAuODYwKVxuJGVhc2UtaW4tb3V0LWJhY2sgPSAgY3ViaWMtYmV6aWVyKDAuNjgwLCAtMC41NTAsIDAuMjY1LCAxLjU1MClcbiRlYXNlLWluLW91dC1zd2lmdCA9IGN1YmljLWJlemllcigwLjkwMCwgIDAuMDAwLCAwLjEwMCwgMS4wMDApXG4iLCJiYXNlLWZvbnQtc2l6ZSA/PSAxNnB4XG5yYXN0ZXJpc2UtbWVkaWEtcXVlcmllcyA/PSBmYWxzZVxuXG5ydXB0dXJlID0ge1xuICByYXN0ZXJpc2UtbWVkaWEtcXVlcmllczogcmFzdGVyaXNlLW1lZGlhLXF1ZXJpZXNcbiAgbW9iaWxlLWN1dG9mZjogNDAwcHhcbiAgZGVza3RvcC1jdXRvZmY6IDEwNTBweFxuICBoZC1jdXRvZmY6IDE4MDBweFxuICBlbmFibGUtZW0tYnJlYWtwb2ludHM6IGZhbHNlXG4gIGJhc2UtZm9udC1zaXplOiBiYXNlLWZvbnQtc2l6ZVxuICBhbnRpLW92ZXJsYXA6IGZhbHNlXG4gIGRlbnNpdHktcXVlcmllczogJ2RwcHgnICd3ZWJraXQnICdtb3onICdkcGknXG4gIHJldGluYS1kZW5zaXR5OiAxLjVcbiAgdXNlLWRldmljZS13aWR0aDogZmFsc2Vcbn1cbnJ1cHR1cmUuc2NhbGUgPSAwIChydXB0dXJlLm1vYmlsZS1jdXRvZmYpIDYwMHB4IDgwMHB4IChydXB0dXJlLmRlc2t0b3AtY3V0b2ZmKSAocnVwdHVyZS5oZC1jdXRvZmYpXG5ydXB0dXJlLnNjYWxlLW5hbWVzID0gJ3hzJyAncycgJ20nICdsJyAneGwnICdoZCdcblxuLWlzLXN0cmluZyh2YWwpXG4gIGlmIHR5cGVvZih2YWwpIGlzIG5vdCAndW5pdCdcbiAgICBpZiB2YWwgaXMgYSAnc3RyaW5nJyBvciB2YWwgaXMgYSAnaWRlbnQnXG4gICAgICB0cnVlXG4gICAgZWxzZVxuICAgICAgZmFsc2VcbiAgZWxzZVxuICAgIGZhbHNlXG5cbi1nZXQtc2NhbGUtbnVtYmVyKHNjYWxlLW5hbWUpXG4gIGZvciBsaXN0LWl0ZW0sIGkgaW4gcnVwdHVyZS5zY2FsZS1uYW1lc1xuICAgIGlmIGxpc3QtaXRlbSBpcyBzY2FsZS1uYW1lXG4gICAgICByZXR1cm4gaSArIDFcbiAgcmV0dXJuIGZhbHNlXG5cbi1jb252ZXJ0LXRvKHRvLXVuaXQsIHZhbHVlLCBjb250ZXh0ID0gcnVwdHVyZS5iYXNlLWZvbnQtc2l6ZSlcbiAgZnJvbS11bml0ID0gdW5pdCh2YWx1ZSlcbiAgcmV0dXJuIHZhbHVlIGlmIHRvLXVuaXQgaXMgZnJvbS11bml0XG4gIGlmIHRvLXVuaXQgaW4gKCdlbScgJ3JlbScpXG4gICAgcmV0dXJuIHZhbHVlIGlmIGZyb20tdW5pdCBpbiAoJ2VtJyAncmVtJylcbiAgICByZXR1cm4gdW5pdCgodmFsdWUgLyBjb250ZXh0KSwgdG8tdW5pdClcbiAgaWYgdG8tdW5pdCBpcyAncHgnXG4gICAgcmV0dXJuIHVuaXQoKHZhbHVlICogY29udGV4dCksICdweCcpXG5cbi1vbi1zY2FsZShuKVxuICByZXR1cm4gdW5pdChuKSBpcyAnJ1xuXG4tbGFyZ2VyLXRoYW4tc2NhbGUobilcbiAgcmV0dXJuIChuID4gKGxlbmd0aChydXB0dXJlLnNjYWxlKSAtIDEpKSBhbmQgLW9uLXNjYWxlKG4pXG5cbi1pcy16ZXJvKG4pXG4gIHJldHVybiBuIGlzIDBcblxuLW92ZXJsYXAtc2hpZnQoYW50aS1vdmVybGFwLCBuKVxuICBzaGlmdC11bml0ID0gdW5pdChuKVxuICBhbnRpLW92ZXJsYXAgPSAwcHggdW5sZXNzIGFudGktb3ZlcmxhcFxuICBhbnRpLW92ZXJsYXAgPSAxcHggaWYgYW50aS1vdmVybGFwIGlzIHRydWVcbiAgaWYgbGVuZ3RoKGFudGktb3ZlcmxhcCkgaXMgMVxuICAgIHJldHVybiAtY29udmVydC10byhzaGlmdC11bml0LCBhbnRpLW92ZXJsYXApXG4gIGZvciB2YWwgaW4gYW50aS1vdmVybGFwXG4gICAgcmV0dXJuIHZhbCBpZiB1bml0KHZhbCkgaXMgc2hpZnQtdW5pdFxuXG4tYWRqdXN0LW92ZXJsYXAoYW50aS1vdmVybGFwLCBuLCBzaWRlID0gJ21pbicpXG4gIC1zaGlmdCA9IC1vdmVybGFwLXNoaWZ0KGFudGktb3ZlcmxhcCwgbilcbiAgaWYgKHNpZGUgaXMgJ21pbicgYW5kIC1zaGlmdCA+IDApIG9yIChzaWRlIGlzICdtYXgnIGFuZCAtc2hpZnQgPCAwKVxuICAgIG4gPSBuICsgLXNoaWZ0XG4gIHJldHVybiBuXG5cbi1pcy1wb3NpdGl2ZShuKVxuICByZXR1cm4gbiA+PSAwXG5cbi1kZW5zaXR5LXF1ZXJpZXMoZGVuc2l0eSlcbiAgaWYgdHlwZW9mKGRlbnNpdHkpIGlzIG5vdCAndW5pdCdcbiAgICBpZiBub3QgLWlzLXN0cmluZyhkZW5zaXR5KVxuICAgICAgZGVuc2l0eSA9ICclcycgJSBkZW5zaXR5XG4gIGRlbnNpdHkgPSBydXB0dXJlLnJldGluYS1kZW5zaXR5IGlmIGRlbnNpdHkgaXMgJ3JldGluYSdcbiAgcXVlcmllcyA9ICgpXG4gIGZvciBxdWVyeSBpbiBydXB0dXJlLmRlbnNpdHktcXVlcmllc1xuICAgIGlmIHF1ZXJ5IGlzICd3ZWJraXQnXG4gICAgICBwdXNoKHF1ZXJpZXMsICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAlcyknICUgKGRlbnNpdHkpKVxuICAgIGVsc2UgaWYgcXVlcnkgaXMgJ21veidcbiAgICAgIHB1c2gocXVlcmllcywgJyhtaW4tLW1vei1kZXZpY2UtcGl4ZWwtcmF0aW86ICVzKScgJSAoZGVuc2l0eSkpXG4gICAgZWxzZSBpZiBxdWVyeSBpcyAnbydcbiAgICAgIHB1c2gocXVlcmllcywgJygtby1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAlcy8xKScgJSAoZGVuc2l0eSkpXG4gICAgZWxzZSBpZiBxdWVyeSBpcyAncmF0aW8nXG4gICAgICBwdXNoKHF1ZXJpZXMsICcobWluLWRldmljZS1waXhlbC1yYXRpbzogJXMpJyAlIChkZW5zaXR5KSlcbiAgICBlbHNlIGlmIHF1ZXJ5IGlzICdkcGknXG4gICAgICBpZiAtaXMtc3RyaW5nKGRlbnNpdHkpXG4gICAgICAgIGRlbnNpdHk9Y29udmVydChkZW5zaXR5KVxuICAgICAgcHVzaChxdWVyaWVzLCAnKG1pbi1yZXNvbHV0aW9uOiAlc2RwaSknICUgKHJvdW5kKGRlbnNpdHkgKiA5NiwgMSkpKVxuICAgIGVsc2UgaWYgcXVlcnkgaXMgJ2RwcHgnXG4gICAgICBwdXNoKHF1ZXJpZXMsICcobWluLXJlc29sdXRpb246ICVzZHBweCknICUgKGRlbnNpdHkpKVxuICByZXR1cm4gcXVlcmllc1xuXG5jcmVhdGUtZmFsbGJhY2stY2xhc3Moc2VsZWN0ZWQsIGNsYXNzKVxuICAveycnICsgY2xhc3MgKyAnICcgKyBzZWxlY3RlZH1cbiAgICB7YmxvY2t9XG5cbi8vICtiZXR3ZWVuKG1pbiwgbWF4KVxuLy8gdXNhZ2UgKHNjYWxlIGNhbiBiZSBtaXhlZCB3aXRoIGN1c3RvbSB2YWx1ZXMpOlxuLy8gICAtICtiZXR3ZWVuKDEsIDMpIHNjYWxlOnNjYWxlXG4vLyAgIC0gK2JldHdlZW4oMCwgMykgMCB3aWR0aDpzY2FsZVxuLy8gICAtICtiZXR3ZWVuKDIwMHB4LCA1MDBweCkgY3VzdG9tOmN1c3RvbVxuLy8gICAtICtiZXR3ZWVuKDAsIDMwMHB4KSAwIHdpZHRoOmN1c3RvbVxuLy8gICAtICtiZXR3ZWVuKDEsIDMwMHB4KSBzY2FsZTpjdXN0b21cbi8vICAgLSArYmV0d2VlbigyMDBweCwgNCkgY3VzdG9tOnNjYWxlXG5cbmJldHdlZW4obWluLCBtYXgsIGFudGktb3ZlcmxhcCA9IHJ1cHR1cmUuYW50aS1vdmVybGFwLCBkZW5zaXR5ID0gbnVsbCwgb3JpZW50YXRpb24gPSBudWxsLCB1c2UtZGV2aWNlLXdpZHRoID0gcnVwdHVyZS51c2UtZGV2aWNlLXdpZHRoLCBmYWxsYmFjay1jbGFzcyA9IG51bGwpXG4gIHNlbGVjdGVkID0gc2VsZWN0b3IoKVxuXG4gIGlmIC1pcy1zdHJpbmcob3JpZW50YXRpb24pXG4gICAgb3JpZW50YXRpb24gPSBjb252ZXJ0KG9yaWVudGF0aW9uKVxuICBpZiAtaXMtc3RyaW5nKGRlbnNpdHkpXG4gICAgZGVuc2l0eSA9IGNvbnZlcnQoZGVuc2l0eSlcbiAgaWYgLWlzLXN0cmluZyhtaW4pXG4gICAgbWluID0gLWdldC1zY2FsZS1udW1iZXIobWluKVxuICBpZiAtaXMtc3RyaW5nKG1heClcbiAgICBtYXggPSAtZ2V0LXNjYWxlLW51bWJlcihtYXgpXG5cbiAgLW1pbiA9IHJ1cHR1cmUuc2NhbGVbbWluIC0gMV0gdW5sZXNzIC1pcy16ZXJvKG1pbikgb3IgKG5vdCAtb24tc2NhbGUobWluKSlcbiAgLW1heCA9IHJ1cHR1cmUuc2NhbGVbbWF4XSB1bmxlc3Mgbm90IC1vbi1zY2FsZShtYXgpXG4gIC1taW4gPz0gbWluXG4gIC1tYXggPz0gbWF4XG5cbiAgaWYgKHJ1cHR1cmUucmFzdGVyaXNlLW1lZGlhLXF1ZXJpZXMpXG4gICAgaWYgbm90IChkZW5zaXR5IG9yIC1tYXggb3Igb3JpZW50YXRpb24pXG4gICAgICB7YmxvY2t9XG4gIGVsc2VcbiAgICBjb25kaXRpb24gPSAnb25seSBzY3JlZW4nXG4gICAgdXNlLWRldmljZS13aWR0aCA9IHVzZS1kZXZpY2Utd2lkdGggPyAnZGV2aWNlLScgOiAnJ1xuICAgIHVubGVzcyAtbWluIGlzIDBcbiAgICAgIC1taW4gPSAtY29udmVydC10bygnZW0nLCAtbWluKSBpZiBydXB0dXJlLmVuYWJsZS1lbS1icmVha3BvaW50c1xuICAgICAgLW1pbiA9IC1hZGp1c3Qtb3ZlcmxhcChhbnRpLW92ZXJsYXAsIC1taW4sIHNpZGU6ICdtaW4nKVxuICAgICAgY29uZGl0aW9uID0gY29uZGl0aW9uICsgJyBhbmQgKG1pbi0nICsgdXNlLWRldmljZS13aWR0aCArICd3aWR0aDogJXMpJyAlICgtbWluKVxuICAgIHVubGVzcyAtbGFyZ2VyLXRoYW4tc2NhbGUobWF4KVxuICAgICAgLW1heCA9IC1jb252ZXJ0LXRvKCdlbScsIC1tYXgpIGlmIHJ1cHR1cmUuZW5hYmxlLWVtLWJyZWFrcG9pbnRzXG4gICAgICAtbWF4ID0gLWFkanVzdC1vdmVybGFwKGFudGktb3ZlcmxhcCwgLW1heCwgc2lkZTogJ21heCcpXG4gICAgICBjb25kaXRpb24gPSBjb25kaXRpb24gKyAnIGFuZCAobWF4LScgKyB1c2UtZGV2aWNlLXdpZHRoICsgJ3dpZHRoOiAlcyknICUgKC1tYXgpXG4gICAgaWYgb3JpZW50YXRpb25cbiAgICAgIGNvbmRpdGlvbiA9IGNvbmRpdGlvbiArICcgYW5kIChvcmllbnRhdGlvbjogJXMpJyAlIChvcmllbnRhdGlvbilcbiAgICBpZiBkZW5zaXR5XG4gICAgICBjb25kaXRpb25zID0gKClcbiAgICAgIGZvciBxdWVyeSBpbiAtZGVuc2l0eS1xdWVyaWVzKGRlbnNpdHkpXG4gICAgICAgIHB1c2goY29uZGl0aW9ucywgY29uZGl0aW9uICsgJyBhbmQgJXMnICUgKHF1ZXJ5KSlcbiAgICAgIGNvbmRpdGlvbiA9IGpvaW4oJywgJywgY29uZGl0aW9ucylcbiAgICBAbWVkaWEgY29uZGl0aW9uXG4gICAgICB7YmxvY2t9XG4gIGlmIGZhbGxiYWNrLWNsYXNzXG4gICAgK2NyZWF0ZS1mYWxsYmFjay1jbGFzcyhzZWxlY3RlZCwgZmFsbGJhY2stY2xhc3MpXG4gICAgICB7YmxvY2t9XG5cbmF0KHNjYWxlLXBvaW50LCBhbnRpLW92ZXJsYXAgPSBydXB0dXJlLmFudGktb3ZlcmxhcCwgZGVuc2l0eSA9IG51bGwsIG9yaWVudGF0aW9uID0gbnVsbCwgdXNlLWRldmljZS13aWR0aCA9IHJ1cHR1cmUudXNlLWRldmljZS13aWR0aCwgZmFsbGJhY2stY2xhc3MgPSBudWxsKVxuICBpZiAtaXMtc3RyaW5nKG9yaWVudGF0aW9uKVxuICAgIG9yaWVudGF0aW9uID0gY29udmVydChvcmllbnRhdGlvbilcbiAgaWYgLWlzLXN0cmluZyhkZW5zaXR5KVxuICAgIGRlbnNpdHkgPSBjb252ZXJ0KGRlbnNpdHkpXG4gICtiZXR3ZWVuKHNjYWxlLXBvaW50LCBzY2FsZS1wb2ludCwgYW50aS1vdmVybGFwLCBkZW5zaXR5LCBvcmllbnRhdGlvbiwgdXNlLWRldmljZS13aWR0aCwgZmFsbGJhY2stY2xhc3MpXG4gICAge2Jsb2NrfVxuXG5mcm9tLXdpZHRoKHNjYWxlLXBvaW50LCBhbnRpLW92ZXJsYXAgPSBydXB0dXJlLmFudGktb3ZlcmxhcCwgZGVuc2l0eSA9IG51bGwsIG9yaWVudGF0aW9uID0gbnVsbCwgdXNlLWRldmljZS13aWR0aCA9IHJ1cHR1cmUudXNlLWRldmljZS13aWR0aCwgZmFsbGJhY2stY2xhc3MgPSBudWxsKVxuICBpZiAtaXMtc3RyaW5nKG9yaWVudGF0aW9uKVxuICAgIG9yaWVudGF0aW9uID0gY29udmVydChvcmllbnRhdGlvbilcbiAgaWYgLWlzLXN0cmluZyhkZW5zaXR5KVxuICAgIGRlbnNpdHkgPSBjb252ZXJ0KGRlbnNpdHkpXG4gICtiZXR3ZWVuKHNjYWxlLXBvaW50LCBsZW5ndGgocnVwdHVyZS5zY2FsZSksIGFudGktb3ZlcmxhcCwgZGVuc2l0eSwgb3JpZW50YXRpb24sIHVzZS1kZXZpY2Utd2lkdGgsIGZhbGxiYWNrLWNsYXNzKVxuICAgIHtibG9ja31cblxuYWJvdmUgPSBmcm9tLXdpZHRoXG5cbnRvLXdpZHRoKHNjYWxlLXBvaW50LCBhbnRpLW92ZXJsYXAgPSBydXB0dXJlLmFudGktb3ZlcmxhcCwgZGVuc2l0eSA9IG51bGwsIG9yaWVudGF0aW9uID0gbnVsbCwgdXNlLWRldmljZS13aWR0aCA9IHJ1cHR1cmUudXNlLWRldmljZS13aWR0aCwgZmFsbGJhY2stY2xhc3MgPSBudWxsKVxuICBpZiAtaXMtc3RyaW5nKG9yaWVudGF0aW9uKVxuICAgIG9yaWVudGF0aW9uID0gY29udmVydChvcmllbnRhdGlvbilcbiAgaWYgLWlzLXN0cmluZyhkZW5zaXR5KVxuICAgIGRlbnNpdHkgPSBjb252ZXJ0KGRlbnNpdHkpXG4gICtiZXR3ZWVuKDEsIHNjYWxlLXBvaW50LCBhbnRpLW92ZXJsYXAsIGRlbnNpdHksIG9yaWVudGF0aW9uLCB1c2UtZGV2aWNlLXdpZHRoLCBmYWxsYmFjay1jbGFzcylcbiAgICB7YmxvY2t9XG5cbmJlbG93ID0gdG8td2lkdGhcblxubW9iaWxlKGFudGktb3ZlcmxhcCA9IHJ1cHR1cmUuYW50aS1vdmVybGFwLCBkZW5zaXR5ID0gbnVsbCwgb3JpZW50YXRpb24gPSBudWxsLCB1c2UtZGV2aWNlLXdpZHRoID0gcnVwdHVyZS51c2UtZGV2aWNlLXdpZHRoLCBmYWxsYmFjay1jbGFzcyA9IG51bGwpXG4gIGlmIC1pcy1zdHJpbmcob3JpZW50YXRpb24pXG4gICAgb3JpZW50YXRpb24gPSBjb252ZXJ0KG9yaWVudGF0aW9uKVxuICBpZiAtaXMtc3RyaW5nKGRlbnNpdHkpXG4gICAgZGVuc2l0eSA9IGNvbnZlcnQoZGVuc2l0eSlcbiAgK2JlbG93KHJ1cHR1cmUubW9iaWxlLWN1dG9mZiwgYW50aS1vdmVybGFwLCBkZW5zaXR5LCBvcmllbnRhdGlvbiwgdXNlLWRldmljZS13aWR0aCwgZmFsbGJhY2stY2xhc3MpXG4gICAge2Jsb2NrfVxuXG50YWJsZXQoYW50aS1vdmVybGFwID0gcnVwdHVyZS5hbnRpLW92ZXJsYXAsIGRlbnNpdHkgPSBudWxsLCBvcmllbnRhdGlvbiA9IG51bGwsIHVzZS1kZXZpY2Utd2lkdGggPSBydXB0dXJlLnVzZS1kZXZpY2Utd2lkdGgsIGZhbGxiYWNrLWNsYXNzID0gbnVsbClcbiAgaWYgLWlzLXN0cmluZyhvcmllbnRhdGlvbilcbiAgICBvcmllbnRhdGlvbiA9IGNvbnZlcnQob3JpZW50YXRpb24pXG4gIGlmIC1pcy1zdHJpbmcoZGVuc2l0eSlcbiAgICBkZW5zaXR5ID0gY29udmVydChkZW5zaXR5KVxuICArYmV0d2VlbihydXB0dXJlLm1vYmlsZS1jdXRvZmYsIHJ1cHR1cmUuZGVza3RvcC1jdXRvZmYsIGFudGktb3ZlcmxhcCwgZGVuc2l0eSwgb3JpZW50YXRpb24sIHVzZS1kZXZpY2Utd2lkdGgsIGZhbGxiYWNrLWNsYXNzKVxuICAgIHtibG9ja31cblxuZGVza3RvcChhbnRpLW92ZXJsYXAgPSBydXB0dXJlLmFudGktb3ZlcmxhcCwgZGVuc2l0eSA9IG51bGwsIG9yaWVudGF0aW9uID0gbnVsbCwgdXNlLWRldmljZS13aWR0aCA9IHJ1cHR1cmUudXNlLWRldmljZS13aWR0aCwgZmFsbGJhY2stY2xhc3MgPSBudWxsKVxuICBpZiAtaXMtc3RyaW5nKG9yaWVudGF0aW9uKVxuICAgIG9yaWVudGF0aW9uID0gY29udmVydChvcmllbnRhdGlvbilcbiAgaWYgLWlzLXN0cmluZyhkZW5zaXR5KVxuICAgIGRlbnNpdHkgPSBjb252ZXJ0KGRlbnNpdHkpXG4gICthYm92ZShydXB0dXJlLmRlc2t0b3AtY3V0b2ZmLCBhbnRpLW92ZXJsYXAsIGRlbnNpdHksIG9yaWVudGF0aW9uLCB1c2UtZGV2aWNlLXdpZHRoLCBmYWxsYmFjay1jbGFzcylcbiAgICB7YmxvY2t9XG5cbmhkKGFudGktb3ZlcmxhcCA9IHJ1cHR1cmUuYW50aS1vdmVybGFwLCBkZW5zaXR5ID0gbnVsbCwgb3JpZW50YXRpb24gPSBudWxsLCB1c2UtZGV2aWNlLXdpZHRoID0gcnVwdHVyZS51c2UtZGV2aWNlLXdpZHRoLCBmYWxsYmFjay1jbGFzcyA9IG51bGwpXG4gIGlmIC1pcy1zdHJpbmcob3JpZW50YXRpb24pXG4gICAgb3JpZW50YXRpb24gPSBjb252ZXJ0KG9yaWVudGF0aW9uKVxuICBpZiAtaXMtc3RyaW5nKGRlbnNpdHkpXG4gICAgZGVuc2l0eSA9IGNvbnZlcnQoZGVuc2l0eSlcbiAgK2Fib3ZlKHJ1cHR1cmUuaGQtY3V0b2ZmLCBhbnRpLW92ZXJsYXAsIGRlbnNpdHksIG9yaWVudGF0aW9uLCB1c2UtZGV2aWNlLXdpZHRoLCBmYWxsYmFjay1jbGFzcylcbiAgICB7YmxvY2t9XG5cbmRlbnNpdHkoZGVuc2l0eSwgb3JpZW50YXRpb24gPSBudWxsLCBmYWxsYmFjay1jbGFzcyA9IG51bGwpXG4gIHNlbGVjdGVkID0gc2VsZWN0b3IoKVxuICBpZiBub3QgKHJ1cHR1cmUucmFzdGVyaXNlLW1lZGlhLXF1ZXJpZXMpXG4gICAgY29uZGl0aW9ucyA9ICgpXG4gICAgZm9yIHF1ZXJ5IGluIC1kZW5zaXR5LXF1ZXJpZXMoZGVuc2l0eSlcbiAgICAgIGNvbmRpdGlvbiA9ICdvbmx5IHNjcmVlbiBhbmQgJXMnICUgKHF1ZXJ5KVxuICAgICAgaWYgb3JpZW50YXRpb25cbiAgICAgICAgY29uZGl0aW9uID0gY29uZGl0aW9uICsgJyBhbmQgKG9yaWVudGF0aW9uOiAlcyknICUgKG9yaWVudGF0aW9uKVxuICAgICAgcHVzaChjb25kaXRpb25zLCBjb25kaXRpb24pXG4gICAgY29uZGl0aW9uID0gam9pbignLCAnLCBjb25kaXRpb25zKVxuICAgIEBtZWRpYSBjb25kaXRpb25cbiAgICAgIHtibG9ja31cbiAgICBpZiBmYWxsYmFjay1jbGFzc1xuICAgICAgK2NyZWF0ZS1mYWxsYmFjay1jbGFzcyhzZWxlY3RlZCwgZmFsbGJhY2stY2xhc3MpXG4gICAgICAgIHtibG9ja31cblxucGl4ZWwtcmF0aW8gPSBkZW5zaXR5XG5cbnJldGluYShvcmllbnRhdGlvbiA9IG51bGwsIGZhbGxiYWNrLWNsYXNzID0gbnVsbClcbiAgK2RlbnNpdHkoJ3JldGluYScsIG9yaWVudGF0aW9uLCBmYWxsYmFjay1jbGFzcylcbiAgICB7YmxvY2t9XG5cbmxhbmRzY2FwZShkZW5zaXR5ID0gbnVsbCwgZmFsbGJhY2stY2xhc3MgPSBudWxsKVxuICBzZWxlY3RlZCA9IHNlbGVjdG9yKClcbiAgaWYgbm90IChydXB0dXJlLnJhc3RlcmlzZS1tZWRpYS1xdWVyaWVzKVxuICAgIGlmIC1pcy1zdHJpbmcoZGVuc2l0eSlcbiAgICAgIGRlbnNpdHkgPSBjb252ZXJ0KGRlbnNpdHkpXG4gICAgaWYgZGVuc2l0eVxuICAgICAgK3BpeGVsLXJhdGlvKGRlbnNpdHksIG9yaWVudGF0aW9uOiBsYW5kc2NhcGUsIGZhbGxiYWNrLWNsYXNzKVxuICAgICAgICB7YmxvY2t9XG4gICAgZWxzZVxuICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSlcbiAgICAgICAge2Jsb2NrfVxuICAgICAgaWYgZmFsbGJhY2stY2xhc3NcbiAgICAgICAgK2NyZWF0ZS1mYWxsYmFjay1jbGFzcyhzZWxlY3RlZCwgZmFsbGJhY2stY2xhc3MpXG4gICAgICAgICAge2Jsb2NrfVxuXG5wb3J0cmFpdChkZW5zaXR5ID0gbnVsbCwgZmFsbGJhY2stY2xhc3MgPSBudWxsKVxuICBzZWxlY3RlZCA9IHNlbGVjdG9yKClcbiAgaWYgbm90IChydXB0dXJlLnJhc3RlcmlzZS1tZWRpYS1xdWVyaWVzKVxuICAgIGlmIC1pcy1zdHJpbmcoZGVuc2l0eSlcbiAgICAgIGRlbnNpdHkgPSBjb252ZXJ0KGRlbnNpdHkpXG4gICAgaWYgZGVuc2l0eVxuICAgICAgK3BpeGVsLXJhdGlvKGRlbnNpdHksIG9yaWVudGF0aW9uOiBwb3J0cmFpdCwgZmFsbGJhY2stY2xhc3MpXG4gICAgICAgIHtibG9ja31cbiAgICBlbHNlXG4gICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpXG4gICAgICAgIHtibG9ja31cbiAgICAgIGlmIGZhbGxiYWNrLWNsYXNzXG4gICAgICAgICtjcmVhdGUtZmFsbGJhY2stY2xhc3Moc2VsZWN0ZWQsIGZhbGxiYWNrLWNsYXNzKVxuICAgICAgICAgIHtibG9ja31cblxucnVwdHVyZS1ob3ZlcihkZW5zaXR5ID0gbnVsbCwgb3JpZW50YXRpb24gPSBudWxsLCBmYWxsYmFjay1jbGFzcyA9IG51bGwpXG4gIGNvbmRpdGlvbiA9IFwib25seSBzY3JlZW4gYW5kIChob3ZlcjogaG92ZXIpXCI7XG4gIEBtZWRpYSAoe2NvbmRpdGlvbn0pXG4gICAge2Jsb2NrfVxuXG5ob3ZlciA9IHJ1cHR1cmUtaG92ZXJcbiJdfQ== */
