.u-type--light {
  font-weight: 300;
}

.u-type--regular {
  font-weight: 400;
}

.u-type--medium {
  font-weight: 500;
}

.u-type--bold {
  font-weight: 700;
}

/* breakpoints */
.image-default-size img {
  max-width: none;
  width: auto !important;
}

.image-full-size img {
  width: 100% !important;
  height: auto !important;
}

.image-left .component-content > div > img {
  float: left;
}

.image-right .component-content > div > img {
  float: right;
}

.image img {
  max-width: 100%;
  height: auto;
}
.image a {
  display: inline-block;
  max-width: 100%;
}
[data-whatinput=keyboard] .image a:focus, [data-whatintent=keyboard] .image a:focus {
  outline: 2px dotted #000000;
  -webkit-box-shadow: 0 0 0 3px hsl(0, 0%, 90%);
          box-shadow: 0 0 0 3px hsl(0, 0%, 90%);
  border: none;
  margin: 2px;
}
.image .image-caption {
  font-family: Verdana, Tahoma, sans-serif;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 1.6rem;
  line-height: 24px;
  font-style: normal;
  font-weight: 500;
}
.image.position-center img {
  display: block;
  margin: 0 auto !important;
}
.image.position-center .image-caption {
  text-align: center !important;
}

.c-image--accent,
.c-image--accent-right {
  position: relative;
}
.c-image--accent + .image-caption,
.c-image--accent-right + .image-caption {
  font-family: Verdana, Tahoma, sans-serif;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 1.6rem;
  line-height: 24px;
  font-style: normal;
  font-weight: 500;
  margin: 8px 0;
}
.c-image--accent::before,
.c-image--accent-right::before {
  content: "";
  background-color: #da251d;
  top: 5%;
  width: 100%;
  height: 85%;
  position: absolute;
  z-index: -1;
}
.c-image--accent img,
.c-image--accent-right img {
  width: 100%;
}

.c-image--accent::before {
  left: -16px;
}

.c-image--accent-right::before {
  right: -16px;
}

.toggle-content > .image .c-image--accent {
  width: calc(100% - (16px + 2px));
  margin-left: 16px;
}
.toggle-content > .image .c-image--accent::before {
  left: -16px;
}
.toggle-content > .image .c-image--accent-right {
  width: calc(100% - (16px + 2px));
  margin-left: 16px;
}
.toggle-content > .image .c-image--accent-right::before {
  right: -16px;
}

.toggle-content img[alt="Accessible,"], .toggle-content img[alt="Star,"] {
  position: relative;
  top: -5px;
}
.toggle-content img[alt="Elevator icon,"], .toggle-content img[alt="Escalator icon,"] {
  position: relative;
  top: -8px;
}

span.access_entrance {
  position: absolute;
  top: -10em;
  left: -999em;
}

span.accessible_entrance {
  content: " ";
  background-image: url(/-/media/project/ttc/devproto/icons/accessible.svg);
  height: 24px;
  width: 24px;
  display: inline-block;
  background-size: 24px 24px;
  background-repeat: no-repeat;
  margin-left: 1px;
}

span.entry_level {
  content: " ";
  background-image: url(/-/media/project/ttc/devproto/icons/b_star.svg);
  height: 24px;
  width: 24px;
  display: inline-block;
  background-size: 24px 24px;
  background-repeat: no-repeat;
  margin-left: 1px;
}

h3.elevators {
  padding: 8px 0 8px 45px;
  background: url(/-/media/project/ttc/devproto/icons/elevator-icon.png) no-repeat 0px 0;
}

h3.escalators {
  padding: 8px 0 8px 45px;
  background: url(/-/media/project/ttc/devproto/icons/escalator-icon.gif) no-repeat 0px 0;
}

@media (min-width: 768px) {
  :not(.toggle-content) > .image .c-image--accent::before {
    left: -32px;
  }
  :not(.toggle-content) > .image .c-image--accent-right::before {
    right: -32px;
  }
}
@media (min-width: 1225px) {
  :not(.toggle-content) > .image .c-image--accent,
  :not(.toggle-content) > .image .c-image--accent-right {
    margin-left: -104px;
    margin-right: -104px;
  }
  :not(.toggle-content) > .image .c-image--accent + .image-caption,
  :not(.toggle-content) > .image .c-image--accent-right + .image-caption {
    left: -104px;
    position: absolute;
  }
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFic3RyYWN0cy92YXJzL190eXBlLWNsYXNzZXMuc2NzcyIsImNvbXBvbmVudC1pbWFnZS5jc3MiLCJhYnN0cmFjdHMvX21peGlucy5zY3NzIiwic3R5bGVzL2ltYWdlL2ltYWdlLWRlZmF1bHQtc2l6ZS5zY3NzIiwic3R5bGVzL2ltYWdlL2ltYWdlLWZ1bGwtc2l6ZS5zY3NzIiwic3R5bGVzL2ltYWdlL2ltYWdlLWxlZnQuc2NzcyIsInN0eWxlcy9pbWFnZS9pbWFnZS1yaWdodC5zY3NzIiwiY29tcG9uZW50LWltYWdlLnNjc3MiLCJjb21tb24tdWkvdHlwb2dyYXBoeS9fbWl4aW5zLnNjc3MiLCJhYnN0cmFjdHMvbWl4aW5zL19zYXNzLW1xLW1vZC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdJO0VBQ0ksZ0JBQUE7QUNGUjs7QURDSTtFQUNJLGdCQUFBO0FDRVI7O0FESEk7RUFDSSxnQkFBQTtBQ01SOztBRFBJO0VBQ0ksZ0JBQUE7QUNVUjs7QUNVQSxnQkFBQTtBQ3ZCSTtFQUNJLGVBQUE7RUFDQSxzQkFBQTtBRmlCUjs7QUduQkk7RUFDSSxzQkFBQTtFQUNBLHVCQUFBO0FIc0JSOztBSXpCQTtFQUNJLFdBQUE7QUo0Qko7O0FLN0JBO0VBQ0ksWUFBQTtBTGdDSjs7QU1kSTtFQUNJLGVBQUE7RUFDQSxZQUFBO0FOaUJSO0FNZEk7RUFDSSxxQkFBQTtFQUNBLGVBQUE7QU5nQlI7QU1iWTtFQUVJLDJCQUFBO0VBQ0EsNkNBQUE7VUFBQSxxQ0FBQTtFQUNBLFlBQUE7RUFDQSxXQUFBO0FOY2hCO0FNVEk7RUNVSSx3Q0FhYztFQVBsQixrQ0FBQTtFQUNBLG1DQUFBO0VBdENJLGlCQUFBO0VBQ0EsaUJBQUE7RUFvREksa0JBQUE7RUFBQSxnQkFBQTtBUGRaO0FNYlE7RUFDSSxjQUFBO0VBQ0EseUJBQUE7QU5lWjtBTVpRO0VBQ0ksNkJBQUE7QU5jWjs7QU1UQTs7RUFFSSxrQkFBQTtBTllKO0FNVkk7O0VDVkksd0NBYWM7RUFQbEIsa0NBQUE7RUFDQSxtQ0FBQTtFQXRDSSxpQkFBQTtFQUNBLGlCQUFBO0VBb0RJLGtCQUFBO0VBQUEsZ0JBQUE7RURWSixhQUFBO0FObUJSO0FNaEJJOztFQUNJLFdBQUE7RUFDQSx5QkF0RGM7RUF1RGQsT0FBQTtFQUNBLFdBQUE7RUFDQSxXQUFBO0VBQ0Esa0JBQUE7RUFDQSxXQUFBO0FObUJSO0FNaEJJOztFQUNJLFdBQUE7QU5tQlI7O0FNZEk7RUFDSSxXQUFBO0FOaUJSOztBTVpJO0VBQ0ksWUFBQTtBTmVSOztBTVZJO0VBQ0ksZ0NBQUE7RUFDQSxpQkFoRlE7QU42RmhCO0FNWFE7RUFDSSxXQUFBO0FOYVo7QU1USTtFQUNJLGdDQUFBO0VBQ0EsaUJBekZRO0FOb0doQjtBTVRRO0VBQ0ksWUFBQTtBTldaOztBTUxJO0VBQ0ksa0JBQUE7RUFDQSxTQUFBO0FOUVI7QU1MSTtFQUNJLGtCQUFBO0VBQ0EsU0FBQTtBTk9SOztBTUhBO0VBQ0ksa0JBQUE7RUFDQSxVQUFBO0VBQ0EsWUFBQTtBTk1KOztBTUhBO0VBQ0ksWUFBQTtFQUNBLHlFQUFBO0VBQ0EsWUFBQTtFQUNBLFdBQUE7RUFDQSxxQkFBQTtFQUNBLDBCQUFBO0VBQ0EsNEJBQUE7RUFDQSxnQkFBQTtBTk1KOztBTUhBO0VBQ0ksWUFBQTtFQUNBLHFFQUFBO0VBQ0EsWUFBQTtFQUNBLFdBQUE7RUFDQSxxQkFBQTtFQUNBLDBCQUFBO0VBQ0EsNEJBQUE7RUFDQSxnQkFBQTtBTk1KOztBTUhBO0VBQ0ksdUJBQUE7RUFDQSxzRkFBQTtBTk1KOztBTUhBO0VBQ0ksdUJBQUE7RUFDQSx1RkFBQTtBTk1KOztBUXFGUTtFRnJGSTtJQUNJLFdBQUE7RU5JZDtFTUNVO0lBQ0ksWUFBQTtFTkNkO0FBQ0Y7QVE0RVE7RUZ0RUE7O0lBRUksbUJBQUE7SUFDQSxvQkFBQTtFTkhWO0VNS1U7O0lBQ0ksWUFBQTtJQUNBLGtCQUFBO0VORmQ7QUFDRiIsImZpbGUiOiJjb21wb25lbnQtaW1hZ2UuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQHVzZSBcInR5cGVcIjtcclxuXHJcbkBlYWNoICRuYW1lLCAkc3R5bGUgaW4gdHlwZS4kdWktdHlwb2dyYXBoeS1mb250LXdlaWdodHMge1xyXG4gICAgLnUtdHlwZS0tI3skbmFtZX0ge1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiAjeyRzdHlsZX07XHJcbiAgICB9XHJcbn1cclxuIiwiLnUtdHlwZS0tbGlnaHQge1xuICBmb250LXdlaWdodDogMzAwO1xufVxuXG4udS10eXBlLS1yZWd1bGFyIHtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cblxuLnUtdHlwZS0tbWVkaXVtIHtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLnUtdHlwZS0tYm9sZCB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbi8qIGJyZWFrcG9pbnRzICovXG4uaW1hZ2UtZGVmYXVsdC1zaXplIGltZyB7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbn1cblxuLmltYWdlLWZ1bGwtc2l6ZSBpbWcge1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbn1cblxuLmltYWdlLWxlZnQgLmNvbXBvbmVudC1jb250ZW50ID4gZGl2ID4gaW1nIHtcbiAgZmxvYXQ6IGxlZnQ7XG59XG5cbi5pbWFnZS1yaWdodCAuY29tcG9uZW50LWNvbnRlbnQgPiBkaXYgPiBpbWcge1xuICBmbG9hdDogcmlnaHQ7XG59XG5cbi5pbWFnZSBpbWcge1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbn1cbi5pbWFnZSBhIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXgtd2lkdGg6IDEwMCU7XG59XG5bZGF0YS13aGF0aW5wdXQ9a2V5Ym9hcmRdIC5pbWFnZSBhOmZvY3VzLCBbZGF0YS13aGF0aW50ZW50PWtleWJvYXJkXSAuaW1hZ2UgYTpmb2N1cyB7XG4gIG91dGxpbmU6IDJweCBkb3R0ZWQgIzAwMDAwMDtcbiAgYm94LXNoYWRvdzogMCAwIDAgM3B4IGhzbCgwLCAwJSwgOTAlKTtcbiAgYm9yZGVyOiBub25lO1xuICBtYXJnaW46IDJweDtcbn1cbi5pbWFnZSAuaW1hZ2UtY2FwdGlvbiB7XG4gIGZvbnQtZmFtaWx5OiBWZXJkYW5hLCBUYWhvbWEsIHNhbnMtc2VyaWY7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBmb250LXNpemU6IDEuNnJlbTtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cbi5pbWFnZS5wb3NpdGlvbi1jZW50ZXIgaW1nIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMCBhdXRvICFpbXBvcnRhbnQ7XG59XG4uaW1hZ2UucG9zaXRpb24tY2VudGVyIC5pbWFnZS1jYXB0aW9uIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7XG59XG5cbi5jLWltYWdlLS1hY2NlbnQsXG4uYy1pbWFnZS0tYWNjZW50LXJpZ2h0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLmMtaW1hZ2UtLWFjY2VudCArIC5pbWFnZS1jYXB0aW9uLFxuLmMtaW1hZ2UtLWFjY2VudC1yaWdodCArIC5pbWFnZS1jYXB0aW9uIHtcbiAgZm9udC1mYW1pbHk6IFZlcmRhbmEsIFRhaG9tYSwgc2Fucy1zZXJpZjtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGZvbnQtc2l6ZTogMS42cmVtO1xuICBsaW5lLWhlaWdodDogMjRweDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNTAwO1xuICBtYXJnaW46IDhweCAwO1xufVxuLmMtaW1hZ2UtLWFjY2VudDo6YmVmb3JlLFxuLmMtaW1hZ2UtLWFjY2VudC1yaWdodDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RhMjUxZDtcbiAgdG9wOiA1JTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogODUlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IC0xO1xufVxuLmMtaW1hZ2UtLWFjY2VudCBpbWcsXG4uYy1pbWFnZS0tYWNjZW50LXJpZ2h0IGltZyB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uYy1pbWFnZS0tYWNjZW50OjpiZWZvcmUge1xuICBsZWZ0OiAtMTZweDtcbn1cblxuLmMtaW1hZ2UtLWFjY2VudC1yaWdodDo6YmVmb3JlIHtcbiAgcmlnaHQ6IC0xNnB4O1xufVxuXG4udG9nZ2xlLWNvbnRlbnQgPiAuaW1hZ2UgLmMtaW1hZ2UtLWFjY2VudCB7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSAoMTZweCArIDJweCkpO1xuICBtYXJnaW4tbGVmdDogMTZweDtcbn1cbi50b2dnbGUtY29udGVudCA+IC5pbWFnZSAuYy1pbWFnZS0tYWNjZW50OjpiZWZvcmUge1xuICBsZWZ0OiAtMTZweDtcbn1cbi50b2dnbGUtY29udGVudCA+IC5pbWFnZSAuYy1pbWFnZS0tYWNjZW50LXJpZ2h0IHtcbiAgd2lkdGg6IGNhbGMoMTAwJSAtICgxNnB4ICsgMnB4KSk7XG4gIG1hcmdpbi1sZWZ0OiAxNnB4O1xufVxuLnRvZ2dsZS1jb250ZW50ID4gLmltYWdlIC5jLWltYWdlLS1hY2NlbnQtcmlnaHQ6OmJlZm9yZSB7XG4gIHJpZ2h0OiAtMTZweDtcbn1cblxuLnRvZ2dsZS1jb250ZW50IGltZ1thbHQ9XCJBY2Nlc3NpYmxlLFwiXSwgLnRvZ2dsZS1jb250ZW50IGltZ1thbHQ9XCJTdGFyLFwiXSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAtNXB4O1xufVxuLnRvZ2dsZS1jb250ZW50IGltZ1thbHQ9XCJFbGV2YXRvciBpY29uLFwiXSwgLnRvZ2dsZS1jb250ZW50IGltZ1thbHQ9XCJFc2NhbGF0b3IgaWNvbixcIl0ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogLThweDtcbn1cblxuc3Bhbi5hY2Nlc3NfZW50cmFuY2Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogLTEwZW07XG4gIGxlZnQ6IC05OTllbTtcbn1cblxuc3Bhbi5hY2Nlc3NpYmxlX2VudHJhbmNlIHtcbiAgY29udGVudDogXCIgXCI7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgvLS9tZWRpYS9wcm9qZWN0L3R0Yy9kZXZwcm90by9pY29ucy9hY2Nlc3NpYmxlLnN2Zyk7XG4gIGhlaWdodDogMjRweDtcbiAgd2lkdGg6IDI0cHg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYmFja2dyb3VuZC1zaXplOiAyNHB4IDI0cHg7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIG1hcmdpbi1sZWZ0OiAxcHg7XG59XG5cbnNwYW4uZW50cnlfbGV2ZWwge1xuICBjb250ZW50OiBcIiBcIjtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC8tL21lZGlhL3Byb2plY3QvdHRjL2RldnByb3RvL2ljb25zL2Jfc3Rhci5zdmcpO1xuICBoZWlnaHQ6IDI0cHg7XG4gIHdpZHRoOiAyNHB4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJhY2tncm91bmQtc2l6ZTogMjRweCAyNHB4O1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBtYXJnaW4tbGVmdDogMXB4O1xufVxuXG5oMy5lbGV2YXRvcnMge1xuICBwYWRkaW5nOiA4cHggMCA4cHggNDVweDtcbiAgYmFja2dyb3VuZDogdXJsKC8tL21lZGlhL3Byb2plY3QvdHRjL2RldnByb3RvL2ljb25zL2VsZXZhdG9yLWljb24ucG5nKSBuby1yZXBlYXQgMHB4IDA7XG59XG5cbmgzLmVzY2FsYXRvcnMge1xuICBwYWRkaW5nOiA4cHggMCA4cHggNDVweDtcbiAgYmFja2dyb3VuZDogdXJsKC8tL21lZGlhL3Byb2plY3QvdHRjL2RldnByb3RvL2ljb25zL2VzY2FsYXRvci1pY29uLmdpZikgbm8tcmVwZWF0IDBweCAwO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgOm5vdCgudG9nZ2xlLWNvbnRlbnQpID4gLmltYWdlIC5jLWltYWdlLS1hY2NlbnQ6OmJlZm9yZSB7XG4gICAgbGVmdDogLTMycHg7XG4gIH1cbiAgOm5vdCgudG9nZ2xlLWNvbnRlbnQpID4gLmltYWdlIC5jLWltYWdlLS1hY2NlbnQtcmlnaHQ6OmJlZm9yZSB7XG4gICAgcmlnaHQ6IC0zMnB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTIyNXB4KSB7XG4gIDpub3QoLnRvZ2dsZS1jb250ZW50KSA+IC5pbWFnZSAuYy1pbWFnZS0tYWNjZW50LFxuICA6bm90KC50b2dnbGUtY29udGVudCkgPiAuaW1hZ2UgLmMtaW1hZ2UtLWFjY2VudC1yaWdodCB7XG4gICAgbWFyZ2luLWxlZnQ6IC0xMDRweDtcbiAgICBtYXJnaW4tcmlnaHQ6IC0xMDRweDtcbiAgfVxuICA6bm90KC50b2dnbGUtY29udGVudCkgPiAuaW1hZ2UgLmMtaW1hZ2UtLWFjY2VudCArIC5pbWFnZS1jYXB0aW9uLFxuICA6bm90KC50b2dnbGUtY29udGVudCkgPiAuaW1hZ2UgLmMtaW1hZ2UtLWFjY2VudC1yaWdodCArIC5pbWFnZS1jYXB0aW9uIHtcbiAgICBsZWZ0OiAtMTA0cHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICB9XG59IiwiLy8gQGltcG9ydCAnfnNhc3MtbXEvbXEnO1xyXG5AdXNlIFwic2FzczpsaXN0XCI7XHJcbkB1c2UgJ21peGlucy9zYXNzLW1xLW1vZC5zY3NzJztcclxuQHVzZSAnLi4vY29tbW9uLXVpL3R5cG9ncmFwaHkvbWl4aW5zJztcclxuQHVzZSAnbWl4aW5zL2FjY2Vzc2liaWxpdHknO1xyXG5AdXNlICdtaXhpbnMvYnV0dG9uJztcclxuQHVzZSAnbWl4aW5zL2xpbmsnO1xyXG5AdXNlICdtaXhpbnMvb3ZlcmxheSc7XHJcbkB1c2UgJ21peGlucy90cmFuc2l0aW9ucyc7XHJcbkB1c2UgJ21peGlucy9zaGFkb3dzJztcclxuQHVzZSAnbWl4aW5zL3RhZyc7XHJcbkB1c2UgJy4uL2Fic3RyYWN0cy92YXJzL2NvbG9ycyc7XHJcblxyXG5AZm9yd2FyZCAnbWl4aW5zL3Nhc3MtbXEtbW9kLnNjc3MnO1xyXG5AZm9yd2FyZCAnLi4vY29tbW9uLXVpL3R5cG9ncmFwaHkvbWl4aW5zJztcclxuQGZvcndhcmQgJ21peGlucy9hY2Nlc3NpYmlsaXR5JztcclxuQGZvcndhcmQgJ21peGlucy9idXR0b24nO1xyXG5AZm9yd2FyZCAnbWl4aW5zL2xpbmsnO1xyXG5AZm9yd2FyZCAnbWl4aW5zL292ZXJsYXknO1xyXG5AZm9yd2FyZCAnbWl4aW5zL3RyYW5zaXRpb25zJztcclxuQGZvcndhcmQgJ21peGlucy9zaGFkb3dzJztcclxuQGZvcndhcmQgJ21peGlucy90YWcnO1xyXG5cclxuLy8gQmVsb3cgYXJlIG1peGluJ3MgZnJvbSBGWEFcclxuLyogYnJlYWtwb2ludHMgKi9cclxuXHJcbiRicmVhay1kZXNrdG9wOiA5NjBweDtcclxuJGJyZWFrLW1vYmlsZTogMzgwcHg7XHJcbiRicmVhay1tb2JpbGUtaG9yaXpvbnRhbDogNjQwcHg7XHJcbiRicmVhay1tb2JpbGUtbGFyZ2U6IDc4NnB4O1xyXG5cclxuQG1peGluIHdyYXBwZXIoKSB7XHJcbiAgICBtYXgtd2lkdGg6IDk2MHB4O1xyXG4gICAgbWFyZ2luOiAwIGF1dG8gIWltcG9ydGFudDtcclxufVxyXG5cclxuQG1peGluIGNsZWFyZml4IHtcclxuICAgICY6YWZ0ZXIge1xyXG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgICAgZGlzcGxheTogdGFibGU7XHJcbiAgICAgICAgY2xlYXI6IGJvdGg7XHJcbiAgICB9XHJcbn1cclxuXHJcbkBtaXhpbiBmb250LXNpemUoJHNpemVWYWx1ZTogMS42KSB7XHJcbiAgICBmb250LXNpemU6ICgkc2l6ZVZhbHVlICogMTApICsgcHg7XHJcbiAgICBmb250LXNpemU6ICRzaXplVmFsdWUgKyByZW07XHJcbn1cclxuXHJcbkBtaXhpbiBvcGVuc2Fucy1mb250LXN0YWNrKCkge1xyXG4gICAgZm9udC1mYW1pbHk6IFwiT3BlbiBTYW5zXCIsIEhlbHZldGljYSwgVmVyZGFuYSwgVGFob21hLCBzYW5zLXNlcmlmO1xyXG59XHJcblxyXG5AbWl4aW4gbG9hZGluZy1naWYoKSB7XHJcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LFBITjJaeUI0Yld4dWN6MGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TUM5emRtY2lJSFpwWlhkQ2IzZzlJakFnTUNBek1pQXpNaUlnZDJsa2RHZzlJak15SWlCb1pXbG5hSFE5SWpNeUlpQm1hV3hzUFNKaWJHRmpheUkrRFFvZ0lEeHdZWFJvSUNCdmNHRmphWFI1UFNJdU1qVWlJR1E5SWsweE5pQXdJRUV4TmlBeE5pQXdJREFnTUNBeE5pQXpNaUJCTVRZZ01UWWdNQ0F3SURBZ01UWWdNQ0JOTVRZZ05DQkJNVElnTVRJZ01DQXdJREVnTVRZZ01qZ2dRVEV5SURFeUlEQWdNQ0F4SURFMklEUWlMejROQ2lBZ1BIQmhkR2dnWm1sc2JEMG5JekZoT0RCaU5pY2daRDBpVFRFMklEQWdRVEUySURFMklEQWdNQ0F4SURNeUlERTJJRXd5T0NBeE5pQkJNVElnTVRJZ01DQXdJREFnTVRZZ05Ib2lQZzBLSUNBZ0lEeGhibWx0WVhSbFZISmhibk5tYjNKdElHRjBkSEpwWW5WMFpVNWhiV1U5SW5SeVlXNXpabTl5YlNJZ2RIbHdaVDBpY205MFlYUmxJaUJtY205dFBTSXdJREUySURFMklpQjBiejBpTXpZd0lERTJJREUySWlCa2RYSTlJakF1T0hNaUlISmxjR1ZoZEVOdmRXNTBQU0pwYm1SbFptbHVhWFJsSWlBdlBnMEtJQ0E4TDNCaGRHZytEUW84TDNOMlp6NE5DZz09KTtcclxuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XHJcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG59XHJcblxyXG5AbWl4aW4gcmVzcG9uZC10bygkbWVkaWEpIHtcclxuICAgIEBpZiAkbWVkaWE9PW1vYmlsZSB7XHJcbiAgICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWstbW9iaWxlKSB7XHJcbiAgICAgICAgICAgIEBjb250ZW50O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIEBlbHNlIGlmICRtZWRpYT09bW9iaWxlLWhvcml6b250YWwge1xyXG4gICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrLW1vYmlsZS1ob3Jpem9udGFsIC0gMSkge1xyXG4gICAgICAgICAgICBAY29udGVudDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBAZWxzZSBpZiAkbWVkaWE9PW1vYmlsZS1sYXJnZSB7XHJcbiAgICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWstbW9iaWxlLWxhcmdlKSB7XHJcbiAgICAgICAgICAgIEBjb250ZW50O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIEBlbHNlIGlmICRtZWRpYT09dGFibGV0IHtcclxuICAgICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRicmVhay1tb2JpbGUgKyAxKSBhbmQgKG1heC13aWR0aDogJGJyZWFrLWRlc2t0b3AgLSAxKSB7XHJcbiAgICAgICAgICAgIEBjb250ZW50O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIEBlbHNlIGlmICRtZWRpYT09YWxsLW1vYmlsZSB7XHJcbiAgICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWstZGVza3RvcCAtIDEpIHtcclxuICAgICAgICAgICAgQGNvbnRlbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgQGVsc2UgaWYgJG1lZGlhPT1kZXNrdG9wIHtcclxuICAgICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRicmVhay1kZXNrdG9wKSB7XHJcbiAgICAgICAgICAgIEBjb250ZW50O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuQG1peGluIGJvcmRlci1iYXNpYygkcG9zaXRpb246IGFsbCwgJGJvcmRlci1jb2xvcjogY29sb3JzLiRib3JkZXItZ3JheSwgJGJvcmRlci13aWR0aDogMXB4KSB7XHJcbiAgICBAaWYoJHBvc2l0aW9uPT10b3ApIHtcclxuICAgICAgICBib3JkZXItdG9wOiAkYm9yZGVyLXdpZHRoIHNvbGlkICRib3JkZXItY29sb3I7XHJcbiAgICB9XHJcbiAgICBAZWxzZSBpZigkcG9zaXRpb249PWJvdHRvbSkge1xyXG4gICAgICAgIGJvcmRlci1ib3R0b206ICRib3JkZXItd2lkdGggc29saWQgJGJvcmRlci1jb2xvcjtcclxuICAgIH1cclxuICAgIEBlbHNlIGlmKCRwb3NpdGlvbj09bGVmdCkge1xyXG4gICAgICAgIGJvcmRlci1sZWZ0OiAkYm9yZGVyLXdpZHRoIHNvbGlkICRib3JkZXItY29sb3I7XHJcbiAgICB9XHJcbiAgICBAZWxzZSBpZigkcG9zaXRpb249PXJpZ2h0KSB7XHJcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAkYm9yZGVyLXdpZHRoIHNvbGlkICRib3JkZXItY29sb3I7XHJcbiAgICB9XHJcbiAgICBAZWxzZSB7XHJcbiAgICAgICAgYm9yZGVyOiAkYm9yZGVyLXdpZHRoIHNvbGlkICRib3JkZXItY29sb3I7XHJcbiAgICB9XHJcbn1cclxuXHJcbkBtaXhpbiBmaXhlZC1iZygkcG9zLCAkbWluLWhlaWdodDogMjQwcHgpIHtcclxuICAgIGJhY2tncm91bmQtcG9zaXRpb246ICRwb3M7XHJcbiAgICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IGZpeGVkO1xyXG4gICAgbWluLWhlaWdodDogJG1pbi1oZWlnaHQ7XHJcbn1cclxuXHJcbkBtaXhpbiBsaW5lYXItZ3JhZGllbnQoJGRpcmVjdGlvbiwgJGNvbG9yLXN0b3BzLi4uKSB7XHJcbiAgICAvLyBEaXJlY3Rpb24gaGFzIGJlZW4gb21pdHRlZCBhbmQgaGFwcGVucyB0byBiZSBhIGNvbG9yLXN0b3BcclxuICAgIEBpZiBpcy1kaXJlY3Rpb24oJGRpcmVjdGlvbik9PWZhbHNlIHtcclxuICAgICAgICAkY29sb3Itc3RvcHM6ICRkaXJlY3Rpb24sICRjb2xvci1zdG9wcztcclxuICAgICAgICAkZGlyZWN0aW9uOiAxODBkZWc7XHJcbiAgICB9XHJcblxyXG4gICAgJGZpcnN0LWNvbG9yLXN0b3AtZ3JvdXA6IGxpc3QubnRoKCRjb2xvci1zdG9wcywgMSk7XHJcbiAgICAkZmlyc3QtY29sb3Itc3RvcDogbGlzdC5udGgoJGZpcnN0LWNvbG9yLXN0b3AtZ3JvdXAsIDEpO1xyXG4gICAgYmFja2dyb3VuZDogJGZpcnN0LWNvbG9yLXN0b3A7XHJcbiAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChsZWdhY3ktZGlyZWN0aW9uKCRkaXJlY3Rpb24pLCAkY29sb3Itc3RvcHMpO1xyXG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KCRkaXJlY3Rpb24sICRjb2xvci1zdG9wcyk7XHJcbn1cclxuIiwiLmltYWdlLWRlZmF1bHQtc2l6ZSB7XHJcbiAgICBpbWcge1xyXG4gICAgICAgIG1heC13aWR0aDogbm9uZTtcclxuICAgICAgICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG59XHJcbiIsIi5pbWFnZS1mdWxsLXNpemUge1xyXG4gICAgaW1nIHtcclxuICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xyXG4gICAgICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG59XHJcbiIsIi5pbWFnZS1sZWZ0IC5jb21wb25lbnQtY29udGVudD5kaXY+aW1nIHtcclxuICAgIGZsb2F0OiBsZWZ0O1xyXG59XHJcbiIsIi5pbWFnZS1yaWdodCAuY29tcG9uZW50LWNvbnRlbnQ+ZGl2PmltZyB7XHJcbiAgICBmbG9hdDogcmlnaHQ7XHJcbn1cclxuIiwiQHVzZSBcInNhc3M6bWFwXCI7XHJcbkB1c2UgXCJhYnN0cmFjdHNcIjtcclxuXHJcbkB1c2UgXCJhYnN0cmFjdHMvbWl4aW5zXCI7XHJcbkB1c2UgXCJhYnN0cmFjdHMvZnVuY3Rpb25zL2NvbG9yXCIgYXMgZnVuY3Rpb25zLWNvbG9yO1xyXG5AdXNlIFwiYWJzdHJhY3RzL2Z1bmN0aW9ucy9zcGFjZVwiO1xyXG5AdXNlIFwic3R5bGVzL2ltYWdlL2ltYWdlLWRlZmF1bHQtc2l6ZVwiO1xyXG5AdXNlIFwic3R5bGVzL2ltYWdlL2ltYWdlLWZ1bGwtc2l6ZVwiO1xyXG5AdXNlIFwic3R5bGVzL2ltYWdlL2ltYWdlLWxlZnRcIjtcclxuQHVzZSBcInN0eWxlcy9pbWFnZS9pbWFnZS1yaWdodFwiO1xyXG5cclxuJGltYWdlLWNvbG9yLWJsYWNrOiBmdW5jdGlvbnMtY29sb3IuY29sb3IoYmxhY2spO1xyXG4kaW1hZ2UtY29sb3ItcHJpbWFyeTogZnVuY3Rpb25zLWNvbG9yLmNvbG9yKHByaW1hcnkpO1xyXG4kaW1hZ2Utc3BhY2UtMTogI3tzcGFjZS5zcGFjZSgxKX07XHJcbiRpbWFnZS1zcGFjZS0yOiAje3NwYWNlLnNwYWNlKDIpfTtcclxuJGltYWdlLXNwYWNlLTQ6ICN7c3BhY2Uuc3BhY2UoNCl9O1xyXG4kaW1hZ2Utc3BhY2UtMTM6ICN7c3BhY2Uuc3BhY2UoMTMpfTtcclxuXHJcbi5pbWFnZSB7XHJcbiAgICBpbWcge1xyXG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgICAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICB9XHJcblxyXG4gICAgYSB7XHJcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcclxuXHJcbiAgICAgICAgJjpmb2N1cyB7XHJcbiAgICAgICAgICAgIFtkYXRhLXdoYXRpbnB1dD1rZXlib2FyZF0gJixcclxuICAgICAgICAgICAgW2RhdGEtd2hhdGludGVudD1rZXlib2FyZF0gJiB7XHJcbiAgICAgICAgICAgICAgICBvdXRsaW5lOiAycHggZG90dGVkICRpbWFnZS1jb2xvci1ibGFjaztcclxuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCBoc2woMCwgMCUsIDkwJSk7XHJcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW46IDJweDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuaW1hZ2UtY2FwdGlvbiB7XHJcbiAgICAgICAgQGluY2x1ZGUgbWl4aW5zLnVpLXR5cG9ncmFwaHkoY2FwdGlvbik7XHJcbiAgICB9XHJcblxyXG4gICAgJi5wb3NpdGlvbi1jZW50ZXIge1xyXG4gICAgICAgIGltZyB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICBtYXJnaW46IDAgYXV0byAhaW1wb3J0YW50O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmltYWdlLWNhcHRpb24ge1xyXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi5jLWltYWdlLS1hY2NlbnQsXHJcbi5jLWltYWdlLS1hY2NlbnQtcmlnaHQge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuICAgICsgLmltYWdlLWNhcHRpb24ge1xyXG4gICAgICAgIEBpbmNsdWRlIG1peGlucy51aS10eXBvZ3JhcGh5KGNhcHRpb24pO1xyXG4gICAgICAgIG1hcmdpbjogJGltYWdlLXNwYWNlLTEgMDtcclxuICAgIH1cclxuXHJcbiAgICAmOjpiZWZvcmUge1xyXG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGltYWdlLWNvbG9yLXByaW1hcnk7XHJcbiAgICAgICAgdG9wOiA1JTtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICBoZWlnaHQ6IDg1JTtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgei1pbmRleDogLTE7XHJcbiAgICB9XHJcblxyXG4gICAgaW1nIHtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgIH1cclxufVxyXG5cclxuLmMtaW1hZ2UtLWFjY2VudCB7XHJcbiAgICAmOjpiZWZvcmUge1xyXG4gICAgICAgIGxlZnQ6IC0kaW1hZ2Utc3BhY2UtMjtcclxuICAgIH1cclxufVxyXG5cclxuLmMtaW1hZ2UtLWFjY2VudC1yaWdodCB7XHJcbiAgICAmOjpiZWZvcmUge1xyXG4gICAgICAgIHJpZ2h0OiAtJGltYWdlLXNwYWNlLTI7XHJcbiAgICB9XHJcbn1cclxuXHJcbi50b2dnbGUtY29udGVudCA+IC5pbWFnZSB7XHJcbiAgICAuYy1pbWFnZS0tYWNjZW50IHtcclxuICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gKCN7JGltYWdlLXNwYWNlLTJ9ICsgMnB4KSk7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6ICRpbWFnZS1zcGFjZS0yO1xyXG5cclxuICAgICAgICAmOjpiZWZvcmUge1xyXG4gICAgICAgICAgICBsZWZ0OiAtJGltYWdlLXNwYWNlLTI7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5jLWltYWdlLS1hY2NlbnQtcmlnaHQge1xyXG4gICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAoI3skaW1hZ2Utc3BhY2UtMn0gKyAycHgpKTtcclxuICAgICAgICBtYXJnaW4tbGVmdDogJGltYWdlLXNwYWNlLTI7XHJcblxyXG4gICAgICAgICY6OmJlZm9yZSB7XHJcbiAgICAgICAgICAgIHJpZ2h0OiAtJGltYWdlLXNwYWNlLTI7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4udG9nZ2xlLWNvbnRlbnQge1xyXG4gICAgaW1nW2FsdD1cIkFjY2Vzc2libGUsXCJdLCBpbWdbYWx0PVwiU3RhcixcIl0ge1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICB0b3A6IC01cHg7XHJcbiAgICB9XHJcblxyXG4gICAgaW1nW2FsdD1cIkVsZXZhdG9yIGljb24sXCJdLCBpbWdbYWx0PVwiRXNjYWxhdG9yIGljb24sXCJdIHtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgdG9wOiAtOHB4O1xyXG4gICAgfVxyXG59XHJcblxyXG5zcGFuLmFjY2Vzc19lbnRyYW5jZSB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IC0xMGVtO1xyXG4gICAgbGVmdDogLTk5OWVtO1xyXG59XHJcblxyXG5zcGFuLmFjY2Vzc2libGVfZW50cmFuY2Uge1xyXG4gICAgY29udGVudDogXCIgXCI7XHJcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLy0vbWVkaWEvcHJvamVjdC90dGMvZGV2cHJvdG8vaWNvbnMvYWNjZXNzaWJsZS5zdmcpO1xyXG4gICAgaGVpZ2h0OiAyNHB4O1xyXG4gICAgd2lkdGg6IDI0cHg7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDI0cHggMjRweDtcclxuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbiAgICBtYXJnaW4tbGVmdDogMXB4O1xyXG59XHJcblxyXG5zcGFuLmVudHJ5X2xldmVsIHtcclxuICAgIGNvbnRlbnQ6IFwiIFwiO1xyXG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC8tL21lZGlhL3Byb2plY3QvdHRjL2RldnByb3RvL2ljb25zL2Jfc3Rhci5zdmcpO1xyXG4gICAgaGVpZ2h0OiAyNHB4O1xyXG4gICAgd2lkdGg6IDI0cHg7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDI0cHggMjRweDtcclxuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbiAgICBtYXJnaW4tbGVmdDogMXB4O1xyXG59XHJcblxyXG5oMy5lbGV2YXRvcnMge1xyXG4gICAgcGFkZGluZzogOHB4IDAgOHB4IDQ1cHg7XHJcbiAgICBiYWNrZ3JvdW5kOiB1cmwoLy0vbWVkaWEvcHJvamVjdC90dGMvZGV2cHJvdG8vaWNvbnMvZWxldmF0b3ItaWNvbi5wbmcpIG5vLXJlcGVhdCAwcHggMDtcclxufVxyXG5cclxuaDMuZXNjYWxhdG9ycyB7XHJcbiAgICBwYWRkaW5nOiA4cHggMCA4cHggNDVweDtcclxuICAgIGJhY2tncm91bmQ6IHVybCgvLS9tZWRpYS9wcm9qZWN0L3R0Yy9kZXZwcm90by9pY29ucy9lc2NhbGF0b3ItaWNvbi5naWYpIG5vLXJlcGVhdCAwcHggMDtcclxufVxyXG5cclxuQGluY2x1ZGUgbWl4aW5zLm1xKG1kKSB7XHJcbiAgICA6bm90KC50b2dnbGUtY29udGVudCkgPiAuaW1hZ2Uge1xyXG4gICAgICAgIC5jLWltYWdlLS1hY2NlbnQge1xyXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xyXG4gICAgICAgICAgICAgICAgbGVmdDogLSRpbWFnZS1zcGFjZS00O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuYy1pbWFnZS0tYWNjZW50LXJpZ2h0IHtcclxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcclxuICAgICAgICAgICAgICAgIHJpZ2h0OiAtJGltYWdlLXNwYWNlLTQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbkBpbmNsdWRlIG1peGlucy5tcShsZykge1xyXG4gICAgOm5vdCgudG9nZ2xlLWNvbnRlbnQpID4gLmltYWdlIHtcclxuICAgICAgICAuYy1pbWFnZS0tYWNjZW50LFxyXG4gICAgICAgIC5jLWltYWdlLS1hY2NlbnQtcmlnaHQge1xyXG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRpbWFnZS1zcGFjZS0xMztcclxuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJGltYWdlLXNwYWNlLTEzO1xyXG5cclxuICAgICAgICAgICAgKyAuaW1hZ2UtY2FwdGlvbiB7XHJcbiAgICAgICAgICAgICAgICBsZWZ0OiAtJGltYWdlLXNwYWNlLTEzO1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiIsIkB1c2UgJ3Nhc3M6bWFwJztcclxuQHVzZSAnc2FzczpsaXN0JztcclxuQHVzZSAnc2FzczptYXRoJztcclxuQHVzZSAnc2FzczptZXRhJztcclxuQHVzZSAnLi4vLi4vYWJzdHJhY3RzL3ZhcnMvdHlwZSc7XHJcbkB1c2UgJy4uLy4uL2Fic3RyYWN0cy92YXJzL2JyZWFrcG9pbnRzJyBhcyBiYXNlO1xyXG5AdXNlICcuLi8uLi9hYnN0cmFjdHMvZnVuY3Rpb25zL3B4LXRvLXJlbSc7XHJcblxyXG5AZnVuY3Rpb24gdG8tcmVtKCR2YWx1ZSkge1xyXG4gICAgQGlmIG1hdGguaXMtdW5pdGxlc3MoJHZhbHVlKSBvciBtYXRoLnVuaXQoJHZhbHVlKSAhPSAncHgnIHtcclxuICAgICAgICBAcmV0dXJuICR2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICBAcmV0dXJuIHB4LXRvLXJlbS5nZXQtcmVtKCR2YWx1ZSk7XHJcbn1cclxuXHJcbkBtaXhpbiBpb3RhLWV4dHJhY3QtdHlwZS1zaXplcygkc2l6ZXMpIHtcclxuICAgIEBpZiBsaXN0Lmxlbmd0aCgkc2l6ZXMpID09IDIge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogbGlzdC5udGgoJHNpemVzLCAxKTtcclxuICAgICAgICBsaW5lLWhlaWdodDogbGlzdC5udGgoJHNpemVzLCAyKTtcclxuICAgIH1cclxuICAgIEBlbHNlIHtcclxuICAgICAgICBmb250LXNpemU6ICRzaXplcztcclxuICAgIH1cclxufVxyXG5cclxuQG1peGluIGlvdGEtdHlwZSgkc2l6ZXMsICRicmVha3BvaW50czogYmFzZS4kaW90YS1nbG9iYWwtYnJlYWtwb2ludHMpIHtcclxuICAgIEBpZiBtZXRhLnR5cGUtb2YoJHNpemVzKSA9PSAnbWFwJyB7XHJcbiAgICAgICAgQGlmIG1hcC5oYXMta2V5KCRzaXplcywgbnVsbCkge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBpb3RhLWV4dHJhY3QtdHlwZS1zaXplcyhtYXAuZ2V0KCRzaXplcywgbnVsbCkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgQGVhY2ggJGJyZWFrcG9pbnQsICRzaXplIGluICRzaXplcyB7XHJcbiAgICAgICAgICAgIEBpZiAkYnJlYWtwb2ludCAhPSBudWxsIGFuZCBtYXAuaGFzLWtleSgkYnJlYWtwb2ludHMsICRicmVha3BvaW50KSB7XHJcbiAgICAgICAgICAgICAgICBAbWVkaWEgI3ttYXAuZ2V0KCRicmVha3BvaW50cywgJGJyZWFrcG9pbnQpfSB7XHJcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaW90YS1leHRyYWN0LXR5cGUtc2l6ZXMoJHNpemUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgQGVsc2Uge1xyXG4gICAgICAgIEBpbmNsdWRlIGlvdGEtZXh0cmFjdC10eXBlLXNpemVzKCRzaXplcyk7XHJcbiAgICB9XHJcbn1cclxuXHJcblxyXG5cclxuQG1peGluIHVpLXR5cG9ncmFwaHktYmFzZSgkZm9udC1mYW1pbHk6IHR5cGUuJHVpLXR5cG9ncmFwaHktc3RhY2stZGVmYXVsdCkge1xyXG4gICAgQGlmICRmb250LWZhbWlseSAhPSBudWxsIHtcclxuICAgICAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5O1xyXG4gICAgfVxyXG4gICAgQGVsc2Uge1xyXG4gICAgICAgIGZvbnQtZmFtaWx5OiB0eXBlLiR1aS10eXBvZ3JhcGh5LXN0YWNrLWRlZmF1bHQ7XHJcbiAgICB9XHJcblxyXG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcclxuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xyXG59XHJcblxyXG5AbWl4aW4gdWktdHlwb2dyYXBoeSgkc3R5bGUpIHtcclxuICAgIEBpZiBtYXAuaGFzLWtleSh0eXBlLiR1aS10eXBvZ3JhcGh5LXN0eWxlcywgJHN0eWxlKSB7XHJcbiAgICAgICAgJHN0eWxlOiBtYXAuZ2V0KHR5cGUuJHVpLXR5cG9ncmFwaHktc3R5bGVzLCAkc3R5bGUpO1xyXG4gICAgICAgICRmb250LWZhbWlseTogbWFwLmdldCgkc3R5bGUsIGZvbnQtZmFtaWx5KTtcclxuXHJcbiAgICAgICAgQGluY2x1ZGUgdWktdHlwb2dyYXBoeS1iYXNlKCRmb250LWZhbWlseSk7XHJcbiAgICAgICAgQGluY2x1ZGUgaW90YS10eXBlKG1hcC5nZXQoJHN0eWxlLCBzaXplcykpO1xyXG4gICAgICAgIC8vIFJlbW92ZSBwcm9wZXJ0aWVzIHRoYXQgZG8gbm90IG5lZWQgdG8gYmUgZ2VuZXJhdGVkIGJlbG93XHJcbiAgICAgICAgJHByb3BzOiBtYXAucmVtb3ZlKCRzdHlsZSwgZm9udC1mYW1pbHksIG1hcmdpbiwgc2l6ZXMpO1xyXG4gICAgICAgICRrZXlzOiBtYXAua2V5cygkcHJvcHMpO1xyXG5cclxuICAgICAgICBAZWFjaCAka2V5IGluICRrZXlzIHtcclxuICAgICAgICAgICAgI3ska2V5fTogbWFwLmdldCgkcHJvcHMsICRrZXkpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBAZWxzZSB7XHJcbiAgICAgICAgQHdhcm4oJ0NvdWxkIG5vdCBmaW5kIGAjeyRzdHlsZX1gIGluIGAkdWktdHlwb2dyYXBoeS1zdHlsZXNgJyk7XHJcbiAgICB9XHJcbn1cclxuXHJcbkBtaXhpbiB1aS10eXBvZ3JhcGh5LW1hcmdpbigkc3R5bGUpIHtcclxuICAgIEBpZiBtYXAuaGFzLWtleSh0eXBlLiR1aS10eXBvZ3JhcGh5LXN0eWxlcywgJHN0eWxlKSB7XHJcbiAgICAgICAgJHN0eWxlLWRlZmluaXRpb246IG1hcC5nZXQodHlwZS4kdWktdHlwb2dyYXBoeS1zdHlsZXMsICRzdHlsZSk7XHJcbiAgICAgICAgJHN0eWxlLW1hcmdpbjogbWFwLmdldCgkc3R5bGUtZGVmaW5pdGlvbiwgbWFyZ2luKTtcclxuICAgICAgICBtYXJnaW46ICRzdHlsZS1tYXJnaW47XHJcbiAgICB9XHJcbiAgICBAZWxzZSB7XHJcbiAgICAgICAgQHdhcm4oJ0NvdWxkIG5vdCBmaW5kIGAjeyRzdHlsZX1gIGluIGAkdWktdHlwb2dyYXBoeS1zdHlsZXNgIGZvciBtYXJnaW4nKTtcclxuICAgIH1cclxufVxyXG4iLCIvL21vZGRlZCB0byB1c2UgcHhcclxuXHJcbkBjaGFyc2V0IFwiVVRGLThcIjsgLy8gRml4ZXMgYW4gaXNzdWUgd2hlcmUgUnVieSBsb2NhbGUgaXMgbm90IHNldCBwcm9wZXJseVxyXG5AdXNlICcuLi92YXJzL2JyZWFrcG9pbnRzJztcclxuQHVzZSAnc2FzczpsaXN0JztcclxuQHVzZSAnc2FzczptYXAnO1xyXG5AdXNlICdzYXNzOm1ldGEnO1xyXG5AdXNlICdzYXNzOm1hdGgnO1xyXG5AdXNlICdzYXNzOnN0cmluZyc7XHJcbi8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vc2Fzcy1tcS9zYXNzLW1xL3B1bGwvMTBcclxuXHJcbi8vLyBCYXNlIGZvbnQgc2l6ZSBvbiB0aGUgYDxib2R5PmAgZWxlbWVudFxyXG4vLy8gQHR5cGUgTnVtYmVyICh1bml0KVxyXG4kbXEtYmFzZS1mb250LXNpemU6IDE2cHggIWRlZmF1bHQ7XHJcblxyXG4vLy8gUmVzcG9uc2l2ZSBtb2RlXHJcbi8vL1xyXG4vLy8gU2V0IHRvIGBmYWxzZWAgdG8gZW5hYmxlIHN1cHBvcnQgZm9yIGJyb3dzZXJzIHRoYXQgZG8gbm90IHN1cHBvcnQgQG1lZGlhIHF1ZXJpZXMsXHJcbi8vLyAoSUUgPD0gOCwgRmlyZWZveCA8PSAzLCBPcGVyYSA8PSA5KVxyXG4vLy9cclxuLy8vIFlvdSBjb3VsZCBjcmVhdGUgYSBzdHlsZXNoZWV0IHNlcnZlZCBleGNsdXNpdmVseSB0byBvbGRlciBicm93c2VycyxcclxuLy8vIHdoZXJlIEBtZWRpYSBxdWVyaWVzIGFyZSByYXN0ZXJpemVkXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2Nzc1xyXG4vLy8gIC8vIG9sZC1pZS5zY3NzXHJcbi8vLyAgJG1xLXJlc3BvbnNpdmU6IGZhbHNlO1xyXG4vLy8gIEBpbXBvcnQgJ21haW4nOyAvLyBAbWVkaWEgcXVlcmllcyBpbiB0aGlzIGZpbGUgd2lsbCBiZSByYXN0ZXJpemVkIHVwIHRvICRtcS1zdGF0aWMtYnJlYWtwb2ludFxyXG4vLy8gICAgICAgICAgICAgICAgICAgLy8gbGFyZ2VyIGJyZWFrcG9pbnRzIHdpbGwgYmUgaWdub3JlZFxyXG4vLy9cclxuLy8vIEB0eXBlIEJvb2xlYW5cclxuLy8vIEBsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEjcmVzcG9uc2l2ZS1tb2RlLW9mZiBEaXNhYmxlZCByZXNwb25zaXZlIG1vZGUgZG9jdW1lbnRhdGlvblxyXG4kbXEtcmVzcG9uc2l2ZTogdHJ1ZSAhZGVmYXVsdDtcclxuXHJcbi8vLyBCcmVha3BvaW50IGxpc3RcclxuLy8vXHJcbi8vLyBOYW1lIHlvdXIgYnJlYWtwb2ludHMgaW4gYSB3YXkgdGhhdCBjcmVhdGVzIGEgdWJpcXVpdG91cyBsYW5ndWFnZVxyXG4vLy8gYWNyb3NzIHRlYW0gbWVtYmVycy4gSXQgd2lsbCBpbXByb3ZlIGNvbW11bmljYXRpb24gYmV0d2VlblxyXG4vLy8gc3Rha2Vob2xkZXJzLCBkZXNpZ25lcnMsIGRldmVsb3BlcnMsIGFuZCB0ZXN0ZXJzLlxyXG4vLy9cclxuLy8vIEB0eXBlIE1hcFxyXG4vLy8gQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MtbXEvc2Fzcy1tcSNzZWVpbmctdGhlLWN1cnJlbnRseS1hY3RpdmUtYnJlYWtwb2ludCBGdWxsIGRvY3VtZW50YXRpb24gYW5kIGV4YW1wbGVzXHJcbiRtcS1icmVha3BvaW50czogYnJlYWtwb2ludHMuJG1xLWJyZWFrcG9pbnRzICFkZWZhdWx0O1xyXG5cclxuLy8vIFN0YXRpYyBicmVha3BvaW50IChmb3IgZml4ZWQtd2lkdGggbGF5b3V0cylcclxuLy8vXHJcbi8vLyBEZWZpbmUgdGhlIGJyZWFrcG9pbnQgZnJvbSAkbXEtYnJlYWtwb2ludHMgdGhhdCBzaG91bGRcclxuLy8vIGJlIHVzZWQgYXMgdGhlIHRhcmdldCB3aWR0aCBmb3IgdGhlIGZpeGVkLXdpZHRoIGxheW91dFxyXG4vLy8gKGkuZS4gd2hlbiAkbXEtcmVzcG9uc2l2ZSBpcyBzZXQgdG8gJ2ZhbHNlJykgaW4gYSBvbGQtaWUuc2Nzc1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3NcclxuLy8vICAvLyB0YWJsZXQtb25seS5zY3NzXHJcbi8vLyAgLy9cclxuLy8vICAvLyBJZ25vcmUgYWxsIHN0eWxlcyBhYm92ZSB0YWJsZXQgYnJlYWtwb2ludCxcclxuLy8vICAvLyBhbmQgZml4IHRoZSBzdHlsZXMgKGUuZy4gbGF5b3V0KSBhdCB0YWJsZXQgd2lkdGhcclxuLy8vICAkbXEtcmVzcG9uc2l2ZTogZmFsc2U7XHJcbi8vLyAgJG1xLXN0YXRpYy1icmVha3BvaW50OiB0YWJsZXQ7XHJcbi8vLyAgQGltcG9ydCAnbWFpbic7IC8vIEBtZWRpYSBxdWVyaWVzIGluIHRoaXMgZmlsZSB3aWxsIGJlIHJhc3Rlcml6ZWQgdXAgdG8gdGFibGV0XHJcbi8vLyAgICAgICAgICAgICAgICAgICAvLyBsYXJnZXIgYnJlYWtwb2ludHMgd2lsbCBiZSBpZ25vcmVkXHJcbi8vL1xyXG4vLy8gQHR5cGUgU3RyaW5nXHJcbi8vLyBAbGluayBodHRwczovL2dpdGh1Yi5jb20vc2Fzcy1tcS9zYXNzLW1xI2FkZGluZy1jdXN0b20tYnJlYWtwb2ludHMgRnVsbCBkb2N1bWVudGF0aW9uIGFuZCBleGFtcGxlc1xyXG4kbXEtc3RhdGljLWJyZWFrcG9pbnQ6IG1kMiAhZGVmYXVsdDtcclxuXHJcbi8vLyBTaG93IGJyZWFrcG9pbnRzIGluIHRoZSB0b3AgcmlnaHQgY29ybmVyXHJcbi8vL1xyXG4vLy8gSWYgeW91IHdhbnQgdG8gZGlzcGxheSB0aGUgY3VycmVudGx5IGFjdGl2ZSBicmVha3BvaW50IGluIHRoZSB0b3BcclxuLy8vIHJpZ2h0IGNvcm5lciBvZiB5b3VyIHNpdGUgZHVyaW5nIGRldmVsb3BtZW50LCBhZGQgdGhlIGJyZWFrcG9pbnRzXHJcbi8vLyB0byB0aGlzIGxpc3QsIG9yZGVyZWQgYnkgd2lkdGgsIGUuZy4gKG1vYmlsZSwgdGFibGV0LCBkZXNrdG9wKS5cclxuLy8vXHJcbi8vLyBAdHlwZSBtYXBcclxuJG1xLXNob3ctYnJlYWtwb2ludHM6ICgpICFkZWZhdWx0O1xyXG5cclxuLy8vIEN1c3RvbWl6ZSB0aGUgbWVkaWEgdHlwZSAoZS5nLiBgQG1lZGlhIHNjcmVlbmAgb3IgYEBtZWRpYSBwcmludGApXHJcbi8vLyBCeSBkZWZhdWx0IHNhc3MtbXEgdXNlcyBhbiBcImFsbFwiIG1lZGlhIHR5cGUgKGBAbWVkaWEgYWxsIGFuZCDigKZgKVxyXG4vLy9cclxuLy8vIEB0eXBlIFN0cmluZ1xyXG4vLy8gQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MtbXEvc2Fzcy1tcSNjaGFuZ2luZy1tZWRpYS10eXBlIEZ1bGwgZG9jdW1lbnRhdGlvbiBhbmQgZXhhbXBsZXNcclxuJG1xLW1lZGlhLXR5cGU6IGFsbCAhZGVmYXVsdDtcclxuXHJcbi8vLyBDb252ZXJ0IHBpeGVscyB0byBlbXNcclxuLy8vXHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJHB4IC0gdmFsdWUgdG8gY29udmVydFxyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXNlLWZvbnQtc2l6ZSAoJG1xLWJhc2UtZm9udC1zaXplKSAtIGA8Ym9keT5gIGZvbnQgc2l6ZVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3NcclxuLy8vICAkZm9udC1zaXplLWluLWVtczogbXEtcHgyZW0oMTZweCk7XHJcbi8vLyAgcCB7IGZvbnQtc2l6ZTogbXEtcHgyZW0oMTZweCk7IH1cclxuLy8vXHJcbi8vLyBAcmVxdWlyZXMgJG1xLWJhc2UtZm9udC1zaXplXHJcbi8vLyBAcmV0dXJucyB7TnVtYmVyfVxyXG5AZnVuY3Rpb24gbXEtcHgyZW0oJHB4LCAkYmFzZS1mb250LXNpemU6ICRtcS1iYXNlLWZvbnQtc2l6ZSkge1xyXG4gICAgQGlmIG1hdGguaXMtdW5pdGxlc3MoJHB4KSB7XHJcbiAgICAgICAgQHdhcm4gXCJBc3N1bWluZyAjeyRweH0gdG8gYmUgaW4gcGl4ZWxzLCBhdHRlbXB0aW5nIHRvIGNvbnZlcnQgaXQgaW50byBwaXhlbHMuXCI7XHJcbiAgICAgICAgQHJldHVybiBtcS1weDJlbSgkcHggKiAxcHgsICRiYXNlLWZvbnQtc2l6ZSk7XHJcbiAgICB9XHJcbiAgICBAZWxzZSBpZiBtYXRoLnVuaXQoJHB4KSA9PSAnZW0nIHtcclxuICAgICAgICBAcmV0dXJuICRweDtcclxuICAgIH1cclxuXHJcbiAgICBAcmV0dXJuIG1hdGguZGl2KCRweCwgJGJhc2UtZm9udC1zaXplKSAqIDFlbTtcclxufVxyXG5cclxuLy8vIEdldCBhIGJyZWFrcG9pbnQncyB3aWR0aFxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbmFtZSAtIE5hbWUgb2YgdGhlIGJyZWFrcG9pbnQuIE9uZSBvZiAkbXEtYnJlYWtwb2ludHNcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzXHJcbi8vLyAgJHRhYmxldC13aWR0aDogbXEtZ2V0LWJyZWFrcG9pbnQtd2lkdGgodGFibGV0KTtcclxuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogbXEtZ2V0LWJyZWFrcG9pbnQtd2lkdGgoZGVza3RvcCkpIHt9XHJcbi8vL1xyXG4vLy8gQHJlcXVpcmVzIHtWYXJpYWJsZX0gJG1xLWJyZWFrcG9pbnRzXHJcbi8vL1xyXG4vLy8gQHJldHVybnMge051bWJlcn0gVmFsdWUgaW4gcGl4ZWxzXHJcbkBmdW5jdGlvbiBtcS1nZXQtYnJlYWtwb2ludC13aWR0aCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkbXEtYnJlYWtwb2ludHMpIHtcclxuICAgIEBpZiBtYXAuaGFzLWtleSgkYnJlYWtwb2ludHMsICRuYW1lKSB7XHJcbiAgICAgICAgQHJldHVybiBtYXAuZ2V0KCRicmVha3BvaW50cywgJG5hbWUpO1xyXG4gICAgfVxyXG4gICAgQGVsc2Uge1xyXG4gICAgICAgIEB3YXJuIFwiQnJlYWtwb2ludCAjeyRuYW1lfSB3YXNuJ3QgZm91bmQgaW4gJGJyZWFrcG9pbnRzLlwiO1xyXG4gICAgICAgIEByZXR1cm4gbnVsbDtcclxuICAgIH1cclxufVxyXG5cclxuLy8vIE1lZGlhIFF1ZXJ5IG1peGluXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmcgfCBCb29sZWFufSAkZnJvbSAoZmFsc2UpIC0gT25lIG9mICRtcS1icmVha3BvaW50c1xyXG4vLy8gQHBhcmFtIHtTdHJpbmcgfCBCb29sZWFufSAkdW50aWwgKGZhbHNlKSAtIE9uZSBvZiAkbXEtYnJlYWtwb2ludHNcclxuLy8vIEBwYXJhbSB7U3RyaW5nIHwgQm9vbGVhbn0gJGFuZCAoZmFsc2UpIC0gQWRkaXRpb25hbCBtZWRpYSBxdWVyeSBwYXJhbWV0ZXJzXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJG1lZGlhLXR5cGUgKCRtcS1tZWRpYS10eXBlKSAtIE1lZGlhIHR5cGU6IHNjcmVlbiwgcHJpbnTigKZcclxuLy8vXHJcbi8vLyBAaWdub3JlIFVuZG9jdW1lbnRlZCBBUEksIGZvciBhZHZhbmNlZCB1c2Ugb25seTpcclxuLy8vIEBpZ25vcmUgQHBhcmFtIHtNYXB9ICRicmVha3BvaW50cyAoJG1xLWJyZWFrcG9pbnRzKVxyXG4vLy8gQGlnbm9yZSBAcGFyYW0ge1N0cmluZ30gJHN0YXRpYy1icmVha3BvaW50ICgkbXEtc3RhdGljLWJyZWFrcG9pbnQpXHJcbi8vL1xyXG4vLy8gQGNvbnRlbnQgc3R5bGluZyBydWxlcywgd3JhcHBlZCBpbnRvIGEgQG1lZGlhIHF1ZXJ5IHdoZW4gJHJlc3BvbnNpdmUgaXMgdHJ1ZVxyXG4vLy9cclxuLy8vIEByZXF1aXJlcyB7VmFyaWFibGV9ICRtcS1tZWRpYS10eXBlXHJcbi8vLyBAcmVxdWlyZXMge1ZhcmlhYmxlfSAkbXEtYnJlYWtwb2ludHNcclxuLy8vIEByZXF1aXJlcyB7VmFyaWFibGV9ICRtcS1zdGF0aWMtYnJlYWtwb2ludFxyXG4vLy8gQHJlcXVpcmVzIHtmdW5jdGlvbn0gbXEtcHgyZW1cclxuLy8vIEByZXF1aXJlcyB7ZnVuY3Rpb259IG1xLWdldC1icmVha3BvaW50LXdpZHRoXHJcbi8vL1xyXG4vLy8gQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MtbXEvc2Fzcy1tcSNyZXNwb25zaXZlLW1vZGUtb24tZGVmYXVsdCBGdWxsIGRvY3VtZW50YXRpb24gYW5kIGV4YW1wbGVzXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2Nzc1xyXG4vLy8gIC5lbGVtZW50IHtcclxuLy8vICAgIEBpbmNsdWRlIG1peGlucy5tcSgkZnJvbTogbW9iaWxlKSB7XHJcbi8vLyAgICAgIGNvbG9yOiByZWQ7XHJcbi8vLyAgICB9XHJcbi8vLyAgICBAaW5jbHVkZSBtaXhpbnMubXEoJHVudGlsOiB0YWJsZXQpIHtcclxuLy8vICAgICAgY29sb3I6IGJsdWU7XHJcbi8vLyAgICB9XHJcbi8vLyAgICBAaW5jbHVkZSBtaXhpbnMubXEobW9iaWxlLCB0YWJsZXQpIHtcclxuLy8vICAgICAgY29sb3I6IGdyZWVuO1xyXG4vLy8gICAgfVxyXG4vLy8gICAgQGluY2x1ZGUgbWl4aW5zLm1xKCRmcm9tOiB0YWJsZXQsICRhbmQ6ICcob3JpZW50YXRpb246IGxhbmRzY2FwZSknKSB7XHJcbi8vLyAgICAgIGNvbG9yOiB0ZWFsO1xyXG4vLy8gICAgfVxyXG4vLy8gICAgQGluY2x1ZGUgbWl4aW5zLm1xKDk1MHB4KSB7XHJcbi8vLyAgICAgIGNvbG9yOiBob3RwaW5rO1xyXG4vLy8gICAgfVxyXG4vLy8gICAgQGluY2x1ZGUgbWl4aW5zLm1xKHRhYmxldCwgJG1lZGlhLXR5cGU6IHNjcmVlbikge1xyXG4vLy8gICAgICBjb2xvcjogaG90cGluaztcclxuLy8vICAgIH1cclxuLy8vICAgIC8vIEFkdmFuY2VkIHVzZTpcclxuLy8vICAgICRteS1icmVha3BvaW50czogKEw6IDkwMHB4LCBYTDogMTIwMHB4KTtcclxuLy8vICAgIEBpbmNsdWRlIG1peGlucy5tcShMLCAkYnJlYWtwb2ludHM6ICRteS1icmVha3BvaW50cywgJHN0YXRpYy1icmVha3BvaW50OiBMKSB7XHJcbi8vLyAgICAgIGNvbG9yOiBob3RwaW5rO1xyXG4vLy8gICAgfVxyXG4vLy8gIH1cclxuQG1peGluIG1xKCAkZnJvbTogZmFsc2UsICR1bnRpbDogZmFsc2UsICRhbmQ6IGZhbHNlLCAkZW1zLW9uOiBmYWxzZSwgJG1lZGlhLXR5cGU6ICRtcS1tZWRpYS10eXBlLCAkYnJlYWtwb2ludHM6ICRtcS1icmVha3BvaW50cywgJHJlc3BvbnNpdmU6ICRtcS1yZXNwb25zaXZlLCAkc3RhdGljLWJyZWFrcG9pbnQ6ICRtcS1zdGF0aWMtYnJlYWtwb2ludCApIHtcclxuICAgICRtaW4td2lkdGg6IDA7XHJcbiAgICAkbWF4LXdpZHRoOiAwO1xyXG4gICAgJG1lZGlhLXF1ZXJ5OiAnJztcclxuXHJcbiAgICAvLyBGcm9tOiB0aGlzIGJyZWFrcG9pbnQgKGluY2x1c2l2ZSlcclxuICAgIEBpZiAkZnJvbSB7XHJcbiAgICAgICAgQGlmIG1ldGEudHlwZS1vZigkZnJvbSkgPT0gJ251bWJlcicge1xyXG4gICAgICAgICAgICBAaWYgJGVtcy1vbiB7XHJcbiAgICAgICAgICAgICAgICAkbWluLXdpZHRoOiBtcS1weDJlbSgkZnJvbSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgQGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgJG1pbi13aWR0aDogJGZyb207XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgQGVsc2Uge1xyXG4gICAgICAgICAgICBAaWYgJGVtcy1vbiB7XHJcbiAgICAgICAgICAgICAgICAkbWluLXdpZHRoOiBtcS1weDJlbShtcS1nZXQtYnJlYWtwb2ludC13aWR0aCgkZnJvbSwgJGJyZWFrcG9pbnRzKSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgQGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgJG1pbi13aWR0aDogbXEtZ2V0LWJyZWFrcG9pbnQtd2lkdGgoJGZyb20sICRicmVha3BvaW50cyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAvLyBVbnRpbDogdGhhdCBicmVha3BvaW50IChleGNsdXNpdmUpXHJcbiAgICBAaWYgJHVudGlsIHtcclxuICAgICAgICBAaWYgbWV0YS50eXBlLW9mKCR1bnRpbCkgPT0gJ251bWJlcicge1xyXG4gICAgICAgICAgICBAaWYgJGVtcy1vbiB7XHJcbiAgICAgICAgICAgICAgICAkbWF4LXdpZHRoOiBtcS1weDJlbSgkdW50aWwpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIEBlbHNlIHtcclxuICAgICAgICAgICAgICAgICRtYXgtd2lkdGg6ICR1bnRpbDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBAZWxzZSB7XHJcbiAgICAgICAgICAgIEBpZiAkZW1zLW9uIHtcclxuICAgICAgICAgICAgICAgICRtYXgtd2lkdGg6IG1xLXB4MmVtKG1xLWdldC1icmVha3BvaW50LXdpZHRoKCR1bnRpbCwgJGJyZWFrcG9pbnRzKSkgLSAuMDFlbTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBAZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAkbWF4LXdpZHRoOiBtcS1nZXQtYnJlYWtwb2ludC13aWR0aCgkdW50aWwsICRicmVha3BvaW50cykgLSAxcHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAvLyBSZXNwb25zaXZlIHN1cHBvcnQgaXMgZGlzYWJsZWQsIHJhc3Rlcml6ZSB0aGUgb3V0cHV0IG91dHNpZGUgQG1lZGlhIGJsb2Nrc1xyXG4gICAgLy8gVGhlIGJyb3dzZXIgd2lsbCByZWx5IG9uIHRoZSBjYXNjYWRlIGl0c2VsZi5cclxuICAgIEBpZiAkcmVzcG9uc2l2ZSA9PSBmYWxzZSB7XHJcbiAgICAgICAgJHN0YXRpYy1icmVha3BvaW50LXdpZHRoOiBtcS1nZXQtYnJlYWtwb2ludC13aWR0aCgkc3RhdGljLWJyZWFrcG9pbnQsICRicmVha3BvaW50cyk7XHJcbiAgICAgICAgJHRhcmdldC13aWR0aDogbnVsbDtcclxuXHJcbiAgICAgICAgQGlmICRlbXMtb24ge1xyXG4gICAgICAgICAgICAkdGFyZ2V0LXdpZHRoOiBtcS1weDJlbSgkc3RhdGljLWJyZWFrcG9pbnQtd2lkdGgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBAZWxzZSB7XHJcbiAgICAgICAgICAgICR0YXJnZXQtd2lkdGg6ICRzdGF0aWMtYnJlYWtwb2ludC13aWR0aDtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gT3V0cHV0IG9ubHkgcnVsZXMgdGhhdCBzdGFydCBhdCBvciBzcGFuIG91ciB0YXJnZXQgd2lkdGhcclxuICAgICAgICBAaWYgKCAkYW5kID09IGZhbHNlIGFuZCAkbWluLXdpZHRoIDw9ICR0YXJnZXQtd2lkdGggYW5kICggJHVudGlsID09IGZhbHNlIG9yICRtYXgtd2lkdGggPj0gJHRhcmdldC13aWR0aCApICkge1xyXG4gICAgICAgICAgICBAY29udGVudDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAvLyBSZXNwb25zaXZlIHN1cHBvcnQgaXMgZW5hYmxlZCwgb3V0cHV0IHJ1bGVzIGluc2lkZSBAbWVkaWEgcXVlcmllc1xyXG4gICAgQGVsc2Uge1xyXG4gICAgICAgIEBpZiAkbWluLXdpZHRoICE9IDAge1xyXG4gICAgICAgICAgICAkbWVkaWEtcXVlcnk6ICcjeyRtZWRpYS1xdWVyeX0gYW5kIChtaW4td2lkdGg6ICN7JG1pbi13aWR0aH0pJztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIEBpZiAkbWF4LXdpZHRoICE9IDAge1xyXG4gICAgICAgICAgICAkbWVkaWEtcXVlcnk6ICcjeyRtZWRpYS1xdWVyeX0gYW5kIChtYXgtd2lkdGg6ICN7JG1heC13aWR0aH0pJztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIEBpZiAkYW5kIHtcclxuICAgICAgICAgICAgJG1lZGlhLXF1ZXJ5OiAnI3skbWVkaWEtcXVlcnl9IGFuZCAjeyRhbmR9JztcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gUmVtb3ZlIHVubmVjZXNzYXJ5IG1lZGlhIHF1ZXJ5IHByZWZpeCAnYWxsIGFuZCAnXHJcbiAgICAgICAgQGlmICgkbWVkaWEtdHlwZSA9PSAnYWxsJyBhbmQgJG1lZGlhLXF1ZXJ5ICE9ICcnKSB7XHJcbiAgICAgICAgICAgICRtZWRpYS10eXBlOiAnJztcclxuICAgICAgICAgICAgJG1lZGlhLXF1ZXJ5OiBzdHJpbmcuc2xpY2Uoc3RyaW5nLnVucXVvdGUoJG1lZGlhLXF1ZXJ5KSwgNik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBAbWVkaWEgI3skbWVkaWEtdHlwZSArICRtZWRpYS1xdWVyeX0ge1xyXG4gICAgICAgICAgICBAY29udGVudDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi8vLyBRdWljayBzb3J0XHJcbi8vL1xyXG4vLy8gQGF1dGhvciBTYW0gUmljaGFyZHNcclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxyXG4vLy8gQHBhcmFtIHtMaXN0fSAkbGlzdCAtIExpc3QgdG8gc29ydFxyXG4vLy8gQHJldHVybnMge0xpc3R9IFNvcnRlZCBMaXN0XHJcbkBmdW5jdGlvbiBfbXEtcXVpY2stc29ydCgkbGlzdCkge1xyXG4gICAgJGxlc3M6ICgpO1xyXG4gICAgJGVxdWFsOiAoKTtcclxuICAgICRsYXJnZTogKCk7XHJcblxyXG4gICAgQGlmIGxpc3QubGVuZ3RoKCRsaXN0KSA+IDEge1xyXG4gICAgICAgICRzZWVkOiBsaXN0Lm50aCgkbGlzdCwgbWF0aC5jZWlsKGxpc3QubGVuZ3RoKCRsaXN0KSAvIDIpKTtcclxuXHJcbiAgICAgICAgQGVhY2ggJGl0ZW0gaW4gJGxpc3Qge1xyXG4gICAgICAgICAgICBAaWYgKCRpdGVtID09ICRzZWVkKSB7XHJcbiAgICAgICAgICAgICAgICAkZXF1YWw6IGxpc3QuYXBwZW5kKCRlcXVhbCwgJGl0ZW0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIEBlbHNlIGlmICgkaXRlbSA8ICRzZWVkKSB7XHJcbiAgICAgICAgICAgICAgICAkbGVzczogbGlzdC5hcHBlbmQoJGxlc3MsICRpdGVtKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBAZWxzZSBpZiAoJGl0ZW0gPiAkc2VlZCkge1xyXG4gICAgICAgICAgICAgICAgJGxhcmdlOiBsaXN0LmFwcGVuZCgkbGFyZ2UsICRpdGVtKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgQHJldHVybiBsaXN0LmpvaW4obGlzdC5qb2luKF9tcS1xdWljay1zb3J0KCRsZXNzKSwgJGVxdWFsKSwgX21xLXF1aWNrLXNvcnQoJGxhcmdlKSk7XHJcbiAgICB9XHJcblxyXG4gICAgQHJldHVybiAkbGlzdDtcclxufVxyXG5cclxuLy8vIFNvcnQgYSBtYXAgYnkgdmFsdWVzICh3b3JrcyB3aXRoIG51bWJlcnMgb25seSlcclxuLy8vXHJcbi8vLyBAYWNjZXNzIHByaXZhdGVcclxuLy8vIEBwYXJhbSB7TWFwfSAkbWFwIC0gTWFwIHRvIHNvcnRcclxuLy8vIEByZXR1cm5zIHtNYXB9IE1hcCBzb3J0ZWQgYnkgdmFsdWVcclxuQGZ1bmN0aW9uIF9tcS1tYXAtc29ydC1ieS12YWx1ZSgkbWFwKSB7XHJcbiAgICAkbWFwLXNvcnRlZDogKCk7XHJcbiAgICAkbWFwLWtleXM6IG1hcC5rZXlzKCRtYXApO1xyXG4gICAgJG1hcC12YWx1ZXM6IG1hcC52YWx1ZXMoJG1hcCk7XHJcbiAgICAkbWFwLXZhbHVlcy1zb3J0ZWQ6IF9tcS1xdWljay1zb3J0KCRtYXAtdmFsdWVzKTtcclxuXHJcbiAgICAvLyBSZW9yZGVyIGtleS92YWx1ZSBwYWlycyBiYXNlZCBvbiBrZXkgdmFsdWVzXHJcbiAgICBAZWFjaCAkdmFsdWUgaW4gJG1hcC12YWx1ZXMtc29ydGVkIHtcclxuICAgICAgICAkaW5kZXg6IGxpc3QuaW5kZXgoJG1hcC12YWx1ZXMsICR2YWx1ZSk7XHJcbiAgICAgICAgJGtleTogbGlzdC5udGgoJG1hcC1rZXlzLCAkaW5kZXgpO1xyXG4gICAgICAgICRtYXAtc29ydGVkOiBtYXAubWVyZ2UoJG1hcC1zb3J0ZWQsICgka2V5OiAkdmFsdWUpKTtcclxuXHJcbiAgICAgICAgLy8gVW5zZXQgdGhlIHZhbHVlIGluICRtYXAtdmFsdWVzIHRvIHByZXZlbnQgdGhlIGxvb3BcclxuICAgICAgICAvLyBmcm9tIGZpbmRpbmcgdGhlIHNhbWUgaW5kZXggdHdpY2VcclxuICAgICAgICAkbWFwLXZhbHVlczogbGlzdC5zZXQtbnRoKCRtYXAtdmFsdWVzLCAkaW5kZXgsIDApO1xyXG4gICAgfVxyXG5cclxuICAgIEByZXR1cm4gJG1hcC1zb3J0ZWQ7XHJcbn1cclxuXHJcbi8vLyBBZGQgYSBicmVha3BvaW50XHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRuYW1lIC0gTmFtZSBvZiB0aGUgYnJlYWtwb2ludFxyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3aWR0aCAtIFdpZHRoIG9mIHRoZSBicmVha3BvaW50XHJcbi8vL1xyXG4vLy8gQHJlcXVpcmVzIHtWYXJpYWJsZX0gJG1xLWJyZWFrcG9pbnRzXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2Nzc1xyXG4vLy8gIEBpbmNsdWRlIG1xLWFkZC1icmVha3BvaW50KHR2c2NyZWVuLCAxOTIwcHgpO1xyXG4vLy8gIEBpbmNsdWRlIG1peGlucy5tcSh0dnNjcmVlbikge31cclxuQG1peGluIG1xLWFkZC1icmVha3BvaW50KCRuYW1lLCAkd2lkdGgpIHtcclxuICAgICRuZXctYnJlYWtwb2ludDogKCRuYW1lOiAkd2lkdGgpO1xyXG4gICAgJG1xLWJyZWFrcG9pbnRzOiBtYXAubWVyZ2UoJG1xLWJyZWFrcG9pbnRzLCAkbmV3LWJyZWFrcG9pbnQpICFnbG9iYWw7XHJcbiAgICAkbXEtYnJlYWtwb2ludHM6IF9tcS1tYXAtc29ydC1ieS12YWx1ZSgkbXEtYnJlYWtwb2ludHMpICFnbG9iYWw7XHJcbn1cclxuXHJcbi8vLyBTaG93IHRoZSBhY3RpdmUgYnJlYWtwb2ludCBpbiB0aGUgdG9wIHJpZ2h0IGNvcm5lciBvZiB0aGUgdmlld3BvcnRcclxuLy8vIEBsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEjc2VlaW5nLXRoZS1jdXJyZW50bHktYWN0aXZlLWJyZWFrcG9pbnRcclxuLy8vXHJcbi8vLyBAcGFyYW0ge0xpc3R9ICRzaG93LWJyZWFrcG9pbnRzICgkbXEtc2hvdy1icmVha3BvaW50cykgLSBMaXN0IG9mIGJyZWFrcG9pbnRzIHRvIHNob3cgaW4gdGhlIHRvcCByaWdodCBjb3JuZXJcclxuLy8vIEBwYXJhbSB7TWFwfSAkYnJlYWtwb2ludHMgKCRtcS1icmVha3BvaW50cykgLSBCcmVha3BvaW50IG5hbWVzIGFuZCBzaXplc1xyXG4vLy9cclxuLy8vIEByZXF1aXJlcyB7VmFyaWFibGV9ICRtcS1icmVha3BvaW50c1xyXG4vLy8gQHJlcXVpcmVzIHtWYXJpYWJsZX0gJG1xLXNob3ctYnJlYWtwb2ludHNcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzXHJcbi8vLyAgLy8gU2hvdyBicmVha3BvaW50cyB1c2luZyBnbG9iYWwgc2V0dGluZ3NcclxuLy8vICBAaW5jbHVkZSBtcS1zaG93LWJyZWFrcG9pbnRzO1xyXG4vLy9cclxuLy8vICAvLyBTaG93IGJyZWFrcG9pbnRzIHVzaW5nIGN1c3RvbSBzZXR0aW5nc1xyXG4vLy8gIEBpbmNsdWRlIG1xLXNob3ctYnJlYWtwb2ludHMoKEwsIFhMKSwgKFM6IDMwMHB4LCBMOiA4MDBweCwgWEw6IDEyMDBweCkpO1xyXG5AbWl4aW4gbXEtc2hvdy1icmVha3BvaW50cygkc2hvdy1icmVha3BvaW50czogJG1xLXNob3ctYnJlYWtwb2ludHMsICRicmVha3BvaW50czogJG1xLWJyZWFrcG9pbnRzKSB7XHJcbiAgICBib2R5OmJlZm9yZSB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0ZDRjhFMztcclxuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0ZCRUVENTtcclxuICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNGQkVFRDU7XHJcbiAgICAgICAgY29sb3I6ICNDMDk4NTM7XHJcbiAgICAgICAgZm9udDogc21hbGwtY2FwdGlvbjtcclxuICAgICAgICBwYWRkaW5nOiAzcHggNnB4O1xyXG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgICAgICByaWdodDogMDtcclxuICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgei1pbmRleDogMTAwO1xyXG4gICAgICAgIC8vIExvb3AgdGhyb3VnaCB0aGUgYnJlYWtwb2ludHMgdGhhdCBzaG91bGQgYmUgc2hvd25cclxuICAgICAgICBAZWFjaCAkc2hvdy1icmVha3BvaW50IGluICRzaG93LWJyZWFrcG9pbnRzIHtcclxuICAgICAgICAgICAgJHdpZHRoOiBtcS1nZXQtYnJlYWtwb2ludC13aWR0aCgkc2hvdy1icmVha3BvaW50LCAkYnJlYWtwb2ludHMpO1xyXG5cclxuICAgICAgICAgICAgQGluY2x1ZGUgbXEoJHNob3ctYnJlYWtwb2ludCwgJGJyZWFrcG9pbnRzOiAkYnJlYWtwb2ludHMpIHtcclxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiI3skc2hvdy1icmVha3BvaW50fSDiiaUgI3skd2lkdGh9ICgje21xLXB4MmVtKCR3aWR0aCl9KVwiO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5AaWYgbGlzdC5sZW5ndGgoJG1xLXNob3ctYnJlYWtwb2ludHMpID4gMCB7XHJcbiAgICBAaW5jbHVkZSBtcS1zaG93LWJyZWFrcG9pbnRzO1xyXG59XHJcbiJdfQ== */
