.footer {
  position: relative;
  color: white;
  width: 100%;
  z-index: 1;
  opacity: 0;
  -webkit-transition: opacity 1000ms;
          transition: opacity 1000ms;
}

.footer.show {
  opacity: 1;
}

@media only screen and (max-width: 767px) {
  .footer {
    opacity: 1;
  }
}

.footer .footer-inner {
  max-width: 1500px;
  width: 100%;
  margin: 0 auto;
  position: relative;
}

.footer .footer-main {
  padding: 80px 60px;
  font-size: 0px;
}

.footer .footer-main .contact, .footer .footer-main .nav, .footer .footer-main .email-and-social {
  font-size: 1rem;
  display: inline-block;
  width: 33%;
}

.footer .footer-main .contact {
  display: inline-block;
  vertical-align: middle;
  font-size: 22px;
}

.footer .footer-main .contact .logo {
  height: 210px;
  width: 225px;
  margin-bottom: 20px;
}

.footer .footer-main .contact .logo svg path {
  fill: #ffffff !important;
}

.footer .footer-main .nav {
  display: inline-block;
  vertical-align: middle;
  font-size: 0;
}

.footer .footer-main .nav a {
  display: block;
  color: white;
}

.footer .footer-main .nav .big-link {
  font-size: 30px;
  line-height: 30px;
  margin-bottom: 60px;
  font-family: 'GeogrotesqueCond-SmBd';
}

.footer .footer-main .nav .big-link:last-child {
  margin-bottom: 0px;
}

.footer .footer-main .nav .big-link img {
  margin-right: 15px;
  margin-top: 5px;
}

.footer .footer-main .nav .big-link img, .footer .footer-main .nav .big-link span {
  display: inline-block;
  vertical-align: middle;
}

.footer .footer-main .nav .small-link {
  font-size: 22px;
  margin-bottom: 40px;
  font-family: 'GeogrotesqueCond-Rg';
}

.footer .footer-main .nav .small-link:last-child {
  margin-bottom: 0px;
}

.footer .footer-main .nav .main {
  padding-right: 35px;
  border-right: solid 1px #ffffff;
  padding-top: 20px;
  padding-bottom: 15px;
}

.footer .footer-main .nav .secondary {
  padding-left: 35px;
  padding-top: 25px;
}

.footer .footer-main .nav .main, .footer .footer-main .nav .secondary {
  font-size: 1rem;
  display: inline-block;
  vertical-align: top;
}

.footer .footer-main .email-and-social {
  display: inline-block;
  vertical-align: middle;
}

.footer .footer-main .email {
  font-size: 0px;
  margin-bottom: 50px;
}

.footer .footer-main .email ::-webkit-input-placeholder {
  /* Chrome/Opera/Safari */
  color: white;
  font-style: italic;
  font-family: 'GeogrotesqueCond-MdIt';
  font-size: 20px;
}

.footer .footer-main .email ::-moz-placeholder {
  /* Firefox 19+ */
  color: white;
  font-style: italic;
  font-family: 'GeogrotesqueCond-MdIt';
  font-size: 20px;
}

.footer .footer-main .email :-ms-input-placeholder {
  /* IE 10+ */
  color: white;
  font-style: italic;
  font-family: 'GeogrotesqueCond-MdIt';
  font-size: 20px;
}

.footer .footer-main .email :-moz-placeholder {
  /* Firefox 18- */
  color: white;
  font-style: italic;
  font-family: 'GeogrotesqueCond-MdIt';
  font-size: 20px;
}

.footer .footer-main .email p {
  font-size: 1rem;
}

.footer .footer-main .email .input-wrapper {
  position: relative;
}

.footer .footer-main .email input {
  position: relative;
  top: 0;
  left: 0;
  border: solid 2px white;
  display: inline-block;
  vertical-align: middle;
  height: 60px;
  font-size: 1rem;
  background: #D0232B;
  color: white;
  padding: 0px 20px;
  width: 60%;
}

.footer .footer-main .email input:focus, .footer .footer-main .email input:active {
  outline: none;
}

.footer .footer-main .email .button {
  position: absolute;
  top: 0;
  right: 0;
  cursor: pointer;
  color: #D0232B;
  text-align: center;
  background: white;
  display: inline-block;
  vertical-align: middle;
  line-height: 60px;
  height: 60px;
  width: 40%;
  font-size: 20px;
  font-family: 'Geogrotesque-Bold';
  border: 3px solid white;
}

.footer .footer-main .social p {
  font-family: 'HandOfSeanPro-Regular';
  font-size: 30px;
  margin-bottom: 10px;
}

.footer .footer-main .social ul li {
  display: inline-block;
  padding: 0px;
  margin-right: 15px;
  border: solid 1px rgba(0, 0, 0, 0);
  border-radius: 14px;
}

.footer .footer-main .social ul li:last-child {
  margin-right: 0px;
}

.footer .footer-main .social ul li a {
  display: block;
  width: 48px;
  height: 48px;
  line-height: 48px;
}

.footer .footer-main .social ul li a i {
  font-size: 48px;
  color: #ffffff;
  -webkit-transition: color 0.15s ease;
          transition: color 0.15s ease;
}

.footer .footer-main .social ul li a i:hover {
  color: #9C0D0F;
}

.footer .footer-bottom {
  padding: 24px 75px 18px;
  position: relative;
  color: white;
}

.footer .footer-bottom p {
  font-size: 15px;
}

.footer .footer-bottom a {
  color: white;
  text-decoration: underline;
  font-size: 15px;
}

.footer .footer-bottom .logo {
  position: absolute;
  right: 0;
  top: 50%;
  -webkit-transform: translate(0, -50%);
      -ms-transform: translate(0, -50%);
          transform: translate(0, -50%);
  width: 180px;
  height: 100%;
  background-image: url(../../img/footer/made_with.svg);
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
}

.footer .footer-button-scroll {
  position: absolute;
  right: 0;
}

.footer .footer-button-scroll .button-scroll {
  margin-right: 50px;
  -webkit-transform: translateY(-75px);
      -ms-transform: translateY(-75px);
          transform: translateY(-75px);
  height: 75px;
  width: 75px;
  background-color: rgba(0, 0, 0, 0.5);
  text-align: center;
}

.footer .footer-button-scroll .button-scroll img {
  margin-top: 30px;
}

.footer .footer-button-scroll .button-scroll:hover {
  cursor: pointer;
}

@media (max-width: 1450px) {
  .footer .footer-inner {
    max-width: 700px;
    padding-top: 50px;
  }
  .footer .footer-main {
    padding: 15px 40px;
  }
  .footer .footer-main .contact {
    width: 50%;
    font-size: 0;
    text-align: center;
  }
  .footer .footer-main .contact .logo {
    margin: 0 auto;
    margin-bottom: 20px;
  }
  .footer .footer-main .contact p {
    font-size: 22px;
  }
  .footer .footer-main .nav {
    width: 49%;
    position: absolute;
    right: 0;
    top: 10%;
  }
  .footer .footer-main .nav .main {
    width: 100%;
    border-right: none;
    padding-right: 0;
    border-bottom: 1px solid #e37b80;
  }
  .footer .footer-main .nav .main .big-link {
    text-align: center;
    margin-bottom: 30px;
  }
  .footer .footer-main .nav .secondary {
    padding: 0;
    width: 100%;
    text-align: center;
  }
  .footer .footer-main .nav .secondary a {
    margin-bottom: 10px;
    margin-top: 10px;
  }
  .footer .footer-main .email-and-social {
    width: 100%;
    margin-top: 40px;
  }
  .footer .footer-main .email-and-social .email {
    text-align: center;
    margin-bottom: 20px;
    /**
   * For modern browsers
   * 1. The space content is one way to avoid an Opera bug when the
   *    contenteditable attribute is included anywhere else in the document.
   *    Otherwise it causes space to appear at the top and bottom of elements
   *    that are clearfixed.
   * 2. The use of `table` rather than `block` is only necessary if using
   *    `:before` to contain the top-margins of child elements.
   */
    /**
   * For IE 6/7 only
   * Include this rule to trigger hasLayout and contain floats.
   */
  }
  .footer .footer-main .email-and-social .email:before, .footer .footer-main .email-and-social .email:after {
    content: " ";
    /* 1 */
    display: table;
    /* 2 */
  }
  .footer .footer-main .email-and-social .email:after {
    clear: both;
  }
  .footer .footer-main .email-and-social .email {
    *zoom: 1;
  }
  .footer .footer-main .email-and-social .email .input-wrapper {
    position: relative;
  }
  .footer .footer-main .email-and-social .email input {
    float: left;
    width: 60%;
    margin-bottom: 0;
  }
  .footer .footer-main .email-and-social .email .button {
    float: left;
    width: 40%;
  }
  .footer .footer-main .email-and-social .social {
    text-align: center;
    margin-bottom: 10px;
  }
  .footer .footer-bottom {
    padding: 20px;
    /**
   * For modern browsers
   * 1. The space content is one way to avoid an Opera bug when the
   *    contenteditable attribute is included anywhere else in the document.
   *    Otherwise it causes space to appear at the top and bottom of elements
   *    that are clearfixed.
   * 2. The use of `table` rather than `block` is only necessary if using
   *    `:before` to contain the top-margins of child elements.
   */
    /**
   * For IE 6/7 only
   * Include this rule to trigger hasLayout and contain floats.
   */
  }
  .footer .footer-bottom:before, .footer .footer-bottom:after {
    content: " ";
    /* 1 */
    display: table;
    /* 2 */
  }
  .footer .footer-bottom:after {
    clear: both;
  }
  .footer .footer-bottom {
    *zoom: 1;
  }
  .footer .footer-bottom p, .footer .footer-bottom a {
    font-size: 11px;
  }
  .footer .footer-bottom .terms {
    float: left;
    font-size: 11px;
    padding-top: 15px;
  }
  .footer .footer-bottom .logo {
    position: relative;
    float: right;
    right: auto;
    top: auto;
    -webkit-transform: none;
        -ms-transform: none;
            transform: none;
    width: 92px;
    height: 53px;
  }
}

@media only screen and (max-width: 767px) {
  .footer .footer-main {
    padding: 15px 40px;
  }
  .footer .footer-main .contact {
    width: 100%;
  }
  .footer .footer-main .contact .logo {
    width: 100%;
    height: 90px;
  }
  .footer .footer-main .contact .logo svg {
    width: 100%;
    height: 100%;
  }
  .footer .footer-main .contact p {
    text-align: center;
    font-size: 18px;
    line-height: 20px;
  }
  .footer .footer-main .nav {
    width: 100%;
    position: relative;
  }
  .footer .footer-main .nav .main {
    width: 100%;
    border-right: none;
    padding-right: 0;
    border-bottom: 1px solid #e37b80;
  }
  .footer .footer-main .nav .main .big-link {
    text-align: center;
    font-size: 15px;
    margin-bottom: 10px;
  }
  .footer .footer-main .nav .secondary {
    padding: 0;
    width: 100%;
    text-align: center;
  }
  .footer .footer-main .nav .secondary a {
    font-size: 15px;
    margin-bottom: 10px;
    margin-top: 40px;
  }
  .footer .footer-main .email-and-social {
    width: 100%;
    margin-top: 40px;
  }
  .footer .footer-main .email-and-social .email {
    text-align: center;
    margin-bottom: 20px;
    /**
   * For modern browsers
   * 1. The space content is one way to avoid an Opera bug when the
   *    contenteditable attribute is included anywhere else in the document.
   *    Otherwise it causes space to appear at the top and bottom of elements
   *    that are clearfixed.
   * 2. The use of `table` rather than `block` is only necessary if using
   *    `:before` to contain the top-margins of child elements.
   */
    /**
   * For IE 6/7 only
   * Include this rule to trigger hasLayout and contain floats.
   */
  }
  .footer .footer-main .email-and-social .email:before, .footer .footer-main .email-and-social .email:after {
    content: " ";
    /* 1 */
    display: table;
    /* 2 */
  }
  .footer .footer-main .email-and-social .email:after {
    clear: both;
  }
  .footer .footer-main .email-and-social .email {
    *zoom: 1;
  }
  .footer .footer-main .email-and-social .email .input-wrapper {
    position: relative;
  }
  .footer .footer-main .email-and-social .email input {
    float: left;
    width: 60%;
    margin-bottom: 0;
  }
  .footer .footer-main .email-and-social .email .button {
    float: left;
    width: 40%;
  }
  .footer .footer-main .email-and-social .social {
    text-align: center;
    margin-bottom: 10px;
  }
  .footer .footer-main .email-and-social .links li {
    margin-right: 10px;
  }
  .footer .footer-bottom {
    padding: 20px;
    /**
   * For modern browsers
   * 1. The space content is one way to avoid an Opera bug when the
   *    contenteditable attribute is included anywhere else in the document.
   *    Otherwise it causes space to appear at the top and bottom of elements
   *    that are clearfixed.
   * 2. The use of `table` rather than `block` is only necessary if using
   *    `:before` to contain the top-margins of child elements.
   */
    /**
   * For IE 6/7 only
   * Include this rule to trigger hasLayout and contain floats.
   */
  }
  .footer .footer-bottom:before, .footer .footer-bottom:after {
    content: " ";
    /* 1 */
    display: table;
    /* 2 */
  }
  .footer .footer-bottom:after {
    clear: both;
  }
  .footer .footer-bottom {
    *zoom: 1;
  }
  .footer .footer-bottom p, .footer .footer-bottom a {
    font-size: 11px;
  }
  .footer .footer-bottom .terms {
    float: left;
    font-size: 11px;
    padding-top: 15px;
    max-width: calc(100% - 95px);
  }
  .footer .footer-bottom .logo {
    position: relative;
    float: right;
    right: auto;
    top: auto;
    -webkit-transform: none;
        -ms-transform: none;
            transform: none;
    width: 92px;
    height: 53px;
  }
  .footer .footer-bottom .footer-inner {
    padding: 0;
  }
}

@media (max-width: 400px) {
  .footer .footer-main .email-and-social .links li {
    margin-right: 10px;
  }
  .footer .footer-main .email-and-social .links li a {
    width: 35px;
    height: 35px;
    line-height: 35px;
  }
  .footer .footer-main .email-and-social .links li a i {
    font-size: 35px;
  }
}

@media only screen and (max-width: 357px) {
  .footer .footer-bottom .terms {
    padding-top: 0;
  }
}

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZvb3Rlci5zY3NzIiwiLi4vLi4vY29yZS9zdHlsZXMvX21peGlucy5zY3NzIiwiLi4vLi4vY29yZS9zdHlsZXMvX3ZhcmlhYmxlcy5zY3NzIiwiZm9vdGVyLmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQTtFQUNFLG1CQUFrQjtFQUNsQixhQUFXO0VBQ1gsWUFBVTtFQUNWLFdBQVU7RUM4T1YsV0FBVTtFQUNWLG1DQzlMMEI7VUQ4TDFCLDJCQzlMMEI7Q0Y0TDNCOztBQWpQRDtFQ3NQSSxXQUFVO0NBQ1g7O0FBRUQ7RUR6UEY7SUMwUEksV0FBVTtHRFRiO0NHbk9BOztBSGREO0VBT0ksa0JFc0VtQjtFRnJFbkIsWUFBVTtFQUNWLGVBQWE7RUFDYixtQkFBa0I7Q0FDbkI7O0FBQ0Q7RUFDRSxtQkFBaUI7RUFDakIsZUFBYTtDQXFMZDs7QUFuTUg7RUFnQk0sZ0JBQWM7RUFDZCxzQkFBcUI7RUFDckIsV0FBUztDQUNWOztBQW5CTDtFQXNCTSxzQkFBcUI7RUFDckIsdUJBQXNCO0VBQ3RCLGdCQUFjO0NBU2Y7O0FBakNMO0VBMEJRLGNBQVk7RUFDWixhQUFXO0VBQ1gsb0JBQWtCO0NBSW5COztBQWhDUDtFQThCVSx5QkFBdUI7Q0FDeEI7O0FBSUw7RUFDRSxzQkFBcUI7RUFDckIsdUJBQXNCO0VBQ3RCLGFBQVc7Q0E2Q1o7O0FBNUNDO0VBQ0UsZUFBYztFQUNkLGFBQVc7Q0FDWjs7QUExQ1A7RUE0Q1EsZ0JBQWM7RUFDZCxrQkFBaUI7RUFDakIsb0JBQWtCO0VBQ2xCLHFDQUFvQztDQVlyQzs7QUEzRFA7RUFpRFUsbUJBQWlCO0NBQ2xCOztBQUNEO0VBQ0UsbUJBQWlCO0VBQ2pCLGdCQUFjO0NBQ2Y7O0FBdERUO0VBd0RVLHNCQUFxQjtFQUNyQix1QkFBc0I7Q0FDdkI7O0FBMURUO0VBNkRRLGdCQUFjO0VBQ2Qsb0JBQWtCO0VBQ2xCLG1DQUFrQztDQUluQzs7QUFuRVA7RUFpRVUsbUJBQWlCO0NBQ2xCOztBQUVIO0VBQ0Usb0JBQWtCO0VBQ2xC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aklJLFlBQVc7R0FDZDtFRGdJRDtLQ3pISSxRQUFRO0dBQ1g7RUR3SEQ7SUFpR00sZ0JBQWU7R0FDaEI7RUFFRDtJQUNFLFlBQVc7SUFDWCxnQkFBZTtJQUNmLGtCQUFpQjtJQUNqQiw2QkFBNEI7R0FDN0I7RUFFRDtJQUNFLG1CQUFrQjtJQUNsQixhQUFZO0lBQ1osWUFBVztJQUNYLFVBQVM7SUFDVCx3QkFBZTtRQUFmLG9CQUFlO1lBQWYsZ0JBQWU7SUFDZixZQUFXO0lBQ1gsYUFBWTtHQUNiO0VBbkhMO0lBc0hNLFdBQVU7R0FDWDtDRytGTjs7QUgxRkQ7RUFDRTtJQUtVLG1CQUFrQjtHQVNuQjtFQVJDO0lBQ0UsWUFBVTtJQUNWLGFBQVc7SUFDWCxrQkFBaUI7R0FJbEI7RUFiWDtJQVdjLGdCQUFjO0dBQ2Y7Q0cyRmQ7O0FIbEZEO0VBQ0U7SUFHTSxlQUFjO0dBQ2Y7Q0dtRk4iLCJmaWxlIjoiZm9vdGVyLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIkBpbXBvcnQgXCIuLi8uLi9jb3JlL3N0eWxlcy9fdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiLi4vLi4vY29yZS9zdHlsZXMvX21peGluc1wiO1xuXG4uZm9vdGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBjb2xvcjp3aGl0ZTtcbiAgd2lkdGg6MTAwJTtcbiAgei1pbmRleDogMTtcbiAgQGluY2x1ZGUgZmFkZWluO1xuICAuZm9vdGVyLWlubmVyIHtcbiAgICBtYXgtd2lkdGg6ICRncmlkLW1heC13aWR0aDtcbiAgICB3aWR0aDoxMDAlO1xuICAgIG1hcmdpbjowIGF1dG87XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG4gIC5mb290ZXItbWFpbiB7XG4gICAgcGFkZGluZzo4MHB4IDYwcHg7XG4gICAgZm9udC1zaXplOjBweDtcbiAgICAuY29udGFjdCwgLm5hdiwgLmVtYWlsLWFuZC1zb2NpYWwge1xuICAgICAgZm9udC1zaXplOjFyZW07XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB3aWR0aDozMyU7XG4gICAgfVxuXG4gICAgLmNvbnRhY3Qge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgIGZvbnQtc2l6ZToyMnB4O1xuICAgICAgLmxvZ28ge1xuICAgICAgICBoZWlnaHQ6MjEwcHg7XG4gICAgICAgIHdpZHRoOjIyNXB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOjIwcHg7XG4gICAgICAgIHN2ZyBwYXRoIHtcbiAgICAgICAgICBmaWxsOiNmZmZmZmYgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC5uYXYge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgIGZvbnQtc2l6ZTowO1xuICAgICAgYSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBjb2xvcjp3aGl0ZTtcbiAgICAgIH1cbiAgICAgIC5iaWctbGluayB7XG4gICAgICAgIGZvbnQtc2l6ZTozMHB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMzBweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTo2MHB4O1xuICAgICAgICBmb250LWZhbWlseTogJ0dlb2dyb3Rlc3F1ZUNvbmQtU21CZCc7XG4gICAgICAgICY6bGFzdC1jaGlsZHtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOjBweDtcbiAgICAgICAgfVxuICAgICAgICBpbWcge1xuICAgICAgICAgIG1hcmdpbi1yaWdodDoxNXB4O1xuICAgICAgICAgIG1hcmdpbi10b3A6NXB4O1xuICAgICAgICB9XG4gICAgICAgIGltZywgc3BhbiB7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC5zbWFsbC1saW5rIHtcbiAgICAgICAgZm9udC1zaXplOjIycHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206NDBweDtcbiAgICAgICAgZm9udC1mYW1pbHk6ICdHZW9ncm90ZXNxdWVDb25kLVJnJztcbiAgICAgICAgJjpsYXN0LWNoaWxke1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206MHB4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAubWFpbiB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6MzVweDtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OnNvbGlkIDFweCAkd2hpdGU7XG4gICAgICAgIHBhZGRpbmctdG9wOjIwcHg7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOjE1cHg7XG4gICAgICB9XG4gICAgICAuc2Vjb25kYXJ5IHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OjM1cHg7XG4gICAgICAgIHBhZGRpbmctdG9wOjI1cHg7XG4gICAgICB9XG4gICAgICAubWFpbiwuc2Vjb25kYXJ5IHtcbiAgICAgICAgZm9udC1zaXplOjFyZW07XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuZW1haWwtYW5kLXNvY2lhbCB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cblxuICAgIC5lbWFpbCB7XG4gICAgICBmb250LXNpemU6MHB4O1xuXG4gICAgICBtYXJnaW4tYm90dG9tOjUwcHg7XG5cbiAgICAgIDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7IC8qIENocm9tZS9PcGVyYS9TYWZhcmkgKi9cbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAnR2VvZ3JvdGVzcXVlQ29uZC1NZEl0JztcbiAgICAgICAgZm9udC1zaXplOjIwcHg7XG4gICAgICB9XG4gICAgICA6Oi1tb3otcGxhY2Vob2xkZXIgeyAvKiBGaXJlZm94IDE5KyAqL1xuICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgZm9udC1mYW1pbHk6ICdHZW9ncm90ZXNxdWVDb25kLU1kSXQnO1xuICAgICAgICBmb250LXNpemU6MjBweDtcbiAgICAgIH1cbiAgICAgIDotbXMtaW5wdXQtcGxhY2Vob2xkZXIgeyAvKiBJRSAxMCsgKi9cbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAnR2VvZ3JvdGVzcXVlQ29uZC1NZEl0JztcbiAgICAgICAgZm9udC1zaXplOjIwcHg7XG4gICAgICB9XG4gICAgICA6LW1vei1wbGFjZWhvbGRlciB7IC8qIEZpcmVmb3ggMTgtICovXG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICBmb250LWZhbWlseTogJ0dlb2dyb3Rlc3F1ZUNvbmQtTWRJdCc7XG4gICAgICAgIGZvbnQtc2l6ZToyMHB4O1xuICAgICAgfVxuICAgICAgcCB7XG4gICAgICAgIGZvbnQtc2l6ZToxcmVtO1xuICAgICAgfVxuICAgICAgLmlucHV0LXdyYXBwZXIge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB9XG4gICAgICBpbnB1dCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3JkZXI6c29saWQgMnB4IHdoaXRlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIGhlaWdodDo2MHB4O1xuICAgICAgICBmb250LXNpemU6MXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDojRDAyMzJCO1xuICAgICAgICBjb2xvcjp3aGl0ZTtcbiAgICAgICAgcGFkZGluZzowcHggMjBweDtcbiAgICAgICAgd2lkdGg6IDYwJTtcbiAgICAgICAgJjpmb2N1cywgJjphY3RpdmUge1xuICAgICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC5idXR0b257XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBjb2xvcjojRDAyMzJCO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJhY2tncm91bmQ6d2hpdGU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDYwcHg7XG4gICAgICAgIGhlaWdodDo2MHB4O1xuICAgICAgICB3aWR0aDo0MCU7XG4gICAgICAgIGZvbnQtc2l6ZToyMHB4O1xuICAgICAgICBmb250LWZhbWlseTogJ0dlb2dyb3Rlc3F1ZS1Cb2xkJztcbiAgICAgICAgYm9yZGVyOiAzcHggc29saWQgd2hpdGU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnNvY2lhbCB7XG4gICAgICBwIHtcbiAgICAgICAgZm9udC1mYW1pbHk6ICdIYW5kT2ZTZWFuUHJvLVJlZ3VsYXInO1xuICAgICAgICBmb250LXNpemU6MzBweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbToxMHB4O1xuICAgICAgfVxuICAgICAgdWwge1xuICAgICAgICBsaSB7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgIHBhZGRpbmc6MHB4O1xuICAgICAgICAgIG1hcmdpbi1yaWdodDoxNXB4O1xuICAgICAgICAgIGJvcmRlcjogc29saWQgMXB4IHJnYmEoMCwwLDAsMCk7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgICAgICAgICAmOmxhc3QtY2hpbGR7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6MHB4O1xuICAgICAgICAgIH1cbiAgICAgICAgICBhIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6NDhweDtcbiAgICAgICAgICAgIGhlaWdodDo0OHB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDQ4cHg7XG4gICAgICAgICAgICBpIHtcbiAgICAgICAgICAgICAgZm9udC1zaXplOjQ4cHg7XG4gICAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgICAgICAgIHRyYW5zaXRpb246IGNvbG9yICR0cmFuc2l0aW9uRmFzdCBlYXNlO1xuICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGJyYW5kRGFyaztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICB9XG4gIC5mb290ZXItYm90dG9tIHtcbiAgICBwYWRkaW5nOjI0cHggNzVweCAxOHB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBjb2xvcjp3aGl0ZTtcbiAgICBwIHtcbiAgICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICB9XG4gICAgYSB7XG4gICAgICBjb2xvcjp3aGl0ZTtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgZm9udC1zaXplOiAxNXB4O1xuICAgIH1cbiAgICAubG9nbyB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICByaWdodDowO1xuICAgICAgdG9wOjUwJTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsLTUwJSk7XG4gICAgICB3aWR0aDoxODBweDtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi8uLi9pbWcvZm9vdGVyL21hZGVfd2l0aC5zdmcpO1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgICB9XG4gIH1cblxuICAuZm9vdGVyLWJ1dHRvbi1zY3JvbGwge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogMDtcbiAgICAuYnV0dG9uLXNjcm9sbCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDUwcHg7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTc1cHgpO1xuICAgICAgaGVpZ2h0OiA3NXB4O1xuICAgICAgd2lkdGg6IDc1cHg7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gICAgICAvL29wYWNpdHk6IDAuNTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGltZyB7XG4gICAgICAgIG1hcmdpbi10b3A6IDMwcHg7XG4gICAgICB9XG4gICAgfVxuICAgIC5idXR0b24tc2Nyb2xsOmhvdmVyIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG4gIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDE0NTBweCkge1xuICAuZm9vdGVyIHtcbiAgICAuZm9vdGVyLWlubmVyIHtcbiAgICAgIG1heC13aWR0aDogNzAwcHg7XG4gICAgICBwYWRkaW5nLXRvcDogNTBweDtcbiAgICB9XG4gICAgLmZvb3Rlci1tYWluIHtcbiAgICAgIHBhZGRpbmc6IDE1cHggNDBweDtcblxuXG4gICAgICAuY29udGFjdCB7XG4gICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgIGZvbnQtc2l6ZTogMDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAubG9nbyB7XG4gICAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICAgICAgfVxuICAgICAgICBwIHtcbiAgICAgICAgICBmb250LXNpemU6IDIycHg7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLm5hdiB7XG4gICAgICAgIHdpZHRoOiA0OSU7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHRvcDogMTAlO1xuXG4gICAgICAgIC5tYWluIHtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2UzN2I4MDtcblxuICAgICAgICAgIC5iaWctbGluayB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5zZWNvbmRhcnkge1xuICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgIGEge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5lbWFpbC1hbmQtc29jaWFsIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1hcmdpbi10b3A6IDQwcHg7XG5cbiAgICAgICAgLmVtYWlsIHtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICAgICAgICBAaW5jbHVkZSBtaWNyb2ZpeDtcblxuICAgICAgICAgIC5pbnB1dC13cmFwcGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpbnB1dCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIHdpZHRoOiA2MCU7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC5idXR0b24ge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICB3aWR0aDogNDAlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5zb2NpYWwge1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmZvb3Rlci1ib3R0b20ge1xuICAgICAgcGFkZGluZzogMjBweDtcbiAgICAgIEBpbmNsdWRlIG1pY3JvZml4O1xuXG4gICAgICBwLCBhIHtcbiAgICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgICAgfVxuXG4gICAgICAudGVybXMge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgICAgICBwYWRkaW5nLXRvcDogMTVweDtcbiAgICAgIH1cblxuICAgICAgLmxvZ28ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgICAgICB3aWR0aDogOTJweDtcbiAgICAgICAgaGVpZ2h0OiA1M3B4O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5cbkBtZWRpYSAjeyRtb2JpbGV9IHtcbiAgLmZvb3RlciB7XG5cbiAgICAuZm9vdGVyLW1haW4ge1xuICAgICAgcGFkZGluZzogMTVweCA0MHB4O1xuXG4gICAgICAuY29udGFjdCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgIC5sb2dvIHtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICBoZWlnaHQ6IDkwcHg7XG4gICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHAge1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgIC5uYXYge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIC5tYWluIHtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2UzN2I4MDtcblxuICAgICAgICAgIC5iaWctbGluayB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBmb250LXNpemU6IDE1cHg7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuXG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnNlY29uZGFyeSB7XG4gICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgYSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDE1cHg7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogNDBweDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmVtYWlsLWFuZC1zb2NpYWwge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luLXRvcDogNDBweDtcblxuICAgICAgICAuZW1haWwge1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgICAgICAgIEBpbmNsdWRlIG1pY3JvZml4O1xuXG4gICAgICAgICAgLmlucHV0LXdyYXBwZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlucHV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgd2lkdGg6IDYwJTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLmJ1dHRvbiB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIHdpZHRoOiA0MCU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgIC5zb2NpYWwge1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLmxpbmtzIHtcbiAgICAgICAgICBsaSB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmZvb3Rlci1ib3R0b20ge1xuICAgICAgcGFkZGluZzogMjBweDtcbiAgICAgIEBpbmNsdWRlIG1pY3JvZml4O1xuXG4gICAgICBwLCBhIHtcbiAgICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgICAgfVxuXG4gICAgICAudGVybXMge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgICAgICBwYWRkaW5nLXRvcDogMTVweDtcbiAgICAgICAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgLSA5NXB4KTtcbiAgICAgIH1cblxuICAgICAgLmxvZ28ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgICAgICB3aWR0aDogOTJweDtcbiAgICAgICAgaGVpZ2h0OiA1M3B4O1xuICAgICAgfVxuXG4gICAgICAuZm9vdGVyLWlubmVyIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6NDAwcHgpIHtcbiAgLmZvb3RlciB7XG4gICAgLmZvb3Rlci1tYWluIHtcbiAgICAgIC5lbWFpbC1hbmQtc29jaWFsIHtcbiAgICAgICAgLmxpbmtzIHtcbiAgICAgICAgICBsaSB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgd2lkdGg6MzVweDtcbiAgICAgICAgICAgICAgaGVpZ2h0OjM1cHg7XG4gICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAzNXB4O1xuICAgICAgICAgICAgICBpIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6MzVweDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM1N3B4KSB7XG4gIC5mb290ZXIge1xuICAgIC5mb290ZXItYm90dG9tIHtcbiAgICAgIC50ZXJtcyB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiQGltcG9ydCBcIl92YXJpYWJsZXNcIjtcblxuLy8gc3RyaXAgdW5pdHMgZnJvbSBhbnkgbnVtYmVyLiBcIjUwcHhcIiByZXR1cm5zIDUwLlxuQGZ1bmN0aW9uIHN0cmlwLXVuaXRzKCRudW1iZXIpIHtcbiAgQHJldHVybiAkbnVtYmVyIC8gKCRudW1iZXIgKiAwICsgMSk7XG59XG5cbi8vIGNvbnZlcnQgcHggdG8gZW0sIHdpdGggcmVnYXJkIHRvIGl0cyBjb250ZXh0LiBNb3N0IGNvbnRleHQgd2lsbCBiZSAxNnB4LlxuQGZ1bmN0aW9uIHB4LWVtKCRweEZvbnQsICRjb250ZXh0OjE2KXtcbiAgQHJldHVybiAoc3RyaXAtdW5pdHMoJHB4Rm9udCkgLyBzdHJpcC11bml0cygkY29udGV4dCkpICsgMGVtO1xufVxuXG4vLyBXZWJraXQtc3R5bGUgZm9jdXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLVxuQG1peGluIHRhYi1mb2N1cygpIHtcbiAgLy8gRGVmYXVsdFxuICBvdXRsaW5lOiB0aGluIGRvdHRlZCAjMzMzO1xuICAvLyBXZWJraXRcbiAgb3V0bGluZTogNXB4IGF1dG8gLXdlYmtpdC1mb2N1cy1yaW5nLWNvbG9yO1xuICBvdXRsaW5lLW9mZnNldDogLTJweDtcbn1cblxuLy8gQ2VudGVyLWFsaWduIGEgYmxvY2sgbGV2ZWwgZWxlbWVudFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQG1peGluIGNlbnRlci1ibG9jaygpIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG5cbi8vIENlbnRlci1hbGlnbiBhIHJlbGF0aXZlL2Fic29sdXRlIGVsZW1lbnRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBtaXhpbiBjZW50ZXItcG9zaXRpb24oJHdpZHRoLCAkcG9zaXRpb246YWJzb2x1dGUpIHtcbiAgd2lkdGg6ICR3aWR0aDtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW4tbGVmdDogLSR3aWR0aCAvIDI7XG4gIHBvc2l0aW9uOiAkcG9zaXRpb247XG59XG5cbi8vIENlbnRlci1hbGlnbiBhbiBhYnNvbHV0ZSBlbGVtZXRlXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AbWl4aW4gY2VudGVyLWFic29sdXRlKCR3aWR0aCkge1xuICBAaW5jbHVkZSBjZW50ZXItcG9zaXRpb24oJHdpZHRoLCBhYnNvbHV0ZSk7XG59XG5cbi8vIENlbnRlci1hbGlnbiBhbiBhYnNvbHV0ZSBlbGVtZXRlXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AbWl4aW4gY2VudGVyLXJlbGF0aXZlKCR3aWR0aCkge1xuICBAaW5jbHVkZSBjZW50ZXItcG9zaXRpb24oJHdpZHRoLCByZWxhdGl2ZSk7XG59XG5cbi8vIFNpemluZyBzaG9ydGN1dHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBtaXhpbiBzaXplKCR3aWR0aCwgJGhlaWdodCkge1xuICB3aWR0aDogJHdpZHRoO1xuICBoZWlnaHQ6ICRoZWlnaHQ7XG59XG5cbkBtaXhpbiBzcXVhcmUoJHNpemUpIHtcbiAgQGluY2x1ZGUgc2l6ZSgkc2l6ZSwgJHNpemUpO1xufVxuXG4vLyBQbGFjZWhvbGRlciB0ZXh0XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AbWl4aW4gcGxhY2Vob2xkZXIoJGNvbG9yOiAkcGxhY2Vob2xkZXJUZXh0KSB7XG4gICY6LW1vei1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAkY29sb3I7XG4gIH1cbiAgJjotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xuICBjb2xvcjogJGNvbG9yO1xuICB9XG4gICY6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xuICBjb2xvcjogJGNvbG9yO1xuICB9XG59XG5cbi8vIEZPTlRTXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbkBtaXhpbiBmb250KCRmb250RmFtaWx5OiRiYXNlRm9udEZhbWlseSwgJGZvbnRXZWlnaHQ6IG5vcm1hbCwgJGZvbnRTdHlsZTogbm9ybWFsKXsgLy8gdGhpcyBpcyBhIHV0aWxpdHkgbWl4aW4gZm9yIHVzZSBieSB0aGUgYWN0dWFsIGZvbnQgbWl4aW5zIGJlbG93LiBZb3Ugc2hvdWxkbid0IHVzZSBpdC5cbiAgZm9udC1mYW1pbHk6ICRmb250RmFtaWx5O1xuICBmb250LXdlaWdodDogJGZvbnRXZWlnaHQ7XG4gIGZvbnQtc3R5bGU6ICRmb250U3R5bGU7XG59XG5cbkBtaXhpbiBmb250UmVndWxhcigpe1xuICBAaW5jbHVkZSBmb250KCRiYXNlRm9udEZhbWlseSwgJGJvZHlGb250Tm9ybWFsV2VpZ2h0KTtcbn1cblxuQG1peGluIGZvbnRMaWdodCgpe1xuICBAaW5jbHVkZSBmb250KCRiYXNlRm9udEZhbWlseSwgJGJvZHlGb250TGlnaHRXZWlnaHQpO1xufVxuXG5AbWl4aW4gZm9udEl0YWxpYygpe1xuICBAaW5jbHVkZSBmb250KCRiYXNlRm9udEZhbWlseSwgJGJvZHlGb250Tm9ybWFsV2VpZ2h0LCBpdGFsaWMpO1xufVxuXG5AbWl4aW4gZm9udEJvbGQoKXtcbiAgQGluY2x1ZGUgZm9udCgkYmFzZUZvbnRGYW1pbHksICRib2R5Rm9udEJvbGRXZWlnaHQpO1xufVxuXG5AbWl4aW4gZm9udEJvbGRJdGFsaWMoKXtcbiAgQGluY2x1ZGUgZm9udCgkYmFzZUZvbnRGYW1pbHksICRib2R5Rm9udEJvbGRXZWlnaHQsIGl0YWxpYyk7XG59XG5cbkBtaXhpbiBmb250SGVhZGluZygkc2l6ZSl7XG4gIGZvbnQtc2l6ZTogcHgtZW0oJHNpemUpO1xuICBAaW5jbHVkZSBmb250KCRoZWFkaW5nc0ZvbnRGYW1pbHkpO1xufVxuXG5AbWl4aW4gZm9udEhlYWRpbmdMaWdodCgkc2l6ZSl7XG4gIGZvbnQtc2l6ZTogcHgtZW0oJHNpemUpO1xuICBAaW5jbHVkZSBmb250KCRoZWFkaW5nc0ZvbnRGYW1pbHksICRoZWFkaW5nTGlnaHRXZWlnaHQpO1xufVxuXG5AbWl4aW4gZm9udEhlYWRpbmdCb2xkKCRzaXplKXtcbiAgZm9udC1zaXplOiBweC1lbSgkc2l6ZSk7XG4gIEBpbmNsdWRlIGZvbnQoJGhlYWRpbmdzRm9udEZhbWlseSwgJGhlYWRpbmdCb2xkV2VpZ2h0KTtcbn1cblxuQG1peGluIGVtLXN0cm9uZygkZm9udDogUmVndWxhcil7XG4gIEBpZiAoJGZvbnQgPT0gUmVndWxhcil7XG4gICAgZW0geyBAaW5jbHVkZSBmb250SXRhbGljOyB9XG4gICAgc3Ryb25nIHsgQGluY2x1ZGUgZm9udEJvbGQ7IH1cbiAgICBlbSBzdHJvbmcsIHN0cm9uZyBlbSB7IEBpbmNsdWRlIGZvbnRCb2xkSXRhbGljOyB9XG4gIH0gQGVsc2UgaWYgKCRmb250ID09IEJvbGQpIHtcbiAgICBlbSwgZW0gc3Ryb25nLCBzdHJvbmcgZW0geyBAaW5jbHVkZSBmb250Qm9sZEl0YWxpYzsgfVxuICAgIHN0cm9uZyB7IEBpbmNsdWRlIGZvbnRCb2xkOyB9XG4gIH1cbn1cblxuQG1peGluIGljb25Gb250QmFzZVN0eWxlcygkZm9udE5hbWUpIHtcbiAgZm9udC1mYW1pbHk6ICRmb250TmFtZTtcbiAgc3BlYWs6IG5vbmU7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBsaW5lLWhlaWdodDogMTtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgLyogQmV0dGVyIEZvbnQgUmVuZGVyaW5nID09PT09PT09PT09ICovXG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xufVxuXG5AbWl4aW4gb3BhY2l0eSgkb3BhY2l0eSkge1xuICBmaWx0ZXI6IGFscGhhKG9wYWNpdHk9JG9wYWNpdHkpO1xuICBvcGFjaXR5OiAkb3BhY2l0eSAvIDEwMDtcbn1cblxuLy8gR3JhZGllbnRzXG5cblxuXG4vLyBIb3Jpem9udGFsIGdyYWRpZW50LCBmcm9tIGxlZnQgdG8gcmlnaHRcbi8vXG4vLyBDcmVhdGVzIHR3byBjb2xvciBzdG9wcywgc3RhcnQgYW5kIGVuZCwgYnkgc3BlY2lmeWluZyBhIGNvbG9yIGFuZCBwb3NpdGlvbiBmb3IgZWFjaCBjb2xvciBzdG9wLlxuLy8gQ29sb3Igc3RvcHMgYXJlIG5vdCBhdmFpbGFibGUgaW4gSUU5IGFuZCBiZWxvdy5cbkBtaXhpbiBncmFkaWVudC1ob3Jpem9udGFsKCRzdGFydC1jb2xvcjogIzU1NSwgJGVuZC1jb2xvcjogIzMzMywgJHN0YXJ0LXBlcmNlbnQ6IDAlLCAkZW5kLXBlcmNlbnQ6IDEwMCUpIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQobGVmdCwgJHN0YXJ0LWNvbG9yICRzdGFydC1wZXJjZW50LCAkZW5kLWNvbG9yICRlbmQtcGVyY2VudCk7IC8vIFNhZmFyaSA1LjEtNiwgQ2hyb21lIDEwK1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQobGVmdCwgJHN0YXJ0LWNvbG9yICRzdGFydC1wZXJjZW50LCAkZW5kLWNvbG9yICRlbmQtcGVyY2VudCk7IC8vIE9wZXJhIDEyXG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgJHN0YXJ0LWNvbG9yICRzdGFydC1wZXJjZW50LCAkZW5kLWNvbG9yICRlbmQtcGVyY2VudCk7IC8vIFN0YW5kYXJkLCBJRTEwLCBGaXJlZm94IDE2KywgT3BlcmEgMTIuMTArLCBTYWZhcmkgNyssIENocm9tZSAyNitcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xuICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPScje2llLWhleC1zdHIoJHN0YXJ0LWNvbG9yKX0nLCBlbmRDb2xvcnN0cj0nI3tpZS1oZXgtc3RyKCRlbmQtY29sb3IpfScsIEdyYWRpZW50VHlwZT0xKTsgLy8gSUU5IGFuZCBkb3duXG59XG5cbi8vIFZlcnRpY2FsIGdyYWRpZW50LCBmcm9tIHRvcCB0byBib3R0b21cbi8vXG4vLyBDcmVhdGVzIHR3byBjb2xvciBzdG9wcywgc3RhcnQgYW5kIGVuZCwgYnkgc3BlY2lmeWluZyBhIGNvbG9yIGFuZCBwb3NpdGlvbiBmb3IgZWFjaCBjb2xvciBzdG9wLlxuLy8gQ29sb3Igc3RvcHMgYXJlIG5vdCBhdmFpbGFibGUgaW4gSUU5IGFuZCBiZWxvdy5cbkBtaXhpbiBncmFkaWVudC12ZXJ0aWNhbCgkc3RhcnQtY29sb3I6ICM1NTUsICRlbmQtY29sb3I6ICMzMzMsICRzdGFydC1wZXJjZW50OiAwJSwgJGVuZC1wZXJjZW50OiAxMDAlKSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwgJHN0YXJ0LWNvbG9yICRzdGFydC1wZXJjZW50LCAkZW5kLWNvbG9yICRlbmQtcGVyY2VudCk7ICAvLyBTYWZhcmkgNS4xLTYsIENocm9tZSAxMCtcbiAgYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KHRvcCwgJHN0YXJ0LWNvbG9yICRzdGFydC1wZXJjZW50LCAkZW5kLWNvbG9yICRlbmQtcGVyY2VudCk7ICAvLyBPcGVyYSAxMlxuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAkc3RhcnQtY29sb3IgJHN0YXJ0LXBlcmNlbnQsICRlbmQtY29sb3IgJGVuZC1wZXJjZW50KTsgLy8gU3RhbmRhcmQsIElFMTAsIEZpcmVmb3ggMTYrLCBPcGVyYSAxMi4xMCssIFNhZmFyaSA3KywgQ2hyb21lIDI2K1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG4gIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9JyN7aWUtaGV4LXN0cigkc3RhcnQtY29sb3IpfScsIGVuZENvbG9yc3RyPScje2llLWhleC1zdHIoJGVuZC1jb2xvcil9JywgR3JhZGllbnRUeXBlPTApOyAvLyBJRTkgYW5kIGRvd25cbn1cblxuQG1peGluIGdyYWRpZW50LWRpcmVjdGlvbmFsKCRzdGFydC1jb2xvcjogIzU1NSwgJGVuZC1jb2xvcjogIzMzMywgJGRlZzogNDVkZWcpIHtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCgkZGVnLCAkc3RhcnQtY29sb3IsICRlbmQtY29sb3IpOyAvLyBTYWZhcmkgNS4xLTYsIENocm9tZSAxMCtcbiAgYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KCRkZWcsICRzdGFydC1jb2xvciwgJGVuZC1jb2xvcik7IC8vIE9wZXJhIDEyXG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCgkZGVnLCAkc3RhcnQtY29sb3IsICRlbmQtY29sb3IpOyAvLyBTdGFuZGFyZCwgSUUxMCwgRmlyZWZveCAxNissIE9wZXJhIDEyLjEwKywgU2FmYXJpIDcrLCBDaHJvbWUgMjYrXG59XG5AbWl4aW4gZ3JhZGllbnQtaG9yaXpvbnRhbC10aHJlZS1jb2xvcnMoJHN0YXJ0LWNvbG9yOiAjMDBiM2VlLCAkbWlkLWNvbG9yOiAjN2E0M2I2LCAkY29sb3Itc3RvcDogNTAlLCAkZW5kLWNvbG9yOiAjYzMzMjVmKSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KGxlZnQsICRzdGFydC1jb2xvciwgJG1pZC1jb2xvciAkY29sb3Itc3RvcCwgJGVuZC1jb2xvcik7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudChsZWZ0LCAkc3RhcnQtY29sb3IsICRtaWQtY29sb3IgJGNvbG9yLXN0b3AsICRlbmQtY29sb3IpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICRzdGFydC1jb2xvciwgJG1pZC1jb2xvciAkY29sb3Itc3RvcCwgJGVuZC1jb2xvcik7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9JyN7aWUtaGV4LXN0cigkc3RhcnQtY29sb3IpfScsIGVuZENvbG9yc3RyPScje2llLWhleC1zdHIoJGVuZC1jb2xvcil9JywgR3JhZGllbnRUeXBlPTEpOyAvLyBJRTkgYW5kIGRvd24sIGdldHMgbm8gY29sb3Itc3RvcCBhdCBhbGwgZm9yIHByb3BlciBmYWxsYmFja1xufVxuQG1peGluIGdyYWRpZW50LXZlcnRpY2FsLXRocmVlLWNvbG9ycygkc3RhcnQtY29sb3I6ICMwMGIzZWUsICRtaWQtY29sb3I6ICM3YTQzYjYsICRjb2xvci1zdG9wOiA1MCUsICRlbmQtY29sb3I6ICNjMzMyNWYpIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoJHN0YXJ0LWNvbG9yLCAkbWlkLWNvbG9yICRjb2xvci1zdG9wLCAkZW5kLWNvbG9yKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KCRzdGFydC1jb2xvciwgJG1pZC1jb2xvciAkY29sb3Itc3RvcCwgJGVuZC1jb2xvcik7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCgkc3RhcnQtY29sb3IsICRtaWQtY29sb3IgJGNvbG9yLXN0b3AsICRlbmQtY29sb3IpO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPScje2llLWhleC1zdHIoJHN0YXJ0LWNvbG9yKX0nLCBlbmRDb2xvcnN0cj0nI3tpZS1oZXgtc3RyKCRlbmQtY29sb3IpfScsIEdyYWRpZW50VHlwZT0wKTsgLy8gSUU5IGFuZCBkb3duLCBnZXRzIG5vIGNvbG9yLXN0b3AgYXQgYWxsIGZvciBwcm9wZXIgZmFsbGJhY2tcbn1cbkBtaXhpbiBncmFkaWVudC1yYWRpYWwoJGlubmVyLWNvbG9yOiAjNTU1LCAkb3V0ZXItY29sb3I6ICMzMzMpIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1yYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCAkaW5uZXItY29sb3IsICRvdXRlci1jb2xvcik7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHJhZGlhbC1ncmFkaWVudChjaXJjbGUsICRpbm5lci1jb2xvciwgJG91dGVyLWNvbG9yKTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbn1cbkBtaXhpbiBncmFkaWVudC1zdHJpcGVkKCRjb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwuMTUpLCAkYW5nbGU6IDQ1ZGVnKSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KCRhbmdsZSwgJGNvbG9yIDI1JSwgdHJhbnNwYXJlbnQgMjUlLCB0cmFuc3BhcmVudCA1MCUsICRjb2xvciA1MCUsICRjb2xvciA3NSUsIHRyYW5zcGFyZW50IDc1JSwgdHJhbnNwYXJlbnQpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQoJGFuZ2xlLCAkY29sb3IgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDUwJSwgJGNvbG9yIDUwJSwgJGNvbG9yIDc1JSwgdHJhbnNwYXJlbnQgNzUlLCB0cmFuc3BhcmVudCk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCgkYW5nbGUsICRjb2xvciAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNTAlLCAkY29sb3IgNTAlLCAkY29sb3IgNzUlLCB0cmFuc3BhcmVudCA3NSUsIHRyYW5zcGFyZW50KTtcbn1cblxuLy8gQGV4dGVuZCB0aGlzIG1pY3JvZml4IGZvciBjbGVhcmZpeFxuQG1peGluIG1pY3JvZml4KCkge1xuXG4gIC8qKlxuICAgKiBGb3IgbW9kZXJuIGJyb3dzZXJzXG4gICAqIDEuIFRoZSBzcGFjZSBjb250ZW50IGlzIG9uZSB3YXkgdG8gYXZvaWQgYW4gT3BlcmEgYnVnIHdoZW4gdGhlXG4gICAqICAgIGNvbnRlbnRlZGl0YWJsZSBhdHRyaWJ1dGUgaXMgaW5jbHVkZWQgYW55d2hlcmUgZWxzZSBpbiB0aGUgZG9jdW1lbnQuXG4gICAqICAgIE90aGVyd2lzZSBpdCBjYXVzZXMgc3BhY2UgdG8gYXBwZWFyIGF0IHRoZSB0b3AgYW5kIGJvdHRvbSBvZiBlbGVtZW50c1xuICAgKiAgICB0aGF0IGFyZSBjbGVhcmZpeGVkLlxuICAgKiAyLiBUaGUgdXNlIG9mIGB0YWJsZWAgcmF0aGVyIHRoYW4gYGJsb2NrYCBpcyBvbmx5IG5lY2Vzc2FyeSBpZiB1c2luZ1xuICAgKiAgICBgOmJlZm9yZWAgdG8gY29udGFpbiB0aGUgdG9wLW1hcmdpbnMgb2YgY2hpbGQgZWxlbWVudHMuXG4gICAqL1xuICAmOmJlZm9yZSxcbiAgJjphZnRlciB7XG4gICAgICBjb250ZW50OiBcIiBcIjsgLyogMSAqL1xuICAgICAgZGlzcGxheTogdGFibGU7IC8qIDIgKi9cbiAgfVxuXG4gICY6YWZ0ZXIge1xuICAgICAgY2xlYXI6IGJvdGg7XG4gIH1cblxuICAvKipcbiAgICogRm9yIElFIDYvNyBvbmx5XG4gICAqIEluY2x1ZGUgdGhpcyBydWxlIHRvIHRyaWdnZXIgaGFzTGF5b3V0IGFuZCBjb250YWluIGZsb2F0cy5cbiAgICovXG4gICYge1xuICAgICAgKnpvb206IDE7XG4gIH1cblxufVxuXG5cbkBtaXhpbiBmYWRlaW4ge1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5ICR0cmFuc2l0aW9uRmFkZUluO1xuXG4gICYuc2hvdyB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIEBtZWRpYSAjeyRtb2JpbGV9IHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG4iLCJcbi8vIENPTE9SU1xuXG4kd2hpdGU6ICAgICAgICAgICAjZmZmZmZmO1xuJGdyYXk5MDogICAgICAgICAgI2U1ZTVlNTtcbiRncmF5ODA6ICAgICAgICAgICNjY2NjY2M7XG4kZ3JheTc4OiAgICAgICAgICAjZGRkZGRkO1xuJGdyYXk3NTogICAgICAgICAgI2RiZGJkYjtcbiRncmF5NzM6ICAgICAgICAgICNkN2Q3ZDc7XG4kZ3JheTcwOiAgICAgICAgICAjYjJiMmIyO1xuJGdyYXk2NTogICAgICAgICAgI2I4YjZiNjtcbiRncmF5NjA6ICAgICAgICAgICM5OTk5OTk7XG4kZ3JheTUwOiAgICAgICAgICAjN2Y3ZjdmO1xuJGdyYXk0MDogICAgICAgICAgIzY2NjY2NjtcbiRncmF5MzA6ICAgICAgICAgICM0YzRjNGM7XG4kZ3JheTIwOiAgICAgICAgICAjMzMzMzMzO1xuJGdyYXkxMDogICAgICAgICAgIzE5MTkxOTtcbiRibGFjazogICAgICAgICAgICMyMzFGMjA7XG4kdWludGFSZWQ6ICAgICAgICAjRDAyMzJCO1xuJHNlY29uZGFyeVJlZDogICAgIzlDMEQwRjtcbiR0ZXJ0aWFyeVJlZDogICAgICM3OTAxMDE7XG4kZGFya1JlZDogICAgICAgICAjYWIxMTE1O1xuJG5ldXRyYWxCRzogICAgICAgI0Y2RjZGNjtcbiRuZXV0cmFsQWNjZW50OiAgICNFMkQ5Qzg7XG4kYmx1ZTogICAgICAgICAgICAjNWVjZGNkO1xuXG4kYnJhbmRQcmltYXJ5OiAkdWludGFSZWQ7XG4kYnJhbmRMaWdodDogJG5ldXRyYWxBY2NlbnQ7XG4kYnJhbmREYXJrOiAkc2Vjb25kYXJ5UmVkO1xuXG5cbiRkZWZhdWx0VGV4dENvbG9yOiAkYmxhY2s7XG4kbGlua0NvbG9yOiAkc2Vjb25kYXJ5UmVkO1xuJGxpbmtDb2xvckhvdmVyOiAkdWludGFSZWQ7XG5cbi8vIFRZUE9HUkFQSFlcblxuJGJhc2VMaW5lSGVpZ2h0OiAxICFkZWZhdWx0O1xuJGJhc2VGb250RmFtaWx5OiAnR2VvZ3JvdGVzcXVlLU1lZGl1bScsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4kcmVndWxhckZvbnRGYW1pbHk6ICdHZW9ncm90ZXNxdWUtUmVndWxhcicsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4kbWVkaXVtRm9udEZhbWlseTogJ0dlb2dyb3Rlc3F1ZUNvbXAtTWQnLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuJHNlbWlCb2xkRm9udEZhbWlseTogJ0dlb2dyb3Rlc3F1ZS1TZW1pQm9sZCcsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4kaGVhZGluZ3NGb250RmFtaWx5OiAnR2VvZ3JvdGVzcXVlQ29uZC1TbUJkJywgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiRoZWFkaW5nc1N1YkZvbnRGYW1pbHk6ICdHZW9ncm90ZXNxdWVDb25kLVJnJywgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiRmYW5jeUZvbnRGYW1pbHk6ICdIYW5kT2ZTZWFuUHJvLVJlZ3VsYXInLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuXG5cbiRib2R5Rm9udExpZ2h0V2VpZ2h0OiAzMDA7XG4kYm9keUZvbnROb3JtYWxXZWlnaHQ6IDQwMDtcbiRib2R5Rm9udEJvbGRXZWlnaHQ6IDcwMDtcbiRoZWFkaW5nTGlnaHRXZWlnaHQ6IDMwMDtcbiRoZWFkaW5nTm9ybWFsV2VpZ2h0OiA0MDA7XG4kaGVhZGluZ0JvbGRXZWlnaHQ6IDcwMDtcblxuLy8gVFJBTlNJVElPTlNcblxuJHRyYW5zaXRpb25GYWRlSW46ICAgIDEwMDBtcztcblxuJHRyYW5zaXRpb25TdXBlcnNsb3c6ICAgMC44cztcbiR0cmFuc2l0aW9uU2xvd2VyOiAgICAgIDAuN3M7XG4kdHJhbnNpdGlvblNsb3c6ICAgICAgICAwLjZzO1xuJHRyYW5zaXRpb25TbG93aXNoOiAgICAgMC41NXM7XG4kdHJhbnNpdGlvbk5vcm1hbDogICAgICAwLjVzO1xuJHRyYW5zaXRpb25Ob3JtYWxGYXN0OiAgMC4zcztcbiR0cmFuc2l0aW9uRmFzdDogICAgICAgIDAuMTVzO1xuJHRyYW5zaXRpb25GYXN0ZXI6ICAgICAgMC4xMHM7XG4kdHJhbnNpdGlvblN1cGVyZmFzdDogICAwLjA1cztcbiR0cmFuc2l0aW9uRmFzdGVzdDogICAgIDAuMDI1cztcblxuLy8gWi1JTkRFWFxuJHpVYmVyVG9wTGV2ZWw6IDEwMDAwO1xuJHpUb3BMZXZlbDogNDAwO1xuJHpTZXRGb3J3YXJkOiAzMDA7XG4kek1pZGRsZTogMjAwO1xuJHpCb3R0b21MZXZlbDogMTAwO1xuXG4vLyBHUklEXG4kZ3JpZC1udW0tY29sczogMTI7XG4kZ3JpZC1tb2JpbGUtYnJlYWtwb2ludDogNzY4cHg7XG4kZ3JpZC10YWJsZXQtYnJlYWtwb2ludDogMTAyNHB4O1xuJGdyaWQtbWF4LXdpZHRoOiAxNTAwcHg7XG5cbi8vIEJyZWFrcG9pbnRzXG4kbGFyZ2VyOiBcIm9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoIDogMTgwMHB4KVwiO1xuXG4kdGFibGV0OiBcIm9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoIDogI3skZ3JpZC1tb2JpbGUtYnJlYWtwb2ludH0pIGFuZCAobWF4LXdpZHRoIDogI3skZ3JpZC10YWJsZXQtYnJlYWtwb2ludH0pXCI7XG4kdGFibGV0LXBvcnRyYWl0OiBcIm9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoIDogI3skZ3JpZC1tb2JpbGUtYnJlYWtwb2ludH0pIGFuZCAobWF4LXdpZHRoIDogI3skZ3JpZC10YWJsZXQtYnJlYWtwb2ludH0pIGFuZCAob3JpZW50YXRpb246IHBvcnRyYWl0KSBhbmQgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpIFwiO1xuXG4kbW9iaWxlOiBcIm9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoIDogI3skZ3JpZC1tb2JpbGUtYnJlYWtwb2ludCAtIDF9KVwiO1xuJG1vYmlsZS1sYW5kc2NhcGU6IFwib25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGggOiAjeyRncmlkLW1vYmlsZS1icmVha3BvaW50IC0gMX0pIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSlcIjtcblxuJHJldGluYTogXCIoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpXCI7XG5cbi8vIEVBU0lOR1xuXG5AaW1wb3J0IFwibGliL2FuaW1hdGlvblwiO1xuIiwiLmZvb3RlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgY29sb3I6IHdoaXRlO1xuICB3aWR0aDogMTAwJTtcbiAgei1pbmRleDogMTtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAxMDAwbXM7XG59XG5cbi5mb290ZXIuc2hvdyB7XG4gIG9wYWNpdHk6IDE7XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLmZvb3RlciB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG4uZm9vdGVyIC5mb290ZXItaW5uZXIge1xuICBtYXgtd2lkdGg6IDE1MDBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5mb290ZXIgLmZvb3Rlci1tYWluIHtcbiAgcGFkZGluZzogODBweCA2MHB4O1xuICBmb250LXNpemU6IDBweDtcbn1cblxuLmZvb3RlciAuZm9vdGVyLW1haW4gLmNvbnRhY3QsIC5mb290ZXIgLmZvb3Rlci1tYWluIC5uYXYsIC5mb290ZXIgLmZvb3Rlci1tYWluIC5lbWFpbC1hbmQtc29jaWFsIHtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAzMyU7XG59XG5cbi5mb290ZXIgLmZvb3Rlci1tYWluIC5jb250YWN0IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBmb250LXNpemU6IDIycHg7XG59XG5cbi5mb290ZXIgLmZvb3Rlci1tYWluIC5jb250YWN0IC5sb2dvIHtcbiAgaGVpZ2h0OiAyMTBweDtcbiAgd2lkdGg6IDIyNXB4O1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xufVxuXG4uZm9vdGVyIC5mb290ZXItbWFpbiAuY29udGFjdCAubG9nbyBzdmcgcGF0aCB7XG4gIGZpbGw6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cblxuLmZvb3RlciAuZm9vdGVyLW1haW4gLm5hdiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgZm9udC1zaXplOiAwO1xufVxuXG4uZm9vdGVyIC5mb290ZXItbWFpbiAubmF2IGEge1xuICBkaXNwbGF5OiBibG9jaztcbiAgY29sb3I6IHdoaXRlO1xufVxuXG4uZm9vdGVyIC5mb290ZXItbWFpbiAubmF2IC5iaWctbGluayB7XG4gIGZvbnQtc2l6ZTogMzBweDtcbiAgbGluZS1oZWlnaHQ6IDMwcHg7XG4gIG1hcmdpbi1ib3R0b206IDYwcHg7XG4gIGZvbnQtZmFtaWx5OiAnR2VvZ3JvdGVzcXVlQ29uZC1TbUJkJztcbn1cblxuLmZvb3RlciAuZm9vdGVyLW1haW4gLm5hdiAuYmlnLWxpbms6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDBweDtcbn1cblxuLmZvb3RlciAuZm9vdGVyLW1haW4gLm5hdiAuYmlnLWxpbmsgaW1nIHtcbiAgbWFyZ2luLXJpZ2h0OiAxNXB4O1xuICBtYXJnaW4tdG9wOiA1cHg7XG59XG5cbi5mb290ZXIgLmZvb3Rlci1tYWluIC5uYXYgLmJpZy1saW5rIGltZywgLmZvb3RlciAuZm9vdGVyLW1haW4gLm5hdiAuYmlnLWxpbmsgc3BhbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLmZvb3RlciAuZm9vdGVyLW1haW4gLm5hdiAuc21hbGwtbGluayB7XG4gIGZvbnQtc2l6ZTogMjJweDtcbiAgbWFyZ2luLWJvdHRvbTogNDBweDtcbiAgZm9udC1mYW1pbHk6ICdHZW9ncm90ZXNxdWVDb25kLVJnJztcbn1cblxuLmZvb3RlciAuZm9vdGVyLW1haW4gLm5hdiAuc21hbGwtbGluazpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMHB4O1xufVxuXG4uZm9vdGVyIC5mb290ZXItbWFpbiAubmF2IC5tYWluIHtcbiAgcGFkZGluZy1yaWdodDogMzVweDtcbiAgYm9yZGVyLXJpZ2h0OiBzb2xpZCAxcHggI2ZmZmZmZjtcbiAgcGFkZGluZy10b3A6IDIwcHg7XG4gIHBhZGRpbmctYm90dG9tOiAxNXB4O1xufVxuXG4uZm9vdGVyIC5mb290ZXItbWFpbiAubmF2IC5zZWNvbmRhcnkge1xuICBwYWRkaW5nLWxlZnQ6IDM1cHg7XG4gIHBhZGRpbmctdG9wOiAyNXB4O1xufVxuXG4uZm9vdGVyIC5mb290ZXItbWFpbiAubmF2IC5tYWluLCAuZm9vdGVyIC5mb290ZXItbWFpbiAubmF2IC5zZWNvbmRhcnkge1xuICBmb250LXNpemU6IDFyZW07XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbn1cblxuLmZvb3RlciAuZm9vdGVyLW1haW4gLmVtYWlsLWFuZC1zb2NpYWwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5mb290ZXIgLmZvb3Rlci1tYWluIC5lbWFpbCB7XG4gIGZvbnQtc2l6ZTogMHB4O1xuICBtYXJnaW4tYm90dG9tOiA1MHB4O1xufVxuXG4uZm9vdGVyIC5mb290ZXItbWFpbiAuZW1haWwgOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgLyogQ2hyb21lL09wZXJhL1NhZmFyaSAqL1xuICBjb2xvcjogd2hpdGU7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgZm9udC1mYW1pbHk6ICdHZW9ncm90ZXNxdWVDb25kLU1kSXQnO1xuICBmb250LXNpemU6IDIwcHg7XG59XG5cbi5mb290ZXIgLmZvb3Rlci1tYWluIC5lbWFpbCA6Oi1tb3otcGxhY2Vob2xkZXIge1xuICAvKiBGaXJlZm94IDE5KyAqL1xuICBjb2xvcjogd2hpdGU7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgZm9udC1mYW1pbHk6ICdHZW9ncm90ZXNxdWVDb25kLU1kSXQnO1xuICBmb250LXNpemU6IDIwcHg7XG59XG5cbi5mb290ZXIgLmZvb3Rlci1tYWluIC5lbWFpbCA6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgLyogSUUgMTArICovXG4gIGNvbG9yOiB3aGl0ZTtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBmb250LWZhbWlseTogJ0dlb2dyb3Rlc3F1ZUNvbmQtTWRJdCc7XG4gIGZvbnQtc2l6ZTogMjBweDtcbn1cblxuLmZvb3RlciAuZm9vdGVyLW1haW4gLmVtYWlsIDotbW96LXBsYWNlaG9sZGVyIHtcbiAgLyogRmlyZWZveCAxOC0gKi9cbiAgY29sb3I6IHdoaXRlO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtZmFtaWx5OiAnR2VvZ3JvdGVzcXVlQ29uZC1NZEl0JztcbiAgZm9udC1zaXplOiAyMHB4O1xufVxuXG4uZm9vdGVyIC5mb290ZXItbWFpbiAuZW1haWwgcCB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbn1cblxuLmZvb3RlciAuZm9vdGVyLW1haW4gLmVtYWlsIC5pbnB1dC13cmFwcGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uZm9vdGVyIC5mb290ZXItbWFpbiAuZW1haWwgaW5wdXQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgYm9yZGVyOiBzb2xpZCAycHggd2hpdGU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgaGVpZ2h0OiA2MHB4O1xuICBmb250LXNpemU6IDFyZW07XG4gIGJhY2tncm91bmQ6ICNEMDIzMkI7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgcGFkZGluZzogMHB4IDIwcHg7XG4gIHdpZHRoOiA2MCU7XG59XG5cbi5mb290ZXIgLmZvb3Rlci1tYWluIC5lbWFpbCBpbnB1dDpmb2N1cywgLmZvb3RlciAuZm9vdGVyLW1haW4gLmVtYWlsIGlucHV0OmFjdGl2ZSB7XG4gIG91dGxpbmU6IG5vbmU7XG59XG5cbi5mb290ZXIgLmZvb3Rlci1tYWluIC5lbWFpbCAuYnV0dG9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiAjRDAyMzJCO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGxpbmUtaGVpZ2h0OiA2MHB4O1xuICBoZWlnaHQ6IDYwcHg7XG4gIHdpZHRoOiA0MCU7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgZm9udC1mYW1pbHk6ICdHZW9ncm90ZXNxdWUtQm9sZCc7XG4gIGJvcmRlcjogM3B4IHNvbGlkIHdoaXRlO1xufVxuXG4uZm9vdGVyIC5mb290ZXItbWFpbiAuc29jaWFsIHAge1xuICBmb250LWZhbWlseTogJ0hhbmRPZlNlYW5Qcm8tUmVndWxhcic7XG4gIGZvbnQtc2l6ZTogMzBweDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cblxuLmZvb3RlciAuZm9vdGVyLW1haW4gLnNvY2lhbCB1bCBsaSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogMHB4O1xuICBtYXJnaW4tcmlnaHQ6IDE1cHg7XG4gIGJvcmRlcjogc29saWQgMXB4IHJnYmEoMCwgMCwgMCwgMCk7XG4gIGJvcmRlci1yYWRpdXM6IDE0cHg7XG59XG5cbi5mb290ZXIgLmZvb3Rlci1tYWluIC5zb2NpYWwgdWwgbGk6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1yaWdodDogMHB4O1xufVxuXG4uZm9vdGVyIC5mb290ZXItbWFpbiAuc29jaWFsIHVsIGxpIGEge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDQ4cHg7XG4gIGhlaWdodDogNDhweDtcbiAgbGluZS1oZWlnaHQ6IDQ4cHg7XG59XG5cbi5mb290ZXIgLmZvb3Rlci1tYWluIC5zb2NpYWwgdWwgbGkgYSBpIHtcbiAgZm9udC1zaXplOiA0OHB4O1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4xNXMgZWFzZTtcbn1cblxuLmZvb3RlciAuZm9vdGVyLW1haW4gLnNvY2lhbCB1bCBsaSBhIGk6aG92ZXIge1xuICBjb2xvcjogIzlDMEQwRjtcbn1cblxuLmZvb3RlciAuZm9vdGVyLWJvdHRvbSB7XG4gIHBhZGRpbmc6IDI0cHggNzVweCAxOHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cblxuLmZvb3RlciAuZm9vdGVyLWJvdHRvbSBwIHtcbiAgZm9udC1zaXplOiAxNXB4O1xufVxuXG4uZm9vdGVyIC5mb290ZXItYm90dG9tIGEge1xuICBjb2xvcjogd2hpdGU7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICBmb250LXNpemU6IDE1cHg7XG59XG5cbi5mb290ZXIgLmZvb3Rlci1ib3R0b20gLmxvZ28ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAwO1xuICB0b3A6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTUwJSk7XG4gIHdpZHRoOiAxODBweDtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vLi4vaW1nL2Zvb3Rlci9tYWRlX3dpdGguc3ZnKTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG59XG5cbi5mb290ZXIgLmZvb3Rlci1idXR0b24tc2Nyb2xsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMDtcbn1cblxuLmZvb3RlciAuZm9vdGVyLWJ1dHRvbi1zY3JvbGwgLmJ1dHRvbi1zY3JvbGwge1xuICBtYXJnaW4tcmlnaHQ6IDUwcHg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNzVweCk7XG4gIGhlaWdodDogNzVweDtcbiAgd2lkdGg6IDc1cHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uZm9vdGVyIC5mb290ZXItYnV0dG9uLXNjcm9sbCAuYnV0dG9uLXNjcm9sbCBpbWcge1xuICBtYXJnaW4tdG9wOiAzMHB4O1xufVxuXG4uZm9vdGVyIC5mb290ZXItYnV0dG9uLXNjcm9sbCAuYnV0dG9uLXNjcm9sbDpob3ZlciB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDE0NTBweCkge1xuICAuZm9vdGVyIC5mb290ZXItaW5uZXIge1xuICAgIG1heC13aWR0aDogNzAwcHg7XG4gICAgcGFkZGluZy10b3A6IDUwcHg7XG4gIH1cbiAgLmZvb3RlciAuZm9vdGVyLW1haW4ge1xuICAgIHBhZGRpbmc6IDE1cHggNDBweDtcbiAgfVxuICAuZm9vdGVyIC5mb290ZXItbWFpbiAuY29udGFjdCB7XG4gICAgd2lkdGg6IDUwJTtcbiAgICBmb250LXNpemU6IDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG4gIC5mb290ZXIgLmZvb3Rlci1tYWluIC5jb250YWN0IC5sb2dvIHtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICB9XG4gIC5mb290ZXIgLmZvb3Rlci1tYWluIC5jb250YWN0IHAge1xuICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgfVxuICAuZm9vdGVyIC5mb290ZXItbWFpbiAubmF2IHtcbiAgICB3aWR0aDogNDklO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogMDtcbiAgICB0b3A6IDEwJTtcbiAgfVxuICAuZm9vdGVyIC5mb290ZXItbWFpbiAubmF2IC5tYWluIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2UzN2I4MDtcbiAgfVxuICAuZm9vdGVyIC5mb290ZXItbWFpbiAubmF2IC5tYWluIC5iaWctbGluayB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XG4gIH1cbiAgLmZvb3RlciAuZm9vdGVyLW1haW4gLm5hdiAuc2Vjb25kYXJ5IHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICAuZm9vdGVyIC5mb290ZXItbWFpbiAubmF2IC5zZWNvbmRhcnkgYSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICB9XG4gIC5mb290ZXIgLmZvb3Rlci1tYWluIC5lbWFpbC1hbmQtc29jaWFsIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tdG9wOiA0MHB4O1xuICB9XG4gIC5mb290ZXIgLmZvb3Rlci1tYWluIC5lbWFpbC1hbmQtc29jaWFsIC5lbWFpbCB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgLyoqXG4gICAqIEZvciBtb2Rlcm4gYnJvd3NlcnNcbiAgICogMS4gVGhlIHNwYWNlIGNvbnRlbnQgaXMgb25lIHdheSB0byBhdm9pZCBhbiBPcGVyYSBidWcgd2hlbiB0aGVcbiAgICogICAgY29udGVudGVkaXRhYmxlIGF0dHJpYnV0ZSBpcyBpbmNsdWRlZCBhbnl3aGVyZSBlbHNlIGluIHRoZSBkb2N1bWVudC5cbiAgICogICAgT3RoZXJ3aXNlIGl0IGNhdXNlcyBzcGFjZSB0byBhcHBlYXIgYXQgdGhlIHRvcCBhbmQgYm90dG9tIG9mIGVsZW1lbnRzXG4gICAqICAgIHRoYXQgYXJlIGNsZWFyZml4ZWQuXG4gICAqIDIuIFRoZSB1c2Ugb2YgYHRhYmxlYCByYXRoZXIgdGhhbiBgYmxvY2tgIGlzIG9ubHkgbmVjZXNzYXJ5IGlmIHVzaW5nXG4gICAqICAgIGA6YmVmb3JlYCB0byBjb250YWluIHRoZSB0b3AtbWFyZ2lucyBvZiBjaGlsZCBlbGVtZW50cy5cbiAgICovXG4gICAgLyoqXG4gICAqIEZvciBJRSA2Lzcgb25seVxuICAgKiBJbmNsdWRlIHRoaXMgcnVsZSB0byB0cmlnZ2VyIGhhc0xheW91dCBhbmQgY29udGFpbiBmbG9hdHMuXG4gICAqL1xuICB9XG4gIC5mb290ZXIgLmZvb3Rlci1tYWluIC5lbWFpbC1hbmQtc29jaWFsIC5lbWFpbDpiZWZvcmUsIC5mb290ZXIgLmZvb3Rlci1tYWluIC5lbWFpbC1hbmQtc29jaWFsIC5lbWFpbDphZnRlciB7XG4gICAgY29udGVudDogXCIgXCI7XG4gICAgLyogMSAqL1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIC8qIDIgKi9cbiAgfVxuICAuZm9vdGVyIC5mb290ZXItbWFpbiAuZW1haWwtYW5kLXNvY2lhbCAuZW1haWw6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoO1xuICB9XG4gIC5mb290ZXIgLmZvb3Rlci1tYWluIC5lbWFpbC1hbmQtc29jaWFsIC5lbWFpbCB7XG4gICAgKnpvb206IDE7XG4gIH1cbiAgLmZvb3RlciAuZm9vdGVyLW1haW4gLmVtYWlsLWFuZC1zb2NpYWwgLmVtYWlsIC5pbnB1dC13cmFwcGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cbiAgLmZvb3RlciAuZm9vdGVyLW1haW4gLmVtYWlsLWFuZC1zb2NpYWwgLmVtYWlsIGlucHV0IHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogNjAlO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbiAgLmZvb3RlciAuZm9vdGVyLW1haW4gLmVtYWlsLWFuZC1zb2NpYWwgLmVtYWlsIC5idXR0b24ge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiA0MCU7XG4gIH1cbiAgLmZvb3RlciAuZm9vdGVyLW1haW4gLmVtYWlsLWFuZC1zb2NpYWwgLnNvY2lhbCB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIH1cbiAgLmZvb3RlciAuZm9vdGVyLWJvdHRvbSB7XG4gICAgcGFkZGluZzogMjBweDtcbiAgICAvKipcbiAgICogRm9yIG1vZGVybiBicm93c2Vyc1xuICAgKiAxLiBUaGUgc3BhY2UgY29udGVudCBpcyBvbmUgd2F5IHRvIGF2b2lkIGFuIE9wZXJhIGJ1ZyB3aGVuIHRoZVxuICAgKiAgICBjb250ZW50ZWRpdGFibGUgYXR0cmlidXRlIGlzIGluY2x1ZGVkIGFueXdoZXJlIGVsc2UgaW4gdGhlIGRvY3VtZW50LlxuICAgKiAgICBPdGhlcndpc2UgaXQgY2F1c2VzIHNwYWNlIHRvIGFwcGVhciBhdCB0aGUgdG9wIGFuZCBib3R0b20gb2YgZWxlbWVudHNcbiAgICogICAgdGhhdCBhcmUgY2xlYXJmaXhlZC5cbiAgICogMi4gVGhlIHVzZSBvZiBgdGFibGVgIHJhdGhlciB0aGFuIGBibG9ja2AgaXMgb25seSBuZWNlc3NhcnkgaWYgdXNpbmdcbiAgICogICAgYDpiZWZvcmVgIHRvIGNvbnRhaW4gdGhlIHRvcC1tYXJnaW5zIG9mIGNoaWxkIGVsZW1lbnRzLlxuICAgKi9cbiAgICAvKipcbiAgICogRm9yIElFIDYvNyBvbmx5XG4gICAqIEluY2x1ZGUgdGhpcyBydWxlIHRvIHRyaWdnZXIgaGFzTGF5b3V0IGFuZCBjb250YWluIGZsb2F0cy5cbiAgICovXG4gIH1cbiAgLmZvb3RlciAuZm9vdGVyLWJvdHRvbTpiZWZvcmUsIC5mb290ZXIgLmZvb3Rlci1ib3R0b206YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgIC8qIDEgKi9cbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAvKiAyICovXG4gIH1cbiAgLmZvb3RlciAuZm9vdGVyLWJvdHRvbTphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gIH1cbiAgLmZvb3RlciAuZm9vdGVyLWJvdHRvbSB7XG4gICAgKnpvb206IDE7XG4gIH1cbiAgLmZvb3RlciAuZm9vdGVyLWJvdHRvbSBwLCAuZm9vdGVyIC5mb290ZXItYm90dG9tIGEge1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgfVxuICAuZm9vdGVyIC5mb290ZXItYm90dG9tIC50ZXJtcyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIHBhZGRpbmctdG9wOiAxNXB4O1xuICB9XG4gIC5mb290ZXIgLmZvb3Rlci1ib3R0b20gLmxvZ28ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgdG9wOiBhdXRvO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB3aWR0aDogOTJweDtcbiAgICBoZWlnaHQ6IDUzcHg7XG4gIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAuZm9vdGVyIC5mb290ZXItbWFpbiB7XG4gICAgcGFkZGluZzogMTVweCA0MHB4O1xuICB9XG4gIC5mb290ZXIgLmZvb3Rlci1tYWluIC5jb250YWN0IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICAuZm9vdGVyIC5mb290ZXItbWFpbiAuY29udGFjdCAubG9nbyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiA5MHB4O1xuICB9XG4gIC5mb290ZXIgLmZvb3Rlci1tYWluIC5jb250YWN0IC5sb2dvIHN2ZyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICB9XG4gIC5mb290ZXIgLmZvb3Rlci1tYWluIC5jb250YWN0IHAge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gIH1cbiAgLmZvb3RlciAuZm9vdGVyLW1haW4gLm5hdiB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG4gIC5mb290ZXIgLmZvb3Rlci1tYWluIC5uYXYgLm1haW4ge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvcmRlci1yaWdodDogbm9uZTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTM3YjgwO1xuICB9XG4gIC5mb290ZXIgLmZvb3Rlci1tYWluIC5uYXYgLm1haW4gLmJpZy1saW5rIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIH1cbiAgLmZvb3RlciAuZm9vdGVyLW1haW4gLm5hdiAuc2Vjb25kYXJ5IHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICAuZm9vdGVyIC5mb290ZXItbWFpbiAubmF2IC5zZWNvbmRhcnkgYSB7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgbWFyZ2luLXRvcDogNDBweDtcbiAgfVxuICAuZm9vdGVyIC5mb290ZXItbWFpbiAuZW1haWwtYW5kLXNvY2lhbCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLXRvcDogNDBweDtcbiAgfVxuICAuZm9vdGVyIC5mb290ZXItbWFpbiAuZW1haWwtYW5kLXNvY2lhbCAuZW1haWwge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgIC8qKlxuICAgKiBGb3IgbW9kZXJuIGJyb3dzZXJzXG4gICAqIDEuIFRoZSBzcGFjZSBjb250ZW50IGlzIG9uZSB3YXkgdG8gYXZvaWQgYW4gT3BlcmEgYnVnIHdoZW4gdGhlXG4gICAqICAgIGNvbnRlbnRlZGl0YWJsZSBhdHRyaWJ1dGUgaXMgaW5jbHVkZWQgYW55d2hlcmUgZWxzZSBpbiB0aGUgZG9jdW1lbnQuXG4gICAqICAgIE90aGVyd2lzZSBpdCBjYXVzZXMgc3BhY2UgdG8gYXBwZWFyIGF0IHRoZSB0b3AgYW5kIGJvdHRvbSBvZiBlbGVtZW50c1xuICAgKiAgICB0aGF0IGFyZSBjbGVhcmZpeGVkLlxuICAgKiAyLiBUaGUgdXNlIG9mIGB0YWJsZWAgcmF0aGVyIHRoYW4gYGJsb2NrYCBpcyBvbmx5IG5lY2Vzc2FyeSBpZiB1c2luZ1xuICAgKiAgICBgOmJlZm9yZWAgdG8gY29udGFpbiB0aGUgdG9wLW1hcmdpbnMgb2YgY2hpbGQgZWxlbWVudHMuXG4gICAqL1xuICAgIC8qKlxuICAgKiBGb3IgSUUgNi83IG9ubHlcbiAgICogSW5jbHVkZSB0aGlzIHJ1bGUgdG8gdHJpZ2dlciBoYXNMYXlvdXQgYW5kIGNvbnRhaW4gZmxvYXRzLlxuICAgKi9cbiAgfVxuICAuZm9vdGVyIC5mb290ZXItbWFpbiAuZW1haWwtYW5kLXNvY2lhbCAuZW1haWw6YmVmb3JlLCAuZm9vdGVyIC5mb290ZXItbWFpbiAuZW1haWwtYW5kLXNvY2lhbCAuZW1haWw6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgIC8qIDEgKi9cbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAvKiAyICovXG4gIH1cbiAgLmZvb3RlciAuZm9vdGVyLW1haW4gLmVtYWlsLWFuZC1zb2NpYWwgLmVtYWlsOmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgfVxuICAuZm9vdGVyIC5mb290ZXItbWFpbiAuZW1haWwtYW5kLXNvY2lhbCAuZW1haWwge1xuICAgICp6b29tOiAxO1xuICB9XG4gIC5mb290ZXIgLmZvb3Rlci1tYWluIC5lbWFpbC1hbmQtc29jaWFsIC5lbWFpbCAuaW5wdXQtd3JhcHBlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG4gIC5mb290ZXIgLmZvb3Rlci1tYWluIC5lbWFpbC1hbmQtc29jaWFsIC5lbWFpbCBpbnB1dCB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDYwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG4gIC5mb290ZXIgLmZvb3Rlci1tYWluIC5lbWFpbC1hbmQtc29jaWFsIC5lbWFpbCAuYnV0dG9uIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogNDAlO1xuICB9XG4gIC5mb290ZXIgLmZvb3Rlci1tYWluIC5lbWFpbC1hbmQtc29jaWFsIC5zb2NpYWwge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICB9XG4gIC5mb290ZXIgLmZvb3Rlci1tYWluIC5lbWFpbC1hbmQtc29jaWFsIC5saW5rcyBsaSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICB9XG4gIC5mb290ZXIgLmZvb3Rlci1ib3R0b20ge1xuICAgIHBhZGRpbmc6IDIwcHg7XG4gICAgLyoqXG4gICAqIEZvciBtb2Rlcm4gYnJvd3NlcnNcbiAgICogMS4gVGhlIHNwYWNlIGNvbnRlbnQgaXMgb25lIHdheSB0byBhdm9pZCBhbiBPcGVyYSBidWcgd2hlbiB0aGVcbiAgICogICAgY29udGVudGVkaXRhYmxlIGF0dHJpYnV0ZSBpcyBpbmNsdWRlZCBhbnl3aGVyZSBlbHNlIGluIHRoZSBkb2N1bWVudC5cbiAgICogICAgT3RoZXJ3aXNlIGl0IGNhdXNlcyBzcGFjZSB0byBhcHBlYXIgYXQgdGhlIHRvcCBhbmQgYm90dG9tIG9mIGVsZW1lbnRzXG4gICAqICAgIHRoYXQgYXJlIGNsZWFyZml4ZWQuXG4gICAqIDIuIFRoZSB1c2Ugb2YgYHRhYmxlYCByYXRoZXIgdGhhbiBgYmxvY2tgIGlzIG9ubHkgbmVjZXNzYXJ5IGlmIHVzaW5nXG4gICAqICAgIGA6YmVmb3JlYCB0byBjb250YWluIHRoZSB0b3AtbWFyZ2lucyBvZiBjaGlsZCBlbGVtZW50cy5cbiAgICovXG4gICAgLyoqXG4gICAqIEZvciBJRSA2Lzcgb25seVxuICAgKiBJbmNsdWRlIHRoaXMgcnVsZSB0byB0cmlnZ2VyIGhhc0xheW91dCBhbmQgY29udGFpbiBmbG9hdHMuXG4gICAqL1xuICB9XG4gIC5mb290ZXIgLmZvb3Rlci1ib3R0b206YmVmb3JlLCAuZm9vdGVyIC5mb290ZXItYm90dG9tOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIiBcIjtcbiAgICAvKiAxICovXG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgLyogMiAqL1xuICB9XG4gIC5mb290ZXIgLmZvb3Rlci1ib3R0b206YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoO1xuICB9XG4gIC5mb290ZXIgLmZvb3Rlci1ib3R0b20ge1xuICAgICp6b29tOiAxO1xuICB9XG4gIC5mb290ZXIgLmZvb3Rlci1ib3R0b20gcCwgLmZvb3RlciAuZm9vdGVyLWJvdHRvbSBhIHtcbiAgICBmb250LXNpemU6IDExcHg7XG4gIH1cbiAgLmZvb3RlciAuZm9vdGVyLWJvdHRvbSAudGVybXMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBwYWRkaW5nLXRvcDogMTVweDtcbiAgICBtYXgtd2lkdGg6IGNhbGMoMTAwJSAtIDk1cHgpO1xuICB9XG4gIC5mb290ZXIgLmZvb3Rlci1ib3R0b20gLmxvZ28ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgdG9wOiBhdXRvO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB3aWR0aDogOTJweDtcbiAgICBoZWlnaHQ6IDUzcHg7XG4gIH1cbiAgLmZvb3RlciAuZm9vdGVyLWJvdHRvbSAuZm9vdGVyLWlubmVyIHtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA0MDBweCkge1xuICAuZm9vdGVyIC5mb290ZXItbWFpbiAuZW1haWwtYW5kLXNvY2lhbCAubGlua3MgbGkge1xuICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgfVxuICAuZm9vdGVyIC5mb290ZXItbWFpbiAuZW1haWwtYW5kLXNvY2lhbCAubGlua3MgbGkgYSB7XG4gICAgd2lkdGg6IDM1cHg7XG4gICAgaGVpZ2h0OiAzNXB4O1xuICAgIGxpbmUtaGVpZ2h0OiAzNXB4O1xuICB9XG4gIC5mb290ZXIgLmZvb3Rlci1tYWluIC5lbWFpbC1hbmQtc29jaWFsIC5saW5rcyBsaSBhIGkge1xuICAgIGZvbnQtc2l6ZTogMzVweDtcbiAgfVxufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM1N3B4KSB7XG4gIC5mb290ZXIgLmZvb3Rlci1ib3R0b20gLnRlcm1zIHtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgfVxufVxuIl0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9 */