.container {
  width: 100%;
  padding-right: 15px;
  padding-left: 15px;
  margin-right: auto;
  margin-left: auto;
}

@media (min-width: 576px) {
  .container {
    max-width: 540px;
  }
}

@media (min-width: 768px) {
  .container {
    max-width: 720px;
  }
}

@media (min-width: 992px) {
  .container {
    max-width: 960px;
  }
}

@media (min-width: 1200px) {
  .container {
    max-width: 1140px;
  }
}

.container-fluid {
  width: 100%;
  padding-right: 15px;
  padding-left: 15px;
  margin-right: auto;
  margin-left: auto;
}

.row {
  display: flex;
  flex-wrap: wrap;
  margin-right: -15px;
  margin-left: -15px;
}

.no-gutters {
  margin-right: 0;
  margin-left: 0;
}

.no-gutters > .col,
.no-gutters > [class*="col-"] {
  padding-right: 0;
  padding-left: 0;
}

.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,
.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,
.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,
.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,
.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,
.col-xl-auto {
  position: relative;
  width: 100%;
  min-height: 1px;
  padding-right: 15px;
  padding-left: 15px;
}

.col {
  flex-basis: 0;
  flex-grow: 1;
  max-width: 100%;
}

.col-auto {
  flex: 0 0 auto;
  width: auto;
  max-width: none;
}

.col-1 {
  flex: 0 0 8.33333%;
  max-width: 8.33333%;
}

.col-2 {
  flex: 0 0 16.66667%;
  max-width: 16.66667%;
}

.col-3 {
  flex: 0 0 25%;
  max-width: 25%;
}

.col-4 {
  flex: 0 0 33.33333%;
  max-width: 33.33333%;
}

.col-5 {
  flex: 0 0 41.66667%;
  max-width: 41.66667%;
}

.col-6 {
  flex: 0 0 50%;
  max-width: 50%;
}

.col-7 {
  flex: 0 0 58.33333%;
  max-width: 58.33333%;
}

.col-8 {
  flex: 0 0 66.66667%;
  max-width: 66.66667%;
}

.col-9 {
  flex: 0 0 75%;
  max-width: 75%;
}

.col-10 {
  flex: 0 0 83.33333%;
  max-width: 83.33333%;
}

.col-11 {
  flex: 0 0 91.66667%;
  max-width: 91.66667%;
}

.col-12 {
  flex: 0 0 100%;
  max-width: 100%;
}

.order-first {
  order: -1;
}

.order-last {
  order: 13;
}

.order-0 {
  order: 0;
}

.order-1 {
  order: 1;
}

.order-2 {
  order: 2;
}

.order-3 {
  order: 3;
}

.order-4 {
  order: 4;
}

.order-5 {
  order: 5;
}

.order-6 {
  order: 6;
}

.order-7 {
  order: 7;
}

.order-8 {
  order: 8;
}

.order-9 {
  order: 9;
}

.order-10 {
  order: 10;
}

.order-11 {
  order: 11;
}

.order-12 {
  order: 12;
}

.offset-1 {
  margin-left: 8.33333%;
}

.offset-2 {
  margin-left: 16.66667%;
}

.offset-3 {
  margin-left: 25%;
}

.offset-4 {
  margin-left: 33.33333%;
}

.offset-5 {
  margin-left: 41.66667%;
}

.offset-6 {
  margin-left: 50%;
}

.offset-7 {
  margin-left: 58.33333%;
}

.offset-8 {
  margin-left: 66.66667%;
}

.offset-9 {
  margin-left: 75%;
}

.offset-10 {
  margin-left: 83.33333%;
}

.offset-11 {
  margin-left: 91.66667%;
}

@media (min-width: 576px) {
  .col-sm {
    flex-basis: 0;
    flex-grow: 1;
    max-width: 100%;
  }
  .col-sm-auto {
    flex: 0 0 auto;
    width: auto;
    max-width: none;
  }
  .col-sm-1 {
    flex: 0 0 8.33333%;
    max-width: 8.33333%;
  }
  .col-sm-2 {
    flex: 0 0 16.66667%;
    max-width: 16.66667%;
  }
  .col-sm-3 {
    flex: 0 0 25%;
    max-width: 25%;
  }
  .col-sm-4 {
    flex: 0 0 33.33333%;
    max-width: 33.33333%;
  }
  .col-sm-5 {
    flex: 0 0 41.66667%;
    max-width: 41.66667%;
  }
  .col-sm-6 {
    flex: 0 0 50%;
    max-width: 50%;
  }
  .col-sm-7 {
    flex: 0 0 58.33333%;
    max-width: 58.33333%;
  }
  .col-sm-8 {
    flex: 0 0 66.66667%;
    max-width: 66.66667%;
  }
  .col-sm-9 {
    flex: 0 0 75%;
    max-width: 75%;
  }
  .col-sm-10 {
    flex: 0 0 83.33333%;
    max-width: 83.33333%;
  }
  .col-sm-11 {
    flex: 0 0 91.66667%;
    max-width: 91.66667%;
  }
  .col-sm-12 {
    flex: 0 0 100%;
    max-width: 100%;
  }
  .order-sm-first {
    order: -1;
  }
  .order-sm-last {
    order: 13;
  }
  .order-sm-0 {
    order: 0;
  }
  .order-sm-1 {
    order: 1;
  }
  .order-sm-2 {
    order: 2;
  }
  .order-sm-3 {
    order: 3;
  }
  .order-sm-4 {
    order: 4;
  }
  .order-sm-5 {
    order: 5;
  }
  .order-sm-6 {
    order: 6;
  }
  .order-sm-7 {
    order: 7;
  }
  .order-sm-8 {
    order: 8;
  }
  .order-sm-9 {
    order: 9;
  }
  .order-sm-10 {
    order: 10;
  }
  .order-sm-11 {
    order: 11;
  }
  .order-sm-12 {
    order: 12;
  }
  .offset-sm-0 {
    margin-left: 0;
  }
  .offset-sm-1 {
    margin-left: 8.33333%;
  }
  .offset-sm-2 {
    margin-left: 16.66667%;
  }
  .offset-sm-3 {
    margin-left: 25%;
  }
  .offset-sm-4 {
    margin-left: 33.33333%;
  }
  .offset-sm-5 {
    margin-left: 41.66667%;
  }
  .offset-sm-6 {
    margin-left: 50%;
  }
  .offset-sm-7 {
    margin-left: 58.33333%;
  }
  .offset-sm-8 {
    margin-left: 66.66667%;
  }
  .offset-sm-9 {
    margin-left: 75%;
  }
  .offset-sm-10 {
    margin-left: 83.33333%;
  }
  .offset-sm-11 {
    margin-left: 91.66667%;
  }
}

@media (min-width: 768px) {
  .col-md {
    flex-basis: 0;
    flex-grow: 1;
    max-width: 100%;
  }
  .col-md-auto {
    flex: 0 0 auto;
    width: auto;
    max-width: none;
  }
  .col-md-1 {
    flex: 0 0 8.33333%;
    max-width: 8.33333%;
  }
  .col-md-2 {
    flex: 0 0 16.66667%;
    max-width: 16.66667%;
  }
  .col-md-3 {
    flex: 0 0 25%;
    max-width: 25%;
  }
  .col-md-4 {
    flex: 0 0 33.33333%;
    max-width: 33.33333%;
  }
  .col-md-5 {
    flex: 0 0 41.66667%;
    max-width: 41.66667%;
  }
  .col-md-6 {
    flex: 0 0 50%;
    max-width: 50%;
  }
  .col-md-7 {
    flex: 0 0 58.33333%;
    max-width: 58.33333%;
  }
  .col-md-8 {
    flex: 0 0 66.66667%;
    max-width: 66.66667%;
  }
  .col-md-9 {
    flex: 0 0 75%;
    max-width: 75%;
  }
  .col-md-10 {
    flex: 0 0 83.33333%;
    max-width: 83.33333%;
  }
  .col-md-11 {
    flex: 0 0 91.66667%;
    max-width: 91.66667%;
  }
  .col-md-12 {
    flex: 0 0 100%;
    max-width: 100%;
  }
  .order-md-first {
    order: -1;
  }
  .order-md-last {
    order: 13;
  }
  .order-md-0 {
    order: 0;
  }
  .order-md-1 {
    order: 1;
  }
  .order-md-2 {
    order: 2;
  }
  .order-md-3 {
    order: 3;
  }
  .order-md-4 {
    order: 4;
  }
  .order-md-5 {
    order: 5;
  }
  .order-md-6 {
    order: 6;
  }
  .order-md-7 {
    order: 7;
  }
  .order-md-8 {
    order: 8;
  }
  .order-md-9 {
    order: 9;
  }
  .order-md-10 {
    order: 10;
  }
  .order-md-11 {
    order: 11;
  }
  .order-md-12 {
    order: 12;
  }
  .offset-md-0 {
    margin-left: 0;
  }
  .offset-md-1 {
    margin-left: 8.33333%;
  }
  .offset-md-2 {
    margin-left: 16.66667%;
  }
  .offset-md-3 {
    margin-left: 25%;
  }
  .offset-md-4 {
    margin-left: 33.33333%;
  }
  .offset-md-5 {
    margin-left: 41.66667%;
  }
  .offset-md-6 {
    margin-left: 50%;
  }
  .offset-md-7 {
    margin-left: 58.33333%;
  }
  .offset-md-8 {
    margin-left: 66.66667%;
  }
  .offset-md-9 {
    margin-left: 75%;
  }
  .offset-md-10 {
    margin-left: 83.33333%;
  }
  .offset-md-11 {
    margin-left: 91.66667%;
  }
}

@media (min-width: 992px) {
  .col-lg {
    flex-basis: 0;
    flex-grow: 1;
    max-width: 100%;
  }
  .col-lg-auto {
    flex: 0 0 auto;
    width: auto;
    max-width: none;
  }
  .col-lg-1 {
    flex: 0 0 8.33333%;
    max-width: 8.33333%;
  }
  .col-lg-2 {
    flex: 0 0 16.66667%;
    max-width: 16.66667%;
  }
  .col-lg-3 {
    flex: 0 0 25%;
    max-width: 25%;
  }
  .col-lg-4 {
    flex: 0 0 33.33333%;
    max-width: 33.33333%;
  }
  .col-lg-5 {
    flex: 0 0 41.66667%;
    max-width: 41.66667%;
  }
  .col-lg-6 {
    flex: 0 0 50%;
    max-width: 50%;
  }
  .col-lg-7 {
    flex: 0 0 58.33333%;
    max-width: 58.33333%;
  }
  .col-lg-8 {
    flex: 0 0 66.66667%;
    max-width: 66.66667%;
  }
  .col-lg-9 {
    flex: 0 0 75%;
    max-width: 75%;
  }
  .col-lg-10 {
    flex: 0 0 83.33333%;
    max-width: 83.33333%;
  }
  .col-lg-11 {
    flex: 0 0 91.66667%;
    max-width: 91.66667%;
  }
  .col-lg-12 {
    flex: 0 0 100%;
    max-width: 100%;
  }
  .order-lg-first {
    order: -1;
  }
  .order-lg-last {
    order: 13;
  }
  .order-lg-0 {
    order: 0;
  }
  .order-lg-1 {
    order: 1;
  }
  .order-lg-2 {
    order: 2;
  }
  .order-lg-3 {
    order: 3;
  }
  .order-lg-4 {
    order: 4;
  }
  .order-lg-5 {
    order: 5;
  }
  .order-lg-6 {
    order: 6;
  }
  .order-lg-7 {
    order: 7;
  }
  .order-lg-8 {
    order: 8;
  }
  .order-lg-9 {
    order: 9;
  }
  .order-lg-10 {
    order: 10;
  }
  .order-lg-11 {
    order: 11;
  }
  .order-lg-12 {
    order: 12;
  }
  .offset-lg-0 {
    margin-left: 0;
  }
  .offset-lg-1 {
    margin-left: 8.33333%;
  }
  .offset-lg-2 {
    margin-left: 16.66667%;
  }
  .offset-lg-3 {
    margin-left: 25%;
  }
  .offset-lg-4 {
    margin-left: 33.33333%;
  }
  .offset-lg-5 {
    margin-left: 41.66667%;
  }
  .offset-lg-6 {
    margin-left: 50%;
  }
  .offset-lg-7 {
    margin-left: 58.33333%;
  }
  .offset-lg-8 {
    margin-left: 66.66667%;
  }
  .offset-lg-9 {
    margin-left: 75%;
  }
  .offset-lg-10 {
    margin-left: 83.33333%;
  }
  .offset-lg-11 {
    margin-left: 91.66667%;
  }
}

@media (min-width: 1200px) {
  .col-xl {
    flex-basis: 0;
    flex-grow: 1;
    max-width: 100%;
  }
  .col-xl-auto {
    flex: 0 0 auto;
    width: auto;
    max-width: none;
  }
  .col-xl-1 {
    flex: 0 0 8.33333%;
    max-width: 8.33333%;
  }
  .col-xl-2 {
    flex: 0 0 16.66667%;
    max-width: 16.66667%;
  }
  .col-xl-3 {
    flex: 0 0 25%;
    max-width: 25%;
  }
  .col-xl-4 {
    flex: 0 0 33.33333%;
    max-width: 33.33333%;
  }
  .col-xl-5 {
    flex: 0 0 41.66667%;
    max-width: 41.66667%;
  }
  .col-xl-6 {
    flex: 0 0 50%;
    max-width: 50%;
  }
  .col-xl-7 {
    flex: 0 0 58.33333%;
    max-width: 58.33333%;
  }
  .col-xl-8 {
    flex: 0 0 66.66667%;
    max-width: 66.66667%;
  }
  .col-xl-9 {
    flex: 0 0 75%;
    max-width: 75%;
  }
  .col-xl-10 {
    flex: 0 0 83.33333%;
    max-width: 83.33333%;
  }
  .col-xl-11 {
    flex: 0 0 91.66667%;
    max-width: 91.66667%;
  }
  .col-xl-12 {
    flex: 0 0 100%;
    max-width: 100%;
  }
  .order-xl-first {
    order: -1;
  }
  .order-xl-last {
    order: 13;
  }
  .order-xl-0 {
    order: 0;
  }
  .order-xl-1 {
    order: 1;
  }
  .order-xl-2 {
    order: 2;
  }
  .order-xl-3 {
    order: 3;
  }
  .order-xl-4 {
    order: 4;
  }
  .order-xl-5 {
    order: 5;
  }
  .order-xl-6 {
    order: 6;
  }
  .order-xl-7 {
    order: 7;
  }
  .order-xl-8 {
    order: 8;
  }
  .order-xl-9 {
    order: 9;
  }
  .order-xl-10 {
    order: 10;
  }
  .order-xl-11 {
    order: 11;
  }
  .order-xl-12 {
    order: 12;
  }
  .offset-xl-0 {
    margin-left: 0;
  }
  .offset-xl-1 {
    margin-left: 8.33333%;
  }
  .offset-xl-2 {
    margin-left: 16.66667%;
  }
  .offset-xl-3 {
    margin-left: 25%;
  }
  .offset-xl-4 {
    margin-left: 33.33333%;
  }
  .offset-xl-5 {
    margin-left: 41.66667%;
  }
  .offset-xl-6 {
    margin-left: 50%;
  }
  .offset-xl-7 {
    margin-left: 58.33333%;
  }
  .offset-xl-8 {
    margin-left: 66.66667%;
  }
  .offset-xl-9 {
    margin-left: 75%;
  }
  .offset-xl-10 {
    margin-left: 83.33333%;
  }
  .offset-xl-11 {
    margin-left: 91.66667%;
  }
}


/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vZ3JpZC5zY3NzIiwid2VicGFjazovLy9zY3NzL19ncmlkLnNjc3MiLCJ3ZWJwYWNrOi8vL3Njc3MvX2JyZWFrcG9pbnRzLnNjc3MiLCJ3ZWJwYWNrOi8vL3Njc3MvX3ZhcmlhYmxlcy5zY3NzIiwid2VicGFjazovLy9zY3NzL19ncmlkLWZyYW1ld29yay5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWFBO0VDUkUsV0FBVztFQUNYLG1CQUF1QztFQUN2QyxrQkFBc0M7RUFDdEMsa0JBQWtCO0VBQ2xCLGlCQUFpQjtBREhuQjs7QUVzREk7RUYvQ0o7SUNJTSxnQkVHSztFSFRUO0FBQ0Y7O0FFZ0RJO0VGL0NKO0lDSU0sZ0JFSUs7RUhKVDtBQUNGOztBRTBDSTtFRi9DSjtJQ0lNLGdCRUtLO0VIQ1Q7QUFDRjs7QUVvQ0k7RUYvQ0o7SUNJTSxpQkVNTTtFSE1WO0FBQ0Y7O0FBUEE7RUNsQkUsV0FBVztFQUNYLG1CQUF1QztFQUN2QyxrQkFBc0M7RUFDdEMsa0JBQWtCO0VBQ2xCLGlCQUFpQjtBRDZCbkI7O0FBUEE7RUNSRSxhQUFhO0VBQ2IsZUFBZTtFQUNmLG1CQUF1QztFQUN2QyxrQkFBc0M7QURtQnhDOztBQVJBO0VBQ0UsZUFBZTtFQUNmLGNBQWM7QUFXaEI7O0FBYkE7O0VBTUksZ0JBQWdCO0VBQ2hCLGVBQWU7QUFZbkI7O0FJakRFOzs7Ozs7RUFDRSxrQkFBa0I7RUFDbEIsV0FBVztFQUNYLGVBQWU7RUFDZixtQkFBNEI7RUFDNUIsa0JBQTJCO0FKeUQvQjs7QUl0Q007RUFDRSxhQUFhO0VBQ2IsWUFBWTtFQUNaLGVBQWU7QUp5Q3ZCOztBSXZDTTtFQUNFLGNBQWM7RUFDZCxXQUFXO0VBQ1gsZUFBZTtBSjBDdkI7O0FJdENRO0VIRk4sa0JBQXNDO0VBSXRDLG1CQUF1QztBRHlDekM7O0FJM0NRO0VIRk4sbUJBQXNDO0VBSXRDLG9CQUF1QztBRDhDekM7O0FJaERRO0VIRk4sYUFBc0M7RUFJdEMsY0FBdUM7QURtRHpDOztBSXJEUTtFSEZOLG1CQUFzQztFQUl0QyxvQkFBdUM7QUR3RHpDOztBSTFEUTtFSEZOLG1CQUFzQztFQUl0QyxvQkFBdUM7QUQ2RHpDOztBSS9EUTtFSEZOLGFBQXNDO0VBSXRDLGNBQXVDO0FEa0V6Qzs7QUlwRVE7RUhGTixtQkFBc0M7RUFJdEMsb0JBQXVDO0FEdUV6Qzs7QUl6RVE7RUhGTixtQkFBc0M7RUFJdEMsb0JBQXVDO0FENEV6Qzs7QUk5RVE7RUhGTixhQUFzQztFQUl0QyxjQUF1QztBRGlGekM7O0FJbkZRO0VIRk4sbUJBQXNDO0VBSXRDLG9CQUF1QztBRHNGekM7O0FJeEZRO0VIRk4sbUJBQXNDO0VBSXRDLG9CQUF1QztBRDJGekM7O0FJN0ZRO0VIRk4sY0FBc0M7RUFJdEMsZUFBdUM7QURnR3pDOztBSTdGTTtFQUF3QixTQUFTO0FKaUd2Qzs7QUkvRk07RUFBdUIsU0RwQkc7QUh1SGhDOztBSWhHUTtFQUF3QixRQURaO0FKcUdwQjs7QUlwR1E7RUFBd0IsUUFEWjtBSnlHcEI7O0FJeEdRO0VBQXdCLFFBRFo7QUo2R3BCOztBSTVHUTtFQUF3QixRQURaO0FKaUhwQjs7QUloSFE7RUFBd0IsUUFEWjtBSnFIcEI7O0FJcEhRO0VBQXdCLFFBRFo7QUp5SHBCOztBSXhIUTtFQUF3QixRQURaO0FKNkhwQjs7QUk1SFE7RUFBd0IsUUFEWjtBSmlJcEI7O0FJaElRO0VBQXdCLFFBRFo7QUpxSXBCOztBSXBJUTtFQUF3QixRQURaO0FKeUlwQjs7QUl4SVE7RUFBd0IsU0FEWjtBSjZJcEI7O0FJNUlRO0VBQXdCLFNBRFo7QUppSnBCOztBSWhKUTtFQUF3QixTQURaO0FKcUpwQjs7QUk5SVU7RUhUUixxQkFBOEM7QUQySmhEOztBSWxKVTtFSFRSLHNCQUE4QztBRCtKaEQ7O0FJdEpVO0VIVFIsZ0JBQThDO0FEbUtoRDs7QUkxSlU7RUhUUixzQkFBOEM7QUR1S2hEOztBSTlKVTtFSFRSLHNCQUE4QztBRDJLaEQ7O0FJbEtVO0VIVFIsZ0JBQThDO0FEK0toRDs7QUl0S1U7RUhUUixzQkFBOEM7QURtTGhEOztBSTFLVTtFSFRSLHNCQUE4QztBRHVMaEQ7O0FJOUtVO0VIVFIsZ0JBQThDO0FEMkxoRDs7QUlsTFU7RUhUUixzQkFBOEM7QUQrTGhEOztBSXRMVTtFSFRSLHNCQUE4QztBRG1NaEQ7O0FFekxJO0VFN0JFO0lBQ0UsYUFBYTtJQUNiLFlBQVk7SUFDWixlQUFlO0VKME5yQjtFSXhOSTtJQUNFLGNBQWM7SUFDZCxXQUFXO0lBQ1gsZUFBZTtFSjBOckI7RUl0Tk07SUhGTixrQkFBc0M7SUFJdEMsbUJBQXVDO0VEd052QztFSTFOTTtJSEZOLG1CQUFzQztJQUl0QyxvQkFBdUM7RUQ0TnZDO0VJOU5NO0lIRk4sYUFBc0M7SUFJdEMsY0FBdUM7RURnT3ZDO0VJbE9NO0lIRk4sbUJBQXNDO0lBSXRDLG9CQUF1QztFRG9PdkM7RUl0T007SUhGTixtQkFBc0M7SUFJdEMsb0JBQXVDO0VEd092QztFSTFPTTtJSEZOLGFBQXNDO0lBSXRDLGNBQXVDO0VENE92QztFSTlPTTtJSEZOLG1CQUFzQztJQUl0QyxvQkFBdUM7RURnUHZDO0VJbFBNO0lIRk4sbUJBQXNDO0lBSXRDLG9CQUF1QztFRG9QdkM7RUl0UE07SUhGTixhQUFzQztJQUl0QyxjQUF1QztFRHdQdkM7RUkxUE07SUhGTixtQkFBc0M7SUFJdEMsb0JBQXVDO0VENFB2QztFSTlQTTtJSEZOLG1CQUFzQztJQUl0QyxvQkFBdUM7RURnUXZDO0VJbFFNO0lIRk4sY0FBc0M7SUFJdEMsZUFBdUM7RURvUXZDO0VJalFJO0lBQXdCLFNBQVM7RUpvUXJDO0VJbFFJO0lBQXVCLFNEcEJHO0VIeVI5QjtFSWxRTTtJQUF3QixRQURaO0VKc1FsQjtFSXJRTTtJQUF3QixRQURaO0VKeVFsQjtFSXhRTTtJQUF3QixRQURaO0VKNFFsQjtFSTNRTTtJQUF3QixRQURaO0VKK1FsQjtFSTlRTTtJQUF3QixRQURaO0VKa1JsQjtFSWpSTTtJQUF3QixRQURaO0VKcVJsQjtFSXBSTTtJQUF3QixRQURaO0VKd1JsQjtFSXZSTTtJQUF3QixRQURaO0VKMlJsQjtFSTFSTTtJQUF3QixRQURaO0VKOFJsQjtFSTdSTTtJQUF3QixRQURaO0VKaVNsQjtFSWhTTTtJQUF3QixTQURaO0VKb1NsQjtFSW5TTTtJQUF3QixTQURaO0VKdVNsQjtFSXRTTTtJQUF3QixTQURaO0VKMFNsQjtFSW5TUTtJSFRSLGNBQTRCO0VEK1M1QjtFSXRTUTtJSFRSLHFCQUE4QztFRGtUOUM7RUl6U1E7SUhUUixzQkFBOEM7RURxVDlDO0VJNVNRO0lIVFIsZ0JBQThDO0VEd1Q5QztFSS9TUTtJSFRSLHNCQUE4QztFRDJUOUM7RUlsVFE7SUhUUixzQkFBOEM7RUQ4VDlDO0VJclRRO0lIVFIsZ0JBQThDO0VEaVU5QztFSXhUUTtJSFRSLHNCQUE4QztFRG9VOUM7RUkzVFE7SUhUUixzQkFBOEM7RUR1VTlDO0VJOVRRO0lIVFIsZ0JBQThDO0VEMFU5QztFSWpVUTtJSFRSLHNCQUE4QztFRDZVOUM7RUlwVVE7SUhUUixzQkFBOEM7RURnVjlDO0FBQ0Y7O0FFdlVJO0VFN0JFO0lBQ0UsYUFBYTtJQUNiLFlBQVk7SUFDWixlQUFlO0VKd1dyQjtFSXRXSTtJQUNFLGNBQWM7SUFDZCxXQUFXO0lBQ1gsZUFBZTtFSndXckI7RUlwV007SUhGTixrQkFBc0M7SUFJdEMsbUJBQXVDO0VEc1d2QztFSXhXTTtJSEZOLG1CQUFzQztJQUl0QyxvQkFBdUM7RUQwV3ZDO0VJNVdNO0lIRk4sYUFBc0M7SUFJdEMsY0FBdUM7RUQ4V3ZDO0VJaFhNO0lIRk4sbUJBQXNDO0lBSXRDLG9CQUF1QztFRGtYdkM7RUlwWE07SUhGTixtQkFBc0M7SUFJdEMsb0JBQXVDO0VEc1h2QztFSXhYTTtJSEZOLGFBQXNDO0lBSXRDLGNBQXVDO0VEMFh2QztFSTVYTTtJSEZOLG1CQUFzQztJQUl0QyxvQkFBdUM7RUQ4WHZDO0VJaFlNO0lIRk4sbUJBQXNDO0lBSXRDLG9CQUF1QztFRGtZdkM7RUlwWU07SUhGTixhQUFzQztJQUl0QyxjQUF1QztFRHNZdkM7RUl4WU07SUhGTixtQkFBc0M7SUFJdEMsb0JBQXVDO0VEMFl2QztFSTVZTTtJSEZOLG1CQUFzQztJQUl0QyxvQkFBdUM7RUQ4WXZDO0VJaFpNO0lIRk4sY0FBc0M7SUFJdEMsZUFBdUM7RURrWnZDO0VJL1lJO0lBQXdCLFNBQVM7RUprWnJDO0VJaFpJO0lBQXVCLFNEcEJHO0VIdWE5QjtFSWhaTTtJQUF3QixRQURaO0VKb1psQjtFSW5aTTtJQUF3QixRQURaO0VKdVpsQjtFSXRaTTtJQUF3QixRQURaO0VKMFpsQjtFSXpaTTtJQUF3QixRQURaO0VKNlpsQjtFSTVaTTtJQUF3QixRQURaO0VKZ2FsQjtFSS9aTTtJQUF3QixRQURaO0VKbWFsQjtFSWxhTTtJQUF3QixRQURaO0VKc2FsQjtFSXJhTTtJQUF3QixRQURaO0VKeWFsQjtFSXhhTTtJQUF3QixRQURaO0VKNGFsQjtFSTNhTTtJQUF3QixRQURaO0VKK2FsQjtFSTlhTTtJQUF3QixTQURaO0VKa2JsQjtFSWpiTTtJQUF3QixTQURaO0VKcWJsQjtFSXBiTTtJQUF3QixTQURaO0VKd2JsQjtFSWpiUTtJSFRSLGNBQTRCO0VENmI1QjtFSXBiUTtJSFRSLHFCQUE4QztFRGdjOUM7RUl2YlE7SUhUUixzQkFBOEM7RURtYzlDO0VJMWJRO0lIVFIsZ0JBQThDO0VEc2M5QztFSTdiUTtJSFRSLHNCQUE4QztFRHljOUM7RUloY1E7SUhUUixzQkFBOEM7RUQ0YzlDO0VJbmNRO0lIVFIsZ0JBQThDO0VEK2M5QztFSXRjUTtJSFRSLHNCQUE4QztFRGtkOUM7RUl6Y1E7SUhUUixzQkFBOEM7RURxZDlDO0VJNWNRO0lIVFIsZ0JBQThDO0VEd2Q5QztFSS9jUTtJSFRSLHNCQUE4QztFRDJkOUM7RUlsZFE7SUhUUixzQkFBOEM7RUQ4ZDlDO0FBQ0Y7O0FFcmRJO0VFN0JFO0lBQ0UsYUFBYTtJQUNiLFlBQVk7SUFDWixlQUFlO0VKc2ZyQjtFSXBmSTtJQUNFLGNBQWM7SUFDZCxXQUFXO0lBQ1gsZUFBZTtFSnNmckI7RUlsZk07SUhGTixrQkFBc0M7SUFJdEMsbUJBQXVDO0VEb2Z2QztFSXRmTTtJSEZOLG1CQUFzQztJQUl0QyxvQkFBdUM7RUR3ZnZDO0VJMWZNO0lIRk4sYUFBc0M7SUFJdEMsY0FBdUM7RUQ0ZnZDO0VJOWZNO0lIRk4sbUJBQXNDO0lBSXRDLG9CQUF1QztFRGdnQnZDO0VJbGdCTTtJSEZOLG1CQUFzQztJQUl0QyxvQkFBdUM7RURvZ0J2QztFSXRnQk07SUhGTixhQUFzQztJQUl0QyxjQUF1QztFRHdnQnZDO0VJMWdCTTtJSEZOLG1CQUFzQztJQUl0QyxvQkFBdUM7RUQ0Z0J2QztFSTlnQk07SUhGTixtQkFBc0M7SUFJdEMsb0JBQXVDO0VEZ2hCdkM7RUlsaEJNO0lIRk4sYUFBc0M7SUFJdEMsY0FBdUM7RURvaEJ2QztFSXRoQk07SUhGTixtQkFBc0M7SUFJdEMsb0JBQXVDO0VEd2hCdkM7RUkxaEJNO0lIRk4sbUJBQXNDO0lBSXRDLG9CQUF1QztFRDRoQnZDO0VJOWhCTTtJSEZOLGNBQXNDO0lBSXRDLGVBQXVDO0VEZ2lCdkM7RUk3aEJJO0lBQXdCLFNBQVM7RUpnaUJyQztFSTloQkk7SUFBdUIsU0RwQkc7RUhxakI5QjtFSTloQk07SUFBd0IsUUFEWjtFSmtpQmxCO0VJamlCTTtJQUF3QixRQURaO0VKcWlCbEI7RUlwaUJNO0lBQXdCLFFBRFo7RUp3aUJsQjtFSXZpQk07SUFBd0IsUUFEWjtFSjJpQmxCO0VJMWlCTTtJQUF3QixRQURaO0VKOGlCbEI7RUk3aUJNO0lBQXdCLFFBRFo7RUppakJsQjtFSWhqQk07SUFBd0IsUUFEWjtFSm9qQmxCO0VJbmpCTTtJQUF3QixRQURaO0VKdWpCbEI7RUl0akJNO0lBQXdCLFFBRFo7RUowakJsQjtFSXpqQk07SUFBd0IsUUFEWjtFSjZqQmxCO0VJNWpCTTtJQUF3QixTQURaO0VKZ2tCbEI7RUkvakJNO0lBQXdCLFNBRFo7RUpta0JsQjtFSWxrQk07SUFBd0IsU0FEWjtFSnNrQmxCO0VJL2pCUTtJSFRSLGNBQTRCO0VEMmtCNUI7RUlsa0JRO0lIVFIscUJBQThDO0VEOGtCOUM7RUlya0JRO0lIVFIsc0JBQThDO0VEaWxCOUM7RUl4a0JRO0lIVFIsZ0JBQThDO0VEb2xCOUM7RUkza0JRO0lIVFIsc0JBQThDO0VEdWxCOUM7RUk5a0JRO0lIVFIsc0JBQThDO0VEMGxCOUM7RUlqbEJRO0lIVFIsZ0JBQThDO0VENmxCOUM7RUlwbEJRO0lIVFIsc0JBQThDO0VEZ21COUM7RUl2bEJRO0lIVFIsc0JBQThDO0VEbW1COUM7RUkxbEJRO0lIVFIsZ0JBQThDO0VEc21COUM7RUk3bEJRO0lIVFIsc0JBQThDO0VEeW1COUM7RUlobUJRO0lIVFIsc0JBQThDO0VENG1COUM7QUFDRjs7QUVubUJJO0VFN0JFO0lBQ0UsYUFBYTtJQUNiLFlBQVk7SUFDWixlQUFlO0VKb29CckI7RUlsb0JJO0lBQ0UsY0FBYztJQUNkLFdBQVc7SUFDWCxlQUFlO0VKb29CckI7RUlob0JNO0lIRk4sa0JBQXNDO0lBSXRDLG1CQUF1QztFRGtvQnZDO0VJcG9CTTtJSEZOLG1CQUFzQztJQUl0QyxvQkFBdUM7RURzb0J2QztFSXhvQk07SUhGTixhQUFzQztJQUl0QyxjQUF1QztFRDBvQnZDO0VJNW9CTTtJSEZOLG1CQUFzQztJQUl0QyxvQkFBdUM7RUQ4b0J2QztFSWhwQk07SUhGTixtQkFBc0M7SUFJdEMsb0JBQXVDO0VEa3BCdkM7RUlwcEJNO0lIRk4sYUFBc0M7SUFJdEMsY0FBdUM7RURzcEJ2QztFSXhwQk07SUhGTixtQkFBc0M7SUFJdEMsb0JBQXVDO0VEMHBCdkM7RUk1cEJNO0lIRk4sbUJBQXNDO0lBSXRDLG9CQUF1QztFRDhwQnZDO0VJaHFCTTtJSEZOLGFBQXNDO0lBSXRDLGNBQXVDO0VEa3FCdkM7RUlwcUJNO0lIRk4sbUJBQXNDO0lBSXRDLG9CQUF1QztFRHNxQnZDO0VJeHFCTTtJSEZOLG1CQUFzQztJQUl0QyxvQkFBdUM7RUQwcUJ2QztFSTVxQk07SUhGTixjQUFzQztJQUl0QyxlQUF1QztFRDhxQnZDO0VJM3FCSTtJQUF3QixTQUFTO0VKOHFCckM7RUk1cUJJO0lBQXVCLFNEcEJHO0VIbXNCOUI7RUk1cUJNO0lBQXdCLFFBRFo7RUpnckJsQjtFSS9xQk07SUFBd0IsUUFEWjtFSm1yQmxCO0VJbHJCTTtJQUF3QixRQURaO0VKc3JCbEI7RUlyckJNO0lBQXdCLFFBRFo7RUp5ckJsQjtFSXhyQk07SUFBd0IsUUFEWjtFSjRyQmxCO0VJM3JCTTtJQUF3QixRQURaO0VKK3JCbEI7RUk5ckJNO0lBQXdCLFFBRFo7RUprc0JsQjtFSWpzQk07SUFBd0IsUUFEWjtFSnFzQmxCO0VJcHNCTTtJQUF3QixRQURaO0VKd3NCbEI7RUl2c0JNO0lBQXdCLFFBRFo7RUoyc0JsQjtFSTFzQk07SUFBd0IsU0FEWjtFSjhzQmxCO0VJN3NCTTtJQUF3QixTQURaO0VKaXRCbEI7RUlodEJNO0lBQXdCLFNBRFo7RUpvdEJsQjtFSTdzQlE7SUhUUixjQUE0QjtFRHl0QjVCO0VJaHRCUTtJSFRSLHFCQUE4QztFRDR0QjlDO0VJbnRCUTtJSFRSLHNCQUE4QztFRCt0QjlDO0VJdHRCUTtJSFRSLGdCQUE4QztFRGt1QjlDO0VJenRCUTtJSFRSLHNCQUE4QztFRHF1QjlDO0VJNXRCUTtJSFRSLHNCQUE4QztFRHd1QjlDO0VJL3RCUTtJSFRSLGdCQUE4QztFRDJ1QjlDO0VJbHVCUTtJSFRSLHNCQUE4QztFRDh1QjlDO0VJcnVCUTtJSFRSLHNCQUE4QztFRGl2QjlDO0VJeHVCUTtJSFRSLGdCQUE4QztFRG92QjlDO0VJM3VCUTtJSFRSLHNCQUE4QztFRHV2QjlDO0VJOXVCUTtJSFRSLHNCQUE4QztFRDB2QjlDO0FBQ0YiLCJmaWxlIjoiZ3JpZC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBHcmlkIGJhc2VkIG9uIEJvb3RzdHJhcCA0LlxuLy9cblxuQGltcG9ydCBcInNjc3MvdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwic2Nzcy9icmVha3BvaW50c1wiO1xuQGltcG9ydCBcInNjc3MvZ3JpZC1mcmFtZXdvcmtcIjtcbkBpbXBvcnQgXCJzY3NzL2dyaWRcIjtcbi8vIEBpbXBvcnQgXCJncmlkL2ZsZXhcIjtcblxuLy8gQ29udGFpbmVyIHdpZHRoc1xuLy9cbi8vIFNldCB0aGUgY29udGFpbmVyIHdpZHRoLCBhbmQgb3ZlcnJpZGUgaXQgZm9yIGZpeGVkIG5hdmJhcnMgaW4gbWVkaWEgcXVlcmllcy5cblxuLmNvbnRhaW5lciB7XG4gIEBpbmNsdWRlIG1ha2UtY29udGFpbmVyKCk7XG4gIEBpbmNsdWRlIG1ha2UtY29udGFpbmVyLW1heC13aWR0aHMoKTtcbn1cblxuLy8gRmx1aWQgY29udGFpbmVyXG4vL1xuLy8gVXRpbGl6ZXMgdGhlIG1peGluIG1lYW50IGZvciBmaXhlZCB3aWR0aCBjb250YWluZXJzLCBidXQgd2l0aCAxMDAlIHdpZHRoIGZvclxuLy8gZmx1aWQsIGZ1bGwgd2lkdGggbGF5b3V0cy5cblxuLmNvbnRhaW5lci1mbHVpZCB7XG4gIEBpbmNsdWRlIG1ha2UtY29udGFpbmVyKCk7XG59XG5cbi8vIFJvd1xuLy9cbi8vIFJvd3MgY29udGFpbiBhbmQgY2xlYXIgdGhlIGZsb2F0cyBvZiB5b3VyIGNvbHVtbnMuXG5cbi5yb3cge1xuICBAaW5jbHVkZSBtYWtlLXJvdygpO1xufVxuXG4vLyBSZW1vdmUgdGhlIG5lZ2F0aXZlIG1hcmdpbiBmcm9tIGRlZmF1bHQgLnJvdywgdGhlbiB0aGUgaG9yaXpvbnRhbCBwYWRkaW5nXG4vLyBmcm9tIGFsbCBpbW1lZGlhdGUgY2hpbGRyZW4gY29sdW1ucyAodG8gcHJldmVudCBydW5hd2F5IHN0eWxlIGluaGVyaXRhbmNlKS5cbi5uby1ndXR0ZXJzIHtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICBtYXJnaW4tbGVmdDogMDtcblxuICA+IC5jb2wsXG4gID4gW2NsYXNzKj1cImNvbC1cIl0ge1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICB9XG59XG5cbi8vIENvbHVtbnNcbi8vXG4vLyBDb21tb24gc3R5bGVzIGZvciBzbWFsbCBhbmQgbGFyZ2UgZ3JpZCBjb2x1bW5zXG5cbkBpbmNsdWRlIG1ha2UtZ3JpZC1jb2x1bW5zKCk7XG4iLCIvLy8gR3JpZCBzeXN0ZW1cbi8vXG4vLyBHZW5lcmF0ZSBzZW1hbnRpYyBncmlkIGNvbHVtbnMgd2l0aCB0aGVzZSBtaXhpbnMuXG5cbkBtaXhpbiBtYWtlLWNvbnRhaW5lcigpIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmctcmlnaHQ6ICgkZ3JpZC1ndXR0ZXItd2lkdGggLyAyKTtcbiAgcGFkZGluZy1sZWZ0OiAoJGdyaWQtZ3V0dGVyLXdpZHRoIC8gMik7XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG59XG5cblxuLy8gRm9yIGVhY2ggYnJlYWtwb2ludCwgZGVmaW5lIHRoZSBtYXhpbXVtIHdpZHRoIG9mIHRoZSBjb250YWluZXIgaW4gYSBtZWRpYSBxdWVyeVxuQG1peGluIG1ha2UtY29udGFpbmVyLW1heC13aWR0aHMoJG1heC13aWR0aHM6ICRjb250YWluZXItbWF4LXdpZHRocywgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICBAZWFjaCAkYnJlYWtwb2ludCwgJGNvbnRhaW5lci1tYXgtd2lkdGggaW4gJG1heC13aWR0aHMge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJGJyZWFrcG9pbnQsICRicmVha3BvaW50cykge1xuICAgICAgbWF4LXdpZHRoOiAkY29udGFpbmVyLW1heC13aWR0aDtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1ha2Utcm93KCkge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIG1hcmdpbi1yaWdodDogKCRncmlkLWd1dHRlci13aWR0aCAvIC0yKTtcbiAgbWFyZ2luLWxlZnQ6ICgkZ3JpZC1ndXR0ZXItd2lkdGggLyAtMik7XG59XG5cbkBtaXhpbiBtYWtlLWNvbC1yZWFkeSgpIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAvLyBQcmV2ZW50IGNvbHVtbnMgZnJvbSBiZWNvbWluZyB0b28gbmFycm93IHdoZW4gYXQgc21hbGxlciBncmlkIHRpZXJzIGJ5XG4gIC8vIGFsd2F5cyBzZXR0aW5nIGB3aWR0aDogMTAwJTtgLiBUaGlzIHdvcmtzIGJlY2F1c2Ugd2UgdXNlIGBmbGV4YCB2YWx1ZXNcbiAgLy8gbGF0ZXIgb24gdG8gb3ZlcnJpZGUgdGhpcyBpbml0aWFsIHdpZHRoLlxuICB3aWR0aDogMTAwJTtcbiAgbWluLWhlaWdodDogMXB4OyAvLyBQcmV2ZW50IGNvbGxhcHNpbmdcbiAgcGFkZGluZy1yaWdodDogKCRncmlkLWd1dHRlci13aWR0aCAvIDIpO1xuICBwYWRkaW5nLWxlZnQ6ICgkZ3JpZC1ndXR0ZXItd2lkdGggLyAyKTtcbn1cblxuQG1peGluIG1ha2UtY29sKCRzaXplLCAkY29sdW1uczogJGdyaWQtY29sdW1ucykge1xuICBmbGV4OiAwIDAgcGVyY2VudGFnZSgkc2l6ZSAvICRjb2x1bW5zKTtcbiAgLy8gQWRkIGEgYG1heC13aWR0aGAgdG8gZW5zdXJlIGNvbnRlbnQgd2l0aGluIGVhY2ggY29sdW1uIGRvZXMgbm90IGJsb3cgb3V0XG4gIC8vIHRoZSB3aWR0aCBvZiB0aGUgY29sdW1uLiBBcHBsaWVzIHRvIElFMTArIGFuZCBGaXJlZm94LiBDaHJvbWUgYW5kIFNhZmFyaVxuICAvLyBkbyBub3QgYXBwZWFyIHRvIHJlcXVpcmUgdGhpcy5cbiAgbWF4LXdpZHRoOiBwZXJjZW50YWdlKCRzaXplIC8gJGNvbHVtbnMpO1xufVxuXG5AbWl4aW4gbWFrZS1jb2wtb2Zmc2V0KCRzaXplLCAkY29sdW1uczogJGdyaWQtY29sdW1ucykge1xuICAkbnVtOiAkc2l6ZSAvICRjb2x1bW5zO1xuICBtYXJnaW4tbGVmdDogaWYoJG51bSA9PSAwLCAwLCBwZXJjZW50YWdlKCRudW0pKTtcbn1cbiIsIi8vIEJyZWFrcG9pbnQgdmlld3BvcnQgc2l6ZXMgYW5kIG1lZGlhIHF1ZXJpZXMuXG4vL1xuLy8gQnJlYWtwb2ludHMgYXJlIGRlZmluZWQgYXMgYSBtYXAgb2YgKG5hbWU6IG1pbmltdW0gd2lkdGgpLCBvcmRlciBmcm9tIHNtYWxsIHRvIGxhcmdlOlxuLy9cbi8vICAgICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweClcbi8vXG4vLyBUaGUgbWFwIGRlZmluZWQgaW4gdGhlIGAkZ3JpZC1icmVha3BvaW50c2AgZ2xvYmFsIHZhcmlhYmxlIGlzIHVzZWQgYXMgdGhlIGAkYnJlYWtwb2ludHNgIGFyZ3VtZW50IGJ5IGRlZmF1bHQuXG5cbi8vIE5hbWUgb2YgdGhlIG5leHQgYnJlYWtwb2ludCwgb3IgbnVsbCBmb3IgdGhlIGxhc3QgYnJlYWtwb2ludC5cbi8vXG4vLyAgICA+PiBicmVha3BvaW50LW5leHQoc20pXG4vLyAgICBtZFxuLy8gICAgPj4gYnJlYWtwb2ludC1uZXh0KHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpKVxuLy8gICAgbWRcbi8vICAgID4+IGJyZWFrcG9pbnQtbmV4dChzbSwgJGJyZWFrcG9pbnQtbmFtZXM6ICh4cyBzbSBtZCBsZyB4bCkpXG4vLyAgICBtZFxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbmV4dCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cywgJGJyZWFrcG9pbnQtbmFtZXM6IG1hcC1rZXlzKCRicmVha3BvaW50cykpIHtcbiAgJG46IGluZGV4KCRicmVha3BvaW50LW5hbWVzLCAkbmFtZSk7XG4gIEByZXR1cm4gaWYoJG4gPCBsZW5ndGgoJGJyZWFrcG9pbnQtbmFtZXMpLCBudGgoJGJyZWFrcG9pbnQtbmFtZXMsICRuICsgMSksIG51bGwpO1xufVxuXG4vLyBNaW5pbXVtIGJyZWFrcG9pbnQgd2lkdGguIE51bGwgZm9yIHRoZSBzbWFsbGVzdCAoZmlyc3QpIGJyZWFrcG9pbnQuXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1taW4oc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXG4vLyAgICA1NzZweFxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtaW46IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkbmFtZSk7XG4gIEByZXR1cm4gaWYoJG1pbiAhPSAwLCAkbWluLCBudWxsKTtcbn1cblxuLy8gTWF4aW11bSBicmVha3BvaW50IHdpZHRoLiBOdWxsIGZvciB0aGUgbGFyZ2VzdCAobGFzdCkgYnJlYWtwb2ludC5cbi8vIFRoZSBtYXhpbXVtIHZhbHVlIGlzIGNhbGN1bGF0ZWQgYXMgdGhlIG1pbmltdW0gb2YgdGhlIG5leHQgb25lIGxlc3MgMC4wMnB4XG4vLyB0byB3b3JrIGFyb3VuZCB0aGUgbGltaXRhdGlvbnMgb2YgYG1pbi1gIGFuZCBgbWF4LWAgcHJlZml4ZXMgYW5kIHZpZXdwb3J0cyB3aXRoIGZyYWN0aW9uYWwgd2lkdGhzLlxuLy8gU2VlIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9tZWRpYXF1ZXJpZXMtNC8jbXEtbWluLW1heFxuLy8gVXNlcyAwLjAycHggcmF0aGVyIHRoYW4gMC4wMXB4IHRvIHdvcmsgYXJvdW5kIGEgY3VycmVudCByb3VuZGluZyBidWcgaW4gU2FmYXJpLlxuLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzgyNjFcbi8vXG4vLyAgICA+PiBicmVha3BvaW50LW1heChzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcbi8vICAgIDc2Ny45OHB4XG5AZnVuY3Rpb24gYnJlYWtwb2ludC1tYXgoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG5leHQ6IGJyZWFrcG9pbnQtbmV4dCgkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgQHJldHVybiBpZigkbmV4dCwgYnJlYWtwb2ludC1taW4oJG5leHQsICRicmVha3BvaW50cykgLSAuMDJweCwgbnVsbCk7XG59XG5cbi8vIFJldHVybnMgYSBibGFuayBzdHJpbmcgaWYgc21hbGxlc3QgYnJlYWtwb2ludCwgb3RoZXJ3aXNlIHJldHVybnMgdGhlIG5hbWUgd2l0aCBhIGRhc2ggaW5mcm9udC5cbi8vIFVzZWZ1bCBmb3IgbWFraW5nIHJlc3BvbnNpdmUgdXRpbGl0aWVzLlxuLy9cbi8vICAgID4+IGJyZWFrcG9pbnQtaW5maXgoeHMsICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXG4vLyAgICBcIlwiICAoUmV0dXJucyBhIGJsYW5rIHN0cmluZylcbi8vICAgID4+IGJyZWFrcG9pbnQtaW5maXgoc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXG4vLyAgICBcIi1zbVwiXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1pbmZpeCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICBAcmV0dXJuIGlmKGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHMpID09IG51bGwsIFwiXCIsIFwiLSN7JG5hbWV9XCIpO1xufVxuXG4vLyBNZWRpYSBvZiBhdCBsZWFzdCB0aGUgbWluaW11bSBicmVha3BvaW50IHdpZHRoLiBObyBxdWVyeSBmb3IgdGhlIHNtYWxsZXN0IGJyZWFrcG9pbnQuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQgYW5kIHdpZGVyLlxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtdXAoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cyk7XG4gIEBpZiAkbWluIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbikge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBNZWRpYSBvZiBhdCBtb3N0IHRoZSBtYXhpbXVtIGJyZWFrcG9pbnQgd2lkdGguIE5vIHF1ZXJ5IGZvciB0aGUgbGFyZ2VzdCBicmVha3BvaW50LlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50IGFuZCBuYXJyb3dlci5cbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LWRvd24oJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1heDogYnJlYWtwb2ludC1tYXgoJG5hbWUsICRicmVha3BvaW50cyk7XG4gIEBpZiAkbWF4IHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJG1heCkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBNZWRpYSB0aGF0IHNwYW5zIG11bHRpcGxlIGJyZWFrcG9pbnQgd2lkdGhzLlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IGJldHdlZW4gdGhlIG1pbiBhbmQgbWF4IGJyZWFrcG9pbnRzXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC1iZXR3ZWVuKCRsb3dlciwgJHVwcGVyLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtaW46IGJyZWFrcG9pbnQtbWluKCRsb3dlciwgJGJyZWFrcG9pbnRzKTtcbiAgJG1heDogYnJlYWtwb2ludC1tYXgoJHVwcGVyLCAkYnJlYWtwb2ludHMpO1xuXG4gIEBpZiAkbWluICE9IG51bGwgYW5kICRtYXggIT0gbnVsbCB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIGFuZCAobWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1heCA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRsb3dlciwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1pbiA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oJHVwcGVyLCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLyBNZWRpYSBiZXR3ZWVuIHRoZSBicmVha3BvaW50J3MgbWluaW11bSBhbmQgbWF4aW11bSB3aWR0aHMuXG4vLyBObyBtaW5pbXVtIGZvciB0aGUgc21hbGxlc3QgYnJlYWtwb2ludCwgYW5kIG5vIG1heGltdW0gZm9yIHRoZSBsYXJnZXN0IG9uZS5cbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSBvbmx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50LCBub3Qgdmlld3BvcnRzIGFueSB3aWRlciBvciBuYXJyb3dlci5cbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LW9ubHkoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cyk7XG4gICRtYXg6IGJyZWFrcG9pbnQtbWF4KCRuYW1lLCAkYnJlYWtwb2ludHMpO1xuXG4gIEBpZiAkbWluICE9IG51bGwgYW5kICRtYXggIT0gbnVsbCB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIGFuZCAobWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1heCA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRuYW1lLCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWluID09IG51bGwge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkbmFtZSwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIE9wdGlvbnNcblxuLy8gR3JpZCBicmVha3BvaW50c1xuLy9cbi8vIERlZmluZSB0aGUgbWluaW11bSBkaW1lbnNpb25zIGF0IHdoaWNoIHlvdXIgbGF5b3V0IHdpbGwgY2hhbmdlLFxuLy8gYWRhcHRpbmcgdG8gZGlmZmVyZW50IHNjcmVlbiBzaXplcywgZm9yIHVzZSBpbiBtZWRpYSBxdWVyaWVzLlxuXG4kZ3JpZC1icmVha3BvaW50czogKFxuICB4czogMCxcbiAgc206IDU3NnB4LFxuICBtZDogNzY4cHgsXG4gIGxnOiA5OTJweCxcbiAgeGw6IDEyMDBweFxuKSAhZGVmYXVsdDtcblxuLy8gR3JpZCBjb250YWluZXJzXG4vL1xuLy8gRGVmaW5lIHRoZSBtYXhpbXVtIHdpZHRoIG9mIGAuY29udGFpbmVyYCBmb3IgZGlmZmVyZW50IHNjcmVlbiBzaXplcy5cblxuJGNvbnRhaW5lci1tYXgtd2lkdGhzOiAoXG4gIHNtOiA1NDBweCxcbiAgbWQ6IDcyMHB4LFxuICBsZzogOTYwcHgsXG4gIHhsOiAxMTQwcHhcbikgIWRlZmF1bHQ7XG5cbi8vIEdyaWQgY29sdW1uc1xuLy9cbi8vIFNldCB0aGUgbnVtYmVyIG9mIGNvbHVtbnMgYW5kIHNwZWNpZnkgdGhlIHdpZHRoIG9mIHRoZSBndXR0ZXJzLlxuXG4kZ3JpZC1jb2x1bW5zOiAgICAgICAgICAgICAgICAxMiAhZGVmYXVsdDtcbiRncmlkLWd1dHRlci13aWR0aDogICAgICAgICAgIDMwcHggIWRlZmF1bHQ7IiwiLy8gRnJhbWV3b3JrIGdyaWQgZ2VuZXJhdGlvblxuLy9cbi8vIFVzZWQgb25seSBieSBCb290c3RyYXAgdG8gZ2VuZXJhdGUgdGhlIGNvcnJlY3QgbnVtYmVyIG9mIGdyaWQgY2xhc3NlcyBnaXZlblxuLy8gYW55IHZhbHVlIG9mIGAkZ3JpZC1jb2x1bW5zYC5cblxuQG1peGluIG1ha2UtZ3JpZC1jb2x1bW5zKCRjb2x1bW5zOiAkZ3JpZC1jb2x1bW5zLCAkZ3V0dGVyOiAkZ3JpZC1ndXR0ZXItd2lkdGgsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgLy8gQ29tbW9uIHByb3BlcnRpZXMgZm9yIGFsbCBicmVha3BvaW50c1xuICAlZ3JpZC1jb2x1bW4ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiAxcHg7IC8vIFByZXZlbnQgY29sdW1ucyBmcm9tIGNvbGxhcHNpbmcgd2hlbiBlbXB0eVxuICAgIHBhZGRpbmctcmlnaHQ6ICgkZ3V0dGVyIC8gMik7XG4gICAgcGFkZGluZy1sZWZ0OiAoJGd1dHRlciAvIDIpO1xuICB9XG5cbiAgQGVhY2ggJGJyZWFrcG9pbnQgaW4gbWFwLWtleXMoJGJyZWFrcG9pbnRzKSB7XG4gICAgJGluZml4OiBicmVha3BvaW50LWluZml4KCRicmVha3BvaW50LCAkYnJlYWtwb2ludHMpO1xuXG4gICAgLy8gQWxsb3cgY29sdW1ucyB0byBzdHJldGNoIGZ1bGwgd2lkdGggYmVsb3cgdGhlaXIgYnJlYWtwb2ludHNcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRjb2x1bW5zIHtcbiAgICAgIC5jb2wjeyRpbmZpeH0tI3skaX0ge1xuICAgICAgICBAZXh0ZW5kICVncmlkLWNvbHVtbjtcbiAgICAgIH1cbiAgICB9XG4gICAgLmNvbCN7JGluZml4fSxcbiAgICAuY29sI3skaW5maXh9LWF1dG8ge1xuICAgICAgQGV4dGVuZCAlZ3JpZC1jb2x1bW47XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgkYnJlYWtwb2ludCwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICAvLyBQcm92aWRlIGJhc2ljIGAuY29sLXticH1gIGNsYXNzZXMgZm9yIGVxdWFsLXdpZHRoIGZsZXhib3ggY29sdW1uc1xuICAgICAgLmNvbCN7JGluZml4fSB7XG4gICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgfVxuICAgICAgLmNvbCN7JGluZml4fS1hdXRvIHtcbiAgICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICBtYXgtd2lkdGg6IG5vbmU7IC8vIFJlc2V0IGVhcmxpZXIgZ3JpZCB0aWVyc1xuICAgICAgfVxuXG4gICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRjb2x1bW5zIHtcbiAgICAgICAgLmNvbCN7JGluZml4fS0jeyRpfSB7XG4gICAgICAgICAgQGluY2x1ZGUgbWFrZS1jb2woJGksICRjb2x1bW5zKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAub3JkZXIjeyRpbmZpeH0tZmlyc3QgeyBvcmRlcjogLTE7IH1cblxuICAgICAgLm9yZGVyI3skaW5maXh9LWxhc3QgeyBvcmRlcjogJGNvbHVtbnMgKyAxOyB9XG5cbiAgICAgIEBmb3IgJGkgZnJvbSAwIHRocm91Z2ggJGNvbHVtbnMge1xuICAgICAgICAub3JkZXIjeyRpbmZpeH0tI3skaX0geyBvcmRlcjogJGk7IH1cbiAgICAgIH1cblxuICAgICAgLy8gYCRjb2x1bW5zIC0gMWAgYmVjYXVzZSBvZmZzZXR0aW5nIGJ5IHRoZSB3aWR0aCBvZiBhbiBlbnRpcmUgcm93IGlzbid0IHBvc3NpYmxlXG4gICAgICBAZm9yICRpIGZyb20gMCB0aHJvdWdoICgkY29sdW1ucyAtIDEpIHtcbiAgICAgICAgQGlmIG5vdCAoJGluZml4ID09IFwiXCIgYW5kICRpID09IDApIHsgLy8gQXZvaWQgZW1pdHRpbmcgdXNlbGVzcyAub2Zmc2V0LTBcbiAgICAgICAgICAub2Zmc2V0I3skaW5maXh9LSN7JGl9IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1ha2UtY29sLW9mZnNldCgkaSwgJGNvbHVtbnMpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==*/