.seadev-gallery .gallery-item.gallery-grid-3 {
  width: 33.33%;
}
@media (max-width: 575.98px) {
  .seadev-gallery .gallery-item.gallery-grid-3 {
    width: 50%;
  }
}
.seadev-gallery .gallery-item {
  width: 25%;
  padding: 3px;
}
@media (max-width: 1199.98px) {
  .seadev-gallery .gallery-item {
    width: 25%;
  }
}
@media (max-width: 767.98px) {
  .seadev-gallery .gallery-item {
    width: 33.333%;
  }
}
@media (max-width: 575.98px) {
  .seadev-gallery .gallery-item {
    width: 50%;
  }
}
.seadev-gallery .gallery-item .gallery-item-inner.type-circle {
  border-radius: 50%;
  display: block;
  overflow: hidden;
}
.seadev-gallery .gallery-item .gallery-item-inner {
  position: relative;
}
.seadev-gallery .gallery-item .gallery-item-inner a {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  position: absolute;
  background-color: rgba(0, 0, 0, 0.4);
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  opacity: 0;
  -webkit-transition: 0.3s all;
  transition: 0.3s all;
}
.seadev-gallery .gallery-item .gallery-item-inner a:hover {
  opacity: 1;
  -webkit-transition: 0.3s all;
  transition: 0.3s all;
}
.seadev-gallery .gallery-item .gallery-item-inner a svg {
  width: 30px;
  height: 30px;
}
.seadev-gallery.seadev-gallery-portfolio .wrap-grids {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  margin-right: -12px;
  margin-left: -12px;
}
.seadev-gallery.seadev-gallery-portfolio .wrap-grids .grid-item {
  position: relative;
  width: 100%;
  padding-right: 12px;
  padding-left: 12px;
  margin: 30px 0;
  text-align: left;
}
.seadev-gallery.seadev-gallery-portfolio .wrap-grids .grid-image {
  margin-bottom: 20px;
}
.seadev-gallery.seadev-gallery-portfolio .wrap-grids .grid-image.type-circle {
  border: 32px solid transparent;
  border-radius: 50%;
  overflow: hidden;
}
.seadev-gallery.seadev-gallery-portfolio .wrap-grids .grid-image img {
  width: 100%;
}
.seadev-gallery.seadev-gallery-portfolio .wrap-grids .grid-image figcaption {
  display: none;
}
.seadev-gallery.seadev-gallery-portfolio .wrap-grids .grid-title {
  margin-bottom: 16px;
}
.seadev-gallery.seadev-gallery-portfolio .filter-portfolio {
  list-style: none;
  margin: 0;
  padding: 0;
  margin-bottom: 60px;
  margin-bottom: 3.75rem;
  margin-top: 40px;
  margin-top: 2.5rem;
}
.seadev-gallery.seadev-gallery-portfolio .filter-portfolio li {
  display: inline-block;
  margin: 0px 20px;
  margin: 0rem 1.25rem;
}
.seadev-gallery.seadev-gallery-portfolio .filter-portfolio li a {
  font-size: 20px;
  line-height: 24px;
}
@media (max-width: 767.98px) {
  .seadev-gallery.seadev-gallery-portfolio .filter-portfolio li a {
    font-size: 15px;
    line-height: 22px;
  }
}
.seadev-gallery.seadev-gallery-portfolio .filter-portfolio li a {
  font-weight: 700;
  color: var(--secondary-color);
  text-decoration: none;
}
.seadev-gallery.seadev-gallery-portfolio .filter-portfolio li a.active, .seadev-gallery.seadev-gallery-portfolio .filter-portfolio li a:hover {
  color: var(--primary-color);
}
.seadev-gallery.seadev-gallery-portfolio .block-description + .wrap-grids, .seadev-gallery.seadev-gallery-portfolio .block-title + .wrap-grids {
  margin-top: 10px;
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJsb2NrLXRlbXBsYXRlcy9zZWFkZXYtZ2FsbGVyeS9zZWFkZXYtZ2FsbGVyeS5zY3NzIiwiYmxvY2stdGVtcGxhdGVzL3NlYWRldi1nYWxsZXJ5L3NlYWRldi1nYWxsZXJ5LmNzcyIsInNyYy9zYXNzL2Jvb3RzdHJhcDQvbWl4aW5zL19icmVha3BvaW50cy5zY3NzIiwic3JjL3Nhc3MvYm9vdHN0cmFwNC9taXhpbnMvX2dyaWQuc2NzcyIsInNhc3MvYWJzdHJhY3RzL21peGlucy9fcmVtLnNjc3MiLCJzYXNzL2Fic3RyYWN0cy9taXhpbnMvX2N1c3RvbS5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtJO0VBQ0ksYUFBQTtBQ0pSO0FDdUVJO0VGcEVBO0lBR1EsVUFBQTtFQ0ZWO0FBQ0Y7QURJSTtFQUNJLFVBQUE7RUFDQSxZQUFBO0FDRlI7QUM4REk7RUY5REE7SUFJUSxVQUFBO0VDQVY7QUFDRjtBQ3lESTtFRjlEQTtJQU9RLGNBQUE7RUNFVjtBQUNGO0FDb0RJO0VGOURBO0lBVVEsVUFBQTtFQ0lWO0FBQ0Y7QURIUTtFQUNJLGtCQUFBO0VBQ0EsY0FBQTtFQUNBLGdCQUFBO0FDS1o7QURIUTtFQUNJLGtCQUFBO0FDS1o7QURKWTtFQUNJLG9CQUFBO0VBQUEsb0JBQUE7RUFBQSxhQUFBO0VBQ0EsTUFBQTtFQUNBLE9BQUE7RUFDQSxZQUFBO0VBQ0EsV0FBQTtFQUNBLGtCQUFBO0VBQ0Esb0NBQUE7RUFDQSx5QkFBQTtNQUFBLHNCQUFBO1VBQUEsbUJBQUE7RUFDQSx3QkFBQTtNQUFBLHFCQUFBO1VBQUEsdUJBQUE7RUFDQSxVQUFBO0VBQ0EsNEJBQUE7RUFFSSxvQkFBQTtBQ01wQjtBRExnQjtFQUNJLFVBQUE7RUFDQSw0QkFBQTtFQUVJLG9CQUFBO0FDT3hCO0FETGdCO0VBQ0ksV0FBQTtFQUNBLFlBQUE7QUNPcEI7QURBUTtFRzVDTixvQkFBQTtFQUFBLG9CQUFBO0VBQUEsYUFBQTtFQUNBLG1CQUFBO01BQUEsZUFBQTtFQUNBLG1CQUFBO0VBQ0Esa0JBQUE7QUYrQ0Y7QURGWTtFRy9CVixrQkFBQTtFQUlBLFdBQUE7RUFDQSxtQkFBQTtFQUNBLGtCQUFBO0VIMkJjLGNBQUE7RUFDQSxnQkFBQTtBQ09oQjtBREpZO0VBQ0ksbUJBQUE7QUNNaEI7QURKZ0I7RUFDSSw4QkFBQTtFQUNBLGtCQUFBO0VBQ0EsZ0JBQUE7QUNNcEI7QURIZ0I7RUFDSSxXQUFBO0FDS3BCO0FERmdCO0VBQ0ksYUFBQTtBQ0lwQjtBREFZO0VBQ0ksbUJBQUE7QUNFaEI7QURFUTtFQUNJLGdCQUFBO0VBQ0EsU0FBQTtFQUNBLFVBQUE7RUl6RFYsbUJBWGE7RUFZYixzQkFWYztFQVNkLGdCQVhhO0VBWWIsa0JBVmM7QUhzRWhCO0FEQVk7RUFDSSxxQkFBQTtFSTlEZCxnQkFYYTtFQVliLG9CQVZjO0FIMkVoQjtBRERnQjtFSzVEWixlQUFBO0VBQ0EsaUJBQUE7QUpnRUo7QUNuQ0k7RUY4Qlk7SUt4RFIsZUFBQTtJQUNBLGlCQUFBO0VKaUVOO0FBQ0Y7QURYZ0I7RUFFSSxnQkFBQTtFQUNBLDZCQUFBO0VBQ0EscUJBQUE7QUNZcEI7QURWb0I7RUFFSSwyQkFBQTtBQ1d4QjtBREpZO0VBQ0ksZ0JBQUE7QUNNaEIiLCJmaWxlIjoiYmxvY2stdGVtcGxhdGVzL3NlYWRldi1nYWxsZXJ5L3NlYWRldi1nYWxsZXJ5LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIkBpbXBvcnQgJy4uLy4uL3Nhc3MvYWJzdHJhY3RzL21peGlucyc7XG5AaW1wb3J0ICcuLi8uLi9zYXNzL2Fic3RyYWN0cy92YXJpYWJsZXMnO1xuQGltcG9ydCBcIi4uLy4uL3NyYy9zYXNzL2Jvb3RzdHJhcDQvbWl4aW5zXCI7XG5cbi5zZWFkZXYtZ2FsbGVyeXtcbiAgICAuZ2FsbGVyeS1pdGVtLmdhbGxlcnktZ3JpZC0ze1xuICAgICAgICB3aWR0aDogMzMuMzMlO1xuICAgICAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oeHMpIHtcbiAgICAgICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmdhbGxlcnktaXRlbXtcbiAgICAgICAgd2lkdGg6IDI1JTtcbiAgICAgICAgcGFkZGluZzogM3B4O1xuICAgICAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24obWQpIHtcbiAgICAgICAgICAgIHdpZHRoOiAyNSU7XG4gICAgICAgIH1cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKHNtKSB7XG4gICAgICAgICAgICB3aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oeHMpIHtcbiAgICAgICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgIH1cbiAgICAgICAgLmdhbGxlcnktaXRlbS1pbm5lci50eXBlLWNpcmNsZSB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cbiAgICAgICAgLmdhbGxlcnktaXRlbS1pbm5lcntcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNCk7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgICAgIC13ZWJraXQtdHJhbnNpdGlvbjogLjNzIGFsbDtcbiAgICAgICAgICAgICAgICAgICAgLW8tdHJhbnNpdGlvbjogLjNzIGFsbDtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogLjNzIGFsbDtcbiAgICAgICAgICAgICAgICAmOmhvdmVye1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgICAgICAgICAtd2Via2l0LXRyYW5zaXRpb246IC4zcyBhbGw7XG4gICAgICAgICAgICAgICAgICAgICAgICAtby10cmFuc2l0aW9uOiAuM3MgYWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogLjNzIGFsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgc3Zne1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMzBweDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAzMHB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBcbiAgICB9XG4gICAgJi5zZWFkZXYtZ2FsbGVyeS1wb3J0Zm9saW97XG4gICAgICAgIC53cmFwLWdyaWRze1xuICAgICAgICAgICAgQGluY2x1ZGUgbWFrZS1yb3coKTtcbiAgICAgICAgICAgIC8vIG1hcmdpbi1ib3R0b206IC02MHB4O1xuICAgICAgICAgICAgXG4gICAgICAgICAgICAuZ3JpZC1pdGVte1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1ha2UtY29sLXJlYWR5KCk7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAzMHB4IDA7ICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgLmdyaWQtaW1hZ2V7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAmLnR5cGUtY2lyY2xle1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDMycHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgaW1ne1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgZmlnY2FwdGlvbntcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIC5ncmlkLXRpdGxle1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIC5maWx0ZXItcG9ydGZvbGlve1xuICAgICAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBAaW5jbHVkZSByZW0oJ21hcmdpbi1ib3R0b20nLCA2MCk7XG4gICAgICAgICAgICBAaW5jbHVkZSByZW0oJ21hcmdpbi10b3AnLCA0MCk7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIGxpe1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSByZW0oJ21hcmdpbicsIDAsIDIwKTtcbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICBhe1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoNTtcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvcik7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICYuYWN0aXZlLFxuICAgICAgICAgICAgICAgICAgICAmOmhvdmVye1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAuYmxvY2stZGVzY3JpcHRpb24sIC5ibG9jay10aXRsZXtcbiAgICAgICAgICAgICsgLndyYXAtZ3JpZHN7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSAgXG4gICAgfSAgXG59IiwiLnNlYWRldi1nYWxsZXJ5IC5nYWxsZXJ5LWl0ZW0uZ2FsbGVyeS1ncmlkLTMge1xuICB3aWR0aDogMzMuMzMlO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDU3NS45OHB4KSB7XG4gIC5zZWFkZXYtZ2FsbGVyeSAuZ2FsbGVyeS1pdGVtLmdhbGxlcnktZ3JpZC0zIHtcbiAgICB3aWR0aDogNTAlO1xuICB9XG59XG4uc2VhZGV2LWdhbGxlcnkgLmdhbGxlcnktaXRlbSB7XG4gIHdpZHRoOiAyNSU7XG4gIHBhZGRpbmc6IDNweDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMTk5Ljk4cHgpIHtcbiAgLnNlYWRldi1nYWxsZXJ5IC5nYWxsZXJ5LWl0ZW0ge1xuICAgIHdpZHRoOiAyNSU7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjcuOThweCkge1xuICAuc2VhZGV2LWdhbGxlcnkgLmdhbGxlcnktaXRlbSB7XG4gICAgd2lkdGg6IDMzLjMzMyU7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA1NzUuOThweCkge1xuICAuc2VhZGV2LWdhbGxlcnkgLmdhbGxlcnktaXRlbSB7XG4gICAgd2lkdGg6IDUwJTtcbiAgfVxufVxuLnNlYWRldi1nYWxsZXJ5IC5nYWxsZXJ5LWl0ZW0gLmdhbGxlcnktaXRlbS1pbm5lci50eXBlLWNpcmNsZSB7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4uc2VhZGV2LWdhbGxlcnkgLmdhbGxlcnktaXRlbSAuZ2FsbGVyeS1pdGVtLWlubmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLnNlYWRldi1nYWxsZXJ5IC5nYWxsZXJ5LWl0ZW0gLmdhbGxlcnktaXRlbS1pbm5lciBhIHtcbiAgZGlzcGxheTogZmxleDtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiAxMDAlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40KTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIG9wYWNpdHk6IDA7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogMC4zcyBhbGw7XG4gIC1vLXRyYW5zaXRpb246IDAuM3MgYWxsO1xuICB0cmFuc2l0aW9uOiAwLjNzIGFsbDtcbn1cbi5zZWFkZXYtZ2FsbGVyeSAuZ2FsbGVyeS1pdGVtIC5nYWxsZXJ5LWl0ZW0taW5uZXIgYTpob3ZlciB7XG4gIG9wYWNpdHk6IDE7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogMC4zcyBhbGw7XG4gIC1vLXRyYW5zaXRpb246IDAuM3MgYWxsO1xuICB0cmFuc2l0aW9uOiAwLjNzIGFsbDtcbn1cbi5zZWFkZXYtZ2FsbGVyeSAuZ2FsbGVyeS1pdGVtIC5nYWxsZXJ5LWl0ZW0taW5uZXIgYSBzdmcge1xuICB3aWR0aDogMzBweDtcbiAgaGVpZ2h0OiAzMHB4O1xufVxuLnNlYWRldi1nYWxsZXJ5LnNlYWRldi1nYWxsZXJ5LXBvcnRmb2xpbyAud3JhcC1ncmlkcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgbWFyZ2luLXJpZ2h0OiAtMTJweDtcbiAgbWFyZ2luLWxlZnQ6IC0xMnB4O1xufVxuLnNlYWRldi1nYWxsZXJ5LnNlYWRldi1nYWxsZXJ5LXBvcnRmb2xpbyAud3JhcC1ncmlkcyAuZ3JpZC1pdGVtIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZy1yaWdodDogMTJweDtcbiAgcGFkZGluZy1sZWZ0OiAxMnB4O1xuICBtYXJnaW46IDMwcHggMDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbi5zZWFkZXYtZ2FsbGVyeS5zZWFkZXYtZ2FsbGVyeS1wb3J0Zm9saW8gLndyYXAtZ3JpZHMgLmdyaWQtaW1hZ2Uge1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xufVxuLnNlYWRldi1nYWxsZXJ5LnNlYWRldi1nYWxsZXJ5LXBvcnRmb2xpbyAud3JhcC1ncmlkcyAuZ3JpZC1pbWFnZS50eXBlLWNpcmNsZSB7XG4gIGJvcmRlcjogMzJweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLnNlYWRldi1nYWxsZXJ5LnNlYWRldi1nYWxsZXJ5LXBvcnRmb2xpbyAud3JhcC1ncmlkcyAuZ3JpZC1pbWFnZSBpbWcge1xuICB3aWR0aDogMTAwJTtcbn1cbi5zZWFkZXYtZ2FsbGVyeS5zZWFkZXYtZ2FsbGVyeS1wb3J0Zm9saW8gLndyYXAtZ3JpZHMgLmdyaWQtaW1hZ2UgZmlnY2FwdGlvbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4uc2VhZGV2LWdhbGxlcnkuc2VhZGV2LWdhbGxlcnktcG9ydGZvbGlvIC53cmFwLWdyaWRzIC5ncmlkLXRpdGxlIHtcbiAgbWFyZ2luLWJvdHRvbTogMTZweDtcbn1cbi5zZWFkZXYtZ2FsbGVyeS5zZWFkZXYtZ2FsbGVyeS1wb3J0Zm9saW8gLmZpbHRlci1wb3J0Zm9saW8ge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbi1ib3R0b206IDYwcHg7XG4gIG1hcmdpbi1ib3R0b206IDMuNzVyZW07XG4gIG1hcmdpbi10b3A6IDQwcHg7XG4gIG1hcmdpbi10b3A6IDIuNXJlbTtcbn1cbi5zZWFkZXYtZ2FsbGVyeS5zZWFkZXYtZ2FsbGVyeS1wb3J0Zm9saW8gLmZpbHRlci1wb3J0Zm9saW8gbGkge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbjogMHB4IDIwcHg7XG4gIG1hcmdpbjogMHJlbSAxLjI1cmVtO1xufVxuLnNlYWRldi1nYWxsZXJ5LnNlYWRldi1nYWxsZXJ5LXBvcnRmb2xpbyAuZmlsdGVyLXBvcnRmb2xpbyBsaSBhIHtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBsaW5lLWhlaWdodDogMjRweDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjcuOThweCkge1xuICAuc2VhZGV2LWdhbGxlcnkuc2VhZGV2LWdhbGxlcnktcG9ydGZvbGlvIC5maWx0ZXItcG9ydGZvbGlvIGxpIGEge1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBsaW5lLWhlaWdodDogMjJweDtcbiAgfVxufVxuLnNlYWRldi1nYWxsZXJ5LnNlYWRldi1nYWxsZXJ5LXBvcnRmb2xpbyAuZmlsdGVyLXBvcnRmb2xpbyBsaSBhIHtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvcik7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbi5zZWFkZXYtZ2FsbGVyeS5zZWFkZXYtZ2FsbGVyeS1wb3J0Zm9saW8gLmZpbHRlci1wb3J0Zm9saW8gbGkgYS5hY3RpdmUsIC5zZWFkZXYtZ2FsbGVyeS5zZWFkZXYtZ2FsbGVyeS1wb3J0Zm9saW8gLmZpbHRlci1wb3J0Zm9saW8gbGkgYTpob3ZlciB7XG4gIGNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG9yKTtcbn1cbi5zZWFkZXYtZ2FsbGVyeS5zZWFkZXYtZ2FsbGVyeS1wb3J0Zm9saW8gLmJsb2NrLWRlc2NyaXB0aW9uICsgLndyYXAtZ3JpZHMsIC5zZWFkZXYtZ2FsbGVyeS5zZWFkZXYtZ2FsbGVyeS1wb3J0Zm9saW8gLmJsb2NrLXRpdGxlICsgLndyYXAtZ3JpZHMge1xuICBtYXJnaW4tdG9wOiAxMHB4O1xufSIsIi8vIEJyZWFrcG9pbnQgdmlld3BvcnQgc2l6ZXMgYW5kIG1lZGlhIHF1ZXJpZXMuXG4vL1xuLy8gQnJlYWtwb2ludHMgYXJlIGRlZmluZWQgYXMgYSBtYXAgb2YgKG5hbWU6IG1pbmltdW0gd2lkdGgpLCBvcmRlciBmcm9tIHNtYWxsIHRvIGxhcmdlOlxuLy9cbi8vICAgICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweClcbi8vXG4vLyBUaGUgbWFwIGRlZmluZWQgaW4gdGhlIGAkZ3JpZC1icmVha3BvaW50c2AgZ2xvYmFsIHZhcmlhYmxlIGlzIHVzZWQgYXMgdGhlIGAkYnJlYWtwb2ludHNgIGFyZ3VtZW50IGJ5IGRlZmF1bHQuXG5cbi8vIE5hbWUgb2YgdGhlIG5leHQgYnJlYWtwb2ludCwgb3IgbnVsbCBmb3IgdGhlIGxhc3QgYnJlYWtwb2ludC5cbi8vXG4vLyAgICA+PiBicmVha3BvaW50LW5leHQoc20pXG4vLyAgICBtZFxuLy8gICAgPj4gYnJlYWtwb2ludC1uZXh0KHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpKVxuLy8gICAgbWRcbi8vICAgID4+IGJyZWFrcG9pbnQtbmV4dChzbSwgJGJyZWFrcG9pbnQtbmFtZXM6ICh4cyBzbSBtZCBsZyB4bCkpXG4vLyAgICBtZFxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbmV4dCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cywgJGJyZWFrcG9pbnQtbmFtZXM6IG1hcC1rZXlzKCRicmVha3BvaW50cykpIHtcbiAgJG46IGluZGV4KCRicmVha3BvaW50LW5hbWVzLCAkbmFtZSk7XG4gIEByZXR1cm4gaWYoJG4gIT0gbnVsbCBhbmQgJG4gPCBsZW5ndGgoJGJyZWFrcG9pbnQtbmFtZXMpLCBudGgoJGJyZWFrcG9pbnQtbmFtZXMsICRuICsgMSksIG51bGwpO1xufVxuXG4vLyBNaW5pbXVtIGJyZWFrcG9pbnQgd2lkdGguIE51bGwgZm9yIHRoZSBzbWFsbGVzdCAoZmlyc3QpIGJyZWFrcG9pbnQuXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1taW4oc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXG4vLyAgICA1NzZweFxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtaW46IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkbmFtZSk7XG4gIEByZXR1cm4gaWYoJG1pbiAhPSAwLCAkbWluLCBudWxsKTtcbn1cblxuLy8gTWF4aW11bSBicmVha3BvaW50IHdpZHRoLiBOdWxsIGZvciB0aGUgbGFyZ2VzdCAobGFzdCkgYnJlYWtwb2ludC5cbi8vIFRoZSBtYXhpbXVtIHZhbHVlIGlzIGNhbGN1bGF0ZWQgYXMgdGhlIG1pbmltdW0gb2YgdGhlIG5leHQgb25lIGxlc3MgMC4wMnB4XG4vLyB0byB3b3JrIGFyb3VuZCB0aGUgbGltaXRhdGlvbnMgb2YgYG1pbi1gIGFuZCBgbWF4LWAgcHJlZml4ZXMgYW5kIHZpZXdwb3J0cyB3aXRoIGZyYWN0aW9uYWwgd2lkdGhzLlxuLy8gU2VlIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9tZWRpYXF1ZXJpZXMtNC8jbXEtbWluLW1heFxuLy8gVXNlcyAwLjAycHggcmF0aGVyIHRoYW4gMC4wMXB4IHRvIHdvcmsgYXJvdW5kIGEgY3VycmVudCByb3VuZGluZyBidWcgaW4gU2FmYXJpLlxuLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzgyNjFcbi8vXG4vLyAgICA+PiBicmVha3BvaW50LW1heChzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcbi8vICAgIDc2Ny45OHB4XG5AZnVuY3Rpb24gYnJlYWtwb2ludC1tYXgoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG5leHQ6IGJyZWFrcG9pbnQtbmV4dCgkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgQHJldHVybiBpZigkbmV4dCwgYnJlYWtwb2ludC1taW4oJG5leHQsICRicmVha3BvaW50cykgLSAuMDIsIG51bGwpO1xufVxuXG4vLyBSZXR1cm5zIGEgYmxhbmsgc3RyaW5nIGlmIHNtYWxsZXN0IGJyZWFrcG9pbnQsIG90aGVyd2lzZSByZXR1cm5zIHRoZSBuYW1lIHdpdGggYSBkYXNoIGluIGZyb250LlxuLy8gVXNlZnVsIGZvciBtYWtpbmcgcmVzcG9uc2l2ZSB1dGlsaXRpZXMuXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1pbmZpeCh4cywgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcbi8vICAgIFwiXCIgIChSZXR1cm5zIGEgYmxhbmsgc3RyaW5nKVxuLy8gICAgPj4gYnJlYWtwb2ludC1pbmZpeChzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcbi8vICAgIFwiLXNtXCJcbkBmdW5jdGlvbiBicmVha3BvaW50LWluZml4KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gIEByZXR1cm4gaWYoYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cykgPT0gbnVsbCwgXCJcIiwgXCItI3skbmFtZX1cIik7XG59XG5cbi8vIE1lZGlhIG9mIGF0IGxlYXN0IHRoZSBtaW5pbXVtIGJyZWFrcG9pbnQgd2lkdGguIE5vIHF1ZXJ5IGZvciB0aGUgc21hbGxlc3QgYnJlYWtwb2ludC5cbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSB0byB0aGUgZ2l2ZW4gYnJlYWtwb2ludCBhbmQgd2lkZXIuXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC11cCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWluOiBicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgQGlmICRtaW4ge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWluKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIE1lZGlhIG9mIGF0IG1vc3QgdGhlIG1heGltdW0gYnJlYWtwb2ludCB3aWR0aC4gTm8gcXVlcnkgZm9yIHRoZSBsYXJnZXN0IGJyZWFrcG9pbnQuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQgYW5kIG5hcnJvd2VyLlxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWF4OiBicmVha3BvaW50LW1heCgkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgQGlmICRtYXgge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIE1lZGlhIHRoYXQgc3BhbnMgbXVsdGlwbGUgYnJlYWtwb2ludCB3aWR0aHMuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgYmV0d2VlbiB0aGUgbWluIGFuZCBtYXggYnJlYWtwb2ludHNcbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LWJldHdlZW4oJGxvd2VyLCAkdXBwZXIsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogYnJlYWtwb2ludC1taW4oJGxvd2VyLCAkYnJlYWtwb2ludHMpO1xuICAkbWF4OiBicmVha3BvaW50LW1heCgkdXBwZXIsICRicmVha3BvaW50cyk7XG5cbiAgQGlmICRtaW4gIT0gbnVsbCBhbmQgJG1heCAhPSBudWxsIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbikgYW5kIChtYXgtd2lkdGg6ICRtYXgpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWF4ID09IG51bGwge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJGxvd2VyLCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWluID09IG51bGwge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkdXBwZXIsICRicmVha3BvaW50cykge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vIE1lZGlhIGJldHdlZW4gdGhlIGJyZWFrcG9pbnQncyBtaW5pbXVtIGFuZCBtYXhpbXVtIHdpZHRocy5cbi8vIE5vIG1pbmltdW0gZm9yIHRoZSBzbWFsbGVzdCBicmVha3BvaW50LCBhbmQgbm8gbWF4aW11bSBmb3IgdGhlIGxhcmdlc3Qgb25lLlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IG9ubHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQsIG5vdCB2aWV3cG9ydHMgYW55IHdpZGVyIG9yIG5hcnJvd2VyLlxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtb25seSgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWluOiBicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgJG1heDogYnJlYWtwb2ludC1tYXgoJG5hbWUsICRicmVha3BvaW50cyk7XG5cbiAgQGlmICRtaW4gIT0gbnVsbCBhbmQgJG1heCAhPSBudWxsIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbikgYW5kIChtYXgtd2lkdGg6ICRtYXgpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWF4ID09IG51bGwge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJG5hbWUsICRicmVha3BvaW50cykge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIGlmICRtaW4gPT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKCRuYW1lLCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuIiwiLy8vIEdyaWQgc3lzdGVtXG4vL1xuLy8gR2VuZXJhdGUgc2VtYW50aWMgZ3JpZCBjb2x1bW5zIHdpdGggdGhlc2UgbWl4aW5zLlxuXG5AdXNlIFwic2FzczptYXRoXCI7XG5cbkBtaXhpbiBtYWtlLWNvbnRhaW5lcigkZ3V0dGVyOiAkZ3JpZC1ndXR0ZXItd2lkdGgpIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmctcmlnaHQ6ICRndXR0ZXIgKiAwLjU7XG4gIHBhZGRpbmctbGVmdDogJGd1dHRlciAqIDAuNTtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbn1cblxuQG1peGluIG1ha2Utcm93KCRndXR0ZXI6ICRncmlkLWd1dHRlci13aWR0aCkge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIG1hcmdpbi1yaWdodDogLSRndXR0ZXIgKiAwLjU7XG4gIG1hcmdpbi1sZWZ0OiAtJGd1dHRlciAqIDAuNTtcbn1cblxuLy8gRm9yIGVhY2ggYnJlYWtwb2ludCwgZGVmaW5lIHRoZSBtYXhpbXVtIHdpZHRoIG9mIHRoZSBjb250YWluZXIgaW4gYSBtZWRpYSBxdWVyeVxuQG1peGluIG1ha2UtY29udGFpbmVyLW1heC13aWR0aHMoJG1heC13aWR0aHM6ICRjb250YWluZXItbWF4LXdpZHRocywgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICBAZWFjaCAkYnJlYWtwb2ludCwgJGNvbnRhaW5lci1tYXgtd2lkdGggaW4gJG1heC13aWR0aHMge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJGJyZWFrcG9pbnQsICRicmVha3BvaW50cykge1xuICAgICAgbWF4LXdpZHRoOiAkY29udGFpbmVyLW1heC13aWR0aDtcbiAgICB9XG4gIH1cbiAgQGluY2x1ZGUgZGVwcmVjYXRlKFwiVGhlIGBtYWtlLWNvbnRhaW5lci1tYXgtd2lkdGhzYCBtaXhpblwiLCBcInY0LjUuMlwiLCBcInY1XCIpO1xufVxuXG5AbWl4aW4gbWFrZS1jb2wtcmVhZHkoJGd1dHRlcjogJGdyaWQtZ3V0dGVyLXdpZHRoKSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgLy8gUHJldmVudCBjb2x1bW5zIGZyb20gYmVjb21pbmcgdG9vIG5hcnJvdyB3aGVuIGF0IHNtYWxsZXIgZ3JpZCB0aWVycyBieVxuICAvLyBhbHdheXMgc2V0dGluZyBgd2lkdGg6IDEwMCU7YC4gVGhpcyB3b3JrcyBiZWNhdXNlIHdlIHVzZSBgZmxleGAgdmFsdWVzXG4gIC8vIGxhdGVyIG9uIHRvIG92ZXJyaWRlIHRoaXMgaW5pdGlhbCB3aWR0aC5cbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmctcmlnaHQ6ICRndXR0ZXIgKiAwLjU7XG4gIHBhZGRpbmctbGVmdDogJGd1dHRlciAqIDAuNTtcbn1cblxuQG1peGluIG1ha2UtY29sKCRzaXplLCAkY29sdW1uczogJGdyaWQtY29sdW1ucykge1xuICBmbGV4OiAwIDAgcGVyY2VudGFnZShtYXRoLmRpdigkc2l6ZSwgJGNvbHVtbnMpKTtcbiAgLy8gQWRkIGEgYG1heC13aWR0aGAgdG8gZW5zdXJlIGNvbnRlbnQgd2l0aGluIGVhY2ggY29sdW1uIGRvZXMgbm90IGJsb3cgb3V0XG4gIC8vIHRoZSB3aWR0aCBvZiB0aGUgY29sdW1uLiBBcHBsaWVzIHRvIElFMTArIGFuZCBGaXJlZm94LiBDaHJvbWUgYW5kIFNhZmFyaVxuICAvLyBkbyBub3QgYXBwZWFyIHRvIHJlcXVpcmUgdGhpcy5cbiAgbWF4LXdpZHRoOiBwZXJjZW50YWdlKG1hdGguZGl2KCRzaXplLCAkY29sdW1ucykpO1xufVxuXG5AbWl4aW4gbWFrZS1jb2wtYXV0bygpIHtcbiAgZmxleDogMCAwIGF1dG87XG4gIHdpZHRoOiBhdXRvO1xuICBtYXgtd2lkdGg6IDEwMCU7IC8vIFJlc2V0IGVhcmxpZXIgZ3JpZCB0aWVyc1xufVxuXG5AbWl4aW4gbWFrZS1jb2wtb2Zmc2V0KCRzaXplLCAkY29sdW1uczogJGdyaWQtY29sdW1ucykge1xuICAkbnVtOiBtYXRoLmRpdigkc2l6ZSwgJGNvbHVtbnMpO1xuICBtYXJnaW4tbGVmdDogaWYoJG51bSA9PSAwLCAwLCBwZXJjZW50YWdlKCRudW0pKTtcbn1cblxuLy8gUm93IGNvbHVtbnNcbi8vXG4vLyBTcGVjaWZ5IG9uIGEgcGFyZW50IGVsZW1lbnQoZS5nLiwgLnJvdykgdG8gZm9yY2UgaW1tZWRpYXRlIGNoaWxkcmVuIGludG8gTk5cbi8vIG51bWJlcm9mIGNvbHVtbnMuIFN1cHBvcnRzIHdyYXBwaW5nIHRvIG5ldyBsaW5lcywgYnV0IGRvZXMgbm90IGRvIGEgTWFzb25yeVxuLy8gc3R5bGUgZ3JpZC5cbkBtaXhpbiByb3ctY29scygkY291bnQpIHtcbiAgPiAqIHtcbiAgICBmbGV4OiAwIDAgbWF0aC5kaXYoMTAwJSwgJGNvdW50KTtcbiAgICBtYXgtd2lkdGg6IG1hdGguZGl2KDEwMCUsICRjb3VudCk7XG4gIH1cbn1cbiIsIkB1c2UgXCJzYXNzOm1hdGhcIjtcblxuLy8tLS0tLS0gU0FTUyBVc2VmdWwgTWl4aW5zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBieSBSeWFuIEJ1cmdlc3Ncbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9yeWFuYnVyZ2Vzcy9TQVNTLVVzZWZ1bC1NaXhpbnNcbi8vIE1JVCDCqSBSeWFuIEJ1cmdlc3NcblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIC8vIFJFTSBVbml0cyB3aXRoIFBYIGZhbGxiYWNrXG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuIC8vIGV4YW1wbGU6IEBpbmNsdWRlIHJlbShcIm1hcmdpblwiLCAxMCwgNSwgMTAsIDUpO1xuIC8vIGV4YW1wbGU6IEBpbmNsdWRlIHJlbShcImZvbnQtc2l6ZVwiLCAxNCk7XG5cbkBtaXhpbiByZW0oJHByb3BlcnR5LCAkdmFsdWVzLi4uKSB7XG4gICRuOiBsZW5ndGgoJHZhbHVlcyk7XG4gICRpOiAxO1xuXG4gICRweGxpc3Q6ICgpO1xuICAkcmVtbGlzdDogKCk7XG5cbiAgQHdoaWxlICRpIDw9ICRuIHtcbiAgICAkaXRlbVZhbDogKG50aCgkdmFsdWVzLCAkaSkpO1xuICAgIEBpZiAkaXRlbVZhbCAhPSBcImF1dG9cIntcbiAgICAgICRweGxpc3Q6IGFwcGVuZCgkcHhsaXN0LCAkaXRlbVZhbCArIHB4KTtcbiAgICAgIC8vJHJlbWxpc3Q6IGFwcGVuZCgkcmVtbGlzdCwgKCRpdGVtVmFsIC8gMTApICsgcmVtKTsgLy8gVXNlIHRoaXMgaWYgeW91J3ZlIHNldCBIVE1MIGZvbnQgc2l6ZSB2YWx1ZSB0byA2Mi41JVxuICAgICAgJHJlbWxpc3Q6IGFwcGVuZCgkcmVtbGlzdCwgbWF0aC5kaXYoJGl0ZW1WYWwsIDE2KSArIHJlbSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkcHhsaXN0OiBhcHBlbmQoJHB4bGlzdCwgYXV0byk7XG4gICAgICAkcmVtbGlzdDogYXBwZW5kKCRyZW1saXN0LCBhdXRvKTtcbiAgICB9XG5cbiAgICAkaTogJGkgKyAxO1xuICB9XG5cbiAgI3skcHJvcGVydHl9OiAkcHhsaXN0O1xuICAjeyRwcm9wZXJ0eX06ICRyZW1saXN0O1xufSIsIkBtaXhpbiBmcygkc2l6ZSwgJGxpbmUtaGVpZ2h0KSB7XG4gICAgQGluY2x1ZGUgcmVtKCAnZm9udC1zaXplJywgJHNpemUgKTtcbiAgICBAaW5jbHVkZSByZW0oICdsaW5lLWhlaWdodCcsICRsaW5lLWhlaWdodCApO1xufVxuXG5AbWl4aW4gaDEge1xuICAgIEBpbmNsdWRlIGZzKCA1NCwgNjAgKTtcblxuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bihzbSl7XG4gICAgICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDMycHg7XG4gICAgfVxufVxuXG5AbWl4aW4gaDIge1xuICAgIEBpbmNsdWRlIGZzKCA0MiwgNjAgKTtcblxuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bihzbSl7XG4gICAgICAgIGZvbnQtc2l6ZTogMjFweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDMwcHg7XG4gICAgfVxufVxuXG5AbWl4aW4gaDMge1xuICAgIEBpbmNsdWRlIGZzKCAzMiwgNTAgKTtcblxuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bihzbSl7XG4gICAgICAgIGZvbnQtc2l6ZTogMTlweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDI5cHg7XG4gICAgfVxufVxuXG5AbWl4aW4gaDQge1xuICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgICBsaW5lLWhlaWdodDogMjZweDtcblxuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bihzbSl7XG4gICAgICAgIGZvbnQtc2l6ZTogMTdweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDI0cHg7ICAgICAgICBcbiAgICB9XG59XG5cbkBtaXhpbiBoNSB7XG4gICAgZm9udC1zaXplOiAyMHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xuXG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKHNtKXtcbiAgICAgICAgZm9udC1zaXplOiAxNXB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMjJweDsgICAgICAgIFxuICAgIH0gICAgXG59XG5cbkBtaXhpbiBmcy0xNCB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xuXG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKHNtKXtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMjJweDtcbiAgICB9XG59XG5cbkBtaXhpbiBmcy0xNiB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAyOHB4O1xuXG4gICAgLy8gQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKHNtKXtcbiAgICAvLyAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgIC8vICAgICBsaW5lLWhlaWdodDogMjRweDtcbiAgICAvLyB9XG59XG5cbkBtaXhpbiBmcy0xOCB7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAyMnB4OyAgICBcblxuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bih4bCl7XG4gICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE4cHg7XG4gICAgfVxufVxuXG5AbWl4aW4gZnMtMjAge1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICBsaW5lLWhlaWdodDogMjhweDsgICAgXG5cbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oeGwpe1xuICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyMXB4O1xuICAgIH1cbn1cblxuQG1peGluIGZzLTIyIHtcbiAgICBmb250LXNpemU6IDIycHg7XG4gICAgbGluZS1oZWlnaHQ6IDI2cHg7ICAgIFxuXG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKHhsKXtcbiAgICAgICAgZm9udC1zaXplOiAxOXB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMjNweDtcbiAgICB9XG59XG5cbkBtaXhpbiBmcy0yNCB7XG4gICAgZm9udC1zaXplOiAyNHB4O1xuICAgIGxpbmUtaGVpZ2h0OiA0MHB4O1xuICAgIFxuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bihzbSl7XG4gICAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDM1cHg7XG4gICAgfVxufVxuXG5AbWl4aW4gZnMtMjgge1xuICAgIGZvbnQtc2l6ZTogMjhweDtcbiAgICBsaW5lLWhlaWdodDogMzRweDtcbiAgICBcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oc20pe1xuICAgICAgICBmb250LXNpemU6IDIzcHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyOHB4O1xuICAgIH1cbn1cblxuQG1peGluIGZzLTMyIHtcbiAgICBmb250LXNpemU6IDMycHg7XG4gICAgbGluZS1oZWlnaHQ6IDQwcHg7XG4gICAgXG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKHNtKXtcbiAgICAgICAgZm9udC1zaXplOiAyNnB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMzBweDtcbiAgICB9XG59XG5cbkBtaXhpbiBiZy1vcGFjaXR5KCRjb2xvciwgJG9wYWNpdHkpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkY29sb3IsICRvcGFjaXR5KTtcbn1cblxuQG1peGluIG10LTF4IHtcbiAgICBAaW5jbHVkZSByZW0oJ21hcmdpbi10b3AnLCAkc3BhY2luZy0xeCk7XG59XG5cbkBtaXhpbiBtdC0yeCB7XG4gICAgQGluY2x1ZGUgcmVtKCdtYXJnaW4tdG9wJywgJHNwYWNpbmctMngpO1xufVxuXG5AbWl4aW4gbWItMXgge1xuICAgIEBpbmNsdWRlIHJlbSgnbWFyZ2luLWJvdHRvbScsICRzcGFjaW5nLTF4KTtcbn1cblxuQG1peGluIG1iLTJ4IHtcbiAgICBAaW5jbHVkZSByZW0oJ21hcmdpbi1ib3R0b20nLCAkc3BhY2luZy0yeCk7XG59XG5cbkBtaXhpbiBwdC0xeCB7XG4gICAgQGluY2x1ZGUgcmVtKCdwYWRkaW5nLXRvcCcsICRzcGFjaW5nLTF4KTtcbn1cblxuQG1peGluIHB0LTJ4IHtcbiAgICBAaW5jbHVkZSByZW0oJ3BhZGRpbmctdG9wJywgJHNwYWNpbmctMngpO1xufVxuXG5AbWl4aW4gcGItMXgge1xuICAgIEBpbmNsdWRlIHJlbSgncGFkZGluZy1ib3R0b20nLCAkc3BhY2luZy0xeCk7XG59XG5cbkBtaXhpbiBwYi0yeCB7XG4gICAgQGluY2x1ZGUgcmVtKCdwYWRkaW5nLWJvdHRvbScsICRzcGFjaW5nLTJ4KTtcbn1cblxuQG1peGluIG14LTF4IHtcbiAgICBAaW5jbHVkZSBtdC0xeDtcbiAgICBAaW5jbHVkZSBtYi0xeDtcbn1cblxuQG1peGluIG14LTJ4IHtcbiAgICBAaW5jbHVkZSBtdC0yeDtcbiAgICBAaW5jbHVkZSBtYi0yeDtcbn1cblxuQG1peGluIHB4LTF4IHtcbiAgICBAaW5jbHVkZSBwdC0xeDtcbiAgICBAaW5jbHVkZSBwYi0xeDtcbn1cblxuQG1peGluIHB4LTJ4IHtcbiAgICBAaW5jbHVkZSBwdC0yeDtcbiAgICBAaW5jbHVkZSBwYi0yeDtcbn1cblxuQG1peGluIGxvYWRpbmd7XG4gICAgJjpiZWZvcmV7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCk7XG4gICAgICAgIHotaW5kZXg6IDM7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC40cyBlYXNlLWluLW91dDtcbiAgICB9XG5cbiAgICAmOmFmdGVye1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBib3JkZXI6IDVweCBzb2xpZCAkcHVycGxlLTUwO1xuICAgICAgICBhbmltYXRpb246IHNwaW4gMXMgbGluZWFyIGluZmluaXRlO1xuICAgICAgICBib3JkZXItdG9wOiA1cHggc29saWQgJHByaW1hcnktY29sb3I7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgd2lkdGg6IDQwcHg7XG4gICAgICAgIGhlaWdodDogNDBweDtcbiAgICAgICAgei1pbmRleDogNDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IGNhbGMoNTAlIC0gMjBweCk7XG4gICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gMjBweCk7ICAgICAgICAgICAgICAgXG4gICAgfVxufVxuIl19 */
