@media only screen and (max-width: 767px) {
  .rwd-side .nav span, .rwd-side .side-top h2, .rwd-side .side-content a {
    white-space: nowrap;
    overflow: hidden;
    -ms-text-overflow: ellipsis;
    text-overflow: ellipsis; } }

/**
 * CSS triangle generator use SCSS
 * ref: http://apps.eky.hk/css-triangle-generator/
 */
html,
body,
span,
div,
table,
input,
select,
textarea,
button,
section,
li,
ul,
ol,
h1,
h2,
h3,
h4,
h5,
h6,
a {
  box-sizing: border-box; }

@media only screen and (max-width: 767px) {
  body,
  #wrap {
    margin: 0; }
  #header {
    position: relative !important;
    height: auto !important;
    width: 100% !important;
    overflow: hidden; }
  #banner {
    background-position: center center;
    background-size: contain;
    position: static;
    width: 100% !important;
    height: auto !important; }
  #logo a {
    width: 100%;
    height: auto;
    display: inline-block; }
    #logo a img {
      margin: 0 auto; }
  #nav {
    display: none; } }

@media only screen and (max-width: 767px) {
  #main-wrap,
  #main,
  #function {
    width: 100%; }
  #function {
    -webkit-justify-content: center;
        -ms-flex-pack: center;
            justify-content: center; }
    #function > *:not(:first-child) {
      margin-top: 10px;
      margin-left: 2%; }
    #function #fans-follow {
      margin-top: 10px; }
  #main {
    float: none !important;
    font-size: 1.1em; }
    #main .main-top {
      width: 100%; }
  #side {
    display: none; }
  #main-wrap .column {
    float: none;
    width: 100%;
    padding: 10px 10px 20px;
    margin: 0;
    font-size: 1.1em;
    line-height: 165%; } }

.onedit > img,
.onedit p > img,
.onedit a > img {
  max-width: 100%;
  height: auto; }

@media only screen and (max-width: 767px) {
  #footer {
    width: 100%;
    height: auto;
    font-size: 1.1em; }
  #foot-nav {
    display: none; }
  #contact-info,
  #footer-service,
  #power,
  #copyright {
    position: static;
    width: 100%;
    padding: 0 15px;
    text-align: left;
    float: none; }
  #footer-service {
    padding: 15px 0 0; }
    #footer-service p {
      display: block;
      margin: 0; }
    #footer-service #privacy-and-terms-block .privacy {
      cursor: pointer;
      text-decoration: none; }
      #footer-service #privacy-and-terms-block .privacy::after {
        content: "";
        border-right: 1px solid #969696;
        opacity: 0.7;
        height: 100px;
        margin: 0 0.5em; }
    #footer-service #privacy-and-terms-block .terms {
      cursor: pointer;
      text-decoration: none; }
  #contact-info {
    margin-bottom: 15px; }
    #contact-info li {
      display: block; } }

body[data-type="fullpage"] #contact-info,
body[data-type="fullpage"] #power,
body[data-type="fullpage"] #copyright {
  padding: 0; }

body[data-type="fullpage"] #footer-service {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  padding: 15px; }
  @media only screen and (max-width: 767px) {
    body[data-type="fullpage"] #footer-service #power,
    body[data-type="fullpage"] #footer-service #copyright {
      margin-right: 30px; } }

@media only screen and (max-width: 767px) and (max-width: 767px) {
  body[data-type="fullpage"] #footer-service p {
    text-align: left; } }
  body[data-type="fullpage"] #footer-service #privacy-and-terms-block {
    text-align: center; }
    @media only screen and (max-width: 767px) {
      body[data-type="fullpage"] #footer-service #privacy-and-terms-block {
        text-align: left; } }
    body[data-type="fullpage"] #footer-service #privacy-and-terms-block .privacy {
      cursor: pointer;
      text-decoration: none; }
      body[data-type="fullpage"] #footer-service #privacy-and-terms-block .privacy::after {
        content: "";
        border-right: 1px solid rgba(255, 255, 255, 0.1);
        height: 100px;
        margin: 0 0.5em; }
    body[data-type="fullpage"] #footer-service #privacy-and-terms-block .terms {
      cursor: pointer;
      text-decoration: none; }

body[data-type="basepage"] .wrap {
  padding: 0 15px; }

@media only screen and (max-width: 767px) {
  body[data-type="basepage"] #contact-info,
  body[data-type="basepage"] #footer-service,
  body[data-type="basepage"] #power,
  body[data-type="basepage"] #copyright {
    padding: 0; } }

body[data-type="basepage"] .privacy {
  cursor: pointer;
  text-decoration: none; }
  body[data-type="basepage"] .privacy::after {
    content: "";
    border-right: 1px solid #969696;
    opacity: 0.7;
    height: 100px;
    margin: 0 0.5em; }

.rwd-navbar-toggle {
  transition: padding 0.2s cubic-bezier(0.7, 0, 0.3, 1);
  position: relative;
  padding: 20px 70px 20px 12px;
  margin-left: -15px;
  height: 40px;
  border: 0;
  outline: none;
  float: left;
  overflow: hidden;
  background-image: none;
  background-color: transparent;
  -webkit-appearance: none; }
  .rwd-navbar-toggle.menu-open {
    padding: 20px 12px; }
    .rwd-navbar-toggle.menu-open:before {
      left: 0; }
    .rwd-navbar-toggle.menu-open .label {
      display: none; }
  .rwd-navbar-toggle:before {
    position: absolute;
    left: -100%;
    top: 0;
    content: "";
    width: 100%;
    height: 100%;
    transition: left 0.2s cubic-bezier(0.7, 0, 0.3, 1);
    background-color: #272727; }
  .rwd-navbar-toggle .label {
    position: absolute;
    left: 40px;
    top: 50%;
    -webkit-transform: translateY(-50%);
        -ms-transform: translateY(-50%);
            transform: translateY(-50%);
    font-size: 13px;
    text-transform: uppercase; }

@media only screen and (max-width: 767px) {
  .rwd-side {
    width: 100%;
    background-color: #272727;
    color: #a8a8a8; }
    .rwd-side.menu-open {
      -webkit-transform: translateX(0);
          -ms-transform: translateX(0);
              transform: translateX(0);
      box-shadow: 10px 0 20px rgba(0, 0, 0, 0.3); }
      .rwd-side.menu-open .inner {
        -webkit-transform: scale(1);
            -ms-transform: scale(1);
                transform: scale(1); }
    .rwd-side a {
      color: #a8a8a8;
      text-decoration: none; }
      .rwd-side a.hover, .rwd-side a:hover {
        color: #e9e9e9; }
      .rwd-side a.active, .rwd-side a:active {
        color: #75c7f4;
        position: relative;
        top: 1px; }
    .rwd-side .nav,
    .rwd-side .topnav,
    .rwd-side .side,
    .rwd-side .product-search {
      margin: 0 35px 0 4%;
      padding: 0 0 15px;
      clear: both; }
    .rwd-side .topnav {
      margin-top: 15px;
      font-size: 110%;
      padding: 0; }
      .rwd-side .topnav .dropdown-menu {
        position: relative;
        float: none;
        background-color: #1c1c1c;
        padding: 0; }
        .rwd-side .topnav .dropdown-menu > li > a {
          padding: 7px 15px;
          color: #a8a8a8; }
        .rwd-side .topnav .dropdown-menu > li > a:hover {
          color: #fff;
          background-color: transparent; }
      .rwd-side .topnav > li {
        display: block;
        margin-bottom: 5px;
        text-transform: uppercase; }
    .rwd-side .home > a {
      border: 1px solid #757575;
      padding: 3px 12px;
      font-size: .9em;
      border-radius: 3px; }
    .rwd-side .language > a {
      line-height: 2.5;
      padding-left: 4px; }
    .rwd-side .nav {
      overflow: hidden; }
      .rwd-side .nav li {
        position: relative;
        display: inline-block;
        width: 100%; }
        .rwd-side .nav li.has-subnav .toggle {
          position: relative;
          display: inline-block;
          background-color: transparent;
          -webkit-appearance: none;
          background-image: none;
          outline: none;
          border: 0;
          padding: 4px 10px;
          vertical-align: middle; }
          .rwd-side .nav li.has-subnav .toggle::after {
            display: inline-block;
            width: 20px;
            height: 20px;
            font-size: 20px;
            line-height: 1;
            font-family: "FontAwesome";
            content: "\f105";
            transition: -webkit-transform .25s ease-in-out;
            transition: transform .25s ease-in-out;
            transition: transform .25s ease-in-out, -webkit-transform .25s ease-in-out;
            color: #e9e9e9; }
        .rwd-side .nav li.has-subnav.opened > .toggle::after,
        .rwd-side .nav li.has-subnav.opened > div .toggle::after {
          -webkit-transform: rotate(90deg);
              -ms-transform: rotate(90deg);
                  transform: rotate(90deg); }
      .rwd-side .nav a {
        position: relative;
        max-width: 83%;
        padding: 2% 2% 2% 0;
        display: inline-block;
        font-size: 1.2em;
        line-height: 1.4em;
        vertical-align: middle; }
      .rwd-side .nav span {
        display: block; }
      .rwd-side .nav .subnav {
        max-height: 0;
        overflow: hidden;
        margin-left: 5%;
        border-left: 1px solid #414141;
        transition: max-height .3s, -webkit-transform .25s ease-in-out;
        transition: max-height .3s, transform .25s ease-in-out;
        transition: max-height .3s, transform .25s ease-in-out, -webkit-transform .25s ease-in-out; }
        .rwd-side .nav .subnav li {
          padding-left: 5%; }
        .rwd-side .nav .subnav li.has-subnav {
          padding-left: 0; }
      .rwd-side .nav .has-subnav.opened > .subnav {
        max-height: 10000px; }
    .rwd-side .side-top {
      margin-bottom: 5px; }
      .rwd-side .side-top h2 {
        color: #fff; }
    .rwd-side .side-content {
      font-size: 120%;
      font-weight: 300; }
      .rwd-side .side-content li {
        transition-property: height;
        transition-duration: .3s;
        position: relative;
        line-height: 2em; }
        .rwd-side .side-content li > span {
          transition-property: background-position;
          transition-duration: .3s;
          display: block;
          position: absolute;
          width: 24px;
          height: 24px;
          top: 3px;
          right: 2px;
          border: 1px solid #424242;
          border-radius: 2em;
          cursor: pointer;
          background-image: url(../images/side_rwd_arrow.svg);
          background-position: 0 -19px; }
          .rwd-side .side-content li > span:before {
            content: "";
            position: absolute;
            top: -7px;
            left: -7px;
            width: 36px;
            height: 36px; }
          .rwd-side .side-content li > span + a {
            width: 90%; }
        .rwd-side .side-content li.open > span {
          background-position: 0 0; }
        .rwd-side .side-content li.open > .children {
          max-height: 1000px; }
      .rwd-side .side-content a {
        display: block; }
      .rwd-side .side-content > ul > li {
        border-bottom: 1px solid #454545; }
      .rwd-side .side-content .current > a {
        color: #fff; }
      .rwd-side .side-content .children {
        transition: max-height .3s;
        overflow: hidden;
        margin-left: 20px;
        max-height: 0; }
    .rwd-side .product-search {
      position: relative;
      height: 50px; }
      .rwd-side .product-search input {
        transition-duration: .3s;
        -webkit-appearance: none;
        float: left;
        border-radius: 2em;
        margin: 0;
        outline: none; }
      .rwd-side .product-search input[type="text"] {
        transition-property: background-color border-color;
        width: 100%;
        height: 35px;
        font-size: 18px;
        padding: 5px 63px 5px 10px;
        background-color: #272727;
        border-color: #4d4d4d; }
        .rwd-side .product-search input[type="text"]:focus {
          background-color: #f3f3f3;
          border-color: black;
          box-shadow: 0 0 10px #75c7f4; }
          .rwd-side .product-search input[type="text"]:focus + button,
          .rwd-side .product-search input[type="text"]:focus + input {
            opacity: 1; }
      .rwd-side .product-search button[type="submit"],
      .rwd-side .product-search input[type="submit"] {
        transition-property: right;
        position: absolute;
        top: 1px;
        right: -1px;
        height: 33px;
        padding: 0 10px;
        font-size: 17px;
        color: #333;
        background-color: #75c7f4;
        border-color: #46b4f0;
        border-radius: 5em;
        opacity: .5; }
        .rwd-side .product-search button[type="submit"]:focus,
        .rwd-side .product-search input[type="submit"]:focus {
          opacity: 1; }
    .rwd-side .close {
      position: absolute;
      top: 0;
      right: 0;
      color: #fff;
      padding: 10px 10px 15px;
      filter: alpha(opacity=90);
      opacity: 0.9;
      line-height: .6;
      font-size: 42px;
      font-weight: lighter;
      text-shadow: 0 0 0 transparent;
      pointer-events: none; } }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImdsb2JhbHMvX21peGluLnNjc3MiLCJwbHVnaW4vX2Fycm93LnNjc3MiLCJtb2JpbGUvX2hlYWRlci5zY3NzIiwibW9iaWxlL19tYWluLnNjc3MiLCJtb2JpbGUvX2Zvb3Rlci5zY3NzIiwibW9iaWxlL19yd2RfbmF2LnNjc3MiLCJnbG9iYWxzL192ZXJpYWJsZXMuc2NzcyIsIm1vYmlsZS9fcndkX3NpZGViYXIuc2NzcyIsIi4uLy4uL3RlbXBsYXRlcy9qcy9saWJzL2Jvb3RzdHJhcC1zYXNzLW9mZmljaWFsL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvbWl4aW5zL19vcGFjaXR5LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBa0JRO0VBK0JKO0lBVkEsb0JBQW9CO0lBQ3BCLGlCQUFpQjtJQUNqQiw0QkFBNEI7SUFDNUIsd0JBQXdCLEVBU3ZCLEVBQUE7O0FDbkRMOzs7R0FHRztBQ0RIOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQW9CSSx1QkFBdUIsRUFDMUI7O0FGTE87RUVRSjs7SUFFSSxVQUFVLEVBQ2I7RUFFRDtJQUNJLDhCQUE4QjtJQUM5Qix3QkFBd0I7SUFDeEIsdUJBQXVCO0lBQ3ZCLGlCQUFpQixFQUNwQjtFQUVEO0lBQ0ksbUNBQW1DO0lBQ25DLHlCQUF5QjtJQUN6QixpQkFBaUI7SUFDakIsdUJBQXVCO0lBQ3ZCLHdCQUF3QixFQUMzQjtFQUVEO0lBRVEsWUFBWTtJQUNaLGFBQWE7SUFDYixzQkFBc0IsRUFJekI7SUFSTDtNQU1ZLGVBQWUsRUFDbEI7RUFJVDtJQUNJLGNBQWMsRUFDakIsRUFBQTs7QUZ6Q0c7RUdmSjs7O0lBR0ksWUFBWSxFQUNmO0VBRUQ7SUFDSSxnQ0FBd0I7UUFBeEIsc0JBQXdCO1lBQXhCLHdCQUF3QixFQVEzQjtJQVREO01BR1EsaUJBQWlCO01BQ2pCLGdCQUFnQixFQUNuQjtJQUxMO01BT1EsaUJBQWlCLEVBQ3BCO0VBR0w7SUFDSSx1QkFBdUI7SUFDdkIsaUJBQWlCLEVBSXBCO0lBTkQ7TUFJUSxZ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QjtNQXhOTDtRQTJLWSx5QkFBeUI7UUFDekIseUJBQXlCO1FBQ3pCLFlBQVk7UUFDWixtQkFBbUI7UUFDbkIsVUFBVTtRQUNWLGNBQWMsRUFDakI7TUFqTFQ7UUFvTFksbURBQW1EO1FBQ25ELFlBQVk7UUFDWixhQUFhO1FBQ2IsZ0JBQWdCO1FBQ2hCLDJCQUEyQjtRQUMzQiwwQkR2T0U7UUN3T0Ysc0JBQXFCLEVBVXhCO1FBcE1UO1VBNExnQiwwQkFBeUI7VUFDekIsb0JBQW9CO1VBQ3BCLDZCQTdRWSxFQWtSZjtVQW5NYjs7WUFpTW9CLFdBQVcsRUFDZDtNQWxNakI7O1FBd01ZLDJCQUEyQjtRQUMzQixtQkFBbUI7UUFDbkIsU0FBUztRQUNULFlBQVk7UUFDWixhQUFhO1FBQ2IsZ0JBQWdCO1FBQ2hCLGdCQUFnQjtRQUNoQixZQUFZO1FBQ1osMEJBL1JnQjtRQWdTaEIsc0JBQW9CO1FBQ3BCLG1CQUFtQjtRQUNuQixZQUFZLEVBSWY7UUF2TlQ7O1VBcU5nQixXQUFXLEVBQ2Q7SUF0TmI7TUEyTlEsbUJBQW1CO01BQ25CLE9BQU87TUFDUCxTQUFTO01BQ1QsWUFBWTtNQUNaLHdCQUF3QjtNQzlTbEMsMEJBQWE7TUFDYixhRDhTNkI7TUFDbkIsZ0JBQWdCO01BQ2hCLGdCQUFnQjtNQUNoQixxQkFBcUI7TUFDckIsK0JBQStCO01BQy9CLHFCQUFxQixFQUN4QixFQUFBIiwiZmlsZSI6Im1vYmlsZS5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJcbi8vIHBob25lOlxuLy8gQG1lZGlhKG1heC13aWR0aDogNzY3cHgpe31cbi8vXG4vLyB0YWJsZXQ6XG4vLyBAbWVkaWEobWluLXdpZHRoOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6IDEwMjNweCl7fVxuLy9cbi8vIHBob25lYW5kdGFibGV0OlxuLy8gQG1lZGlhKG1heC13aWR0aDogMTAyM3B4KXt9XG4vL1xuLy8gdGFibGV0YW5kc2NyZWVuOlxuLy8gQG1lZGlhKG1pbi13aWR0aDogNzY4cHgpe31cbi8vXG4vLyBzY3JlZW46XG4vLyBAbWVkaWEobWluLXdpZHRoOiAxMDI0cHgpe31cblxuQG1peGluIHJlc3BvbmQtdG8oJG1lZGlhKSB7XG4gICAgQGlmICRtZWRpYSA9PSBwaG9uZSB7XG4gICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogJHNjcmVlbi1taW4gLSAxKSB7IEBjb250ZW50OyB9XG4gICAgfVxuICAgIEBlbHNlIGlmICRtZWRpYSA9PSB0YWJsZXQge1xuICAgICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRzY3JlZW4tbWluKSBhbmQgKG1heC13aWR0aDogJHNjcmVlbi1tYXgpIHsgQGNvbnRlbnQ7IH1cbiAgICB9XG4gICAgQGVsc2UgaWYgJG1lZGlhID09IHBob25lYW5kdGFibGV0IHtcbiAgICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkc2NyZWVuLW1heCkgeyBAY29udGVudDsgfVxuICAgIH1cbiAgICBAZWxzZSBpZiAkbWVkaWEgPT0gdGFibGV0YW5kc2NyZWVuIHtcbiAgICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkc2NyZWVuLW1pbikgeyBAY29udGVudDsgfVxuICAgIH1cbiAgICBAZWxzZSBpZiAkbWVkaWEgPT0gc2NyZWVuIHtcbiAgICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkc2NyZWVuLW1heCArIDEpIHsgQGNvbnRlbnQ7IH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRtZWRpYSkgeyBAY29udGVudDsgfVxuICAgIH1cbn1cblxuXG5AbWl4aW4gdGV4dC1vdmVyZmxvdyB7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIC1tcy10ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cblxuLy8gZXh0ZW5kXG4vLyBmaXggQGV4dGVuZCBvdXRlciBmcm9tIEBtZWRpYTpcbi8vIGh0dHA6Ly90aGVzYXNzd2F5LmNvbS9pbnRlcm1lZGlhdGUvdW5kZXJzdGFuZGluZy1wbGFjZWhvbGRlci1zZWxlY3RvcnNcbkBpbmNsdWRlIHJlc3BvbmQtdG8ocGhvbmUpIHtcbiAgICAldGV4dC1vdmVyZmxvdyB7XG4gICAgICAgIEBpbmNsdWRlIHRleHQtb3ZlcmZsb3c7XG4gICAgfVxufVxuXG5AaW5jbHVkZSByZXNwb25kLXRvKHBob25lKSB7XG4gICAgJW5vLWJnIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbn1cbiIsIi8qKlxuICogQ1NTIHRyaWFuZ2xlIGdlbmVyYXRvciB1c2UgU0NTU1xuICogcmVmOiBodHRwOi8vYXBwcy5la3kuaGsvY3NzLXRyaWFuZ2xlLWdlbmVyYXRvci9cbiAqL1xuQG1peGluIGFycm93ICgkZGlyZWN0aW9uOiBcImJvdHRvbVwiLCAkY29sb3I6ICMwMDAsICR3aWR0aDogMjBweCwgJGhlaWdodDogJHdpZHRoKSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIEBpZiAkZGlyZWN0aW9uID09IFwicmlnaHRcIiB7XG4gICAgICAgIGJvcmRlci10b3A6ICRoZWlnaHQgc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRoZWlnaHQgc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkd2lkdGggc29saWQgJGNvbG9yO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgcmlnaHQ6IC0kd2lkdGg7XG4gICAgICAgIG1hcmdpbi10b3A6IC0gJGhlaWdodDtcblxuICAgIH0gQGVsc2VpZiAkZGlyZWN0aW9uID09IFwibGVmdFwiIHtcbiAgICAgICAgYm9yZGVyLXRvcDogJGhlaWdodCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJGhlaWdodCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAkd2lkdGggc29saWQgJGNvbG9yO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogLSAkd2lkdGg7XG4gICAgICAgIG1hcmdpbi10b3A6IC0gJGhlaWdodDtcblxuICAgIH0gQGVsc2VpZiAkZGlyZWN0aW9uID09IFwidG9wXCIge1xuICAgICAgICBib3JkZXItbGVmdDogJHdpZHRoIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJGhlaWdodCBzb2xpZCAkY29sb3I7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdG9wOiAtICRoZWlnaHQ7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtICR3aWR0aDtcblxuICAgIH0gQGVsc2VpZiAkZGlyZWN0aW9uID09IFwiYm90dG9tXCIge1xuICAgICAgICBib3JkZXItbGVmdDogJHdpZHRoIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyLXRvcDogJGhlaWdodCBzb2xpZCAkY29sb3I7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgYm90dG9tOiAtICRoZWlnaHQ7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtICR3aWR0aDtcblxuICAgIH0gQGVsc2VpZiAkZGlyZWN0aW9uID09IFwidG9wUmlnaHRcIiB7XG4gICAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRjb2xvcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJGhlaWdodCBzb2xpZCB0cmFuc3BhcmVudDtcblxuICAgIH0gQGVsc2VpZiAkZGlyZWN0aW9uID09IFwidG9wTGVmdFwiIHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAkd2lkdGggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlci10b3A6ICRoZWlnaHQgc29saWQgJGNvbG9yO1xuXG4gICAgfSBAZWxzZWlmICRkaXJlY3Rpb24gPT0gXCJib3R0b21SaWdodFwiIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJGhlaWdodCBzb2xpZCAkY29sb3I7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkd2lkdGggc29saWQgdHJhbnNwYXJlbnQ7XG5cbiAgICB9IEBlbHNlaWYgJGRpcmVjdGlvbiA9PSBcImJvdHRvbUxlZnRcIiB7XG4gICAgICAgIGJvcmRlci10b3A6ICRoZWlnaHQgc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkd2lkdGggc29saWQgJGNvbG9yO1xuICAgIH1cbn1cblxuLy8gRGVtbzpcbi8vIGh0dHA6Ly9jb2RlcGVuLmlvL3Zpc2lvbmNhbi9mdWxsL0J5TmF3clxuQG1peGluIHBpeGVsLWFycm93ICgkc2l6ZTogNHB4LCAkY29sb3I6ICMwMDAsICRzdHlsZTogMykge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAkc2l6ZTtcbiAgICBoZWlnaHQ6ICRzaXplO1xuICAgIEBpZiAkc3R5bGUgPT0gMSB7XG4gICAgICAgIGJveC1zaGFkb3c6ICRzaXplICRzaXplIDAgMCAkY29sb3IsXG4gICAgICAgICAgICAgICAgICAgICRzaXplICogMiAkc2l6ZSAqIDIgMCAwICRjb2xvcixcbiAgICAgICAgICAgICAgICAgICAgJHNpemUgKiAzICRzaXplICogMyAwIDAgJGNvbG9yLFxuICAgICAgICAgICAgICAgICAgICAkc2l6ZSAqIDIgJHNpemUgKiA0IDAgMCAkY29sb3IsXG4gICAgICAgICAgICAgICAgICAgICRzaXplICogMSAkc2l6ZSAqIDUgMCAwICRjb2xvcjtcbiAgICB9IEBlbHNlaWYgJHN0eWxlID09IDIge1xuICAgICAgICBib3gtc2hhZG93OiAkc2l6ZSAkc2l6ZSAwIDAgJGNvbG9yLFxuICAgICAgICAgICAgICAgICAgICAkc2l6ZSAqIDIgJHNpemUgKiAyIDAgMCAkY29sb3IsXG4gICAgICAgICAgICAgICAgICAgICRzaXplICRzaXplICogMyAwIDAgJGNvbG9yO1xuICAgIH0gQGVsc2VpZiAkc3R5bGUgPT0gMyB7XG4gICAgICAgIGJveC1zaGFkb3c6ICRzaXplICRzaXplIDAgMCAkY29sb3IsXG4gICAgICAgICAgICAgICAgICAgICRzaXplICogMiAkc2l6ZSAqIDIgMCAwICRjb2xvcixcbiAgICAgICAgICAgICAgICAgICAgJHNpemUgKiAzICRzaXplICogMyAwIDAgJGNvbG9yLFxuICAgICAgICAgICAgICAgICAgICAkc2l6ZSAqIDIgJHNpemUgKiA0IDAgMCAkY29sb3IsXG4gICAgICAgICAgICAgICAgICAgICRzaXplICogMSAkc2l6ZSAqIDUgMCAwICRjb2xvcixcbiAgICAgICAgICAgICAgICAgICAgJHNpemUgKiAzICRzaXplIDAgMCAkY29sb3IsXG4gICAgICAgICAgICAgICAgICAgICRzaXplICogNCAkc2l6ZSAqIDIgMCAwICRjb2xvcixcbiAgICAgICAgICAgICAgICAgICAgJHNpemUgKiA1ICRzaXplICogMyAwIDAgJGNvbG9yLFxuICAgICAgICAgICAgICAgICAgICAkc2l6ZSAqIDQgJHNpemUgKiA0IDAgMCAkY29sb3IsXG4gICAgICAgICAgICAgICAgICAgICRzaXplICogMyAkc2l6ZSAqIDUgMCAwICRjb2xvcjtcbiAgICB9IEBlbHNlaWYgJHN0eWxlID09IDQge1xuICAgICAgICBib3gtc2hhZG93OiAkc2l6ZSAkc2l6ZSAwIDAgJGNvbG9yLFxuICAgICAgICAgICAgICAgICAgICAkc2l6ZSAqIDIgJHNpemUgKiAyIDAgMCAkY29sb3IsXG4gICAgICAgICAgICAgICAgICAgICRzaXplICogMyAkc2l6ZSAqIDMgMCAwICRjb2xvcixcbiAgICAgICAgICAgICAgICAgICAgJHNpemUgKiAyICRzaXplICogNCAwIDAgJGNvbG9yLFxuICAgICAgICAgICAgICAgICAgICAkc2l6ZSAqIDEgJHNpemUgKiA1IDAgMCAkY29sb3IsXG4gICAgICAgICAgICAgICAgICAgICRzaXplICogNCAkc2l6ZSAwIDAgJGNvbG9yLFxuICAgICAgICAgICAgICAgICAgICAkc2l6ZSAqIDUgJHNpemUgKiAyIDAgMCAkY29sb3IsXG4gICAgICAgICAgICAgICAgICAgICRzaXplICogNiAkc2l6ZSAqIDMgMCAwICRjb2xvcixcbiAgICAgICAgICAgICAgICAgICAgJHNpemUgKiA1ICRzaXplICogNCAwIDAgJGNvbG9yLFxuICAgICAgICAgICAgICAgICAgICAkc2l6ZSAqIDQgJHNpemUgKiA1IDAgMCAkY29sb3I7XG4gICAgfSBAZWxzZWlmICRzdHlsZSA9PSA1IHtcbiAgICAgICAgYm94LXNoYWRvdzogJHNpemUgKiA0ICRzaXplICogMSAwIDAgJGNvbG9yLFxuICAgICAgICAgICAgICAgICAgICAkc2l6ZSAqIDUgJHNpemUgKiAyIDAgMCAkY29sb3IsXG4gICAgICAgICAgICAgICAgICAgICRzaXplICogNiAkc2l6ZSAqIDMgMCAwICRjb2xvcixcbiAgICAgICAgICAgICAgICAgICAgJHNpemUgKiAxICRzaXplICogNCAwIDAgJGNvbG9yLFxuICAgICAgICAgICAgICAgICAgICAkc2l6ZSAqIDIgJHNpemUgKiA0IDAgMCAkY29sb3IsXG4gICAgICAgICAgICAgICAgICAgICRzaXplICogMyAkc2l6ZSAqIDQgMCAwICRjb2xvcixcbiAgICAgICAgICAgICAgICAgICAgJHNpemUgKiA0ICRzaXplICogNCAwIDAgJGNvbG9yLFxuICAgICAgICAgICAgICAgICAgICAkc2l6ZSAqIDUgJHNpemUgKiA0IDAgMCAkY29sb3IsXG4gICAgICAgICAgICAgICAgICAgICRzaXplICogNiAkc2l6ZSAqIDQgMCAwICRjb2xvcixcbiAgICAgICAgICAgICAgICAgICAgJHNpemUgKiA3ICRzaXplICogNCAwIDAgJGNvbG9yLFxuICAgICAgICAgICAgICAgICAgICAkc2l6ZSAqIDYgJHNpemUgKiA1IDAgMCAkY29sb3IsXG4gICAgICAgICAgICAgICAgICAgICRzaXplICogNSAkc2l6ZSAqIDYgMCAwICRjb2xvcixcbiAgICAgICAgICAgICAgICAgICAgJHNpemUgKiA0ICRzaXplICogNyAwIDAgJGNvbG9yO1xuICAgIH0gQGVsc2VpZiAkc3R5bGUgPT0gNiB7XG4gICAgICAgIGJveC1zaGFkb3c6ICRzaXplICogMiAkc2l6ZSAqIDEgMCAwICRjb2xvcixcbiAgICAgICAgICAgICAgICAgICAgJHNpemUgKiAxICRzaXplICogMiAwIDAgJGNvbG9yLFxuICAgICAgICAgICAgICAgICAgICAkc2l6ZSAqIDIgJHNpemUgKiAyIDAgMCAkY29sb3IsXG4gICAgICAgICAgICAgICAgICAgICRzaXplICogMyAkc2l6ZSAqIDIgMCAwICRjb2xvcixcbiAgICAgICAgICAgICAgICAgICAgJHNpemUgKiAyICRzaXplICogMyAwIDAgJGNvbG9yO1xuICAgIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuaHRtbCxcbmJvZHksXG5zcGFuLFxuZGl2LFxudGFibGUsXG5pbnB1dCxcbnNlbGVjdCxcbnRleHRhcmVhLFxuYnV0dG9uLFxuc2VjdGlvbixcbmxpLFxudWwsXG5vbCxcbmgxLFxuaDIsXG5oMyxcbmg0LFxuaDUsXG5oNixcbmEge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbkBpbmNsdWRlIHJlc3BvbmQtdG8ocGhvbmUpIHtcbiAgICBib2R5LFxuICAgICN3cmFwIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgICNoZWFkZXIge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICAgICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgfVxuXG4gICAgI2Jhbm5lciB7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgI2xvZ28ge1xuICAgICAgICBhIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICNuYXYge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuQGluY2x1ZGUgcmVzcG9uZC10byhwaG9uZSkge1xuICAgICNtYWluLXdyYXAsXG4gICAgI21haW4sXG4gICAgI2Z1bmN0aW9uIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgI2Z1bmN0aW9uIHtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICYgPiAqOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMiU7XG4gICAgICAgIH1cbiAgICAgICAgI2ZhbnMtZm9sbG93IHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAjbWFpbiB7XG4gICAgICAgIGZsb2F0OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4xZW07XG4gICAgICAgIC5tYWluLXRvcCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICNzaWRlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAvLyDpppbpoIFcbiAgICAjbWFpbi13cmFwIC5jb2x1bW4ge1xuICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHBhZGRpbmc6IDEwcHggMTBweCAyMHB4O1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4xZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxNjUlO1xuICAgIH1cbn1cblxuLm9uZWRpdCA+IGltZyxcbi5vbmVkaXQgcCA+IGltZyxcbi5vbmVkaXQgYSA+IGltZyB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogYXV0bztcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuQGluY2x1ZGUgcmVzcG9uZC10byhwaG9uZSkge1xuICAgICNmb290ZXIge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICBmb250LXNpemU6IDEuMWVtO1xuICAgIH1cblxuICAgICNmb290LW5hdiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgI2NvbnRhY3QtaW5mbyxcbiAgICAjZm9vdGVyLXNlcnZpY2UsXG4gICAgI3Bvd2VyLFxuICAgICNjb3B5cmlnaHQge1xuICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcGFkZGluZzogMCAxNXB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICBcbiAgICB9XG4gICAgXG4gICAgI2Zvb3Rlci1zZXJ2aWNlIHtcbiAgICAgICAgcGFkZGluZzogMTVweCAwIDA7XG4gICAgICAgIHAge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cbiAgICAgICAgI3ByaXZhY3ktYW5kLXRlcm1zLWJsb2NrIHtcbiAgICAgICAgICAgIC5wcml2YWN5IHtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgIzk2OTY5NjtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC43O1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMHB4O1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41ZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLnRlcm1zIHtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAjY29udGFjdC1pbmZvIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTVweDtcbiAgICAgICAgbGkge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBcbn1cblxuLy8g5ru/54mIXG5ib2R5W2RhdGEtdHlwZT1cImZ1bGxwYWdlXCJdIHtcbiAgICAjY29udGFjdC1pbmZvLFxuICAgICNwb3dlcixcbiAgICAjY29weXJpZ2h0IHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICAjZm9vdGVyLXNlcnZpY2Uge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZzogMTVweDtcbiAgICAgICAgQGluY2x1ZGUgcmVzcG9uZC10byhwaG9uZSkge1xuICAgICAgICAgICAgI3Bvd2VyLFxuICAgICAgICAgICAgI2NvcHlyaWdodCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAzMHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgcmVzcG9uZC10byhwaG9uZSkge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgI3ByaXZhY3ktYW5kLXRlcm1zLWJsb2NrIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIEBpbmNsdWRlIHJlc3BvbmQtdG8ocGhvbmUpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgXG4gICAgICAgICAgICAucHJpdmFjeSB7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDBweDtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNWVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC50ZXJtcyB7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gYmFzZSDln7rmnKzniYhcbmJvZHlbZGF0YS10eXBlPVwiYmFzZXBhZ2VcIl0ge1xuICAgIC53cmFwIHtcbiAgICAgICAgcGFkZGluZzogMCAxNXB4O1xuICAgIH1cbiAgICAjY29udGFjdC1pbmZvLFxuICAgICNmb290ZXItc2VydmljZSxcbiAgICAjcG93ZXIsXG4gICAgI2NvcHlyaWdodCB7XG4gICAgICAgIFxuICAgICAgICBAaW5jbHVkZSByZXNwb25kLXRvKHBob25lKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5wcml2YWN5IHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgIzk2OTY5NjtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNztcbiAgICAgICAgICAgIGhlaWdodDogMTAwcHg7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41ZW07XG4gICAgICAgIH1cbiAgICB9XG4gICAgXG59IiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLyBSV0Qg55So55qE6YG45ZauXG4ucndkLW5hdmJhci10b2dnbGUge1xuICAgIHRyYW5zaXRpb246IHBhZGRpbmcgLjJzICR0cmFuc2l0aW9uLXRpbWluZztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZzogKCRuYXZiYXItaGVpZ2h0LW1vYmlsZSAvIDIpIDcwcHggKCRuYXZiYXItaGVpZ2h0LW1vYmlsZSAvIDIpIDEycHg7XG4gICAgbWFyZ2luLWxlZnQ6IC0xNXB4O1xuICAgIGhlaWdodDogJG5hdmJhci1oZWlnaHQtbW9iaWxlO1xuICAgIGJvcmRlcjogMDtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAmLm1lbnUtb3BlbiB7XG4gICAgICAgIHBhZGRpbmc6IDIwcHggMTJweDtcbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgfVxuICAgICAgICAubGFiZWwge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICY6YmVmb3JlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0OiAtMTAwJTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB0cmFuc2l0aW9uOiBsZWZ0IC4ycyAkdHJhbnNpdGlvbi10aW1pbmc7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzaWRlLWJnYztcbiAgICB9XG5cbiAgICAvLyDpgbjllq7lrZfmqKNcbiAgICAubGFiZWwge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDQwcHg7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICB9XG59XG4iLCJcbiRibHVlOiAjMzljO1xuJGJsdWVMaWdodDogbGlnaHRlbigkYmx1ZSwgNyUpO1xuJGJsdWVEYXJrOiBkYXJrZW4oJGJsdWUsIDclKTtcbiRibHVlRGFyazIwOiBkYXJrZW4oJGJsdWUsIDIwJSk7XG4kYmx1ZURhcmszMDogZGFya2VuKCRibHVlLCAzMCUpO1xuJHJlZDogI2UzMztcbiRyZWRMaWdodDogbGlnaHRlbigkcmVkLCA3JSk7XG4kcmVkRGFyazogZGFya2VuKCRyZWQsIDclKTtcbiRyZWREYXJrMjA6IGRhcmtlbigkcmVkLCAyMCUpO1xuJHJlZERhcmszMDogZGFya2VuKCRyZWQsIDMwJSk7XG4kZ3JlZW46ICM2YTM7XG4kZ3JlZW5MaWdodDogbGlnaHRlbigkZ3JlZW4sIDclKTtcbiRncmVlbkRhcms6IGRhcmtlbigkZ3JlZW4sIDclKTtcbiRncmVlbkRhcmsyMDogZGFya2VuKCRncmVlbiwgMjAlKTtcbiRncmVlbkRhcmszMDogZGFya2VuKCRncmVlbiwgMzAlKTtcbiRncmV5OiAjZjVmNWY1O1xuJGdyZXlEYXJrOiBkYXJrZW4oJGdyZXksIDEwJSk7XG4kZ3JleURhcmsyMDogZGFya2VuKCRncmV5LCAyMCUpO1xuJGdyZXlEYXJrMzA6IGRhcmtlbigkZ3JleSwgMzAlKTtcblxuJHByaWNlLWNvbG9yOiAjZmY5NTFmO1xuXG4vLyByZXNwb25zaXZlIHNjcmVlbiBzaXplXG4kc2NyZWVuLW1heDogMTAyNHB4O1xuJHNjcmVlbi1taW46IDc2OHB4O1xuXG4vLyB0b3BuYXZcbiRuYXZiYXItaGVpZ2h0LW1vYmlsZTogNDBweDtcblxuLy8g5YWn6aCBIGJhbm5lciDpoJDoqK1cbiRiYW5uZXItd2lkdGg6IDkyMHB4O1xuJGJhbm5lci1pbnBhZ2UtaGVpZ2h0OiAxMjBweDtcbiRiYW5uZXItaW5ob21lLWhlaWdodDogMjcwcHg7XG5cbi8vIFJXRFxuJG1lbnUtb3Blbi1jbGFzczogXCIubWVudS1vcGVuXCI7XG4kc2lkZS1iZ2M6ICMyNzI3Mjc7XG5cbiR0cmFuc2l0aW9uLXRpbWluZzogY3ViaWMtYmV6aWVyKC43LCAwLCAuMywgMSk7XG5cbi8vIHJld3JpdGUgYm9vdHN0cmFwXG4kYm9yZGVyLXJhZGl1cy1iYXNlOiAzcHg7XG4kc3RhdGUtZGFuZ2VyLXRleHQ6ICNjOTJjMjk7XG4kc3RhdGUtc3VjY2Vzcy10ZXh0OiAjM2FhNDNjO1xuJHN0YXRlLXdhcm5pbmctdGV4dDogI2JlNzkwMjtcblxuJGJ0bi1kZWZhdWx0LWJnOiAjZjNmM2YzO1xuJGJ0bi1kZWZhdWx0LWJvcmRlcjogI2UyZTJlMjtcblxuJGNvbnRhaW5lci1sYXJnZS1kZXNrdG9wOiA5MjBweDtcbiRjb250YWluZXItbGc6ICRjb250YWluZXItbGFyZ2UtZGVza3RvcDtcbiRjb250YWluZXItZGVza3RvcDogMTAwJTtcbiRjb250YWluZXItbWQ6ICRjb250YWluZXItZGVza3RvcDtcbiRjb250YWluZXItdGFibGV0OiAxMDAlO1xuJGNvbnRhaW5lci1zbTogJGNvbnRhaW5lci10YWJsZXQ7XG5cbi8vIGh0bWw0IOaomea6lumgkOiorSBzaXplXG4kZm9udC1zaXplLWgxOiAxZW07XG4kZm9udC1zaXplLWgyOiAxLjVlbTtcbiRmb250LXNpemUtaDM6IDEuMTdlbTtcbiRmb250LXNpemUtaDQ6IDEuMTJlbTtcbiRoZWFkaW5ncy1saW5lLWhlaWdodDogaW5oZXJpdDtcblxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4kc2lkZS1mb250LWNvbG9yOiAjYThhOGE4O1xuJHNpZGUtZm9udC1ob3Zlci1jb2xvcjogI2U5ZTllOTtcbiRzaWRlLWZvbnQtYWN0aXZlLWNvbG9yOiAjNzVjN2Y0O1xuJHNpZGUtZm9udC1jdXJyZW50LWNvbG9yOiAjZmZmO1xuXG4kbGlzdC1sZXZlbC1zcGFjZTogNSU7XG5AbWl4aW4gbmF2LW1vYmlsZSB7XG4gICAgbGkge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICYuaGFzLXN1Ym5hdiB7XG4gICAgICAgICAgICAudG9nZ2xlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICAgICAgICAgICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDRweCAxMHB4O1xuICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBcIkZvbnRBd2Vzb21lXCI7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXFxmMTA1XCI7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAuMjVzIGVhc2UtaW4tb3V0O1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNpZGUtZm9udC1ob3Zlci1jb2xvcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYub3BlbmVkIHtcbiAgICAgICAgICAgICAgICA+IC50b2dnbGU6OmFmdGVyLFxuICAgICAgICAgICAgICAgID4gZGl2IC50b2dnbGU6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiA4MyU7XG4gICAgICAgIHBhZGRpbmc6IDIlIDIlIDIlIDA7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgZm9udC1zaXplOiAxLjJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNGVtO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cblxuICAgIHNwYW4ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgQGV4dGVuZCAldGV4dC1vdmVyZmxvdztcbiAgICB9XG5cbiAgICAuc3VibmF2IHtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgbWFyZ2luLWxlZnQ6ICRsaXN0LWxldmVsLXNwYWNlO1xuICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIGxpZ2h0ZW4oJHNpZGUtYmdjLCAxMCUpO1xuICAgICAgICB0cmFuc2l0aW9uOiBtYXgtaGVpZ2h0IC4zcywgdHJhbnNmb3JtIC4yNXMgZWFzZS1pbi1vdXQ7XG5cbiAgICAgICAgbGkge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkbGlzdC1sZXZlbC1zcGFjZTtcbiAgICAgICAgfVxuICAgICAgICBsaS5oYXMtc3VibmF2IHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5oYXMtc3VibmF2Lm9wZW5lZCA+IC5zdWJuYXYge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAwMHB4O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgcmVzcG9uZC10byhwaG9uZSkge1xuICAgIC5yd2Qtc2lkZSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2lkZS1iZ2M7XG4gICAgICAgIGNvbG9yOiAkc2lkZS1mb250LWNvbG9yO1xuXG4gICAgICAgICYjeyRtZW51LW9wZW4tY2xhc3N9IHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDEwcHggMCAyMHB4IHJnYmEoMCwgMCwgMCwgLjMpO1xuXG4gICAgICAgICAgICAuaW5uZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBhIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2lkZS1mb250LWNvbG9yO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgJi5ob3ZlcixcbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2lkZS1mb250LWhvdmVyLWNvbG9yO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLmFjdGl2ZSxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNpZGUtZm9udC1hY3RpdmUtY29sb3I7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHRvcDogMXB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm5hdixcbiAgICAgICAgLnRvcG5hdixcbiAgICAgICAgLnNpZGUsXG4gICAgICAgIC5wcm9kdWN0LXNlYXJjaCB7XG4gICAgICAgICAgICBtYXJnaW46IDAgMzVweCAwIDQlO1xuICAgICAgICAgICAgcGFkZGluZzogMCAwIDE1cHg7XG4gICAgICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgfVxuXG4gICAgICAgIC50b3BuYXYge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMTVweDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTEwJTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICAgICAgIC8vIOiqnuezuyAo5bGV6ZaLbGFuZ3VhZ2UpXG4gICAgICAgICAgICAuZHJvcGRvd24tbWVudSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigkc2lkZS1mb250LWNvbG9yLCA1NSUpO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICAgICAgICAgICA+IGxpID4gYSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDdweCAxNXB4O1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNpZGUtZm9udC1jb2xvcjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICA+IGxpID4gYTpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgID4gbGkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmhvbWUgPiBhIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGRhcmtlbigkc2lkZS1mb250LWNvbG9yLCAyMCUpO1xuICAgICAgICAgICAgcGFkZGluZzogM3B4IDEycHg7XG4gICAgICAgICAgICBmb250LXNpemU6IC45ZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgICAgIH1cblxuICAgICAgICAubGFuZ3VhZ2UgPiBhIHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyLjU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5uYXYge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIEBpbmNsdWRlIG5hdi1tb2JpbGU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBzaWRlXG4gICAgICAgIC5zaWRlLXRvcCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgICAgICAgICBoMiB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgICAgICAgICAgQGV4dGVuZCAldGV4dC1vdmVyZmxvdztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5zaWRlLWNvbnRlbnQge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxMjAlO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcblxuICAgICAgICAgICAgbGkge1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IGhlaWdodDtcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAuM3M7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyZW07XG5cbiAgICAgICAgICAgICAgICA+IHNwYW4ge1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBiYWNrZ3JvdW5kLXBvc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAuM3M7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyNHB4O1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogM3B4O1xuICAgICAgICAgICAgICAgICAgICByaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBkYXJrZW4oJHNpZGUtZm9udC1jb2xvciwgNDAlKTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMmVtO1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvc2lkZV9yd2RfYXJyb3cuc3ZnKTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtMTlweDtcbiAgICAgICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogLTdweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IC03cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMzZweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMzZweDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICArIGEge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDkwJTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYub3BlbiB7XG4gICAgICAgICAgICAgICAgICAgID4gc3BhbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDA7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPiAuY2hpbGRyZW4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwMHB4O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBAZXh0ZW5kICV0ZXh0LW92ZXJmbG93O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICA+IHVsID4gbGkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjNDU0NTQ1O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuY3VycmVudCB7XG4gICAgICAgICAgICAgICAgPiBhIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzaWRlLWZvbnQtY3VycmVudC1jb2xvcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5jaGlsZHJlbiB7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogbWF4LWhlaWdodCAuM3M7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMjBweDtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8g55Si5ZOB5pCc5bCLXG4gICAgICAgIC5wcm9kdWN0LXNlYXJjaCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDUwcHg7XG5cbiAgICAgICAgICAgIGlucHV0IHtcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAuM3M7XG4gICAgICAgICAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgICAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJlbTtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaW5wdXRbdHlwZT1cInRleHRcIl0ge1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IGJhY2tncm91bmQtY29sb3IgYm9yZGVyLWNvbG9yO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMzVweDtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogNXB4IDYzcHggNXB4IDEwcHg7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNpZGUtYmdjO1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbGlnaHRlbigkc2lkZS1iZ2MsIDE1JSk7XG4gICAgICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oJHNpZGUtYmdjLCA4MCUpO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IGRhcmtlbigkc2lkZS1iZ2MsIDIwJSk7XG4gICAgICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAxMHB4ICRzaWRlLWZvbnQtYWN0aXZlLWNvbG9yO1xuICAgICAgICAgICAgICAgICAgICArIGJ1dHRvbixcbiAgICAgICAgICAgICAgICAgICAgKyBpbnB1dCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBidXR0b25bdHlwZT1cInN1Ym1pdFwiXSxcbiAgICAgICAgICAgIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHJpZ2h0O1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDFweDtcbiAgICAgICAgICAgICAgICByaWdodDogLTFweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDMzcHg7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMCAxMHB4O1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTdweDtcbiAgICAgICAgICAgICAgICBjb2xvcjogIzMzMztcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2lkZS1mb250LWFjdGl2ZS1jb2xvcjtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IGRhcmtlbigkc2lkZS1mb250LWFjdGl2ZS1jb2xvciwgMTAlKTtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1ZW07XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogLjU7XG4gICAgICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmNsb3NlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgICAgICBwYWRkaW5nOiAxMHB4IDEwcHggMTVweDtcbiAgICAgICAgICAgIEBpbmNsdWRlIG9wYWNpdHkoLjkpO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IC42O1xuICAgICAgICAgICAgZm9udC1zaXplOiA0MnB4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAwIDAgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8vIE9wYWNpdHlcblxuQG1peGluIG9wYWNpdHkoJG9wYWNpdHkpIHtcbiAgJG9wYWNpdHktaWU6ICgkb3BhY2l0eSAqIDEwMCk7ICAvLyBJRTggZmlsdGVyXG4gIGZpbHRlcjogYWxwaGEob3BhY2l0eT0kb3BhY2l0eS1pZSk7XG4gIG9wYWNpdHk6ICRvcGFjaXR5O1xufVxuIl19 */