/*
CORES
*/
/*
######  ####### #     #     #####  #     #    #    ######  ####### #     #
#     # #     #  #   #     #     # #     #   # #   #     # #     # #  #  #
#     # #     #   # #      #       #     #  #   #  #     # #     # #  #  #
######  #     #    #        #####  ####### #     # #     # #     # #  #  #
#     # #     #   # #            # #     # ####### #     # #     # #  #  #
#     # #     #  #   #     #     # #     # #     # #     # #     # #  #  #
######  ####### #     #     #####  #     # #     # ######  #######  ## ##
*/
/* @include box-shadow(1px,1px,1px,0, #fff, true); */
/*
######  ####### #     # #     # ######  ####### ######
#     # #     # #     # ##    # #     # #       #     #
#     # #     # #     # # #   # #     # #       #     #
######  #     # #     # #  #  # #     # #####   #     #
#   #   #     # #     # #   # # #     # #       #     #
#    #  #     # #     # #    ## #     # #       #     #
#     # #######  #####  #     # ######  ####### ######

*/
/*
#####  ######     #    ######  ### ####### #     # #######
#     # #     #   # #   #     #  #  #       ##    #    #
#       #     #  #   #  #     #  #  #       # #   #    #
#  #### ######  #     # #     #  #  #####   #  #  #    #
#     # #   #   ####### #     #  #  #       #   # #    #
#     # #    #  #     # #     #  #  #       #    ##    #
#####  #     # #     # ######  ### ####### #     #    #

*/
/*
#    # ####### #     # ####### ######     #    #     # #######  #####
#   #  #        #   #  #       #     #   # #   ##   ## #       #     #
#  #   #         # #   #       #     #  #   #  # # # # #       #
###    #####      #    #####   ######  #     # #  #  # #####    #####
#  #   #          #    #       #   #   ####### #     # #             #
#   #  #          #    #       #    #  #     # #     # #       #     #
#    # #######    #    #       #     # #     # #     # #######  #####

*/
@-webkit-keyframes fadeIn {
  0% {
    opacity: 0; }
  100% {
    opacity: 1; } }

@-moz-keyframes fadeIn {
  0% {
    opacity: 0; }
  100% {
    opacity: 1; } }

@-ms-keyframes fadeIn {
  0% {
    opacity: 0; }
  100% {
    opacity: 1; } }

@-o-keyframes fadeIn {
  0% {
    opacity: 0; }
  100% {
    opacity: 1; } }

@keyframes fadeIn {
  0% {
    opacity: 0; }
  100% {
    opacity: 1; } }

/*
####### ######     #    #     #  #####  ### ####### ### ####### #     #  #####
   #    #     #   # #   ##    # #     #  #     #     #  #     # ##    # #     #
   #    #     #  #   #  # #   # #        #     #     #  #     # # #   # #
   #    ######  #     # #  #  #  #####   #     #     #  #     # #  #  #  #####
   #    #   #   ####### #   # #       #  #     #     #  #     # #   # #       #
   #    #    #  #     # #    ## #     #  #     #     #  #     # #    ## #     #
   #    #     # #     # #     #  #####  ###    #    ### ####### #     #  #####

*/
.maincontent {
  background: #FFFFFF; }
  .maincontent .content-body {
    width: 84%;
    max-width: 1210px !important; }
    .maincontent .content-body .menu-footer {
      width: 101%; }
      @media (max-width: 820px) {
        .maincontent .content-body .menu-footer {
          bottom: 0;
          width: 693px; } }
      @media (max-width: 480px) {
        .maincontent .content-body .menu-footer {
          bottom: 0;
          width: 340px; } }
      .maincontent .content-body .menu-footer .topo .camada, .maincontent .content-body .menu-footer .topo .camada2, .maincontent .content-body .menu-footer .topo .camada3 {
        width: 94.2%;
        left: 0.8%; }
        @media (max-width: 480px) {
          .maincontent .content-body .menu-footer .topo .camada, .maincontent .content-body .menu-footer .topo .camada2, .maincontent .content-body .menu-footer .topo .camada3 {
            width: 312px;
            left: 0; } }
        @media (min-width: 50px) and (max-width: 320px) {
          .maincontent .content-body .menu-footer .topo .camada, .maincontent .content-body .menu-footer .topo .camada2, .maincontent .content-body .menu-footer .topo .camada3 {
            width: 264px; } }
        .maincontent .content-body .menu-footer .topo .camada .triangle, .maincontent .content-body .menu-footer .topo .camada2 .triangle, .maincontent .content-body .menu-footer .topo .camada3 .triangle {
          margin: 1.5% -11% 0 0; }
          @media (max-width: 820px) {
            .maincontent .content-body .menu-footer .topo .camada .triangle, .maincontent .content-body .menu-footer .topo .camada2 .triangle, .maincontent .content-body .menu-footer .topo .camada3 .triangle {
              margin: 2.5% -15% 0 0; } }
          @media (max-width: 480px) {
            .maincontent .content-body .menu-footer .topo .camada .triangle, .maincontent .content-body .menu-footer .topo .camada2 .triangle, .maincontent .content-body .menu-footer .topo .camada3 .triangle {
              margin: 2.5% -27% 0 0; } }
          @media (min-width: 50px) and (max-width: 320px) {
            .maincontent .content-body .menu-footer .topo .camada .triangle, .maincontent .content-body .menu-footer .topo .camada2 .triangle, .maincontent .content-body .menu-footer .topo .camada3 .triangle {
              margin: 2.5% -31% 0 0; } }
          .maincontent .content-body .menu-footer .topo .camada .triangle.baixo, .maincontent .content-body .menu-footer .topo .camada2 .triangle.baixo, .maincontent .content-body .menu-footer .topo .camada3 .triangle.baixo {
            margin: 1.5% -11% 0 0; }
            @media (max-width: 820px) {
              .maincontent .content-body .menu-footer .topo .camada .triangle.baixo, .maincontent .content-body .menu-footer .topo .camada2 .triangle.baixo, .maincontent .content-body .menu-footer .topo .camada3 .triangle.baixo {
                margin: 2.5% -15% 0 0; } }
            @media (max-width: 480px) {
              .maincontent .content-body .menu-footer .topo .camada .triangle.baixo, .maincontent .content-body .menu-footer .topo .camada2 .triangle.baixo, .maincontent .content-body .menu-footer .topo .camada3 .triangle.baixo {
                margin: 2.5% -27% 0 0; } }
            @media (min-width: 50px) and (max-width: 320px) {
              .maincontent .content-body .menu-footer .topo .camada .triangle.baixo, .maincontent .content-body .menu-footer .topo .camada2 .triangle.baixo, .maincontent .content-body .menu-footer .topo .camada3 .triangle.baixo {
                margin: 2.5% -31% 0 0; } }
      .maincontent .content-body .menu-footer .corpo {
        width: 94.2%;
        left: 0.8%; }
        @media (max-width: 480px) {
          .maincontent .content-body .menu-footer .corpo {
            width: 312px;
            left: 0; } }
        @media (min-width: 50px) and (max-width: 320px) {
          .maincontent .content-body .menu-footer .corpo {
            width: 264px; } }

.footer-mark .wrapper a {
  left: 40px; }

.conteudo {
  margin: -70px auto;
  float: none;
  width: 98%; }
  @media (max-width: 820px) {
    .conteudo {
      margin: -18px auto; } }
  @media (max-width: 480px) {
    .conteudo {
      margin: 5% 0; } }

.home .container {
  padding-top: 133px !important;
  max-width: 100% !important; }
  @media (max-width: 820px) {
    .home .container {
      padding-top: 133px !important; } }
  @media (max-width: 480px) {
    .home .container {
      padding-top: 64px !important; } }
  .home .container .conteudo {
    float: left; }

#contato-footer {
  background-color: #6598a3;
  width: 97%;
  height: 130px;
  margin: 1% 1%;
  position: relative;
  bottom: 0;
  overflow: hidden;
  color: #FFFFFF !important; }
  #contato-footer h4 {
    color: #FFFFFF; }
  @media (max-width: 820px) {
    #contato-footer {
      display: none; } }
  @media (max-width: 480px) {
    #contato-footer {
      display: none; } }
  #contato-footer .conteudofooter {
    width: 100%;
    margin: 0% 4%; }
    #contato-footer .conteudofooter .faleconoscofooter {
      margin: 1%;
      padding: 2% 2% 0 0;
      float: left;
      border-right: 1px solid white;
      width: 10%;
      height: 90px; }
      @media min-width {
        #contato-footer .conteudofooter .faleconoscofooter {
          height: 70px; } }
    #contato-footer .conteudofooter .mensagem {
      width: 30%;
      float: left;
      margin: 1% 1%;
      border-right: 1px solid white; }
      #contato-footer .conteudofooter .mensagem .envie {
        margin: 26px 0px 0px 0px;
        text-transform: uppercase;
        width: 100%;
        font-size: 0.8em; }
      #contato-footer .conteudofooter .mensagem a {
        font-size: 0.8em;
        margin-left: 21%;
        width: 80%; }
        @media min-width {
          #contato-footer .conteudofooter .mensagem a {
            margin-left: 18%; } }
    #contato-footer .conteudofooter .sacfooter {
      width: 18%;
      float: left;
      margin: 1% 0% 0 1%; }
      #contato-footer .conteudofooter .sacfooter a {
        font-size: 0.8em;
        margin-left: 34%;
        width: 100%; }
      #contato-footer .conteudofooter .sacfooter .envie {
        margin: 26px 0px 0px 0px;
        text-transform: uppercase;
        width: 100%;
        font-size: 0.8em; }
        #contato-footer .conteudofooter .sacfooter .envie a {
          font-size: 1em; }
    #contato-footer .conteudofooter .ouvidoria-footer {
      width: 23%;
      float: left;
      margin: 1% 1%; }
      #contato-footer .conteudofooter .ouvidoria-footer a {
        font-size: 0.8em;
        margin-left: 20%;
        width: 100%; }
      #contato-footer .conteudofooter .ouvidoria-footer .envie {
        margin: 26px 0px 0px 0px;
        text-transform: uppercase;
        width: 100%;
        font-size: 0.8em;
        margin-left: 19%; }
        #contato-footer .conteudofooter .ouvidoria-footer .envie a {
          margin-left: 1%;
          font-size: 1em; }

@media (max-width: 480px) {
  .header a.logo img {
    width: 96px; } }

.header .wrapper {
  width: 84%;
  max-width: 1210px !important; }

.faleconosco {
  background-color: #6598a3;
  color: #FFF;
  margin: 0 1% 3%;
  width: 31%;
  height: 430px;
  max-width: none;
  float: left; }
  @media (max-width: 820px) {
    .faleconosco {
      width: 48%;
      height: 410px; } }
  @media (max-width: 480px) {
    .faleconosco {
      width: 100%;
      height: 410px;
      margin: 0 0 4% 0; } }
  .faleconosco h4 {
    color: #FFF;
    padding: 4% 6%;
    font-size: 1.8em;
    width: 45%; }
    @media (max-width: 820px) {
      .faleconosco h4 {
        padding: 4%; } }
  .faleconosco span.envelope {
    background-position: -247px 0;
    width: 39px;
    height: 31px;
    margin: 0% 5% 0 7%; }
  .faleconosco .mensagem {
    width: 100%; }
    @media (max-width: 820px) {
      .faleconosco .mensagem {
        width: 100%; } }
    @media (max-width: 480px) {
      .faleconosco .mensagem {
        width: 100%; } }
    @media (min-width: 821px) and (max-width: 1152px) {
      .faleconosco .mensagem {
        width: 85%; } }
    .faleconosco .mensagem a {
      font-size: 1em;
      margin-left: 24%; }
      @media (min-width: 821px) and (max-width: 1152px) {
        .faleconosco .mensagem a {
          font-size: 1em !important; } }
    .faleconosco .mensagem p {
      font-family: "MyriadPro-Light", sans-serif;
      font-weight: 300; }
      .faleconosco .mensagem p.envie {
        font-size: 1.5em !important;
        text-transform: uppercase;
        margin-top: 0%;
        margin-bottom: 2%; }
        @media (min-width: 821px) and (max-width: 1152px) {
          .faleconosco .mensagem p.envie {
            font-size: 1em !important; } }
        .faleconosco .mensagem p.envie a {
          font-size: 0.9em !important;
          width: 76%; }
  .faleconosco .content {
    width: 100%; }
    .faleconosco .content hr {
      width: 100%;
      margin-left: 0;
      margin-top: 17px;
      margin-bottom: 17px;
      background-color: #fff;
      color: #fff; }
      @media (max-width: 820px) {
        .faleconosco .content hr {
          margin-top: 10px;
          margin-bottom: 10px; } }
      @media (max-width: 480px) {
        .faleconosco .content hr {
          margin-top: 9px; } }
  .faleconosco .atendimento {
    width: 100%; }
    @media (max-width: 820px) {
      .faleconosco .atendimento {
        margin: auto; } }
    @media (max-width: 480px) {
      .faleconosco .atendimento {
        width: 97%; } }
    .faleconosco .atendimento p {
      text-align: center;
      font-size: 14px;
      margin: 0;
      line-height: 1;
      color: #fff;
      margin-bottom: 5px; }
      .faleconosco .atendimento p.sac {
        color: #003951;
        font-weight: bold;
        font-size: 18px !important;
        margin: 15px 0 15px 0; }
        @media (max-width: 480px) {
          .faleconosco .atendimento p.sac {
            font-size: 15px !important;
            margin: 7px 0 9px; } }

.news-imagem {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  width: 31%;
  height: 430px;
  position: relative;
  margin: 0 1% 3%;
  overflow: hidden;
  float: left; }
  @media (max-width: 820px) {
    .news-imagem {
      width: 48%;
      height: 410px; } }
  @media (max-width: 480px) {
    .news-imagem {
      width: 100%;
      max-width: 415px;
      position: relative;
      height: 352px;
      overflow: hidden;
      margin: 0 0 4%; } }
  .news-imagem .image-mobile {
    display: none; }
  .news-imagem .comentario {
    position: relative;
    color: #FFFFFF;
    font-family: "MyriadPro-Light",sans-serif;
    padding: 20% 8% 0% 8%;
    font-size: 16px; }
    .news-imagem .comentario div {
      position: absolute;
      bottom: 0; }
    @media (max-width: 480px) {
      .news-imagem .comentario {
        padding: 20% 8% 0 6%; } }
  .news-imagem .owl-pagination {
    margin-top: -33px;
    position: absolute;
    width: 100%;
    z-index: 999; }
    .news-imagem .owl-pagination .owl-page.active span {
      background: url(../img/sprite.png) no-repeat -165px -42px;
      width: 11px;
      height: 11px;
      display: block; }
    .news-imagem .owl-pagination .owl-page span {
      background: url(../img/sprite.png) no-repeat -206px -78px;
      width: 11px;
      height: 11px;
      display: block; }
  .news-imagem li {
    height: 430px; }
    @media (max-width: 820px) {
      .news-imagem li {
        height: 410px; } }
    @media (max-width: 480px) {
      .news-imagem li {
        height: 352px; } }
  .news-imagem img {
    width: 100%;
    height: 430px;
    position: absolute;
    display: flex;
    align-items: center;
    justify-content: center; }
    @media (max-width: 820px) {
      .news-imagem img {
        position: absolute;
        top: -9999px;
        left: -9999px;
        right: -9999px;
        bottom: -9999px;
        width: auto;
        height: 410px;
        margin: auto; } }
    @media (max-width: 480px) {
      .news-imagem img {
        position: absolute;
        top: -9999px;
        left: -9999px;
        right: -9999px;
        bottom: -9999px;
        width: auto;
        height: auto;
        margin: auto; } }
  .news-imagem.dupla {
    width: 64%; }
    @media (max-width: 820px) {
      .news-imagem.dupla {
        width: 98%; } }
    @media (max-width: 480px) {
      .news-imagem.dupla {
        width: 100%;
        margin: 0 0 4%; } }
    @media (max-width: 480px) {
      .news-imagem.dupla .image-mobile {
        display: block; } }
    .news-imagem.dupla .chamada.semimagem {
      position: absolute; }
      @media (max-width: 480px) {
        .news-imagem.dupla .chamada.semimagem {
          position: relative; } }
    .news-imagem.dupla .chamada .linha-bottom {
      bottom: 15%; }
      @media (max-width: 480px) {
        .news-imagem.dupla .chamada .linha-bottom {
          bottom: 0; } }
    .news-imagem.dupla .comentario div {
      position: absolute;
      bottom: 0;
      z-index: 99; }
  .news-imagem.tripla {
    width: 97%; }
    @media (max-width: 820px) {
      .news-imagem.tripla {
        width: 100%; } }
    .news-imagem.tripla img {
      width: auto; }
    @media (max-width: 480px) {
      .news-imagem.tripla .image-mobile {
        display: block; } }
    .news-imagem.tripla .chamada.semimagem {
      position: absolute; }
      @media (max-width: 480px) {
        .news-imagem.tripla .chamada.semimagem {
          position: relative; } }
    .news-imagem.tripla .chamada .linha-bottom {
      bottom: 15%; }
      @media (max-width: 480px) {
        .news-imagem.tripla .chamada .linha-bottom {
          bottom: 0; } }
    .news-imagem.tripla .comentario {
      padding: 15% 8% 0; }
      .news-imagem.tripla .comentario div {
        position: absolute;
        bottom: 0;
        z-index: 99; }
  .news-imagem .desk {
    display: block; }
  .news-imagem .mobile {
    display: none; }
  .news-imagem.citacao.dupla {
    width: 64%; }
    .news-imagem.citacao.dupla .chamada hr {
      width: 95%; }
  .news-imagem.citacao.tripla {
    width: 97%; }
    .news-imagem.citacao.tripla .chamada hr {
      width: 95%; }
  @media (max-width: 480px) {
    .news-imagem.citacao {
      width: 100% !important; } }
  .news-imagem.videohome.tripla .chamada {
    padding: 2% 3%;
    height: 22%; }
  @media (max-width: 480px) {
    .news-imagem.videohome img {
      left: -9999px;
      right: -9999px;
      margin: auto;
      width: 100%;
      position: absolute;
      height: 100%; } }
  .news-imagem .chamada {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    width: 100%;
    height: 25%;
    bottom: 0;
    left: 0;
    position: absolute; }
    @media (max-width: 480px) {
      .news-imagem .chamada {
        padding: 2% 5%;
        height: 22%; } }
    .news-imagem .chamada span.iconvideo {
      background-image: url(../img/ico-video-home.png);
      width: 33px;
      height: 28px;
      position: absolute;
      right: 25px;
      bottom: 10%; }
      @media (max-width: 480px) {
        .news-imagem .chamada span.iconvideo {
          background: transparent url(../img/ico-video.png) 0 0 no-repeat;
          width: 23px;
          height: 20px;
          position: absolute;
          right: 25px;
          bottom: 10%; } }
    .news-imagem .chamada a {
      -webkit-box-sizing: border-box;
      -moz-box-sizing: border-box;
      box-sizing: border-box;
      display: block;
      padding: 6% 8% 6% 8%;
      color: #FFF;
      font-size: 1.6em;
      line-height: 1.1em; }
      @media (max-width: 820px) {
        .news-imagem .chamada a {
          font-size: 1.5em; } }
      @media (max-width: 480px) {
        .news-imagem .chamada a {
          font-size: 1.1em;
          display: block;
          height: 23px;
          padding: 3% 8% 6% 0; } }
      .news-imagem .chamada a.comentvideo {
        -webkit-box-sizing: border-box;
        -moz-box-sizing: border-box;
        box-sizing: border-box;
        padding: 1% 3%;
        font-size: 16px; }
      .news-imagem .chamada a.video {
        padding: 0% 0% 0% 3%; }
      .news-imagem .chamada a.cardcomentario {
        margin-top: 17% !important; }
        @media (max-width: 480px) {
          .news-imagem .chamada a.cardcomentario {
            margin-top: 5% !important; } }
    .news-imagem .chamada.bgopacity {
      background-color: rgba(0, 0, 0, 0.5); }
    .news-imagem .chamada.semimagem {
      -webkit-box-sizing: border-box;
      -moz-box-sizing: border-box;
      box-sizing: border-box;
      position: initial;
      max-height: 453px;
      height: 100%; }
      .news-imagem .chamada.semimagem a {
        width: 100%;
        font-size: 1.7em;
        margin-top: 35%;
        padding-bottom: 24%; }
        @media (max-width: 480px) {
          .news-imagem .chamada.semimagem a {
            padding-bottom: 72%; } }
        .news-imagem .chamada.semimagem a p {
          font-size: 0.7em;
          overflow: hidden;
          display: -webkit-box;
          -webkit-line-clamp: 2;
          -webkit-box-orient: vertical;
          line-height: 1.2em; }
      .news-imagem .chamada.semimagem .bgazul {
        background-color: #033b69; }
      .news-imagem .chamada.semimagem .bgverde {
        background-color: #a7b83f; }
      .news-imagem .chamada.semimagem .bgazulclaro {
        background-color: #49a8d9; }
      .news-imagem .chamada.semimagem .bgpetroleo {
        background-color: #367c87; }
    .news-imagem .chamada .bgazul p {
      color: #FFF;
      line-height: 1;
      padding-left: 25px;
      font-size: 14px;
      margin-top: 21px; }
    .news-imagem .chamada span.setabranca-pq {
      margin: -4px 22px 0 0; }
      @media (max-width: 480px) {
        .news-imagem .chamada span.setabranca-pq {
          margin: 0; } }
    @media (max-width: 480px) {
      .news-imagem .chamada .linha-bottom {
        margin: 7% 0 0; } }
    .news-imagem .chamada hr {
      float: left;
      margin-left: 1%;
      width: 85%; }
      @media (max-width: 480px) {
        .news-imagem .chamada hr {
          margin-top: 6px; } }
    .news-imagem .chamada .bgazul hr {
      background-color: #507a9c;
      color: #507a9c; }
    .news-imagem .chamada .bgverde hr {
      background-color: #c7d37e;
      color: #c7d37e; }
    .news-imagem .chamada .bgazulclaro hr {
      background-color: #86caec;
      color: #86caec; }
    .news-imagem .chamada .bgpetroleo hr {
      background-color: #fff;
      color: #fff; }
    .news-imagem .chamada .chamada.bgopacity div {
      margin-bottom: 5%;
      position: relative; }
  .news-imagem.imagemfundo {
    width: 97%; }
    .news-imagem.imagemfundo .image-mobile {
      display: none; }
      @media (max-width: 820px) {
        .news-imagem.imagemfundo .image-mobile {
          display: block; } }
      @media (max-width: 480px) {
        .news-imagem.imagemfundo .image-mobile {
          display: block; } }
    @media (max-width: 820px) {
      .news-imagem.imagemfundo {
        width: 48%; } }
    @media (max-width: 480px) {
      .news-imagem.imagemfundo {
        width: 100%; } }
    .news-imagem.imagemfundo img {
      float: left;
      width: 100%;
      height: 100%; }
      @media (max-width: 820px) {
        .news-imagem.imagemfundo img {
          height: auto; } }
      @media (max-width: 480px) {
        .news-imagem.imagemfundo img {
          width: 100%;
          height: auto; } }
    .news-imagem.imagemfundo .chamada.semimagem {
      background-color: transparent;
      position: relative;
      height: 200px;
      padding: 0; }
      @media (max-width: 820px) {
        .news-imagem.imagemfundo .chamada.semimagem {
          display: none; } }
      @media (max-width: 480px) {
        .news-imagem.imagemfundo .chamada.semimagem {
          display: none; } }
      .news-imagem.imagemfundo .chamada.semimagem a {
        position: absolute;
        padding-top: 0;
        padding-bottom: 0;
        top: 15%;
        left: 4%;
        display: block;
        width: 90%; }
  .news-imagem.citacao {
    background-color: #f3f5f7;
    width: 31%;
    padding: 1% 2%; }
    @media (max-width: 820px) {
      .news-imagem.citacao {
        width: 48%;
        height: 410px; } }
    @media (max-width: 480px) {
      .news-imagem.citacao {
        width: 100%;
        height: 352px;
        margin: 0 0 4%; } }
    .news-imagem.citacao h4 {
      margin: 30px 0 34px 0;
      display: block;
      height: 42px; }
    .news-imagem.citacao p {
      font-style: italic;
      font-size: 1em;
      width: 100%;
      height: 50%;
      line-height: 1.5em;
      display: none; }
      @media (max-width: 480px) {
        .news-imagem.citacao p {
          height: auto; } }
      .news-imagem.citacao p.show {
        display: block; }
    .news-imagem.citacao .leiamais a {
      margin: 20px 0 25px 0; }
      .news-imagem.citacao .leiamais a span.setaazul {
        margin-left: 10px;
        margin-top: 5px; }

.bloco-noticias {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  width: 66%;
  float: left;
  margin: 1% 1% 3%;
  height: 475px;
  margin-bottom: 3%;
  /* ARTIGO */ }
  @media (max-width: 820px) {
    .bloco-noticias {
      height: 410px;
      width: 100%; } }
  @media (max-width: 480px) {
    .bloco-noticias {
      width: 100%;
      margin: 4% 0 47%; } }
  .bloco-noticias .carrossel {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    width: 100%; }
    @media (max-width: 480px) {
      .bloco-noticias .carrossel .owl-controls {
        width: 80%;
        margin: 10% auto; } }
    .bloco-noticias .carrossel .item.artigo {
      width: -webkit-calc(50%);
      width: calc(50%);
      min-height: 230px; }
      @media (max-width: 820px) {
        .bloco-noticias .carrossel .item.artigo {
          width: 50%; } }
      @media (max-width: 480px) {
        .bloco-noticias .carrossel .item.artigo {
          width: 100%; } }
      .bloco-noticias .carrossel .item.artigo .leiamais {
        clear: both;
        margin: 2% 0;
        float: left; }
        .bloco-noticias .carrossel .item.artigo .leiamais .sprite {
          margin-top: 5px;
          margin-left: 10px; }
  .bloco-noticias .artigo {
    width: 50%;
    float: left; }
    @media (max-width: 820px) {
      .bloco-noticias .artigo {
        width: 50%; } }
    .bloco-noticias .artigo h1 {
      font-size: 1.4em;
      font-family: "MyriadPro-Light", sans-serif; }
    .bloco-noticias .artigo h2 {
      font-size: 1.2em;
      font-family: "MyriadPro-Light",sans-serif;
      margin: 2% 0; }
    .bloco-noticias .artigo p {
      font-size: 1em;
      color: #4d4d4d;
      margin: 2% 0; }
    .bloco-noticias .artigo span.data {
      font-family: "MyriadPro-Light", sans-serif;
      font-size: 12px;
      font-style: italic;
      font-weight: 300;
      color: #a3a3a3;
      clear: both; }
    .bloco-noticias .artigo.first {
      border-bottom: 1px solid #cccccc;
      min-height: 200px;
      height: 50%;
      margin-bottom: 25px; }
    .bloco-noticias .artigo.grande {
      float: none;
      width: 100%; }
      @media (max-width: 480px) {
        .bloco-noticias .artigo.grande {
          float: left;
          padding-bottom: 7%; } }
      .bloco-noticias .artigo.grande .leiamais {
        clear: both;
        margin: 2% 0;
        float: left; }
        .bloco-noticias .artigo.grande .leiamais .sprite {
          margin-top: 5px;
          margin-left: 10px; }
      .bloco-noticias .artigo.grande h1 {
        width: auto; }
    .bloco-noticias .artigo .um {
      margin-right: 34px; }

.destaque-financeiro.home {
  padding-left: 0;
  height: 430px;
  width: 64%;
  float: left;
  margin: 0 1% 3%; }
  @media (max-width: 820px) {
    .destaque-financeiro.home {
      height: 410px;
      width: 98%;
      padding-bottom: 4%;
      clear: both; } }
  @media (max-width: 480px) {
    .destaque-financeiro.home {
      width: 100%;
      height: 287px;
      margin: 0 0 4%; } }
  .destaque-financeiro.home .topo {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    background-color: #00a6f7;
    padding: 1% 2%; }
    .destaque-financeiro.home .topo a h4 {
      color: #FFFFFF; }
    .destaque-financeiro.home .topo p {
      font-family: "MyriadPro-Regular", sans-serif; }
      .destaque-financeiro.home .topo p.subtitle {
        margin: 1% 0;
        color: #FFFFFF;
        font-size: 0.9em; }
  .destaque-financeiro.home .quadrados {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    width: 100%; }
    .destaque-financeiro.home .quadrados .dados {
      -webkit-box-sizing: border-box;
      -moz-box-sizing: border-box;
      box-sizing: border-box;
      width: -webkit-calc(33.3%);
      width: calc(33.3%);
      float: left;
      padding: 2%;
      height: 176px; }
      .destaque-financeiro.home .quadrados .dados:nth-child(1), .destaque-financeiro.home .quadrados .dados:nth-child(3), .destaque-financeiro.home .quadrados .dados:nth-child(4), .destaque-financeiro.home .quadrados .dados:nth-child(6) {
        background-color: #e5ecf2; }
      .destaque-financeiro.home .quadrados .dados:nth-child(1), .destaque-financeiro.home .quadrados .dados:nth-child(2), .destaque-financeiro.home .quadrados .dados:nth-child(3) {
        border-bottom: 1px solid #00a6f7; }
      @media (max-width: 820px) {
        .destaque-financeiro.home .quadrados .dados {
          height: 173px;
          padding: 0 1%; } }
      @media (max-width: 480px) {
        .destaque-financeiro.home .quadrados .dados {
          width: 100%;
          padding: 4%; } }
      @media (min-width: 480px) and (max-width: 506px) {
        .destaque-financeiro.home .quadrados .dados {
          width: 100%; } }
      .destaque-financeiro.home .quadrados .dados p {
        margin: 0;
        font-size: 1.2em;
        line-height: 1.3;
        color: #00447c; }
        @media (min-width: 1036px) and (max-width: 1240px) {
          .destaque-financeiro.home .quadrados .dados p {
            font-size: 1.1em; } }
        @media (min-width: 820px) and (max-width: 1036px) {
          .destaque-financeiro.home .quadrados .dados p {
            font-size: 1em; } }
      .destaque-financeiro.home .quadrados .dados .numeros {
        -webkit-box-sizing: border-box;
        -moz-box-sizing: border-box;
        box-sizing: border-box;
        padding: 5% 0;
        width: 100%; }
        .destaque-financeiro.home .quadrados .dados .numeros .valor {
          -webkit-box-sizing: border-box;
          -moz-box-sizing: border-box;
          box-sizing: border-box;
          float: left;
          width: 60%; }
          .destaque-financeiro.home .quadrados .dados .numeros .valor .montante {
            margin: 0;
            font-size: 2.9em;
            font-family: "MyriadPro-Regular", sans-serif;
            color: #008ed4;
            text-align: left;
            line-height: 65px; }
            @media (min-width: 1036px) and (max-width: 1240px) {
              .destaque-financeiro.home .quadrados .dados .numeros .valor .montante {
                font-size: 2.7em; } }
            @media (min-width: 820px) and (max-width: 1036px) {
              .destaque-financeiro.home .quadrados .dados .numeros .valor .montante {
                font-size: 2.5em; } }
            @media (min-width: 821px) and (max-width: 1152px) {
              .destaque-financeiro.home .quadrados .dados .numeros .valor .montante {
                font-size: 2em; } }
            .destaque-financeiro.home .quadrados .dados .numeros .valor .montante span {
              font-size: 0.3em;
              font-family: "MyriadPro-Light", sans-serif; }
          .destaque-financeiro.home .quadrados .dados .numeros .valor .quant {
            color: #008ed4;
            font-size: 1.1em;
            margin: 0;
            font-family: "MyriadPro-light", sans-serif;
            margin: 0 0 0 3%; }
        .destaque-financeiro.home .quadrados .dados .numeros .periodo {
          width: 40%;
          -webkit-box-sizing: border-box;
          -moz-box-sizing: border-box;
          box-sizing: border-box;
          padding: 5% 0; }
          .destaque-financeiro.home .quadrados .dados .numeros .periodo div {
            margin-left: -12%;
            margin-top: 7%; }
          .destaque-financeiro.home .quadrados .dados .numeros .periodo .setavermelha {
            width: 0;
            height: 0;
            border-left: 9px solid transparent;
            border-right: 9px solid transparent;
            border-top: 13px solid red;
            float: left; }
          .destaque-financeiro.home .quadrados .dados .numeros .periodo .setaverde {
            width: 0;
            height: 0;
            border-left: 9px solid transparent;
            border-right: 9px solid transparent;
            border-bottom: 13px solid #00FF00;
            float: left; }
          .destaque-financeiro.home .quadrados .dados .numeros .periodo .quarter {
            margin: 0% 18%;
            font-size: 0.9em;
            font-family: "MyriadPro-Light", sans-serif; }
          .destaque-financeiro.home .quadrados .dados .numeros .periodo .aumento {
            margin: 0% 18%;
            font-size: 1em;
            font-family: "MyriadPro-Light", sans-serif; }
            @media (min-width: 1036px) and (max-width: 1240px) {
              .destaque-financeiro.home .quadrados .dados .numeros .periodo .aumento {
                font-size: 1.0em; } }
            @media (min-width: 820px) and (max-width: 1036px) {
              .destaque-financeiro.home .quadrados .dados .numeros .periodo .aumento {
                font-size: 0.9em; } }
    .destaque-financeiro.home .quadrados .owl-controls .owl-page {
      background: url(../img/sprite.png) no-repeat -299px -25px;
      width: 5px;
      height: 8px;
      margin: 0% 4px; }
      .destaque-financeiro.home .quadrados .owl-controls .owl-page.active {
        background: url(../img/sprite.png) no-repeat -287px -25px;
        width: 11px;
        height: 11px; }
    .destaque-financeiro.home .quadrados .owl-controls .owl-prev {
      background: url(../img/sprite.png) no-repeat -304px -42px;
      width: 8px;
      height: 14px;
      margin-left: 8%; }
    .destaque-financeiro.home .quadrados .owl-controls .owl-next {
      background: url(../img/sprite.png) no-repeat -327px -52px;
      width: 8px;
      height: 14px;
      margin-left: 90%; }
  @media (max-width: 480px) {
    .destaque-financeiro.home {
      width: 100%; }
      .destaque-financeiro.home h4, .destaque-financeiro.home .subtitle {
        text-align: center; } }
  .destaque-financeiro.home span.setaverde,
  .destaque-financeiro.home span.setavermelha {
    width: 11px;
    height: 10px;
    margin: 9px 10px 0 10px; }
  .destaque-financeiro.home span.setaverde {
    background-position: -196px -25px; }
    .ie .destaque-financeiro.home span.setaverde {
      margin-top: 17px; }
  .destaque-financeiro.home span.setavermelha {
    background-position: -208px -25px; }
  .destaque-financeiro.home span.grafico {
    background-position: 0 0;
    width: 160px;
    height: 160px;
    position: relative;
    margin-top: 10%; }
    .destaque-financeiro.home span.grafico span {
      width: 87px;
      text-align: center;
      position: absolute;
      left: 50%;
      margin-left: -43px;
      top: 57px;
      color: #00a6f7;
      font-size: 36px;
      font-family: Myriad Pro, sans-serif;
      font-weight: 600; }
      .destaque-financeiro.home span.grafico span span.porcentagem {
        font-size: 22.7px;
        margin: 0px;
        left: auto;
        top: auto;
        position: initial; }
        .ie .destaque-financeiro.home span.grafico span span.porcentagem {
          left: 50px;
          top: 10px; }
  .destaque-financeiro.home .blocodireita, .destaque-financeiro.home .blocoesquerda, .destaque-financeiro.home .dados.grande {
    float: left;
    height: 380px;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box; }
  .destaque-financeiro.home .blocodireita {
    width: 32%; }
    @media (max-width: 480px) {
      .destaque-financeiro.home .blocodireita {
        width: 100%; } }
    .destaque-financeiro.home .blocodireita .dados {
      -webkit-box-sizing: border-box;
      -moz-box-sizing: border-box;
      box-sizing: border-box;
      margin-bottom: 8%; }
      @media (max-width: 480px) {
        .destaque-financeiro.home .blocodireita .dados {
          width: 215px;
          margin: 25px auto 30px auto;
          text-align: center; } }
      .destaque-financeiro.home .blocodireita .dados > p {
        font-size: 1.2em;
        margin: 0; }
      .destaque-financeiro.home .blocodireita .dados .numeros {
        -webkit-box-sizing: border-box;
        -moz-box-sizing: border-box;
        box-sizing: border-box; }
        .destaque-financeiro.home .blocodireita .dados .numeros .valor {
          -webkit-box-sizing: border-box;
          -moz-box-sizing: border-box;
          box-sizing: border-box; }
          .destaque-financeiro.home .blocodireita .dados .numeros .valor .montante {
            margin: 0;
            font-size: 2.2em;
            font-family: "MyriadPro-Light", sans-serif;
            color: #008ed4;
            text-align: left; }
          .destaque-financeiro.home .blocodireita .dados .numeros .valor .quant {
            color: #008ed4;
            font-size: 1em;
            margin: 0;
            font-family: "MyriadPro-light", sans-serif; }
        .destaque-financeiro.home .blocodireita .dados .numeros .periodo {
          -webkit-box-sizing: border-box;
          -moz-box-sizing: border-box;
          box-sizing: border-box; }
          .destaque-financeiro.home .blocodireita .dados .numeros .periodo .quarter {
            margin: 0;
            font-size: 1em;
            font-family: "MyriadPro-Light", sans-serif; }
          .destaque-financeiro.home .blocodireita .dados .numeros .periodo .aumento {
            margin: 0;
            font-size: 1em;
            font-family: "MyriadPro-Light", sans-serif; }
  .destaque-financeiro.home .blocoesquerda {
    width: 32%; }
    @media (max-width: 480px) {
      .destaque-financeiro.home .blocoesquerda {
        width: 100%; } }
    .destaque-financeiro.home .blocoesquerda .dados {
      -webkit-box-sizing: border-box;
      -moz-box-sizing: border-box;
      box-sizing: border-box;
      margin-bottom: 8%; }
      @media (max-width: 480px) {
        .destaque-financeiro.home .blocoesquerda .dados {
          text-align: center; } }
      .destaque-financeiro.home .blocoesquerda .dados > p {
        font-size: 1.2em;
        margin: 0; }
      .destaque-financeiro.home .blocoesquerda .dados .numeros {
        margin-top: 2%; }
        @media (max-width: 480px) {
          .destaque-financeiro.home .blocoesquerda .dados .numeros {
            margin: 2% auto;
            width: 65%; } }
        .destaque-financeiro.home .blocoesquerda .dados .numeros .sprite {
          margin-top: 10%; }
        .destaque-financeiro.home .blocoesquerda .dados .numeros .valor {
          margin-top: 2%; }
          .destaque-financeiro.home .blocoesquerda .dados .numeros .valor .montante {
            margin: 0;
            font-size: 2.2em;
            font-family: "MyriadPro-Light", sans-serif;
            color: #008ed4;
            text-align: left; }
          .destaque-financeiro.home .blocoesquerda .dados .numeros .valor .quant {
            color: #008ed4;
            font-size: 1em;
            margin: 0;
            font-family: "MyriadPro-light", sans-serif; }
        .destaque-financeiro.home .blocoesquerda .dados .numeros .periodo {
          margin-top: 5%; }
          .destaque-financeiro.home .blocoesquerda .dados .numeros .periodo .quarter {
            margin: 0;
            font-size: 1em;
            font-family: "MyriadPro-Light", sans-serif; }
          .destaque-financeiro.home .blocoesquerda .dados .numeros .periodo .aumento {
            margin: 0;
            font-size: 1em;
            font-family: "MyriadPro-Light", sans-serif; }
  .destaque-financeiro.home .dados.grande {
    width: 32%;
    margin: 0 2%;
    padding: 0 2%;
    border-right: 1px solid #008ed4;
    border-left: 1px solid #008ed4; }
    @media (max-width: 480px) {
      .destaque-financeiro.home .dados.grande {
        width: 100%;
        border-right: none;
        border-left: none;
        height: auto; } }
    .destaque-financeiro.home .dados.grande > p {
      font-size: 1.2em; }
      @media (max-width: 480px) {
        .destaque-financeiro.home .dados.grande > p {
          text-align: center;
          margin: 7% 0; } }
    @media (max-width: 480px) {
      .destaque-financeiro.home .dados.grande .numeros {
        width: 70%;
        margin: 8% auto; } }
    .destaque-financeiro.home .dados.grande .numeros .porcentagem {
      margin-top: 0; }
      .destaque-financeiro.home .dados.grande .numeros .porcentagem .periodo {
        -webkit-box-sizing: border-box;
        -moz-box-sizing: border-box;
        box-sizing: border-box;
        margin: 12px 0 0; }
        .destaque-financeiro.home .dados.grande .numeros .porcentagem .periodo .quarter {
          margin: 0; }
        .destaque-financeiro.home .dados.grande .numeros .porcentagem .periodo .aumento {
          margin: 0; }

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9tZS5jc3MiLCJzb3VyY2VzIjpbImhvbWUuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvX2JvdXJib24uc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvc2V0dGluZ3MvX3ByZWZpeGVyLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL3NldHRpbmdzL19weC10by1lbS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9zZXR0aW5ncy9fYXNzZXQtcGlwZWxpbmUuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19hc3NpZ24taW5wdXRzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fY29udGFpbnMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19jb250YWlucy1mYWxzeS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX2lzLWxlbmd0aC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX2lzLWxpZ2h0LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9faXMtbnVtYmVyLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9faXMtc2l6ZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX3B4LXRvLWVtLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fcHgtdG8tcmVtLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fc2hhZGUuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19zdHJpcC11bml0cy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX3RpbnQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL190cmFuc2l0aW9uLXByb3BlcnR5LW5hbWUuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL191bnBhY2suc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19tb2R1bGFyLXNjYWxlLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX2NvbnZlcnQtdW5pdHMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fZGlyZWN0aW9uYWwtdmFsdWVzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX2ZvbnQtc291cmNlLWRlY2xhcmF0aW9uLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX2dyYWRpZW50LXBvc2l0aW9ucy1wYXJzZXIuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fbGluZWFyLWFuZ2xlLXBhcnNlci5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19saW5lYXItZ3JhZGllbnQtcGFyc2VyLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX2xpbmVhci1wb3NpdGlvbnMtcGFyc2VyLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX2xpbmVhci1zaWRlLWNvcm5lci1wYXJzZXIuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fcmFkaWFsLWFyZy1wYXJzZXIuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fcmFkaWFsLXBvc2l0aW9ucy1wYXJzZXIuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fcmFkaWFsLWdyYWRpZW50LXBhcnNlci5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19yZW5kZXItZ3JhZGllbnRzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX3NoYXBlLXNpemUtc3RyaXBwZXIuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fc3RyLXRvLW51bS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19hbmltYXRpb24uc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fYXBwZWFyYW5jZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19iYWNrZmFjZS12aXNpYmlsaXR5LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2JhY2tncm91bmQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fYmFja2dyb3VuZC1pbWFnZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19ib3JkZXItaW1hZ2Uuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fY2FsYy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19jb2x1bW5zLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2ZpbHRlci5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19mbGV4LWJveC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19mb250LWZhY2Uuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fZm9udC1mZWF0dXJlLXNldHRpbmdzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2hpZHBpLW1lZGlhLXF1ZXJ5LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2h5cGhlbnMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9faW1hZ2UtcmVuZGVyaW5nLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2tleWZyYW1lcy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19saW5lYXItZ3JhZGllbnQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fcGVyc3BlY3RpdmUuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fcGxhY2Vob2xkZXIuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fcmFkaWFsLWdyYWRpZW50LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX3NlbGVjdGlvbi5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL190ZXh0LWRlY29yYXRpb24uc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fdHJhbnNmb3JtLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX3RyYW5zaXRpb24uc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fdXNlci1zZWxlY3Quc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19ib3JkZXItY29sb3Iuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19ib3JkZXItcmFkaXVzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fYm9yZGVyLXN0eWxlLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fYm9yZGVyLXdpZHRoLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fYnV0dG9ucy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX2NsZWFyZml4LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fZWxsaXBzaXMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19mb250LXN0YWNrcy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX2hpZGUtdGV4dC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX21hcmdpbi5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX3BhZGRpbmcuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19wb3NpdGlvbi5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX3ByZWZpeGVyLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fcmV0aW5hLWltYWdlLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fc2l6ZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX3RleHQtaW5wdXRzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fdGltaW5nLWZ1bmN0aW9ucy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX3RyaWFuZ2xlLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fd29yZC13cmFwLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL19ib3VyYm9uLWRlcHJlY2F0ZWQtdXBjb21pbmcuc2NzcyIsIl92YXJpYWJsZXMuc2NzcyIsIl9taXhpbnMuc2NzcyIsIl9yZXNwb25zaXZlLW1lZGlhLnNjc3MiXSwic291cmNlc0NvbnRlbnQiOlsiQGltcG9ydCBcImJvdXJib25cIjtcclxuQGltcG9ydCBcIl92YXJpYWJsZXMuc2Nzc1wiO1xyXG5AaW1wb3J0IFwiX21peGlucy5zY3NzXCI7XHJcbkBpbXBvcnQgXCJfcmVzcG9uc2l2ZS1tZWRpYS5zY3NzXCI7XHJcblxyXG4ubWFpbmNvbnRlbnQge1xyXG4gIGJhY2tncm91bmQ6ICR3aGl0ZTtcclxuICAuY29udGVudC1ib2R5e1xyXG4gICAgd2lkdGg6IDg0JTtcclxuICAgIG1heC13aWR0aDogMTIxMHB4ICFpbXBvcnRhbnQ7XHJcbiAgICAubWVudS1mb290ZXJ7XHJcbiAgICAgIHdpZHRoOiAxMDElO1xyXG4gICAgICBAaW5jbHVkZSByZXNwb25zaXZlLW1lZGlhKCRyZXMtdGFibGV0LXBvcnRyYWl0KXtcclxuICAgICAgICBib3R0b206IDA7XHJcbiAgICAgICAgd2lkdGg6IDY5M3B4O1xyXG4gICAgICB9XHJcbiAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtbWVkaWEoJHJlcy1waG9uZS1wb3J0cmFpdCl7XHJcbiAgICAgICAgYm90dG9tOiAwO1xyXG4gICAgICAgIHdpZHRoOiAzNDBweDtcclxuICAgICAgfVxyXG5cclxuICAgICAgLnRvcG97XHJcbiAgICAgICAgLmNhbWFkYSwgLmNhbWFkYTIsIC5jYW1hZGEze1xyXG4gICAgICAgICAgd2lkdGg6IDk0LjIlO1xyXG4gICAgICAgICAgbGVmdDowLjglO1xyXG4gICAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1tZWRpYSgkcmVzLXBob25lLXBvcnRyYWl0KXtcclxuICAgICAgICAgICAgd2lkdGg6IDMxMnB4O1xyXG4gICAgICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1tZWRpYSgnKG1pbi13aWR0aCA6IDUwcHgpIGFuZCAobWF4LXdpZHRoIDogMzIwcHgpJyl7XHJcbiAgICAgICAgICAgIHdpZHRoOiAyNjRweDtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC50cmlhbmdsZXtcclxuICAgICAgICAgICAgQGluY2x1ZGUgbWFyZ2luKDEuNSUgLTExJSAwIDApO1xyXG4gICAgICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLW1lZGlhKCRyZXMtdGFibGV0LXBvcnRyYWl0KXtcclxuICAgICAgICAgICAgICBAaW5jbHVkZSBtYXJnaW4oMi41JSAtMTUlIDAgMCk7XHJcblxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtbWVkaWEoJHJlcy1waG9uZS1wb3J0cmFpdCl7XHJcbiAgICAgICAgICAgICAgQGluY2x1ZGUgbWFyZ2luKDIuNSUgLTI3JSAwIDApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtbWVkaWEoJyhtaW4td2lkdGggOiA1MHB4KSBhbmQgKG1heC13aWR0aCA6IDMyMHB4KScpe1xyXG4gICAgICAgICAgICAgIEBpbmNsdWRlIG1hcmdpbigyLjUlIC0zMSUgMCAwKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAmLmJhaXhve1xyXG5cclxuICAgICAgICAgICAgICBAaW5jbHVkZSBtYXJnaW4oMS41JSAtMTElIDAgMCk7XHJcbiAgICAgICAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1tZWRpYSgkcmVzLXRhYmxldC1wb3J0cmFpdCl7XHJcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtYXJnaW4oMi41JSAtMTUlIDAgMCk7XHJcblxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLW1lZGlhKCRyZXMtcGhvbmUtcG9ydHJhaXQpe1xyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWFyZ2luKDIuNSUgLTI3JSAwIDApO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLW1lZGlhKCcobWluLXdpZHRoIDogNTBweCkgYW5kIChtYXgtd2lkdGggOiAzMjBweCknKXtcclxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1hcmdpbigyLjUlIC0zMSUgMCAwKTtcclxuICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIC5jb3Jwb3tcclxuICAgICAgICB3aWR0aDogOTQuMiU7XHJcbiAgICAgICAgbGVmdDogMC44JTtcclxuICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLW1lZGlhKCRyZXMtcGhvbmUtcG9ydHJhaXQpe1xyXG4gICAgICAgICAgd2lkdGg6IDMxMnB4O1xyXG4gICAgICAgICAgbGVmdDogMDtcclxuICAgICAgICB9XHJcbiAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1tZWRpYSgnKG1pbi13aWR0aCA6IDUwcHgpIGFuZCAobWF4LXdpZHRoIDogMzIwcHgpJyl7XHJcbiAgICAgICAgICB3aWR0aDogMjY0cHg7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcblxyXG59XHJcbi5mb290ZXItbWFyayAud3JhcHBlciBhIHtcclxuICBsZWZ0OiA0MHB4O1xyXG59XHJcblxyXG5cclxuLmNvbnRldWRvIHtcclxuICBtYXJnaW46LTcwcHggYXV0bztcclxuICBmbG9hdDpub25lO1xyXG4gIHdpZHRoOiA5OCU7XHJcbiAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1tZWRpYSgkcmVzLXRhYmxldC1wb3J0cmFpdCl7XHJcbiAgICBtYXJnaW46LTE4cHggYXV0bztcclxuICB9XHJcbiAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1tZWRpYSgkcmVzLXBob25lLXBvcnRyYWl0KSB7XHJcbiAgICBtYXJnaW46NSUgMDtcclxuICB9XHJcbn1cclxuXHJcbi5ob21le1xyXG4gIC5jb250YWluZXJ7XHJcbiAgICAvLyBwYWRkaW5nLXRvcDoxMSUgIWltcG9ydGFudDtcclxuICAgIHBhZGRpbmctdG9wOjEzM3B4ICFpbXBvcnRhbnQ7XHJcbiAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcclxuICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtbWVkaWEoJHJlcy10YWJsZXQtcG9ydHJhaXQpe1xyXG4gICAgICBwYWRkaW5nLXRvcDoxMzNweCAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG4gICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1tZWRpYSgkcmVzLXBob25lLXBvcnRyYWl0KXtcclxuICAgICAgcGFkZGluZy10b3A6NjRweCAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG4gICAgLmNvbnRldWRve1xyXG4gICAgICBmbG9hdDogbGVmdDtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxufVxyXG5cclxuI2NvbnRhdG8tZm9vdGVye1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICM2NTk4YTM7XHJcbiAgd2lkdGg6IDk3JTtcclxuICBoZWlnaHQ6IDEzMHB4O1xyXG4gIG1hcmdpbjogMSUgMSU7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGJvdHRvbTowO1xyXG4gIG92ZXJmbG93OmhpZGRlbjtcclxuICBjb2xvcjokd2hpdGUgIWltcG9ydGFudDtcclxuICBoNHtcclxuICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgfVxyXG4gIEBpbmNsdWRlIHJlc3BvbnNpdmUtbWVkaWEoJHJlcy10YWJsZXQtcG9ydHJhaXQpe1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICB9XHJcbiAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1tZWRpYSgkcmVzLXBob25lLXBvcnRyYWl0KXtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgfVxyXG4gIC5jb250ZXVkb2Zvb3RlcntcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgbWFyZ2luOiAwJSA0JTtcclxuICAgIC5mYWxlY29ub3Njb2Zvb3RlcntcclxuICAgICAgbWFyZ2luOiAxJTtcclxuICAgICAgcGFkZGluZzogMiUgMiUgMCAwIDtcclxuICAgICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHdoaXRlO1xyXG4gICAgICB3aWR0aDogMTAlO1xyXG4gICAgICBoZWlnaHQ6IDkwcHg7XHJcbiAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtbWVkaWEoJ21pbi13aWR0aDogMTQ0MHB4Jyl7XHJcbiAgICAgICAgaGVpZ2h0OiA3MHB4O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAubWVuc2FnZW17XHJcbiAgICAgIHdpZHRoOiAzMCU7XHJcbiAgICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgICBtYXJnaW46IDElIDElO1xyXG4gICAgICBib3JkZXItcmlnaHQ6MXB4IHNvbGlkIHdoaXRlO1xyXG4gICAgICAuZW52aWV7XHJcbiAgICAgICAgIG1hcmdpbjogMjZweCAwcHggMHB4IDBweDtcclxuICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgIGZvbnQtc2l6ZTowLjhlbTtcclxuICAgICAgfVxyXG4gICAgICBhe1xyXG4gICAgICAgIGZvbnQtc2l6ZTowLjhlbTtcclxuICAgICAgICBtYXJnaW4tbGVmdDogMjElO1xyXG4gICAgICAgIHdpZHRoOiA4MCU7XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtbWVkaWEoJ21pbi13aWR0aDogMTQ0MHB4Jyl7XHJcbiAgICAgICAgICBtYXJnaW4tbGVmdDogMTglO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgLnNhY2Zvb3RlcntcclxuICAgICAgd2lkdGg6IDE4JTtcclxuICAgICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICAgICBtYXJnaW46IDElIDAlIDAgMSU7XHJcbiAgICAgICBhe1xyXG4gICAgICAgICBmb250LXNpemU6MC44ZW07XHJcbiAgICAgICAgIG1hcmdpbi1sZWZ0OiAzNCU7XHJcbiAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgfVxyXG4gICAgICAgLmVudmlle1xyXG4gICAgICAgIG1hcmdpbjogMjZweCAwcHggMHB4IDBweDtcclxuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIGZvbnQtc2l6ZTowLjhlbTtcclxuICAgICAgICBhe1xyXG4gICAgICAgICAgZm9udC1zaXplOiAxZW07XHJcbiAgICAgICAgfVxyXG4gICAgICAgfVxyXG4gICAgfVxyXG4gICAgLm91dmlkb3JpYS1mb290ZXJ7XHJcbiAgICAgIHdpZHRoOiAyMyU7XHJcbiAgICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgICBtYXJnaW46IDElIDElO1xyXG4gICAgICBhe1xyXG4gICAgICAgICBmb250LXNpemU6MC44ZW07XHJcbiAgICAgICAgIG1hcmdpbi1sZWZ0OiAyMCU7XHJcbiAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICB9XHJcbiAgICAgIC5lbnZpZXtcclxuICAgICAgICBtYXJnaW46IDI2cHggMHB4IDBweCAwcHg7XHJcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICBmb250LXNpemU6MC44ZW07XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6MTklO1xyXG4gICAgICAgIGF7XHJcbiAgICAgICAgICBtYXJnaW4tbGVmdDogMSU7XHJcbiAgICAgICAgICBmb250LXNpemU6IDFlbTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcbi5oZWFkZXJ7XHJcbiAgYS5sb2dve1xyXG4gICAgaW1ne1xyXG4gICAgICBAaW5jbHVkZSByZXNwb25zaXZlLW1lZGlhKCRyZXMtcGhvbmUtcG9ydHJhaXQpe1xyXG4gICAgICAgIHdpZHRoOiA5NnB4O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbi5oZWFkZXIgLndyYXBwZXJ7XHJcbiAgd2lkdGg6ODQlO1xyXG4gIG1heC13aWR0aDogMTIxMHB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcblxyXG4vLyAjICAgICAjICMjIyMjIyMgIyAgICAgIyAgIyMjIyNcclxuLy8gIyMgICAgIyAjICAgICAgICMgICMgICMgIyAgICAgI1xyXG4vLyAjICMgICAjICMgICAgICAgIyAgIyAgIyAjXHJcbi8vICMgICMgICMgIyMjIyMgICAjICAjICAjICAjIyMjI1xyXG4vLyAjICAgIyAjICMgICAgICAgIyAgIyAgIyAgICAgICAjXHJcbi8vICMgICAgIyMgIyAgICAgICAjICAjICAjICMgICAgICNcclxuLy8gIyAgICAgIyAjIyMjIyMjICAjIyAjIyAgICMjIyMjXHJcbi8vXHJcbi8vICMjIyAjICAgICAjICAgICMgICAgICMjIyMjICAjIyMjIyMjICMgICAgICNcclxuLy8gICMgICMjICAgIyMgICAjICMgICAjICAgICAjICMgICAgICAgIyMgICAjI1xyXG4vLyAgIyAgIyAjICMgIyAgIyAgICMgICMgICAgICAgIyAgICAgICAjICMgIyAjXHJcbi8vICAjICAjICAjICAjICMgICAgICMgIyAgIyMjIyAjIyMjIyAgICMgICMgICNcclxuLy8gICMgICMgICAgICMgIyMjIyMjIyAjICAgICAjICMgICAgICAgIyAgICAgI1xyXG4vLyAgIyAgIyAgICAgIyAjICAgICAjICMgICAgICMgIyAgICAgICAjICAgICAjXHJcbi8vICMjIyAjICAgICAjICMgICAgICMgICMjIyMjICAjIyMjIyMjICMgICAgICNcclxuXHJcblxyXG4uZmFsZWNvbm9zY28ge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICM2NTk4YTM7XHJcbiAgY29sb3I6ICNGRkY7XHJcbiAgQGluY2x1ZGUgbWFyZ2luKDAgMSUgMyUgMSUpO1xyXG4gIHdpZHRoOiAzMSU7XHJcbiAgaGVpZ2h0OiA0MzBweDtcclxuICBtYXgtd2lkdGg6IG5vbmU7XHJcbiAgZmxvYXQ6bGVmdDtcclxuXHJcblxyXG4gIEBpbmNsdWRlIHJlc3BvbnNpdmUtbWVkaWEoJHJlcy10YWJsZXQtcG9ydHJhaXQpIHtcclxuICAgIHdpZHRoOiA0OCU7XHJcbiAgICBoZWlnaHQ6IDQxMHB4O1xyXG5cclxuICB9XHJcbiAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1tZWRpYSgkcmVzLXBob25lLXBvcnRyYWl0KSB7XHJcbiAgICB3aWR0aDoxMDAlO1xyXG4gICAgaGVpZ2h0OiA0MTBweDtcclxuICAgIG1hcmdpbjowIDAgNCUgMDtcclxuICB9XHJcblxyXG5cclxuICBoNCB7XHJcbiAgICBjb2xvcjogI0ZGRjtcclxuICAgIEBpbmNsdWRlIHBhZGRpbmcoIDQlIDYlKTtcclxuICAgIGZvbnQtc2l6ZTogMS44ZW07XHJcbiAgICB3aWR0aDogNDUlO1xyXG4gICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1tZWRpYSgkcmVzLXRhYmxldC1wb3J0cmFpdCl7XHJcbiAgICAgIEBpbmNsdWRlIHBhZGRpbmcoNCUgNCUpO1xyXG5cclxuICAgIH1cclxuICB9XHJcbiAgc3Bhbi5lbnZlbG9wZSB7XHJcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjQ3cHggMDtcclxuICAgIHdpZHRoOiAzOXB4O1xyXG4gICAgaGVpZ2h0OiAzMXB4O1xyXG4gICAgbWFyZ2luOiAwJSA1JSAwIDclO1xyXG4gICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1tZWRpYSgkcmVzLXRhYmxldC1wb3J0cmFpdCl7XHJcbiAgICAgIC8vICAgIHdpZHRoOjEzJTtcclxuICAgIH1cclxuICB9XHJcbiAgLm1lbnNhZ2Vte1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBAaW5jbHVkZSByZXNwb25zaXZlLW1lZGlhKCRyZXMtdGFibGV0LXBvcnRyYWl0KSB7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgfVxyXG4gICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1tZWRpYSgkcmVzLXBob25lLXBvcnRyYWl0KSB7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgfVxyXG4gICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1tZWRpYSgnKG1pbi13aWR0aCA6IDgyMXB4KSBhbmQgKG1heC13aWR0aCA6IDExNTJweCknKXtcclxuICAgICAgd2lkdGg6IDg1JTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgYXtcclxuICAgICAgZm9udC1zaXplOiAxZW07XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAyNCU7XHJcbiAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtbWVkaWEoJyhtaW4td2lkdGggOiA4MjFweCkgYW5kIChtYXgtd2lkdGggOiAxMTUycHgpJyl7XHJcbiAgICAgICAgZm9udC1zaXplOiAxZW0gIWltcG9ydGFudDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcHtcclxuICAgICAgZm9udC1mYW1pbHk6IFwiTXlyaWFkUHJvLUxpZ2h0XCIsIHNhbnMtc2VyaWY7XHJcbiAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XHJcblxyXG4gICAgICAmLmVudmlle1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS41ZW0gIWltcG9ydGFudDtcclxuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgICAgIG1hcmdpbi10b3A6MCU7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMiU7XHJcbiAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1tZWRpYSgnKG1pbi13aWR0aCA6IDgyMXB4KSBhbmQgKG1heC13aWR0aCA6IDExNTJweCknKXtcclxuICAgICAgICAgIGZvbnQtc2l6ZTogMWVtICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGF7XHJcbiAgICAgICAgICBmb250LXNpemU6IDAuOWVtICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICB3aWR0aDo3NiU7XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICAuY29udGVudHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaHJ7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICBtYXJnaW4tbGVmdDogMDtcclxuICAgICAgbWFyZ2luLXRvcDogMTdweDtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogMTdweDtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcclxuICAgICAgY29sb3I6ICNmZmY7XHJcbiAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtbWVkaWEoJHJlcy10YWJsZXQtcG9ydHJhaXQpe1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDEwcHg7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxuICAgICAgfVxyXG4gICAgICBAaW5jbHVkZSByZXNwb25zaXZlLW1lZGlhKCRyZXMtcGhvbmUtcG9ydHJhaXQpe1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDlweDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmF0ZW5kaW1lbnRvIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1tZWRpYSgkcmVzLXRhYmxldC1wb3J0cmFpdCl7XHJcbiAgICAgIG1hcmdpbjogYXV0bztcclxuICAgIH1cclxuICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtbWVkaWEoJHJlcy1waG9uZS1wb3J0cmFpdCl7XHJcbiAgICAgIHdpZHRoOiA5NyU7XHJcbiAgICB9XHJcbiAgICBwe1xyXG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgIGZvbnQtc2l6ZTogMTRweCA7XHJcbiAgICAgIG1hcmdpbjogMDtcclxuICAgICAgbGluZS1oZWlnaHQ6IDE7XHJcbiAgICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgICBtYXJnaW4tYm90dG9tOjVweDtcclxuXHJcbiAgICAgICYuc2Fje1xyXG4gICAgICAgIGNvbG9yOiAjMDAzOTUxO1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMThweCAhaW1wb3J0YW50O1xyXG4gICAgICAgIG1hcmdpbjogMTVweCAwIDE1cHggMDtcclxuICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLW1lZGlhKCRyZXMtcGhvbmUtcG9ydHJhaXQpe1xyXG4gICAgICAgICAgZm9udC1zaXplOiAxNXB4ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICBAaW5jbHVkZSBtYXJnaW4oN3B4IDAgOXB4IDApIDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9Ly8uYXRlbmRpbWVudG9cclxufS8vLmZhbGVjb25vc2NvXHJcblxyXG5cclxuXHJcblxyXG4ubmV3cy1pbWFnZW0ge1xyXG4gIEBpbmNsdWRlIGJveC1zaXppbmcoYm9yZGVyLWJveCk7XHJcbiAgd2lkdGg6IDMxJTtcclxuICAvLyBoZWlnaHQ6IDQ3NXB4O1xyXG4gIGhlaWdodDogNDMwcHg7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIEBpbmNsdWRlIG1hcmdpbiggMCAxJSAzJSAxJSk7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICBmbG9hdDogbGVmdDtcclxuXHJcbiAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1tZWRpYSgkcmVzLXRhYmxldC1wb3J0cmFpdCkge1xyXG4gICAgd2lkdGg6NDglO1xyXG4gICAgaGVpZ2h0OiA0MTBweDtcclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIHJlc3BvbnNpdmUtbWVkaWEoJHJlcy1waG9uZS1wb3J0cmFpdCkge1xyXG4gICAgd2lkdGg6MTAwJTtcclxuICAgIG1heC13aWR0aDogNDE1cHg7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBoZWlnaHQ6IDM1MnB4O1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIEBpbmNsdWRlIG1hcmdpbiggMCAwIDQlIDApO1xyXG4gIH1cclxuXHJcbiAgLmltYWdlLW1vYmlsZXtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgfVxyXG5cclxuICAuY29tZW50YXJpb3tcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICBmb250LWZhbWlseTogXCJNeXJpYWRQcm8tTGlnaHRcIixzYW5zLXNlcmlmO1xyXG4gICAgcGFkZGluZzogMjAlIDglIDAlIDglO1xyXG4gICAgZm9udC1zaXplOiAxNnB4O1xyXG4gICAgZGl2e1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIGJvdHRvbTogMDtcclxuICAgIH1cclxuICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtbWVkaWEoJHJlcy1waG9uZS1wb3J0cmFpdCl7XHJcbiAgICAgIEBpbmNsdWRlIHBhZGRpbmcoMjAlIDglIDAlIDYlKTtcclxuICAgIH1cclxuICB9XHJcbiAgLm93bC1wYWdpbmF0aW9ue1xyXG4gICAgbWFyZ2luLXRvcDogLTMzcHg7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIHotaW5kZXg6IDk5OTtcclxuICAgIC5vd2wtcGFnZSB7XHJcbiAgICAgICYuYWN0aXZlIHNwYW4ge1xyXG4gICAgICAgIGJhY2tncm91bmQ6IHVybCguLi9pbWcvc3ByaXRlLnBuZykgbm8tcmVwZWF0IC0xNjVweCAtNDJweDtcclxuICAgICAgICB3aWR0aDogMTFweDtcclxuICAgICAgICBoZWlnaHQ6IDExcHg7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHNwYW4ge1xyXG4gICAgICAgIGJhY2tncm91bmQ6IHVybCguLi9pbWcvc3ByaXRlLnBuZykgbm8tcmVwZWF0IC0yMDZweCAtNzhweDtcclxuICAgICAgICB3aWR0aDogMTFweDtcclxuICAgICAgICBoZWlnaHQ6IDExcHg7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgbGl7XHJcbiAgICBoZWlnaHQ6IDQzMHB4O1xyXG4gICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1tZWRpYSgkcmVzLXRhYmxldC1wb3J0cmFpdCl7XHJcbiAgICAgIGhlaWdodDo0MTBweDtcclxuICAgIH1cclxuICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtbWVkaWEoJHJlcy1waG9uZS1wb3J0cmFpdCl7XHJcbiAgICAgIGhlaWdodDogMzUycHg7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcblxyXG4gIGltZyB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIC8vaGVpZ2h0OiA0NzVweDtcclxuICAgIGhlaWdodDogNDMwcHg7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1tZWRpYSgkcmVzLXRhYmxldC1wb3J0cmFpdCkge1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIHRvcDogLTk5OTlweDtcclxuICAgICAgbGVmdDogLTk5OTlweDtcclxuICAgICAgcmlnaHQ6IC05OTk5cHg7XHJcbiAgICAgIGJvdHRvbTogLTk5OTlweDtcclxuICAgICAgd2lkdGg6IGF1dG87XHJcbiAgICAgIGhlaWdodDogNDEwcHg7XHJcbiAgICAgIG1hcmdpbjogYXV0bztcclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSByZXNwb25zaXZlLW1lZGlhKCRyZXMtcGhvbmUtcG9ydHJhaXQpIHtcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICB0b3A6IC05OTk5cHg7XHJcbiAgICAgIGxlZnQ6IC05OTk5cHg7XHJcbiAgICAgIHJpZ2h0OiAtOTk5OXB4O1xyXG4gICAgICBib3R0b206IC05OTk5cHg7XHJcbiAgICAgIHdpZHRoOiBhdXRvO1xyXG4gICAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICAgIG1hcmdpbjogYXV0bztcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYuZHVwbGEge1xyXG4gICAgd2lkdGg6IDY0JTtcclxuXHJcbiAgICBAaW5jbHVkZSByZXNwb25zaXZlLW1lZGlhKCRyZXMtdGFibGV0LXBvcnRyYWl0KSB7XHJcbiAgICAgIHdpZHRoOjk4JTtcclxuICAgIH1cclxuICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtbWVkaWEoJHJlcy1waG9uZS1wb3J0cmFpdCl7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICBAaW5jbHVkZSBtYXJnaW4oIDAgMCA0JSAwKTtcclxuICAgIH1cclxuICAgIC5pbWFnZS1tb2JpbGV7XHJcbiAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtbWVkaWEoJHJlcy1waG9uZS1wb3J0cmFpdCl7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIC5jaGFtYWRhe1xyXG4gICAgICAmLnNlbWltYWdlbXtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1tZWRpYSgkcmVzLXBob25lLXBvcnRyYWl0KXtcclxuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgLmxpbmhhLWJvdHRvbXtcclxuICAgICAgICBib3R0b206IDE1JTtcclxuICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLW1lZGlhKCRyZXMtcGhvbmUtcG9ydHJhaXQpe1xyXG4gICAgICAgICBib3R0b206IDA7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAuY29tZW50YXJpb3tcclxuXHJcbiAgICAgIGRpdntcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgYm90dG9tOiAwO1xyXG4gICAgICAgIHotaW5kZXg6IDk5O1xyXG4gICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gICYudHJpcGxhIHtcclxuICAgIHdpZHRoOiA5NyU7XHJcbiAgICBAaW5jbHVkZSByZXNwb25zaXZlLW1lZGlhKCRyZXMtdGFibGV0LXBvcnRyYWl0KSB7XHJcbiAgICAgIHdpZHRoOjEwMCU7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGltZ3tcclxuICAgICAgd2lkdGg6YXV0bztcclxuICAgIH1cclxuXHJcbiAgICAuaW1hZ2UtbW9iaWxle1xyXG4gICAgICBAaW5jbHVkZSByZXNwb25zaXZlLW1lZGlhKCRyZXMtcGhvbmUtcG9ydHJhaXQpe1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmNoYW1hZGF7XHJcbiAgICAgICYuc2VtaW1hZ2Vte1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLW1lZGlhKCRyZXMtcGhvbmUtcG9ydHJhaXQpe1xyXG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICAubGluaGEtYm90dG9te1xyXG4gICAgICAgIGJvdHRvbTogMTUlO1xyXG4gICAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtbWVkaWEoJHJlcy1waG9uZS1wb3J0cmFpdCl7XHJcbiAgICAgICAgIGJvdHRvbTogMDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIC5jb21lbnRhcmlve1xyXG4gICAgICBAaW5jbHVkZSBwYWRkaW5nICgxNSUgOCUgMCA4JSk7XHJcblxyXG4gICAgICBkaXZ7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIGJvdHRvbTogMDtcclxuICAgICAgICB6LWluZGV4OiA5OTtcclxuICAgICAgfVxyXG5cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5kZXNrIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gIH1cclxuXHJcbiAgLm1vYmlsZSB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gIH1cclxuXHJcbiAgJi5jaXRhY2FvIHtcclxuICAgICYuZHVwbGEge1xyXG4gICAgICB3aWR0aDogNjQlO1xyXG4gICAgICAuY2hhbWFkYSBociB7XHJcbiAgICAgICAgd2lkdGg6IDk1JTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgJi50cmlwbGEge1xyXG4gICAgICB3aWR0aDogOTclO1xyXG4gICAgICAuY2hhbWFkYSBociB7XHJcbiAgICAgICAgd2lkdGg6IDk1JTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtbWVkaWEoJHJlcy1waG9uZS1wb3J0cmFpdCkge1xyXG4gICAgICB3aWR0aDoxMDAlICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcbiAgfS8vLmNpdGFjYW9cclxuXHJcbiAgJi52aWRlb2hvbWUge1xyXG4gICAgLmNoYW1hZGEge1xyXG4gICAgfVxyXG4gICAgJi50cmlwbGF7XHJcbiAgICAgIC5jaGFtYWRhe1xyXG4gICAgICAgIHBhZGRpbmc6IDIlIDMlO1xyXG4gICAgICAgIGhlaWdodDogMjIlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtbWVkaWEoJHJlcy1waG9uZS1wb3J0cmFpdCkge1xyXG4gICAgICBpbWcge1xyXG4gICAgICAgIGxlZnQ6IC05OTk5cHg7XHJcbiAgICAgICAgcmlnaHQ6IC05OTk5cHg7XHJcbiAgICAgICAgbWFyZ2luOiBhdXRvO1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9Ly8udmlkZW9ob21lXHJcblxyXG5cclxuICAuY2hhbWFkYSB7XHJcbiAgICBAaW5jbHVkZSBib3gtc2l6aW5nKGJvcmRlci1ib3gpO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IDI1JTtcclxuICAgIGJvdHRvbTogMDtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBAaW5jbHVkZSByZXNwb25zaXZlLW1lZGlhKCRyZXMtcGhvbmUtcG9ydHJhaXQpIHtcclxuICAgICAgcGFkZGluZzogMiUgNSU7XHJcbiAgICAgIGhlaWdodDoyMiU7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHNwYW4uaWNvbnZpZGVvIHtcclxuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltZy9pY28tdmlkZW8taG9tZS5wbmcpO1xyXG4gICAgICB3aWR0aDogMzNweDtcclxuICAgICAgaGVpZ2h0OiAyOHB4O1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIHJpZ2h0OiAyNXB4O1xyXG4gICAgICBib3R0b206IDEwJTtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtbWVkaWEoJHJlcy1waG9uZS1wb3J0cmFpdCkge1xyXG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50IHVybCguLi9pbWcvaWNvLXZpZGVvLnBuZykgMCAwIG5vLXJlcGVhdDtcclxuICAgICAgICB3aWR0aDogMjNweDtcclxuICAgICAgICBoZWlnaHQ6IDIwcHg7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIHJpZ2h0OiAyNXB4O1xyXG4gICAgICAgIGJvdHRvbTogMTAlO1xyXG4gICAgICB9XHJcblxyXG5cclxuICAgIH0vL3NwYW4uaWNvbnZpZGVvXHJcblxyXG5cclxuICAgIGEge1xyXG4gICAgICBAaW5jbHVkZSBib3gtc2l6aW5nKGJvcmRlci1ib3gpO1xyXG4gICAgICAvLyBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICBwYWRkaW5nOiA2JSA4JSA2JSA4JTtcclxuXHJcbiAgICAgIGNvbG9yOiAjRkZGO1xyXG4gICAgICBmb250LXNpemU6IDEuNmVtO1xyXG4gICAgICBsaW5lLWhlaWdodDogMS4xZW07XHJcbiAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtbWVkaWEoJHJlcy10YWJsZXQtcG9ydHJhaXQpe1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS41ZW07XHJcbiAgICAgIH1cclxuICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1tZWRpYSgkcmVzLXBob25lLXBvcnRyYWl0KSB7XHJcbiAgICAgICAgZm9udC1zaXplOiAxLjFlbTtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICBoZWlnaHQ6IDIzcHg7XHJcbiAgICAgICAgQGluY2x1ZGUgcGFkZGluZygzJSA4JSA2JSAwKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgJi5jb21lbnR2aWRlb3tcclxuICAgICAgICBAaW5jbHVkZSBib3gtc2l6aW5nKGJvcmRlci1ib3gpO1xyXG4gICAgICAgIHBhZGRpbmc6IDElIDMlO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMTZweDtcclxuXHJcbiAgICAgIH1cclxuICAgICAgJi52aWRlb3tcclxuICAgICAgICBwYWRkaW5nOiAwJSAwJSAwJSAzJTtcclxuXHJcbiAgICAgIH1cclxuICAgICAgJi5jYXJkY29tZW50YXJpb3tcclxuICAgICAgICBtYXJnaW4tdG9wOiAxNyUgIWltcG9ydGFudDtcclxuICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLW1lZGlhKCRyZXMtcGhvbmUtcG9ydHJhaXQpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgbWFyZ2luLXRvcDogNSUgIWltcG9ydGFudDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcblxyXG4gICAgfS8vYVxyXG5cclxuICAgICYuYmdvcGFjaXR5IHtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjUpO1xyXG4gICAgfVxyXG5cclxuICAgICYuc2VtaW1hZ2VtIHtcclxuICAgICAgQGluY2x1ZGUgYm94LXNpemluZyhib3JkZXItYm94KTtcclxuICAgICAgcG9zaXRpb246IGluaXRpYWw7XHJcbiAgICAgIG1heC1oZWlnaHQ6IDQ1M3B4O1xyXG4gICAgICBoZWlnaHQ6MTAwJTtcclxuXHJcbiAgICAgIGEge1xyXG4gICAgICAgIHdpZHRoOjEwMCU7XHJcbiAgICAgICAgZm9udC1zaXplOiAxLjdlbTtcclxuICAgICAgICBtYXJnaW4tdG9wOiAzNSU7XHJcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDI0JTtcclxuICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLW1lZGlhKCRyZXMtcGhvbmUtcG9ydHJhaXQpe1xyXG4gICAgICAgICAgcGFkZGluZy1ib3R0b206IDcyJTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHB7XHJcbiAgICAgICAgICBmb250LXNpemU6IDAuN2VtO1xyXG4gICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xyXG4gICAgICAgICAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xyXG4gICAgICAgICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcclxuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjJlbTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5iZ2F6dWwge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMzNiNjk7XHJcbiAgICAgIH1cclxuICAgICAgLmJndmVyZGUge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNhN2I4M2Y7XHJcbiAgICAgIH1cclxuICAgICAgLmJnYXp1bGNsYXJvIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDlhOGQ5O1xyXG4gICAgICB9XHJcbiAgICAgIC5iZ3BldHJvbGVvIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzY3Yzg3O1xyXG4gICAgICB9XHJcbiAgICB9Ly8uc2VtaW1hZ2VtXHJcblxyXG4gICAgLmJnYXp1bCBwIHtcclxuICAgICAgY29sb3I6ICNGRkY7XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiAxO1xyXG4gICAgICBwYWRkaW5nLWxlZnQ6IDI1cHg7XHJcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgICAgbWFyZ2luLXRvcDogMjFweDtcclxuICAgIH1cclxuXHJcbiAgICBzcGFuLnNldGFicmFuY2EtcHEge1xyXG4gICAgICBtYXJnaW46IC00cHggMjJweCAwIDA7XHJcbiAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtbWVkaWEoJHJlcy1waG9uZS1wb3J0cmFpdCl7XHJcbiAgICAgICAgQGluY2x1ZGUgbWFyZ2luKDApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAubGluaGEtYm90dG9te1xyXG4gICAgICBAaW5jbHVkZSByZXNwb25zaXZlLW1lZGlhKCRyZXMtcGhvbmUtcG9ydHJhaXQpe1xyXG4gICAgICAgIEBpbmNsdWRlIG1hcmdpbig3JSAwIDAgMCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGhyIHtcclxuICAgICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAxJTtcclxuICAgICAgd2lkdGg6IDg1JTtcclxuICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1tZWRpYSgkcmVzLXBob25lLXBvcnRyYWl0KXtcclxuICAgICAgICBtYXJnaW4tdG9wOiA2cHg7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuYmdhenVsIGhyIHtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzUwN2E5YztcclxuICAgICAgY29sb3I6ICM1MDdhOWM7XHJcbiAgICB9XHJcbiAgICAuYmd2ZXJkZSBociB7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNjN2QzN2U7XHJcbiAgICAgIGNvbG9yOiAjYzdkMzdlO1xyXG4gICAgfVxyXG4gICAgLmJnYXp1bGNsYXJvIGhyIHtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzg2Y2FlYztcclxuICAgICAgY29sb3I6ICM4NmNhZWM7XHJcbiAgICB9XHJcbiAgICAuYmdwZXRyb2xlbyBociB7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcbiAgICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgfVxyXG5cclxuICAgIC5jaGFtYWRhLmJnb3BhY2l0eSBkaXYge1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiA1JTtcclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgfVxyXG4gIH0vLy5jaGFtYWRhXHJcblxyXG5cclxuXHJcbiAgJi5pbWFnZW1mdW5kbyB7XHJcblxyXG4gICAgLmltYWdlLW1vYmlsZXtcclxuICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1tZWRpYSgkcmVzLXRhYmxldC1wb3J0cmFpdCl7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIH1cclxuICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1tZWRpYSgkcmVzLXBob25lLXBvcnRyYWl0KXtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgd2lkdGg6OTclO1xyXG5cclxuXHJcbiAgICBAaW5jbHVkZSByZXNwb25zaXZlLW1lZGlhKCRyZXMtdGFibGV0LXBvcnRyYWl0KSB7XHJcbiAgICAgIHdpZHRoOjQ4JTtcclxuICAgIH1cclxuICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtbWVkaWEoJHJlcy1waG9uZS1wb3J0cmFpdCkge1xyXG4gICAgICB3aWR0aDoxMDAlO1xyXG4gICAgfVxyXG5cclxuICAgIGltZyB7XHJcbiAgICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgaGVpZ2h0OiAxMDAlO1xyXG5cclxuICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1tZWRpYSgkcmVzLXRhYmxldC1wb3J0cmFpdCl7XHJcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBAaW5jbHVkZSByZXNwb25zaXZlLW1lZGlhKCRyZXMtcGhvbmUtcG9ydHJhaXQpIHtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICAgICAgLy8gaGVpZ2h0OiAzNTJweDtcclxuICAgICAgfVxyXG5cclxuICAgIH1cclxuXHJcbiAgICAuY2hhbWFkYS5zZW1pbWFnZW0ge1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgICAgcG9zaXRpb246cmVsYXRpdmU7XHJcbiAgICAgIGhlaWdodDogMjAwcHg7XHJcbiAgICAgIHBhZGRpbmc6MDtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtbWVkaWEoJHJlcy10YWJsZXQtcG9ydHJhaXQpIHtcclxuICAgICAgICBAaW5jbHVkZSBkaXNwbGF5KG5vbmUpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBAaW5jbHVkZSByZXNwb25zaXZlLW1lZGlhKCRyZXMtcGhvbmUtcG9ydHJhaXQpIHtcclxuICAgICAgICBAaW5jbHVkZSBkaXNwbGF5KG5vbmUpO1xyXG4gICAgICB9XHJcbiAgICAgIGEge1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICBwYWRkaW5nLXRvcDowO1xyXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xyXG4gICAgICAgIHRvcDoxNSU7XHJcbiAgICAgICAgbGVmdDogNCU7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgd2lkdGg6IDkwJTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH0vLy5pbWFnZW1mdW5kb1xyXG5cclxuICAmLmNpdGFjYW8ge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YzZjVmNztcclxuICAgIHdpZHRoOiAzMSU7XHJcbiAgICBwYWRkaW5nOiAxJSAyJTtcclxuXHJcbiAgICBAaW5jbHVkZSByZXNwb25zaXZlLW1lZGlhKCRyZXMtdGFibGV0LXBvcnRyYWl0KXtcclxuICAgICAgd2lkdGg6NDglO1xyXG4gICAgICBoZWlnaHQ6IDQxMHB4O1xyXG4gICAgfVxyXG4gICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1tZWRpYSgkcmVzLXBob25lLXBvcnRyYWl0KSB7XHJcbiAgICAgIHdpZHRoOjEwMCU7XHJcbiAgICAgIGhlaWdodDogMzUycHg7XHJcblxyXG4gICAgICBAaW5jbHVkZSBtYXJnaW4oIDAgMCUgNCUgMCUpO1xyXG4gICAgfVxyXG5cclxuICAgIGg0IHtcclxuICAgICAgbWFyZ2luOiAzMHB4IDAgMzRweCAwO1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgaGVpZ2h0OiA0MnB4O1xyXG4gICAgfVxyXG5cclxuICAgIHAge1xyXG4gICAgICBmb250LXN0eWxlOiBpdGFsaWM7XHJcbiAgICAgIGZvbnQtc2l6ZTogMWVtO1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgaGVpZ2h0OiA1MCU7XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjVlbTtcclxuICAgICAgZGlzcGxheTogbm9uZTtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtbWVkaWEoJHJlcy1waG9uZS1wb3J0cmFpdCkge1xyXG4gICAgICAgIGhlaWdodDogYXV0bztcclxuICAgICAgfVxyXG5cclxuICAgICAgJi5zaG93IHtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5sZWlhbWFpcyBhe1xyXG4gICAgICBtYXJnaW46IDIwcHggMCAyNXB4IDA7XHJcbiAgICAgIHNwYW4uc2V0YWF6dWx7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogNXB4O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfS8vLmNpdGFjYW9cclxufS8vLm5ld3MtaW1hZ2VtXHJcblxyXG4uYmxvY28tbm90aWNpYXMge1xyXG4gIEBpbmNsdWRlIGJveC1zaXppbmcoYm9yZGVyLWJveCk7XHJcbiAgd2lkdGg6IDY2JTtcclxuICBmbG9hdDogbGVmdDtcclxuICBAaW5jbHVkZSBtYXJnaW4oMSUgMSUgMyUgMSUpO1xyXG4gIGhlaWdodDogNDc1cHg7XHJcbiAgbWFyZ2luLWJvdHRvbTogMyU7XHJcblxyXG4gIEBpbmNsdWRlIHJlc3BvbnNpdmUtbWVkaWEoJHJlcy10YWJsZXQtcG9ydHJhaXQpe1xyXG4gICAgaGVpZ2h0OiA0MTBweDtcclxuICAgIHdpZHRoOjEwMCU7XHJcbiAgfVxyXG4gIEBpbmNsdWRlIHJlc3BvbnNpdmUtbWVkaWEoJHJlcy1waG9uZS1wb3J0cmFpdCkge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBAaW5jbHVkZSBtYXJnaW4oNCUgMCA0NyUgMCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLmNhcnJvc3NlbCB7XHJcbiAgICBAaW5jbHVkZSBib3gtc2l6aW5nKGJvcmRlci1ib3gpO1xyXG4gICAgd2lkdGg6MTAwJTtcclxuXHJcbiAgICBAaW5jbHVkZSByZXNwb25zaXZlLW1lZGlhKCRyZXMtcGhvbmUtcG9ydHJhaXQpIHtcclxuICAgICAgLm93bC1jb250cm9sc3tcclxuICAgICAgICB3aWR0aDogODAlO1xyXG4gICAgICAgIG1hcmdpbjogMTAlIGF1dG87XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuaXRlbS5hcnRpZ28ge1xyXG4gICAgICBAaW5jbHVkZSBjYWxjKHdpZHRoLCBcIjUwJVwiKTtcclxuICAgICAgbWluLWhlaWdodDogMjMwcHg7XHJcbiAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtbWVkaWEoJHJlcy10YWJsZXQtcG9ydHJhaXQpe1xyXG4gICAgICAgIHdpZHRoOjUwJTtcclxuICAgICAgfVxyXG4gICAgICBAaW5jbHVkZSByZXNwb25zaXZlLW1lZGlhKCRyZXMtcGhvbmUtcG9ydHJhaXQpe1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICB9XHJcbiAgICAgIC5sZWlhbWFpc3tcclxuICAgICAgICBjbGVhcjogYm90aDtcclxuICAgICAgICBtYXJnaW46MiUgMDtcclxuICAgICAgICBmbG9hdDogbGVmdDtcclxuXHJcbiAgICAgICAgLnNwcml0ZXtcclxuICAgICAgICAgIG1hcmdpbi10b3A6IDVweDtcclxuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xyXG4gICAgICAgIH1cclxuICAgICAgICBhe1xyXG5cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9Ly8gIC5jYXJyb3NzZWxcclxuXHJcblxyXG4gIC8qIEFSVElHTyAqL1xyXG4gIC5hcnRpZ28ge1xyXG4gICAgd2lkdGg6IDUwJTtcclxuICAgIGZsb2F0OiBsZWZ0O1xyXG5cclxuXHJcbiAgICBAaW5jbHVkZSByZXNwb25zaXZlLW1lZGlhKCRyZXMtdGFibGV0LXBvcnRyYWl0KSB7XHJcbiAgICAgIHdpZHRoOjUwJTtcclxuICAgIH1cclxuXHJcbiAgICBoMXtcclxuICAgICAgZm9udC1zaXplOjEuNGVtO1xyXG4gICAgICBmb250LWZhbWlseTpcIk15cmlhZFByby1MaWdodFwiLCBzYW5zLXNlcmlmO1xyXG4gICAgfVxyXG4gICAgaDJ7XHJcbiAgICAgIGZvbnQtc2l6ZToxLjJlbTtcclxuICAgICAgZm9udC1mYW1pbHk6XCJNeXJpYWRQcm8tTGlnaHRcIixzYW5zLXNlcmlmO1xyXG4gICAgICBtYXJnaW46MiUgMDtcclxuICAgIH1cclxuXHJcbiAgICBwIHtcclxuICAgICAgZm9udC1zaXplOiAxZW07XHJcbiAgICAgIGNvbG9yOiAjNGQ0ZDRkO1xyXG4gICAgICBtYXJnaW46IDIlIDA7XHJcbiAgICB9XHJcblxyXG4gICAgc3Bhbi5kYXRhIHtcclxuICAgICAgZm9udC1mYW1pbHk6IFwiTXlyaWFkUHJvLUxpZ2h0XCIsIHNhbnMtc2VyaWY7XHJcbiAgICAgIGZvbnQtc2l6ZTogMTJweDtcclxuICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xyXG4gICAgICBmb250LXdlaWdodDogMzAwO1xyXG4gICAgICBjb2xvcjogI2EzYTNhMztcclxuICAgICAgY2xlYXI6Ym90aDtcclxuICAgIH1cclxuXHJcbiAgICAmLmZpcnN0IHtcclxuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2NjY2M7XHJcbiAgICAgIG1pbi1oZWlnaHQ6IDIwMHB4O1xyXG4gICAgICBoZWlnaHQ6NTAlO1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAyNXB4O1xyXG4gICAgfVxyXG5cclxuICAgICYuZ3JhbmRle1xyXG4gICAgICBmbG9hdDogbm9uZTtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcblxyXG4gICAgICBAaW5jbHVkZSByZXNwb25zaXZlLW1lZGlhKCRyZXMtcGhvbmUtcG9ydHJhaXQpIHtcclxuICAgICAgICBmbG9hdDpsZWZ0O1xyXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA3JTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLmxlaWFtYWlzIHtcclxuICAgICAgICBjbGVhcjogYm90aDtcclxuICAgICAgICBtYXJnaW46MiUgMDtcclxuICAgICAgICBmbG9hdDogbGVmdDtcclxuXHJcbiAgICAgICAgLnNwcml0ZXtcclxuICAgICAgICAgIG1hcmdpbi10b3A6IDVweDtcclxuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgaDF7XHJcbiAgICAgICAgd2lkdGg6IGF1dG87XHJcbiAgICAgIH1cclxuICAgIH0vLy5ncmFuZGVcclxuXHJcbiAgICAudW0ge1xyXG4gICAgICBtYXJnaW4tcmlnaHQ6IDM0cHg7XHJcbiAgICB9XHJcbiAgfS8vLmFydGlnb1xyXG5cclxuXHJcblxyXG5cclxufVxyXG5cclxuXHJcblxyXG4vLyAjIyMjIyMgICMjIyMjIyMgICMjIyMjICAjIyMjIyMjICAgICMgICAgICMjIyMjICAjICAgICAjICMjIyMjIyNcclxuLy8gIyAgICAgIyAjICAgICAgICMgICAgICMgICAgIyAgICAgICMgIyAgICMgICAgICMgIyAgICAgIyAjXHJcbi8vICMgICAgICMgIyAgICAgICAjICAgICAgICAgICMgICAgICMgICAjICAjICAgICAjICMgICAgICMgI1xyXG4vLyAjICAgICAjICMjIyMjICAgICMjIyMjICAgICAjICAgICMgICAgICMgIyAgICAgIyAjICAgICAjICMjIyMjXHJcbi8vICMgICAgICMgIyAgICAgICAgICAgICAjICAgICMgICAgIyMjIyMjIyAjICAgIyAjICMgICAgICMgI1xyXG4vLyAjICAgICAjICMgICAgICAgIyAgICAgIyAgICAjICAgICMgICAgICMgIyAgICAjICAjICAgICAjICNcclxuLy8gIyMjIyMjICAjIyMjIyMjICAjIyMjIyAgICAgIyAgICAjICAgICAjICAjIyMjICMgICMjIyMjICAjIyMjIyMjXHJcbi8vXHJcbi8vICMjIyMjIyMgIyMjICMgICAgICMgICAgIyAgICAjICAgICAjICAjIyMjIyAgIyMjIyMjIyAjIyMgIyMjIyMjICAjIyMjIyMjXHJcbi8vICMgICAgICAgICMgICMjICAgICMgICAjICMgICAjIyAgICAjICMgICAgICMgIyAgICAgICAgIyAgIyAgICAgIyAjICAgICAjXHJcbi8vICMgICAgICAgICMgICMgIyAgICMgICMgICAjICAjICMgICAjICMgICAgICAgIyAgICAgICAgIyAgIyAgICAgIyAjICAgICAjXHJcbi8vICMjIyMjICAgICMgICMgICMgICMgIyAgICAgIyAjICAjICAjICMgICAgICAgIyMjIyMgICAgIyAgIyMjIyMjICAjICAgICAjXHJcbi8vICMgICAgICAgICMgICMgICAjICMgIyMjIyMjIyAjICAgIyAjICMgICAgICAgIyAgICAgICAgIyAgIyAgICMgICAjICAgICAjXHJcbi8vICMgICAgICAgICMgICMgICAgIyMgIyAgICAgIyAjICAgICMjICMgICAgICMgIyAgICAgICAgIyAgIyAgICAjICAjICAgICAjXHJcbi8vICMgICAgICAgIyMjICMgICAgICMgIyAgICAgIyAjICAgICAjICAjIyMjIyAgIyMjIyMjIyAjIyMgIyAgICAgIyAjIyMjIyMjXHJcblxyXG5cclxuLmRlc3RhcXVlLWZpbmFuY2Vpcm8uaG9tZSB7XHJcbiAgcGFkZGluZy1sZWZ0OiAwO1xyXG4gIGhlaWdodDogNDMwcHg7XHJcbiAgd2lkdGg6IDY0JTtcclxuICBmbG9hdDpsZWZ0O1xyXG4gIEBpbmNsdWRlIG1hcmdpbiggMCAxJSAzJSAxJSk7XHJcbiAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1tZWRpYSgkcmVzLXRhYmxldC1wb3J0cmFpdClcclxuICB7XHJcbiAgICBoZWlnaHQ6IDQxMHB4O1xyXG4gICAgd2lkdGg6IDk4JTtcclxuICAgIHBhZGRpbmctYm90dG9tOiA0JTtcclxuICAgIGNsZWFyOmJvdGg7XHJcbiAgfVxyXG4gIEBpbmNsdWRlIHJlc3BvbnNpdmUtbWVkaWEoJHJlcy1waG9uZS1wb3J0cmFpdClcclxuICB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogMjg3cHg7XHJcbiAgICBAaW5jbHVkZSBtYXJnaW4oIDAgMCA0JSAwKTtcclxuICB9XHJcbiAgLnRvcG97XHJcbiAgICBAaW5jbHVkZSBib3gtc2l6aW5nKGJvcmRlci1ib3gpO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJsdWUxMDtcclxuICAgIHBhZGRpbmc6IDElIDIlO1xyXG4gICAgYSBoNHtcclxuICAgICAgY29sb3I6ICR3aGl0ZTtcclxuICAgIH1cclxuICAgIHAge1xyXG4gICAgICBmb250LWZhbWlseTogXCJNeXJpYWRQcm8tUmVndWxhclwiLCBzYW5zLXNlcmlmO1xyXG4gICAgICAmLnN1YnRpdGxle1xyXG4gICAgICAgIG1hcmdpbjogMSUgMDtcclxuICAgICAgICBjb2xvcjokd2hpdGU7XHJcbiAgICAgICAgZm9udC1zaXplOiAwLjllbTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICAucXVhZHJhZG9ze1xyXG4gICAgQGluY2x1ZGUgYm94LXNpemluZyhib3JkZXItYm94KTtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgLmRhZG9ze1xyXG4gICAgICBAaW5jbHVkZSBib3gtc2l6aW5nKGJvcmRlci1ib3gpO1xyXG4gICAgICBAaW5jbHVkZSBjYWxjKHdpZHRoLCBcIjMzLjMlXCIpO1xyXG4gICAgICBmbG9hdDogbGVmdDtcclxuICAgICAgQGluY2x1ZGUgcGFkZGluZygyJSAyJSk7XHJcbiAgICAgIGhlaWdodDogMTc2cHg7XHJcbiAgICAgICY6bnRoLWNoaWxkKDEpLCY6bnRoLWNoaWxkKDMpLCY6bnRoLWNoaWxkKDQpLCY6bnRoLWNoaWxkKDYpe1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRibHVlNTtcclxuICAgICAgfVxyXG4gICAgICAmOm50aC1jaGlsZCgxKSwmOm50aC1jaGlsZCgyKSwmOm50aC1jaGlsZCgzKXtcclxuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGJsdWUxMDtcclxuICAgICAgfVxyXG4gICAgICBAaW5jbHVkZSByZXNwb25zaXZlLW1lZGlhKCRyZXMtdGFibGV0LXBvcnRyYWl0KXtcclxuICAgICAgICBoZWlnaHQ6IDE3M3B4O1xyXG4gICAgICAgIEBpbmNsdWRlIHBhZGRpbmcoMCUgMSUpO1xyXG4gICAgICB9XHJcbiAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtbWVkaWEoJHJlcy1waG9uZS1wb3J0cmFpdCl7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgQGluY2x1ZGUgcGFkZGluZyg0JSk7XHJcbiAgICAgIH1cclxuICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1tZWRpYSgnKG1pbi13aWR0aCA6IDQ4MHB4KSBhbmQgKG1heC13aWR0aCA6IDUwNnB4KScpe1xyXG4gICAgICAgIHdpZHRoOjEwMCU7XHJcbiAgICAgIH1cclxuICAgICAgcHtcclxuICAgICAgICBtYXJnaW4gOjA7XHJcbiAgICAgICAgZm9udC1zaXplOiAxLjJlbTtcclxuICAgICAgICBsaW5lLWhlaWdodDogMS4zO1xyXG4gICAgICAgIGNvbG9yOiAkYmx1ZTtcclxuICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLW1lZGlhKCcobWluLXdpZHRoIDogMTAzNnB4KSBhbmQgKG1heC13aWR0aCA6IDEyNDBweCknKXtcclxuICAgICAgICAgIGZvbnQtc2l6ZTogMS4xZW07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtbWVkaWEoJyhtaW4td2lkdGggOiA4MjBweCkgYW5kIChtYXgtd2lkdGggOiAxMDM2cHgpJyl7XHJcbiAgICAgICAgICBmb250LXNpemU6IDFlbTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gQGluY2x1ZGUgcmVzcG9uc2l2ZS1tZWRpYSgnKG1pbi13aWR0aCA6IDQ5MHB4KSBhbmQgKG1heC13aWR0aCA6IDc5NXB4KScpe1xyXG4gICAgICAgIC8vICAgZm9udC1zaXplOiAwLjllbTtcclxuICAgICAgICAvLyB9XHJcbiAgICAgIH1cclxuICAgICAgLm51bWVyb3N7XHJcbiAgICAgICAgQGluY2x1ZGUgYm94LXNpemluZyhib3JkZXItYm94KTtcclxuICAgICAgICBAaW5jbHVkZSBwYWRkaW5nKDUlIDAlKTtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAudmFsb3J7XHJcbiAgICAgICAgICBAaW5jbHVkZSBib3gtc2l6aW5nKGJvcmRlci1ib3gpO1xyXG4gICAgICAgICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICAgICAgICB3aWR0aDogNjAlO1xyXG4gICAgICAgICAgLm1vbnRhbnRlIHtcclxuICAgICAgICAgICAgbWFyZ2luOjA7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZToyLjllbTtcclxuICAgICAgICAgICAgZm9udC1mYW1pbHk6IFwiTXlyaWFkUHJvLVJlZ3VsYXJcIiwgc2Fucy1zZXJpZjtcclxuICAgICAgICAgICAgY29sb3I6JGJsdWU4O1xyXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogNjVweDtcclxuICAgICAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1tZWRpYSgnKG1pbi13aWR0aCA6IDEwMzZweCkgYW5kIChtYXgtd2lkdGggOiAxMjQwcHgpJyl7XHJcbiAgICAgICAgICAgICAgZm9udC1zaXplOiAyLjdlbTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLW1lZGlhKCcobWluLXdpZHRoIDogODIwcHgpIGFuZCAobWF4LXdpZHRoIDogMTAzNnB4KScpe1xyXG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogMi41ZW07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1tZWRpYSgnKG1pbi13aWR0aCA6IDgyMXB4KSBhbmQgKG1heC13aWR0aCA6IDExNTJweCknKXtcclxuICAgICAgICAgICAgICBmb250LXNpemU6IDJlbTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBzcGFue1xyXG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogMC4zZW07XHJcbiAgICAgICAgICAgICAgZm9udC1mYW1pbHk6IFwiTXlyaWFkUHJvLUxpZ2h0XCIsIHNhbnMtc2VyaWY7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gLy8ubW9udGFudGVcclxuICAgICAgICAgIC5xdWFudHtcclxuICAgICAgICAgICAgY29sb3I6JGJsdWU4O1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDEuMWVtO1xyXG4gICAgICAgICAgICBtYXJnaW46MDtcclxuICAgICAgICAgICAgZm9udC1mYW1pbHk6XCJNeXJpYWRQcm8tbGlnaHRcIiwgc2Fucy1zZXJpZjtcclxuICAgICAgICAgICAgQGluY2x1ZGUgbWFyZ2luKCAwIDAgMCAzJSk7XHJcbiAgICAgICAgICB9Ly8ucXVhbnRcclxuICAgICAgICB9Ly8udmFsb3JcclxuXHJcbiAgICAgICAgLnBlcmlvZG97XHJcbiAgICAgICAgICB3aWR0aDogNDAlO1xyXG4gICAgICAgICAgZGl2e1xyXG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLTEyJTtcclxuICAgICAgICAgICAgbWFyZ2luLXRvcDogNyU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAuc2V0YXZlcm1lbGhhe1xyXG4gICAgICAgICAgICB3aWR0aDogMDtcclxuICAgICAgICAgICAgaGVpZ2h0OiAwO1xyXG4gICAgICAgICAgICBib3JkZXItbGVmdDogOXB4IHNvbGlkIHRyYW5zcGFyZW50O1xyXG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6IDlweCBzb2xpZCB0cmFuc3BhcmVudDtcclxuICAgICAgICAgICAgYm9yZGVyLXRvcDogMTNweCBzb2xpZCAkcmVkO1xyXG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC5zZXRhdmVyZGV7XHJcbiAgICAgICAgICAgIHdpZHRoOiAwO1xyXG4gICAgICAgICAgICBoZWlnaHQ6IDA7XHJcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiA5cHggc29saWQgdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogOXB4IHNvbGlkIHRyYW5zcGFyZW50O1xyXG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxM3B4IHNvbGlkICMwMEZGMDA7XHJcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgQGluY2x1ZGUgYm94LXNpemluZyhib3JkZXItYm94KTtcclxuICAgICAgICAgIEBpbmNsdWRlIHBhZGRpbmcoNSUgMCUpO1xyXG5cclxuICAgICAgICAgIC5xdWFydGVyIHtcclxuICAgICAgICAgICAgbWFyZ2luOiAwJSAxOCU7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTowLjllbTtcclxuICAgICAgICAgICAgZm9udC1mYW1pbHk6XCJNeXJpYWRQcm8tTGlnaHRcIiwgc2Fucy1zZXJpZjtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC5hdW1lbnRve1xyXG4gICAgICAgICAgICBtYXJnaW46IDAlIDE4JTtcclxuICAgICAgICAgICAgZm9udC1zaXplOjFlbTtcclxuICAgICAgICAgICAgZm9udC1mYW1pbHk6XCJNeXJpYWRQcm8tTGlnaHRcIiwgc2Fucy1zZXJpZjtcclxuICAgICAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1tZWRpYSgnKG1pbi13aWR0aCA6IDEwMzZweCkgYW5kIChtYXgtd2lkdGggOiAxMjQwcHgpJyl7XHJcbiAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjBlbTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLW1lZGlhKCcobWluLXdpZHRoIDogODIwcHgpIGFuZCAobWF4LXdpZHRoIDogMTAzNnB4KScpe1xyXG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogMC45ZW07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8gQGluY2x1ZGUgcmVzcG9uc2l2ZS1tZWRpYSgnKG1pbi13aWR0aCA6IDQ5MHB4KSBhbmQgKG1heC13aWR0aCA6IDgyMHB4KScpe1xyXG4gICAgICAgICAgICAvLyAgIGZvbnQtc2l6ZTogMC44ZW07XHJcbiAgICAgICAgICAgIC8vIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9Ly8ucGVyaW9kb1xyXG4gICAgICB9Ly8ubnVtZXJvc1xyXG4gICAgfVxyXG4gICAgLm93bC1jb250cm9sc3tcclxuICAgICAgLm93bC1wYWdle1xyXG4gICAgICAgIGJhY2tncm91bmQ6dXJsKC4uL2ltZy9zcHJpdGUucG5nKSBuby1yZXBlYXQgLTI5OXB4IC0yNXB4O1xyXG4gICAgICAgIHdpZHRoOiA1cHg7XHJcbiAgICAgICAgaGVpZ2h0OiA4cHg7XHJcbiAgICAgICAgbWFyZ2luOiAwJSA0cHg7XHJcbiAgICAgICAgJi5hY3RpdmV7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1nL3Nwcml0ZS5wbmcpIG5vLXJlcGVhdCAtMjg3cHggLTI1cHg7XHJcbiAgICAgICAgICB3aWR0aDogMTFweDtcclxuICAgICAgICAgIGhlaWdodDogMTFweDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgLm93bC1wcmV2e1xyXG4gICAgICAgIGJhY2tncm91bmQ6IHVybCguLi9pbWcvc3ByaXRlLnBuZykgbm8tcmVwZWF0IC0zMDRweCAtNDJweDtcclxuICAgICAgICB3aWR0aDogOHB4O1xyXG4gICAgICAgIGhlaWdodDogMTRweDtcclxuICAgICAgICBtYXJnaW4tbGVmdDogOCU7XHJcbiAgICAgIH1cclxuICAgICAgLm93bC1uZXh0e1xyXG4gICAgICAgIGJhY2tncm91bmQ6IHVybCguLi9pbWcvc3ByaXRlLnBuZykgbm8tcmVwZWF0IC0zMjdweCAtNTJweDtcclxuICAgICAgICB3aWR0aDogOHB4O1xyXG4gICAgICAgIGhlaWdodDogMTRweDtcclxuICAgICAgICBtYXJnaW4tbGVmdDogOTAlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfS8vLnF1YWRyYWRvc1xyXG5cclxuXHJcbiAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1tZWRpYSgkcmVzLXBob25lLXBvcnRyYWl0KSB7XHJcbiAgICB3aWR0aDoxMDAlO1xyXG4gICAgaDQsIC5zdWJ0aXRsZXtcclxuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc3Bhbi5zZXRhdmVyZGUsXHJcbiAgc3Bhbi5zZXRhdmVybWVsaGEge1xyXG4gICAgd2lkdGg6IDExcHg7XHJcbiAgICBoZWlnaHQ6IDEwcHg7XHJcbiAgICBtYXJnaW46IDlweCAxMHB4IDAgMTBweDtcclxuICB9XHJcbiAgc3Bhbi5zZXRhdmVyZGUge1xyXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE5NnB4IC0yNXB4O1xyXG4gICAgLmllICYgIHtcclxuICAgICAgbWFyZ2luLXRvcDoxN3B4O1xyXG4gICAgfVxyXG4gIH1cclxuICBzcGFuLnNldGF2ZXJtZWxoYSB7XHJcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjA4cHggLTI1cHg7XHJcbiAgfVxyXG4gIHNwYW4uZ3JhZmljbyB7XHJcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDA7XHJcbiAgICB3aWR0aDogMTYwcHg7XHJcbiAgICBoZWlnaHQ6IDE2MHB4O1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgbWFyZ2luLXRvcDoxMCU7XHJcblxyXG4gICAgc3BhbiB7XHJcbiAgICAgIHdpZHRoOiA4N3B4O1xyXG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgbGVmdDogNTAlO1xyXG4gICAgICBtYXJnaW4tbGVmdDogLTQzcHg7XHJcbiAgICAgIHRvcDogNTdweDtcclxuICAgICAgY29sb3I6ICMwMGE2Zjc7XHJcbiAgICAgIGZvbnQtc2l6ZTogMzZweDtcclxuICAgICAgZm9udC1mYW1pbHk6IE15cmlhZCBQcm8sIHNhbnMtc2VyaWY7XHJcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcblxyXG4gICAgICBzcGFuLnBvcmNlbnRhZ2VtIHtcclxuICAgICAgICBmb250LXNpemU6IDIyLjdweDtcclxuICAgICAgICBtYXJnaW46IDBweDtcclxuICAgICAgICBsZWZ0OiBhdXRvO1xyXG4gICAgICAgIHRvcDogYXV0bztcclxuICAgICAgICBwb3NpdGlvbjogaW5pdGlhbDtcclxuXHJcbiAgICAgICAgLmllICZ7XHJcbiAgICAgICAgICBsZWZ0OjUwcHg7XHJcbiAgICAgICAgICB0b3A6MTBweDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9Ly9zcGFuLmdyYWZpY29cclxuXHJcblxyXG5cclxuICAuYmxvY29kaXJlaXRhLCAuYmxvY29lc3F1ZXJkYSwgLmRhZG9zLmdyYW5kZXtcclxuICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgaGVpZ2h0OiAzODBweDtcclxuICAgIEBpbmNsdWRlIGJveC1zaXppbmcoYm9yZGVyLWJveCk7XHJcblxyXG4gIH0vLy5ibG9jb2RpcmVpdGEsIC5ibG9jb2VzcXVlcmRhLCAuZGFkb3MuZ3JhbmRlXHJcblxyXG4gIC5ibG9jb2RpcmVpdGF7XHJcbiAgICB3aWR0aDogMzIlO1xyXG5cclxuICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtbWVkaWEoJHJlcy1waG9uZS1wb3J0cmFpdCkge1xyXG4gICAgICB3aWR0aDoxMDAlO1xyXG4gICAgfVxyXG5cclxuICAgIC5kYWRvc3tcclxuICAgICAgQGluY2x1ZGUgYm94LXNpemluZyhib3JkZXItYm94KTtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogOCU7XHJcblxyXG4gICAgICBAaW5jbHVkZSByZXNwb25zaXZlLW1lZGlhKCRyZXMtcGhvbmUtcG9ydHJhaXQpIHtcclxuICAgICAgICB3aWR0aDogMjE1cHg7XHJcbiAgICAgICAgbWFyZ2luOiAyNXB4IGF1dG8gMzBweCBhdXRvO1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgfVxyXG5cclxuICAgICAgJj5we1xyXG4gICAgICAgIGZvbnQtc2l6ZToxLjJlbTtcclxuICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgIH1cclxuICAgICAgLm51bWVyb3N7XHJcbiAgICAgICAgQGluY2x1ZGUgYm94LXNpemluZyhib3JkZXItYm94KTtcclxuXHJcbiAgICAgICAgLnZhbG9ye1xyXG4gICAgICAgICAgQGluY2x1ZGUgYm94LXNpemluZyhib3JkZXItYm94KTtcclxuXHJcbiAgICAgICAgICAubW9udGFudGUge1xyXG4gICAgICAgICAgICBtYXJnaW46MDtcclxuICAgICAgICAgICAgZm9udC1zaXplOjIuMmVtO1xyXG4gICAgICAgICAgICBmb250LWZhbWlseTogXCJNeXJpYWRQcm8tTGlnaHRcIiwgc2Fucy1zZXJpZjtcclxuICAgICAgICAgICAgY29sb3I6JGJsdWU4O1xyXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgICAgICAgfSAvLy5tb250YW50ZVxyXG5cclxuICAgICAgICAgIC5xdWFudHtcclxuICAgICAgICAgICAgY29sb3I6JGJsdWU4O1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDFlbTtcclxuICAgICAgICAgICAgbWFyZ2luOjA7XHJcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OlwiTXlyaWFkUHJvLWxpZ2h0XCIsIHNhbnMtc2VyaWY7XHJcbiAgICAgICAgICB9Ly8ucXVhbnRcclxuXHJcbiAgICAgICAgfS8vLnZhbG9yXHJcblxyXG4gICAgICAgIC5wZXJpb2Rve1xyXG4gICAgICAgICAgQGluY2x1ZGUgYm94LXNpemluZyhib3JkZXItYm94KTtcclxuICAgICAgICAgIC5xdWFydGVyIHtcclxuICAgICAgICAgICAgbWFyZ2luOjA7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZToxZW07XHJcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OlwiTXlyaWFkUHJvLUxpZ2h0XCIsIHNhbnMtc2VyaWY7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAuYXVtZW50b3tcclxuICAgICAgICAgICAgbWFyZ2luOjA7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZToxZW07XHJcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OlwiTXlyaWFkUHJvLUxpZ2h0XCIsIHNhbnMtc2VyaWY7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfS8vLnBlcmlvZG9cclxuICAgICAgfS8vLm51bWVyb3NcclxuICAgIH1cclxuICB9Ly8uYmxvY29kaXJlaXRhXHJcblxyXG4gIC5ibG9jb2VzcXVlcmRhe1xyXG4gICAgd2lkdGg6IDMyJTtcclxuXHJcbiAgICBAaW5jbHVkZSByZXNwb25zaXZlLW1lZGlhKCRyZXMtcGhvbmUtcG9ydHJhaXQpIHtcclxuICAgICAgd2lkdGg6MTAwJTtcclxuICAgIH1cclxuXHJcbiAgICAuZGFkb3N7XHJcbiAgICAgIEBpbmNsdWRlIGJveC1zaXppbmcoYm9yZGVyLWJveCk7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDglO1xyXG5cclxuICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1tZWRpYSgkcmVzLXBob25lLXBvcnRyYWl0KSB7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmPnB7XHJcbiAgICAgICAgZm9udC1zaXplOiAxLjJlbTtcclxuICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5udW1lcm9zIHtcclxuICAgICAgICBtYXJnaW4tdG9wOiAyJTtcclxuICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLW1lZGlhKCRyZXMtcGhvbmUtcG9ydHJhaXQpIHtcclxuICAgICAgICAgIG1hcmdpbjoyJSBhdXRvO1xyXG4gICAgICAgICAgd2lkdGg6NjUlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnNwcml0ZSB7XHJcbiAgICAgICAgICBtYXJnaW4tdG9wOjEwJTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLnZhbG9yIHtcclxuICAgICAgICAgIG1hcmdpbi10b3A6MiU7XHJcbiAgICAgICAgICAubW9udGFudGUge1xyXG4gICAgICAgICAgICBtYXJnaW46MDtcclxuICAgICAgICAgICAgZm9udC1zaXplOjIuMmVtO1xyXG4gICAgICAgICAgICBmb250LWZhbWlseTogXCJNeXJpYWRQcm8tTGlnaHRcIiwgc2Fucy1zZXJpZjtcclxuICAgICAgICAgICAgY29sb3I6JGJsdWU4O1xyXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgICAgICAgfSAvLy5tb250YW50ZVxyXG4gICAgICAgICAgLnF1YW50IHtcclxuICAgICAgICAgICAgY29sb3I6JGJsdWU4O1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDFlbTtcclxuICAgICAgICAgICAgbWFyZ2luOjA7XHJcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OlwiTXlyaWFkUHJvLWxpZ2h0XCIsIHNhbnMtc2VyaWY7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfS8vLnZhbG9yXHJcblxyXG4gICAgICAgIC5wZXJpb2Rve1xyXG4gICAgICAgICAgbWFyZ2luLXRvcDo1JTtcclxuICAgICAgICAgIC5xdWFydGVye1xyXG4gICAgICAgICAgICBtYXJnaW46MDtcclxuICAgICAgICAgICAgZm9udC1zaXplOjFlbTtcclxuICAgICAgICAgICAgZm9udC1mYW1pbHk6XCJNeXJpYWRQcm8tTGlnaHRcIiwgc2Fucy1zZXJpZjtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC5hdW1lbnRve1xyXG4gICAgICAgICAgICBtYXJnaW46MDtcclxuICAgICAgICAgICAgZm9udC1zaXplOjFlbTtcclxuICAgICAgICAgICAgZm9udC1mYW1pbHk6XCJNeXJpYWRQcm8tTGlnaHRcIiwgc2Fucy1zZXJpZjtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0vLy5udW1lcm9zXHJcbiAgICB9Ly8uZGFkb3NcclxuICB9XHJcblxyXG4gIC5kYWRvcy5ncmFuZGV7XHJcbiAgICB3aWR0aDogMzIlO1xyXG4gICAgbWFyZ2luOjAgMiU7XHJcbiAgICBwYWRkaW5nOjAgMiU7XHJcbiAgICBib3JkZXItcmlnaHQ6MXB4IHNvbGlkICRibHVlODtcclxuICAgIGJvcmRlci1sZWZ0OjFweCBzb2xpZCAkYmx1ZTg7XHJcblxyXG4gICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1tZWRpYSgkcmVzLXBob25lLXBvcnRyYWl0KSB7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICBib3JkZXItcmlnaHQ6bm9uZTtcclxuICAgICAgYm9yZGVyLWxlZnQ6bm9uZTtcclxuICAgICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgfVxyXG5cclxuICAgICY+cHtcclxuICAgICAgZm9udC1zaXplOiAxLjJlbTtcclxuXHJcbiAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtbWVkaWEoJHJlcy1waG9uZS1wb3J0cmFpdCkge1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICBtYXJnaW46NyUgMDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5udW1lcm9ze1xyXG4gICAgICBAaW5jbHVkZSByZXNwb25zaXZlLW1lZGlhKCRyZXMtcGhvbmUtcG9ydHJhaXQpIHtcclxuICAgICAgICB3aWR0aDogNzAlO1xyXG4gICAgICAgIG1hcmdpbjogOCUgYXV0bztcclxuICAgICAgfVxyXG5cclxuICAgICAgLnBvcmNlbnRhZ2Vte1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDA7XHJcblxyXG4gICAgICAgIC5wZXJpb2Rve1xyXG4gICAgICAgICAgQGluY2x1ZGUgYm94LXNpemluZyhib3JkZXItYm94KTtcclxuICAgICAgICAgIEBpbmNsdWRlIG1hcmdpbigxMnB4IDAgMCAwKTtcclxuXHJcbiAgICAgICAgICAucXVhcnRlcntcclxuICAgICAgICAgICAgbWFyZ2luOjA7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAuYXVtZW50b3tcclxuICAgICAgICAgICAgbWFyZ2luOjA7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9Ly8ucG9yY2VudGFnZW1cclxuICAgIH0vLy5udW1lcm9zXHJcbiAgfS8vLmRhZG9zLmdyYW5kZVxyXG5cclxufS8vLmRlc3RhcXVlLWZpbmFuY2Vpcm8uaG9tZVxyXG4iLCIvLyBCb3VyYm9uIDQuMi43XG4vLyBodHRwOi8vYm91cmJvbi5pb1xuLy8gQ29weXJpZ2h0IDIwMTEtMjAxNSB0aG91Z2h0Ym90LCBpbmMuXG4vLyBNSVQgTGljZW5zZVxuXG5AaW1wb3J0IFwic2V0dGluZ3MvcHJlZml4ZXJcIjtcbkBpbXBvcnQgXCJzZXR0aW5ncy9weC10by1lbVwiO1xuQGltcG9ydCBcInNldHRpbmdzL2Fzc2V0LXBpcGVsaW5lXCI7XG5cbkBpbXBvcnQgXCJmdW5jdGlvbnMvYXNzaWduLWlucHV0c1wiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9jb250YWluc1wiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9jb250YWlucy1mYWxzeVwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9pcy1sZW5ndGhcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvaXMtbGlnaHRcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvaXMtbnVtYmVyXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL2lzLXNpemVcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvcHgtdG8tZW1cIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvcHgtdG8tcmVtXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL3NoYWRlXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL3N0cmlwLXVuaXRzXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL3RpbnRcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL3VucGFja1wiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9tb2R1bGFyLXNjYWxlXCI7XG5cbkBpbXBvcnQgXCJoZWxwZXJzL2NvbnZlcnQtdW5pdHNcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2RpcmVjdGlvbmFsLXZhbHVlc1wiO1xuQGltcG9ydCBcImhlbHBlcnMvZm9udC1zb3VyY2UtZGVjbGFyYXRpb25cIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2dyYWRpZW50LXBvc2l0aW9ucy1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2xpbmVhci1hbmdsZS1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2xpbmVhci1ncmFkaWVudC1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2xpbmVhci1wb3NpdGlvbnMtcGFyc2VyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9saW5lYXItc2lkZS1jb3JuZXItcGFyc2VyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9yYWRpYWwtYXJnLXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvcmFkaWFsLXBvc2l0aW9ucy1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL3JhZGlhbC1ncmFkaWVudC1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL3JlbmRlci1ncmFkaWVudHNcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL3NoYXBlLXNpemUtc3RyaXBwZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL3N0ci10by1udW1cIjtcblxuQGltcG9ydCBcImNzczMvYW5pbWF0aW9uXCI7XG5AaW1wb3J0IFwiY3NzMy9hcHBlYXJhbmNlXCI7XG5AaW1wb3J0IFwiY3NzMy9iYWNrZmFjZS12aXNpYmlsaXR5XCI7XG5AaW1wb3J0IFwiY3NzMy9iYWNrZ3JvdW5kXCI7XG5AaW1wb3J0IFwiY3NzMy9iYWNrZ3JvdW5kLWltYWdlXCI7XG5AaW1wb3J0IFwiY3NzMy9ib3JkZXItaW1hZ2VcIjtcbkBpbXBvcnQgXCJjc3MzL2NhbGNcIjtcbkBpbXBvcnQgXCJjc3MzL2NvbHVtbnNcIjtcbkBpbXBvcnQgXCJjc3MzL2ZpbHRlclwiO1xuQGltcG9ydCBcImNzczMvZmxleC1ib3hcIjtcbkBpbXBvcnQgXCJjc3MzL2ZvbnQtZmFjZVwiO1xuQGltcG9ydCBcImNzczMvZm9udC1mZWF0dXJlLXNldHRpbmdzXCI7XG5AaW1wb3J0IFwiY3NzMy9oaWRwaS1tZWRpYS1xdWVyeVwiO1xuQGltcG9ydCBcImNzczMvaHlwaGVuc1wiO1xuQGltcG9ydCBcImNzczMvaW1hZ2UtcmVuZGVyaW5nXCI7XG5AaW1wb3J0IFwiY3NzMy9rZXlmcmFtZXNcIjtcbkBpbXBvcnQgXCJjc3MzL2xpbmVhci1ncmFkaWVudFwiO1xuQGltcG9ydCBcImNzczMvcGVyc3BlY3RpdmVcIjtcbkBpbXBvcnQgXCJjc3MzL3BsYWNlaG9sZGVyXCI7XG5AaW1wb3J0IFwiY3NzMy9yYWRpYWwtZ3JhZGllbnRcIjtcbkBpbXBvcnQgXCJjc3MzL3NlbGVjdGlvblwiO1xuQGltcG9ydCBcImNzczMvdGV4dC1kZWNvcmF0aW9uXCI7XG5AaW1wb3J0IFwiY3NzMy90cmFuc2Zvcm1cIjtcbkBpbXBvcnQgXCJjc3MzL3RyYW5zaXRpb25cIjtcbkBpbXBvcnQgXCJjc3MzL3VzZXItc2VsZWN0XCI7XG5cbkBpbXBvcnQgXCJhZGRvbnMvYm9yZGVyLWNvbG9yXCI7XG5AaW1wb3J0IFwiYWRkb25zL2JvcmRlci1yYWRpdXNcIjtcbkBpbXBvcnQgXCJhZGRvbnMvYm9yZGVyLXN0eWxlXCI7XG5AaW1wb3J0IFwiYWRkb25zL2JvcmRlci13aWR0aFwiO1xuQGltcG9ydCBcImFkZG9ucy9idXR0b25zXCI7XG5AaW1wb3J0IFwiYWRkb25zL2NsZWFyZml4XCI7XG5AaW1wb3J0IFwiYWRkb25zL2VsbGlwc2lzXCI7XG5AaW1wb3J0IFwiYWRkb25zL2ZvbnQtc3RhY2tzXCI7XG5AaW1wb3J0IFwiYWRkb25zL2hpZGUtdGV4dFwiO1xuQGltcG9ydCBcImFkZG9ucy9tYXJnaW5cIjtcbkBpbXBvcnQgXCJhZGRvbnMvcGFkZGluZ1wiO1xuQGltcG9ydCBcImFkZG9ucy9wb3NpdGlvblwiO1xuQGltcG9ydCBcImFkZG9ucy9wcmVmaXhlclwiO1xuQGltcG9ydCBcImFkZG9ucy9yZXRpbmEtaW1hZ2VcIjtcbkBpbXBvcnQgXCJhZGRvbnMvc2l6ZVwiO1xuQGltcG9ydCBcImFkZG9ucy90ZXh0LWlucHV0c1wiO1xuQGltcG9ydCBcImFkZG9ucy90aW1pbmctZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwiYWRkb25zL3RyaWFuZ2xlXCI7XG5AaW1wb3J0IFwiYWRkb25zL3dvcmQtd3JhcFwiO1xuXG5AaW1wb3J0IFwiYm91cmJvbi1kZXByZWNhdGVkLXVwY29taW5nXCI7XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBHbG9iYWwgdmFyaWFibGVzIHRvIGVuYWJsZSBvciBkaXNhYmxlIHZlbmRvciBwcmVmaXhlc1xuXG4kcHJlZml4LWZvci13ZWJraXQ6ICAgIHRydWUgIWRlZmF1bHQ7XG4kcHJlZml4LWZvci1tb3ppbGxhOiAgIHRydWUgIWRlZmF1bHQ7XG4kcHJlZml4LWZvci1taWNyb3NvZnQ6IHRydWUgIWRlZmF1bHQ7XG4kcHJlZml4LWZvci1vcGVyYTogICAgIHRydWUgIWRlZmF1bHQ7XG4kcHJlZml4LWZvci1zcGVjOiAgICAgIHRydWUgIWRlZmF1bHQ7XG4iLCIkZW0tYmFzZTogMTZweCAhZGVmYXVsdDtcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIEEgZ2xvYmFsIHNldHRpbmcgdG8gZW5hYmxlIG9yIGRpc2FibGUgdGhlIGAkYXNzZXQtcGlwZWxpbmVgIHZhcmlhYmxlIGZvciBhbGwgZnVuY3Rpb25zIHRoYXQgYWNjZXB0IGl0LlxuLy8vXG4vLy8gQHR5cGUgQm9vbFxuXG4kYXNzZXQtcGlwZWxpbmU6IGZhbHNlICFkZWZhdWx0O1xuIiwiQGZ1bmN0aW9uIGFzc2lnbi1pbnB1dHMoJGlucHV0cywgJHBzZXVkbzogbnVsbCkge1xuICAkbGlzdDogKCk7XG5cbiAgQGVhY2ggJGlucHV0IGluICRpbnB1dHMge1xuICAgICRpbnB1dDogdW5xdW90ZSgkaW5wdXQpO1xuICAgICRpbnB1dDogaWYoJHBzZXVkbywgJGlucHV0ICsgXCI6XCIgKyAkcHNldWRvLCAkaW5wdXQpO1xuICAgICRsaXN0OiBhcHBlbmQoJGxpc3QsICRpbnB1dCwgY29tbWEpO1xuICB9XG5cbiAgQHJldHVybiAkbGlzdDtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIENoZWNrcyBpZiBhIGxpc3QgY29udGFpbnMgYSB2YWx1ZShzKS5cbi8vL1xuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkbGlzdFxuLy8vICAgVGhlIGxpc3QgdG8gY2hlY2sgYWdhaW5zdC5cbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHZhbHVlc1xuLy8vICAgQSBzaW5nbGUgdmFsdWUgb3IgbGlzdCBvZiB2YWx1ZXMgdG8gY2hlY2sgZm9yLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICBjb250YWlucygkbGlzdCwgJHZhbHVlKVxuLy8vXG4vLy8gQHJldHVybiB7Qm9vbH1cblxuQGZ1bmN0aW9uIGNvbnRhaW5zKCRsaXN0LCAkdmFsdWVzLi4uKSB7XG4gIEBlYWNoICR2YWx1ZSBpbiAkdmFsdWVzIHtcbiAgICBAaWYgdHlwZS1vZihpbmRleCgkbGlzdCwgJHZhbHVlKSkgIT0gXCJudW1iZXJcIiB7XG4gICAgICBAcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gdHJ1ZTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIENoZWNrcyBpZiBhIGxpc3QgZG9lcyBub3QgY29udGFpbnMgYSB2YWx1ZS5cbi8vL1xuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkbGlzdFxuLy8vICAgVGhlIGxpc3QgdG8gY2hlY2sgYWdhaW5zdC5cbi8vL1xuLy8vIEByZXR1cm4ge0Jvb2x9XG5cbkBmdW5jdGlvbiBjb250YWlucy1mYWxzeSgkbGlzdCkge1xuICBAZWFjaCAkaXRlbSBpbiAkbGlzdCB7XG4gICAgQGlmIG5vdCAkaXRlbSB7XG4gICAgICBAcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiBmYWxzZTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIENoZWNrcyBmb3IgYSB2YWxpZCBDU1MgbGVuZ3RoLlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR2YWx1ZVxuXG5AZnVuY3Rpb24gaXMtbGVuZ3RoKCR2YWx1ZSkge1xuICBAcmV0dXJuIHR5cGUtb2YoJHZhbHVlKSAhPSBcIm51bGxcIiBhbmQgKHN0ci1zbGljZSgkdmFsdWUgKyBcIlwiLCAxLCA0KSA9PSBcImNhbGNcIlxuICAgICAgIG9yIGluZGV4KGF1dG8gaW5oZXJpdCBpbml0aWFsIDAsICR2YWx1ZSlcbiAgICAgICBvciAodHlwZS1vZigkdmFsdWUpID09IFwibnVtYmVyXCIgYW5kIG5vdCh1bml0bGVzcygkdmFsdWUpKSkpO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvZ3JhbWF0aWNhbGx5IGRldGVybWluZXMgd2hldGhlciBhIGNvbG9yIGlzIGxpZ2h0IG9yIGRhcmsuXG4vLy9cbi8vLyBAbGluayBodHRwOi8vcm9ib3RzLnRob3VnaHRib3QuY29tL2Nsb3Nlci1sb29rLWNvbG9yLWxpZ2h0bmVzc1xuLy8vXG4vLy8gQHBhcmFtIHtDb2xvciAoSGV4KX0gJGNvbG9yXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIGlzLWxpZ2h0KCRjb2xvcilcbi8vL1xuLy8vIEByZXR1cm4ge0Jvb2x9XG5cbkBmdW5jdGlvbiBpcy1saWdodCgkaGV4LWNvbG9yKSB7XG4gICQtbG9jYWwtcmVkOiByZWQocmdiYSgkaGV4LWNvbG9yLCAxKSk7XG4gICQtbG9jYWwtZ3JlZW46IGdyZWVuKHJnYmEoJGhleC1jb2xvciwgMSkpO1xuICAkLWxvY2FsLWJsdWU6IGJsdWUocmdiYSgkaGV4LWNvbG9yLCAxKSk7XG4gICQtbG9jYWwtbGlnaHRuZXNzOiAoJC1sb2NhbC1yZWQgKiAwLjIxMjYgKyAkLWxvY2FsLWdyZWVuICogMC43MTUyICsgJC1sb2NhbC1ibHVlICogMC4wNzIyKSAvIDI1NTtcblxuICBAcmV0dXJuICQtbG9jYWwtbGlnaHRuZXNzID4gMC42O1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQ2hlY2tzIGZvciBhIHZhbGlkIG51bWJlci5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdmFsdWVcbi8vL1xuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gY29udGFpbnNcblxuQGZ1bmN0aW9uIGlzLW51bWJlcigkdmFsdWUpIHtcbiAgQHJldHVybiBjb250YWlucyhcIjBcIiBcIjFcIiBcIjJcIiBcIjNcIiBcIjRcIiBcIjVcIiBcIjZcIiBcIjdcIiBcIjhcIiBcIjlcIiAwIDEgMiAzIDQgNSA2IDcgOCA5LCAkdmFsdWUpO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQ2hlY2tzIGZvciBhIHZhbGlkIENTUyBzaXplLlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR2YWx1ZVxuLy8vXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBjb250YWluc1xuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gaXMtbGVuZ3RoXG5cbkBmdW5jdGlvbiBpcy1zaXplKCR2YWx1ZSkge1xuICBAcmV0dXJuIGlzLWxlbmd0aCgkdmFsdWUpXG4gICAgICAgICAgb3IgY29udGFpbnMoXCJmaWxsXCIgXCJmaXQtY29udGVudFwiIFwibWluLWNvbnRlbnRcIiBcIm1heC1jb250ZW50XCIsICR2YWx1ZSk7XG59XG4iLCIvLyBDb252ZXJ0IHBpeGVscyB0byBlbXNcbi8vIGVnLiBmb3IgYSByZWxhdGlvbmFsIHZhbHVlIG9mIDEycHggd3JpdGUgZW0oMTIpIHdoZW4gdGhlIHBhcmVudCBpcyAxNnB4XG4vLyBpZiB0aGUgcGFyZW50IGlzIGFub3RoZXIgdmFsdWUgc2F5IDI0cHggd3JpdGUgZW0oMTIsIDI0KVxuXG5AZnVuY3Rpb24gZW0oJHB4dmFsLCAkYmFzZTogJGVtLWJhc2UpIHtcbiAgQGlmIG5vdCB1bml0bGVzcygkcHh2YWwpIHtcbiAgICAkcHh2YWw6IHN0cmlwLXVuaXRzKCRweHZhbCk7XG4gIH1cbiAgQGlmIG5vdCB1bml0bGVzcygkYmFzZSkge1xuICAgICRiYXNlOiBzdHJpcC11bml0cygkYmFzZSk7XG4gIH1cbiAgQHJldHVybiAoJHB4dmFsIC8gJGJhc2UpICogMWVtO1xufVxuIiwiLy8gQ29udmVydCBwaXhlbHMgdG8gcmVtc1xuLy8gZWcuIGZvciBhIHJlbGF0aW9uYWwgdmFsdWUgb2YgMTJweCB3cml0ZSByZW0oMTIpXG4vLyBBc3N1bWVzICRlbS1iYXNlIGlzIHRoZSBmb250LXNpemUgb2YgPGh0bWw+XG5cbkBmdW5jdGlvbiByZW0oJHB4dmFsKSB7XG4gIEBpZiBub3QgdW5pdGxlc3MoJHB4dmFsKSB7XG4gICAgJHB4dmFsOiBzdHJpcC11bml0cygkcHh2YWwpO1xuICB9XG5cbiAgJGJhc2U6ICRlbS1iYXNlO1xuICBAaWYgbm90IHVuaXRsZXNzKCRiYXNlKSB7XG4gICAgJGJhc2U6IHN0cmlwLXVuaXRzKCRiYXNlKTtcbiAgfVxuICBAcmV0dXJuICgkcHh2YWwgLyAkYmFzZSkgKiAxcmVtO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gTWl4ZXMgYSBjb2xvciB3aXRoIGJsYWNrLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlciAoUGVyY2VudGFnZSl9ICRwZXJjZW50XG4vLy8gICBUaGUgYW1vdW50IG9mIGJsYWNrIHRvIGJlIG1peGVkIGluLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6IHNoYWRlKCNmZmJiNTIsIDYwJSk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICM2NjRhMjA7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmV0dXJuIHtDb2xvcn1cblxuQGZ1bmN0aW9uIHNoYWRlKCRjb2xvciwgJHBlcmNlbnQpIHtcbiAgQHJldHVybiBtaXgoIzAwMCwgJGNvbG9yLCAkcGVyY2VudCk7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBTdHJpcHMgdGhlIHVuaXQgZnJvbSBhIG51bWJlci5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyIChXaXRoIFVuaXQpfSAkdmFsdWVcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgJGRpbWVuc2lvbjogc3RyaXAtdW5pdHMoMTBlbSk7XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAkZGltZW5zaW9uOiAxMDtcbi8vL1xuLy8vIEByZXR1cm4ge051bWJlciAoVW5pdGxlc3MpfVxuXG5AZnVuY3Rpb24gc3RyaXAtdW5pdHMoJHZhbHVlKSB7XG4gIEByZXR1cm4gKCR2YWx1ZSAvICgkdmFsdWUgKiAwICsgMSkpO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gTWl4ZXMgYSBjb2xvciB3aXRoIHdoaXRlLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlciAoUGVyY2VudGFnZSl9ICRwZXJjZW50XG4vLy8gICBUaGUgYW1vdW50IG9mIHdoaXRlIHRvIGJlIG1peGVkIGluLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6IHRpbnQoIzZlY2FhNiwgNDAlKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogI2E4ZGZjOTtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXR1cm4ge0NvbG9yfVxuXG5AZnVuY3Rpb24gdGludCgkY29sb3IsICRwZXJjZW50KSB7XG4gIEByZXR1cm4gbWl4KCNmZmYsICRjb2xvciwgJHBlcmNlbnQpO1xufVxuIiwiLy8gUmV0dXJuIHZlbmRvci1wcmVmaXhlZCBwcm9wZXJ0eSBuYW1lcyBpZiBhcHByb3ByaWF0ZVxuLy8gRXhhbXBsZTogdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygodHJhbnNmb3JtLCBjb2xvciwgYmFja2dyb3VuZCksIG1veikgLT4gLW1vei10cmFuc2Zvcm0sIGNvbG9yLCBiYWNrZ3JvdW5kXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG5AZnVuY3Rpb24gdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygkcHJvcHMsICR2ZW5kb3I6IGZhbHNlKSB7XG4gICRuZXctcHJvcHM6ICgpO1xuXG4gIEBlYWNoICRwcm9wIGluICRwcm9wcyB7XG4gICAgJG5ldy1wcm9wczogYXBwZW5kKCRuZXctcHJvcHMsIHRyYW5zaXRpb24tcHJvcGVydHktbmFtZSgkcHJvcCwgJHZlbmRvciksIGNvbW1hKTtcbiAgfVxuXG4gIEByZXR1cm4gJG5ldy1wcm9wcztcbn1cblxuQGZ1bmN0aW9uIHRyYW5zaXRpb24tcHJvcGVydHktbmFtZSgkcHJvcCwgJHZlbmRvcjogZmFsc2UpIHtcbiAgLy8gcHV0IG90aGVyIHByb3BlcnRpZXMgdGhhdCBuZWVkIHRvIGJlIHByZWZpeGVkIGhlcmUgYXN3ZWxsXG4gIEBpZiAkdmVuZG9yIGFuZCAkcHJvcCA9PSB0cmFuc2Zvcm0ge1xuICAgIEByZXR1cm4gdW5xdW90ZSgnLScrJHZlbmRvcisnLScrJHByb3ApO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuICRwcm9wO1xuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBDb252ZXJ0cyBzaG9ydGhhbmQgdG8gdGhlIDQtdmFsdWUgc3ludGF4LlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkc2hvcnRoYW5kXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgbWFyZ2luOiB1bnBhY2soMWVtIDJlbSk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIG1hcmdpbjogMWVtIDJlbSAxZW0gMmVtO1xuLy8vICAgfVxuXG5AZnVuY3Rpb24gdW5wYWNrKCRzaG9ydGhhbmQpIHtcbiAgQGlmIGxlbmd0aCgkc2hvcnRoYW5kKSA9PSAxIHtcbiAgICBAcmV0dXJuIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAxKTtcbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHNob3J0aGFuZCkgPT0gMiB7XG4gICAgQHJldHVybiBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDIpIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMik7XG4gIH0gQGVsc2UgaWYgbGVuZ3RoKCRzaG9ydGhhbmQpID09IDMge1xuICAgIEByZXR1cm4gbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAyKSBudGgoJHNob3J0aGFuZCwgMykgbnRoKCRzaG9ydGhhbmQsIDIpO1xuICB9IEBlbHNlIHtcbiAgICBAcmV0dXJuICRzaG9ydGhhbmQ7XG4gIH1cbn1cbiIsIi8vIFNjYWxpbmcgVmFyaWFibGVzXG4kZ29sZGVuOiAgICAgICAgICAgMS42MTg7XG4kbWlub3Itc2Vjb25kOiAgICAgMS4wNjc7XG4kbWFqb3Itc2Vjb25kOiAgICAgMS4xMjU7XG4kbWlub3ItdGhpcmQ6ICAgICAgMS4yO1xuJG1ham9yLXRoaXJkOiAgICAgIDEuMjU7XG4kcGVyZmVjdC1mb3VydGg6ICAgMS4zMzM7XG4kYXVnbWVudGVkLWZvdXJ0aDogMS40MTQ7XG4kcGVyZmVjdC1maWZ0aDogICAgMS41O1xuJG1pbm9yLXNpeHRoOiAgICAgIDEuNjtcbiRtYWpvci1zaXh0aDogICAgICAxLjY2NztcbiRtaW5vci1zZXZlbnRoOiAgICAxLjc3ODtcbiRtYWpvci1zZXZlbnRoOiAgICAxLjg3NTtcbiRvY3RhdmU6ICAgICAgICAgICAyO1xuJG1ham9yLXRlbnRoOiAgICAgIDIuNTtcbiRtYWpvci1lbGV2ZW50aDogICAyLjY2NztcbiRtYWpvci10d2VsZnRoOiAgICAzO1xuJGRvdWJsZS1vY3RhdmU6ICAgIDQ7XG5cbiRtb2R1bGFyLXNjYWxlLXJhdGlvOiAkcGVyZmVjdC1mb3VydGggIWRlZmF1bHQ7XG4kbW9kdWxhci1zY2FsZS1iYXNlOiBlbSgkZW0tYmFzZSkgIWRlZmF1bHQ7XG5cbkBmdW5jdGlvbiBtb2R1bGFyLXNjYWxlKCRpbmNyZW1lbnQsICR2YWx1ZTogJG1vZHVsYXItc2NhbGUtYmFzZSwgJHJhdGlvOiAkbW9kdWxhci1zY2FsZS1yYXRpbykge1xuICAkdjE6IG50aCgkdmFsdWUsIDEpO1xuICAkdjI6IG50aCgkdmFsdWUsIGxlbmd0aCgkdmFsdWUpKTtcbiAgJHZhbHVlOiAkdjE7XG5cbiAgLy8gc2NhbGUgJHYyIHRvIGp1c3QgYWJvdmUgJHYxXG4gIEB3aGlsZSAkdjIgPiAkdjEge1xuICAgICR2MjogKCR2MiAvICRyYXRpbyk7IC8vIHdpbGwgYmUgb2ZmLWJ5LTFcbiAgfVxuICBAd2hpbGUgJHYyIDwgJHYxIHtcbiAgICAkdjI6ICgkdjIgKiAkcmF0aW8pOyAvLyB3aWxsIGZpeCBvZmYtYnktMVxuICB9XG5cbiAgLy8gY2hlY2sgQUZURVIgc2NhbGluZyAkdjIgdG8gcHJldmVudCBkb3VibGUtY291bnRpbmcgY29ybmVyLWNhc2VcbiAgJGRvdWJsZS1zdHJhbmRlZDogJHYyID4gJHYxO1xuXG4gIEBpZiAkaW5jcmVtZW50ID4gMCB7XG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkaW5jcmVtZW50IHtcbiAgICAgIEBpZiAkZG91YmxlLXN0cmFuZGVkIGFuZCAoJHYxICogJHJhdGlvKSA+ICR2MiB7XG4gICAgICAgICR2YWx1ZTogJHYyO1xuICAgICAgICAkdjI6ICgkdjIgKiAkcmF0aW8pO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgICR2MTogKCR2MSAqICRyYXRpbyk7XG4gICAgICAgICR2YWx1ZTogJHYxO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpZiAkaW5jcmVtZW50IDwgMCB7XG4gICAgLy8gYWRqdXN0ICR2MiB0byBqdXN0IGJlbG93ICR2MVxuICAgIEBpZiAkZG91YmxlLXN0cmFuZGVkIHtcbiAgICAgICR2MjogKCR2MiAvICRyYXRpbyk7XG4gICAgfVxuXG4gICAgQGZvciAkaSBmcm9tICRpbmNyZW1lbnQgdGhyb3VnaCAtMSB7XG4gICAgICBAaWYgJGRvdWJsZS1zdHJhbmRlZCBhbmQgKCR2MSAvICRyYXRpbykgPCAkdjIge1xuICAgICAgICAkdmFsdWU6ICR2MjtcbiAgICAgICAgJHYyOiAoJHYyIC8gJHJhdGlvKTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICAkdjE6ICgkdjEgLyAkcmF0aW8pO1xuICAgICAgICAkdmFsdWU6ICR2MTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZTtcbn1cbiIsIi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbi8vIEhlbHBlciBmdW5jdGlvbiBmb3Igc3RyLXRvLW51bSBmbi5cbi8vIFNvdXJjZTogaHR0cDovL3Nhc3NtZWlzdGVyLmNvbS9naXN0Lzk2NDc0MDhcbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbkBmdW5jdGlvbiBfY29udmVydC11bml0cygkbnVtYmVyLCAkdW5pdCkge1xuICAkc3RyaW5nczogXCJweFwiLCBcImNtXCIsIFwibW1cIiwgXCIlXCIsIFwiY2hcIiwgXCJwaWNhXCIsIFwiaW5cIiwgXCJlbVwiLCBcInJlbVwiLCBcInB0XCIsIFwicGNcIiwgXCJleFwiLCBcInZ3XCIsIFwidmhcIiwgXCJ2bWluXCIsIFwidm1heFwiLCBcImRlZ1wiLCBcInJhZFwiLCBcImdyYWRcIiwgXCJ0dXJuXCI7XG4gICR1bml0czogICAxcHgsIDFjbSwgMW1tLCAxJSwgMWNoLCAxcGljYSwgMWluLCAxZW0sIDFyZW0sIDFwdCwgMXBjLCAxZXgsIDF2dywgMXZoLCAxdm1pbiwgMXZtYXgsIDFkZWcsIDFyYWQsIDFncmFkLCAxdHVybjtcbiAgJGluZGV4OiBpbmRleCgkc3RyaW5ncywgJHVuaXQpO1xuXG4gIEBpZiBub3QgJGluZGV4IHtcbiAgICBAd2FybiBcIlVua25vd24gdW5pdCBgI3skdW5pdH1gLlwiO1xuICAgIEByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBAaWYgdHlwZS1vZigkbnVtYmVyKSAhPSBcIm51bWJlclwiIHtcbiAgICBAd2FybiBcImAjeyRudW1iZXJ9IGlzIG5vdCBhIG51bWJlcmBcIjtcbiAgICBAcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgQHJldHVybiAkbnVtYmVyICogbnRoKCR1bml0cywgJGluZGV4KTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIERpcmVjdGlvbmFsLXByb3BlcnR5IG1peGlucyBhcmUgc2hvcnRoYW5kcyBmb3Igd3JpdGluZyBwcm9wZXJ0aWVzIGxpa2UgdGhlIGZvbGxvd2luZ1xuLy8vXG4vLy8gQGlnbm9yZSBZb3UgY2FuIGFsc28gdXNlIGBmYWxzZWAgaW5zdGVhZCBvZiBgbnVsbGAuXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICR2YWxzXG4vLy8gICBMaXN0IG9mIGRpcmVjdGlvbmFsIHZhbHVlc1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci1zdHlsZShkb3R0ZWQgbnVsbCk7XG4vLy8gICAgIEBpbmNsdWRlIG1hcmdpbihudWxsIDAgMTBweCk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IGRvdHRlZDtcbi8vLyAgICAgYm9yZGVyLXRvcC1zdHlsZTogZG90dGVkO1xuLy8vICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuLy8vICAgICBtYXJnaW4tbGVmdDogMDtcbi8vLyAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBjb250YWlucy1mYWxzeVxuLy8vXG4vLy8gQHJldHVybiB7TGlzdH1cblxuQGZ1bmN0aW9uIGNvbGxhcHNlLWRpcmVjdGlvbmFscygkdmFscykge1xuICAkb3V0cHV0OiBudWxsO1xuXG4gICRhOiBudGgoJHZhbHMsIDEpO1xuICAkYjogaWYobGVuZ3RoKCR2YWxzKSA8IDIsICRhLCBudGgoJHZhbHMsIDIpKTtcbiAgJGM6IGlmKGxlbmd0aCgkdmFscykgPCAzLCAkYSwgbnRoKCR2YWxzLCAzKSk7XG4gICRkOiBpZihsZW5ndGgoJHZhbHMpIDwgMiwgJGEsIG50aCgkdmFscywgaWYobGVuZ3RoKCR2YWxzKSA8IDQsIDIsIDQpKSk7XG5cbiAgQGlmICRhID09IDAgeyAkYTogMDsgfVxuICBAaWYgJGIgPT0gMCB7ICRiOiAwOyB9XG4gIEBpZiAkYyA9PSAwIHsgJGM6IDA7IH1cbiAgQGlmICRkID09IDAgeyAkZDogMDsgfVxuXG4gIEBpZiAkYSA9PSAkYiBhbmQgJGEgPT0gJGMgYW5kICRhID09ICRkIHsgJG91dHB1dDogJGE7ICAgICAgICAgIH1cbiAgQGVsc2UgaWYgJGEgPT0gJGMgYW5kICRiID09ICRkICAgICAgICAgeyAkb3V0cHV0OiAkYSAkYjsgICAgICAgfVxuICBAZWxzZSBpZiAkYiA9PSAkZCAgICAgICAgICAgICAgICAgICAgICB7ICRvdXRwdXQ6ICRhICRiICRjOyAgICB9XG4gIEBlbHNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgJG91dHB1dDogJGEgJGIgJGMgJGQ7IH1cblxuICBAcmV0dXJuICRvdXRwdXQ7XG59XG5cbi8vLyBPdXRwdXQgZGlyZWN0aW9uYWwgcHJvcGVydGllcywgZm9yIGluc3RhbmNlIGBtYXJnaW5gLlxuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHByZVxuLy8vICAgUHJlZml4IHRvIHVzZVxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc3VmXG4vLy8gICBTdWZmaXggdG8gdXNlXG4vLy8gQHBhcmFtIHtMaXN0fSAkdmFsc1xuLy8vICAgTGlzdCBvZiB2YWx1ZXNcbi8vL1xuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gY29sbGFwc2UtZGlyZWN0aW9uYWxzXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBjb250YWlucy1mYWxzeVxuXG5AbWl4aW4gZGlyZWN0aW9uYWwtcHJvcGVydHkoJHByZSwgJHN1ZiwgJHZhbHMpIHtcbiAgLy8gUHJvcGVydHkgTmFtZXNcbiAgJHRvcDogICAgJHByZSArIFwiLXRvcFwiICAgICsgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcbiAgJGJvdHRvbTogJHByZSArIFwiLWJvdHRvbVwiICsgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcbiAgJGxlZnQ6ICAgJHByZSArIFwiLWxlZnRcIiAgICsgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcbiAgJHJpZ2h0OiAgJHByZSArIFwiLXJpZ2h0XCIgICsgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcbiAgJGFsbDogICAgJHByZSArICAgICAgICAgICAgIGlmKCRzdWYsIFwiLSN7JHN1Zn1cIiwgXCJcIik7XG5cbiAgJHZhbHM6IGNvbGxhcHNlLWRpcmVjdGlvbmFscygkdmFscyk7XG5cbiAgQGlmIGNvbnRhaW5zLWZhbHN5KCR2YWxzKSB7XG4gICAgQGlmIG50aCgkdmFscywgMSkgeyAjeyR0b3B9OiBudGgoJHZhbHMsIDEpOyB9XG5cbiAgICBAaWYgbGVuZ3RoKCR2YWxzKSA9PSAxIHtcbiAgICAgIEBpZiBudGgoJHZhbHMsIDEpIHsgI3skcmlnaHR9OiBudGgoJHZhbHMsIDEpOyB9XG4gICAgfSBAZWxzZSB7XG4gICAgICBAaWYgbnRoKCR2YWxzLCAyKSB7ICN7JHJpZ2h0fTogbnRoKCR2YWxzLCAyKTsgfVxuICAgIH1cblxuICAgIEBpZiBsZW5ndGgoJHZhbHMpID09IDIge1xuICAgICAgQGlmIG50aCgkdmFscywgMSkgeyAjeyRib3R0b219OiBudGgoJHZhbHMsIDEpOyB9XG4gICAgICBAaWYgbnRoKCR2YWxzLCAyKSB7ICN7JGxlZnR9OiAgIG50aCgkdmFscywgMik7IH1cbiAgICB9IEBlbHNlIGlmIGxlbmd0aCgkdmFscykgPT0gMyB7XG4gICAgICBAaWYgbnRoKCR2YWxzLCAzKSB7ICN7JGJvdHRvbX06IG50aCgkdmFscywgMyk7IH1cbiAgICAgIEBpZiBudGgoJHZhbHMsIDIpIHsgI3skbGVmdH06ICAgbnRoKCR2YWxzLCAyKTsgfVxuICAgIH0gQGVsc2UgaWYgbGVuZ3RoKCR2YWxzKSA9PSA0IHtcbiAgICAgIEBpZiBudGgoJHZhbHMsIDMpIHsgI3skYm90dG9tfTogbnRoKCR2YWxzLCAzKTsgfVxuICAgICAgQGlmIG50aCgkdmFscywgNCkgeyAjeyRsZWZ0fTogICBudGgoJHZhbHMsIDQpOyB9XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICAjeyRhbGx9OiAkdmFscztcbiAgfVxufVxuIiwiLy8gVXNlZCBmb3IgY3JlYXRpbmcgdGhlIHNvdXJjZSBzdHJpbmcgZm9yIGZvbnRzIHVzaW5nIEBmb250LWZhY2Vcbi8vIFJlZmVyZW5jZTogaHR0cDovL2dvby5nbC9SdTFiS1BcblxuQGZ1bmN0aW9uIGZvbnQtdXJsLXByZWZpeGVyKCRhc3NldC1waXBlbGluZSkge1xuICBAaWYgJGFzc2V0LXBpcGVsaW5lID09IHRydWUge1xuICAgIEByZXR1cm4gZm9udC11cmw7XG4gIH0gQGVsc2Uge1xuICAgIEByZXR1cm4gdXJsO1xuICB9XG59XG5cbkBmdW5jdGlvbiBmb250LXNvdXJjZS1kZWNsYXJhdGlvbihcbiAgJGZvbnQtZmFtaWx5LFxuICAkZmlsZS1wYXRoLFxuICAkYXNzZXQtcGlwZWxpbmUsXG4gICRmaWxlLWZvcm1hdHMsXG4gICRmb250LXVybCkge1xuXG4gICRzcmM6ICgpO1xuXG4gICRmb3JtYXRzLW1hcDogKFxuICAgIGVvdDogICBcIiN7JGZpbGUtcGF0aH0uZW90PyNpZWZpeFwiIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpLFxuICAgIHdvZmYyOiBcIiN7JGZpbGUtcGF0aH0ud29mZjJcIiBmb3JtYXQoXCJ3b2ZmMlwiKSxcbiAgICB3b2ZmOiAgXCIjeyRmaWxlLXBhdGh9LndvZmZcIiBmb3JtYXQoXCJ3b2ZmXCIpLFxuICAgIHR0ZjogICBcIiN7JGZpbGUtcGF0aH0udHRmXCIgZm9ybWF0KFwidHJ1ZXR5cGVcIiksXG4gICAgc3ZnOiAgIFwiI3skZmlsZS1wYXRofS5zdmcjI3skZm9udC1mYW1pbHl9XCIgZm9ybWF0KFwic3ZnXCIpXG4gICk7XG5cbiAgQGVhY2ggJGtleSwgJHZhbHVlcyBpbiAkZm9ybWF0cy1tYXAge1xuICAgIEBpZiBjb250YWlucygkZmlsZS1mb3JtYXRzLCAka2V5KSB7XG4gICAgICAkZmlsZS1wYXRoOiBudGgoJHZhbHVlcywgMSk7XG4gICAgICAkZm9udC1mb3JtYXQ6IG50aCgkdmFsdWVzLCAyKTtcblxuICAgICAgQGlmICRhc3NldC1waXBlbGluZSA9PSB0cnVlIHtcbiAgICAgICAgJHNyYzogYXBwZW5kKCRzcmMsIGZvbnQtdXJsKCRmaWxlLXBhdGgpICRmb250LWZvcm1hdCwgY29tbWEpO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgICRzcmM6IGFwcGVuZCgkc3JjLCB1cmwoJGZpbGUtcGF0aCkgJGZvbnQtZm9ybWF0LCBjb21tYSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkc3JjO1xufVxuIiwiQGZ1bmN0aW9uIF9ncmFkaWVudC1wb3NpdGlvbnMtcGFyc2VyKCRncmFkaWVudC10eXBlLCAkZ3JhZGllbnQtcG9zaXRpb25zKSB7XG4gIEBpZiAkZ3JhZGllbnQtcG9zaXRpb25zXG4gIGFuZCAoJGdyYWRpZW50LXR5cGUgPT0gbGluZWFyKVxuICBhbmQgKHR5cGUtb2YoJGdyYWRpZW50LXBvc2l0aW9ucykgIT0gY29sb3IpIHtcbiAgICAkZ3JhZGllbnQtcG9zaXRpb25zOiBfbGluZWFyLXBvc2l0aW9ucy1wYXJzZXIoJGdyYWRpZW50LXBvc2l0aW9ucyk7XG4gIH1cbiAgQGVsc2UgaWYgJGdyYWRpZW50LXBvc2l0aW9uc1xuICBhbmQgKCRncmFkaWVudC10eXBlID09IHJhZGlhbClcbiAgYW5kICh0eXBlLW9mKCRncmFkaWVudC1wb3NpdGlvbnMpICE9IGNvbG9yKSB7XG4gICAgJGdyYWRpZW50LXBvc2l0aW9uczogX3JhZGlhbC1wb3NpdGlvbnMtcGFyc2VyKCRncmFkaWVudC1wb3NpdGlvbnMpO1xuICB9XG4gIEByZXR1cm4gJGdyYWRpZW50LXBvc2l0aW9ucztcbn1cbiIsIi8vIFByaXZhdGUgZnVuY3Rpb24gZm9yIGxpbmVhci1ncmFkaWVudC1wYXJzZXJcbkBmdW5jdGlvbiBfbGluZWFyLWFuZ2xlLXBhcnNlcigkaW1hZ2UsICRmaXJzdC12YWwsICRwcmVmaXgsICRzdWZmaXgpIHtcbiAgJG9mZnNldDogbnVsbDtcbiAgJHVuaXQtc2hvcnQ6ICBzdHItc2xpY2UoJGZpcnN0LXZhbCwgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSAtIDIsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkpO1xuICAkdW5pdC1sb25nOiAgIHN0ci1zbGljZSgkZmlyc3QtdmFsLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpIC0gMywgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSk7XG5cbiAgQGlmICgkdW5pdC1sb25nID09IFwiZ3JhZFwiKSBvclxuICAgICAgKCR1bml0LWxvbmcgPT0gXCJ0dXJuXCIpIHtcbiAgICAkb2Zmc2V0OiBpZigkdW5pdC1sb25nID09IFwiZ3JhZFwiLCAtMTAwZ3JhZCAqIDMsIC0wLjc1dHVybik7XG4gIH1cblxuICBAZWxzZSBpZiAoJHVuaXQtc2hvcnQgPT0gXCJkZWdcIikgb3JcbiAgICAgICAgICAgKCR1bml0LXNob3J0ID09IFwicmFkXCIpIHtcbiAgICAkb2Zmc2V0OiBpZigkdW5pdC1zaG9ydCA9PSBcImRlZ1wiLCAtOTAgKiAzLCAxLjZyYWQpO1xuICB9XG5cbiAgQGlmICRvZmZzZXQge1xuICAgICRudW06IF9zdHItdG8tbnVtKCRmaXJzdC12YWwpO1xuXG4gICAgQHJldHVybiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJHByZWZpeCArICgkb2Zmc2V0IC0gJG51bSkgKyAkc3VmZml4LFxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXG4gICAgKTtcbiAgfVxufVxuIiwiQGZ1bmN0aW9uIF9saW5lYXItZ3JhZGllbnQtcGFyc2VyKCRpbWFnZSkge1xuICAkaW1hZ2U6IHVucXVvdGUoJGltYWdlKTtcbiAgJGdyYWRpZW50czogKCk7XG4gICRzdGFydDogc3RyLWluZGV4KCRpbWFnZSwgXCIoXCIpO1xuICAkZW5kOiBzdHItaW5kZXgoJGltYWdlLCBcIixcIik7XG4gICRmaXJzdC12YWw6IHN0ci1zbGljZSgkaW1hZ2UsICRzdGFydCArIDEsICRlbmQgLSAxKTtcblxuICAkcHJlZml4OiBzdHItc2xpY2UoJGltYWdlLCAxLCAkc3RhcnQpO1xuICAkc3VmZml4OiBzdHItc2xpY2UoJGltYWdlLCAkZW5kLCBzdHItbGVuZ3RoKCRpbWFnZSkpO1xuXG4gICRoYXMtbXVsdGlwbGUtdmFsczogc3RyLWluZGV4KCRmaXJzdC12YWwsIFwiIFwiKTtcbiAgJGhhcy1zaW5nbGUtcG9zaXRpb246IHVucXVvdGUoX3Bvc2l0aW9uLWZsaXBwZXIoJGZpcnN0LXZhbCkgKyBcIlwiKTtcbiAgJGhhcy1hbmdsZTogaXMtbnVtYmVyKHN0ci1zbGljZSgkZmlyc3QtdmFsLCAxLCAxKSk7XG5cbiAgQGlmICRoYXMtbXVsdGlwbGUtdmFscyB7XG4gICAgJGdyYWRpZW50czogX2xpbmVhci1zaWRlLWNvcm5lci1wYXJzZXIoJGltYWdlLCAkZmlyc3QtdmFsLCAkcHJlZml4LCAkc3VmZml4LCAkaGFzLW11bHRpcGxlLXZhbHMpO1xuICB9XG5cbiAgQGVsc2UgaWYgJGhhcy1zaW5nbGUtcG9zaXRpb24gIT0gXCJcIiB7XG4gICAgJHBvczogdW5xdW90ZSgkaGFzLXNpbmdsZS1wb3NpdGlvbiArIFwiXCIpO1xuXG4gICAgJGdyYWRpZW50czogKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRpbWFnZSxcbiAgICAgIHNwZWMtaW1hZ2U6ICRwcmVmaXggKyBcInRvIFwiICsgJHBvcyArICRzdWZmaXhcbiAgICApO1xuICB9XG5cbiAgQGVsc2UgaWYgJGhhcy1hbmdsZSB7XG4gICAgLy8gUm90YXRlIGRlZ3JlZSBmb3Igd2Via2l0XG4gICAgJGdyYWRpZW50czogX2xpbmVhci1hbmdsZS1wYXJzZXIoJGltYWdlLCAkZmlyc3QtdmFsLCAkcHJlZml4LCAkc3VmZml4KTtcbiAgfVxuXG4gIEBlbHNlIHtcbiAgICAkZ3JhZGllbnRzOiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJGltYWdlLFxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXG4gICAgKTtcbiAgfVxuXG4gIEByZXR1cm4gJGdyYWRpZW50cztcbn1cbiIsIkBmdW5jdGlvbiBfbGluZWFyLXBvc2l0aW9ucy1wYXJzZXIoJHBvcykge1xuICAkdHlwZTogdHlwZS1vZihudGgoJHBvcywgMSkpO1xuICAkc3BlYzogbnVsbDtcbiAgJGRlZ3JlZTogbnVsbDtcbiAgJHNpZGU6IG51bGw7XG4gICRjb3JuZXI6IG51bGw7XG4gICRsZW5ndGg6IGxlbmd0aCgkcG9zKTtcbiAgLy8gUGFyc2UgU2lkZSBhbmQgY29ybmVyIHBvc2l0aW9uc1xuICBAaWYgKCRsZW5ndGggPiAxKSB7XG4gICAgQGlmIG50aCgkcG9zLCAxKSA9PSBcInRvXCIgeyAvLyBOZXdlciBzeW50YXhcbiAgICAgICRzaWRlOiBudGgoJHBvcywgMik7XG5cbiAgICAgIEBpZiAkbGVuZ3RoID09IDIgeyAvLyBlZy4gdG8gdG9wXG4gICAgICAgIC8vIFN3YXAgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5XG4gICAgICAgICRkZWdyZWU6IF9wb3NpdGlvbi1mbGlwcGVyKG50aCgkcG9zLCAyKSk7XG4gICAgICB9XG4gICAgICBAZWxzZSBpZiAkbGVuZ3RoID09IDMgeyAvLyBlZy4gdG8gdG9wIGxlZnRcbiAgICAgICAgJGNvcm5lcjogbnRoKCRwb3MsIDMpO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSBpZiAkbGVuZ3RoID09IDIgeyAvLyBPbGRlciBzeW50YXggKFwidG9wIGxlZnRcIilcbiAgICAgICRzaWRlOiBfcG9zaXRpb24tZmxpcHBlcihudGgoJHBvcywgMSkpO1xuICAgICAgJGNvcm5lcjogX3Bvc2l0aW9uLWZsaXBwZXIobnRoKCRwb3MsIDIpKTtcbiAgICB9XG5cbiAgICBAaWYgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwibGVmdCB0b3BcIikgb3IgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwidG9wIGxlZnRcIikge1xuICAgICAgJGRlZ3JlZTogX3Bvc2l0aW9uLWZsaXBwZXIoI3skc2lkZX0pIF9wb3NpdGlvbi1mbGlwcGVyKCN7JGNvcm5lcn0pO1xuICAgIH1cbiAgICBAZWxzZSBpZiAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJyaWdodCB0b3BcIikgb3IgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwidG9wIHJpZ2h0XCIpIHtcbiAgICAgICRkZWdyZWU6IF9wb3NpdGlvbi1mbGlwcGVyKCN7JHNpZGV9KSBfcG9zaXRpb24tZmxpcHBlcigjeyRjb3JuZXJ9KTtcbiAgICB9XG4gICAgQGVsc2UgaWYgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwicmlnaHQgYm90dG9tXCIpIG9yIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcImJvdHRvbSByaWdodFwiKSB7XG4gICAgICAkZGVncmVlOiBfcG9zaXRpb24tZmxpcHBlcigjeyRzaWRlfSkgX3Bvc2l0aW9uLWZsaXBwZXIoI3skY29ybmVyfSk7XG4gICAgfVxuICAgIEBlbHNlIGlmIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcImxlZnQgYm90dG9tXCIpIG9yIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcImJvdHRvbSBsZWZ0XCIpIHtcbiAgICAgICRkZWdyZWU6IF9wb3NpdGlvbi1mbGlwcGVyKCN7JHNpZGV9KSBfcG9zaXRpb24tZmxpcHBlcigjeyRjb3JuZXJ9KTtcbiAgICB9XG4gICAgJHNwZWM6IHRvICRzaWRlICRjb3JuZXI7XG4gIH1cbiAgQGVsc2UgaWYgJGxlbmd0aCA9PSAxIHtcbiAgICAvLyBTd2FwIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eVxuICAgIEBpZiAkdHlwZSA9PSBzdHJpbmcge1xuICAgICAgJGRlZ3JlZTogJHBvcztcbiAgICAgICRzcGVjOiB0byBfcG9zaXRpb24tZmxpcHBlcigkcG9zKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJGRlZ3JlZTogLTI3MCAtICRwb3M7IC8vcm90YXRlIHRoZSBncmFkaWVudCBvcHBvc2l0ZSBmcm9tIHNwZWNcbiAgICAgICRzcGVjOiAkcG9zO1xuICAgIH1cbiAgfVxuICAkZGVncmVlOiB1bnF1b3RlKCRkZWdyZWUgKyBcIixcIik7XG4gICRzcGVjOiAgIHVucXVvdGUoJHNwZWMgKyBcIixcIik7XG4gIEByZXR1cm4gJGRlZ3JlZSAkc3BlYztcbn1cblxuQGZ1bmN0aW9uIF9wb3NpdGlvbi1mbGlwcGVyKCRwb3MpIHtcbiAgQHJldHVybiBpZigkcG9zID09IGxlZnQsIHJpZ2h0LCBudWxsKVxuICAgICAgICAgaWYoJHBvcyA9PSByaWdodCwgbGVmdCwgbnVsbClcbiAgICAgICAgIGlmKCRwb3MgPT0gdG9wLCBib3R0b20sIG51bGwpXG4gICAgICAgICBpZigkcG9zID09IGJvdHRvbSwgdG9wLCBudWxsKTtcbn1cbiIsIi8vIFByaXZhdGUgZnVuY3Rpb24gZm9yIGxpbmVhci1ncmFkaWVudC1wYXJzZXJcbkBmdW5jdGlvbiBfbGluZWFyLXNpZGUtY29ybmVyLXBhcnNlcigkaW1hZ2UsICRmaXJzdC12YWwsICRwcmVmaXgsICRzdWZmaXgsICRoYXMtbXVsdGlwbGUtdmFscykge1xuICAkdmFsLTE6IHN0ci1zbGljZSgkZmlyc3QtdmFsLCAxLCAkaGFzLW11bHRpcGxlLXZhbHMgLSAxKTtcbiAgJHZhbC0yOiBzdHItc2xpY2UoJGZpcnN0LXZhbCwgJGhhcy1tdWx0aXBsZS12YWxzICsgMSwgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSk7XG4gICR2YWwtMzogbnVsbDtcbiAgJGhhcy12YWwtMzogc3RyLWluZGV4KCR2YWwtMiwgXCIgXCIpO1xuXG4gIEBpZiAkaGFzLXZhbC0zIHtcbiAgICAkdmFsLTM6IHN0ci1zbGljZSgkdmFsLTIsICRoYXMtdmFsLTMgKyAxLCBzdHItbGVuZ3RoKCR2YWwtMikpO1xuICAgICR2YWwtMjogc3RyLXNsaWNlKCR2YWwtMiwgMSwgJGhhcy12YWwtMyAtIDEpO1xuICB9XG5cbiAgJHBvczogX3Bvc2l0aW9uLWZsaXBwZXIoJHZhbC0xKSBfcG9zaXRpb24tZmxpcHBlcigkdmFsLTIpIF9wb3NpdGlvbi1mbGlwcGVyKCR2YWwtMyk7XG4gICRwb3M6IHVucXVvdGUoJHBvcyArIFwiXCIpO1xuXG4gIC8vIFVzZSBvbGQgc3BlYyBmb3Igd2Via2l0XG4gIEBpZiAkdmFsLTEgPT0gXCJ0b1wiIHtcbiAgICBAcmV0dXJuIChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkcHJlZml4ICsgJHBvcyArICRzdWZmaXgsXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcbiAgICApO1xuICB9XG5cbiAgLy8gQnJpbmcgdGhlIGNvZGUgdXAgdG8gc3BlY1xuICBAZWxzZSB7XG4gICAgQHJldHVybiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJGltYWdlLFxuICAgICAgc3BlYy1pbWFnZTogJHByZWZpeCArIFwidG8gXCIgKyAkcG9zICsgJHN1ZmZpeFxuICAgICk7XG4gIH1cbn1cbiIsIkBmdW5jdGlvbiBfcmFkaWFsLWFyZy1wYXJzZXIoJGcxLCAkZzIsICRwb3MsICRzaGFwZS1zaXplKSB7XG4gIEBlYWNoICR2YWx1ZSBpbiAkZzEsICRnMiB7XG4gICAgJGZpcnN0LXZhbDogbnRoKCR2YWx1ZSwgMSk7XG4gICAgJHBvcy10eXBlOiAgdHlwZS1vZigkZmlyc3QtdmFsKTtcbiAgICAkc3BlYy1hdC1pbmRleDogbnVsbDtcblxuICAgIC8vIERldGVybWluZSBpZiBzcGVjIHdhcyBwYXNzZWQgdG8gbWl4aW5cbiAgICBAaWYgdHlwZS1vZigkdmFsdWUpID09IGxpc3Qge1xuICAgICAgJHNwZWMtYXQtaW5kZXg6IGlmKGluZGV4KCR2YWx1ZSwgYXQpLCBpbmRleCgkdmFsdWUsIGF0KSwgZmFsc2UpO1xuICAgIH1cbiAgICBAaWYgJHNwZWMtYXQtaW5kZXgge1xuICAgICAgQGlmICRzcGVjLWF0LWluZGV4ID4gMSB7XG4gICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggKCRzcGVjLWF0LWluZGV4IC0gMSkge1xuICAgICAgICAgICRzaGFwZS1zaXplOiAkc2hhcGUtc2l6ZSBudGgoJHZhbHVlLCAkaSk7XG4gICAgICAgIH1cbiAgICAgICAgQGZvciAkaSBmcm9tICgkc3BlYy1hdC1pbmRleCArIDEpIHRocm91Z2ggbGVuZ3RoKCR2YWx1ZSkge1xuICAgICAgICAgICRwb3M6ICRwb3MgbnRoKCR2YWx1ZSwgJGkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSBpZiAkc3BlYy1hdC1pbmRleCA9PSAxIHtcbiAgICAgICAgQGZvciAkaSBmcm9tICgkc3BlYy1hdC1pbmRleCArIDEpIHRocm91Z2ggbGVuZ3RoKCR2YWx1ZSkge1xuICAgICAgICAgICRwb3M6ICRwb3MgbnRoKCR2YWx1ZSwgJGkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAkZzE6IG51bGw7XG4gICAgfVxuXG4gICAgLy8gSWYgbm90IHNwZWMgY2FsY3VsYXRlIGNvcnJlY3QgdmFsdWVzXG4gICAgQGVsc2Uge1xuICAgICAgQGlmICgkcG9zLXR5cGUgIT0gY29sb3IpIG9yICgkZmlyc3QtdmFsICE9IFwidHJhbnNwYXJlbnRcIikge1xuICAgICAgICBAaWYgKCRwb3MtdHlwZSA9PSBudW1iZXIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY2VudGVyXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwidG9wXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwicmlnaHRcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJib3R0b21cIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJsZWZ0XCIpIHtcblxuICAgICAgICAgICRwb3M6ICR2YWx1ZTtcblxuICAgICAgICAgIEBpZiAkcG9zID09ICRnMSB7XG4gICAgICAgICAgICAkZzE6IG51bGw7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVsc2UgaWZcbiAgICAgICAgICAgKCRmaXJzdC12YWwgPT0gXCJlbGxpcHNlXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY2lyY2xlXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY2xvc2VzdC1zaWRlXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY2xvc2VzdC1jb3JuZXJcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJmYXJ0aGVzdC1zaWRlXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiZmFydGhlc3QtY29ybmVyXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY29udGFpblwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNvdmVyXCIpIHtcblxuICAgICAgICAgICRzaGFwZS1zaXplOiAkdmFsdWU7XG5cbiAgICAgICAgICBAaWYgJHZhbHVlID09ICRnMSB7XG4gICAgICAgICAgICAkZzE6IG51bGw7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGVsc2UgaWYgJHZhbHVlID09ICRnMiB7XG4gICAgICAgICAgICAkZzI6IG51bGw7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEByZXR1cm4gJGcxLCAkZzIsICRwb3MsICRzaGFwZS1zaXplO1xufVxuIiwiQGZ1bmN0aW9uIF9yYWRpYWwtcG9zaXRpb25zLXBhcnNlcigkZ3JhZGllbnQtcG9zKSB7XG4gICRzaGFwZS1zaXplOiBudGgoJGdyYWRpZW50LXBvcywgMSk7XG4gICRwb3M6ICAgICAgICBudGgoJGdyYWRpZW50LXBvcywgMik7XG4gICRzaGFwZS1zaXplLXNwZWM6IF9zaGFwZS1zaXplLXN0cmlwcGVyKCRzaGFwZS1zaXplKTtcblxuICAkcHJlLXNwZWM6IHVucXVvdGUoaWYoJHBvcywgXCIjeyRwb3N9LCBcIiwgbnVsbCkpXG4gICAgICAgICAgICAgdW5xdW90ZShpZigkc2hhcGUtc2l6ZSwgXCIjeyRzaGFwZS1zaXplfSxcIiwgbnVsbCkpO1xuICAkcG9zLXNwZWM6IGlmKCRwb3MsIFwiYXQgI3skcG9zfVwiLCBudWxsKTtcblxuICAkc3BlYzogXCIjeyRzaGFwZS1zaXplLXNwZWN9ICN7JHBvcy1zcGVjfVwiO1xuXG4gIC8vIEFkZCBjb21tYVxuICBAaWYgKCRzcGVjICE9IFwiICBcIikge1xuICAgICRzcGVjOiBcIiN7JHNwZWN9LFwiO1xuICB9XG5cbiAgQHJldHVybiAkcHJlLXNwZWMgJHNwZWM7XG59XG4iLCJAZnVuY3Rpb24gX3JhZGlhbC1ncmFkaWVudC1wYXJzZXIoJGltYWdlKSB7XG4gICRpbWFnZTogdW5xdW90ZSgkaW1hZ2UpO1xuICAkZ3JhZGllbnRzOiAoKTtcbiAgJHN0YXJ0OiBzdHItaW5kZXgoJGltYWdlLCBcIihcIik7XG4gICRlbmQ6IHN0ci1pbmRleCgkaW1hZ2UsIFwiLFwiKTtcbiAgJGZpcnN0LXZhbDogc3RyLXNsaWNlKCRpbWFnZSwgJHN0YXJ0ICsgMSwgJGVuZCAtIDEpO1xuXG4gICRwcmVmaXg6IHN0ci1zbGljZSgkaW1hZ2UsIDEsICRzdGFydCk7XG4gICRzdWZmaXg6IHN0ci1zbGljZSgkaW1hZ2UsICRlbmQsIHN0ci1sZW5ndGgoJGltYWdlKSk7XG5cbiAgJGlzLXNwZWMtc3ludGF4OiBzdHItaW5kZXgoJGZpcnN0LXZhbCwgXCJhdFwiKTtcblxuICBAaWYgJGlzLXNwZWMtc3ludGF4IGFuZCAkaXMtc3BlYy1zeW50YXggPiAxIHtcbiAgICAka2V5d29yZDogc3RyLXNsaWNlKCRmaXJzdC12YWwsIDEsICRpcy1zcGVjLXN5bnRheCAtIDIpO1xuICAgICRwb3M6IHN0ci1zbGljZSgkZmlyc3QtdmFsLCAkaXMtc3BlYy1zeW50YXggKyAzLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpKTtcbiAgICAkcG9zOiBhcHBlbmQoJHBvcywgJGtleXdvcmQsIGNvbW1hKTtcblxuICAgICRncmFkaWVudHM6IChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkcHJlZml4ICsgJHBvcyArICRzdWZmaXgsXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcbiAgICApO1xuICB9XG5cbiAgQGVsc2UgaWYgJGlzLXNwZWMtc3ludGF4ID09IDEge1xuICAgICRwb3M6IHN0ci1zbGljZSgkZmlyc3QtdmFsLCAkaXMtc3BlYy1zeW50YXggKyAzLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpKTtcblxuICAgICRncmFkaWVudHM6IChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkcHJlZml4ICsgJHBvcyArICRzdWZmaXgsXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcbiAgICApO1xuICB9XG5cbiAgQGVsc2UgaWYgc3RyLWluZGV4KCRpbWFnZSwgXCJjb3ZlclwiKSBvciBzdHItaW5kZXgoJGltYWdlLCBcImNvbnRhaW5cIikge1xuICAgIEB3YXJuIFwiUmFkaWFsLWdyYWRpZW50IG5lZWRzIHRvIGJlIHVwZGF0ZWQgdG8gY29uZm9ybSB0byBsYXRlc3Qgc3BlYy5cIjtcblxuICAgICRncmFkaWVudHM6IChcbiAgICAgIHdlYmtpdC1pbWFnZTogbnVsbCxcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxuICAgICk7XG4gIH1cblxuICBAZWxzZSB7XG4gICAgJGdyYWRpZW50czogKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRpbWFnZSxcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxuICAgICk7XG4gIH1cblxuICBAcmV0dXJuICRncmFkaWVudHM7XG59XG4iLCIvLyBVc2VyIGZvciBsaW5lYXIgYW5kIHJhZGlhbCBncmFkaWVudHMgd2l0aGluIGJhY2tncm91bmQtaW1hZ2Ugb3IgYm9yZGVyLWltYWdlIHByb3BlcnRpZXNcblxuQGZ1bmN0aW9uIF9yZW5kZXItZ3JhZGllbnRzKCRncmFkaWVudC1wb3NpdGlvbnMsICRncmFkaWVudHMsICRncmFkaWVudC10eXBlLCAkdmVuZG9yOiBmYWxzZSkge1xuICAkcHJlLXNwZWM6IG51bGw7XG4gICRzcGVjOiBudWxsO1xuICAkdmVuZG9yLWdyYWRpZW50czogbnVsbDtcbiAgQGlmICRncmFkaWVudC10eXBlID09IGxpbmVhciB7XG4gICAgQGlmICRncmFkaWVudC1wb3NpdGlvbnMge1xuICAgICAgJHByZS1zcGVjOiBudGgoJGdyYWRpZW50LXBvc2l0aW9ucywgMSk7XG4gICAgICAkc3BlYzogICAgIG50aCgkZ3JhZGllbnQtcG9zaXRpb25zLCAyKTtcbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gcmFkaWFsIHtcbiAgICAkcHJlLXNwZWM6IG50aCgkZ3JhZGllbnQtcG9zaXRpb25zLCAxKTtcbiAgICAkc3BlYzogICAgIG50aCgkZ3JhZGllbnQtcG9zaXRpb25zLCAyKTtcbiAgfVxuXG4gIEBpZiAkdmVuZG9yIHtcbiAgICAkdmVuZG9yLWdyYWRpZW50czogLSN7JHZlbmRvcn0tI3skZ3JhZGllbnQtdHlwZX0tZ3JhZGllbnQoI3skcHJlLXNwZWN9ICRncmFkaWVudHMpO1xuICB9XG4gIEBlbHNlIGlmICR2ZW5kb3IgPT0gZmFsc2Uge1xuICAgICR2ZW5kb3ItZ3JhZGllbnRzOiBcIiN7JGdyYWRpZW50LXR5cGV9LWdyYWRpZW50KCN7JHNwZWN9ICN7JGdyYWRpZW50c30pXCI7XG4gICAgJHZlbmRvci1ncmFkaWVudHM6IHVucXVvdGUoJHZlbmRvci1ncmFkaWVudHMpO1xuICB9XG4gIEByZXR1cm4gJHZlbmRvci1ncmFkaWVudHM7XG59XG4iLCJAZnVuY3Rpb24gX3NoYXBlLXNpemUtc3RyaXBwZXIoJHNoYXBlLXNpemUpIHtcbiAgJHNoYXBlLXNpemUtc3BlYzogbnVsbDtcbiAgQGVhY2ggJHZhbHVlIGluICRzaGFwZS1zaXplIHtcbiAgICBAaWYgKCR2YWx1ZSA9PSBcImNvdmVyXCIpIG9yICgkdmFsdWUgPT0gXCJjb250YWluXCIpIHtcbiAgICAgICR2YWx1ZTogbnVsbDtcbiAgICB9XG4gICAgJHNoYXBlLXNpemUtc3BlYzogXCIjeyRzaGFwZS1zaXplLXNwZWN9ICN7JHZhbHVlfVwiO1xuICB9XG4gIEByZXR1cm4gJHNoYXBlLXNpemUtc3BlYztcbn1cbiIsIi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbi8vIEhlbHBlciBmdW5jdGlvbiBmb3IgbGluZWFyL3JhZGlhbC1ncmFkaWVudC1wYXJzZXJzLlxuLy8gU291cmNlOiBodHRwOi8vc2Fzc21laXN0ZXIuY29tL2dpc3QvOTY0NzQwOFxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuQGZ1bmN0aW9uIF9zdHItdG8tbnVtKCRzdHJpbmcpIHtcbiAgLy8gTWF0cmljZXNcbiAgJHN0cmluZ3M6IFwiMFwiIFwiMVwiIFwiMlwiIFwiM1wiIFwiNFwiIFwiNVwiIFwiNlwiIFwiN1wiIFwiOFwiIFwiOVwiO1xuICAkbnVtYmVyczogIDAgICAxICAgMiAgIDMgICA0ICAgNSAgIDYgICA3ICAgOCAgIDk7XG5cbiAgLy8gUmVzdWx0XG4gICRyZXN1bHQ6IDA7XG4gICRkaXZpZGVyOiAwO1xuICAkbWludXM6IGZhbHNlO1xuXG4gIC8vIExvb3BpbmcgdGhyb3VnaCBhbGwgY2hhcmFjdGVyc1xuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIHN0ci1sZW5ndGgoJHN0cmluZykge1xuICAgICRjaGFyYWN0ZXI6IHN0ci1zbGljZSgkc3RyaW5nLCAkaSwgJGkpO1xuICAgICRpbmRleDogaW5kZXgoJHN0cmluZ3MsICRjaGFyYWN0ZXIpO1xuXG4gICAgQGlmICRjaGFyYWN0ZXIgPT0gXCItXCIge1xuICAgICAgJG1pbnVzOiB0cnVlO1xuICAgIH1cblxuICAgIEBlbHNlIGlmICRjaGFyYWN0ZXIgPT0gXCIuXCIge1xuICAgICAgJGRpdmlkZXI6IDE7XG4gICAgfVxuXG4gICAgQGVsc2Uge1xuICAgICAgQGlmIG5vdCAkaW5kZXgge1xuICAgICAgICAkcmVzdWx0OiBpZigkbWludXMsICRyZXN1bHQgKiAtMSwgJHJlc3VsdCk7XG4gICAgICAgIEByZXR1cm4gX2NvbnZlcnQtdW5pdHMoJHJlc3VsdCwgc3RyLXNsaWNlKCRzdHJpbmcsICRpKSk7XG4gICAgICB9XG5cbiAgICAgICRudW1iZXI6IG50aCgkbnVtYmVycywgJGluZGV4KTtcblxuICAgICAgQGlmICRkaXZpZGVyID09IDAge1xuICAgICAgICAkcmVzdWx0OiAkcmVzdWx0ICogMTA7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgLy8gTW92ZSB0aGUgZGVjaW1hbCBkb3QgdG8gdGhlIGxlZnRcbiAgICAgICAgJGRpdmlkZXI6ICRkaXZpZGVyICogMTA7XG4gICAgICAgICRudW1iZXI6ICRudW1iZXIgLyAkZGl2aWRlcjtcbiAgICAgIH1cblxuICAgICAgJHJlc3VsdDogJHJlc3VsdCArICRudW1iZXI7XG4gICAgfVxuICB9XG4gIEByZXR1cm4gaWYoJG1pbnVzLCAkcmVzdWx0ICogLTEsICRyZXN1bHQpO1xufVxuIiwiLy8gaHR0cDovL3d3dy53My5vcmcvVFIvY3NzMy1hbmltYXRpb25zLyN0aGUtYW5pbWF0aW9uLW5hbWUtcHJvcGVydHktXG4vLyBFYWNoIG9mIHRoZXNlIG1peGlucyBzdXBwb3J0IGNvbW1hIHNlcGFyYXRlZCBsaXN0cyBvZiB2YWx1ZXMsIHdoaWNoIGFsbG93cyBkaWZmZXJlbnQgdHJhbnNpdGlvbnMgZm9yIGluZGl2aWR1YWwgcHJvcGVydGllcyB0byBiZSBkZXNjcmliZWQgaW4gYSBzaW5nbGUgc3R5bGUgcnVsZS4gRWFjaCB2YWx1ZSBpbiB0aGUgbGlzdCBjb3JyZXNwb25kcyB0byB0aGUgdmFsdWUgYXQgdGhhdCBzYW1lIHBvc2l0aW9uIGluIHRoZSBvdGhlciBwcm9wZXJ0aWVzLlxuXG5AbWl4aW4gYW5pbWF0aW9uKCRhbmltYXRpb25zLi4uKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbiwgJGFuaW1hdGlvbnMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBhbmltYXRpb24tbmFtZSgkbmFtZXMuLi4pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLW5hbWUsICRuYW1lcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi1kdXJhdGlvbigkdGltZXMuLi4pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWR1cmF0aW9uLCAkdGltZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uKCRtb3Rpb25zLi4uKSB7XG4gIC8vIGVhc2UgfCBsaW5lYXIgfCBlYXNlLWluIHwgZWFzZS1vdXQgfCBlYXNlLWluLW91dFxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uLCAkbW90aW9ucywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQoJHZhbHVlcy4uLikge1xuICAvLyBpbmZpbml0ZSB8IDxudW1iZXI+XG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQsICR2YWx1ZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBhbmltYXRpb24tZGlyZWN0aW9uKCRkaXJlY3Rpb25zLi4uKSB7XG4gIC8vIG5vcm1hbCB8IGFsdGVybmF0ZVxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tZGlyZWN0aW9uLCAkZGlyZWN0aW9ucywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi1wbGF5LXN0YXRlKCRzdGF0ZXMuLi4pIHtcbiAgLy8gcnVubmluZyB8IHBhdXNlZFxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tcGxheS1zdGF0ZSwgJHN0YXRlcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi1kZWxheSgkdGltZXMuLi4pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWRlbGF5LCAkdGltZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBhbmltYXRpb24tZmlsbC1tb2RlKCRtb2Rlcy4uLikge1xuICAvLyBub25lIHwgZm9yd2FyZHMgfCBiYWNrd2FyZHMgfCBib3RoXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1maWxsLW1vZGUsICRtb2Rlcywgd2Via2l0IG1veiBzcGVjKTtcbn1cbiIsIkBtaXhpbiBhcHBlYXJhbmNlKCR2YWx1ZSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihhcHBlYXJhbmNlLCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcbn1cbiIsIkBtaXhpbiBiYWNrZmFjZS12aXNpYmlsaXR5KCR2aXNpYmlsaXR5KSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJhY2tmYWNlLXZpc2liaWxpdHksICR2aXNpYmlsaXR5LCB3ZWJraXQgc3BlYyk7XG59XG4iLCIvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4vLyBCYWNrZ3JvdW5kIHByb3BlcnR5IGZvciBhZGRpbmcgbXVsdGlwbGUgYmFja2dyb3VuZHMgdXNpbmcgc2hvcnRoYW5kXG4vLyBub3RhdGlvbi5cbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cblxuQG1peGluIGJhY2tncm91bmQoJGJhY2tncm91bmRzLi4uKSB7XG4gICR3ZWJraXQtYmFja2dyb3VuZHM6ICgpO1xuICAkc3BlYy1iYWNrZ3JvdW5kczogKCk7XG5cbiAgQGVhY2ggJGJhY2tncm91bmQgaW4gJGJhY2tncm91bmRzIHtcbiAgICAkd2Via2l0LWJhY2tncm91bmQ6ICgpO1xuICAgICRzcGVjLWJhY2tncm91bmQ6ICgpO1xuICAgICRiYWNrZ3JvdW5kLXR5cGU6IHR5cGUtb2YoJGJhY2tncm91bmQpO1xuXG4gICAgQGlmICRiYWNrZ3JvdW5kLXR5cGUgPT0gc3RyaW5nIG9yICRiYWNrZ3JvdW5kLXR5cGUgPT0gbGlzdCB7XG4gICAgICAkYmFja2dyb3VuZC1zdHI6IGlmKCRiYWNrZ3JvdW5kLXR5cGUgPT0gbGlzdCwgbnRoKCRiYWNrZ3JvdW5kLCAxKSwgJGJhY2tncm91bmQpO1xuXG4gICAgICAkdXJsLXN0cjogICAgICAgc3RyLXNsaWNlKCRiYWNrZ3JvdW5kLXN0ciwgMSwgMyk7XG4gICAgICAkZ3JhZGllbnQtdHlwZTogc3RyLXNsaWNlKCRiYWNrZ3JvdW5kLXN0ciwgMSwgNik7XG5cbiAgICAgIEBpZiAkdXJsLXN0ciA9PSBcInVybFwiIHtcbiAgICAgICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICAgICAgJHNwZWMtYmFja2dyb3VuZDogICAkYmFja2dyb3VuZDtcbiAgICAgIH1cblxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJsaW5lYXJcIiB7XG4gICAgICAgICRncmFkaWVudHM6IF9saW5lYXItZ3JhZGllbnQtcGFyc2VyKFwiI3skYmFja2dyb3VuZH1cIik7XG4gICAgICAgICR3ZWJraXQtYmFja2dyb3VuZDogbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xuICAgICAgICAkc3BlYy1iYWNrZ3JvdW5kOiAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwicmFkaWFsXCIge1xuICAgICAgICAkZ3JhZGllbnRzOiBfcmFkaWFsLWdyYWRpZW50LXBhcnNlcihcIiN7JGJhY2tncm91bmR9XCIpO1xuICAgICAgICAkd2Via2l0LWJhY2tncm91bmQ6IG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcbiAgICAgICAgJHNwZWMtYmFja2dyb3VuZDogICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSB7XG4gICAgICAgICR3ZWJraXQtYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgICAgICRzcGVjLWJhY2tncm91bmQ6ICAgJGJhY2tncm91bmQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGVsc2Uge1xuICAgICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICAgICRzcGVjLWJhY2tncm91bmQ6ICAgJGJhY2tncm91bmQ7XG4gICAgfVxuXG4gICAgJHdlYmtpdC1iYWNrZ3JvdW5kczogYXBwZW5kKCR3ZWJraXQtYmFja2dyb3VuZHMsICR3ZWJraXQtYmFja2dyb3VuZCwgY29tbWEpO1xuICAgICRzcGVjLWJhY2tncm91bmRzOiAgIGFwcGVuZCgkc3BlYy1iYWNrZ3JvdW5kcywgICAkc3BlYy1iYWNrZ3JvdW5kLCAgIGNvbW1hKTtcbiAgfVxuXG4gIGJhY2tncm91bmQ6ICR3ZWJraXQtYmFja2dyb3VuZHM7XG4gIGJhY2tncm91bmQ6ICRzcGVjLWJhY2tncm91bmRzO1xufVxuIiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuLy8gQmFja2dyb3VuZC1pbWFnZSBwcm9wZXJ0eSBmb3IgYWRkaW5nIG11bHRpcGxlIGJhY2tncm91bmQgaW1hZ2VzIHdpdGhcbi8vIGdyYWRpZW50cywgb3IgZm9yIHN0cmluZ2luZyBtdWx0aXBsZSBncmFkaWVudHMgdG9nZXRoZXIuXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG5cbkBtaXhpbiBiYWNrZ3JvdW5kLWltYWdlKCRpbWFnZXMuLi4pIHtcbiAgJHdlYmtpdC1pbWFnZXM6ICgpO1xuICAkc3BlYy1pbWFnZXM6ICgpO1xuXG4gIEBlYWNoICRpbWFnZSBpbiAkaW1hZ2VzIHtcbiAgICAkd2Via2l0LWltYWdlOiAoKTtcbiAgICAkc3BlYy1pbWFnZTogKCk7XG5cbiAgICBAaWYgKHR5cGUtb2YoJGltYWdlKSA9PSBzdHJpbmcpIHtcbiAgICAgICR1cmwtc3RyOiAgICAgICBzdHItc2xpY2UoJGltYWdlLCAxLCAzKTtcbiAgICAgICRncmFkaWVudC10eXBlOiBzdHItc2xpY2UoJGltYWdlLCAxLCA2KTtcblxuICAgICAgQGlmICR1cmwtc3RyID09IFwidXJsXCIge1xuICAgICAgICAkd2Via2l0LWltYWdlOiAkaW1hZ2U7XG4gICAgICAgICRzcGVjLWltYWdlOiAgICRpbWFnZTtcbiAgICAgIH1cblxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJsaW5lYXJcIiB7XG4gICAgICAgICRncmFkaWVudHM6IF9saW5lYXItZ3JhZGllbnQtcGFyc2VyKCRpbWFnZSk7XG4gICAgICAgICR3ZWJraXQtaW1hZ2U6ICBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XG4gICAgICAgICRzcGVjLWltYWdlOiAgICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcInJhZGlhbFwiIHtcbiAgICAgICAgJGdyYWRpZW50czogX3JhZGlhbC1ncmFkaWVudC1wYXJzZXIoJGltYWdlKTtcbiAgICAgICAgJHdlYmtpdC1pbWFnZTogbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xuICAgICAgICAkc3BlYy1pbWFnZTogICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xuICAgICAgfVxuICAgIH1cblxuICAgICR3ZWJraXQtaW1hZ2VzOiBhcHBlbmQoJHdlYmtpdC1pbWFnZXMsICR3ZWJraXQtaW1hZ2UsIGNvbW1hKTtcbiAgICAkc3BlYy1pbWFnZXM6ICAgYXBwZW5kKCRzcGVjLWltYWdlcywgICAkc3BlYy1pbWFnZSwgICBjb21tYSk7XG4gIH1cblxuICBiYWNrZ3JvdW5kLWltYWdlOiAkd2Via2l0LWltYWdlcztcbiAgYmFja2dyb3VuZC1pbWFnZTogJHNwZWMtaW1hZ2VzO1xufVxuIiwiQG1peGluIGJvcmRlci1pbWFnZSgkYm9yZGVycy4uLikge1xuICAkd2Via2l0LWJvcmRlcnM6ICgpO1xuICAkc3BlYy1ib3JkZXJzOiAoKTtcblxuICBAZWFjaCAkYm9yZGVyIGluICRib3JkZXJzIHtcbiAgICAkd2Via2l0LWJvcmRlcjogKCk7XG4gICAgJHNwZWMtYm9yZGVyOiAoKTtcbiAgICAkYm9yZGVyLXR5cGU6IHR5cGUtb2YoJGJvcmRlcik7XG5cbiAgICBAaWYgJGJvcmRlci10eXBlID09IHN0cmluZyBvciBsaXN0IHtcbiAgICAgICRib3JkZXItc3RyOiBpZigkYm9yZGVyLXR5cGUgPT0gbGlzdCwgbnRoKCRib3JkZXIsIDEpLCAkYm9yZGVyKTtcblxuICAgICAgJHVybC1zdHI6ICAgICAgIHN0ci1zbGljZSgkYm9yZGVyLXN0ciwgMSwgMyk7XG4gICAgICAkZ3JhZGllbnQtdHlwZTogc3RyLXNsaWNlKCRib3JkZXItc3RyLCAxLCA2KTtcblxuICAgICAgQGlmICR1cmwtc3RyID09IFwidXJsXCIge1xuICAgICAgICAkd2Via2l0LWJvcmRlcjogJGJvcmRlcjtcbiAgICAgICAgJHNwZWMtYm9yZGVyOiAgICRib3JkZXI7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwibGluZWFyXCIge1xuICAgICAgICAkZ3JhZGllbnRzOiBfbGluZWFyLWdyYWRpZW50LXBhcnNlcihcIiN7JGJvcmRlcn1cIik7XG4gICAgICAgICR3ZWJraXQtYm9yZGVyOiBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XG4gICAgICAgICRzcGVjLWJvcmRlcjogICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcInJhZGlhbFwiIHtcbiAgICAgICAgJGdyYWRpZW50czogX3JhZGlhbC1ncmFkaWVudC1wYXJzZXIoXCIjeyRib3JkZXJ9XCIpO1xuICAgICAgICAkd2Via2l0LWJvcmRlcjogbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xuICAgICAgICAkc3BlYy1ib3JkZXI6ICAgbWFwLWdldCgkZ3JhZGllbnRzLCBzcGVjLWltYWdlKTtcbiAgICAgIH1cblxuICAgICAgQGVsc2Uge1xuICAgICAgICAkd2Via2l0LWJvcmRlcjogJGJvcmRlcjtcbiAgICAgICAgJHNwZWMtYm9yZGVyOiAgICRib3JkZXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGVsc2Uge1xuICAgICAgJHdlYmtpdC1ib3JkZXI6ICRib3JkZXI7XG4gICAgICAkc3BlYy1ib3JkZXI6ICAgJGJvcmRlcjtcbiAgICB9XG5cbiAgICAkd2Via2l0LWJvcmRlcnM6IGFwcGVuZCgkd2Via2l0LWJvcmRlcnMsICR3ZWJraXQtYm9yZGVyLCBjb21tYSk7XG4gICAgJHNwZWMtYm9yZGVyczogICBhcHBlbmQoJHNwZWMtYm9yZGVycywgICAkc3BlYy1ib3JkZXIsICAgY29tbWEpO1xuICB9XG5cbiAgLXdlYmtpdC1ib3JkZXItaW1hZ2U6ICR3ZWJraXQtYm9yZGVycztcbiAgICAgICAgICBib3JkZXItaW1hZ2U6ICRzcGVjLWJvcmRlcnM7XG4gICAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbn1cblxuLy9FeGFtcGxlczpcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZSh1cmwoXCJpbWFnZS5wbmdcIikpO1xuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKHVybChcImltYWdlLnBuZ1wiKSAyMCBzdHJldGNoKTtcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZShsaW5lYXItZ3JhZGllbnQoNDVkZWcsIG9yYW5nZSwgeWVsbG93KSk7XG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UobGluZWFyLWdyYWRpZW50KDQ1ZGVnLCBvcmFuZ2UsIHllbGxvdykgc3RyZXRjaCk7XG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UobGluZWFyLWdyYWRpZW50KDQ1ZGVnLCBvcmFuZ2UsIHllbGxvdykgMjAgMzAgNDAgNTAgc3RyZXRjaCByb3VuZCk7XG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UocmFkaWFsLWdyYWRpZW50KHRvcCwgY292ZXIsIG9yYW5nZSwgeWVsbG93LCBvcmFuZ2UpKTtcbiIsIkBtaXhpbiBjYWxjKCRwcm9wZXJ0eSwgJHZhbHVlKSB7XG4gICN7JHByb3BlcnR5fTogLXdlYmtpdC1jYWxjKCN7JHZhbHVlfSk7XG4gICN7JHByb3BlcnR5fTogY2FsYygjeyR2YWx1ZX0pO1xufVxuIiwiQG1peGluIGNvbHVtbnMoJGFyZzogYXV0bykge1xuICAvLyA8Y29sdW1uLWNvdW50PiB8fCA8Y29sdW1uLXdpZHRoPlxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW5zLCAkYXJnLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLWNvdW50KCRpbnQ6IGF1dG8pIHtcbiAgLy8gYXV0byB8fCBpbnRlZ2VyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1jb3VudCwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1nYXAoJGxlbmd0aDogbm9ybWFsKSB7XG4gIC8vIG5vcm1hbCB8fCBsZW5ndGhcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLWdhcCwgJGxlbmd0aCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1maWxsKCRhcmc6IGF1dG8pIHtcbiAgLy8gYXV0byB8fCBsZW5ndGhcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLWZpbGwsICRhcmcsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tcnVsZSgkYXJnKSB7XG4gIC8vIDxib3JkZXItd2lkdGg+IHx8IDxib3JkZXItc3R5bGU+IHx8IDxjb2xvcj5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXJ1bGUsICRhcmcsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tcnVsZS1jb2xvcigkY29sb3IpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXJ1bGUtY29sb3IsICRjb2xvciwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1ydWxlLXN0eWxlKCRzdHlsZTogbm9uZSkge1xuICAvLyBub25lIHwgaGlkZGVuIHwgZGFzaGVkIHwgZG90dGVkIHwgZG91YmxlIHwgZ3Jvb3ZlIHwgaW5zZXQgfCBpbnNldCB8IG91dHNldCB8IHJpZGdlIHwgc29saWRcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXJ1bGUtc3R5bGUsICRzdHlsZSwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1ydWxlLXdpZHRoICgkd2lkdGg6IG5vbmUpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXJ1bGUtd2lkdGgsICR3aWR0aCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1zcGFuKCRhcmc6IG5vbmUpIHtcbiAgLy8gbm9uZSB8fCBhbGxcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXNwYW4sICRhcmcsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4td2lkdGgoJGxlbmd0aDogYXV0bykge1xuICAvLyBhdXRvIHx8IGxlbmd0aFxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4td2lkdGgsICRsZW5ndGgsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG4iLCJAbWl4aW4gZmlsdGVyKCRmdW5jdGlvbjogbm9uZSkge1xuICAvLyA8ZmlsdGVyLWZ1bmN0aW9uPiBbPGZpbHRlci1mdW5jdGlvbl0qIHwgbm9uZVxuICBAaW5jbHVkZSBwcmVmaXhlcihmaWx0ZXIsICRmdW5jdGlvbiwgd2Via2l0IHNwZWMpO1xufVxuIiwiLy8gQ1NTMyBGbGV4aWJsZSBCb3ggTW9kZWwgYW5kIHByb3BlcnR5IGRlZmF1bHRzXG5cbi8vIEN1c3RvbSBzaG9ydGhhbmQgbm90YXRpb24gZm9yIGZsZXhib3hcbkBtaXhpbiBib3goJG9yaWVudDogaW5saW5lLWF4aXMsICRwYWNrOiBzdGFydCwgJGFsaWduOiBzdHJldGNoKSB7XG4gIEBpbmNsdWRlIGRpc3BsYXktYm94O1xuICBAaW5jbHVkZSBib3gtb3JpZW50KCRvcmllbnQpO1xuICBAaW5jbHVkZSBib3gtcGFjaygkcGFjayk7XG4gIEBpbmNsdWRlIGJveC1hbGlnbigkYWxpZ24pO1xufVxuXG5AbWl4aW4gZGlzcGxheS1ib3gge1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgZGlzcGxheTogLW1vei1ib3g7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94OyAvLyBJRSAxMFxuICBkaXNwbGF5OiBib3g7XG59XG5cbkBtaXhpbiBib3gtb3JpZW50KCRvcmllbnQ6IGlubGluZS1heGlzKSB7XG4vLyBob3Jpem9udGFsfHZlcnRpY2FsfGlubGluZS1heGlzfGJsb2NrLWF4aXN8aW5oZXJpdFxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtb3JpZW50LCAkb3JpZW50LCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYm94LXBhY2soJHBhY2s6IHN0YXJ0KSB7XG4vLyBzdGFydHxlbmR8Y2VudGVyfGp1c3RpZnlcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LXBhY2ssICRwYWNrLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1wYWNrOiAkcGFjazsgLy8gSUUgMTBcbn1cblxuQG1peGluIGJveC1hbGlnbigkYWxpZ246IHN0cmV0Y2gpIHtcbi8vIHN0YXJ0fGVuZHxjZW50ZXJ8YmFzZWxpbmV8c3RyZXRjaFxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtYWxpZ24sICRhbGlnbiwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtYWxpZ246ICRhbGlnbjsgLy8gSUUgMTBcbn1cblxuQG1peGluIGJveC1kaXJlY3Rpb24oJGRpcmVjdGlvbjogbm9ybWFsKSB7XG4vLyBub3JtYWx8cmV2ZXJzZXxpbmhlcml0XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1kaXJlY3Rpb24sICRkaXJlY3Rpb24sIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LWRpcmVjdGlvbjogJGRpcmVjdGlvbjsgLy8gSUUgMTBcbn1cblxuQG1peGluIGJveC1saW5lcygkbGluZXM6IHNpbmdsZSkge1xuLy8gc2luZ2xlfG11bHRpcGxlXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1saW5lcywgJGxpbmVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYm94LW9yZGluYWwtZ3JvdXAoJGludDogMSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtb3JkaW5hbC1ncm91cCwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtb3JkZXI6ICRpbnQ7IC8vIElFIDEwXG59XG5cbkBtaXhpbiBib3gtZmxleCgkdmFsdWU6IDApIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWZsZXgsICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXg6ICR2YWx1ZTsgLy8gSUUgMTBcbn1cblxuQG1peGluIGJveC1mbGV4LWdyb3VwKCRpbnQ6IDEpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWZsZXgtZ3JvdXAsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbi8vIENTUzMgRmxleGlibGUgQm94IE1vZGVsIGFuZCBwcm9wZXJ0eSBkZWZhdWx0c1xuLy8gVW5pZmllZCBhdHRyaWJ1dGVzIGZvciAyMDA5LCAyMDExLCBhbmQgMjAxMiBmbGF2b3Vycy5cblxuLy8gMjAwOSAtIGRpc3BsYXkgKGJveCB8IGlubGluZS1ib3gpXG4vLyAyMDExIC0gZGlzcGxheSAoZmxleGJveCB8IGlubGluZS1mbGV4Ym94KVxuLy8gMjAxMiAtIGRpc3BsYXkgKGZsZXggfCBpbmxpbmUtZmxleClcbkBtaXhpbiBkaXNwbGF5KCR2YWx1ZSkge1xuLy8gZmxleCB8IGlubGluZS1mbGV4XG4gIEBpZiAkdmFsdWUgPT0gXCJmbGV4XCIge1xuICAgIC8vIDIwMDlcbiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgICBkaXNwbGF5OiAtbW96LWJveDtcbiAgICBkaXNwbGF5OiBib3g7XG5cbiAgICAvLyAyMDEyXG4gICAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICAgIGRpc3BsYXk6IC1tb3otZmxleDtcbiAgICBkaXNwbGF5OiAtbXMtZmxleGJveDsgLy8gMjAxMSAoSUUgMTApXG4gICAgZGlzcGxheTogZmxleDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJpbmxpbmUtZmxleFwiIHtcbiAgICBkaXNwbGF5OiAtd2Via2l0LWlubGluZS1ib3g7XG4gICAgZGlzcGxheTogLW1vei1pbmxpbmUtYm94O1xuICAgIGRpc3BsYXk6IGlubGluZS1ib3g7XG5cbiAgICBkaXNwbGF5OiAtd2Via2l0LWlubGluZS1mbGV4O1xuICAgIGRpc3BsYXk6IC1tb3otaW5saW5lLWZsZXg7XG4gICAgZGlzcGxheTogLW1zLWlubGluZS1mbGV4Ym94O1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICB9IEBlbHNlIHtcbiAgICBkaXNwbGF5OiAkdmFsdWU7XG4gIH1cbn1cblxuLy8gMjAwOSAtIGJveC1mbGV4IChpbnRlZ2VyKVxuLy8gMjAxMSAtIGZsZXggKGRlY2ltYWwgfCB3aWR0aCBkZWNpbWFsKVxuLy8gMjAxMiAtIGZsZXggKGludGVnZXIgaW50ZWdlciB3aWR0aClcbkBtaXhpbiBmbGV4KCR2YWx1ZSkge1xuXG4gIC8vIEdyYWIgZmxleC1ncm93IGZvciBvbGRlciBicm93c2Vycy5cbiAgJGZsZXgtZ3JvdzogbnRoKCR2YWx1ZSwgMSk7XG5cbiAgLy8gMjAwOVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZmxleCwgJGZsZXgtZ3Jvdywgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDExIChJRSAxMCksIDIwMTJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleCwgJHZhbHVlLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xufVxuXG4vLyAyMDA5IC0gYm94LW9yaWVudCAoIGhvcml6b250YWwgfCB2ZXJ0aWNhbCB8IGlubGluZS1heGlzIHwgYmxvY2stYXhpcylcbi8vICAgICAgLSBib3gtZGlyZWN0aW9uIChub3JtYWwgfCByZXZlcnNlKVxuLy8gMjAxMSAtIGZsZXgtZGlyZWN0aW9uIChyb3cgfCByb3ctcmV2ZXJzZSB8IGNvbHVtbiB8IGNvbHVtbi1yZXZlcnNlKVxuLy8gMjAxMiAtIGZsZXgtZGlyZWN0aW9uIChyb3cgfCByb3ctcmV2ZXJzZSB8IGNvbHVtbiB8IGNvbHVtbi1yZXZlcnNlKVxuQG1peGluIGZsZXgtZGlyZWN0aW9uKCR2YWx1ZTogcm93KSB7XG5cbiAgLy8gQWx0IHZhbHVlcy5cbiAgJHZhbHVlLTIwMDk6ICR2YWx1ZTtcbiAgJHZhbHVlLTIwMTE6ICR2YWx1ZTtcbiAgJGRpcmVjdGlvbjogbm9ybWFsO1xuXG4gIEBpZiAkdmFsdWUgPT0gcm93IHtcbiAgICAkdmFsdWUtMjAwOTogaG9yaXpvbnRhbDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJyb3ctcmV2ZXJzZVwiIHtcbiAgICAkdmFsdWUtMjAwOTogaG9yaXpvbnRhbDtcbiAgICAkZGlyZWN0aW9uOiByZXZlcnNlO1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBjb2x1bW4ge1xuICAgICR2YWx1ZS0yMDA5OiB2ZXJ0aWNhbDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJjb2x1bW4tcmV2ZXJzZVwiIHtcbiAgICAkdmFsdWUtMjAwOTogdmVydGljYWw7XG4gICAgJGRpcmVjdGlvbjogcmV2ZXJzZTtcbiAgfVxuXG4gIC8vIDIwMDlcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LW9yaWVudCwgJHZhbHVlLTIwMDksIHdlYmtpdCBtb3ogc3BlYyk7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1kaXJlY3Rpb24sICRkaXJlY3Rpb24sIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMlxuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LWRpcmVjdGlvbiwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTEgKElFIDEwKVxuICAtbXMtZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbn1cblxuLy8gMjAwOSAtIGJveC1saW5lcyAoc2luZ2xlIHwgbXVsdGlwbGUpXG4vLyAyMDExIC0gZmxleC13cmFwIChub3dyYXAgfCB3cmFwIHwgd3JhcC1yZXZlcnNlKVxuLy8gMjAxMiAtIGZsZXgtd3JhcCAobm93cmFwIHwgd3JhcCB8IHdyYXAtcmV2ZXJzZSlcbkBtaXhpbiBmbGV4LXdyYXAoJHZhbHVlOiBub3dyYXApIHtcbiAgLy8gQWx0IHZhbHVlc1xuICAkYWx0LXZhbHVlOiAkdmFsdWU7XG4gIEBpZiAkdmFsdWUgPT0gbm93cmFwIHtcbiAgICAkYWx0LXZhbHVlOiBzaW5nbGU7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IHdyYXAge1xuICAgICRhbHQtdmFsdWU6IG11bHRpcGxlO1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcIndyYXAtcmV2ZXJzZVwiIHtcbiAgICAkYWx0LXZhbHVlOiBtdWx0aXBsZTtcbiAgfVxuXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1saW5lcywgJGFsdC12YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC13cmFwLCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgc3BlYyk7XG59XG5cbi8vIDIwMDkgLSBUT0RPOiBwYXJzZSB2YWx1ZXMgaW50byBmbGV4LWRpcmVjdGlvbi9mbGV4LXdyYXBcbi8vIDIwMTEgLSBUT0RPOiBwYXJzZSB2YWx1ZXMgaW50byBmbGV4LWRpcmVjdGlvbi9mbGV4LXdyYXBcbi8vIDIwMTIgLSBmbGV4LWZsb3cgKGZsZXgtZGlyZWN0aW9uIHx8IGZsZXgtd3JhcClcbkBtaXhpbiBmbGV4LWZsb3coJHZhbHVlKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtZmxvdywgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG4vLyAyMDA5IC0gYm94LW9yZGluYWwtZ3JvdXAgKGludGVnZXIpXG4vLyAyMDExIC0gZmxleC1vcmRlciAoaW50ZWdlcilcbi8vIDIwMTIgLSBvcmRlciAoaW50ZWdlcilcbkBtaXhpbiBvcmRlcigkaW50OiAwKSB7XG4gIC8vIDIwMDlcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LW9yZGluYWwtZ3JvdXAsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMlxuICBAaW5jbHVkZSBwcmVmaXhlcihvcmRlciwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDExIChJRSAxMClcbiAgLW1zLWZsZXgtb3JkZXI6ICRpbnQ7XG59XG5cbi8vIDIwMTIgLSBmbGV4LWdyb3cgKG51bWJlcilcbkBtaXhpbiBmbGV4LWdyb3coJG51bWJlcjogMCkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LWdyb3csICRudW1iZXIsIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LXBvc2l0aXZlOiAkbnVtYmVyO1xufVxuXG4vLyAyMDEyIC0gZmxleC1zaHJpbmsgKG51bWJlcilcbkBtaXhpbiBmbGV4LXNocmluaygkbnVtYmVyOiAxKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtc2hyaW5rLCAkbnVtYmVyLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1uZWdhdGl2ZTogJG51bWJlcjtcbn1cblxuLy8gMjAxMiAtIGZsZXgtYmFzaXMgKG51bWJlcilcbkBtaXhpbiBmbGV4LWJhc2lzKCR3aWR0aDogYXV0bykge1xuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LWJhc2lzLCAkd2lkdGgsIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiAkd2lkdGg7XG59XG5cbi8vIDIwMDkgLSBib3gtcGFjayAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBqdXN0aWZ5KVxuLy8gMjAxMSAtIGZsZXgtcGFjayAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBqdXN0aWZ5KVxuLy8gMjAxMiAtIGp1c3RpZnktY29udGVudCAoZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgc3BhY2UtYmV0d2VlbiB8IHNwYWNlLWFyb3VuZClcbkBtaXhpbiBqdXN0aWZ5LWNvbnRlbnQoJHZhbHVlOiBmbGV4LXN0YXJ0KSB7XG5cbiAgLy8gQWx0IHZhbHVlcy5cbiAgJGFsdC12YWx1ZTogJHZhbHVlO1xuICBAaWYgJHZhbHVlID09IFwiZmxleC1zdGFydFwiIHtcbiAgICAkYWx0LXZhbHVlOiBzdGFydDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJmbGV4LWVuZFwiIHtcbiAgICAkYWx0LXZhbHVlOiBlbmQ7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwic3BhY2UtYmV0d2VlblwiIHtcbiAgICAkYWx0LXZhbHVlOiBqdXN0aWZ5O1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcInNwYWNlLWFyb3VuZFwiIHtcbiAgICAkYWx0LXZhbHVlOiBkaXN0cmlidXRlO1xuICB9XG5cbiAgLy8gMjAwOVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtcGFjaywgJGFsdC12YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDEyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGp1c3RpZnktY29udGVudCwgJHZhbHVlLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG5cbiAgLy8gMjAxMSAoSUUgMTApXG4gIC1tcy1mbGV4LXBhY2s6ICRhbHQtdmFsdWU7XG59XG5cbi8vIDIwMDkgLSBib3gtYWxpZ24gKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxuLy8gMjAxMSAtIGZsZXgtYWxpZ24gKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxuLy8gMjAxMiAtIGFsaWduLWl0ZW1zIChmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXG5AbWl4aW4gYWxpZ24taXRlbXMoJHZhbHVlOiBzdHJldGNoKSB7XG5cbiAgJGFsdC12YWx1ZTogJHZhbHVlO1xuXG4gIEBpZiAkdmFsdWUgPT0gXCJmbGV4LXN0YXJ0XCIge1xuICAgICRhbHQtdmFsdWU6IHN0YXJ0O1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImZsZXgtZW5kXCIge1xuICAgICRhbHQtdmFsdWU6IGVuZDtcbiAgfVxuXG4gIC8vIDIwMDlcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWFsaWduLCAkYWx0LXZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYWxpZ24taXRlbXMsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xuXG4gIC8vIDIwMTEgKElFIDEwKVxuICAtbXMtZmxleC1hbGlnbjogJGFsdC12YWx1ZTtcbn1cblxuLy8gMjAxMSAtIGZsZXgtaXRlbS1hbGlnbiAoYXV0byB8IHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxuLy8gMjAxMiAtIGFsaWduLXNlbGYgKGF1dG8gfCBmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXG5AbWl4aW4gYWxpZ24tc2VsZigkdmFsdWU6IGF1dG8pIHtcblxuICAkdmFsdWUtMjAxMTogJHZhbHVlO1xuICBAaWYgJHZhbHVlID09IFwiZmxleC1zdGFydFwiIHtcbiAgICAkdmFsdWUtMjAxMTogc3RhcnQ7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiZmxleC1lbmRcIiB7XG4gICAgJHZhbHVlLTIwMTE6IGVuZDtcbiAgfVxuXG4gIC8vIDIwMTJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYWxpZ24tc2VsZiwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTEgKElFIDEwKVxuICAtbXMtZmxleC1pdGVtLWFsaWduOiAkdmFsdWUtMjAxMTtcbn1cblxuLy8gMjAxMSAtIGZsZXgtbGluZS1wYWNrIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGp1c3RpZnkgfCBkaXN0cmlidXRlIHwgc3RyZXRjaClcbi8vIDIwMTIgLSBhbGlnbi1jb250ZW50IChmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBzcGFjZS1iZXR3ZWVuIHwgc3BhY2UtYXJvdW5kIHwgc3RyZXRjaClcbkBtaXhpbiBhbGlnbi1jb250ZW50KCR2YWx1ZTogc3RyZXRjaCkge1xuXG4gICR2YWx1ZS0yMDExOiAkdmFsdWU7XG4gIEBpZiAkdmFsdWUgPT0gXCJmbGV4LXN0YXJ0XCIge1xuICAgICR2YWx1ZS0yMDExOiBzdGFydDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJmbGV4LWVuZFwiIHtcbiAgICAkdmFsdWUtMjAxMTogZW5kO1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcInNwYWNlLWJldHdlZW5cIiB7XG4gICAgJHZhbHVlLTIwMTE6IGp1c3RpZnk7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwic3BhY2UtYXJvdW5kXCIge1xuICAgICR2YWx1ZS0yMDExOiBkaXN0cmlidXRlO1xuICB9XG5cbiAgLy8gMjAxMlxuICBAaW5jbHVkZSBwcmVmaXhlcihhbGlnbi1jb250ZW50LCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMSAoSUUgMTApXG4gIC1tcy1mbGV4LWxpbmUtcGFjazogJHZhbHVlLTIwMTE7XG59XG4iLCJAbWl4aW4gZm9udC1mYWNlKFxuICAkZm9udC1mYW1pbHksXG4gICRmaWxlLXBhdGgsXG4gICR3ZWlnaHQ6IG5vcm1hbCxcbiAgJHN0eWxlOiBub3JtYWwsXG4gICRhc3NldC1waXBlbGluZTogJGFzc2V0LXBpcGVsaW5lLFxuICAkZmlsZS1mb3JtYXRzOiBlb3Qgd29mZjIgd29mZiB0dGYgc3ZnKSB7XG5cbiAgJGZvbnQtdXJsLXByZWZpeDogZm9udC11cmwtcHJlZml4ZXIoJGFzc2V0LXBpcGVsaW5lKTtcblxuICBAZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5O1xuICAgIGZvbnQtc3R5bGU6ICRzdHlsZTtcbiAgICBmb250LXdlaWdodDogJHdlaWdodDtcblxuICAgIHNyYzogZm9udC1zb3VyY2UtZGVjbGFyYXRpb24oXG4gICAgICAkZm9udC1mYW1pbHksXG4gICAgICAkZmlsZS1wYXRoLFxuICAgICAgJGFzc2V0LXBpcGVsaW5lLFxuICAgICAgJGZpbGUtZm9ybWF0cyxcbiAgICAgICRmb250LXVybC1wcmVmaXhcbiAgICApO1xuICB9XG59XG4iLCJAbWl4aW4gZm9udC1mZWF0dXJlLXNldHRpbmdzKCRzZXR0aW5ncy4uLikge1xuICBAaWYgbGVuZ3RoKCRzZXR0aW5ncykgPT0gMCB7ICRzZXR0aW5nczogbm9uZTsgfVxuICBAaW5jbHVkZSBwcmVmaXhlcihmb250LWZlYXR1cmUtc2V0dGluZ3MsICRzZXR0aW5ncywgd2Via2l0IG1veiBtcyBzcGVjKTtcbn1cbiIsIi8vIEhpRFBJIG1peGluLiBEZWZhdWx0IHZhbHVlIHNldCB0byAxLjMgdG8gdGFyZ2V0IEdvb2dsZSBOZXh1cyA3IChodHRwOi8vYmphbmdvLmNvbS9hcnRpY2xlcy9taW4tZGV2aWNlLXBpeGVsLXJhdGlvLylcbkBtaXhpbiBoaWRwaSgkcmF0aW86IDEuMykge1xuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86ICRyYXRpbyksXG4gIG9ubHkgc2NyZWVuIGFuZCAobWluLS1tb3otZGV2aWNlLXBpeGVsLXJhdGlvOiAkcmF0aW8pLFxuICBvbmx5IHNjcmVlbiBhbmQgKC1vLW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86ICN7JHJhdGlvfS8xKSxcbiAgb25seSBzY3JlZW4gYW5kIChtaW4tcmVzb2x1dGlvbjogcm91bmQoJHJhdGlvICogOTZkcGkpKSxcbiAgb25seSBzY3JlZW4gYW5kIChtaW4tcmVzb2x1dGlvbjogJHJhdGlvICogMWRwcHgpIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuIiwiQG1peGluIGh5cGhlbnMoJGh5cGhlbmF0aW9uOiBub25lKSB7XG4gIC8vIG5vbmUgfCBtYW51YWwgfCBhdXRvXG4gIEBpbmNsdWRlIHByZWZpeGVyKGh5cGhlbnMsICRoeXBoZW5hdGlvbiwgd2Via2l0IG1veiBtcyBzcGVjKTtcbn1cbiIsIkBtaXhpbiBpbWFnZS1yZW5kZXJpbmcgKCRtb2RlOmF1dG8pIHtcblxuICBAaWYgKCRtb2RlID09IGNyaXNwLWVkZ2VzKSB7XG4gICAgLW1zLWludGVycG9sYXRpb24tbW9kZTogbmVhcmVzdC1uZWlnaGJvcjsgLy8gSUU4K1xuICAgIGltYWdlLXJlbmRlcmluZzogLW1vei1jcmlzcC1lZGdlcztcbiAgICBpbWFnZS1yZW5kZXJpbmc6IC1vLWNyaXNwLWVkZ2VzO1xuICAgIGltYWdlLXJlbmRlcmluZzogLXdlYmtpdC1vcHRpbWl6ZS1jb250cmFzdDtcbiAgICBpbWFnZS1yZW5kZXJpbmc6IGNyaXNwLWVkZ2VzO1xuICB9XG5cbiAgQGVsc2Uge1xuICAgIGltYWdlLXJlbmRlcmluZzogJG1vZGU7XG4gIH1cbn1cbiIsIi8vIEFkZHMga2V5ZnJhbWVzIGJsb2NrcyBmb3Igc3VwcG9ydGVkIHByZWZpeGVzLCByZW1vdmluZyByZWR1bmRhbnQgcHJlZml4ZXMgaW4gdGhlIGJsb2NrJ3MgY29udGVudFxuQG1peGluIGtleWZyYW1lcygkbmFtZSkge1xuICAkb3JpZ2luYWwtcHJlZml4LWZvci13ZWJraXQ6ICAgICRwcmVmaXgtZm9yLXdlYmtpdDtcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3ItbW96aWxsYTogICAkcHJlZml4LWZvci1tb3ppbGxhO1xuICAkb3JpZ2luYWwtcHJlZml4LWZvci1taWNyb3NvZnQ6ICRwcmVmaXgtZm9yLW1pY3Jvc29mdDtcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3Itb3BlcmE6ICAgICAkcHJlZml4LWZvci1vcGVyYTtcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3Itc3BlYzogICAgICAkcHJlZml4LWZvci1zcGVjO1xuXG4gIEBpZiAkb3JpZ2luYWwtcHJlZml4LWZvci13ZWJraXQge1xuICAgIEBpbmNsdWRlIGRpc2FibGUtcHJlZml4LWZvci1hbGwoKTtcbiAgICAkcHJlZml4LWZvci13ZWJraXQ6IHRydWUgIWdsb2JhbDtcbiAgICBALXdlYmtpdC1rZXlmcmFtZXMgI3skbmFtZX0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG5cbiAgQGlmICRvcmlnaW5hbC1wcmVmaXgtZm9yLW1vemlsbGEge1xuICAgIEBpbmNsdWRlIGRpc2FibGUtcHJlZml4LWZvci1hbGwoKTtcbiAgICAkcHJlZml4LWZvci1tb3ppbGxhOiB0cnVlICFnbG9iYWw7XG4gICAgQC1tb3ota2V5ZnJhbWVzICN7JG5hbWV9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuXG4gICRwcmVmaXgtZm9yLXdlYmtpdDogICAgJG9yaWdpbmFsLXByZWZpeC1mb3Itd2Via2l0ICAgICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLW1vemlsbGE6ICAgJG9yaWdpbmFsLXByZWZpeC1mb3ItbW96aWxsYSAgICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLW1pY3Jvc29mdDogJG9yaWdpbmFsLXByZWZpeC1mb3ItbWljcm9zb2Z0ICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLW9wZXJhOiAgICAgJG9yaWdpbmFsLXByZWZpeC1mb3Itb3BlcmEgICAgICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLXNwZWM6ICAgICAgJG9yaWdpbmFsLXByZWZpeC1mb3Itc3BlYyAgICAgICFnbG9iYWw7XG5cbiAgQGlmICRvcmlnaW5hbC1wcmVmaXgtZm9yLXNwZWMge1xuICAgIEBrZXlmcmFtZXMgI3skbmFtZX0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG4iLCJAbWl4aW4gbGluZWFyLWdyYWRpZW50KCRwb3MsICRnMSwgJGcyOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZzM6IG51bGwsICRnNDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGc1OiBudWxsLCAkZzY6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRnNzogbnVsbCwgJGc4OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZzk6IG51bGwsICRnMTA6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRmYWxsYmFjazogbnVsbCkge1xuICAvLyBEZXRlY3Qgd2hhdCB0eXBlIG9mIHZhbHVlIGV4aXN0cyBpbiAkcG9zXG4gICRwb3MtdHlwZTogdHlwZS1vZihudGgoJHBvcywgMSkpO1xuICAkcG9zLXNwZWM6IG51bGw7XG4gICRwb3MtZGVncmVlOiBudWxsO1xuXG4gIC8vIElmICRwb3MgaXMgbWlzc2luZyBmcm9tIG1peGluLCByZWFzc2lnbiB2YXJzIGFuZCBhZGQgZGVmYXVsdCBwb3NpdGlvblxuICBAaWYgKCRwb3MtdHlwZSA9PSBjb2xvcikgb3IgKG50aCgkcG9zLCAxKSA9PSBcInRyYW5zcGFyZW50XCIpICB7XG4gICAgJGcxMDogJGc5OyAkZzk6ICRnODsgJGc4OiAkZzc7ICRnNzogJGc2OyAkZzY6ICRnNTtcbiAgICAkZzU6ICRnNDsgJGc0OiAkZzM7ICRnMzogJGcyOyAkZzI6ICRnMTsgJGcxOiAkcG9zO1xuICAgICRwb3M6IG51bGw7XG4gIH1cblxuICBAaWYgJHBvcyB7XG4gICAgJHBvc2l0aW9uczogX2xpbmVhci1wb3NpdGlvbnMtcGFyc2VyKCRwb3MpO1xuICAgICRwb3MtZGVncmVlOiBudGgoJHBvc2l0aW9ucywgMSk7XG4gICAgJHBvcy1zcGVjOiAgIG50aCgkcG9zaXRpb25zLCAyKTtcbiAgfVxuXG4gICRmdWxsOiAkZzEsICRnMiwgJGczLCAkZzQsICRnNSwgJGc2LCAkZzcsICRnOCwgJGc5LCAkZzEwO1xuXG4gIC8vIFNldCAkZzEgYXMgdGhlIGRlZmF1bHQgZmFsbGJhY2sgY29sb3JcbiAgJGZhbGxiYWNrLWNvbG9yOiBudGgoJGcxLCAxKTtcblxuICAvLyBJZiAkZmFsbGJhY2sgaXMgYSBjb2xvciB1c2UgdGhhdCBjb2xvciBhcyB0aGUgZmFsbGJhY2sgY29sb3JcbiAgQGlmICh0eXBlLW9mKCRmYWxsYmFjaykgPT0gY29sb3IpIG9yICgkZmFsbGJhY2sgPT0gXCJ0cmFuc3BhcmVudFwiKSB7XG4gICAgJGZhbGxiYWNrLWNvbG9yOiAkZmFsbGJhY2s7XG4gIH1cblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZmFsbGJhY2stY29sb3I7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KCRwb3MtZGVncmVlICRmdWxsKTsgLy8gU2FmYXJpIDUuMSssIENocm9tZVxuICBiYWNrZ3JvdW5kLWltYWdlOiB1bnF1b3RlKFwibGluZWFyLWdyYWRpZW50KCN7JHBvcy1zcGVjfSN7JGZ1bGx9KVwiKTtcbn1cbiIsIkBtaXhpbiBwZXJzcGVjdGl2ZSgkZGVwdGg6IG5vbmUpIHtcbiAgLy8gbm9uZSB8IDxsZW5ndGg+XG4gIEBpbmNsdWRlIHByZWZpeGVyKHBlcnNwZWN0aXZlLCAkZGVwdGgsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBwZXJzcGVjdGl2ZS1vcmlnaW4oJHZhbHVlOiA1MCUgNTAlKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKHBlcnNwZWN0aXZlLW9yaWdpbiwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuIiwiQG1peGluIHBsYWNlaG9sZGVyIHtcbiAgJHBsYWNlaG9sZGVyczogXCI6LXdlYmtpdC1pbnB1dFwiIFwiOi1tb3pcIiBcIi1tb3pcIiBcIi1tcy1pbnB1dFwiO1xuICBAZWFjaCAkcGxhY2Vob2xkZXIgaW4gJHBsYWNlaG9sZGVycyB7XG4gICAgJjojeyRwbGFjZWhvbGRlcn0tcGxhY2Vob2xkZXIge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG4iLCIvLyBSZXF1aXJlcyBTYXNzIDMuMStcbkBtaXhpbiByYWRpYWwtZ3JhZGllbnQoJGcxLCAkZzIsXG4gICAgICAgICAgICAgICAgICAgICAgICRnMzogbnVsbCwgJGc0OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZzU6IG51bGwsICRnNjogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGc3OiBudWxsLCAkZzg6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRnOTogbnVsbCwgJGcxMDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJHBvczogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJHNoYXBlLXNpemU6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRmYWxsYmFjazogbnVsbCkge1xuXG4gICRkYXRhOiBfcmFkaWFsLWFyZy1wYXJzZXIoJGcxLCAkZzIsICRwb3MsICRzaGFwZS1zaXplKTtcbiAgJGcxOiAgbnRoKCRkYXRhLCAxKTtcbiAgJGcyOiAgbnRoKCRkYXRhLCAyKTtcbiAgJHBvczogbnRoKCRkYXRhLCAzKTtcbiAgJHNoYXBlLXNpemU6IG50aCgkZGF0YSwgNCk7XG5cbiAgJGZ1bGw6ICRnMSwgJGcyLCAkZzMsICRnNCwgJGc1LCAkZzYsICRnNywgJGc4LCAkZzksICRnMTA7XG5cbiAgLy8gU3RyaXAgZGVwcmVjYXRlZCBjb3Zlci9jb250YWluIGZvciBzcGVjXG4gICRzaGFwZS1zaXplLXNwZWM6IF9zaGFwZS1zaXplLXN0cmlwcGVyKCRzaGFwZS1zaXplKTtcblxuICAvLyBTZXQgJGcxIGFzIHRoZSBkZWZhdWx0IGZhbGxiYWNrIGNvbG9yXG4gICRmaXJzdC1jb2xvcjogbnRoKCRmdWxsLCAxKTtcbiAgJGZhbGxiYWNrLWNvbG9yOiBudGgoJGZpcnN0LWNvbG9yLCAxKTtcblxuICBAaWYgKHR5cGUtb2YoJGZhbGxiYWNrKSA9PSBjb2xvcikgb3IgKCRmYWxsYmFjayA9PSBcInRyYW5zcGFyZW50XCIpIHtcbiAgICAkZmFsbGJhY2stY29sb3I6ICRmYWxsYmFjaztcbiAgfVxuXG4gIC8vIEFkZCBDb21tYXMgYW5kIHNwYWNlc1xuICAkc2hhcGUtc2l6ZTogaWYoJHNoYXBlLXNpemUsIFwiI3skc2hhcGUtc2l6ZX0sIFwiLCBudWxsKTtcbiAgJHBvczogICAgICAgIGlmKCRwb3MsIFwiI3skcG9zfSwgXCIsIG51bGwpO1xuICAkcG9zLXNwZWM6ICAgaWYoJHBvcywgXCJhdCAjeyRwb3N9XCIsIG51bGwpO1xuICAkc2hhcGUtc2l6ZS1zcGVjOiBpZigoJHNoYXBlLXNpemUtc3BlYyAhPSBcIiBcIikgYW5kICgkcG9zID09IG51bGwpLCBcIiN7JHNoYXBlLXNpemUtc3BlY30sIFwiLCBcIiN7JHNoYXBlLXNpemUtc3BlY30gXCIpO1xuXG4gIGJhY2tncm91bmQtY29sb3I6ICAkZmFsbGJhY2stY29sb3I7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtcmFkaWFsLWdyYWRpZW50KCN7JHBvc30jeyRzaGFwZS1zaXplfSN7JGZ1bGx9KTtcbiAgYmFja2dyb3VuZC1pbWFnZTogcmFkaWFsLWdyYWRpZW50KCN7JHNoYXBlLXNpemUtc3BlY30jeyRwb3Mtc3BlY30jeyRmdWxsfSk7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gT3V0cHV0cyB0aGUgc3BlYyBhbmQgcHJlZml4ZWQgdmVyc2lvbnMgb2YgdGhlIGA6OnNlbGVjdGlvbmAgcHNldWRvLWVsZW1lbnQuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtCb29sfSAkY3VycmVudC1zZWxlY3RvciBbZmFsc2VdXHJcbi8vLyAgIElmIHNldCB0byBgdHJ1ZWAsIGl0IHRha2VzIHRoZSBjdXJyZW50IGVsZW1lbnQgaW50byBjb25zaWRlcmF0aW9uLlxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgQGluY2x1ZGUgc2VsZWN0aW9uKHRydWUpIHtcclxuLy8vICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmJiNTI7XHJcbi8vLyAgICAgfVxyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxyXG4vLy8gICAuZWxlbWVudDo6LW1vei1zZWxlY3Rpb24ge1xyXG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmJiNTI7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyAgIC5lbGVtZW50OjpzZWxlY3Rpb24ge1xyXG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmJiNTI7XHJcbi8vLyAgIH1cclxuXHJcbkBtaXhpbiBzZWxlY3Rpb24oJGN1cnJlbnQtc2VsZWN0b3I6IGZhbHNlKSB7XHJcbiAgQGlmICRjdXJyZW50LXNlbGVjdG9yIHtcclxuICAgICY6Oi1tb3otc2VsZWN0aW9uIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgJjo6c2VsZWN0aW9uIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfSBAZWxzZSB7XHJcbiAgICA6Oi1tb3otc2VsZWN0aW9uIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgOjpzZWxlY3Rpb24ge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiQG1peGluIHRleHQtZGVjb3JhdGlvbigkdmFsdWUpIHtcbi8vIDx0ZXh0LWRlY29yYXRpb24tbGluZT4gfHwgPHRleHQtZGVjb3JhdGlvbi1zdHlsZT4gfHwgPHRleHQtZGVjb3JhdGlvbi1jb2xvcj5cbiAgQGluY2x1ZGUgcHJlZml4ZXIodGV4dC1kZWNvcmF0aW9uLCAkdmFsdWUsIG1veik7XG59XG5cbkBtaXhpbiB0ZXh0LWRlY29yYXRpb24tbGluZSgkbGluZTogbm9uZSkge1xuLy8gbm9uZSB8fCB1bmRlcmxpbmUgfHwgb3ZlcmxpbmUgfHwgbGluZS10aHJvdWdoXG4gIEBpbmNsdWRlIHByZWZpeGVyKHRleHQtZGVjb3JhdGlvbi1saW5lLCAkbGluZSwgbW96KTtcbn1cblxuQG1peGluIHRleHQtZGVjb3JhdGlvbi1zdHlsZSgkc3R5bGU6IHNvbGlkKSB7XG4vLyBzb2xpZCB8fCBkb3VibGUgfHwgZG90dGVkIHx8IGRhc2hlZCB8fCB3YXZ5XG4gIEBpbmNsdWRlIHByZWZpeGVyKHRleHQtZGVjb3JhdGlvbi1zdHlsZSwgJHN0eWxlLCBtb3ogd2Via2l0KTtcbn1cblxuQG1peGluIHRleHQtZGVjb3JhdGlvbi1jb2xvcigkY29sb3I6IGN1cnJlbnRDb2xvcikge1xuLy8gY3VycmVudENvbG9yIHx8IDxjb2xvcj5cbiAgQGluY2x1ZGUgcHJlZml4ZXIodGV4dC1kZWNvcmF0aW9uLWNvbG9yLCAkY29sb3IsIG1veik7XG59XG4iLCJAbWl4aW4gdHJhbnNmb3JtKCRwcm9wZXJ0eTogbm9uZSkge1xuICAvLyBub25lIHwgPHRyYW5zZm9ybS1mdW5jdGlvbj5cbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNmb3JtLCAkcHJvcGVydHksIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcbn1cblxuQG1peGluIHRyYW5zZm9ybS1vcmlnaW4oJGF4ZXM6IDUwJSkge1xuICAvLyB4LWF4aXMgLSBsZWZ0IHwgY2VudGVyIHwgcmlnaHQgIHwgbGVuZ3RoIHwgJVxuICAvLyB5LWF4aXMgLSB0b3AgIHwgY2VudGVyIHwgYm90dG9tIHwgbGVuZ3RoIHwgJVxuICAvLyB6LWF4aXMgLSAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoXG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zZm9ybS1vcmlnaW4sICRheGVzLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG59XG5cbkBtaXhpbiB0cmFuc2Zvcm0tc3R5bGUoJHN0eWxlOiBmbGF0KSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zZm9ybS1zdHlsZSwgJHN0eWxlLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG59XG4iLCIvLyBTaG9ydGhhbmQgbWl4aW4uIFN1cHBvcnRzIG11bHRpcGxlIHBhcmVudGhlc2VzLWRlbGltaW5hdGVkIHZhbHVlcyBmb3IgZWFjaCB2YXJpYWJsZS5cbi8vIEV4YW1wbGU6IEBpbmNsdWRlIHRyYW5zaXRpb24gKGFsbCAycyBlYXNlLWluLW91dCk7XG4vLyAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uIChvcGFjaXR5IDFzIGVhc2UtaW4gMnMsIHdpZHRoIDJzIGVhc2Utb3V0KTtcbi8vICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tcHJvcGVydHkgKHRyYW5zZm9ybSwgb3BhY2l0eSk7XG5cbkBtaXhpbiB0cmFuc2l0aW9uKCRwcm9wZXJ0aWVzLi4uKSB7XG4gIC8vIEZpeCBmb3IgdmVuZG9yLXByZWZpeCB0cmFuc2Zvcm0gcHJvcGVydHlcbiAgJG5lZWRzLXByZWZpeGVzOiBmYWxzZTtcbiAgJHdlYmtpdDogKCk7XG4gICRtb3o6ICgpO1xuICAkc3BlYzogKCk7XG5cbiAgLy8gQ3JlYXRlIGxpc3RzIGZvciB2ZW5kb3ItcHJlZml4ZWQgdHJhbnNmb3JtXG4gIEBlYWNoICRsaXN0IGluICRwcm9wZXJ0aWVzIHtcbiAgICBAaWYgbnRoKCRsaXN0LCAxKSA9PSBcInRyYW5zZm9ybVwiIHtcbiAgICAgICRuZWVkcy1wcmVmaXhlczogdHJ1ZTtcbiAgICAgICRsaXN0MTogLXdlYmtpdC10cmFuc2Zvcm07XG4gICAgICAkbGlzdDI6IC1tb3otdHJhbnNmb3JtO1xuICAgICAgJGxpc3QzOiAoKTtcblxuICAgICAgQGVhY2ggJHZhciBpbiAkbGlzdCB7XG4gICAgICAgICRsaXN0Mzogam9pbigkbGlzdDMsICR2YXIpO1xuXG4gICAgICAgIEBpZiAkdmFyICE9IFwidHJhbnNmb3JtXCIge1xuICAgICAgICAgICRsaXN0MTogam9pbigkbGlzdDEsICR2YXIpO1xuICAgICAgICAgICRsaXN0Mjogam9pbigkbGlzdDIsICR2YXIpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICR3ZWJraXQ6IGFwcGVuZCgkd2Via2l0LCAkbGlzdDEpO1xuICAgICAgJG1vejogICAgYXBwZW5kKCRtb3osICAgICRsaXN0Mik7XG4gICAgICAkc3BlYzogICBhcHBlbmQoJHNwZWMsICAgJGxpc3QzKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICR3ZWJraXQ6IGFwcGVuZCgkd2Via2l0LCAkbGlzdCwgY29tbWEpO1xuICAgICAgJG1vejogICAgYXBwZW5kKCRtb3osICAgICRsaXN0LCBjb21tYSk7XG4gICAgICAkc3BlYzogICBhcHBlbmQoJHNwZWMsICAgJGxpc3QsIGNvbW1hKTtcbiAgICB9XG4gIH1cblxuICBAaWYgJG5lZWRzLXByZWZpeGVzIHtcbiAgICAtd2Via2l0LXRyYW5zaXRpb246ICR3ZWJraXQ7XG4gICAgICAgLW1vei10cmFuc2l0aW9uOiAkbW96O1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogJHNwZWM7XG4gIH0gQGVsc2Uge1xuICAgIEBpZiBsZW5ndGgoJHByb3BlcnRpZXMpID49IDEge1xuICAgICAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbiwgJHByb3BlcnRpZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkcHJvcGVydGllczogYWxsIDAuMTVzIGVhc2Utb3V0IDBzO1xuICAgICAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbiwgJHByb3BlcnRpZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiB0cmFuc2l0aW9uLXByb3BlcnR5KCRwcm9wZXJ0aWVzLi4uKSB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygkcHJvcGVydGllcywgXCJ3ZWJraXRcIik7XG4gICAgIC1tb3otdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygkcHJvcGVydGllcywgXCJtb3pcIik7XG4gICAgICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygkcHJvcGVydGllcywgZmFsc2UpO1xufVxuXG5AbWl4aW4gdHJhbnNpdGlvbi1kdXJhdGlvbigkdGltZXMuLi4pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbi1kdXJhdGlvbiwgJHRpbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24oJG1vdGlvbnMuLi4pIHtcbiAgLy8gZWFzZSB8IGxpbmVhciB8IGVhc2UtaW4gfCBlYXNlLW91dCB8IGVhc2UtaW4tb3V0IHwgY3ViaWMtYmV6aWVyKClcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24sICRtb3Rpb25zLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gdHJhbnNpdGlvbi1kZWxheSgkdGltZXMuLi4pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbi1kZWxheSwgJHRpbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuIiwiQG1peGluIHVzZXItc2VsZWN0KCR2YWx1ZTogbm9uZSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcih1c2VyLXNlbGVjdCwgJHZhbHVlLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgYm9yZGVyLWNvbG9yYCBvbiBzcGVjaWZpYyBzaWRlcyBvZiBhIGJveC4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkdmFsc1xuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBib3JkZXItY29sb3IoI2E2MGI1NSAjNzZjZDljIG51bGwgI2U4YWUxYSk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJvcmRlci1sZWZ0LWNvbG9yOiAjZThhZTFhO1xuLy8vICAgICBib3JkZXItcmlnaHQtY29sb3I6ICM3NmNkOWM7XG4vLy8gICAgIGJvcmRlci10b3AtY29sb3I6ICNhNjBiNTU7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7bWl4aW59IGRpcmVjdGlvbmFsLXByb3BlcnR5XG4vLy9cbi8vLyBAb3V0cHV0IGBib3JkZXItY29sb3JgXG5cbkBtaXhpbiBib3JkZXItY29sb3IoJHZhbHMuLi4pIHtcbiAgQGluY2x1ZGUgZGlyZWN0aW9uYWwtcHJvcGVydHkoYm9yZGVyLCBjb2xvciwgJHZhbHMuLi4pO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgYm9yZGVyLXJhZGl1c2Agb24gYm90aCBjb3JuZXJzIG9uIHRoZSBzaWRlIG9mIGEgYm94LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRyYWRpaVxuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQtb25lIHtcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLXRvcC1yYWRpdXMoNXB4KTtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLmVsZW1lbnQtdHdvIHtcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLWxlZnQtcmFkaXVzKDNweCk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudC1vbmUge1xuLy8vICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA1cHg7XG4vLy8gICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA1cHg7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5lbGVtZW50LXR3byB7XG4vLy8gICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDNweDtcbi8vLyAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogM3B4O1xuLy8vICAgfVxuLy8vXG4vLy8gQG91dHB1dCBgYm9yZGVyLXJhZGl1c2BcblxuQG1peGluIGJvcmRlci10b3AtcmFkaXVzKCRyYWRpaSkge1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkcmFkaWk7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkcmFkaWk7XG59XG5cbkBtaXhpbiBib3JkZXItcmlnaHQtcmFkaXVzKCRyYWRpaSkge1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogJHJhZGlpO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogJHJhZGlpO1xufVxuXG5AbWl4aW4gYm9yZGVyLWJvdHRvbS1yYWRpdXMoJHJhZGlpKSB7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRyYWRpaTtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6ICRyYWRpaTtcbn1cblxuQG1peGluIGJvcmRlci1sZWZ0LXJhZGl1cygkcmFkaWkpIHtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogJHJhZGlpO1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkcmFkaWk7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3IgdGFyZ2V0aW5nIGBib3JkZXItc3R5bGVgIG9uIHNwZWNpZmljIHNpZGVzIG9mIGEgYm94LiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBhIHNpZGUuXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICR2YWxzXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci1zdHlsZShkYXNoZWQgbnVsbCBzb2xpZCk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkO1xuLy8vICAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7bWl4aW59IGRpcmVjdGlvbmFsLXByb3BlcnR5XG4vLy9cbi8vLyBAb3V0cHV0IGBib3JkZXItc3R5bGVgXG5cbkBtaXhpbiBib3JkZXItc3R5bGUoJHZhbHMuLi4pIHtcbiAgQGluY2x1ZGUgZGlyZWN0aW9uYWwtcHJvcGVydHkoYm9yZGVyLCBzdHlsZSwgJHZhbHMuLi4pO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgYm9yZGVyLXdpZHRoYCBvbiBzcGVjaWZpYyBzaWRlcyBvZiBhIGJveC4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkdmFsc1xuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBib3JkZXItd2lkdGgoMWVtIG51bGwgMjBweCk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDIwcHg7XG4vLy8gICAgIGJvcmRlci10b3Atd2lkdGg6IDFlbTtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIHttaXhpbn0gZGlyZWN0aW9uYWwtcHJvcGVydHlcbi8vL1xuLy8vIEBvdXRwdXQgYGJvcmRlci13aWR0aGBcblxuQG1peGluIGJvcmRlci13aWR0aCgkdmFscy4uLikge1xuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShib3JkZXIsIHdpZHRoLCAkdmFscy4uLik7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBHZW5lcmF0ZXMgdmFyaWFibGVzIGZvciBhbGwgYnV0dG9ucy4gUGxlYXNlIG5vdGUgdGhhdCB5b3UgbXVzdCB1c2UgaW50ZXJwb2xhdGlvbiBvbiB0aGUgdmFyaWFibGU6IGAjeyRhbGwtYnV0dG9uc31gLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAjeyRhbGwtYnV0dG9uc30ge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjAwO1xuLy8vICAgfVxuLy8vXG4vLy8gICAjeyRhbGwtYnV0dG9ucy1mb2N1c30sXG4vLy8gICAjeyRhbGwtYnV0dG9ucy1ob3Zlcn0ge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGYwO1xuLy8vICAgfVxuLy8vXG4vLy8gICAjeyRhbGwtYnV0dG9ucy1hY3RpdmV9IHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwZjtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIGJ1dHRvbixcbi8vLyAgIGlucHV0W3R5cGU9XCJidXR0b25cIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwicmVzZXRcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YwMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgYnV0dG9uOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cImJ1dHRvblwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJyZXNldFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJzdWJtaXRcIl06Zm9jdXMsXG4vLy8gICBidXR0b246aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cInJlc2V0XCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXTpob3ZlciB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICMwZjA7XG4vLy8gICB9XG4vLy9cbi8vLyAgIGJ1dHRvbjphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJyZXNldFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwic3VibWl0XCJdOmFjdGl2ZSB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICMwMGY7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSBhc3NpZ24taW5wdXRzXG4vLy9cbi8vLyBAdHlwZSBMaXN0XG4vLy9cbi8vLyBAdG9kbyBSZW1vdmUgZG91YmxlIGFzc2lnbmVkIHZhcmlhYmxlcyAoTGluZXMgNTnigJM2MikgaW4gdjUuMC4wXG5cbiRidXR0b25zLWxpc3Q6ICdidXR0b24nLFxuICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJidXR0b25cIl0nLFxuICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJyZXNldFwiXScsXG4gICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSc7XG5cbiRhbGwtYnV0dG9uczogICAgICAgIGFzc2lnbi1pbnB1dHMoJGJ1dHRvbnMtbGlzdCk7XG4kYWxsLWJ1dHRvbnMtYWN0aXZlOiBhc3NpZ24taW5wdXRzKCRidXR0b25zLWxpc3QsIGFjdGl2ZSk7XG4kYWxsLWJ1dHRvbnMtZm9jdXM6ICBhc3NpZ24taW5wdXRzKCRidXR0b25zLWxpc3QsIGZvY3VzKTtcbiRhbGwtYnV0dG9ucy1ob3ZlcjogIGFzc2lnbi1pbnB1dHMoJGJ1dHRvbnMtbGlzdCwgaG92ZXIpO1xuXG4kYWxsLWJ1dHRvbi1pbnB1dHM6ICAgICAgICAkYWxsLWJ1dHRvbnM7XG4kYWxsLWJ1dHRvbi1pbnB1dHMtYWN0aXZlOiAkYWxsLWJ1dHRvbnMtYWN0aXZlO1xuJGFsbC1idXR0b24taW5wdXRzLWZvY3VzOiAgJGFsbC1idXR0b25zLWZvY3VzO1xuJGFsbC1idXR0b24taW5wdXRzLWhvdmVyOiAgJGFsbC1idXR0b25zLWhvdmVyO1xuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYW4gZWFzeSB3YXkgdG8gaW5jbHVkZSBhIGNsZWFyZml4IGZvciBjb250YWluaW5nIGZsb2F0cy5cbi8vL1xuLy8vIEBsaW5rIGh0dHA6Ly9jc3Ntb2pvLmNvbS9sYXRlc3RfbmV3X2NsZWFyZml4X3NvX2Zhci9cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50OjphZnRlciB7XG4vLy8gICAgIGNsZWFyOiBib3RoO1xuLy8vICAgICBjb250ZW50OiBcIlwiO1xuLy8vICAgICBkaXNwbGF5OiB0YWJsZTtcbi8vLyAgIH1cblxuQG1peGluIGNsZWFyZml4IHtcbiAgJjo6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoO1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogdGFibGU7XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFRydW5jYXRlcyB0ZXh0IGFuZCBhZGRzIGFuIGVsbGlwc2lzIHRvIHJlcHJlc2VudCBvdmVyZmxvdy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2lkdGggWzEwMCVdXG4vLy8gICBNYXgtd2lkdGggZm9yIHRoZSBzdHJpbmcgdG8gcmVzcGVjdCBiZWZvcmUgYmVpbmcgdHJ1bmNhdGVkXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgZWxsaXBzaXM7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbi8vLyAgICAgbWF4LXdpZHRoOiAxMDAlO1xuLy8vICAgICBvdmVyZmxvdzogaGlkZGVuO1xuLy8vICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbi8vLyAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbi8vLyAgICAgd29yZC13cmFwOiBub3JtYWw7XG4vLy8gICB9XG5cbkBtaXhpbiBlbGxpcHNpcygkd2lkdGg6IDEwMCUpIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXgtd2lkdGg6ICR3aWR0aDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHdvcmQtd3JhcDogbm9ybWFsO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gR2VvcmdpYSBmb250IHN0YWNrLlxuLy8vXG4vLy8gQHR5cGUgTGlzdFxuXG4kZ2VvcmdpYTogXCJHZW9yZ2lhXCIsIFwiQ2FtYnJpYVwiLCBcIlRpbWVzIE5ldyBSb21hblwiLCBcIlRpbWVzXCIsIHNlcmlmO1xuXG4vLy8gSGVsdmV0aWNhIGZvbnQgc3RhY2suXG4vLy9cbi8vLyBAdHlwZSBMaXN0XG5cbiRoZWx2ZXRpY2E6IFwiSGVsdmV0aWNhIE5ldWVcIiwgXCJIZWx2ZXRpY2FcIiwgXCJSb2JvdG9cIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuXG4vLy8gTHVjaWRhIEdyYW5kZSBmb250IHN0YWNrLlxuLy8vXG4vLy8gQHR5cGUgTGlzdFxuXG4kbHVjaWRhLWdyYW5kZTogXCJMdWNpZGEgR3JhbmRlXCIsIFwiVGFob21hXCIsIFwiVmVyZGFuYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG5cbi8vLyBNb25vc3BhY2UgZm9udCBzdGFjay5cbi8vL1xuLy8vIEB0eXBlIExpc3RcblxuJG1vbm9zcGFjZTogXCJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm9cIiwgXCJDb25zb2xhc1wiLCBcIkNvdXJpZXJcIiwgbW9ub3NwYWNlO1xuXG4vLy8gVmVyZGFuYSBmb250IHN0YWNrLlxuLy8vXG4vLy8gQHR5cGUgTGlzdFxuXG4kdmVyZGFuYTogXCJWZXJkYW5hXCIsIFwiR2VuZXZhXCIsIHNhbnMtc2VyaWY7XG4iLCIvLy8gSGlkZXMgdGhlIHRleHQgaW4gYW4gZWxlbWVudCwgY29tbW9ubHkgdXNlZCB0byBzaG93IGFuIGltYWdlLiBTb21lIGVsZW1lbnRzIHdpbGwgbmVlZCBibG9jay1sZXZlbCBzdHlsZXMgYXBwbGllZC5cbi8vL1xuLy8vIEBsaW5rIGh0dHA6Ly96ZWxkbWFuLmNvbS8yMDEyLzAzLzAxL3JlcGxhY2luZy10aGUtOTk5OXB4LWhhY2stbmV3LWltYWdlLXJlcGxhY2VtZW50XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgaGlkZS10ZXh0O1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBvdmVyZmxvdzogaGlkZGVuO1xuLy8vICAgICB0ZXh0LWluZGVudDogMTAxJTtcbi8vLyAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbi8vLyAgIH1cbi8vL1xuLy8vIEB0b2RvIFJlbW92ZSBoZWlnaHQgYXJndW1lbnQgaW4gdjUuMC4wXG5cbkBtaXhpbiBoaWRlLXRleHQoJGhlaWdodDogbnVsbCkge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LWluZGVudDogMTAxJTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICBAaWYgJGhlaWdodCB7XG4gICAgQHdhcm4gXCJUaGUgYGhpZGUtdGV4dGAgbWl4aW4gaGFzIGNoYW5nZWQgYW5kIG5vIGxvbmdlciByZXF1aXJlcyBhIGhlaWdodC4gVGhlIGhlaWdodCBhcmd1bWVudCB3aWxsIG5vIGxvbmdlciBiZSBhY2NlcHRlZCBpbiB2NS4wLjBcIjtcbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgbWFyZ2luYCBvbiBzcGVjaWZpYyBzaWRlcyBvZiBhIGJveC4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkdmFsc1xuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBtYXJnaW4obnVsbCAxMHB4IDNlbSAyMHZoKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgbWFyZ2luLWJvdHRvbTogM2VtO1xuLy8vICAgICBtYXJnaW4tbGVmdDogMjB2aDtcbi8vLyAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge21peGlufSBkaXJlY3Rpb25hbC1wcm9wZXJ0eVxuLy8vXG4vLy8gQG91dHB1dCBgbWFyZ2luYFxuXG5AbWl4aW4gbWFyZ2luKCR2YWxzLi4uKSB7XG4gIEBpbmNsdWRlIGRpcmVjdGlvbmFsLXByb3BlcnR5KG1hcmdpbiwgZmFsc2UsICR2YWxzLi4uKTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciB0YXJnZXRpbmcgYHBhZGRpbmdgIG9uIHNwZWNpZmljIHNpZGVzIG9mIGEgYm94LiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBhIHNpZGUuXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICR2YWxzXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHBhZGRpbmcoMTJ2aCBudWxsIDEwcHggNSUpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBwYWRkaW5nLWJvdHRvbTogMTBweDtcbi8vLyAgICAgcGFkZGluZy1sZWZ0OiA1JTtcbi8vLyAgICAgcGFkZGluZy10b3A6IDEydmg7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7bWl4aW59IGRpcmVjdGlvbmFsLXByb3BlcnR5XG4vLy9cbi8vLyBAb3V0cHV0IGBwYWRkaW5nYFxuXG5AbWl4aW4gcGFkZGluZygkdmFscy4uLikge1xuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShwYWRkaW5nLCBmYWxzZSwgJHZhbHMuLi4pO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHNldHRpbmcgYW4gZWxlbWVudOKAmXMgcG9zaXRpb24uIFVzZSBhIGBudWxsYCB2YWx1ZSB0byDigJxza2lw4oCdIGEgc2lkZS5cbi8vL1xuLy8vIEBwYXJhbSB7UG9zaXRpb259ICRwb3NpdGlvbiBbcmVsYXRpdmVdXG4vLy8gICBBIENTUyBwb3NpdGlvbiB2YWx1ZVxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkY29vcmRpbmF0ZXMgW251bGwgbnVsbCBudWxsIG51bGxdXG4vLy8gICBMaXN0IG9mIHZhbHVlcyB0aGF0IGNvcnJlc3BvbmQgdG8gdGhlIDQtdmFsdWUgc3ludGF4IGZvciB0aGUgZWRnZXMgb2YgYSBib3hcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgMCBudWxsIG51bGwgMTBlbSk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGxlZnQ6IDEwZW07XG4vLy8gICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbi8vLyAgICAgdG9wOiAwO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBpcy1sZW5ndGhcbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IHVucGFja1xuXG5AbWl4aW4gcG9zaXRpb24oJHBvc2l0aW9uOiByZWxhdGl2ZSwgJGNvb3JkaW5hdGVzOiBudWxsIG51bGwgbnVsbCBudWxsKSB7XG4gIEBpZiB0eXBlLW9mKCRwb3NpdGlvbikgPT0gbGlzdCB7XG4gICAgJGNvb3JkaW5hdGVzOiAkcG9zaXRpb247XG4gICAgJHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuXG4gICRjb29yZGluYXRlczogdW5wYWNrKCRjb29yZGluYXRlcyk7XG5cbiAgJG9mZnNldHM6IChcbiAgICB0b3A6ICAgIG50aCgkY29vcmRpbmF0ZXMsIDEpLFxuICAgIHJpZ2h0OiAgbnRoKCRjb29yZGluYXRlcywgMiksXG4gICAgYm90dG9tOiBudGgoJGNvb3JkaW5hdGVzLCAzKSxcbiAgICBsZWZ0OiAgIG50aCgkY29vcmRpbmF0ZXMsIDQpXG4gICk7XG5cbiAgcG9zaXRpb246ICRwb3NpdGlvbjtcblxuICBAZWFjaCAkb2Zmc2V0LCAkdmFsdWUgaW4gJG9mZnNldHMge1xuICAgIEBpZiBpcy1sZW5ndGgoJHZhbHVlKSB7XG4gICAgICAjeyRvZmZzZXR9OiAkdmFsdWU7XG4gICAgfVxuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBBIG1peGluIGZvciBnZW5lcmF0aW5nIHZlbmRvciBwcmVmaXhlcyBvbiBub24tc3RhbmRhcmRpemVkIHByb3BlcnRpZXMuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHByb3BlcnR5XG4vLy8gICBQcm9wZXJ0eSB0byBwcmVmaXhcbi8vL1xuLy8vIEBwYXJhbSB7Kn0gJHZhbHVlXG4vLy8gICBWYWx1ZSB0byB1c2Vcbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHByZWZpeGVzXG4vLy8gICBQcmVmaXhlcyB0byBkZWZpbmVcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBwcmVmaXhlcihib3JkZXItcmFkaXVzLCAxMHB4LCB3ZWJraXQgbXMgc3BlYyk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMTBweDtcbi8vLyAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAxMHB4O1xuLy8vICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge3ZhcmlhYmxlfSAkcHJlZml4LWZvci13ZWJraXRcbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRwcmVmaXgtZm9yLW1vemlsbGFcbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRwcmVmaXgtZm9yLW1pY3Jvc29mdFxuLy8vIEByZXF1aXJlIHt2YXJpYWJsZX0gJHByZWZpeC1mb3Itb3BlcmFcbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRwcmVmaXgtZm9yLXNwZWNcblxuQG1peGluIHByZWZpeGVyKCRwcm9wZXJ0eSwgJHZhbHVlLCAkcHJlZml4ZXMpIHtcbiAgQGVhY2ggJHByZWZpeCBpbiAkcHJlZml4ZXMge1xuICAgIEBpZiAkcHJlZml4ID09IHdlYmtpdCB7XG4gICAgICBAaWYgJHByZWZpeC1mb3Itd2Via2l0IHtcbiAgICAgICAgLXdlYmtpdC0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIGlmICRwcmVmaXggPT0gbW96IHtcbiAgICAgIEBpZiAkcHJlZml4LWZvci1tb3ppbGxhIHtcbiAgICAgICAgLW1vei0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIGlmICRwcmVmaXggPT0gbXMge1xuICAgICAgQGlmICRwcmVmaXgtZm9yLW1pY3Jvc29mdCB7XG4gICAgICAgIC1tcy0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIGlmICRwcmVmaXggPT0gbyB7XG4gICAgICBAaWYgJHByZWZpeC1mb3Itb3BlcmEge1xuICAgICAgICAtby0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIGlmICRwcmVmaXggPT0gc3BlYyB7XG4gICAgICBAaWYgJHByZWZpeC1mb3Itc3BlYyB7XG4gICAgICAgICN7JHByb3BlcnR5fTogJHZhbHVlO1xuICAgICAgfVxuICAgIH0gQGVsc2UgIHtcbiAgICAgIEB3YXJuIFwiVW5yZWNvZ25pemVkIHByZWZpeDogI3skcHJlZml4fVwiO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZGlzYWJsZS1wcmVmaXgtZm9yLWFsbCgpIHtcbiAgJHByZWZpeC1mb3Itd2Via2l0OiAgICBmYWxzZSAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1tb3ppbGxhOiAgIGZhbHNlICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLW1pY3Jvc29mdDogZmFsc2UgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3Itb3BlcmE6ICAgICBmYWxzZSAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1zcGVjOiAgICAgIGZhbHNlICFnbG9iYWw7XG59XG4iLCJAbWl4aW4gcmV0aW5hLWltYWdlKCRmaWxlbmFtZSwgJGJhY2tncm91bmQtc2l6ZSwgJGV4dGVuc2lvbjogcG5nLCAkcmV0aW5hLWZpbGVuYW1lOiBudWxsLCAkcmV0aW5hLXN1ZmZpeDogXzJ4LCAkYXNzZXQtcGlwZWxpbmU6ICRhc3NldC1waXBlbGluZSkge1xuICBAaWYgJGFzc2V0LXBpcGVsaW5lIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBpbWFnZS11cmwoXCIjeyRmaWxlbmFtZX0uI3skZXh0ZW5zaW9ufVwiKTtcbiAgfSBAZWxzZSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogICAgICAgdXJsKFwiI3skZmlsZW5hbWV9LiN7JGV4dGVuc2lvbn1cIik7XG4gIH1cblxuICBAaW5jbHVkZSBoaWRwaSB7XG4gICAgQGlmICRhc3NldC1waXBlbGluZSB7XG4gICAgICBAaWYgJHJldGluYS1maWxlbmFtZSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGltYWdlLXVybChcIiN7JHJldGluYS1maWxlbmFtZX0uI3skZXh0ZW5zaW9ufVwiKTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBpbWFnZS11cmwoXCIjeyRmaWxlbmFtZX0jeyRyZXRpbmEtc3VmZml4fS4jeyRleHRlbnNpb259XCIpO1xuICAgICAgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgQGlmICRyZXRpbmEtZmlsZW5hbWUge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIjeyRyZXRpbmEtZmlsZW5hbWV9LiN7JGV4dGVuc2lvbn1cIik7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiI3skZmlsZW5hbWV9I3skcmV0aW5hLXN1ZmZpeH0uI3skZXh0ZW5zaW9ufVwiKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBiYWNrZ3JvdW5kLXNpemU6ICRiYWNrZ3JvdW5kLXNpemU7XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFNldHMgdGhlIGB3aWR0aGAgYW5kIGBoZWlnaHRgIG9mIHRoZSBlbGVtZW50LlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkc2l6ZVxuLy8vICAgQSBsaXN0IG9mIGF0IG1vc3QgMiBzaXplIHZhbHVlcy5cbi8vL1xuLy8vICAgSWYgdGhlcmUgaXMgb25seSBhIHNpbmdsZSB2YWx1ZSBpbiBgJHNpemVgIGl0IGlzIHVzZWQgZm9yIGJvdGggd2lkdGggYW5kIGhlaWdodC4gQWxsIHVuaXRzIGFyZSBzdXBwb3J0ZWQuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5maXJzdC1lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgc2l6ZSgyZW0pO1xuLy8vICAgfVxuLy8vXG4vLy8gICAuc2Vjb25kLWVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBzaXplKGF1dG8gMTBlbSk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZmlyc3QtZWxlbWVudCB7XG4vLy8gICAgIHdpZHRoOiAyZW07XG4vLy8gICAgIGhlaWdodDogMmVtO1xuLy8vICAgfVxuLy8vXG4vLy8gICAuc2Vjb25kLWVsZW1lbnQge1xuLy8vICAgICB3aWR0aDogYXV0bztcbi8vLyAgICAgaGVpZ2h0OiAxMGVtO1xuLy8vICAgfVxuLy8vXG4vLy8gQHRvZG8gUmVmYWN0b3IgaW4gNS4wLjAgdG8gdXNlIGEgY29tbWEtc2VwYXJhdGVkIGFyZ3VtZW50XG5cbkBtaXhpbiBzaXplKCR2YWx1ZSkge1xuICAkd2lkdGg6IG50aCgkdmFsdWUsIDEpO1xuICAkaGVpZ2h0OiAkd2lkdGg7XG5cbiAgQGlmIGxlbmd0aCgkdmFsdWUpID4gMSB7XG4gICAgJGhlaWdodDogbnRoKCR2YWx1ZSwgMik7XG4gIH1cblxuICBAaWYgaXMtc2l6ZSgkaGVpZ2h0KSB7XG4gICAgaGVpZ2h0OiAkaGVpZ2h0O1xuICB9IEBlbHNlIHtcbiAgICBAd2FybiBcImAjeyRoZWlnaHR9YCBpcyBub3QgYSB2YWxpZCBsZW5ndGggZm9yIHRoZSBgJGhlaWdodGAgcGFyYW1ldGVyIGluIHRoZSBgc2l6ZWAgbWl4aW4uXCI7XG4gIH1cblxuICBAaWYgaXMtc2l6ZSgkd2lkdGgpIHtcbiAgICB3aWR0aDogJHdpZHRoO1xuICB9IEBlbHNlIHtcbiAgICBAd2FybiBcImAjeyR3aWR0aH1gIGlzIG5vdCBhIHZhbGlkIGxlbmd0aCBmb3IgdGhlIGAkd2lkdGhgIHBhcmFtZXRlciBpbiB0aGUgYHNpemVgIG1peGluLlwiO1xuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBHZW5lcmF0ZXMgdmFyaWFibGVzIGZvciBhbGwgdGV4dC1iYXNlZCBpbnB1dHMuIFBsZWFzZSBub3RlIHRoYXQgeW91IG11c3QgdXNlIGludGVycG9sYXRpb24gb24gdGhlIHZhcmlhYmxlOiBgI3skYWxsLXRleHQtaW5wdXRzfWAuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgICN7JGFsbC10ZXh0LWlucHV0c30ge1xuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjZjAwO1xuLy8vICAgfVxuLy8vXG4vLy8gICAjeyRhbGwtdGV4dC1pbnB1dHMtZm9jdXN9LFxuLy8vICAgI3skYWxsLXRleHQtaW5wdXRzLWhvdmVyfSB7XG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICMwZjA7XG4vLy8gICB9XG4vLy9cbi8vLyAgICN7JGFsbC10ZXh0LWlucHV0cy1hY3RpdmV9IHtcbi8vLyAgICAgYm9yZGVyOiAxcHggc29saWQgIzAwZjtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIGlucHV0W3R5cGU9XCJjb2xvclwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRlXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cImVtYWlsXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cIm1vbnRoXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cIm51bWJlclwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJzZWFyY2hcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwidGVsXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cInRleHRcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwidGltZVwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ1cmxcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwid2Vla1wiXSxcbi8vLyAgIHRleHRhcmVhIHtcbi8vLyAgICAgYm9yZGVyOiAxcHggc29saWQgI2YwMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgaW5wdXRbdHlwZT1cImNvbG9yXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGVcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwiZW1haWxcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwibW9udGhcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZWxcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwidGV4dFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0aW1lXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cInVybFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJ3ZWVrXCJdOmZvY3VzLFxuLy8vICAgdGV4dGFyZWE6Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwiY29sb3JcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZVwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZVwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJlbWFpbFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJtb250aFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJudW1iZXJcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cInRlbFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cInRpbWVcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwidXJsXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cIndlZWtcIl06aG92ZXIsXG4vLy8gICB0ZXh0YXJlYTpob3ZlciB7XG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICMwZjA7XG4vLy8gICB9XG4vLy9cbi8vLyAgIGlucHV0W3R5cGU9XCJjb2xvclwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZVwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJlbWFpbFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwibW9udGhcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cIm51bWJlclwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwidGVsXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0aW1lXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ1cmxcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cIndlZWtcIl06YWN0aXZlLFxuLy8vICAgdGV4dGFyZWE6YWN0aXZlIHtcbi8vLyAgICAgYm9yZGVyOiAxcHggc29saWQgIzAwZjtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIGFzc2lnbi1pbnB1dHNcbi8vL1xuLy8vIEB0eXBlIExpc3RcblxuJHRleHQtaW5wdXRzLWxpc3Q6ICdpbnB1dFt0eXBlPVwiY29sb3JcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwiZGF0ZVwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJkYXRldGltZVwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJlbWFpbFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJtb250aFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJudW1iZXJcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwic2VhcmNoXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInRlbFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJ0ZXh0XCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInRpbWVcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwidXJsXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cIndlZWtcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dDpub3QoW3R5cGVdKScsXG4gICAgICAgICAgICAgICAgICAgJ3RleHRhcmVhJztcblxuJGFsbC10ZXh0LWlucHV0czogICAgICAgIGFzc2lnbi1pbnB1dHMoJHRleHQtaW5wdXRzLWxpc3QpO1xuJGFsbC10ZXh0LWlucHV0cy1hY3RpdmU6IGFzc2lnbi1pbnB1dHMoJHRleHQtaW5wdXRzLWxpc3QsIGFjdGl2ZSk7XG4kYWxsLXRleHQtaW5wdXRzLWZvY3VzOiAgYXNzaWduLWlucHV0cygkdGV4dC1pbnB1dHMtbGlzdCwgZm9jdXMpO1xuJGFsbC10ZXh0LWlucHV0cy1ob3ZlcjogIGFzc2lnbi1pbnB1dHMoJHRleHQtaW5wdXRzLWxpc3QsIGhvdmVyKTtcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIENTUyBjdWJpYy1iZXppZXIgdGltaW5nIGZ1bmN0aW9ucy4gVGltaW5nIGZ1bmN0aW9ucyBjb3VydGVzeSBvZiBqcXVlcnkuZWFzaWUgKGdpdGh1Yi5jb20vamF1a2lhL2Vhc2llKVxuLy8vXG4vLy8gVGltaW5nIGZ1bmN0aW9ucyBhcmUgdGhlIHNhbWUgYXMgZGVtb2VkIGhlcmU6IGh0dHA6Ly9qcXVlcnl1aS5jb20vcmVzb3VyY2VzL2RlbW9zL2VmZmVjdC9lYXNpbmcuaHRtbFxuLy8vXG4vLy8gQHR5cGUgY3ViaWMtYmV6aWVyXG5cbiRlYXNlLWluLXF1YWQ6ICAgICAgY3ViaWMtYmV6aWVyKDAuNTUwLCAgMC4wODUsIDAuNjgwLCAwLjUzMCk7XG4kZWFzZS1pbi1jdWJpYzogICAgIGN1YmljLWJlemllcigwLjU1MCwgIDAuMDU1LCAwLjY3NSwgMC4xOTApO1xuJGVhc2UtaW4tcXVhcnQ6ICAgICBjdWJpYy1iZXppZXIoMC44OTUsICAwLjAzMCwgMC42ODUsIDAuMjIwKTtcbiRlYXNlLWluLXF1aW50OiAgICAgY3ViaWMtYmV6aWVyKDAuNzU1LCAgMC4wNTAsIDAuODU1LCAwLjA2MCk7XG4kZWFzZS1pbi1zaW5lOiAgICAgIGN1YmljLWJlemllcigwLjQ3MCwgIDAuMDAwLCAwLjc0NSwgMC43MTUpO1xuJGVhc2UtaW4tZXhwbzogICAgICBjdWJpYy1iZXppZXIoMC45NTAsICAwLjA1MCwgMC43OTUsIDAuMDM1KTtcbiRlYXNlLWluLWNpcmM6ICAgICAgY3ViaWMtYmV6aWVyKDAuNjAwLCAgMC4wNDAsIDAuOTgwLCAwLjMzNSk7XG4kZWFzZS1pbi1iYWNrOiAgICAgIGN1YmljLWJlemllcigwLjYwMCwgLTAuMjgwLCAwLjczNSwgMC4wNDUpO1xuXG4kZWFzZS1vdXQtcXVhZDogICAgIGN1YmljLWJlemllcigwLjI1MCwgIDAuNDYwLCAwLjQ1MCwgMC45NDApO1xuJGVhc2Utb3V0LWN1YmljOiAgICBjdWJpYy1iZXppZXIoMC4yMTUsICAwLjYxMCwgMC4zNTUsIDEuMDAwKTtcbiRlYXNlLW91dC1xdWFydDogICAgY3ViaWMtYmV6aWVyKDAuMTY1LCAgMC44NDAsIDAuNDQwLCAxLjAwMCk7XG4kZWFzZS1vdXQtcXVpbnQ6ICAgIGN1YmljLWJlemllcigwLjIzMCwgIDEuMDAwLCAwLjMyMCwgMS4wMDApO1xuJGVhc2Utb3V0LXNpbmU6ICAgICBjdWJpYy1iZXppZXIoMC4zOTAsICAwLjU3NSwgMC41NjUsIDEuMDAwKTtcbiRlYXNlLW91dC1leHBvOiAgICAgY3ViaWMtYmV6aWVyKDAuMTkwLCAgMS4wMDAsIDAuMjIwLCAxLjAwMCk7XG4kZWFzZS1vdXQtY2lyYzogICAgIGN1YmljLWJlemllcigwLjA3NSwgIDAuODIwLCAwLjE2NSwgMS4wMDApO1xuJGVhc2Utb3V0LWJhY2s6ICAgICBjdWJpYy1iZXppZXIoMC4xNzUsICAwLjg4NSwgMC4zMjAsIDEuMjc1KTtcblxuJGVhc2UtaW4tb3V0LXF1YWQ6ICBjdWJpYy1iZXppZXIoMC40NTUsICAwLjAzMCwgMC41MTUsIDAuOTU1KTtcbiRlYXNlLWluLW91dC1jdWJpYzogY3ViaWMtYmV6aWVyKDAuNjQ1LCAgMC4wNDUsIDAuMzU1LCAxLjAwMCk7XG4kZWFzZS1pbi1vdXQtcXVhcnQ6IGN1YmljLWJlemllcigwLjc3MCwgIDAuMDAwLCAwLjE3NSwgMS4wMDApO1xuJGVhc2UtaW4tb3V0LXF1aW50OiBjdWJpYy1iZXppZXIoMC44NjAsICAwLjAwMCwgMC4wNzAsIDEuMDAwKTtcbiRlYXNlLWluLW91dC1zaW5lOiAgY3ViaWMtYmV6aWVyKDAuNDQ1LCAgMC4wNTAsIDAuNTUwLCAwLjk1MCk7XG4kZWFzZS1pbi1vdXQtZXhwbzogIGN1YmljLWJlemllcigxLjAwMCwgIDAuMDAwLCAwLjAwMCwgMS4wMDApO1xuJGVhc2UtaW4tb3V0LWNpcmM6ICBjdWJpYy1iZXppZXIoMC43ODUsICAwLjEzNSwgMC4xNTAsIDAuODYwKTtcbiRlYXNlLWluLW91dC1iYWNrOiAgY3ViaWMtYmV6aWVyKDAuNjgwLCAtMC41NTAsIDAuMjY1LCAxLjU1MCk7XG4iLCJAbWl4aW4gdHJpYW5nbGUoJHNpemUsICRjb2xvciwgJGRpcmVjdGlvbikge1xuICAkd2lkdGg6IG50aCgkc2l6ZSwgMSk7XG4gICRoZWlnaHQ6IG50aCgkc2l6ZSwgbGVuZ3RoKCRzaXplKSk7XG4gICRmb3JlZ3JvdW5kLWNvbG9yOiBudGgoJGNvbG9yLCAxKTtcbiAgJGJhY2tncm91bmQtY29sb3I6IGlmKGxlbmd0aCgkY29sb3IpID09IDIsIG50aCgkY29sb3IsIDIpLCB0cmFuc3BhcmVudCk7XG4gIGhlaWdodDogMDtcbiAgd2lkdGg6IDA7XG5cbiAgQGlmICgkZGlyZWN0aW9uID09IHVwKSBvciAoJGRpcmVjdGlvbiA9PSBkb3duKSBvciAoJGRpcmVjdGlvbiA9PSByaWdodCkgb3IgKCRkaXJlY3Rpb24gPT0gbGVmdCkge1xuICAgICR3aWR0aDogJHdpZHRoIC8gMjtcbiAgICAkaGVpZ2h0OiBpZihsZW5ndGgoJHNpemUpID4gMSwgJGhlaWdodCwgJGhlaWdodC8yKTtcblxuICAgIEBpZiAkZGlyZWN0aW9uID09IHVwIHtcbiAgICAgIGJvcmRlci1ib3R0b206ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItbGVmdDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IHJpZ2h0IHtcbiAgICAgIGJvcmRlci1ib3R0b206ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1sZWZ0OiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXRvcDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBkb3duIHtcbiAgICAgIGJvcmRlci1sZWZ0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci10b3A6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IGxlZnQge1xuICAgICAgYm9yZGVyLWJvdHRvbTogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXRvcDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH1cbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSB1cC1yaWdodCkgb3IgKCRkaXJlY3Rpb24gPT0gdXAtbGVmdCkge1xuICAgIGJvcmRlci10b3A6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG5cbiAgICBAaWYgJGRpcmVjdGlvbiA9PSB1cC1yaWdodCB7XG4gICAgICBib3JkZXItbGVmdDogICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gdXAtbGVmdCB7XG4gICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9XG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gZG93bi1yaWdodCkgb3IgKCRkaXJlY3Rpb24gPT0gZG93bi1sZWZ0KSB7XG4gICAgYm9yZGVyLWJvdHRvbTogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcblxuICAgIEBpZiAkZGlyZWN0aW9uID09IGRvd24tcmlnaHQge1xuICAgICAgYm9yZGVyLWxlZnQ6ICAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IGRvd24tbGVmdCB7XG4gICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9XG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gaW5zZXQtdXApIHtcbiAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAkaGVpZ2h0ICR3aWR0aDtcbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC1kb3duKSB7XG4gICAgYm9yZGVyLWNvbG9yOiAkZm9yZWdyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogJGhlaWdodCAkd2lkdGg7XG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gaW5zZXQtcmlnaHQpIHtcbiAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAkd2lkdGggJGhlaWdodDtcbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC1sZWZ0KSB7XG4gICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvciAkZm9yZWdyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogJHdpZHRoICRoZWlnaHQ7XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGFuIGVhc3kgd2F5IHRvIGNoYW5nZSB0aGUgYHdvcmQtd3JhcGAgcHJvcGVydHkuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHdyYXAgW2JyZWFrLXdvcmRdXG4vLy8gICBWYWx1ZSBmb3IgdGhlIGB3b3JkLWJyZWFrYCBwcm9wZXJ0eS5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLndyYXBwZXIge1xuLy8vICAgICBAaW5jbHVkZSB3b3JkLXdyYXAoYnJlYWstd29yZCk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAud3JhcHBlciB7XG4vLy8gICAgIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG4vLy8gICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbi8vLyAgICAgd29yZC13cmFwOiBicmVhay13b3JkO1xuLy8vICAgfVxuXG5AbWl4aW4gd29yZC13cmFwKCR3cmFwOiBicmVhay13b3JkKSB7XG4gIG92ZXJmbG93LXdyYXA6ICR3cmFwO1xuICB3b3JkLXdyYXA6ICR3cmFwO1xuXG4gIEBpZiAkd3JhcCA9PSBicmVhay13b3JkIHtcbiAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG4gIH0gQGVsc2Uge1xuICAgIHdvcmQtYnJlYWs6ICR3cmFwO1xuICB9XG59XG4iLCIvLyBUaGUgZm9sbG93aW5nIGZlYXR1cmVzIGhhdmUgYmVlbiBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgTUFKT1IgdmVyc2lvbiByZWxlYXNlXG5cbkBtaXhpbiBpbmxpbmUtYmxvY2sge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgQHdhcm4gXCJUaGUgaW5saW5lLWJsb2NrIG1peGluIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIHJlbGVhc2VcIjtcbn1cblxuQG1peGluIGJ1dHRvbiAoJHN0eWxlOiBzaW1wbGUsICRiYXNlLWNvbG9yOiAjNDI5NGYwLCAkdGV4dC1zaXplOiBpbmhlcml0LCAkcGFkZGluZzogN3B4IDE4cHgpIHtcblxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IHN0cmluZyBhbmQgdHlwZS1vZigkYmFzZS1jb2xvcikgPT0gY29sb3Ige1xuICAgIEBpbmNsdWRlIGJ1dHRvbnN0eWxlKCRzdHlsZSwgJGJhc2UtY29sb3IsICR0ZXh0LXNpemUsICRwYWRkaW5nKTtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRzdHlsZSkgPT0gc3RyaW5nIGFuZCB0eXBlLW9mKCRiYXNlLWNvbG9yKSA9PSBudW1iZXIge1xuICAgICRwYWRkaW5nOiAkdGV4dC1zaXplO1xuICAgICR0ZXh0LXNpemU6ICRiYXNlLWNvbG9yO1xuICAgICRiYXNlLWNvbG9yOiAjNDI5NGYwO1xuXG4gICAgQGlmICRwYWRkaW5nID09IGluaGVyaXQge1xuICAgICAgJHBhZGRpbmc6IDdweCAxOHB4O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJ1dHRvbnN0eWxlKCRzdHlsZSwgJGJhc2UtY29sb3IsICR0ZXh0LXNpemUsICRwYWRkaW5nKTtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRzdHlsZSkgPT0gY29sb3IgYW5kIHR5cGUtb2YoJGJhc2UtY29sb3IpID09IGNvbG9yIHtcbiAgICAkYmFzZS1jb2xvcjogJHN0eWxlO1xuICAgICRzdHlsZTogc2ltcGxlO1xuICAgIEBpbmNsdWRlIGJ1dHRvbnN0eWxlKCRzdHlsZSwgJGJhc2UtY29sb3IsICR0ZXh0LXNpemUsICRwYWRkaW5nKTtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRzdHlsZSkgPT0gY29sb3IgYW5kIHR5cGUtb2YoJGJhc2UtY29sb3IpID09IG51bWJlciB7XG4gICAgJHBhZGRpbmc6ICR0ZXh0LXNpemU7XG4gICAgJHRleHQtc2l6ZTogJGJhc2UtY29sb3I7XG4gICAgJGJhc2UtY29sb3I6ICRzdHlsZTtcbiAgICAkc3R5bGU6IHNpbXBsZTtcblxuICAgIEBpZiAkcGFkZGluZyA9PSBpbmhlcml0IHtcbiAgICAgICRwYWRkaW5nOiA3cHggMThweDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XG4gIH1cblxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IG51bWJlciB7XG4gICAgJHBhZGRpbmc6ICRiYXNlLWNvbG9yO1xuICAgICR0ZXh0LXNpemU6ICRzdHlsZTtcbiAgICAkYmFzZS1jb2xvcjogIzQyOTRmMDtcbiAgICAkc3R5bGU6IHNpbXBsZTtcblxuICAgIEBpZiAkcGFkZGluZyA9PSAjNDI5NGYwIHtcbiAgICAgICRwYWRkaW5nOiA3cHggMThweDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XG4gIH1cblxuICAmOmRpc2FibGVkIHtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIG9wYWNpdHk6IDAuNTtcbiAgfVxuXG4gIEB3YXJuIFwiVGhlIGJ1dHRvbiBtaXhpbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiByZWxlYXNlXCI7XG59XG5cbi8vIFNlbGVjdG9yIFN0eWxlIEJ1dHRvblxuQG1peGluIGJ1dHRvbnN0eWxlKCR0eXBlLCAkYi1jb2xvciwgJHQtc2l6ZSwgJHBhZCkge1xuICAvLyBHcmF5c2NhbGUgYnV0dG9uXG4gIEBpZiAkdHlwZSA9PSBzaW1wbGUgYW5kICRiLWNvbG9yID09IGdyYXlzY2FsZSgkYi1jb2xvcikge1xuICAgIEBpbmNsdWRlIHNpbXBsZSgkYi1jb2xvciwgdHJ1ZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICBAaWYgJHR5cGUgPT0gc2hpbnkgYW5kICRiLWNvbG9yID09IGdyYXlzY2FsZSgkYi1jb2xvcikge1xuICAgIEBpbmNsdWRlIHNoaW55KCRiLWNvbG9yLCB0cnVlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxuXG4gIEBpZiAkdHlwZSA9PSBwaWxsIGFuZCAkYi1jb2xvciA9PSBncmF5c2NhbGUoJGItY29sb3IpIHtcbiAgICBAaW5jbHVkZSBwaWxsKCRiLWNvbG9yLCB0cnVlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxuXG4gIEBpZiAkdHlwZSA9PSBmbGF0IGFuZCAkYi1jb2xvciA9PSBncmF5c2NhbGUoJGItY29sb3IpIHtcbiAgICBAaW5jbHVkZSBmbGF0KCRiLWNvbG9yLCB0cnVlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxuXG4gIC8vIENvbG9yZWQgYnV0dG9uXG4gIEBpZiAkdHlwZSA9PSBzaW1wbGUge1xuICAgIEBpbmNsdWRlIHNpbXBsZSgkYi1jb2xvciwgZmFsc2UsICR0LXNpemUsICRwYWQpO1xuICB9XG5cbiAgQGVsc2UgaWYgJHR5cGUgPT0gc2hpbnkge1xuICAgIEBpbmNsdWRlIHNoaW55KCRiLWNvbG9yLCBmYWxzZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICBAZWxzZSBpZiAkdHlwZSA9PSBwaWxsIHtcbiAgICBAaW5jbHVkZSBwaWxsKCRiLWNvbG9yLCBmYWxzZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICBAZWxzZSBpZiAkdHlwZSA9PSBmbGF0IHtcbiAgICBAaW5jbHVkZSBmbGF0KCRiLWNvbG9yLCBmYWxzZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cbn1cblxuLy8gU2ltcGxlIEJ1dHRvblxuQG1peGluIHNpbXBsZSgkYmFzZS1jb2xvciwgJGdyYXlzY2FsZTogZmFsc2UsICR0ZXh0c2l6ZTogaW5oZXJpdCwgJHBhZGRpbmc6IDdweCAxOHB4KSB7XG4gICRjb2xvcjogICAgICAgICBoc2woMCwgMCwgMTAwJSk7XG4gICRib3JkZXI6ICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAgOSUsICAkbGlnaHRuZXNzOiAtMTQlKTtcbiAgJGluc2V0LXNoYWRvdzogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IC04JSwgICRsaWdodG5lc3M6ICAxNSUpO1xuICAkc3RvcC1ncmFkaWVudDogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogIDklLCAgJGxpZ2h0bmVzczogLTExJSk7XG4gICR0ZXh0LXNoYWRvdzogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAgMTUlLCAkbGlnaHRuZXNzOiAtMTglKTtcblxuICBAaWYgaXMtbGlnaHQoJGJhc2UtY29sb3IpIHtcbiAgICAkY29sb3I6ICAgICAgIGhzbCgwLCAwLCAyMCUpO1xuICAgICR0ZXh0LXNoYWRvdzogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogMTAlLCAkbGlnaHRuZXNzOiA0JSk7XG4gIH1cblxuICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAkYm9yZGVyOiAgICAgICAgZ3JheXNjYWxlKCRib3JkZXIpO1xuICAgICRpbnNldC1zaGFkb3c6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdyk7XG4gICAgJHN0b3AtZ3JhZGllbnQ6IGdyYXlzY2FsZSgkc3RvcC1ncmFkaWVudCk7XG4gICAgJHRleHQtc2hhZG93OiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3cpO1xuICB9XG5cbiAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgJGluc2V0LXNoYWRvdztcbiAgY29sb3I6ICRjb2xvcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6ICR0ZXh0c2l6ZTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCAoJGJhc2UtY29sb3IsICRzdG9wLWdyYWRpZW50KTtcbiAgcGFkZGluZzogJHBhZGRpbmc7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC1zaGFkb3c6IDAgMXB4IDAgJHRleHQtc2hhZG93O1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuXG4gICY6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICAgICRiYXNlLWNvbG9yLWhvdmVyOiAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAtNCUsICRsaWdodG5lc3M6IC01JSk7XG4gICAgJGluc2V0LXNoYWRvdy1ob3ZlcjogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IC03JSwgJGxpZ2h0bmVzczogIDUlKTtcbiAgICAkc3RvcC1ncmFkaWVudC1ob3ZlcjogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogIDglLCAkbGlnaHRuZXNzOiAtMTQlKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGJhc2UtY29sb3ItaG92ZXI6ICAgIGdyYXlzY2FsZSgkYmFzZS1jb2xvci1ob3Zlcik7XG4gICAgICAkaW5zZXQtc2hhZG93LWhvdmVyOiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3ctaG92ZXIpO1xuICAgICAgJHN0b3AtZ3JhZGllbnQtaG92ZXI6IGdyYXlzY2FsZSgkc3RvcC1ncmFkaWVudC1ob3Zlcik7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50ICgkYmFzZS1jb2xvci1ob3ZlciwgJHN0b3AtZ3JhZGllbnQtaG92ZXIpO1xuXG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCAwICRpbnNldC1zaGFkb3ctaG92ZXI7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG5cbiAgJjphY3RpdmU6bm90KDpkaXNhYmxlZCksXG4gICY6Zm9jdXM6bm90KDpkaXNhYmxlZCkge1xuICAgICRib3JkZXItYWN0aXZlOiAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiA5JSwgJGxpZ2h0bmVzczogLTE0JSk7XG4gICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDclLCAkbGlnaHRuZXNzOiAtMTclKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGJvcmRlci1hY3RpdmU6ICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyLWFjdGl2ZSk7XG4gICAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogZ3JheXNjYWxlKCRpbnNldC1zaGFkb3ctYWN0aXZlKTtcbiAgICB9XG5cbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLWFjdGl2ZTtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgOHB4IDRweCAkaW5zZXQtc2hhZG93LWFjdGl2ZSwgaW5zZXQgMCAwIDhweCA0cHggJGluc2V0LXNoYWRvdy1hY3RpdmU7XG4gIH1cbn1cblxuLy8gU2hpbnkgQnV0dG9uXG5AbWl4aW4gc2hpbnkoJGJhc2UtY29sb3IsICRncmF5c2NhbGU6IGZhbHNlLCAkdGV4dHNpemU6IGluaGVyaXQsICRwYWRkaW5nOiA3cHggMThweCkge1xuICAkY29sb3I6ICAgICAgICAgaHNsKDAsIDAsIDEwMCUpO1xuICAkYm9yZGVyOiAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTE3LCAkZ3JlZW46IC0xMTEsICRibHVlOiAtODEpO1xuICAkYm9yZGVyLWJvdHRvbTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTI2LCAkZ3JlZW46IC0xMjcsICRibHVlOiAtMTIyKTtcbiAgJGZvdXJ0aC1zdG9wOiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTc5LCAgJGdyZWVuOiAtNzAsICAkYmx1ZTogLTQ2KTtcbiAgJGluc2V0LXNoYWRvdzogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogIDM3LCAgJGdyZWVuOiAgMjksICAkYmx1ZTogIDEyKTtcbiAgJHNlY29uZC1zdG9wOiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTU2LCAgJGdyZWVuOiAtNTAsICAkYmx1ZTogLTMzKTtcbiAgJHRleHQtc2hhZG93OiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTE0MCwgJGdyZWVuOiAtMTQxLCAkYmx1ZTogLTExNCk7XG4gICR0aGlyZC1zdG9wOiAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC04NiwgICRncmVlbjogLTc1LCAgJGJsdWU6IC00OCk7XG5cbiAgQGlmIGlzLWxpZ2h0KCRiYXNlLWNvbG9yKSB7XG4gICAgJGNvbG9yOiAgICAgICBoc2woMCwgMCwgMjAlKTtcbiAgICAkdGV4dC1zaGFkb3c6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDEwJSwgJGxpZ2h0bmVzczogNCUpO1xuICB9XG5cbiAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgJGJvcmRlcjogICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyKTtcbiAgICAkYm9yZGVyLWJvdHRvbTogZ3JheXNjYWxlKCRib3JkZXItYm90dG9tKTtcbiAgICAkZm91cnRoLXN0b3A6ICAgZ3JheXNjYWxlKCRmb3VydGgtc3RvcCk7XG4gICAgJGluc2V0LXNoYWRvdzogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93KTtcbiAgICAkc2Vjb25kLXN0b3A6ICAgZ3JheXNjYWxlKCRzZWNvbmQtc3RvcCk7XG4gICAgJHRleHQtc2hhZG93OiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3cpO1xuICAgICR0aGlyZC1zdG9wOiAgICBncmF5c2NhbGUoJHRoaXJkLXN0b3ApO1xuICB9XG5cbiAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50KHRvcCwgJGJhc2UtY29sb3IgMCUsICRzZWNvbmQtc3RvcCA1MCUsICR0aGlyZC1zdG9wIDUwJSwgJGZvdXJ0aC1zdG9wIDEwMCUpO1xuXG4gIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXI7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkYm9yZGVyLWJvdHRvbTtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgJGluc2V0LXNoYWRvdztcbiAgY29sb3I6ICRjb2xvcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6ICR0ZXh0c2l6ZTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC1zaGFkb3c6IDAgLTFweCAxcHggJHRleHQtc2hhZG93O1xuXG4gICY6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICAgICRmaXJzdC1zdG9wLWhvdmVyOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTMsICRncmVlbjogLTE1LCAkYmx1ZTogLTE4KTtcbiAgICAkc2Vjb25kLXN0b3AtaG92ZXI6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTY2LCAkZ3JlZW46IC02MiwgJGJsdWU6IC01MSk7XG4gICAgJHRoaXJkLXN0b3AtaG92ZXI6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC05MywgJGdyZWVuOiAtODUsICRibHVlOiAtNjYpO1xuICAgICRmb3VydGgtc3RvcC1ob3ZlcjogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtODYsICRncmVlbjogLTgwLCAkYmx1ZTogLTYzKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGZpcnN0LXN0b3AtaG92ZXI6ICBncmF5c2NhbGUoJGZpcnN0LXN0b3AtaG92ZXIpO1xuICAgICAgJHNlY29uZC1zdG9wLWhvdmVyOiBncmF5c2NhbGUoJHNlY29uZC1zdG9wLWhvdmVyKTtcbiAgICAgICR0aGlyZC1zdG9wLWhvdmVyOiAgZ3JheXNjYWxlKCR0aGlyZC1zdG9wLWhvdmVyKTtcbiAgICAgICRmb3VydGgtc3RvcC1ob3ZlcjogZ3JheXNjYWxlKCRmb3VydGgtc3RvcC1ob3Zlcik7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50KHRvcCwgJGZpcnN0LXN0b3AtaG92ZXIgIDAlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzZWNvbmQtc3RvcC1ob3ZlciA1MCUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXJkLXN0b3AtaG92ZXIgIDUwJSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZm91cnRoLXN0b3AtaG92ZXIgMTAwJSk7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG5cbiAgJjphY3RpdmU6bm90KDpkaXNhYmxlZCksXG4gICY6Zm9jdXM6bm90KDpkaXNhYmxlZCkge1xuICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC0xMTEsICRncmVlbjogLTExNiwgJGJsdWU6IC0xMjIpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogZ3JheXNjYWxlKCRpbnNldC1zaGFkb3ctYWN0aXZlKTtcbiAgICB9XG5cbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMjBweCAwICRpbnNldC1zaGFkb3ctYWN0aXZlO1xuICB9XG59XG5cbi8vIFBpbGwgQnV0dG9uXG5AbWl4aW4gcGlsbCgkYmFzZS1jb2xvciwgJGdyYXlzY2FsZTogZmFsc2UsICR0ZXh0c2l6ZTogaW5oZXJpdCwgJHBhZGRpbmc6IDdweCAxOHB4KSB7XG4gICRjb2xvcjogICAgICAgICBoc2woMCwgMCwgMTAwJSk7XG4gICRib3JkZXItYm90dG9tOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA4LCAkc2F0dXJhdGlvbjogLTExJSwgJGxpZ2h0bmVzczogLTI2JSk7XG4gICRib3JkZXItc2lkZXM6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA0LCAkc2F0dXJhdGlvbjogLTIxJSwgJGxpZ2h0bmVzczogLTIxJSk7XG4gICRib3JkZXItdG9wOiAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IC0xLCAkc2F0dXJhdGlvbjogLTMwJSwgJGxpZ2h0bmVzczogLTE1JSk7XG4gICRpbnNldC1zaGFkb3c6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IC0xLCAkc2F0dXJhdGlvbjogLTElLCAgJGxpZ2h0bmVzczogIDclKTtcbiAgJHN0b3AtZ3JhZGllbnQ6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDgsICRzYXR1cmF0aW9uOiAgMTQlLCAkbGlnaHRuZXNzOiAtMTAlKTtcbiAgJHRleHQtc2hhZG93OiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDUsICRzYXR1cmF0aW9uOiAtMTklLCAkbGlnaHRuZXNzOiAtMTUlKTtcblxuICBAaWYgaXMtbGlnaHQoJGJhc2UtY29sb3IpIHtcbiAgICAkY29sb3I6ICAgICAgIGhzbCgwLCAwLCAyMCUpO1xuICAgICR0ZXh0LXNoYWRvdzogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogMTAlLCAkbGlnaHRuZXNzOiA0JSk7XG4gIH1cblxuICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAkYm9yZGVyLWJvdHRvbTogZ3JheXNjYWxlKCRib3JkZXItYm90dG9tKTtcbiAgICAkYm9yZGVyLXNpZGVzOiAgZ3JheXNjYWxlKCRib3JkZXItc2lkZXMpO1xuICAgICRib3JkZXItdG9wOiAgICBncmF5c2NhbGUoJGJvcmRlci10b3ApO1xuICAgICRpbnNldC1zaGFkb3c6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdyk7XG4gICAgJHN0b3AtZ3JhZGllbnQ6IGdyYXlzY2FsZSgkc3RvcC1ncmFkaWVudCk7XG4gICAgJHRleHQtc2hhZG93OiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3cpO1xuICB9XG5cbiAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci10b3A7XG4gIGJvcmRlci1jb2xvcjogJGJvcmRlci10b3AgJGJvcmRlci1zaWRlcyAkYm9yZGVyLWJvdHRvbTtcbiAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCAwICRpbnNldC1zaGFkb3c7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAkdGV4dHNpemU7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQgKCRiYXNlLWNvbG9yLCAkc3RvcC1ncmFkaWVudCk7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC1zaGFkb3c6IDAgLTFweCAxcHggJHRleHQtc2hhZG93O1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuXG4gICY6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICAgICRiYXNlLWNvbG9yLWhvdmVyOiAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGlnaHRuZXNzOiAtNC41JSk7XG4gICAgJGJvcmRlci1ib3R0b206ICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDgsICRzYXR1cmF0aW9uOiAgMTMuNSUsICRsaWdodG5lc3M6IC0zMiUpO1xuICAgICRib3JkZXItc2lkZXM6ICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA0LCAkc2F0dXJhdGlvbjogLTIlLCAgICAkbGlnaHRuZXNzOiAtMjclKTtcbiAgICAkYm9yZGVyLXRvcDogICAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAtMSwgJHNhdHVyYXRpb246IC0xNyUsICAgJGxpZ2h0bmVzczogLTIxJSk7XG4gICAgJGluc2V0LXNoYWRvdy1ob3ZlcjogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgICAgICAgICAgICRzYXR1cmF0aW9uOiAtMSUsICAgICRsaWdodG5lc3M6ICAzJSk7XG4gICAgJHN0b3AtZ3JhZGllbnQtaG92ZXI6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDgsICRzYXR1cmF0aW9uOiAtNCUsICAgICRsaWdodG5lc3M6IC0xNS41JSk7XG4gICAgJHRleHQtc2hhZG93LWhvdmVyOiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDUsICRzYXR1cmF0aW9uOiAtNSUsICAgICRsaWdodG5lc3M6IC0yMiUpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgZ3JheXNjYWxlKCRiYXNlLWNvbG9yLWhvdmVyKTtcbiAgICAgICRib3JkZXItYm90dG9tOiAgICAgICBncmF5c2NhbGUoJGJvcmRlci1ib3R0b20pO1xuICAgICAgJGJvcmRlci1zaWRlczogICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyLXNpZGVzKTtcbiAgICAgICRib3JkZXItdG9wOiAgICAgICAgICBncmF5c2NhbGUoJGJvcmRlci10b3ApO1xuICAgICAgJGluc2V0LXNoYWRvdy1ob3ZlcjogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93LWhvdmVyKTtcbiAgICAgICRzdG9wLWdyYWRpZW50LWhvdmVyOiBncmF5c2NhbGUoJHN0b3AtZ3JhZGllbnQtaG92ZXIpO1xuICAgICAgJHRleHQtc2hhZG93LWhvdmVyOiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3ctaG92ZXIpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCAoJGJhc2UtY29sb3ItaG92ZXIsICRzdG9wLWdyYWRpZW50LWhvdmVyKTtcblxuICAgIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci10b3A7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLXRvcCAkYm9yZGVyLXNpZGVzICRib3JkZXItYm90dG9tO1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgMCAkaW5zZXQtc2hhZG93LWhvdmVyO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0ZXh0LXNoYWRvdzogMCAtMXB4IDFweCAkdGV4dC1zaGFkb3ctaG92ZXI7XG4gIH1cblxuICAmOmFjdGl2ZTpub3QoOmRpc2FibGVkKSxcbiAgJjpmb2N1czpub3QoOmRpc2FibGVkKSB7XG4gICAgJGFjdGl2ZS1jb2xvcjogICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDQsICAkc2F0dXJhdGlvbjogLTEyJSwgICRsaWdodG5lc3M6IC0xMCUpO1xuICAgICRib3JkZXItYWN0aXZlOiAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiA2LCAgJHNhdHVyYXRpb246IC0yLjUlLCAkbGlnaHRuZXNzOiAtMzAlKTtcbiAgICAkYm9yZGVyLWJvdHRvbS1hY3RpdmU6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogMTEsICRzYXR1cmF0aW9uOiAgNiUsICAgJGxpZ2h0bmVzczogLTMxJSk7XG4gICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDksICAkc2F0dXJhdGlvbjogIDIlLCAgICRsaWdodG5lc3M6IC0yMS41JSk7XG4gICAgJHRleHQtc2hhZG93LWFjdGl2ZTogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDUsICAkc2F0dXJhdGlvbjogLTEyJSwgICRsaWdodG5lc3M6IC0yMS41JSk7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRhY3RpdmUtY29sb3I6ICAgICAgICAgZ3JheXNjYWxlKCRhY3RpdmUtY29sb3IpO1xuICAgICAgJGJvcmRlci1hY3RpdmU6ICAgICAgICBncmF5c2NhbGUoJGJvcmRlci1hY3RpdmUpO1xuICAgICAgJGJvcmRlci1ib3R0b20tYWN0aXZlOiBncmF5c2NhbGUoJGJvcmRlci1ib3R0b20tYWN0aXZlKTtcbiAgICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3ctYWN0aXZlKTtcbiAgICAgICR0ZXh0LXNoYWRvdy1hY3RpdmU6ICAgZ3JheXNjYWxlKCR0ZXh0LXNoYWRvdy1hY3RpdmUpO1xuICAgIH1cblxuICAgIGJhY2tncm91bmQ6ICRhY3RpdmUtY29sb3I7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci1hY3RpdmU7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRib3JkZXItYm90dG9tLWFjdGl2ZTtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgNnB4IDNweCAkaW5zZXQtc2hhZG93LWFjdGl2ZTtcbiAgICB0ZXh0LXNoYWRvdzogMCAtMXB4IDFweCAkdGV4dC1zaGFkb3ctYWN0aXZlO1xuICB9XG59XG5cbi8vIEZsYXQgQnV0dG9uXG5AbWl4aW4gZmxhdCgkYmFzZS1jb2xvciwgJGdyYXlzY2FsZTogZmFsc2UsICR0ZXh0c2l6ZTogaW5oZXJpdCwgJHBhZGRpbmc6IDdweCAxOHB4KSB7XG4gICRjb2xvcjogICAgICAgICBoc2woMCwgMCwgMTAwJSk7XG5cbiAgQGlmIGlzLWxpZ2h0KCRiYXNlLWNvbG9yKSB7XG4gICAgJGNvbG9yOiAgICAgICBoc2woMCwgMCwgMjAlKTtcbiAgfVxuXG4gIGJhY2tncm91bmQtY29sb3I6ICRiYXNlLWNvbG9yO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGJvcmRlcjogMDtcbiAgY29sb3I6ICRjb2xvcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6ICR0ZXh0c2l6ZTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG5cbiAgJjpob3Zlcjpub3QoOmRpc2FibGVkKXtcbiAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogNCUsICRsaWdodG5lc3M6IDUlKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGJhc2UtY29sb3ItaG92ZXI6IGdyYXlzY2FsZSgkYmFzZS1jb2xvci1ob3Zlcik7XG4gICAgfVxuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhc2UtY29sb3ItaG92ZXI7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG5cbiAgJjphY3RpdmU6bm90KDpkaXNhYmxlZCksXG4gICY6Zm9jdXM6bm90KDpkaXNhYmxlZCkge1xuICAgICRiYXNlLWNvbG9yLWFjdGl2ZTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogLTQlLCAkbGlnaHRuZXNzOiAtNSUpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkYmFzZS1jb2xvci1hY3RpdmU6IGdyYXlzY2FsZSgkYmFzZS1jb2xvci1hY3RpdmUpO1xuICAgIH1cblxuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYXNlLWNvbG9yLWFjdGl2ZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbn1cblxuLy8gRmxleGlibGUgZ3JpZFxuQGZ1bmN0aW9uIGZsZXgtZ3JpZCgkY29sdW1ucywgJGNvbnRhaW5lci1jb2x1bW5zOiAkZmctbWF4LWNvbHVtbnMpIHtcbiAgJHdpZHRoOiAkY29sdW1ucyAqICRmZy1jb2x1bW4gKyAoJGNvbHVtbnMgLSAxKSAqICRmZy1ndXR0ZXI7XG4gICRjb250YWluZXItd2lkdGg6ICRjb250YWluZXItY29sdW1ucyAqICRmZy1jb2x1bW4gKyAoJGNvbnRhaW5lci1jb2x1bW5zIC0gMSkgKiAkZmctZ3V0dGVyO1xuICBAcmV0dXJuIHBlcmNlbnRhZ2UoJHdpZHRoIC8gJGNvbnRhaW5lci13aWR0aCk7XG5cbiAgQHdhcm4gXCJUaGUgZmxleC1ncmlkIGZ1bmN0aW9uIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIHJlbGVhc2VcIjtcbn1cblxuLy8gRmxleGlibGUgZ3V0dGVyXG5AZnVuY3Rpb24gZmxleC1ndXR0ZXIoJGNvbnRhaW5lci1jb2x1bW5zOiAkZmctbWF4LWNvbHVtbnMsICRndXR0ZXI6ICRmZy1ndXR0ZXIpIHtcbiAgJGNvbnRhaW5lci13aWR0aDogJGNvbnRhaW5lci1jb2x1bW5zICogJGZnLWNvbHVtbiArICgkY29udGFpbmVyLWNvbHVtbnMgLSAxKSAqICRmZy1ndXR0ZXI7XG4gIEByZXR1cm4gcGVyY2VudGFnZSgkZ3V0dGVyIC8gJGNvbnRhaW5lci13aWR0aCk7XG5cbiAgQHdhcm4gXCJUaGUgZmxleC1ndXR0ZXIgZnVuY3Rpb24gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gcmVsZWFzZVwiO1xufVxuXG5AZnVuY3Rpb24gZ3JpZC13aWR0aCgkbikge1xuICBAcmV0dXJuICRuICogJGd3LWNvbHVtbiArICgkbiAtIDEpICogJGd3LWd1dHRlcjtcblxuICBAd2FybiBcIlRoZSBncmlkLXdpZHRoIGZ1bmN0aW9uIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIHJlbGVhc2VcIjtcbn1cblxuQGZ1bmN0aW9uIGdvbGRlbi1yYXRpbygkdmFsdWUsICRpbmNyZW1lbnQpIHtcbiAgQHJldHVybiBtb2R1bGFyLXNjYWxlKCRpbmNyZW1lbnQsICR2YWx1ZSwgJHJhdGlvOiAkZ29sZGVuKTtcblxuICBAd2FybiBcIlRoZSBnb2xkZW4tcmF0aW8gZnVuY3Rpb24gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gcmVsZWFzZS4gUGxlYXNlIHVzZSB0aGUgbW9kdWxhci1zY2FsZSBmdW5jdGlvbiwgaW5zdGVhZC5cIjtcbn1cblxuQG1peGluIGJveC1zaXppbmcoJGJveCkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtc2l6aW5nLCAkYm94LCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIEB3YXJuIFwiVGhlIGJveC1zaXppbmcgbWl4aW4gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gcmVsZWFzZS4gVGhpcyBwcm9wZXJ0eSBjYW4gbm93IGJlIHVzZWQgdW4tcHJlZml4ZWQuXCI7XG59XG4iLCIvKlxyXG5DT1JFU1xyXG4qL1xyXG5cclxuXHJcbi8vIEJMVUVcclxuXHJcbiRibHVlOiAjMDA0NDdjO1xyXG4kYmx1ZTI6ICMzMzY5OTY7XHJcbiRibHVlMzogIzY2OGZiMDtcclxuJGJsdWU0OiM5OWI0Y2I7XHJcbiRibHVlNTojZTVlY2YyO1xyXG4kYmx1ZTY6ICNmMmY1Zjg7XHJcbiRibHVlNzojMDA3ZGMwO1xyXG4kYmx1ZTg6IzAwOGVkNDtcclxuJGJsdWU5OiAjY2NlOWY3O1xyXG4kYmx1ZTEwOiAjMDBhNmY3O1xyXG5cclxuJHByaW1laXJvOiAjMDQ4YWNjIDtcclxuJHNlZ3VuZG86ICMwMGE4ZGUgO1xyXG4kdGVyY2Vpcm86ICM4NGNhZWUgO1xyXG5cclxuXHJcblxyXG4vLyBHUkVZXHJcblxyXG4kbm9ybWFsZ3JleTojNGQ0ZDRkO1xyXG4kbm9ybWFsZ3JleTI6IzQzNTI1QTtcclxuXHJcbiRsaWdodGdyZXk6IzljOWM5YztcclxuJGxpZ2h0Z3JleTI6I2ZhZmFmYTtcclxuXHJcbi8vIFBVUlBMRVxyXG5cclxuJHB1cnBsZTogIzU1MWM1MDtcclxuXHJcbi8vIEdSRUVOXHJcblxyXG4kZ3JlZW4xOiAjMzY3Yzg3O1xyXG4kZ3JlZW4yOiAjN2ZiMmJlO1xyXG4kZ3JlZW4zOiAjMDBhMzc4O1xyXG4kZ3JlZW40OiAjNjZjOGFmO1xyXG5cclxuXHJcbi8vV0hJVEVcclxuXHJcbiR3aGl0ZTojRkZGRkZGO1xyXG4kcmVkOiByZWQ7XHJcblxyXG4kcGV0cm9sZW86ICMwMDY1N2U7XHJcbiIsIkBtaXhpbiBib3gtc2l6aW5nKCRib3gtbW9kZWwpIHtcclxuICAtd2Via2l0LWJveC1zaXppbmc6ICRib3gtbW9kZWw7IC8vIFNhZmFyaSA8PSA1XHJcbiAgICAgLW1vei1ib3gtc2l6aW5nOiAkYm94LW1vZGVsOyAvLyBGaXJlZm94IDw9IDE5XHJcbiAgICAgICAgICBib3gtc2l6aW5nOiAkYm94LW1vZGVsO1xyXG59XHJcblxyXG5cclxuLypcclxuIyMjIyMjICAjIyMjIyMjICMgICAgICMgICAgICMjIyMjICAjICAgICAjICAgICMgICAgIyMjIyMjICAjIyMjIyMjICMgICAgICNcclxuIyAgICAgIyAjICAgICAjICAjICAgIyAgICAgIyAgICAgIyAjICAgICAjICAgIyAjICAgIyAgICAgIyAjICAgICAjICMgICMgICNcclxuIyAgICAgIyAjICAgICAjICAgIyAjICAgICAgIyAgICAgICAjICAgICAjICAjICAgIyAgIyAgICAgIyAjICAgICAjICMgICMgICNcclxuIyMjIyMjICAjICAgICAjICAgICMgICAgICAgICMjIyMjICAjIyMjIyMjICMgICAgICMgIyAgICAgIyAjICAgICAjICMgICMgICNcclxuIyAgICAgIyAjICAgICAjICAgIyAjICAgICAgICAgICAgIyAjICAgICAjICMjIyMjIyMgIyAgICAgIyAjICAgICAjICMgICMgICNcclxuIyAgICAgIyAjICAgICAjICAjICAgIyAgICAgIyAgICAgIyAjICAgICAjICMgICAgICMgIyAgICAgIyAjICAgICAjICMgICMgICNcclxuIyMjIyMjICAjIyMjIyMjICMgICAgICMgICAgICMjIyMjICAjICAgICAjICMgICAgICMgIyMjIyMjICAjIyMjIyMjICAjIyAjI1xyXG4qL1xyXG5cclxuQG1peGluIGJveC1zaGFkb3coJHRvcCwgJGxlZnQsICRibHVyLCAkc2l6ZSwgJGNvbG9yLCAkaW5zZXQ6IGZhbHNlKSB7XHJcbiAgICBAaWYgJGluc2V0IHtcclxuICAgICAgICAtd2Via2l0LWJveC1zaGFkb3c6aW5zZXQgJHRvcCAkbGVmdCAkYmx1ciAkc2l6ZSAkY29sb3I7XHJcbiAgICAgICAgLW1vei1ib3gtc2hhZG93Omluc2V0ICR0b3AgJGxlZnQgJGJsdXIgJHNpemUgJGNvbG9yO1xyXG4gICAgICAgIGJveC1zaGFkb3c6aW5zZXQgJHRvcCAkbGVmdCAkYmx1ciAkc2l6ZSAkY29sb3I7XHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgICAtd2Via2l0LWJveC1zaGFkb3c6ICR0b3AgJGxlZnQgJGJsdXIgJHNpemUgJGNvbG9yO1xyXG4gICAgICAgIC1tb3otYm94LXNoYWRvdzogJHRvcCAkbGVmdCAkYmx1ciAkc2l6ZSAkY29sb3I7XHJcbiAgICAgICAgYm94LXNoYWRvdzogJHRvcCAkbGVmdCAkYmx1ciAkc2l6ZSAkY29sb3I7XHJcbiAgICB9XHJcbn1cclxuLyogQGluY2x1ZGUgYm94LXNoYWRvdygxcHgsMXB4LDFweCwwLCAjZmZmLCB0cnVlKTsgKi9cclxuXHJcbi8qXHJcbiMjIyMjIyAgIyMjIyMjIyAjICAgICAjICMgICAgICMgIyMjIyMjICAjIyMjIyMjICMjIyMjI1xyXG4jICAgICAjICMgICAgICMgIyAgICAgIyAjIyAgICAjICMgICAgICMgIyAgICAgICAjICAgICAjXHJcbiMgICAgICMgIyAgICAgIyAjICAgICAjICMgIyAgICMgIyAgICAgIyAjICAgICAgICMgICAgICNcclxuIyMjIyMjICAjICAgICAjICMgICAgICMgIyAgIyAgIyAjICAgICAjICMjIyMjICAgIyAgICAgI1xyXG4jICAgIyAgICMgICAgICMgIyAgICAgIyAjICAgIyAjICMgICAgICMgIyAgICAgICAjICAgICAjXHJcbiMgICAgIyAgIyAgICAgIyAjICAgICAjICMgICAgIyMgIyAgICAgIyAjICAgICAgICMgICAgICNcclxuIyAgICAgIyAjIyMjIyMjICAjIyMjIyAgIyAgICAgIyAjIyMjIyMgICMjIyMjIyMgIyMjIyMjXHJcblxyXG4qL1xyXG5cclxuQG1peGluIHJvdW5kZWQoJHJhZGl1czogMC41ZW0pIHtcclxuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6ICRyYWRpdXM7XHJcbiAgLW1vei1ib3JkZXItcmFkaXVzOiAkcmFkaXVzO1xyXG4gIGJvcmRlci1yYWRpdXM6ICRyYWRpdXM7XHJcbn1cclxuXHJcbi8qXHJcbiMjIyMjICAjIyMjIyMgICAgICMgICAgIyMjIyMjICAjIyMgIyMjIyMjIyAjICAgICAjICMjIyMjIyNcclxuIyAgICAgIyAjICAgICAjICAgIyAjICAgIyAgICAgIyAgIyAgIyAgICAgICAjIyAgICAjICAgICNcclxuIyAgICAgICAjICAgICAjICAjICAgIyAgIyAgICAgIyAgIyAgIyAgICAgICAjICMgICAjICAgICNcclxuIyAgIyMjIyAjIyMjIyMgICMgICAgICMgIyAgICAgIyAgIyAgIyMjIyMgICAjICAjICAjICAgICNcclxuIyAgICAgIyAjICAgIyAgICMjIyMjIyMgIyAgICAgIyAgIyAgIyAgICAgICAjICAgIyAjICAgICNcclxuIyAgICAgIyAjICAgICMgICMgICAgICMgIyAgICAgIyAgIyAgIyAgICAgICAjICAgICMjICAgICNcclxuIyMjIyMgICMgICAgICMgIyAgICAgIyAjIyMjIyMgICMjIyAjIyMjIyMjICMgICAgICMgICAgI1xyXG5cclxuKi9cclxuXHJcbkBtaXhpbiBncmFkaWVudCgkZnJvbSwgJHRvKSB7XHJcbiAgYmFja2dyb3VuZDogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCBsZWZ0IGJvdHRvbSwgZnJvbSgkZnJvbSksIHRvKCR0bykpO1xyXG4gIGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwgICRmcm9tLCAkdG8pO1xyXG4gIGZpbHRlcjogIHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPScjeyRmcm9tfScsIGVuZENvbG9yc3RyPScjeyR0b30nKTtcclxufVxyXG5cclxuXHJcbkBtaXhpbiBvcGFjaXR5KCRvcGFjaXR5KSB7XHJcbiAgb3BhY2l0eTogJG9wYWNpdHk7XHJcbiAgJG9wYWNpdHktaWU6ICRvcGFjaXR5ICogMTAwO1xyXG4gIGZpbHRlcjogYWxwaGEob3BhY2l0eT0kb3BhY2l0eS1pZSk7IC8vSUU4XHJcbn1cclxuLy8gQGluY2x1ZGUgb3BhY2l0eSgpO1xyXG5cclxuQG1peGluIHRpdHVsb0gyICgkY29sb3IsICRmYW1pbHkpe1xyXG4gIGNvbG9yOiRjb2xvcjtcclxuICBmb250LWZhbWlseTogJGZhbWlseTtcclxufVxyXG5cclxuLypcclxuIyAgICAjICMjIyMjIyMgIyAgICAgIyAjIyMjIyMjICMjIyMjIyAgICAgIyAgICAjICAgICAjICMjIyMjIyMgICMjIyMjXHJcbiMgICAjICAjICAgICAgICAjICAgIyAgIyAgICAgICAjICAgICAjICAgIyAjICAgIyMgICAjIyAjICAgICAgICMgICAgICNcclxuIyAgIyAgICMgICAgICAgICAjICMgICAjICAgICAgICMgICAgICMgICMgICAjICAjICMgIyAjICMgICAgICAgI1xyXG4jIyMgICAgIyMjIyMgICAgICAjICAgICMjIyMjICAgIyMjIyMjICAjICAgICAjICMgICMgICMgIyMjIyMgICAgIyMjIyNcclxuIyAgIyAgICMgICAgICAgICAgIyAgICAjICAgICAgICMgICAjICAgIyMjIyMjIyAjICAgICAjICMgICAgICAgICAgICAgI1xyXG4jICAgIyAgIyAgICAgICAgICAjICAgICMgICAgICAgIyAgICAjICAjICAgICAjICMgICAgICMgIyAgICAgICAjICAgICAjXHJcbiMgICAgIyAjIyMjIyMjICAgICMgICAgIyAgICAgICAjICAgICAjICMgICAgICMgIyAgICAgIyAjIyMjIyMjICAjIyMjI1xyXG5cclxuKi9cclxuQG1peGluIGtleWZyYW1lcygkYW5pbWF0aW9uLW5hbWUpIHtcclxuICAgIEAtd2Via2l0LWtleWZyYW1lcyAjeyRhbmltYXRpb24tbmFtZX0ge1xyXG4gICAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gICAgQC1tb3ota2V5ZnJhbWVzICN7JGFuaW1hdGlvbi1uYW1lfSB7XHJcbiAgICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgICBALW1zLWtleWZyYW1lcyAjeyRhbmltYXRpb24tbmFtZX0ge1xyXG4gICAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gICAgQC1vLWtleWZyYW1lcyAjeyRhbmltYXRpb24tbmFtZX0ge1xyXG4gICAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gICAgQGtleWZyYW1lcyAjeyRhbmltYXRpb24tbmFtZX0ge1xyXG4gICAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG59XHJcblxyXG5AbWl4aW4gYW5pbWF0aW9uKCRzdHIpIHtcclxuICAtd2Via2l0LWFuaW1hdGlvbjogI3skc3RyfTtcclxuICAtbW96LWFuaW1hdGlvbjogI3skc3RyfTtcclxuICAtbXMtYW5pbWF0aW9uOiAjeyRzdHJ9O1xyXG4gIC1vLWFuaW1hdGlvbjogI3skc3RyfTtcclxuICBhbmltYXRpb246ICN7JHN0cn07XHJcbn1cclxuXHJcbkBpbmNsdWRlIGtleWZyYW1lcyhmYWRlSW4pIHtcclxuICAwJSB7IG9wYWNpdHk6IDA7IH1cclxuICAxMDAlIHsgb3BhY2l0eTogMTsgfVxyXG59XHJcblxyXG4vL0BpbmNsdWRlIGFuaW1hdGlvbignc2xpZGUtZG93biA1cyAzJyk7XHJcblxyXG5cclxuLypcclxuIyMjIyMjIyAjIyMjIyMgICAgICMgICAgIyAgICAgIyAgIyMjIyMgICMjIyAjIyMjIyMjICMjIyAjIyMjIyMjICMgICAgICMgICMjIyMjXHJcbiAgICMgICAgIyAgICAgIyAgICMgIyAgICMjICAgICMgIyAgICAgIyAgIyAgICAgIyAgICAgIyAgIyAgICAgIyAjIyAgICAjICMgICAgICNcclxuICAgIyAgICAjICAgICAjICAjICAgIyAgIyAjICAgIyAjICAgICAgICAjICAgICAjICAgICAjICAjICAgICAjICMgIyAgICMgI1xyXG4gICAjICAgICMjIyMjIyAgIyAgICAgIyAjICAjICAjICAjIyMjIyAgICMgICAgICMgICAgICMgICMgICAgICMgIyAgIyAgIyAgIyMjIyNcclxuICAgIyAgICAjICAgIyAgICMjIyMjIyMgIyAgICMgIyAgICAgICAjICAjICAgICAjICAgICAjICAjICAgICAjICMgICAjICMgICAgICAgI1xyXG4gICAjICAgICMgICAgIyAgIyAgICAgIyAjICAgICMjICMgICAgICMgICMgICAgICMgICAgICMgICMgICAgICMgIyAgICAjIyAjICAgICAjXHJcbiAgICMgICAgIyAgICAgIyAjICAgICAjICMgICAgICMgICMjIyMjICAjIyMgICAgIyAgICAjIyMgIyMjIyMjIyAjICAgICAjICAjIyMjI1xyXG5cclxuKi9cclxuXHJcbkBtaXhpbiB0cmFuc2l0aW9uKCRhcmdzLi4uKSB7XHJcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiAkYXJncztcclxuICAtbW96LXRyYW5zaXRpb246ICRhcmdzO1xyXG4gIC1tcy10cmFuc2l0aW9uOiAkYXJncztcclxuICAtby10cmFuc2l0aW9uOiAkYXJncztcclxuICB0cmFuc2l0aW9uOiAkYXJncztcclxufVxyXG5cclxuLy9AaW5jbHVkZSB0cmFuc2l0aW9uKGNvbG9yIC4zcyBlYXNlKTtcclxuLy9AaW5jbHVkZSB0cmFuc2l0aW9uKGNvbG9yIC4zcyBlYXNlLCBmb250LXNpemUgLjVzIGVhc2UpO1xyXG4iLCIvL1xyXG4vL1xyXG4vLyAjIyMjIyNcclxuLy8gIyAgICAgIyAjIyMjIyMgICMjIyMgICMjIyMjICAgIyMjIyAgIyAgICAjICAjIyMjICAjICMgICAgIyAjIyMjIyNcclxuLy8gIyAgICAgIyAjICAgICAgIyAgICAgICMgICAgIyAjICAgICMgIyMgICAjICMgICAgICAjICMgICAgIyAjXHJcbi8vICMjIyMjIyAgIyMjIyMgICAjIyMjICAjICAgICMgIyAgICAjICMgIyAgIyAgIyMjIyAgIyAjICAgICMgIyMjIyNcclxuLy8gIyAgICMgICAjICAgICAgICAgICAjICMjIyMjICAjICAgICMgIyAgIyAjICAgICAgIyAjICMgICAgIyAjXHJcbi8vICMgICAgIyAgIyAgICAgICMgICAgIyAjICAgICAgIyAgICAjICMgICAjIyAjICAgICMgIyAgIyAgIyAgI1xyXG4vLyAjICAgICAjICMjIyMjIyAgIyMjIyAgIyAgICAgICAjIyMjICAjICAgICMgICMjIyMgICMgICAjIyAgICMjIyMjI1xyXG4vL1xyXG4vL1xyXG4vL1xyXG5cclxuXHJcbi8vXHJcbi8vIFJlc3BvbnNpdmUgTWVkaWEgUXVlcmllcyBNaXhpbjpcclxuLy9cclxuLy8gIEV4ZW1wbG8gZGUgVXNvOlxyXG4vL1xyXG4vL1x0LSBEZW50cm8gZGUgYWxndW1hIHJlZ3JhIGRlIGNzcywgaW5jbHVpciBvIG1peGluIG5vcm1hbG1lbnRlLCBwb3LDqW0gdXRpbGl6YW5kbyBvcyBicmFja2V0cyBwYXJhIGVzcGVjaWZpY2FyIG8gbGF5b3V0LlxyXG4vL1xyXG4vL1x0YSB7XHJcbi8vXHRcdGJhY2tncm91bmQ6I2ZmZjtcclxuLy9cdFx0QGluY2x1ZGUgcmVzcG9uc2l2ZS1tZWRpYSgkcmVzLXRhYmxldC1wb3J0cmFpdCkge1xyXG4vL1x0XHRcdGJhY2tncm91bmQ6IzAwMDtcclxuLy9cdFx0fVxyXG4vL1x0fVxyXG4vL1xyXG4vL1x0SXNzbyBpcsOhIGdlcmFyOlxyXG4vL1x0YSB7YmFja2dyb3VuZDojZmZmfVxyXG4vL1x0QG1lZGlhICgnKG1heC13aWR0aDogODAwcHgpJykge1xyXG4vL1x0XHRhIHtiYWNrZ3JvdW5kOiMwMDA7fVxyXG4vL1x0fVxyXG4vL1xyXG4vL1xyXG4kcmVzLW1pbm9yLXBob25lOiAnKG1heC13aWR0aDogMzcwcHgpJztcclxuJHJlcy1waG9uZS1wb3J0cmFpdDogJyhtYXgtd2lkdGg6IDQ4MHB4KSc7XHJcbiRyZXMtcGhvbmUtbWlkLWxhbmRzY2FwZTogJyhtYXgtd2lkdGg6NzAwcHgpJztcclxuJHJlcy1waG9uZS1sYW5kc2NhcGU6ICcobWF4LXdpZHRoOiA3NjhweCknO1xyXG4kcmVzLXRhYmxldC1wb3J0cmFpdDogJyhtYXgtd2lkdGg6IDgyMHB4KSc7XHJcbiRyZXMtdGFibGV0LWxhbmRzY2FwZTogJyhtaW4td2lkdGggOiA4MDFweCkgYW5kIChtYXgtd2lkdGggOiAxMDI0cHgpJztcclxuJHJlcy1taW5vci1kZXNrdG9wLWFuZC10YWJsZXQtbGFuZHNjYXBlOiAnKG1pbi13aWR0aCA6IDgwMXB4KSBhbmQgKG1heC13aWR0aCA6IDEyMDBweCknO1xyXG4kcmVzLWxhcmdlLWRlc2t0b3A6ICcobWluLXdpZHRoOiAxMjAwcHgpJztcclxuJHJlcy1ub24tcmV0aW5hOiAnc2NyZWVuIGFuZCAoLXdlYmtpdC1tYXgtZGV2aWNlLXBpeGVsLXJhdGlvOiAxKSc7XHJcbiRyZXMtcmV0aW5hOiAnc2NyZWVuIGFuZCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSc7XHJcbiRyZXMtdGFibGV0LXRvLWRlc2t0b3A6ICcobWluLXdpZHRoIDogODIwcHgpIGFuZCAobWF4LXdpZHRoIDogMTI3OXB4KSc7XHJcblxyXG5cclxuQG1peGluIHJlc3BvbnNpdmUtbWVkaWEoJG1lZGlhKSB7XHJcbiAgICBAaWYgJG1lZGlhIHtcclxuICAgICAgQG1lZGlhICN7JG1lZGlhfSB7IEBjb250ZW50IH1cclxuICAgIH1cclxufVxyXG4iXSwibWFwcGluZ3MiOiJBK0VBQTs7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 */
