/**
 * Usage:
 *
 *   background-color: color(white);
 */
.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 */
.subway-station-connecting-line h3,
.subway-station-connecting-buses h3 {
  font-family: Verdana, Tahoma, sans-serif;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 2.6rem;
  line-height: 32px;
  font-style: normal;
  font-weight: 700;
}
@media ( min-width: 768px ) {
  .subway-station-connecting-line h3,
  .subway-station-connecting-buses h3 {
    font-size: 3.4rem;
    line-height: 40px;
  }
}

.subway-station-connecting-line {
  margin-bottom: 50px;
}
.subway-station-connecting-line .connecting-line-wrapper {
  display: -webkit-box;
  display: flex;
  -webkit-box-pack: justify;
          justify-content: space-between;
  border-bottom: 1px solid #767676;
  padding: 40px 0;
}
@media (max-width: 639px) {
  .subway-station-connecting-line .connecting-line-wrapper {
    flex-wrap: wrap;
  }
}
.subway-station-connecting-line .connecting-line-wrapper .connecting-line-left,
.subway-station-connecting-line .connecting-line-wrapper .connecting-line-right {
  display: -webkit-box;
  display: flex;
}
.subway-station-connecting-line .connecting-line-wrapper .connecting-line {
  width: 50%;
}
@media (max-width: 639px) {
  .subway-station-connecting-line .connecting-line-wrapper .connecting-line {
    width: 100%;
  }
  .subway-station-connecting-line .connecting-line-wrapper .connecting-line:first-child {
    margin-bottom: 30px;
  }
}
.subway-station-connecting-line .connecting-line-wrapper .wrapper-line-id {
  height: 100%;
  padding-right: 20px;
  font-weight: bold;
  font-size: 24px;
}
.subway-station-connecting-line .connecting-line-wrapper .line-1,
.subway-station-connecting-line .connecting-line-wrapper .line-2,
.subway-station-connecting-line .connecting-line-wrapper .line-3,
.subway-station-connecting-line .connecting-line-wrapper .line-4,
.subway-station-connecting-line .connecting-line-wrapper .line-5,
.subway-station-connecting-line .connecting-line-wrapper .line-6 {
  font-family: "Swiss 721 W01", Arial, sans-serif;
  height: 32px;
  width: 32px;
  line-height: 32px;
  border-radius: 100%;
  color: #ffffff;
  text-align: center;
  display: inline-block;
}
.subway-station-connecting-line .connecting-line-wrapper .line-1 {
  background: #f8c300;
  color: #000;
}
.subway-station-connecting-line .connecting-line-wrapper .line-2 {
  background: #00923f;
}
.subway-station-connecting-line .connecting-line-wrapper .line-3 {
  background: #0082c9;
}
.subway-station-connecting-line .connecting-line-wrapper .line-4 {
  background: #a21a68;
}
.subway-station-connecting-line .connecting-line-wrapper .line-5 {
  background: #eb8738;
}
.subway-station-connecting-line .connecting-line-wrapper .line-6 {
  background: #969594;
}
.subway-station-connecting-line .connecting-line-direction {
  font-family: Verdana, Tahoma, sans-serif;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 1.8rem;
  line-height: 28px;
  font-style: normal;
  font-weight: 300;
  font-weight: bold;
}
@media ( min-width: 768px ) {
  .subway-station-connecting-line .connecting-line-direction {
    font-size: 2rem;
    line-height: 32px;
  }
}
.subway-station-connecting-line .connecting-line-departing {
  font-family: Verdana, Tahoma, sans-serif;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 1.8rem;
  line-height: 28px;
  font-style: normal;
  font-weight: 300;
}
@media ( min-width: 768px ) {
  .subway-station-connecting-line .connecting-line-departing {
    font-size: 2rem;
    line-height: 32px;
  }
}
.subway-station-connecting-line a {
  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: 300;
  color: #0070cd;
  text-decoration: none !important;
  position: relative;
  font-weight: 400;
  display: block;
  font-size: 20px;
}
.subway-station-connecting-line a::after {
  content: "";
  position: absolute;
  margin-left: 8px;
  height: 20px;
  width: 20px;
  bottom: 3px;
  background-image: url("/-/media/Project/TTC/DevProto/Icons/arrow-background-right-outline.svg");
  background-size: cover;
}
.subway-station-connecting-line a:hover, .subway-station-connecting-line a:focus {
  text-decoration: underline;
}

.subway-station-connecting-buses h3 {
  padding-bottom: 40px;
}
.subway-station-connecting-buses .connecting-buses {
  display: -webkit-box;
  display: flex;
  border-bottom: 1px solid #767676;
  padding: 15px 28px 15px 0;
}
@media (max-width: 639px) {
  .subway-station-connecting-buses .connecting-buses {
    display: block;
  }
}
.subway-station-connecting-buses .wrapper-connecting-buses-route {
  display: -webkit-box;
  display: flex;
}
.subway-station-connecting-buses .connecting-buses-route-number {
  font-family: "Swiss 721 W01", Arial, sans-serif;
  font-weight: normal;
  font-size: 22px;
  border-radius: 4px;
  min-width: 56px;
  width: 56px;
  text-align: center;
  color: #ffffff;
  background: #da251d;
  margin-right: 8px;
  border: 2px solid transparent;
  max-height: 32px;
  line-height: 27px;
}
.subway-station-connecting-buses .connecting-buses-route-number.night-bus {
  background-color: #fff;
  border-color: #024182;
  border-radius: 4px;
  color: #024182;
  position: relative;
  min-width: 56px;
  /* padding: 0 16px 0 2px;*/
  /* &:after {
    content: " ";
    display: block;
    width: 12px;
    height: 11px;
    position: absolute;
    top: 6px;
    right: 2px;
    background: url("/-/media/Project/TTC/DevProto/Icons/night-bus.svg") no-repeat;
  }*/
}
.subway-station-connecting-buses .connecting-buses-route-number.express-bus {
  background: #00923f;
}
.subway-station-connecting-buses .connecting-buses-route-number.limited-bus {
  background-color: #fff;
  border-color: #da251d;
  color: #da251d;
}
.subway-station-connecting-buses .connecting-buses-route-number.downtown-express-bus {
  background-color: #fff;
  border-color: #00923f;
  color: #00923f;
}
.subway-station-connecting-buses .connecting-buses-route-number.community-bus {
  background-color: #fff !important;
  border-color: gray;
  color: gray;
}
.subway-station-connecting-buses .connecting-buses-route-number.seasonal-bus {
  background-color: #fff;
  border-color: #EB6FBD;
  color: #EB6FBD;
}
.subway-station-connecting-buses .connecting-buses-route-number.shuttle-line6 {
  color: transparent;
  text-indent: -9999px;
  background-color: transparent;
  background-image: url("/~/media/Project/TTC/DevProto/Images/Line6ShuttleBus");
  background-repeat: no-repeat;
  border: 2px solid #eb8738;
  background-position: center;
  background-size: contain;
}
.subway-station-connecting-buses .connecting-buses-route-number.shuttle-line5 {
  color: transparent;
  text-indent: -9999px;
  background-color: transparent;
  background-image: url("/~/media/Project/TTC/DevProto/Images/Line5ShuttleBus");
  background-repeat: no-repeat;
  border: 2px solid #eb8738;
  background-position: center;
  background-size: contain;
}
.subway-station-connecting-buses .connecting-buses-route-schedule-url {
  margin-left: auto;
}
@media (max-width: 639px) {
  .subway-station-connecting-buses .connecting-buses-route-schedule-url {
    margin-top: 0;
    padding-left: 66px;
  }
}
.subway-station-connecting-buses .connecting-buses-route-schedule-url a {
  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: 300;
  color: #0070cd;
  text-decoration: none !important;
  position: relative;
  font-weight: 400;
  display: block;
}
.subway-station-connecting-buses .connecting-buses-route-schedule-url a::after {
  content: "";
  position: absolute;
  margin-left: 8px;
  height: 20px;
  width: 20px;
  bottom: 3px;
  background-image: url("/-/media/Project/TTC/DevProto/Icons/arrow-background-right-outline.svg");
  background-size: cover;
}
.subway-station-connecting-buses .connecting-buses-route-schedule-url a:hover, .subway-station-connecting-buses .connecting-buses-route-schedule-url a:focus {
  text-decoration: underline;
}

.connecting-info {
  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: 400;
  padding-top: 15px;
  margin-bottom: 40px;
}
@media ( min-width: 768px ) {
  .connecting-info {
    font-size: 1.6rem;
    line-height: 16px;
  }
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFic3RyYWN0cy9mdW5jdGlvbnMvX2NvbG9yLnNjc3MiLCJhYnN0cmFjdHMvdmFycy9fdHlwZS5zY3NzIiwiY29tcG9uZW50LXN1YndheS1jb25uZWN0aW5nLWxpbmUuY3NzIiwiYWJzdHJhY3RzL19taXhpbnMuc2NzcyIsImNvbXBvbmVudC1zdWJ3YXktY29ubmVjdGluZy1saW5lLnNjc3MiLCJjb21tb24tdWkvdHlwb2dyYXBoeS9fbWl4aW5zLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvaW90YWNzcy9tb2R1bGVzL2lvdGFjc3MtdG9vbHMtY29yZS91dGlsaXRpZXMvX2V4dHJhY3QtdHlwZS1zaXplcy5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2lvdGFjc3MvbW9kdWxlcy9pb3RhY3NzLXRvb2xzLWNvcmUvbGlicmFyaWVzL19nZW5lcmF0ZS10eXBlLXNpemVzLnNjc3MiLCJhYnN0cmFjdHMvbWl4aW5zL19zYXNzLW1xLW1vZC5zY3NzIiwiYWJzdHJhY3RzL21peGlucy9fbGluay5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0VBQUE7QUNrUUU7RUFDRSxnQkFBQTtBQzVQSjs7QUQyUEU7RUFDRSxnQkFBQTtBQ3hQSjs7QUR1UEU7RUFDRSxnQkFBQTtBQ3BQSjs7QURtUEU7RUFDRSxnQkFBQTtBQ2hQSjs7QUNOQSxnQkFBQTtBQ1RFOztFQ0FBLHdDQUFBO0VBQ0Esa0NBQUE7RUFDQSxtQ0FBQTtFQ0hFLGlCQUFBO0VBQ0EsaUJBQUE7RURrQkUsa0JBQUE7RUFBQSxnQkFBQTtBSFNOO0FLakJRO0VIVk47O0lFREUsaUJBQUE7SUFDQSxpQkFBQTtFSmlDRjtBQUNGOztBRTdCQTtFQUNFLG1CQUFBO0FGZ0NGO0FFOUJFO0VBQ0Usb0JBQUE7RUFBQSxhQUFBO0VBQ0EseUJBQUE7VUFBQSw4QkFBQTtFQUNBLGdDQUFBO0VBQ0EsZUFBQTtBRmdDSjtBTW1MUTtFSnZOTjtJQU9JLGVBQUE7RUZpQ0o7QUFDRjtBRS9CSTs7RUFFRSxvQkFBQTtFQUFBLGFBQUE7QUZpQ047QUU5Qkk7RUFDRSxVQUFBO0FGZ0NOO0FNdUtRO0VKeE1KO0lBSUksV0FBQTtFRmlDTjtFRS9CTTtJQUNFLG1CQUFBO0VGaUNSO0FBQ0Y7QUU3Qkk7RUFDRSxZQUFBO0VBQ0EsbUJBQUE7RUFDQSxpQkFBQTtFQUNBLGVBQUE7QUYrQk47QUU1Qkk7Ozs7OztFQU1FLCtDQUFBO0VBQ0EsWUFBQTtFQUNBLFdBQUE7RUFDQSxpQkFBQTtFQUNBLG1CQUFBO0VBQ0EsY0FBQTtFQUNBLGtCQUFBO0VBQ0EscUJBQUE7QUY4Qk47QUUzQkk7RUFDRSxtQkFBQTtFQUNBLFdBQUE7QUY2Qk47QUUxQkk7RUFDRSxtQkFBQTtBRjRCTjtBRXpCSTtFQUNFLG1CQUFBO0FGMkJOO0FFeEJJO0VBQ0UsbUJBQUE7QUYwQk47QUV2Qkk7RUFDRSxtQkFBQTtBRnlCTjtBRXRCSTtFQUNFLG1CQUFBO0FGd0JOO0FFcEJFO0VDcEZBLHdDQUFBO0VBQ0Esa0NBQUE7RUFDQSxtQ0FBQTtFQ0hFLGlCQUFBO0VBQ0EsaUJBQUE7RURrQkUsa0JBQUE7RUFBQSxnQkFBQTtFRG9FRixpQkFBQTtBRjRCSjtBS3hHUTtFSDBFTjtJRXJGRSxlQUFBO0lBQ0EsaUJBQUE7RUp1SEY7QUFDRjtBRS9CRTtFQ3pGQSx3Q0FBQTtFQUNBLGtDQUFBO0VBQ0EsbUNBQUE7RUNIRSxpQkFBQTtFQUNBLGlCQUFBO0VEa0JFLGtCQUFBO0VBQUEsZ0JBQUE7QUgrR047QUt2SFE7RUgrRU47SUUxRkUsZUFBQTtJQUNBLGlCQUFBO0VKc0lGO0FBQ0Y7QUUxQ0U7RUM3RkEsd0NBQUE7RUFDQSxrQ0FBQTtFQUNBLG1DQUFBO0VDSEUsaUJBQUE7RUFDQSxpQkFBQTtFRGtCRSxrQkFBQTtFQUFBLGdCQUFBO0VJc0JKLGNBQUE7RUFDQSxnQ0FBQTtFQUNBLGtCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxjQUFBO0VMbURFLGVBQUE7QUZ1REo7QU94R0U7RUFDRSxXQUFBO0VBQ0Esa0JBQUE7RUFDQSxnQkFBQTtFQUNBLFlBQUE7RUFDQSxXQUFBO0VBQ0EsV0FBQTtFQUNBLCtGQUFBO0VBQ0Esc0JBQUE7QVAwR0o7QU92R0U7RUFDRSwwQkFBQTtBUHlHSjs7QUUvREU7RUFDRSxvQkFBQTtBRmtFSjtBRS9ERTtFQUNFLG9CQUFBO0VBQUEsYUFBQTtFQUNBLGdDQUFBO0VBQ0EseUJBQUE7QUZpRUo7QU1tRFE7RUp2SE47SUFNSSxjQUFBO0VGa0VKO0FBQ0Y7QUUvREU7RUFDRSxvQkFBQTtFQUFBLGFBQUE7QUZpRUo7QUU5REU7RUFDRSwrQ0FBQTtFQUNBLG1CQUFBO0VBQ0EsZUFBQTtFQUNBLGtCQUFBO0VBQ0EsZUFBQTtFQUNBLFdBQUE7RUFDQSxrQkFBQTtFQUNBLGNBQUE7RUFDQSxtQkFBQTtFQUNBLGlCQUFBO0VBQ0EsNkJBQUE7RUFDQSxnQkFBQTtFQUNBLGlCQUFBO0FGZ0VKO0FFOURJO0VBQ0Usc0JBQUE7RUFDQSxxQkFBQTtFQUNBLGtCQUFBO0VBQ0EsY0FBQTtFQUNBLGtCQUFBO0VBQ0EsZUFBQTtFQUNBLDBCQUFBO0VBQ0E7Ozs7Ozs7OztJQUFBO0FGeUVOO0FFN0RJO0VBQ0UsbUJBQUE7QUYrRE47QUU1REk7RUFDRSxzQkFBQTtFQUNBLHFCQUFBO0VBQ0EsY0FBQTtBRjhETjtBRTNESTtFQUNFLHNCQUFBO0VBQ0EscUJBQUE7RUFDQSxjQUFBO0FGNkROO0FFMURJO0VBQ0UsaUNBQUE7RUFDQSxrQkFBQTtFQUNBLFdBQUE7QUY0RE47QUV6REk7RUFDRSxzQkFBQTtFQUNBLHFCQUFBO0VBQ0EsY0FBQTtBRjJETjtBRXhESTtFQUNFLGtCQUFBO0VBQ0Esb0JBQUE7RUFDQSw2QkFBQTtFQUNBLDZFQUFBO0VBQ0EsNEJBQUE7RUFDQSx5QkFBQTtFQUNBLDJCQUFBO0VBQ0Esd0JBQUE7QUYwRE47QUV2REk7RUFDRSxrQkFBQTtFQUNBLG9CQUFBO0VBQ0EsNkJBQUE7RUFDQSw2RUFBQTtFQUNBLDRCQUFBO0VBQ0EseUJBQUE7RUFDQSwyQkFBQTtFQUNBLHdCQUFBO0FGeUROO0FFckRFO0VBQ0UsaUJBQUE7QUZ1REo7QU1yQ1E7RUpuQk47SUFJSSxhQUFBO0lBQ0Esa0JBQUE7RUZ3REo7QUFDRjtBRXRESTtFQ3BORix3Q0FBQTtFQUNBLGtDQUFBO0VBQ0EsbUNBQUE7RUNIRSxpQkFBQTtFQUNBLGlCQUFBO0VEa0JFLGtCQUFBO0VBQUEsZ0JBQUE7RUlzQkosY0FBQTtFQUNBLGdDQUFBO0VBQ0Esa0JBQUE7RUFDQSxnQkFBQTtFQUNBLGNBQUE7QVA0T0Y7QU8xT0U7RUFDRSxXQUFBO0VBQ0Esa0JBQUE7RUFDQSxnQkFBQTtFQUNBLFlBQUE7RUFDQSxXQUFBO0VBQ0EsV0FBQTtFQUNBLCtGQUFBO0VBQ0Esc0JBQUE7QVA0T0o7QU96T0U7RUFDRSwwQkFBQTtBUDJPSjs7QUUzRUE7RUMxTkUsd0NBQUE7RUFDQSxrQ0FBQTtFQUNBLG1DQUFBO0VDSEUsaUJBQUE7RUFDQSxpQkFBQTtFRGtCRSxrQkFBQTtFQUFBLGdCQUFBO0VEME1KLGlCQUFBO0VBQ0EsbUJBQUE7QUZvRkY7QUt2U1E7RUhnTlI7SUUzTkksaUJBQUE7SUFDQSxpQkFBQTtFSnNURjtBQUNGIiwiZmlsZSI6ImNvbXBvbmVudC1zdWJ3YXktY29ubmVjdGluZy1saW5lLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBVc2FnZTpcclxuICpcclxuICogICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvcih3aGl0ZSk7XHJcbiAqL1xyXG4kY29sb3JzOiAoKSAhZGVmYXVsdDtcclxuJGZ1bmN0aW9uYWwtY29sb3JzOiAoKSAhZGVmYXVsdDtcclxuXHJcbkBmdW5jdGlvbiBjb2xvcigkY29sb3IpIHtcclxuICBAaWYgbWFwLWdldCgkY29sb3JzLCAkY29sb3IpIHtcclxuICAgIEByZXR1cm4gbWFwLWdldCgkY29sb3JzLCAkY29sb3IpO1xyXG4gIH0gQGVsc2UgaWYgbWFwLWdldCgkZnVuY3Rpb25hbC1jb2xvcnMsICRjb2xvcikge1xyXG4gICAgQHJldHVybiBtYXAtZ2V0KCRmdW5jdGlvbmFsLWNvbG9ycywgJGNvbG9yKTtcclxuICB9IEBlbHNlIHtcclxuICAgIC8qIFN0eWxlZm10IGNoYW5nZXMgdGhlIHF1b3RlcyBldmVyeSB0aW1lLCBzbyB0dXJuaW5nIG9mZiB0aGUgZXJyb3IgaGVyZSAqL1xyXG4gICAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHN0cmluZy1xdW90ZXMgKi9cclxuICAgIEBlcnJvciBcIkNvbG9yIFxcXCIjeyRjb2xvcn1cXFwiY291bGQgbm90IGJlIGZvdW5kXCI7XHJcbiAgfVxyXG59XHJcbiIsIiR1aS10eXBvZ3JhcGh5LXN0YWNrLWRlZmF1bHQ6IFZlcmRhbmEsIFRhaG9tYSwgc2Fucy1zZXJpZiAhZGVmYXVsdDtcclxuXHJcbiR1aS10eXBvZ3JhcGh5LXN0YWNrLWhlYWRpbmdzOiBWZXJkYW5hLCBUYWhvbWEsIHNhbnMtc2VyaWYgIWRlZmF1bHQ7XHJcblxyXG4kdWktdHlwb2dyYXBoeS1mb250LXdlaWdodHM6IChcclxuICAvLyB0aGluOiAxMDAsXHJcbiAgbGlnaHQ6IDMwMCxcclxuICByZWd1bGFyOiA0MDAsXHJcbiAgbWVkaXVtOiA1MDAsXHJcbiAgYm9sZDogNzAwLFxyXG4gIC8vIGJsYWNrOiA5MDBcclxuKSAhZGVmYXVsdDtcclxuXHJcbiR1aS10eXBvZ3JhcGh5LWRlZmF1bHQ6IChcclxuICBmb250LWZhbWlseTogJHVpLXR5cG9ncmFwaHktc3RhY2stZGVmYXVsdCxcclxuICBmb250LXN0eWxlOiBub3JtYWwsXHJcbiAgZm9udC13ZWlnaHQ6IG1hcC1nZXQoJHVpLXR5cG9ncmFwaHktZm9udC13ZWlnaHRzLCBtZWRpdW0pLFxyXG4gIG1hcmdpbjogMCxcclxuKSAhZGVmYXVsdDtcclxuXHJcblxyXG4kdWktdHlwb2dyYXBoeS1zdHlsZXM6IChcclxuICAvL2hvbWVwYWdlIGhlYWRlclxyXG4gIGQ2LWxoLWxnOiAoXHJcbiAgICBzaXplczogKFxyXG4gICAgICBudWxsOiAoZ2V0LXJlbSgzMnB4KSwgNDBweCksXHJcbiAgICAgIG1kOiAoZ2V0LXJlbSg2MXB4KSwgNzZweCksXHJcbiAgICApLFxyXG4gICAgZm9udC1mYW1pbHk6ICR1aS10eXBvZ3JhcGh5LXN0YWNrLWhlYWRpbmdzLFxyXG4gICAgZm9udC13ZWlnaHQ6IG1hcC1nZXQoJHVpLXR5cG9ncmFwaHktZm9udC13ZWlnaHRzLCBib2xkKSxcclxuICAgIG1hcmdpbjogMCAwIHNwYWNlKCkgMCxcclxuICApLFxyXG4gIGQ2OiAoXHJcbiAgICBzaXplczogKFxyXG4gICAgICBudWxsOiAoZ2V0LXJlbSgzMnB4KSwgNDBweCksXHJcbiAgICAgIG1kOiAoZ2V0LXJlbSg1MHB4KSwgNTZweCksXHJcbiAgICApLFxyXG4gICAgZm9udC1mYW1pbHk6ICR1aS10eXBvZ3JhcGh5LXN0YWNrLWhlYWRpbmdzLFxyXG4gICAgZm9udC13ZWlnaHQ6IG1hcC1nZXQoJHVpLXR5cG9ncmFwaHktZm9udC13ZWlnaHRzLCBib2xkKSxcclxuICAgIG1hcmdpbjogMCAwIHNwYWNlKCkgMCxcclxuICApLFxyXG4gIGQ1OiAoXHJcbiAgICBzaXplczogKFxyXG4gICAgICBudWxsOiAoZ2V0LXJlbSgyOXB4KSwgMzZweCksXHJcbiAgICAgIG1kOiAoZ2V0LXJlbSg0MXB4KSwgNDRweCksXHJcbiAgICApLFxyXG4gICAgZm9udC1mYW1pbHk6ICR1aS10eXBvZ3JhcGh5LXN0YWNrLWhlYWRpbmdzLFxyXG4gICAgZm9udC13ZWlnaHQ6IG1hcC1nZXQoJHVpLXR5cG9ncmFwaHktZm9udC13ZWlnaHRzLCBib2xkKSxcclxuICAgIG1hcmdpbjogMCAwIHNwYWNlKCkgMCxcclxuICApLFxyXG4gIGQ1LWxpZ2h0OiAoXHJcbiAgICBzaXplczogKFxyXG4gICAgICBudWxsOiAoZ2V0LXJlbSgyOXB4KSwgMzZweCksXHJcbiAgICAgIG1kOiAoZ2V0LXJlbSg0MXB4KSwgNDRweCksXHJcbiAgICApLFxyXG4gICAgZm9udC1mYW1pbHk6ICR1aS10eXBvZ3JhcGh5LXN0YWNrLWhlYWRpbmdzLFxyXG4gICAgZm9udC13ZWlnaHQ6IG1hcC1nZXQoJHVpLXR5cG9ncmFwaHktZm9udC13ZWlnaHRzLGxpZ2h0KSxcclxuICAgIG1hcmdpbjogMCAwIHNwYWNlKCkgMCxcclxuICApLFxyXG4gIGQ0OiAoXHJcbiAgICBzaXplczogKFxyXG4gICAgICBudWxsOiAoZ2V0LXJlbSgyNnB4KSwgMzJweCksXHJcbiAgICAgIG1kOiAoZ2V0LXJlbSgzNHB4KSwgNDBweCksXHJcbiAgICApLFxyXG4gICAgZm9udC1mYW1pbHk6ICR1aS10eXBvZ3JhcGh5LXN0YWNrLWhlYWRpbmdzLFxyXG4gICAgZm9udC13ZWlnaHQ6IG1hcC1nZXQoJHVpLXR5cG9ncmFwaHktZm9udC13ZWlnaHRzLCBib2xkKSxcclxuICAgIG1hcmdpbjogMCAwIHNwYWNlKCkgMCxcclxuICApLFxyXG4gIGQzOiAoXHJcbiAgICBzaXplczogKFxyXG4gICAgICBudWxsOiAoZ2V0LXJlbSgyM3B4KSwgMjhweCksXHJcbiAgICAgIG1kOiAoZ2V0LXJlbSgyOHB4KSwgMzZweCksXHJcbiAgICApLFxyXG4gICAgZm9udC1mYW1pbHk6ICR1aS10eXBvZ3JhcGh5LXN0YWNrLWhlYWRpbmdzLFxyXG4gICAgZm9udC13ZWlnaHQ6IG1hcC1nZXQoJHVpLXR5cG9ncmFwaHktZm9udC13ZWlnaHRzLCBib2xkKSxcclxuICAgIG1hcmdpbjogMCAwIHNwYWNlKCkgMCxcclxuICApLFxyXG4gIGQyOiAoXHJcbiAgICBzaXplczogKFxyXG4gICAgICBudWxsOiAoZ2V0LXJlbSgyMXB4KSwgMjhweCksXHJcbiAgICAgIG1kOiAoZ2V0LXJlbSgyNHB4KSwgMzBweCksXHJcbiAgICApLFxyXG4gICAgZm9udC1mYW1pbHk6ICR1aS10eXBvZ3JhcGh5LXN0YWNrLWhlYWRpbmdzLFxyXG4gICAgZm9udC13ZWlnaHQ6IG1hcC1nZXQoJHVpLXR5cG9ncmFwaHktZm9udC13ZWlnaHRzLCBib2xkKSxcclxuICAgIG1hcmdpbjogMCAwIHNwYWNlKCkgMCxcclxuICApLFxyXG4gIGQxOiAoXHJcbiAgICBzaXplczogKFxyXG4gICAgICBudWxsOiAoZ2V0LXJlbSgxOHB4KSwgMjRweCksXHJcbiAgICAgIG1kOiAoZ2V0LXJlbSgyMHB4KSwgMjRweCksXHJcbiAgICApLFxyXG4gICAgZm9udC1mYW1pbHk6ICR1aS10eXBvZ3JhcGh5LXN0YWNrLWhlYWRpbmdzLFxyXG4gICAgZm9udC13ZWlnaHQ6IG1hcC1nZXQoJHVpLXR5cG9ncmFwaHktZm9udC13ZWlnaHRzLCBib2xkKSxcclxuICAgIG1hcmdpbjogMCAwIHNwYWNlKCkgMCxcclxuICApLFxyXG4gIGgyc3o6IChcclxuICAgIHNpemVzOiAyLjlyZW0sXHJcbiAgICBmb250LWZhbWlseTogJHVpLXR5cG9ncmFwaHktc3RhY2staGVhZGluZ3MsXHJcbiAgICBmb250LXdlaWdodDogbWFwLWdldCgkdWktdHlwb2dyYXBoeS1mb250LXdlaWdodHMsIGJvbGQpLFxyXG4gICAgbWFyZ2luOiAwIDAgc3BhY2UoKSAwLFxyXG4gICksXHJcbiAgaDNzejogKFxyXG4gICAgc2l6ZXM6IDIuMnJlbSxcclxuICAgIGZvbnQtZmFtaWx5OiAkdWktdHlwb2dyYXBoeS1zdGFjay1oZWFkaW5ncyxcclxuICAgIGZvbnQtd2VpZ2h0OiBtYXAtZ2V0KCR1aS10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0cywgYm9sZCksXHJcbiAgICBtYXJnaW46IDAgMCBzcGFjZSgpIDAsXHJcbiAgKSxcclxuXHJcbiAgaDRzejogKFxyXG4gICAgc2l6ZXM6IDEuN3JlbSxcclxuICAgIGZvbnQtZmFtaWx5OiAkdWktdHlwb2dyYXBoeS1zdGFjay1oZWFkaW5ncyxcclxuICAgIGZvbnQtd2VpZ2h0OiBtYXAtZ2V0KCR1aS10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0cywgYm9sZCksXHJcbiAgICBtYXJnaW46IDAgMCBzcGFjZSgpIDAsXHJcbiAgKSxcclxuICBoNXN6OiAoXHJcbiAgICBzaXplczogMi40cmVtLFxyXG4gICAgZm9udC1mYW1pbHk6ICR1aS10eXBvZ3JhcGh5LXN0YWNrLWhlYWRpbmdzLFxyXG4gICAgZm9udC13ZWlnaHQ6IG1hcC1nZXQoJHVpLXR5cG9ncmFwaHktZm9udC13ZWlnaHRzLCBib2xkKSxcclxuICAgIG1hcmdpbjogMCAwIHNwYWNlKCkgMCxcclxuICApLFxyXG4gIGxlYWQ6IChcclxuICAgIHNpemVzOiAoXHJcbiAgICAgIG51bGw6IChnZXQtcmVtKDIycHgpLCAzMnB4KSxcclxuICAgICAgbWQ6IChnZXQtcmVtKDI0cHgpLCAzNnB4KSxcclxuICAgICksXHJcbiAgICBmb250LWZhbWlseTogJHVpLXR5cG9ncmFwaHktc3RhY2staGVhZGluZ3MsXHJcbiAgICBmb250LXdlaWdodDogbWFwLWdldCgkdWktdHlwb2dyYXBoeS1mb250LXdlaWdodHMsIHJlZ3VsYXIpLFxyXG4gICAgZm9udC1zdHlsZTogaXRhbGljLFxyXG4gICAgbWFyZ2luOiAwIDAgc3BhY2UoKSAwLFxyXG4gICksXHJcbiAgZC1zbWFsbDogKFxyXG4gICAgc2l6ZXM6IChcclxuICAgICAgbnVsbDogKGdldC1yZW0oMThweCksIDI4cHgpLFxyXG4gICAgICBtZDogKGdldC1yZW0oMTZweCksIDI0cHgpLFxyXG4gICAgKSxcclxuICAgIGZvbnQtZmFtaWx5OiAkdWktdHlwb2dyYXBoeS1zdGFjay1oZWFkaW5ncyxcclxuICAgIGZvbnQtd2VpZ2h0OiBtYXAtZ2V0KCR1aS10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0cywgYm9sZCksXHJcbiAgKSxcclxuICBkLXhzbWFsbDogKFxyXG4gICAgc2l6ZXM6IChcclxuICAgICAgbnVsbDogKGdldC1yZW0oMTZweCksIDI0cHgpLFxyXG4gICAgICBtZDogKGdldC1yZW0oMTZweCksIDE2cHgpLFxyXG4gICAgKSxcclxuICAgIGZvbnQtd2VpZ2h0OiBtYXAtZ2V0KCR1aS10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0cywgcmVndWxhciksXHJcbiAgKSxcclxuICBib2R5OiAoXHJcbiAgICBzaXplczogKFxyXG4gICAgICBudWxsOiAoZ2V0LXJlbSgxOHB4KSwgMjhweCksXHJcbiAgICAgIG1kOiAoZ2V0LXJlbSgyMHB4KSwgMzJweCksXHJcbiAgICApLFxyXG4gICAgZm9udC13ZWlnaHQ6IG1hcC1nZXQoJHVpLXR5cG9ncmFwaHktZm9udC13ZWlnaHRzLCBsaWdodCksXHJcbiAgKSxcclxuICBib2R5MjogKFxyXG4gICAgc2l6ZXM6IChcclxuICAgICAgbnVsbDogKGdldC1yZW0oMThweCksIDI4cHgpLFxyXG4gICAgICBtZDogKGdldC1yZW0oMjBweCksIDMycHgpLFxyXG4gICAgKSxcclxuICAgIGZvbnQtd2VpZ2h0OiBtYXAtZ2V0KCR1aS10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0cywgbWVkaXVtKSxcclxuICApLFxyXG4gIGxpbms6IChcclxuICAgIHNpemVzOiAoXHJcbiAgICAgIG51bGw6IChnZXQtcmVtKDE4cHgpLCAyOHB4KSxcclxuICAgICAgbWQ6IChnZXQtcmVtKDIwcHgpLCAzMnB4KSxcclxuICAgICksXHJcbiAgICBmb250LXdlaWdodDogbWFwLWdldCgkdWktdHlwb2dyYXBoeS1mb250LXdlaWdodHMsIHJlZ3VsYXIpLFxyXG4gICksXHJcbiAgZGF0ZTogKFxyXG4gICAgc2l6ZXM6IChcclxuICAgICAgbnVsbDogKGdldC1yZW0oMTZweCksIDIwcHgpLFxyXG4gICAgICBtZDogKGdldC1yZW0oMTZweCksIDI0cHgpLFxyXG4gICAgKSxcclxuICAgIGZvbnQtd2VpZ2h0OiBtYXAtZ2V0KCR1aS10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0cywgcmVndWxhciksXHJcbiAgKSxcclxuICBoZWFkZXI6IChcclxuICAgIHNpemVzOiAoXHJcbiAgICAgIG51bGw6IChnZXQtcmVtKDE2cHgpLCAyMHB4KSxcclxuICAgICAgbWQ6IChnZXQtcmVtKDIwcHgpLCAzMnB4KSxcclxuICAgICksXHJcbiAgICBmb250LXdlaWdodDogbWFwLWdldCgkdWktdHlwb2dyYXBoeS1mb250LXdlaWdodHMsIG1lZGl1bSksXHJcbiAgKSxcclxuICBzdWJoZWFkZXI6IChcclxuICAgIHNpemVzOiAoXHJcbiAgICAgIG51bGw6IChnZXQtcmVtKDE4cHgpLCAyOHB4KSxcclxuICAgICAgbWQ6IChnZXQtcmVtKDIwcHgpLCAzMnB4KSxcclxuICAgICksXHJcbiAgICBmb250LXdlaWdodDogbWFwLWdldCgkdWktdHlwb2dyYXBoeS1mb250LXdlaWdodHMsIG1lZGl1bSksXHJcbiAgKSxcclxuICBzaXRlLXNlYXJjaDogKFxyXG4gICAgc2l6ZXM6IChcclxuICAgICAgbnVsbDogKGdldC1yZW0oMjBweCksIDMycHgpLFxyXG4gICAgICBzbTogKGdldC1yZW0oMTZweCksIDI0cHgpLFxyXG4gICAgKSxcclxuICAgIGZvbnQtd2VpZ2h0OiBtYXAtZ2V0KCR1aS10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0cywgcmVndWxhciksXHJcbiAgKSxcclxuICBpbnB1dDogKFxyXG4gICAgc2l6ZXM6IChcclxuICAgICAgbnVsbDogKGdldC1yZW0oMThweCksIDI4cHgpLFxyXG4gICAgICBtZDogKGdldC1yZW0oMTZweCksIDI0cHgpLFxyXG4gICAgKSxcclxuICAgIGZvbnQtd2VpZ2h0OiBtYXAtZ2V0KCR1aS10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0cywgcmVndWxhciksXHJcbiAgKSxcclxuICBicmVhZGNydW1iOiAoXHJcbiAgICBzaXplczogIChnZXQtcmVtKDE2cHgpLCAyNHB4KSxcclxuICAgIGZvbnQtd2VpZ2h0OiBtYXAtZ2V0KCR1aS10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0cywgcmVndWxhciksXHJcbiAgKSxcclxuICBmZWF0dXJlZDogKFxyXG4gICAgc2l6ZXM6ICAoZ2V0LXJlbSgxOHB4KSwgMjhweCksXHJcbiAgKSxcclxuICBjb3B5cmlnaHQ6IChcclxuICAgIHNpemVzOiAoXHJcbiAgICAgIG51bGw6IChnZXQtcmVtKDE0cHgpLCAyOHB4KSxcclxuICAgICAgbWQ6IChnZXQtcmVtKDEzcHgpLCAyNHB4KSxcclxuICAgICksXHJcbiAgICBmb250LXdlaWdodDogbWFwLWdldCgkdWktdHlwb2dyYXBoeS1mb250LXdlaWdodHMsIHJlZ3VsYXIpLFxyXG4gICksXHJcbiAgY2FwdGlvbjogKFxyXG4gICAgc2l6ZXM6IChnZXQtcmVtKDE2cHgpLCAyNHB4KSxcclxuICApLFxyXG4gIGZvcm0tbGFiZWw6IChcclxuICAgIHNpemVzOiAoXHJcbiAgICAgIG51bGw6IChnZXQtcmVtKDE4cHgpLCAyOHB4KSxcclxuICAgICAgbWQ6IChnZXQtcmVtKDE2cHgpLCAyNHB4KSxcclxuICAgICksXHJcbiAgICBmb250LXdlaWdodDogbWFwLWdldCgkdWktdHlwb2dyYXBoeS1mb250LXdlaWdodHMsIG1lZGl1bSksXHJcbiAgKSxcclxuICBmb3JtLWhlbHBlcjogKFxyXG4gICAgc2l6ZXM6IChcclxuICAgICAgbnVsbDogKGdldC1yZW0oMThweCksIDI4cHgpLFxyXG4gICAgICBtZDogKGdldC1yZW0oMTZweCksIDI0cHgpLFxyXG4gICAgKSxcclxuICAgIGZvbnQtd2VpZ2h0OiBtYXAtZ2V0KCR1aS10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0cywgcmVndWxhciksXHJcbiAgKSxcclxuICBwZGY6IChcclxuICAgIHNpemVzOiAoZ2V0LXJlbSgxNnB4KSwgMjRweCksXHJcbiAgICBmb250LXdlaWdodDogbWFwLWdldCgkdWktdHlwb2dyYXBoeS1mb250LXdlaWdodHMsIGxpZ2h0KSxcclxuICApLFxyXG4gIG1hcC1yZXN1bHRzOiAoXHJcbiAgICBzaXplczogKGdldC1yZW0oMTZweCksIDIwcHgpLFxyXG4gICAgZm9udC13ZWlnaHQ6IG1hcC1nZXQoJHVpLXR5cG9ncmFwaHktZm9udC13ZWlnaHRzLCBsaWdodCksXHJcbiAgKSxcclxuICBiZXRhLW5vdGljZTogKFxyXG4gICAgc2l6ZXM6IChnZXQtcmVtKDE2cHgpLCAyNHB4KSxcclxuICAgIGZvbnQtd2VpZ2h0OiBtYXAtZ2V0KCR1aS10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0cywgbWVkaXVtKSxcclxuICApLFxyXG4gIHNpdGUtd2lkZS1hbGVydDogKFxyXG4gICAgc2l6ZXM6IChnZXQtcmVtKDE2cHgpLCAyNHB4KSxcclxuICAgIGZvbnQtd2VpZ2h0OiBtYXAtZ2V0KCR1aS10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0cywgbWVkaXVtKSxcclxuICApLFxyXG4pICFkZWZhdWx0O1xyXG5cclxuXHJcbkBlYWNoICRuYW1lLCAkc3R5bGUgaW4gJHVpLXR5cG9ncmFwaHktc3R5bGVzIHtcclxuICAkdWktdHlwb2dyYXBoeS1zdHlsZXM6IG1hcC1tZXJnZSgkdWktdHlwb2dyYXBoeS1zdHlsZXMsIChcclxuICAgICN7JG5hbWV9OiBtYXAtbWVyZ2UoJHVpLXR5cG9ncmFwaHktZGVmYXVsdCwgJHN0eWxlKVxyXG4gICkpO1xyXG59XHJcblxyXG5AZWFjaCAkbmFtZSwgJHN0eWxlIGluICR1aS10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0cyB7XHJcbiAgLnUtdHlwZS0tI3skbmFtZX0ge1xyXG4gICAgZm9udC13ZWlnaHQ6ICN7JHN0eWxlfTtcclxuICB9XHJcbn1cclxuXHJcblxyXG5cclxuXHJcblxyXG4iLCIvKipcbiAqIFVzYWdlOlxuICpcbiAqICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3Iod2hpdGUpO1xuICovXG4udS10eXBlLS1saWdodCB7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG59XG5cbi51LXR5cGUtLXJlZ3VsYXIge1xuICBmb250LXdlaWdodDogNDAwO1xufVxuXG4udS10eXBlLS1tZWRpdW0ge1xuICBmb250LXdlaWdodDogNTAwO1xufVxuXG4udS10eXBlLS1ib2xkIHtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cblxuLyogYnJlYWtwb2ludHMgKi9cbi5zdWJ3YXktc3RhdGlvbi1jb25uZWN0aW5nLWxpbmUgaDMsXG4uc3Vid2F5LXN0YXRpb24tY29ubmVjdGluZy1idXNlcyBoMyB7XG4gIGZvbnQtZmFtaWx5OiBWZXJkYW5hLCBUYWhvbWEsIHNhbnMtc2VyaWY7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBmb250LXNpemU6IDIuNnJlbTtcbiAgbGluZS1oZWlnaHQ6IDMycHg7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cbkBtZWRpYSAoIG1pbi13aWR0aDogNzY4cHggKSB7XG4gIC5zdWJ3YXktc3RhdGlvbi1jb25uZWN0aW5nLWxpbmUgaDMsXG4gIC5zdWJ3YXktc3RhdGlvbi1jb25uZWN0aW5nLWJ1c2VzIGgzIHtcbiAgICBmb250LXNpemU6IDMuNHJlbTtcbiAgICBsaW5lLWhlaWdodDogNDBweDtcbiAgfVxufVxuXG4uc3Vid2F5LXN0YXRpb24tY29ubmVjdGluZy1saW5lIHtcbiAgbWFyZ2luLWJvdHRvbTogNTBweDtcbn1cbi5zdWJ3YXktc3RhdGlvbi1jb25uZWN0aW5nLWxpbmUgLmNvbm5lY3RpbmctbGluZS13cmFwcGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzc2NzY3NjtcbiAgcGFkZGluZzogNDBweCAwO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDYzOXB4KSB7XG4gIC5zdWJ3YXktc3RhdGlvbi1jb25uZWN0aW5nLWxpbmUgLmNvbm5lY3RpbmctbGluZS13cmFwcGVyIHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gIH1cbn1cbi5zdWJ3YXktc3RhdGlvbi1jb25uZWN0aW5nLWxpbmUgLmNvbm5lY3RpbmctbGluZS13cmFwcGVyIC5jb25uZWN0aW5nLWxpbmUtbGVmdCxcbi5zdWJ3YXktc3RhdGlvbi1jb25uZWN0aW5nLWxpbmUgLmNvbm5lY3RpbmctbGluZS13cmFwcGVyIC5jb25uZWN0aW5nLWxpbmUtcmlnaHQge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuLnN1YndheS1zdGF0aW9uLWNvbm5lY3RpbmctbGluZSAuY29ubmVjdGluZy1saW5lLXdyYXBwZXIgLmNvbm5lY3RpbmctbGluZSB7XG4gIHdpZHRoOiA1MCU7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNjM5cHgpIHtcbiAgLnN1YndheS1zdGF0aW9uLWNvbm5lY3RpbmctbGluZSAuY29ubmVjdGluZy1saW5lLXdyYXBwZXIgLmNvbm5lY3RpbmctbGluZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgLnN1YndheS1zdGF0aW9uLWNvbm5lY3RpbmctbGluZSAuY29ubmVjdGluZy1saW5lLXdyYXBwZXIgLmNvbm5lY3RpbmctbGluZTpmaXJzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMzBweDtcbiAgfVxufVxuLnN1YndheS1zdGF0aW9uLWNvbm5lY3RpbmctbGluZSAuY29ubmVjdGluZy1saW5lLXdyYXBwZXIgLndyYXBwZXItbGluZS1pZCB7XG4gIGhlaWdodDogMTAwJTtcbiAgcGFkZGluZy1yaWdodDogMjBweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc2l6ZTogMjRweDtcbn1cbi5zdWJ3YXktc3RhdGlvbi1jb25uZWN0aW5nLWxpbmUgLmNvbm5lY3RpbmctbGluZS13cmFwcGVyIC5saW5lLTEsXG4uc3Vid2F5LXN0YXRpb24tY29ubmVjdGluZy1saW5lIC5jb25uZWN0aW5nLWxpbmUtd3JhcHBlciAubGluZS0yLFxuLnN1YndheS1zdGF0aW9uLWNvbm5lY3RpbmctbGluZSAuY29ubmVjdGluZy1saW5lLXdyYXBwZXIgLmxpbmUtMyxcbi5zdWJ3YXktc3RhdGlvbi1jb25uZWN0aW5nLWxpbmUgLmNvbm5lY3RpbmctbGluZS13cmFwcGVyIC5saW5lLTQsXG4uc3Vid2F5LXN0YXRpb24tY29ubmVjdGluZy1saW5lIC5jb25uZWN0aW5nLWxpbmUtd3JhcHBlciAubGluZS01LFxuLnN1YndheS1zdGF0aW9uLWNvbm5lY3RpbmctbGluZSAuY29ubmVjdGluZy1saW5lLXdyYXBwZXIgLmxpbmUtNiB7XG4gIGZvbnQtZmFtaWx5OiBcIlN3aXNzIDcyMSBXMDFcIiwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIGhlaWdodDogMzJweDtcbiAgd2lkdGg6IDMycHg7XG4gIGxpbmUtaGVpZ2h0OiAzMnB4O1xuICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG4uc3Vid2F5LXN0YXRpb24tY29ubmVjdGluZy1saW5lIC5jb25uZWN0aW5nLWxpbmUtd3JhcHBlciAubGluZS0xIHtcbiAgYmFja2dyb3VuZDogI2Y4YzMwMDtcbiAgY29sb3I6ICMwMDA7XG59XG4uc3Vid2F5LXN0YXRpb24tY29ubmVjdGluZy1saW5lIC5jb25uZWN0aW5nLWxpbmUtd3JhcHBlciAubGluZS0yIHtcbiAgYmFja2dyb3VuZDogIzAwOTIzZjtcbn1cbi5zdWJ3YXktc3RhdGlvbi1jb25uZWN0aW5nLWxpbmUgLmNvbm5lY3RpbmctbGluZS13cmFwcGVyIC5saW5lLTMge1xuICBiYWNrZ3JvdW5kOiAjMDA4MmM5O1xufVxuLnN1YndheS1zdGF0aW9uLWNvbm5lY3RpbmctbGluZSAuY29ubmVjdGluZy1saW5lLXdyYXBwZXIgLmxpbmUtNCB7XG4gIGJhY2tncm91bmQ6ICNhMjFhNjg7XG59XG4uc3Vid2F5LXN0YXRpb24tY29ubmVjdGluZy1saW5lIC5jb25uZWN0aW5nLWxpbmUtd3JhcHBlciAubGluZS01IHtcbiAgYmFja2dyb3VuZDogI2ViODczODtcbn1cbi5zdWJ3YXktc3RhdGlvbi1jb25uZWN0aW5nLWxpbmUgLmNvbm5lY3RpbmctbGluZS13cmFwcGVyIC5saW5lLTYge1xuICBiYWNrZ3JvdW5kOiAjOTY5NTk0O1xufVxuLnN1YndheS1zdGF0aW9uLWNvbm5lY3RpbmctbGluZSAuY29ubmVjdGluZy1saW5lLWRpcmVjdGlvbiB7XG4gIGZvbnQtZmFtaWx5OiBWZXJkYW5hLCBUYWhvbWEsIHNhbnMtc2VyaWY7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBmb250LXNpemU6IDEuOHJlbTtcbiAgbGluZS1oZWlnaHQ6IDI4cHg7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5AbWVkaWEgKCBtaW4td2lkdGg6IDc2OHB4ICkge1xuICAuc3Vid2F5LXN0YXRpb24tY29ubmVjdGluZy1saW5lIC5jb25uZWN0aW5nLWxpbmUtZGlyZWN0aW9uIHtcbiAgICBmb250LXNpemU6IDJyZW07XG4gICAgbGluZS1oZWlnaHQ6IDMycHg7XG4gIH1cbn1cbi5zdWJ3YXktc3RhdGlvbi1jb25uZWN0aW5nLWxpbmUgLmNvbm5lY3RpbmctbGluZS1kZXBhcnRpbmcge1xuICBmb250LWZhbWlseTogVmVyZGFuYSwgVGFob21hLCBzYW5zLXNlcmlmO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZm9udC1zaXplOiAxLjhyZW07XG4gIGxpbmUtaGVpZ2h0OiAyOHB4O1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG59XG5AbWVkaWEgKCBtaW4td2lkdGg6IDc2OHB4ICkge1xuICAuc3Vid2F5LXN0YXRpb24tY29ubmVjdGluZy1saW5lIC5jb25uZWN0aW5nLWxpbmUtZGVwYXJ0aW5nIHtcbiAgICBmb250LXNpemU6IDJyZW07XG4gICAgbGluZS1oZWlnaHQ6IDMycHg7XG4gIH1cbn1cbi5zdWJ3YXktc3RhdGlvbi1jb25uZWN0aW5nLWxpbmUgYSB7XG4gIGZvbnQtZmFtaWx5OiBWZXJkYW5hLCBUYWhvbWEsIHNhbnMtc2VyaWY7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBmb250LXNpemU6IDEuNnJlbTtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgY29sb3I6ICMwMDcwY2Q7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IDIwcHg7XG59XG4uc3Vid2F5LXN0YXRpb24tY29ubmVjdGluZy1saW5lIGE6OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBtYXJnaW4tbGVmdDogOHB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIHdpZHRoOiAyMHB4O1xuICBib3R0b206IDNweDtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLy0vbWVkaWEvUHJvamVjdC9UVEMvRGV2UHJvdG8vSWNvbnMvYXJyb3ctYmFja2dyb3VuZC1yaWdodC1vdXRsaW5lLnN2Z1wiKTtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3Zlcjtcbn1cbi5zdWJ3YXktc3RhdGlvbi1jb25uZWN0aW5nLWxpbmUgYTpob3ZlciwgLnN1YndheS1zdGF0aW9uLWNvbm5lY3RpbmctbGluZSBhOmZvY3VzIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5cbi5zdWJ3YXktc3RhdGlvbi1jb25uZWN0aW5nLWJ1c2VzIGgzIHtcbiAgcGFkZGluZy1ib3R0b206IDQwcHg7XG59XG4uc3Vid2F5LXN0YXRpb24tY29ubmVjdGluZy1idXNlcyAuY29ubmVjdGluZy1idXNlcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjNzY3Njc2O1xuICBwYWRkaW5nOiAxNXB4IDI4cHggMTVweCAwO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDYzOXB4KSB7XG4gIC5zdWJ3YXktc3RhdGlvbi1jb25uZWN0aW5nLWJ1c2VzIC5jb25uZWN0aW5nLWJ1c2VzIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuLnN1YndheS1zdGF0aW9uLWNvbm5lY3RpbmctYnVzZXMgLndyYXBwZXItY29ubmVjdGluZy1idXNlcy1yb3V0ZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG4uc3Vid2F5LXN0YXRpb24tY29ubmVjdGluZy1idXNlcyAuY29ubmVjdGluZy1idXNlcy1yb3V0ZS1udW1iZXIge1xuICBmb250LWZhbWlseTogXCJTd2lzcyA3MjEgVzAxXCIsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXNpemU6IDIycHg7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgbWluLXdpZHRoOiA1NnB4O1xuICB3aWR0aDogNTZweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgYmFja2dyb3VuZDogI2RhMjUxZDtcbiAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gIGJvcmRlcjogMnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBtYXgtaGVpZ2h0OiAzMnB4O1xuICBsaW5lLWhlaWdodDogMjdweDtcbn1cbi5zdWJ3YXktc3RhdGlvbi1jb25uZWN0aW5nLWJ1c2VzIC5jb25uZWN0aW5nLWJ1c2VzLXJvdXRlLW51bWJlci5uaWdodC1idXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3JkZXItY29sb3I6ICMwMjQxODI7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgY29sb3I6ICMwMjQxODI7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWluLXdpZHRoOiA1NnB4O1xuICAvKiBwYWRkaW5nOiAwIDE2cHggMCAycHg7Ki9cbiAgLyogJjphZnRlciB7XG4gICAgY29udGVudDogXCIgXCI7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEycHg7XG4gICAgaGVpZ2h0OiAxMXB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDZweDtcbiAgICByaWdodDogMnB4O1xuICAgIGJhY2tncm91bmQ6IHVybChcIi8tL21lZGlhL1Byb2plY3QvVFRDL0RldlByb3RvL0ljb25zL25pZ2h0LWJ1cy5zdmdcIikgbm8tcmVwZWF0O1xuICB9Ki9cbn1cbi5zdWJ3YXktc3RhdGlvbi1jb25uZWN0aW5nLWJ1c2VzIC5jb25uZWN0aW5nLWJ1c2VzLXJvdXRlLW51bWJlci5leHByZXNzLWJ1cyB7XG4gIGJhY2tncm91bmQ6ICMwMDkyM2Y7XG59XG4uc3Vid2F5LXN0YXRpb24tY29ubmVjdGluZy1idXNlcyAuY29ubmVjdGluZy1idXNlcy1yb3V0ZS1udW1iZXIubGltaXRlZC1idXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3JkZXItY29sb3I6ICNkYTI1MWQ7XG4gIGNvbG9yOiAjZGEyNTFkO1xufVxuLnN1YndheS1zdGF0aW9uLWNvbm5lY3RpbmctYnVzZXMgLmNvbm5lY3RpbmctYnVzZXMtcm91dGUtbnVtYmVyLmRvd250b3duLWV4cHJlc3MtYnVzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyLWNvbG9yOiAjMDA5MjNmO1xuICBjb2xvcjogIzAwOTIzZjtcbn1cbi5zdWJ3YXktc3RhdGlvbi1jb25uZWN0aW5nLWJ1c2VzIC5jb25uZWN0aW5nLWJ1c2VzLXJvdXRlLW51bWJlci5jb21tdW5pdHktYnVzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZiAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6IGdyYXk7XG4gIGNvbG9yOiBncmF5O1xufVxuLnN1YndheS1zdGF0aW9uLWNvbm5lY3RpbmctYnVzZXMgLmNvbm5lY3RpbmctYnVzZXMtcm91dGUtbnVtYmVyLnNlYXNvbmFsLWJ1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJvcmRlci1jb2xvcjogI0VCNkZCRDtcbiAgY29sb3I6ICNFQjZGQkQ7XG59XG4uc3Vid2F5LXN0YXRpb24tY29ubmVjdGluZy1idXNlcyAuY29ubmVjdGluZy1idXNlcy1yb3V0ZS1udW1iZXIuc2h1dHRsZS1saW5lNiB7XG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgdGV4dC1pbmRlbnQ6IC05OTk5cHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIvfi9tZWRpYS9Qcm9qZWN0L1RUQy9EZXZQcm90by9JbWFnZXMvTGluZTZTaHV0dGxlQnVzXCIpO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBib3JkZXI6IDJweCBzb2xpZCAjZWI4NzM4O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbn1cbi5zdWJ3YXktc3RhdGlvbi1jb25uZWN0aW5nLWJ1c2VzIC5jb25uZWN0aW5nLWJ1c2VzLXJvdXRlLW51bWJlci5zaHV0dGxlLWxpbmU1IHtcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xuICB0ZXh0LWluZGVudDogLTk5OTlweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi9+L21lZGlhL1Byb2plY3QvVFRDL0RldlByb3RvL0ltYWdlcy9MaW5lNVNodXR0bGVCdXNcIik7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJvcmRlcjogMnB4IHNvbGlkICNlYjg3Mzg7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xufVxuLnN1YndheS1zdGF0aW9uLWNvbm5lY3RpbmctYnVzZXMgLmNvbm5lY3RpbmctYnVzZXMtcm91dGUtc2NoZWR1bGUtdXJsIHtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG59XG5AbWVkaWEgKG1heC13aWR0aDogNjM5cHgpIHtcbiAgLnN1YndheS1zdGF0aW9uLWNvbm5lY3RpbmctYnVzZXMgLmNvbm5lY3RpbmctYnVzZXMtcm91dGUtc2NoZWR1bGUtdXJsIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIHBhZGRpbmctbGVmdDogNjZweDtcbiAgfVxufVxuLnN1YndheS1zdGF0aW9uLWNvbm5lY3RpbmctYnVzZXMgLmNvbm5lY3RpbmctYnVzZXMtcm91dGUtc2NoZWR1bGUtdXJsIGEge1xuICBmb250LWZhbWlseTogVmVyZGFuYSwgVGFob21hLCBzYW5zLXNlcmlmO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZm9udC1zaXplOiAxLjZyZW07XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGNvbG9yOiAjMDA3MGNkO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmb250LXdlaWdodDogNDAwO1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi5zdWJ3YXktc3RhdGlvbi1jb25uZWN0aW5nLWJ1c2VzIC5jb25uZWN0aW5nLWJ1c2VzLXJvdXRlLXNjaGVkdWxlLXVybCBhOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbWFyZ2luLWxlZnQ6IDhweDtcbiAgaGVpZ2h0OiAyMHB4O1xuICB3aWR0aDogMjBweDtcbiAgYm90dG9tOiAzcHg7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi8tL21lZGlhL1Byb2plY3QvVFRDL0RldlByb3RvL0ljb25zL2Fycm93LWJhY2tncm91bmQtcmlnaHQtb3V0bGluZS5zdmdcIik7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG59XG4uc3Vid2F5LXN0YXRpb24tY29ubmVjdGluZy1idXNlcyAuY29ubmVjdGluZy1idXNlcy1yb3V0ZS1zY2hlZHVsZS11cmwgYTpob3ZlciwgLnN1YndheS1zdGF0aW9uLWNvbm5lY3RpbmctYnVzZXMgLmNvbm5lY3RpbmctYnVzZXMtcm91dGUtc2NoZWR1bGUtdXJsIGE6Zm9jdXMge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cblxuLmNvbm5lY3RpbmctaW5mbyB7XG4gIGZvbnQtZmFtaWx5OiBWZXJkYW5hLCBUYWhvbWEsIHNhbnMtc2VyaWY7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBmb250LXNpemU6IDEuNnJlbTtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgcGFkZGluZy10b3A6IDE1cHg7XG4gIG1hcmdpbi1ib3R0b206IDQwcHg7XG59XG5AbWVkaWEgKCBtaW4td2lkdGg6IDc2OHB4ICkge1xuICAuY29ubmVjdGluZy1pbmZvIHtcbiAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICBsaW5lLWhlaWdodDogMTZweDtcbiAgfVxufSIsIi8vIEBpbXBvcnQgJ35zYXNzLW1xL21xJztcclxuQGltcG9ydCAnbWl4aW5zL3Nhc3MtbXEtbW9kLnNjc3MnO1xyXG5AaW1wb3J0ICcuLi9jb21tb24tdWkvdHlwb2dyYXBoeS9taXhpbnMnO1xyXG5AaW1wb3J0ICdtaXhpbnMvYWNjZXNzaWJpbGl0eSc7XHJcbkBpbXBvcnQgJ21peGlucy9idXR0b24nO1xyXG5AaW1wb3J0ICdtaXhpbnMvbGluayc7XHJcbkBpbXBvcnQgJ21peGlucy9vdmVybGF5JztcclxuQGltcG9ydCAnbWl4aW5zL3RyYW5zaXRpb25zJztcclxuQGltcG9ydCAnbWl4aW5zL3NoYWRvd3MnO1xyXG5AaW1wb3J0ICdtaXhpbnMvdGFnJztcclxuQGltcG9ydCAnLi4vYWJzdHJhY3RzL3ZhcnMvY29sb3JzJztcclxuXHJcbi8vIEJlbG93IGFyZSBtaXhpbidzIGZyb20gRlhBXHJcbi8qIGJyZWFrcG9pbnRzICovXHJcblxyXG4kYnJlYWstZGVza3RvcDogOTYwcHg7XHJcbiRicmVhay1tb2JpbGU6IDM4MHB4O1xyXG4kYnJlYWstbW9iaWxlLWhvcml6b250YWw6IDY0MHB4O1xyXG4kYnJlYWstbW9iaWxlLWxhcmdlOiA3ODZweDtcclxuQG1peGluIHdyYXBwZXIoKSB7XHJcbiAgICBtYXgtd2lkdGg6IDk2MHB4O1xyXG4gICAgbWFyZ2luOiAwIGF1dG8gIWltcG9ydGFudDtcclxufVxyXG5AbWl4aW4gY2xlYXJmaXgge1xyXG4gICAgJjphZnRlciB7XHJcbiAgICAgICAgY29udGVudDogXCJcIjtcclxuICAgICAgICBkaXNwbGF5OiB0YWJsZTtcclxuICAgICAgICBjbGVhcjogYm90aDtcclxuICAgIH1cclxufVxyXG5AbWl4aW4gZm9udC1zaXplKCRzaXplVmFsdWU6IDEuNikge1xyXG4gICAgZm9udC1zaXplOiAoJHNpemVWYWx1ZSAqIDEwKSArIHB4O1xyXG4gICAgZm9udC1zaXplOiAkc2l6ZVZhbHVlICsgcmVtO1xyXG59XHJcbkBtaXhpbiBvcGVuc2Fucy1mb250LXN0YWNrKCkge1xyXG4gICAgZm9udC1mYW1pbHk6IFwiT3BlbiBTYW5zXCIsIEhlbHZldGljYSwgVmVyZGFuYSwgVGFob21hLCBzYW5zLXNlcmlmO1xyXG59XHJcbkBtaXhpbiBsb2FkaW5nLWdpZigpIHtcclxuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGYtODtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlIWnBaWGRDYjNnOUlqQWdNQ0F6TWlBek1pSWdkMmxrZEdnOUlqTXlJaUJvWldsbmFIUTlJak15SWlCbWFXeHNQU0ppYkdGamF5SStEUW9nSUR4d1lYUm9JQ0J2Y0dGamFYUjVQU0l1TWpVaUlHUTlJazB4TmlBd0lFRXhOaUF4TmlBd0lEQWdNQ0F4TmlBek1pQkJNVFlnTVRZZ01DQXdJREFnTVRZZ01DQk5NVFlnTkNCQk1USWdNVElnTUNBd0lERWdNVFlnTWpnZ1FURXlJREV5SURBZ01DQXhJREUySURRaUx6NE5DaUFnUEhCaGRHZ2dabWxzYkQwbkl6RmhPREJpTmljZ1pEMGlUVEUySURBZ1FURTJJREUySURBZ01DQXhJRE15SURFMklFd3lPQ0F4TmlCQk1USWdNVElnTUNBd0lEQWdNVFlnTkhvaVBnMEtJQ0FnSUR4aGJtbHRZWFJsVkhKaGJuTm1iM0p0SUdGMGRISnBZblYwWlU1aGJXVTlJblJ5WVc1elptOXliU0lnZEhsd1pUMGljbTkwWVhSbElpQm1jbTl0UFNJd0lERTJJREUySWlCMGJ6MGlNell3SURFMklERTJJaUJrZFhJOUlqQXVPSE1pSUhKbGNHVmhkRU52ZFc1MFBTSnBibVJsWm1sdWFYUmxJaUF2UGcwS0lDQThMM0JoZEdnK0RRbzhMM04yWno0TkNnPT0pO1xyXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcclxuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbn1cclxuQG1peGluIHJlc3BvbmQtdG8oJG1lZGlhKSB7XHJcbiAgICBAaWYgJG1lZGlhPT1tb2JpbGUge1xyXG4gICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrLW1vYmlsZSkge1xyXG4gICAgICAgICAgICBAY29udGVudDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBAZWxzZSBpZiAkbWVkaWE9PW1vYmlsZS1ob3Jpem9udGFsIHtcclxuICAgICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVhay1tb2JpbGUtaG9yaXpvbnRhbCAtIDEpIHtcclxuICAgICAgICAgICAgQGNvbnRlbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgQGVsc2UgaWYgJG1lZGlhPT1tb2JpbGUtbGFyZ2Uge1xyXG4gICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrLW1vYmlsZS1sYXJnZSkge1xyXG4gICAgICAgICAgICBAY29udGVudDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBAZWxzZSBpZiAkbWVkaWE9PXRhYmxldCB7XHJcbiAgICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkYnJlYWstbW9iaWxlICsgMSkgYW5kIChtYXgtd2lkdGg6ICRicmVhay1kZXNrdG9wIC0gMSkge1xyXG4gICAgICAgICAgICBAY29udGVudDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBAZWxzZSBpZiAkbWVkaWE9PWFsbC1tb2JpbGUge1xyXG4gICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrLWRlc2t0b3AgLSAxKSB7XHJcbiAgICAgICAgICAgIEBjb250ZW50O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIEBlbHNlIGlmICRtZWRpYT09ZGVza3RvcCB7XHJcbiAgICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkYnJlYWstZGVza3RvcCkge1xyXG4gICAgICAgICAgICBAY29udGVudDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuQG1peGluIGJvcmRlci1iYXNpYygkcG9zaXRpb246YWxsLCAkYm9yZGVyLWNvbG9yOiRib3JkZXItZ3JheSwgJGJvcmRlci13aWR0aDoxcHgpIHtcclxuICAgIEBpZigkcG9zaXRpb249PXRvcCkge1xyXG4gICAgICAgIGJvcmRlci10b3A6ICRib3JkZXItd2lkdGggc29saWQgJGJvcmRlci1jb2xvcjtcclxuICAgIH1cclxuICAgIEBlbHNlIGlmKCRwb3NpdGlvbj09Ym90dG9tKSB7XHJcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJGJvcmRlci13aWR0aCBzb2xpZCAkYm9yZGVyLWNvbG9yO1xyXG4gICAgfVxyXG4gICAgQGVsc2UgaWYoJHBvc2l0aW9uPT1sZWZ0KSB7XHJcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRib3JkZXItd2lkdGggc29saWQgJGJvcmRlci1jb2xvcjtcclxuICAgIH1cclxuICAgIEBlbHNlIGlmKCRwb3NpdGlvbj09cmlnaHQpIHtcclxuICAgICAgICBib3JkZXItcmlnaHQ6ICRib3JkZXItd2lkdGggc29saWQgJGJvcmRlci1jb2xvcjtcclxuICAgIH1cclxuICAgIEBlbHNlIHtcclxuICAgICAgICBib3JkZXI6ICRib3JkZXItd2lkdGggc29saWQgJGJvcmRlci1jb2xvcjtcclxuICAgIH1cclxufVxyXG5AbWl4aW4gZml4ZWQtYmcoJHBvcywgJG1pbi1oZWlnaHQ6MjQwcHgpIHtcclxuICAgIGJhY2tncm91bmQtcG9zaXRpb246ICRwb3M7XHJcbiAgICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IGZpeGVkO1xyXG4gICAgbWluLWhlaWdodDogJG1pbi1oZWlnaHQ7XHJcbn1cclxuQG1peGluIGxpbmVhci1ncmFkaWVudCgkZGlyZWN0aW9uLCAkY29sb3Itc3RvcHMuLi4pIHtcclxuICAgIC8vIERpcmVjdGlvbiBoYXMgYmVlbiBvbWl0dGVkIGFuZCBoYXBwZW5zIHRvIGJlIGEgY29sb3Itc3RvcFxyXG4gICAgQGlmIGlzLWRpcmVjdGlvbigkZGlyZWN0aW9uKT09ZmFsc2Uge1xyXG4gICAgICAgICRjb2xvci1zdG9wczogJGRpcmVjdGlvbiwgJGNvbG9yLXN0b3BzO1xyXG4gICAgICAgICRkaXJlY3Rpb246IDE4MGRlZztcclxuICAgIH1cclxuICAgIGJhY2tncm91bmQ6IG50aChudGgoJGNvbG9yLXN0b3BzLCAxKSwgMSk7XHJcbiAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChsZWdhY3ktZGlyZWN0aW9uKCRkaXJlY3Rpb24pLCAkY29sb3Itc3RvcHMpO1xyXG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KCRkaXJlY3Rpb24sICRjb2xvci1zdG9wcyk7XHJcbn1cclxuIiwiQGltcG9ydCBcImFic3RyYWN0c1wiO1xyXG5cclxuLnN1YndheS1zdGF0aW9uLWNvbm5lY3RpbmctbGluZSxcclxuLnN1YndheS1zdGF0aW9uLWNvbm5lY3RpbmctYnVzZXMge1xyXG4gIGgzIHtcclxuICAgIEBpbmNsdWRlIHVpLXR5cG9ncmFwaHkoZDQpO1xyXG4gIH1cclxufVxyXG5cclxuLnN1YndheS1zdGF0aW9uLWNvbm5lY3RpbmctbGluZSB7XHJcbiAgbWFyZ2luLWJvdHRvbTogNTBweDtcclxuXHJcbiAgLmNvbm5lY3RpbmctbGluZS13cmFwcGVyIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgY29sb3IoZ3JleS1ib3JkZXIpO1xyXG4gICAgcGFkZGluZzogNDBweCAwO1xyXG5cclxuICAgIEBpbmNsdWRlIG1xKCR1bnRpbDogc20pIHtcclxuICAgICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgfVxyXG5cclxuICAgIC5jb25uZWN0aW5nLWxpbmUtbGVmdCxcclxuICAgIC5jb25uZWN0aW5nLWxpbmUtcmlnaHQge1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgfVxyXG5cclxuICAgIC5jb25uZWN0aW5nLWxpbmUge1xyXG4gICAgICB3aWR0aDogNTAlO1xyXG5cclxuICAgICAgQGluY2x1ZGUgbXEoJHVudGlsOiBzbSkge1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG5cclxuICAgICAgICAmOmZpcnN0LWNoaWxkIHtcclxuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLndyYXBwZXItbGluZS1pZCB7XHJcbiAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgcGFkZGluZy1yaWdodDogMjBweDtcclxuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICAgIGZvbnQtc2l6ZTogMjRweDtcclxuICAgIH1cclxuXHJcbiAgICAubGluZS0xLFxyXG4gICAgLmxpbmUtMixcclxuICAgIC5saW5lLTMsXHJcbiAgICAubGluZS00LFxyXG4gICAgLmxpbmUtNSxcclxuICAgIC5saW5lLTYge1xyXG4gICAgICBmb250LWZhbWlseTogXCJTd2lzcyA3MjEgVzAxXCIsIEFyaWFsLCBzYW5zLXNlcmlmO1xyXG4gICAgICBoZWlnaHQ6IDMycHg7XHJcbiAgICAgIHdpZHRoOiAzMnB4O1xyXG4gICAgICBsaW5lLWhlaWdodDogMzJweDtcclxuICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcclxuICAgICAgY29sb3I6IGNvbG9yKCdwcmltYXJ5LWNvbnRyYXN0Jyk7XHJcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgfVxyXG5cclxuICAgIC5saW5lLTEge1xyXG4gICAgICBiYWNrZ3JvdW5kOiAjZjhjMzAwO1xyXG4gICAgICBjb2xvcjogIzAwMDtcclxuICAgIH1cclxuXHJcbiAgICAubGluZS0yIHtcclxuICAgICAgYmFja2dyb3VuZDogIzAwOTIzZjtcclxuICAgIH1cclxuXHJcbiAgICAubGluZS0zIHtcclxuICAgICAgYmFja2dyb3VuZDogIzAwODJjOTtcclxuICAgIH1cclxuXHJcbiAgICAubGluZS00IHtcclxuICAgICAgYmFja2dyb3VuZDogI2EyMWE2ODtcclxuICAgIH1cclxuXHJcbiAgICAubGluZS01IHtcclxuICAgICAgYmFja2dyb3VuZDogI2ViODczODtcclxuICAgIH1cclxuXHJcbiAgICAubGluZS02IHtcclxuICAgICAgYmFja2dyb3VuZDogIzk2OTU5NDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5jb25uZWN0aW5nLWxpbmUtZGlyZWN0aW9uIHtcclxuICAgIEBpbmNsdWRlIHVpLXR5cG9ncmFwaHkoYm9keSk7XHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxuICB9XHJcblxyXG4gIC5jb25uZWN0aW5nLWxpbmUtZGVwYXJ0aW5nIHtcclxuICAgIEBpbmNsdWRlIHVpLXR5cG9ncmFwaHkoYm9keSk7XHJcbiAgfVxyXG5cclxuICBhIHtcclxuICAgIEBpbmNsdWRlIGxpbmstLWFycm93KCk7XHJcbiAgICBmb250LXNpemU6IDIwcHg7XHJcbiAgfVxyXG59XHJcblxyXG4uc3Vid2F5LXN0YXRpb24tY29ubmVjdGluZy1idXNlcyB7XHJcbiAgaDMge1xyXG4gICAgcGFkZGluZy1ib3R0b206IDQwcHg7XHJcbiAgfVxyXG5cclxuICAuY29ubmVjdGluZy1idXNlcyB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGNvbG9yKGdyZXktYm9yZGVyKTtcclxuICAgIHBhZGRpbmc6IDE1cHggMjhweCAxNXB4IDA7XHJcblxyXG4gICAgQGluY2x1ZGUgbXEoJHVudGlsOiBzbSkge1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC53cmFwcGVyLWNvbm5lY3RpbmctYnVzZXMtcm91dGUge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICB9XHJcblxyXG4gIC5jb25uZWN0aW5nLWJ1c2VzLXJvdXRlLW51bWJlciB7XHJcbiAgICBmb250LWZhbWlseTogXCJTd2lzcyA3MjEgVzAxXCIsIEFyaWFsLCBzYW5zLXNlcmlmO1xyXG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICAgIGZvbnQtc2l6ZTogMjJweDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcclxuICAgIG1pbi13aWR0aDogNTZweDtcclxuICAgIHdpZHRoOiA1NnB4O1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgY29sb3I6IGNvbG9yKHByaW1hcnktY29udHJhc3QpO1xyXG4gICAgYmFja2dyb3VuZDogY29sb3IocHJpbWFyeSk7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IDhweDtcclxuICAgIGJvcmRlcjogMnB4IHNvbGlkIHRyYW5zcGFyZW50O1xyXG4gICAgbWF4LWhlaWdodDogMzJweDtcclxuICAgIGxpbmUtaGVpZ2h0OiAyN3B4O1xyXG5cclxuICAgICYubmlnaHQtYnVzIHtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcclxuICAgICAgYm9yZGVyLWNvbG9yOiAjMDI0MTgyO1xyXG4gICAgICBib3JkZXItcmFkaXVzOiA0cHg7XHJcbiAgICAgIGNvbG9yOiAjMDI0MTgyO1xyXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgIG1pbi13aWR0aDogNTZweDtcclxuICAgICAgLyogcGFkZGluZzogMCAxNnB4IDAgMnB4OyovXHJcbiAgICAgIC8qICY6YWZ0ZXIge1xyXG4gICAgICAgIGNvbnRlbnQ6IFwiIFwiO1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgIHdpZHRoOiAxMnB4O1xyXG4gICAgICAgIGhlaWdodDogMTFweDtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgdG9wOiA2cHg7XHJcbiAgICAgICAgcmlnaHQ6IDJweDtcclxuICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoXCIvLS9tZWRpYS9Qcm9qZWN0L1RUQy9EZXZQcm90by9JY29ucy9uaWdodC1idXMuc3ZnXCIpIG5vLXJlcGVhdDtcclxuICAgICAgfSovXHJcbiAgICB9XHJcblxyXG4gICAgJi5leHByZXNzLWJ1cyB7XHJcbiAgICAgIGJhY2tncm91bmQ6ICMwMDkyM2Y7XHJcbiAgICB9XHJcblxyXG4gICAgJi5saW1pdGVkLWJ1cyB7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcbiAgICAgIGJvcmRlci1jb2xvcjogI2RhMjUxZDtcclxuICAgICAgY29sb3I6ICNkYTI1MWQ7XHJcbiAgICB9XHJcblxyXG4gICAgJi5kb3dudG93bi1leHByZXNzLWJ1cyB7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcbiAgICAgIGJvcmRlci1jb2xvcjogIzAwOTIzZjtcclxuICAgICAgY29sb3I6ICMwMDkyM2Y7XHJcbiAgICB9XHJcblxyXG4gICAgJi5jb21tdW5pdHktYnVzIHtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZiAhaW1wb3J0YW50O1xyXG4gICAgICBib3JkZXItY29sb3I6IGdyYXk7XHJcbiAgICAgIGNvbG9yOiBncmF5O1xyXG4gICAgfVxyXG5cclxuICAgICYuc2Vhc29uYWwtYnVzIHtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcclxuICAgICAgYm9yZGVyLWNvbG9yOiAjRUI2RkJEO1xyXG4gICAgICBjb2xvcjogI0VCNkZCRDtcclxuICAgIH1cclxuXHJcbiAgICAmLnNodXR0bGUtbGluZTYge1xyXG4gICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICAgIHRleHQtaW5kZW50OiAtOTk5OXB4O1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcvfi9tZWRpYS9Qcm9qZWN0L1RUQy9EZXZQcm90by9JbWFnZXMvTGluZTZTaHV0dGxlQnVzJyk7XHJcbiAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbiAgICAgIGJvcmRlcjogMnB4IHNvbGlkICNlYjg3Mzg7XHJcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcclxuICAgICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xyXG4gICAgfVxyXG5cclxuICAgICYuc2h1dHRsZS1saW5lNSB7XHJcbiAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgICAgdGV4dC1pbmRlbnQ6IC05OTk5cHg7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy9+L21lZGlhL1Byb2plY3QvVFRDL0RldlByb3RvL0ltYWdlcy9MaW5lNVNodXR0bGVCdXMnKTtcclxuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuICAgICAgYm9yZGVyOiAycHggc29saWQgI2ViODczODtcclxuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xyXG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuY29ubmVjdGluZy1idXNlcy1yb3V0ZS1zY2hlZHVsZS11cmwge1xyXG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XHJcblxyXG4gICAgQGluY2x1ZGUgbXEoJHVudGlsOiBzbSkge1xyXG4gICAgICBtYXJnaW4tdG9wOiAwO1xyXG4gICAgICBwYWRkaW5nLWxlZnQ6IDY2cHg7XHJcbiAgICB9XHJcblxyXG4gICAgYSB7XHJcbiAgICAgIEBpbmNsdWRlIGxpbmstLWFycm93KCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4uY29ubmVjdGluZy1pbmZvIHtcclxuICBAaW5jbHVkZSB1aS10eXBvZ3JhcGh5KGQteHNtYWxsKTtcclxuICBwYWRkaW5nLXRvcDogMTVweDtcclxuICBtYXJnaW4tYm90dG9tOiA0MHB4O1xyXG59XHJcbiIsIkBpbXBvcnQgJy4vdmFyaWFibGVzJztcclxuQGltcG9ydCAnfmlvdGFjc3MtdG9vbHMtdHlwZS90b29scy50eXBlJztcclxuXHJcbkBtaXhpbiB1aS10eXBvZ3JhcGh5LWJhc2UoJGZvbnQtZmFtaWx5OiAkdWktdHlwb2dyYXBoeS1zdGFjay1kZWZhdWx0KSB7XHJcbiAgZm9udC1mYW1pbHk6IGlmKCRmb250LWZhbWlseSAhPSBudWxsLCAkZm9udC1mYW1pbHksICR1aS10eXBvZ3JhcGh5LXN0YWNrLWRlZmF1bHQpO1xyXG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XHJcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XHJcbn1cclxuXHJcbkBtaXhpbiB1aS10eXBvZ3JhcGh5KCRzdHlsZSkge1xyXG4gIEBpZiBtYXAtaGFzLWtleSgkdWktdHlwb2dyYXBoeS1zdHlsZXMsICRzdHlsZSkge1xyXG4gICAgJHN0eWxlOiBtYXAtZ2V0KCR1aS10eXBvZ3JhcGh5LXN0eWxlcywgJHN0eWxlKTtcclxuICAgICRmb250LWZhbWlseTogbWFwLWdldCgkc3R5bGUsIGZvbnQtZmFtaWx5KTtcclxuXHJcbiAgICBAaW5jbHVkZSB1aS10eXBvZ3JhcGh5LWJhc2UoJGZvbnQtZmFtaWx5KTtcclxuICAgIEBpbmNsdWRlIGlvdGEtdHlwZShtYXAtZ2V0KCRzdHlsZSwgc2l6ZXMpKTtcclxuXHJcbiAgICAvLyBSZW1vdmUgcHJvcGVydGllcyB0aGF0IGRvIG5vdCBuZWVkIHRvIGJlIGdlbmVyYXRlZCBiZWxvd1xyXG4gICAgJHByb3BzOiBtYXAtcmVtb3ZlKCRzdHlsZSwgZm9udC1mYW1pbHksIG1hcmdpbiwgc2l6ZXMpO1xyXG4gICAgJGtleXM6IG1hcC1rZXlzKCRwcm9wcyk7XHJcblxyXG4gICAgQGVhY2ggJGtleSBpbiAka2V5cyB7XHJcbiAgICAgICN7JGtleX06IG1hcC1nZXQoJHByb3BzLCAka2V5KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBlbHNlIHtcclxuICAgIEB3YXJuKCdDb3VsZCBub3QgZmluZCBgI3skc3R5bGV9YCBpbiBgJHVpLXR5cG9ncmFwaHktc3R5bGVzYCcpO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIHVpLXR5cG9ncmFwaHktbWFyZ2luKCRzdHlsZSkge1xyXG4gIG1hcmdpbjogbWFwLWdldChtYXAtZ2V0KCR1aS10eXBvZ3JhcGh5LXN0eWxlcywgJHN0eWxlKSwgbWFyZ2luKTtcclxufVxyXG4iLCJAbWl4aW4gX2lvdGEtZXh0cmFjdC10eXBlLXNpemVzKCRzaXplcykge1xuXG4gIEBpZiAoIGxlbmd0aCgkc2l6ZXMpID09IDIgKSB7XG4gICAgZm9udC1zaXplOiBudGgoJHNpemVzLCAxKTtcbiAgICBsaW5lLWhlaWdodDogbnRoKCRzaXplcywgMik7XG4gIH1cblxuICBAZWxzZSB7XG4gICAgZm9udC1zaXplOiAkc2l6ZXM7ICBcbiAgfVxuICBcbn1cbiIsIkBtaXhpbiBfaW90YS1nZW5lcmF0ZS10eXBlLXNpemVzKCR2YWx1ZXMsICRicmVha3BvaW50cykge1xuXG4gIEBpZiB0eXBlLW9mKCR2YWx1ZXMpID09ICdtYXAnIHtcblxuICAgIEBpZiBtYXAtaGFzLWtleSgkdmFsdWVzLCBudWxsKSB7XG5cbiAgICAgIEBpbmNsdWRlIF9pb3RhLWV4dHJhY3QtdHlwZS1zaXplcyhtYXAtZ2V0KCR2YWx1ZXMsIG51bGwpKTtcblxuICAgIH1cbiAgXG4gICAgQGVhY2ggJGJyZWFrcG9pbnQsICRzaXplcyBpbiAkdmFsdWVzIHtcblxuICAgICAgQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJGJyZWFrcG9pbnQpIHtcbiAgICAgIFxuICAgICAgICBAbWVkaWEgI3ttYXAtZ2V0KCRicmVha3BvaW50cywgJGJyZWFrcG9pbnQpfSB7XG4gICAgICBcbiAgICAgICAgICBAaW5jbHVkZSBfaW90YS1leHRyYWN0LXR5cGUtc2l6ZXMoJHNpemVzKTtcblxuICAgICAgICB9XG5cbiAgICAgIH1cblxuICAgIH1cblxuICB9XG5cbiAgQGlmIHR5cGUtb2YoJHZhbHVlcykgPT0gJ251bWJlcicgb3IgdHlwZS1vZigkdmFsdWVzKSA9PSAnbGlzdCcge1xuXG4gICAgQGluY2x1ZGUgX2lvdGEtZXh0cmFjdC10eXBlLXNpemVzKCR2YWx1ZXMpO1xuXG4gIH1cbn1cbiIsIi8vbW9kZGVkIHRvIHVzZSBweFxyXG5cclxuQGNoYXJzZXQgXCJVVEYtOFwiOyAvLyBGaXhlcyBhbiBpc3N1ZSB3aGVyZSBSdWJ5IGxvY2FsZSBpcyBub3Qgc2V0IHByb3Blcmx5XHJcbiAgICAgICAgICAgICAgICAgIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vc2Fzcy1tcS9zYXNzLW1xL3B1bGwvMTBcclxuXHJcbi8vLyBCYXNlIGZvbnQgc2l6ZSBvbiB0aGUgYDxib2R5PmAgZWxlbWVudFxyXG4vLy8gQHR5cGUgTnVtYmVyICh1bml0KVxyXG4kbXEtYmFzZS1mb250LXNpemU6IDE2cHggIWRlZmF1bHQ7XHJcblxyXG4vLy8gUmVzcG9uc2l2ZSBtb2RlXHJcbi8vL1xyXG4vLy8gU2V0IHRvIGBmYWxzZWAgdG8gZW5hYmxlIHN1cHBvcnQgZm9yIGJyb3dzZXJzIHRoYXQgZG8gbm90IHN1cHBvcnQgQG1lZGlhIHF1ZXJpZXMsXHJcbi8vLyAoSUUgPD0gOCwgRmlyZWZveCA8PSAzLCBPcGVyYSA8PSA5KVxyXG4vLy9cclxuLy8vIFlvdSBjb3VsZCBjcmVhdGUgYSBzdHlsZXNoZWV0IHNlcnZlZCBleGNsdXNpdmVseSB0byBvbGRlciBicm93c2VycyxcclxuLy8vIHdoZXJlIEBtZWRpYSBxdWVyaWVzIGFyZSByYXN0ZXJpemVkXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2Nzc1xyXG4vLy8gIC8vIG9sZC1pZS5zY3NzXHJcbi8vLyAgJG1xLXJlc3BvbnNpdmU6IGZhbHNlO1xyXG4vLy8gIEBpbXBvcnQgJ21haW4nOyAvLyBAbWVkaWEgcXVlcmllcyBpbiB0aGlzIGZpbGUgd2lsbCBiZSByYXN0ZXJpemVkIHVwIHRvICRtcS1zdGF0aWMtYnJlYWtwb2ludFxyXG4vLy8gICAgICAgICAgICAgICAgICAgLy8gbGFyZ2VyIGJyZWFrcG9pbnRzIHdpbGwgYmUgaWdub3JlZFxyXG4vLy9cclxuLy8vIEB0eXBlIEJvb2xlYW5cclxuLy8vIEBsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEjcmVzcG9uc2l2ZS1tb2RlLW9mZiBEaXNhYmxlZCByZXNwb25zaXZlIG1vZGUgZG9jdW1lbnRhdGlvblxyXG4kbXEtcmVzcG9uc2l2ZTogdHJ1ZSAhZGVmYXVsdDtcclxuXHJcbi8vLyBCcmVha3BvaW50IGxpc3RcclxuLy8vXHJcbi8vLyBOYW1lIHlvdXIgYnJlYWtwb2ludHMgaW4gYSB3YXkgdGhhdCBjcmVhdGVzIGEgdWJpcXVpdG91cyBsYW5ndWFnZVxyXG4vLy8gYWNyb3NzIHRlYW0gbWVtYmVycy4gSXQgd2lsbCBpbXByb3ZlIGNvbW11bmljYXRpb24gYmV0d2VlblxyXG4vLy8gc3Rha2Vob2xkZXJzLCBkZXNpZ25lcnMsIGRldmVsb3BlcnMsIGFuZCB0ZXN0ZXJzLlxyXG4vLy9cclxuLy8vIEB0eXBlIE1hcFxyXG4vLy8gQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MtbXEvc2Fzcy1tcSNzZWVpbmctdGhlLWN1cnJlbnRseS1hY3RpdmUtYnJlYWtwb2ludCBGdWxsIGRvY3VtZW50YXRpb24gYW5kIGV4YW1wbGVzXHJcbiRtcS1icmVha3BvaW50czogKFxyXG4gICAgbW9iaWxlOiAgMzIwcHgsXHJcbiAgICB0YWJsZXQ6ICA3NDBweCxcclxuICAgIGRlc2t0b3A6IDk4MHB4LFxyXG4gICAgd2lkZTogICAgMTMwMHB4XHJcbikgIWRlZmF1bHQ7XHJcblxyXG4vLy8gU3RhdGljIGJyZWFrcG9pbnQgKGZvciBmaXhlZC13aWR0aCBsYXlvdXRzKVxyXG4vLy9cclxuLy8vIERlZmluZSB0aGUgYnJlYWtwb2ludCBmcm9tICRtcS1icmVha3BvaW50cyB0aGF0IHNob3VsZFxyXG4vLy8gYmUgdXNlZCBhcyB0aGUgdGFyZ2V0IHdpZHRoIGZvciB0aGUgZml4ZWQtd2lkdGggbGF5b3V0XHJcbi8vLyAoaS5lLiB3aGVuICRtcS1yZXNwb25zaXZlIGlzIHNldCB0byAnZmFsc2UnKSBpbiBhIG9sZC1pZS5zY3NzXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2Nzc1xyXG4vLy8gIC8vIHRhYmxldC1vbmx5LnNjc3NcclxuLy8vICAvL1xyXG4vLy8gIC8vIElnbm9yZSBhbGwgc3R5bGVzIGFib3ZlIHRhYmxldCBicmVha3BvaW50LFxyXG4vLy8gIC8vIGFuZCBmaXggdGhlIHN0eWxlcyAoZS5nLiBsYXlvdXQpIGF0IHRhYmxldCB3aWR0aFxyXG4vLy8gICRtcS1yZXNwb25zaXZlOiBmYWxzZTtcclxuLy8vICAkbXEtc3RhdGljLWJyZWFrcG9pbnQ6IHRhYmxldDtcclxuLy8vICBAaW1wb3J0ICdtYWluJzsgLy8gQG1lZGlhIHF1ZXJpZXMgaW4gdGhpcyBmaWxlIHdpbGwgYmUgcmFzdGVyaXplZCB1cCB0byB0YWJsZXRcclxuLy8vICAgICAgICAgICAgICAgICAgIC8vIGxhcmdlciBicmVha3BvaW50cyB3aWxsIGJlIGlnbm9yZWRcclxuLy8vXHJcbi8vLyBAdHlwZSBTdHJpbmdcclxuLy8vIEBsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEjYWRkaW5nLWN1c3RvbS1icmVha3BvaW50cyBGdWxsIGRvY3VtZW50YXRpb24gYW5kIGV4YW1wbGVzXHJcbiRtcS1zdGF0aWMtYnJlYWtwb2ludDogZGVza3RvcCAhZGVmYXVsdDtcclxuXHJcbi8vLyBTaG93IGJyZWFrcG9pbnRzIGluIHRoZSB0b3AgcmlnaHQgY29ybmVyXHJcbi8vL1xyXG4vLy8gSWYgeW91IHdhbnQgdG8gZGlzcGxheSB0aGUgY3VycmVudGx5IGFjdGl2ZSBicmVha3BvaW50IGluIHRoZSB0b3BcclxuLy8vIHJpZ2h0IGNvcm5lciBvZiB5b3VyIHNpdGUgZHVyaW5nIGRldmVsb3BtZW50LCBhZGQgdGhlIGJyZWFrcG9pbnRzXHJcbi8vLyB0byB0aGlzIGxpc3QsIG9yZGVyZWQgYnkgd2lkdGgsIGUuZy4gKG1vYmlsZSwgdGFibGV0LCBkZXNrdG9wKS5cclxuLy8vXHJcbi8vLyBAdHlwZSBtYXBcclxuJG1xLXNob3ctYnJlYWtwb2ludHM6ICgpICFkZWZhdWx0O1xyXG5cclxuLy8vIEN1c3RvbWl6ZSB0aGUgbWVkaWEgdHlwZSAoZS5nLiBgQG1lZGlhIHNjcmVlbmAgb3IgYEBtZWRpYSBwcmludGApXHJcbi8vLyBCeSBkZWZhdWx0IHNhc3MtbXEgdXNlcyBhbiBcImFsbFwiIG1lZGlhIHR5cGUgKGBAbWVkaWEgYWxsIGFuZCDigKZgKVxyXG4vLy9cclxuLy8vIEB0eXBlIFN0cmluZ1xyXG4vLy8gQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MtbXEvc2Fzcy1tcSNjaGFuZ2luZy1tZWRpYS10eXBlIEZ1bGwgZG9jdW1lbnRhdGlvbiBhbmQgZXhhbXBsZXNcclxuJG1xLW1lZGlhLXR5cGU6IGFsbCAhZGVmYXVsdDtcclxuXHJcbi8vLyBDb252ZXJ0IHBpeGVscyB0byBlbXNcclxuLy8vXHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJHB4IC0gdmFsdWUgdG8gY29udmVydFxyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXNlLWZvbnQtc2l6ZSAoJG1xLWJhc2UtZm9udC1zaXplKSAtIGA8Ym9keT5gIGZvbnQgc2l6ZVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3NcclxuLy8vICAkZm9udC1zaXplLWluLWVtczogbXEtcHgyZW0oMTZweCk7XHJcbi8vLyAgcCB7IGZvbnQtc2l6ZTogbXEtcHgyZW0oMTZweCk7IH1cclxuLy8vXHJcbi8vLyBAcmVxdWlyZXMgJG1xLWJhc2UtZm9udC1zaXplXHJcbi8vLyBAcmV0dXJucyB7TnVtYmVyfVxyXG5AZnVuY3Rpb24gbXEtcHgyZW0oJHB4LCAkYmFzZS1mb250LXNpemU6ICRtcS1iYXNlLWZvbnQtc2l6ZSkge1xyXG4gICAgQGlmIHVuaXRsZXNzKCRweCkge1xyXG4gICAgICAgIEB3YXJuIFwiQXNzdW1pbmcgI3skcHh9IHRvIGJlIGluIHBpeGVscywgYXR0ZW1wdGluZyB0byBjb252ZXJ0IGl0IGludG8gcGl4ZWxzLlwiO1xyXG4gICAgICAgIEByZXR1cm4gbXEtcHgyZW0oJHB4ICogMXB4LCAkYmFzZS1mb250LXNpemUpO1xyXG4gICAgfSBAZWxzZSBpZiB1bml0KCRweCkgPT0gZW0ge1xyXG4gICAgICAgIEByZXR1cm4gJHB4O1xyXG4gICAgfVxyXG4gICAgQHJldHVybiAoJHB4IC8gJGJhc2UtZm9udC1zaXplKSAqIDFlbTtcclxufVxyXG5cclxuLy8vIEdldCBhIGJyZWFrcG9pbnQncyB3aWR0aFxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbmFtZSAtIE5hbWUgb2YgdGhlIGJyZWFrcG9pbnQuIE9uZSBvZiAkbXEtYnJlYWtwb2ludHNcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzXHJcbi8vLyAgJHRhYmxldC13aWR0aDogbXEtZ2V0LWJyZWFrcG9pbnQtd2lkdGgodGFibGV0KTtcclxuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogbXEtZ2V0LWJyZWFrcG9pbnQtd2lkdGgoZGVza3RvcCkpIHt9XHJcbi8vL1xyXG4vLy8gQHJlcXVpcmVzIHtWYXJpYWJsZX0gJG1xLWJyZWFrcG9pbnRzXHJcbi8vL1xyXG4vLy8gQHJldHVybnMge051bWJlcn0gVmFsdWUgaW4gcGl4ZWxzXHJcbkBmdW5jdGlvbiBtcS1nZXQtYnJlYWtwb2ludC13aWR0aCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkbXEtYnJlYWtwb2ludHMpIHtcclxuICAgIEBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICRuYW1lKSB7XHJcbiAgICAgICAgQHJldHVybiBtYXAtZ2V0KCRicmVha3BvaW50cywgJG5hbWUpO1xyXG4gICAgfSBAZWxzZSB7XHJcbiAgICAgICAgQHdhcm4gXCJCcmVha3BvaW50ICN7JG5hbWV9IHdhc24ndCBmb3VuZCBpbiAkYnJlYWtwb2ludHMuXCI7XHJcbiAgICB9XHJcbn1cclxuXHJcbi8vLyBNZWRpYSBRdWVyeSBtaXhpblxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nIHwgQm9vbGVhbn0gJGZyb20gKGZhbHNlKSAtIE9uZSBvZiAkbXEtYnJlYWtwb2ludHNcclxuLy8vIEBwYXJhbSB7U3RyaW5nIHwgQm9vbGVhbn0gJHVudGlsIChmYWxzZSkgLSBPbmUgb2YgJG1xLWJyZWFrcG9pbnRzXHJcbi8vLyBAcGFyYW0ge1N0cmluZyB8IEJvb2xlYW59ICRhbmQgKGZhbHNlKSAtIEFkZGl0aW9uYWwgbWVkaWEgcXVlcnkgcGFyYW1ldGVyc1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRtZWRpYS10eXBlICgkbXEtbWVkaWEtdHlwZSkgLSBNZWRpYSB0eXBlOiBzY3JlZW4sIHByaW504oCmXHJcbi8vL1xyXG4vLy8gQGlnbm9yZSBVbmRvY3VtZW50ZWQgQVBJLCBmb3IgYWR2YW5jZWQgdXNlIG9ubHk6XHJcbi8vLyBAaWdub3JlIEBwYXJhbSB7TWFwfSAkYnJlYWtwb2ludHMgKCRtcS1icmVha3BvaW50cylcclxuLy8vIEBpZ25vcmUgQHBhcmFtIHtTdHJpbmd9ICRzdGF0aWMtYnJlYWtwb2ludCAoJG1xLXN0YXRpYy1icmVha3BvaW50KVxyXG4vLy9cclxuLy8vIEBjb250ZW50IHN0eWxpbmcgcnVsZXMsIHdyYXBwZWQgaW50byBhIEBtZWRpYSBxdWVyeSB3aGVuICRyZXNwb25zaXZlIGlzIHRydWVcclxuLy8vXHJcbi8vLyBAcmVxdWlyZXMge1ZhcmlhYmxlfSAkbXEtbWVkaWEtdHlwZVxyXG4vLy8gQHJlcXVpcmVzIHtWYXJpYWJsZX0gJG1xLWJyZWFrcG9pbnRzXHJcbi8vLyBAcmVxdWlyZXMge1ZhcmlhYmxlfSAkbXEtc3RhdGljLWJyZWFrcG9pbnRcclxuLy8vIEByZXF1aXJlcyB7ZnVuY3Rpb259IG1xLXB4MmVtXHJcbi8vLyBAcmVxdWlyZXMge2Z1bmN0aW9ufSBtcS1nZXQtYnJlYWtwb2ludC13aWR0aFxyXG4vLy9cclxuLy8vIEBsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEjcmVzcG9uc2l2ZS1tb2RlLW9uLWRlZmF1bHQgRnVsbCBkb2N1bWVudGF0aW9uIGFuZCBleGFtcGxlc1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3NcclxuLy8vICAuZWxlbWVudCB7XHJcbi8vLyAgICBAaW5jbHVkZSBtcSgkZnJvbTogbW9iaWxlKSB7XHJcbi8vLyAgICAgIGNvbG9yOiByZWQ7XHJcbi8vLyAgICB9XHJcbi8vLyAgICBAaW5jbHVkZSBtcSgkdW50aWw6IHRhYmxldCkge1xyXG4vLy8gICAgICBjb2xvcjogYmx1ZTtcclxuLy8vICAgIH1cclxuLy8vICAgIEBpbmNsdWRlIG1xKG1vYmlsZSwgdGFibGV0KSB7XHJcbi8vLyAgICAgIGNvbG9yOiBncmVlbjtcclxuLy8vICAgIH1cclxuLy8vICAgIEBpbmNsdWRlIG1xKCRmcm9tOiB0YWJsZXQsICRhbmQ6ICcob3JpZW50YXRpb246IGxhbmRzY2FwZSknKSB7XHJcbi8vLyAgICAgIGNvbG9yOiB0ZWFsO1xyXG4vLy8gICAgfVxyXG4vLy8gICAgQGluY2x1ZGUgbXEoOTUwcHgpIHtcclxuLy8vICAgICAgY29sb3I6IGhvdHBpbms7XHJcbi8vLyAgICB9XHJcbi8vLyAgICBAaW5jbHVkZSBtcSh0YWJsZXQsICRtZWRpYS10eXBlOiBzY3JlZW4pIHtcclxuLy8vICAgICAgY29sb3I6IGhvdHBpbms7XHJcbi8vLyAgICB9XHJcbi8vLyAgICAvLyBBZHZhbmNlZCB1c2U6XHJcbi8vLyAgICAkbXktYnJlYWtwb2ludHM6IChMOiA5MDBweCwgWEw6IDEyMDBweCk7XHJcbi8vLyAgICBAaW5jbHVkZSBtcShMLCAkYnJlYWtwb2ludHM6ICRteS1icmVha3BvaW50cywgJHN0YXRpYy1icmVha3BvaW50OiBMKSB7XHJcbi8vLyAgICAgIGNvbG9yOiBob3RwaW5rO1xyXG4vLy8gICAgfVxyXG4vLy8gIH1cclxuQG1peGluIG1xKFxyXG4gICAgJGZyb206IGZhbHNlLFxyXG4gICAgJHVudGlsOiBmYWxzZSxcclxuICAgICRhbmQ6IGZhbHNlLFxyXG4gICAgJGVtcy1vbjogZmFsc2UsXHJcbiAgICAkbWVkaWEtdHlwZTogJG1xLW1lZGlhLXR5cGUsXHJcbiAgICAkYnJlYWtwb2ludHM6ICRtcS1icmVha3BvaW50cyxcclxuICAgICRyZXNwb25zaXZlOiAkbXEtcmVzcG9uc2l2ZSxcclxuICAgICRzdGF0aWMtYnJlYWtwb2ludDogJG1xLXN0YXRpYy1icmVha3BvaW50XHJcbikge1xyXG4gICAgJG1pbi13aWR0aDogMDtcclxuICAgICRtYXgtd2lkdGg6IDA7XHJcbiAgICAkbWVkaWEtcXVlcnk6ICcnO1xyXG5cclxuICAgIC8vIEZyb206IHRoaXMgYnJlYWtwb2ludCAoaW5jbHVzaXZlKVxyXG4gICAgQGlmICRmcm9tIHtcclxuICAgICAgICBAaWYgdHlwZS1vZigkZnJvbSkgPT0gbnVtYmVyIHtcclxuICAgICAgICAgICAgJG1pbi13aWR0aDogaWYoJGVtcy1vbiwgbXEtcHgyZW0oJGZyb20pLCAoJGZyb20pKTtcclxuICAgICAgICB9IEBlbHNlIHtcclxuICAgICAgICAgICAgJG1pbi13aWR0aDogaWYoJGVtcy1vbiwgbXEtcHgyZW0obXEtZ2V0LWJyZWFrcG9pbnQtd2lkdGgoJGZyb20sICRicmVha3BvaW50cykpLCBtcS1nZXQtYnJlYWtwb2ludC13aWR0aCgkZnJvbSwgJGJyZWFrcG9pbnRzKSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIFVudGlsOiB0aGF0IGJyZWFrcG9pbnQgKGV4Y2x1c2l2ZSlcclxuICAgIEBpZiAkdW50aWwge1xyXG4gICAgICAgIEBpZiB0eXBlLW9mKCR1bnRpbCkgPT0gbnVtYmVyIHtcclxuICAgICAgICAgICAgJG1heC13aWR0aDogaWYoJGVtcy1vbiwgbXEtcHgyZW0oJHVudGlsKSwoJHVudGlsKSk7XHJcbiAgICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgICAgICRtYXgtd2lkdGg6IGlmKCRlbXMtb24sIG1xLXB4MmVtKG1xLWdldC1icmVha3BvaW50LXdpZHRoKCR1bnRpbCwgJGJyZWFrcG9pbnRzKSkgLSAuMDFlbSwgbXEtZ2V0LWJyZWFrcG9pbnQtd2lkdGgoJHVudGlsLCAkYnJlYWtwb2ludHMpIC0gMXB4KTsgXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIFJlc3BvbnNpdmUgc3VwcG9ydCBpcyBkaXNhYmxlZCwgcmFzdGVyaXplIHRoZSBvdXRwdXQgb3V0c2lkZSBAbWVkaWEgYmxvY2tzXHJcbiAgICAvLyBUaGUgYnJvd3NlciB3aWxsIHJlbHkgb24gdGhlIGNhc2NhZGUgaXRzZWxmLlxyXG4gICAgQGlmICRyZXNwb25zaXZlID09IGZhbHNlIHtcclxuICAgICAgICAkc3RhdGljLWJyZWFrcG9pbnQtd2lkdGg6IG1xLWdldC1icmVha3BvaW50LXdpZHRoKCRzdGF0aWMtYnJlYWtwb2ludCwgJGJyZWFrcG9pbnRzKTtcclxuICAgICAgICAkdGFyZ2V0LXdpZHRoOiBpZigkZW1zLW9uLCBtcS1weDJlbSgkc3RhdGljLWJyZWFrcG9pbnQtd2lkdGgpLCAkc3RhdGljLWJyZWFrcG9pbnQtd2lkdGgpO1xyXG5cclxuICAgICAgICAvLyBPdXRwdXQgb25seSBydWxlcyB0aGF0IHN0YXJ0IGF0IG9yIHNwYW4gb3VyIHRhcmdldCB3aWR0aFxyXG4gICAgICAgIEBpZiAoXHJcbiAgICAgICAgICAgICRhbmQgPT0gZmFsc2VcclxuICAgICAgICAgICAgYW5kICRtaW4td2lkdGggPD0gJHRhcmdldC13aWR0aFxyXG4gICAgICAgICAgICBhbmQgKFxyXG4gICAgICAgICAgICAgICAgJHVudGlsID09IGZhbHNlIG9yICRtYXgtd2lkdGggPj0gJHRhcmdldC13aWR0aFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICAgIEBjb250ZW50O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBSZXNwb25zaXZlIHN1cHBvcnQgaXMgZW5hYmxlZCwgb3V0cHV0IHJ1bGVzIGluc2lkZSBAbWVkaWEgcXVlcmllc1xyXG4gICAgQGVsc2Uge1xyXG4gICAgICAgIEBpZiAkbWluLXdpZHRoICE9IDAgeyAkbWVkaWEtcXVlcnk6ICcjeyRtZWRpYS1xdWVyeX0gYW5kIChtaW4td2lkdGg6ICN7JG1pbi13aWR0aH0pJzsgfVxyXG4gICAgICAgIEBpZiAkbWF4LXdpZHRoICE9IDAgeyAkbWVkaWEtcXVlcnk6ICcjeyRtZWRpYS1xdWVyeX0gYW5kIChtYXgtd2lkdGg6ICN7JG1heC13aWR0aH0pJzsgfVxyXG4gICAgICAgIEBpZiAkYW5kICAgICAgICAgICAgeyAkbWVkaWEtcXVlcnk6ICcjeyRtZWRpYS1xdWVyeX0gYW5kICN7JGFuZH0nOyB9XHJcblxyXG4gICAgICAgIC8vIFJlbW92ZSB1bm5lY2Vzc2FyeSBtZWRpYSBxdWVyeSBwcmVmaXggJ2FsbCBhbmQgJ1xyXG4gICAgICAgIEBpZiAoJG1lZGlhLXR5cGUgPT0gJ2FsbCcgYW5kICRtZWRpYS1xdWVyeSAhPSAnJykge1xyXG4gICAgICAgICAgICAkbWVkaWEtdHlwZTogJyc7XHJcbiAgICAgICAgICAgICRtZWRpYS1xdWVyeTogc3RyLXNsaWNlKHVucXVvdGUoJG1lZGlhLXF1ZXJ5KSwgNik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBAbWVkaWEgI3skbWVkaWEtdHlwZSArICRtZWRpYS1xdWVyeX0ge1xyXG4gICAgICAgICAgICBAY29udGVudDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi8vLyBRdWljayBzb3J0XHJcbi8vL1xyXG4vLy8gQGF1dGhvciBTYW0gUmljaGFyZHNcclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxyXG4vLy8gQHBhcmFtIHtMaXN0fSAkbGlzdCAtIExpc3QgdG8gc29ydFxyXG4vLy8gQHJldHVybnMge0xpc3R9IFNvcnRlZCBMaXN0XHJcbkBmdW5jdGlvbiBfbXEtcXVpY2stc29ydCgkbGlzdCkge1xyXG4gICAgJGxlc3M6ICAoKTtcclxuICAgICRlcXVhbDogKCk7XHJcbiAgICAkbGFyZ2U6ICgpO1xyXG5cclxuICAgIEBpZiBsZW5ndGgoJGxpc3QpID4gMSB7XHJcbiAgICAgICAgJHNlZWQ6IG50aCgkbGlzdCwgY2VpbChsZW5ndGgoJGxpc3QpIC8gMikpO1xyXG5cclxuICAgICAgICBAZWFjaCAkaXRlbSBpbiAkbGlzdCB7XHJcbiAgICAgICAgICAgIEBpZiAoJGl0ZW0gPT0gJHNlZWQpIHtcclxuICAgICAgICAgICAgICAgICRlcXVhbDogYXBwZW5kKCRlcXVhbCwgJGl0ZW0pO1xyXG4gICAgICAgICAgICB9IEBlbHNlIGlmICgkaXRlbSA8ICRzZWVkKSB7XHJcbiAgICAgICAgICAgICAgICAkbGVzczogYXBwZW5kKCRsZXNzLCAkaXRlbSk7XHJcbiAgICAgICAgICAgIH0gQGVsc2UgaWYgKCRpdGVtID4gJHNlZWQpIHtcclxuICAgICAgICAgICAgICAgICRsYXJnZTogYXBwZW5kKCRsYXJnZSwgJGl0ZW0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBAcmV0dXJuIGpvaW4oam9pbihfbXEtcXVpY2stc29ydCgkbGVzcyksICRlcXVhbCksIF9tcS1xdWljay1zb3J0KCRsYXJnZSkpO1xyXG4gICAgfVxyXG5cclxuICAgIEByZXR1cm4gJGxpc3Q7XHJcbn1cclxuXHJcbi8vLyBTb3J0IGEgbWFwIGJ5IHZhbHVlcyAod29ya3Mgd2l0aCBudW1iZXJzIG9ubHkpXHJcbi8vL1xyXG4vLy8gQGFjY2VzcyBwcml2YXRlXHJcbi8vLyBAcGFyYW0ge01hcH0gJG1hcCAtIE1hcCB0byBzb3J0XHJcbi8vLyBAcmV0dXJucyB7TWFwfSBNYXAgc29ydGVkIGJ5IHZhbHVlXHJcbkBmdW5jdGlvbiBfbXEtbWFwLXNvcnQtYnktdmFsdWUoJG1hcCkge1xyXG4gICAgJG1hcC1zb3J0ZWQ6ICgpO1xyXG4gICAgJG1hcC1rZXlzOiBtYXAta2V5cygkbWFwKTtcclxuICAgICRtYXAtdmFsdWVzOiBtYXAtdmFsdWVzKCRtYXApO1xyXG4gICAgJG1hcC12YWx1ZXMtc29ydGVkOiBfbXEtcXVpY2stc29ydCgkbWFwLXZhbHVlcyk7XHJcblxyXG4gICAgLy8gUmVvcmRlciBrZXkvdmFsdWUgcGFpcnMgYmFzZWQgb24ga2V5IHZhbHVlc1xyXG4gICAgQGVhY2ggJHZhbHVlIGluICRtYXAtdmFsdWVzLXNvcnRlZCB7XHJcbiAgICAgICAgJGluZGV4OiBpbmRleCgkbWFwLXZhbHVlcywgJHZhbHVlKTtcclxuICAgICAgICAka2V5OiBudGgoJG1hcC1rZXlzLCAkaW5kZXgpO1xyXG4gICAgICAgICRtYXAtc29ydGVkOiBtYXAtbWVyZ2UoJG1hcC1zb3J0ZWQsICgka2V5OiAkdmFsdWUpKTtcclxuXHJcbiAgICAgICAgLy8gVW5zZXQgdGhlIHZhbHVlIGluICRtYXAtdmFsdWVzIHRvIHByZXZlbnQgdGhlIGxvb3BcclxuICAgICAgICAvLyBmcm9tIGZpbmRpbmcgdGhlIHNhbWUgaW5kZXggdHdpY2VcclxuICAgICAgICAkbWFwLXZhbHVlczogc2V0LW50aCgkbWFwLXZhbHVlcywgJGluZGV4LCAwKTtcclxuICAgIH1cclxuXHJcbiAgICBAcmV0dXJuICRtYXAtc29ydGVkO1xyXG59XHJcblxyXG4vLy8gQWRkIGEgYnJlYWtwb2ludFxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbmFtZSAtIE5hbWUgb2YgdGhlIGJyZWFrcG9pbnRcclxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2lkdGggLSBXaWR0aCBvZiB0aGUgYnJlYWtwb2ludFxyXG4vLy9cclxuLy8vIEByZXF1aXJlcyB7VmFyaWFibGV9ICRtcS1icmVha3BvaW50c1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3NcclxuLy8vICBAaW5jbHVkZSBtcS1hZGQtYnJlYWtwb2ludCh0dnNjcmVlbiwgMTkyMHB4KTtcclxuLy8vICBAaW5jbHVkZSBtcSh0dnNjcmVlbikge31cclxuQG1peGluIG1xLWFkZC1icmVha3BvaW50KCRuYW1lLCAkd2lkdGgpIHtcclxuICAgICRuZXctYnJlYWtwb2ludDogKCRuYW1lOiAkd2lkdGgpO1xyXG4gICAgJG1xLWJyZWFrcG9pbnRzOiBtYXAtbWVyZ2UoJG1xLWJyZWFrcG9pbnRzLCAkbmV3LWJyZWFrcG9pbnQpICFnbG9iYWw7XHJcbiAgICAkbXEtYnJlYWtwb2ludHM6IF9tcS1tYXAtc29ydC1ieS12YWx1ZSgkbXEtYnJlYWtwb2ludHMpICFnbG9iYWw7XHJcbn1cclxuXHJcbi8vLyBTaG93IHRoZSBhY3RpdmUgYnJlYWtwb2ludCBpbiB0aGUgdG9wIHJpZ2h0IGNvcm5lciBvZiB0aGUgdmlld3BvcnRcclxuLy8vIEBsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEjc2VlaW5nLXRoZS1jdXJyZW50bHktYWN0aXZlLWJyZWFrcG9pbnRcclxuLy8vXHJcbi8vLyBAcGFyYW0ge0xpc3R9ICRzaG93LWJyZWFrcG9pbnRzICgkbXEtc2hvdy1icmVha3BvaW50cykgLSBMaXN0IG9mIGJyZWFrcG9pbnRzIHRvIHNob3cgaW4gdGhlIHRvcCByaWdodCBjb3JuZXJcclxuLy8vIEBwYXJhbSB7TWFwfSAkYnJlYWtwb2ludHMgKCRtcS1icmVha3BvaW50cykgLSBCcmVha3BvaW50IG5hbWVzIGFuZCBzaXplc1xyXG4vLy9cclxuLy8vIEByZXF1aXJlcyB7VmFyaWFibGV9ICRtcS1icmVha3BvaW50c1xyXG4vLy8gQHJlcXVpcmVzIHtWYXJpYWJsZX0gJG1xLXNob3ctYnJlYWtwb2ludHNcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzXHJcbi8vLyAgLy8gU2hvdyBicmVha3BvaW50cyB1c2luZyBnbG9iYWwgc2V0dGluZ3NcclxuLy8vICBAaW5jbHVkZSBtcS1zaG93LWJyZWFrcG9pbnRzO1xyXG4vLy9cclxuLy8vICAvLyBTaG93IGJyZWFrcG9pbnRzIHVzaW5nIGN1c3RvbSBzZXR0aW5nc1xyXG4vLy8gIEBpbmNsdWRlIG1xLXNob3ctYnJlYWtwb2ludHMoKEwsIFhMKSwgKFM6IDMwMHB4LCBMOiA4MDBweCwgWEw6IDEyMDBweCkpO1xyXG5AbWl4aW4gbXEtc2hvdy1icmVha3BvaW50cygkc2hvdy1icmVha3BvaW50czogJG1xLXNob3ctYnJlYWtwb2ludHMsICRicmVha3BvaW50czogJG1xLWJyZWFrcG9pbnRzKSB7XHJcbiAgICBib2R5OmJlZm9yZSB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0ZDRjhFMztcclxuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0ZCRUVENTtcclxuICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNGQkVFRDU7XHJcbiAgICAgICAgY29sb3I6ICNDMDk4NTM7XHJcbiAgICAgICAgZm9udDogc21hbGwtY2FwdGlvbjtcclxuICAgICAgICBwYWRkaW5nOiAzcHggNnB4O1xyXG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgICAgICByaWdodDogMDtcclxuICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgei1pbmRleDogMTAwO1xyXG5cclxuICAgICAgICAvLyBMb29wIHRocm91Z2ggdGhlIGJyZWFrcG9pbnRzIHRoYXQgc2hvdWxkIGJlIHNob3duXHJcbiAgICAgICAgQGVhY2ggJHNob3ctYnJlYWtwb2ludCBpbiAkc2hvdy1icmVha3BvaW50cyB7XHJcbiAgICAgICAgICAgICR3aWR0aDogbXEtZ2V0LWJyZWFrcG9pbnQtd2lkdGgoJHNob3ctYnJlYWtwb2ludCwgJGJyZWFrcG9pbnRzKTtcclxuICAgICAgICAgICAgQGluY2x1ZGUgbXEoJHNob3ctYnJlYWtwb2ludCwgJGJyZWFrcG9pbnRzOiAkYnJlYWtwb2ludHMpIHtcclxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiI3skc2hvdy1icmVha3BvaW50fSDiiaUgI3skd2lkdGh9ICgje21xLXB4MmVtKCR3aWR0aCl9KVwiO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5AaWYgbGVuZ3RoKCRtcS1zaG93LWJyZWFrcG9pbnRzKSA+IDAge1xyXG4gICAgQGluY2x1ZGUgbXEtc2hvdy1icmVha3BvaW50cztcclxufVxyXG4iLCIkZXh0ZW5zaW9uczogcGRmIHhscyBwcHQgZG9jO1xyXG5cclxuQG1peGluIGxpbmsge1xyXG4gIEBpbmNsdWRlIHVpLXR5cG9ncmFwaHkobGluayk7XHJcbiAgY29sb3I6IGNvbG9yKHNlY29uZGFyeSk7XHJcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG5cclxuICAmOmhvdmVyLCAmOmZvY3VzIHtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIGxpbmstLXJlZCB7XHJcbiAgQGluY2x1ZGUgdWktdHlwb2dyYXBoeShib2R5KTtcclxuICBjb2xvcjogY29sb3IocHJpbWFyeSk7XHJcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG5cclxuICAmOmhvdmVyLCAmOmZvY3VzIHtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIGxpbmstLXJlZHNtIHtcclxuICBAaW5jbHVkZSB1aS10eXBvZ3JhcGh5KGNhcHRpb24pO1xyXG4gIGNvbG9yOiBjb2xvcihwcmltYXJ5KTtcclxuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcblxyXG4gICY6aG92ZXIsICY6Zm9jdXMge1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gbGluay0tcGRmIHtcclxuICBAaW5jbHVkZSB1aS10eXBvZ3JhcGh5KHBkZik7XHJcbiAgY29sb3I6IGNvbG9yKHNlY29uZGFyeSk7XHJcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG5cclxuICAmOmhvdmVyLCAmOmZvY3VzIHtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIGxpbmstLWFycm93IHtcclxuICBAaW5jbHVkZSB1aS10eXBvZ3JhcGh5KHBkZik7XHJcbiAgY29sb3I6IGNvbG9yKHNlY29uZGFyeSk7XHJcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcblxyXG4gICY6OmFmdGVyIHtcclxuICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBtYXJnaW4tbGVmdDogc3BhY2UoMSk7XHJcbiAgICBoZWlnaHQ6IHNwYWNlKDIuNSk7XHJcbiAgICB3aWR0aDogc3BhY2UoMi41KTtcclxuICAgIGJvdHRvbTogM3B4O1xyXG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcvLS9tZWRpYS9Qcm9qZWN0L1RUQy9EZXZQcm90by9JY29ucy9hcnJvdy1iYWNrZ3JvdW5kLXJpZ2h0LW91dGxpbmUuc3ZnJyk7XHJcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xyXG4gIH1cclxuXHJcbiAgJjpob3ZlciwgJjpmb2N1cyB7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBsaW5rLWV4dGVuc2lvbnMge1xyXG4gIEBlYWNoICRleHRlbnNpb24gaW4gJGV4dGVuc2lvbnMge1xyXG4gICAgJltocmVmKj1cIiN7JGV4dGVuc2lvbn1cIl0ge1xyXG4gICAgICBwYWRkaW5nLXJpZ2h0OiBzcGFjZSgwLjUpO1xyXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG4gICAgICAmOjphZnRlciB7XHJcbiAgICAgICAgcmlnaHQ6IC0ycHg7XHJcbiAgICAgICAgdG9wOiAwO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQGlmICRleHRlbnNpb24gPT0gcGRmIHtcclxuICAgICAgJltocmVmKj1cIiN7JGV4dGVuc2lvbn1cIl06OmFmdGVyIHtcclxuICAgICAgICBjb250ZW50OiBcIiBcIjtcclxuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLy0vbWVkaWEvUHJvamVjdC9UVEMvRGV2UHJvdG8vSWNvbnMvcGRmLXJlZC5zdmcpO1xyXG4gICAgICAgIGhlaWdodDogMjVweDtcclxuICAgICAgICB3aWR0aDogMjNweDtcclxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiAyM3B4IDI1cHg7XHJcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuICAgICAgICB3aGl0ZS1zcGFjZTogcHJlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBAZWxzZSB7XHJcbiAgICAgICZbaHJlZio9XCIjeyRleHRlbnNpb259XCJdOjphZnRlciB7XHJcbiAgICAgICAgY29udGVudDogXCIuI3skZXh0ZW5zaW9ufVwiO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4iXX0= */
