/*=============================================================================================
    Company    : PT Web Architect Technology - webarq.com
    Document   : Stylesheet
    Author     : Andrisam
==============================================================================================*/
/*=============================================================================================	
    Company    : PT Web Architect Technology - webarq.com
    Document   : Stylesheet
    Author     : FrontEnd Team  
==============================================================================================*/
/* import bourbon - http://bourbon.io/docs */
/* color global
----------------------------------------------------------------------------------------------*/
@media all and (max-width: 767px) {
  .fxo-widget-iframe {
    right: 45px !important;
    bottom: 2px !important;
  }
  .wrapper, .container {
    width: auto;
    margin: 0 20px;
  }
  .btn {
    height: 40px;
    line-height: 40px;
    padding: 0 20px;
  }
  .btn.v2 {
    height: 40px;
    line-height: 35px;
    padding: 0 25px;
  }
  .btn.medium {
    padding: 0 45px;
    font-size: 14px;
  }
  .btn.abs {
    height: 36px;
    line-height: 32px;
  }
  .btn.green-outline {
    height: 36px;
    line-height: 32px;
    padding: 0 25px;
  }
  header {
    height: 60px;
  }
  header .menu-top {
    margin: 20px 0 0 0;
  }
  header .menu-top a {
    height: 20px;
    line-height: 20px;
    font-size: 12px;
  }
  header .menu-top a.info {
    display: none;
  }
  header .menu-top .lang .act {
    padding-top: 0;
    margin-top: -2px;
  }
  header .menu-top .lang .act:after {
    top: 4px;
  }
  header .menu-top .lang ul {
    padding-top: 3px;
  }
  header .menu-top .lang ul li a {
    height: 24px;
    line-height: 24px;
  }
  header .logo {
    width: 100px;
    height: 40px;
    padding: 10px 0 0 0;
  }
  header .burger-menu {
    margin: 20px 0 0 5px;
    width: 22px;
    height: 20px;
  }
  header .burger-menu span {
    width: 100%;
    height: 4px;
  }
  header .burger-menu span:nth-child(2) {
    top: 8px;
  }
  header .burger-menu span:nth-child(3) {
    top: 16px;
  }
  header .burger-menu.expand span:nth-child(3) {
    top: 16px;
  }
  header.float {
    height: 60px;
  }
  header.float .menu-top {
    margin: 20px 0 0 0;
  }
  header.float .menu-top a {
    height: 20px;
    line-height: 20px;
    font-size: 12px;
  }
  header.float .menu-top a.info {
    display: none;
  }
  header.float .menu-top .lang .act {
    padding-top: 0;
  }
  header.float .menu-top .lang .act:after {
    top: 4px;
  }
  header.float .logo {
    width: 100px;
    height: 40px;
    padding: 10px 0 0 0;
  }
  header.float .burger-menu {
    margin: 20px 0 0 5px;
    width: 22px;
    height: 20px;
  }
  header.float .burger-menu span {
    width: 100%;
    height: 4px;
  }
  header.float .burger-menu span:nth-child(2) {
    top: 8px;
    width: 70%;
  }
  header.float .burger-menu span:nth-child(3) {
    top: 16px;
  }
  header.float .burger-menu.expand span:nth-child(3) {
    top: 16px;
  }
  .breadcrumb {
    display: none;
  }
  .nav-mobile {
    padding: 60px 0 30px 0;
    text-align: center;
  }
  .nav-mobile .navmob {
    padding: 0;
  }
  .nav-mobile .navmob ul {
    padding: 35px 0 20px 0;
  }
  .nav-mobile .navmob ul li ul {
    height: 60%;
  }
  .nav-mobile .navmob ul li a {
    font-size: 16px;
    padding: 13px 0;
  }
  .nav-mobile .navmob .subdrop, .nav-mobile .navmob .subdrop-2 {
    padding: 0 15px;
    height: 95%;
    top: 60px;
  }
  .nav-mobile .navmob .subdrop .title, .nav-mobile .navmob .subdrop-2 .title {
    font-size: 17px;
    font-weight: bold;
    color: #004843;
    margin-bottom: 20px;
  }
  .nav-mobile .navmob .subdrop .title a, .nav-mobile .navmob .subdrop-2 .title a {
    font-weight: bold;
    font-size: 16px;
  }
  .nav-mobile .navmob .subdrop .back, .nav-mobile .navmob .subdrop .back-2, .nav-mobile .navmob .subdrop-2 .back, .nav-mobile .navmob .subdrop-2 .back-2 {
    margin: 15px 0 0 0;
  }
  .nav-mobile .navmob .subdrop .back a, .nav-mobile .navmob .subdrop .back-2 a, .nav-mobile .navmob .subdrop-2 .back a, .nav-mobile .navmob .subdrop-2 .back-2 a {
    padding: 0;
    width: 26px;
    height: 26px;
    background-size: 100% 100%;
  }
  .nav-mobile .navmob .subdrop li a, .nav-mobile .navmob .subdrop-2 li a {
    padding: 10px 0;
    font-size: 16px;
  }
  .nav-mobile .social-mob ul li {
    padding: 0 5px;
  }
  .nav-mobile .social-mob ul li a {
    width: 20px !important;
    height: 17px !important;
    background-size: auto 100% !important;
  }
  .nav-mobile .info-mob {
    display: inline-block;
  }
  .middle {
    padding-top: 60px;
  }
  .homeslider .caption {
    width: 100%;
    padding: 0 20px;
    left: 0;
    transform: translate(0, -50%);
    -webkit-transform: translate(0, -50%);
    -moz-transform: translate(0, -50%);
    -ms-transform: translate(0, -50%);
    -o-transform: translate(0, -50%);
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
  }
  .homeslider .caption .title {
    font-size: 22px;
    line-height: 26px;
    margin-bottom: 10px;
  }
  .homeslider .caption .des {
    font-size: 14px;
    margin-bottom: 20px;
  }
  .col-logo {
    padding: 15px 0;
  }
  .col-logo .row .col {
    width: 17%;
    margin: 0 1%;
  }
  .col-logo .row .col a {
    height: 22px;
    text-align: center;
    display: block;
  }
  .col-logo .row .col a img {
    left: 0;
    transform: translate(0, -50%);
    -webkit-transform: translate(0, -50%);
    -moz-transform: translate(0, -50%);
    -ms-transform: translate(0, -50%);
    -o-transform: translate(0, -50%);
  }
  .col-box h2 {
    font-size: 16px;
    margin-bottom: 10px;
    padding-left: 0;
  }
  .col-box h2 span {
    font-size: 70px;
    top: -30px;
    left: 0;
    margin-left: 0;
  }
  .col-box h2.say {
    margin: 0;
  }
  .col-box h2.land span {
    left: 0;
  }
  .col-box h2.green span {
    margin-left: 0;
  }
  .col-box h3 {
    font-size: 25px;
    line-height: 30px;
  }
  .col-box h3.v2 {
    line-height: 28px;
  }
  .home-about .container {
    padding: 50px 0;
  }
  .home-about .text {
    width: 100%;
  }
  .home-about .text p {
    font-size: 14px;
    line-height: 20px;
  }
  .home-about .text ol li {
    font-size: 13.5px;
    padding: 3px 0 3px 25px;
  }
  .home-about .text ol li:after {
    left: 17px;
  }
  .listing-news .container {
    padding: 50px 0;
  }
  .listing-news .row a {
    min-height: 320px;
  }
  .listing-news .row .col {
    width: 100%;
    margin: 0 0 15px 0;
  }
  .listing-news .row .col.has-img .img img {
    width: 100%;
  }
  .listing-news.v2 .row .col.abs-img .inn {
    padding: 25px 20px;
  }
  .listing-news.carousel .slick-list {
    margin: 0 40px;
  }
  .listing-news.carousel .slick-arrow {
    width: 28px;
    height: 28px;
    background-size: auto 100% !important;
  }
  .listing-news.carousel .slick-arrow.slick-next {
    background-position: -28px 0 !important;
  }
  .listing-news.carousel .slick-arrow.slick-next.slick-disabled {
    background-position: -28px 0 !important;
  }
  .listing-news.carousel .slick-arrow.slick-prev {
    background-position: 0 0 !important;
  }
  .listing-news.carousel .slick-arrow.slick-prev.slick-disabled {
    background-position: 0 0 !important;
  }
  .listing-news.carousel .row .col {
    margin: 0 0 10px 0;
  }
  .listing-news.carousel .row .col:nth-child(4n+4) {
    margin-right: 0%;
    display: inline-block;
  }
  .listing-news.carousel .row .col:nth-child(3n+3) {
    margin-right: 0%;
  }
  .box-news .row .col {
    width: 100%;
    right: 0;
  }
  .box-news .row .col .text {
    padding: 20px;
  }
  .box-news .row .col .text .title {
    font-size: 14px;
    line-height: 16px;
  }
  .box-news .row .col .img:after {
    background: url("../images/material/bg_shadow.png") repeat-x 0 bottom;
  }
  .box-news .row .col.large .text .title {
    font-size: 14px;
    line-height: 16px;
  }
  .box-news .row .col.large a:before {
    width: 40px;
    height: 30px;
    background-size: 100%;
  }
  .box-news .row .col.large .img:after {
    background: url("../images/material/bg_shadow.png") repeat-x 0 bottom;
  }
  .box-news .row .col.large.vids a:before {
    width: 50px;
    height: 38px;
  }
  .home-testi .container {
    padding: 50px 0;
  }
  .home-testi .container:after {
    display: none;
  }
  .home-testi .txt-testi {
    padding: 0 0 15px 0;
  }
  .home-testi .txt-testi a:after {
    top: 0;
    left: 0;
    width: 30px;
    height: 31px;
  }
  .home-testi .txt-testi .ts-title {
    padding: 40px 0 0 0;
  }
  .home-testi .slick-slider {
    margin: 0;
  }
  .home-testi .slick-slider .slick-dots {
    bottom: -25px;
  }
  .home-cta {
    position: relative;
    height: auto;
  }
  .home-cta:before {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    content: "";
    z-index: 2;
    background: rgba(51, 58, 67, 0.95);
  }
  .home-cta .container {
    padding: 50px 0;
    z-index: 3;
  }
  .home-cta .text {
    width: 100%;
  }
  .home-cta .text h3 {
    font-size: 20px;
    line-height: 25px;
  }
  .home-address .container {
    padding: 50px 0;
  }
  .home-address .col h2 {
    line-height: 22px;
  }
  .home-address .col.des {
    padding-bottom: 15px;
  }
  .home-address .col.des p {
    line-height: 20px;
  }
  .home-address .col.address .row .item {
    width: 100%;
    margin: 0;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
  }
  .home-address .col.address .row .item:before {
    top: 3px;
  }
  .breadcrumb ul li {
    margin-bottom: 5px;
    font-size: 14px;
  }
  .breadcrumb ul li a {
    padding: 0 3px 0 3px;
  }
  .breadcrumb ul li:first-child a {
    padding-left: 0;
  }
  .slick-dots {
    bottom: 10px;
    margin: 0;
  }
  .slick-dots li {
    margin: 0 3px;
  }
  .slick-dots li button {
    width: 10px;
    height: 10px;
  }
  .slick-arrow {
    width: 38px;
    height: 38px;
  }
  .slick-arrow:after {
    width: 24px;
    height: 24px;
    background-size: 24px 24px !important;
  }
  .box-title {
    min-height: 180px;
  }
  .box-title .container {
    padding: 30px 0;
  }
  .box-title h1 {
    font-size: 16px;
    line-height: 20px;
  }
  .box-title .container {
    padding: 35px 0 0 0;
  }
  .box-title.v2 {
    margin-bottom: 40px;
  }
  .mid-content {
    padding-bottom: 30px;
    font-size: 14px;
  }
  .mid-content .banner-slider {
    margin: -186px 0 60px 0;
  }
  .mid-content .banner-slider.v2 {
    margin-bottom: 40px;
  }
  .mid-content .banner-slider.v3 {
    margin-bottom: 40px;
  }
  .mid-content .banner-slider.v4 .img:before {
    opacity: 0.4;
  }
  .mid-content .banner-slider.v5 {
    margin-top: -87px;
    margin-bottom: 30px;
  }
  .mid-content .banner-slider .caption {
    padding: 0 15px 40px 15px;
    text-align: center;
    font-size: 18px;
    line-height: 22px;
  }
  .mid-content .banner-slider.creer {
    margin: 30px 0;
  }
  .mid-content .banner-testimoni {
    margin: -186px 0 60px 0;
    max-height: 100%;
    position: static;
  }
  .mid-content .banner-testimoni .img {
    margin-bottom: 30px;
  }
  .mid-content .banner-testimoni .slick-dots {
    margin-top: -15px;
  }
  .mid-content .box-landing .row {
    margin-bottom: 60px;
  }
  .mid-content .box-landing .row .col {
    width: 100%;
    margin: 0 0 15px 0;
  }
  .mid-content .box-landing .row .col .ld-des .ct {
    font-size: 14px;
  }
  .mid-content .box-landing .row .col.txt {
    width: 100%;
    padding: 0;
  }
  .mid-content .box-landing .row .col.img {
    width: 100%;
    padding: 0;
    margin-bottom: 0;
  }
  .mid-content .box-landing .row .col .land-banner .slide .img img {
    width: 100%;
  }
  .mid-content .box-landing .row .col .land-banner .slide .img.v2:before {
    background-position: 0 bottom;
  }
  .mid-content .box-landing .row .col .land-banner .slick-initialized .slick-list:after {
    width: 115px;
    height: 50px;
    background-size: cover !important;
  }
  .mid-content .box-landing .row .col .land-banner .slick-initialized .slick-arrow {
    width: 38px;
    height: 38px;
    top: 20px;
  }
  .mid-content .box-landing .row .col .land-banner .slick-initialized .slick-arrow:after {
    width: 38px;
    height: 38px;
    background-size: 38px 38px !important;
  }
  .mid-content .box-landing .row .col .land-banner .slick-initialized .slick-arrow.slick-prev {
    right: 20px;
    margin-left: -105px;
  }
  .mid-content .box-landing .row .col .land-banner .slick-initialized .slick-arrow.slick-next {
    right: 20px;
  }
  .mid-content .box-landing .row .col .land-banner .caption.v2 {
    padding: 0 20px;
    font-size: 18px;
    line-height: 20px;
  }
  .mid-content .box-landing .row .col .land-banner .caption.v2 a {
    font-size: 14px;
  }
  .mid-content .box-landing .row:nth-child(even) .col.txt {
    padding: 0;
  }
  .mid-content p {
    line-height: 22px;
    font-size: 14px;
  }
  .mid-content .paging div a {
    padding: 3px 7px 3px 7px;
    font-size: 16px;
  }
  .mid-content .paging div a:after {
    right: 10%;
  }
  .mid-content .paging div a.prev, .mid-content .paging div a.next {
    padding: 0;
    width: 25px;
    height: 25px;
    background-size: auto 25px;
    margin: 0 10px;
  }
  .mid-content .paging div a.prev:hover {
    background-position: 0 0;
  }
  .mid-content .paging div a.next {
    background-position: -25px center;
  }
  .mid-content .paging div a.next:hover {
    background-position: -25px 0;
  }
  .mid-content .description h3 {
    font-size: 22px;
    line-height: 30px;
  }
  .mid-content .description h3.v2 {
    font-size: 20px;
    line-height: 26px;
  }
  .mid-content .description h4 {
    font-size: 16px;
    line-height: 26px;
  }
  .mid-content .description h5 span {
    display: block;
    margin-bottom: 10px;
  }
  .mid-content .description .htop a {
    font-size: 13px;
    margin-top: 5px;
  }
  .mid-content .description .table-std {
    position: relative;
    overflow: auto;
    padding: 10px 0 0 0;
    margin-bottom: 35px;
  }
  .mid-content .description table thead tr th {
    padding: 10px 5px;
    font-size: 13px;
  }
  .mid-content .description table thead tr.med th {
    font-size: 13px;
  }
  .mid-content .description table tbody tr td {
    font-size: 12px;
    padding: 10px 5px;
  }
  .mid-content .description table tfoot tr td {
    font-size: 12px;
    padding: 10px 5px;
  }
  .mid-content .description ul {
    margin-left: 0;
  }
  .mid-content .description ul li {
    line-height: 20px;
  }
  .mid-content .description ul li:before {
    top: 7px;
  }
  .mid-content .description ul li ul {
    margin-left: 0;
  }
  .mid-content .description ul.space {
    margin-left: 5px;
  }
  .mid-content .description .photo-profile {
    padding: 0 0 10px 0;
  }
  .mid-content .description .photo-profile .col.img {
    width: 100%;
    text-align: center;
    margin-bottom: 15px;
  }
  .mid-content .description .photo-profile .col.img img {
    width: 145px;
  }
  .mid-content .description .photo-profile .col.text {
    width: 100%;
    padding: 0;
    text-align: center;
  }
  .mid-content .description .photo-profile .col.text h3 {
    font-size: 24px;
  }
  .mid-content .description .photo-profile .col.text h4 {
    font-size: 13px;
    line-height: 18px;
  }
  .mid-content .description .photo-profile .col.text p {
    font-size: 13px;
  }
  .mid-content .description .photo-profile .col.text.v2 {
    padding-right: 0;
    padding-top: 0;
  }
  .mid-content .description .listing-headschool .photo-profile {
    padding: 0 0 70px 0;
  }
  .mid-content .description .listing-headschool .row .abs {
    top: 100%;
    margin-top: -65px;
    left: 50%;
    padding: 0 15px;
    text-align: center;
    transform: translate(-50%);
    -webkit-transform: translate(-50%);
    -moz-transform: translate(-50%);
    -ms-transform: translate(-50%);
    -o-transform: translate(-50%);
  }
  .mid-content .description .indes {
    padding: 0;
  }
  .mid-content .description.nostyled-table table {
    width: 100%;
  }
  .mid-content .description .slick-dots {
    margin: 0;
  }
  .mid-content .description .slick-dots li {
    line-height: 10px;
  }
  .mid-content .description .col-bottom {
    padding: 60px 0 0 0;
  }
  .mid-content .description .col-bottom .row:before {
    display: none;
  }
  .mid-content .description .col-bottom .row .cl.fl {
    width: 100%;
    padding: 0 0 0 0;
    margin-bottom: 30px;
  }
  .mid-content .description .col-bottom .row .cl.fl:after {
    position: absolute;
    width: 100%;
    height: 1px;
    content: "";
    display: block;
    background: #dddddd;
  }
  .mid-content .description .col-bottom .row .cl.fr {
    width: 100%;
    padding: 0 0 0 0;
  }
  .mid-content .description .list-life .row .col {
    padding: 0 0 20px 0;
    margin: 0 0 20px 0;
  }
  .mid-content .description .list-life .row .col .fl {
    width: 100%;
    margin-bottom: 15px;
  }
  .mid-content .description .list-life .row .col .fr {
    width: 100%;
  }
  .mid-content .description .list-life .row .col h5 {
    font-size: 14px;
    margin-top: 0;
  }
  .mid-content .description .list-life .row .col a {
    height: 30px;
    line-height: 30px;
    padding: 0 20px;
  }
  .mid-content .description .testi .photo-profile {
    padding-bottom: 20px;
  }
  .mid-content .description .testi .photo-profile .col.text.v2 {
    padding: 0 10px;
  }
  .mid-content .description .testi .photo-profile .col.text.v2 p {
    font-size: 13px;
    line-height: 22px;
  }
  .mid-content .grid-category {
    padding: 0;
  }
  .mid-content .grid-category .row .col {
    width: 100%;
    padding: 0;
    margin: 0 0 20px 0;
  }
  .mid-content .grid-category .row .col:nth-child(2n+2) {
    padding-left: 0;
  }
  .mid-content .grid-category .row .col.first .caption {
    width: 49%;
    padding: 0 15px;
    font-size: 16px;
    line-height: 18px;
  }
  .mid-content .grid-category .row .col.first .caption .des {
    font-size: 13px;
    line-height: 15px;
    padding: 5px 0 0 0;
  }
  .mid-content .grid-category.col_3 .row .col {
    width: 100%;
  }
  .mid-content .list-gen .col {
    padding: 15px 0;
  }
  .mid-content .list-gen .col .fl {
    width: 100%;
    margin: 0 0 10px 0;
  }
  .mid-content .list-gen .col .fr {
    width: 100%;
    padding: 0;
    text-align: left;
  }
  .mid-content .col-university .row, .mid-content .col-partner .row {
    margin-bottom: 30px;
  }
  .mid-content .col-university .row .col h5, .mid-content .col-partner .row .col h5 {
    margin-bottom: 20px;
  }
  .mid-content .col-university .row .col div a, .mid-content .col-partner .row .col div a {
    padding: 0 20px 0 20px;
    width: 50%;
    height: 100px;
  }
  .mid-content .col-university .row.col-5 .col a, .mid-content .col-partner .row.col-5 .col a {
    width: 50%;
  }
  .col-form .container:before {
    width: 65px;
    height: 85px;
    right: 0;
    top: -40px;
    background-size: 100%;
  }
  .col-form .form-std {
    padding: 0;
  }
  .col-form .form-std .col {
    width: 100%;
    padding: 0 0 0 0;
    margin: 0 0 30px 0;
  }
  .col-form .form-std .col:nth-child(2n+2) {
    margin-right: 0;
    padding-left: 0;
  }
  .col-form .form-std .col .label {
    height: 20px;
    line-height: 20px;
    font-size: 14px;
    top: 12px;
  }
  .col-form .form-std .col .anim-label {
    font-size: 14px;
  }
  .col-form .form-std .col .field {
    padding-bottom: 10px;
  }
  .col-form .form-std .col .field.other-val {
    padding-top: 10px;
  }
  .col-form .form-std .col.with-padding {
    padding-left: 0;
  }
  .col-form .form-std .col.no-padding {
    padding: 0;
  }
  .col-form .form-std .col.col-button {
    padding: 0;
  }
  .col-form .form-std .col.col-captcha .g-recaptcha {
    transform: scale(0.93);
    transform-origin: 0;
    margin-bottom: -5px;
  }
  .col-form .form-std.std-2 .col {
    margin-bottom: 15px;
  }
  .col-form .form-std.std-2 .col .btn {
    margin: 0 auto;
  }
  .col-form.v2 .form-std .col .label {
    font-size: 14px;
  }
  .col-form.v2 .form-std .col .field.focus .label {
    font-size: 12px;
  }
  .col-acc .acclist .acc-title {
    padding: 15px 30px 15px 0px;
    font-size: 14px;
  }
  .col-acc .acclist .acc-title:after {
    right: 8px;
    top: 20px;
  }
  .col-acc .acclist .acc-descrip ol li {
    font-size: 14px;
    line-height: 18px;
  }
  .col-acc.v2 .acc-descrip {
    padding: 15px 0;
  }
  .tab-container .nav-tab {
    padding-bottom: 30px;
  }
  .tab-container .nav-tab .parent-mob {
    display: block;
  }
  .tab-container .nav-tab ul {
    display: none;
  }
  .tab-container .nav-tab ul li {
    display: block;
    margin-bottom: 1px;
  }
  .tab-container .nav-tab ul li:after {
    display: none;
  }
  .tab-container .nav-tab ul li a {
    font-size: 14px;
    padding: 15px 15px;
    background: #e1e1e1;
  }
  .tab-container .nav-tab ul li a:after {
    display: none;
  }
  .tab-container .nav-tab ul li:first-child a {
    padding-left: 15px;
  }
  .tab-container .nav-tab ul li:first-child a:after {
    left: 50%;
  }
  .col-gallery .nav-gal {
    text-align: center;
    margin-bottom: 25px;
  }
  .col-gallery .nav-gal a {
    font-size: 18px;
    margin-right: 30px;
    float: none;
    display: inline-block;
  }
  .col-gallery .row .col {
    width: 100%;
    margin: 0 0 3% 0;
  }
  .col-gallery .row .col a .text {
    padding: 18px;
  }
  .col-gallery .row .col a .text .caption {
    font-size: 16px;
    line-height: 18px;
    height: auto;
  }
  .col-gallery .row .col a .img:before {
    background-position: 0 bottom;
    opacity: 0.9;
  }
  .col-gallery .row .col a .img .hov_btn .btn {
    font-size: 12px;
    line-height: 30px;
    height: 30px;
    padding: 0 25px;
  }
  .inner-contact.v2 {
    padding: 50px 0;
  }
  .inner-contact .list-address .row .col h3 {
    font-size: 22px;
  }
  .inner-contact .list-address .row .col h3.v2 {
    font-size: 20px;
  }
  .inner-contact .list-address .row .col h4 {
    font-size: 18px;
  }
  .inner-contact .list-address .row .col p {
    font-size: 16px;
    line-height: 26px;
  }
  .inner-contact .list-address .row .col p .green {
    font-size: 15px;
    line-height: 24px;
  }
  .inner-contact .list-address .row .col .row {
    margin-bottom: 30px;
  }
  .inner-contact .list-address .row .col .row .cl:nth-child(1) {
    width: 100%;
  }
  .inner-contact .list-address .row .col .row .cl:nth-child(2) {
    width: 100%;
  }
  .inner-contact .list-map h3 {
    margin-bottom: 20px;
  }
  .inner-contact .list-map .row .col {
    width: 100%;
    margin: 0 0 20px 0;
  }
  .inner-contact .addmission h2 {
    margin-bottom: 20px;
  }
  .inner-contact .addmission .row {
    margin-bottom: 20px;
  }
  .inner-contact .addmission .row .col {
    width: 100%;
    margin-bottom: 5px;
    font-size: 16px;
  }
  .inner-contact .addmission .row .col:nth-child(2n+2) {
    width: 100%;
    padding: 0;
    font-size: 14px;
  }
  .careermap .middle {
    min-height: 480px;
    max-height: 480px;
  }
  .careermap .container {
    width: 240px;
    margin: auto;
  }
  .careermap header .container {
    width: auto;
    margin: 0 20px;
  }
  .careermap .des-map {
    min-height: 260px;
    max-height: 260px;
  }
  .careermap .des-map .title {
    font-size: 22px;
    line-height: 28px;
    padding-top: 40px;
  }
  .careermap .des-map p {
    font-size: 13px;
    display: none;
  }
  .careermap .point-map a {
    font-size: 9px;
    padding: 30px 0 0 0;
  }
  .careermap .point-map a:after {
    width: 23px;
    height: 28px;
    background-size: 100%;
  }
  .careermap .point-map a.jkt {
    left: -70px;
    top: -48px;
  }
  .careermap .point-map a.bali {
    right: 40px;
    top: 0;
  }
  .wrap-tankyou {
    min-height: 500px;
  }
  .wrap-tankyou .container {
    width: auto;
  }
  #boxPop .popArrow {
    width: 38px;
    height: 38px;
  }
  #boxPop .popArrow:after {
    width: 25px;
    height: 25px;
    background-size: 100% 100% !important;
  }
  #boxPop .close_pop {
    width: 18px;
    height: 18px;
    background-size: 100%;
    top: -35px;
  }
  #boxPop .content_pop .detTxt .detCate {
    font-size: 13px;
  }
  #boxPop .content_pop .detTxt .detTitle {
    font-size: 20px;
  }
  #boxPop .content_pop .vid {
    height: 200px;
  }
  .filtering .cl {
    display: block;
  }
  .filtering .fr {
    width: 100%;
  }
  .popup .box-popup {
    max-width: 380px;
    padding: 10px;
  }
  .popup .box-popup .content-popup {
    padding: 0 10px;
  }
  .popup .box-popup .content-popup h4 {
    font-size: 16px;
  }
  .popup .box-popup .content-popup p {
    font-size: 12px;
    line-height: 18px;
    margin-bottom: 15px;
  }
  .popup .box-popup .content-popup ol li, .popup .box-popup .content-popup ol li:before, .popup .box-popup .content-popup ul li {
    font-size: 12px;
    line-height: 18px;
  }
  .popup .box-popup .content-popup ol li {
    padding-left: 15px;
  }
  .popup .box-popup .content-popup ul li {
    padding-left: 15px;
  }
  .popup .box-popup .content-popup ul li::before {
    height: 6px;
    top: 6px;
    width: 6px;
  }
  .popup .box-popup button {
    width: 140px;
    padding: 8px 0;
    font-size: 11px;
  }
  footer .ftop .fl {
    width: 65%;
    padding: 0 10px 0 0;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
  }
  footer .ftop .fl .cl {
    width: 100%;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    margin: 0 auto 6px auto;
    float: none;
    padding: 3px 0px 5px 34px;
    font-size: 10.5px;
    line-height: 14px;
  }
  footer .ftop .fl .cl.mail {
    width: 100%;
  }
  footer .ftop .fr {
    width: 35%;
  }
  footer .ftop .fr .social-foot {
    width: 100%;
    text-align: right;
  }
  footer .ftop .fr .social-foot a {
    padding: 0 2px;
    text-indent: 999999px;
    margin-bottom: 6px;
  }
  footer .copyright {
    margin: 0;
  }
  footer .fbot {
    text-align: center;
  }
  footer .fbot .fl {
    width: 100%;
    margin-bottom: 10px;
  }
  footer .fbot .fr {
    width: 100%;
  }
  .scrollup {
    bottom: 25px;
    right: 20px;
    width: 25px;
    height: 25px;
    background-size: 50% auto !important;
  }
  .login .wrapper {
    margin: 0 20px;
  }
  .login .wrapper .side-form .content-form .heading figure > img {
    width: 150px;
  }
  .login .wrapper .side-form .content-form .heading h6 {
    font-size: 15px;
    padding-left: 16px;
  }
  .login .wrapper .side-form .content-form .heading h6::before {
    left: 8px;
  }
  .login .wrapper .side-form .content-form h2 {
    text-align: center;
  }
  .mid .row {
    margin-left: unset;
    width: auto;
  }
  .mid .row .column.column-33 {
    padding: 0 10px;
  }
  .mid .row .column.column-65, .mid .row .column.column-35, .mid .row .column.column-50, .mid .row .column.column-25, .mid .row .column.column-75, .mid .row .column.column-100 {
    flex: 0 0 100%;
    max-width: 100%;
    padding: 0;
  }
  .mid .row.row-split {
    width: calc(100% + 20px);
    margin-left: -10px;
  }
  .mid .row.row-split .column.column-25 {
    flex: 0 0 40%;
    max-width: 40%;
    padding: 0 10px;
  }
  .mid .row.row-split .column.column-50 {
    flex: 0 0 50%;
    max-width: 50%;
    padding: 0 10px;
  }
  .mid .row.row-split .column.column-75 {
    flex: 0 0 60%;
    max-width: 60%;
    padding: 0 10px;
  }
  .mid .nav-mobile-eca {
    display: none;
  }
  .mid .side-right {
    padding-left: 0;
  }
  .mid .side-right.moveright {
    padding-left: 0;
  }
  .mid .side-right .wrap-day {
    position: relative;
  }
  .mid .side-right .payment .payment-detail .box-payment {
    padding: 25px 25px 110px;
  }
  .mid .side-right .payment .payment-detail .box-payment select {
    width: calc(100% - 50px);
    left: 25px;
    right: unset;
    top: unset;
    bottom: 45px;
  }
  .mid .side-right .payment .accordion-payment {
    border-bottom: unset;
  }
  .mid .side-right .payment .accordion-payment .acclist .acc-title {
    font-size: 20px;
    padding: 24px 0;
    border-top: unset;
    border-bottom: 1px solid #ccc;
  }
  .mid .side-right .payment .accordion-payment .acclist .acc-title .logo-payment {
    display: none;
  }
  .mid .side-right .payment .accordion-payment .acclist .acc-descrip {
    padding: 25px 0;
  }
  .mid .side-right .payment .accordion-payment .acclist .acc-descrip .form-control input[type=number] {
    width: 100%;
  }
  .mid .side-right .payment .accordion-payment .acclist .acc-descrip .form-control > img {
    width: 100%;
  }
  .mid .side-right .payment .accordion-payment .acclist .acc-descrip .wrap-button {
    display: block;
  }
  .mid .side-right .payment .accordion-payment .acclist .acc-descrip .wrap-button .btn-cancel, .mid .side-right .payment .accordion-payment .acclist .acc-descrip .wrap-button .btn-submit {
    width: 100%;
    margin-bottom: 10px;
  }
  .mid .side-right .summary {
    right: 18px;
    left: 18px;
    bottom: 18px;
    width: calc( 100% - 36px);
  }
  .mid .side-right .summary h3:first-child {
    display: none;
  }
  .mid .side-right .summary .btn-yellow {
    font-size: 0;
    width: 76px;
  }
  .mid .side-right .cart .input-quantity {
    justify-content: end;
  }
  .mid .side-right .cart .cart-category {
    margin-bottom: 34px;
  }
  .mid .side-right .cart table {
    border-bottom: 1px solid #E6E6E6;
  }
  .mid .side-right .cart table td, .mid .side-right .cart table th {
    display: block;
  }
  .mid .side-right .cart table thead {
    display: none;
  }
  .mid .side-right .cart table tr {
    position: relative;
    display: flex;
    flex-flow: wrap;
    margin-bottom: 24px;
  }
  .mid .side-right .cart table td {
    padding: 0;
  }
  .mid .side-right .cart table td:first-child {
    top: 30px;
  }
  .mid .side-right .cart table td:first-child .custom-checkbox {
    top: 30px;
  }
  .mid .side-right .cart table td:nth-child(2) {
    width: 80px;
  }
  .mid .side-right .cart table td:nth-child(3) {
    width: calc( 100% - 32px - 80px - 18px);
    padding-left: 6px;
    padding-top: 20px;
    position: relative;
    margin-bottom: 14px;
  }
  .mid .side-right .cart table td:nth-child(3)::after {
    content: "Item Name";
    font-size: 14px;
    color: #666666;
    font-weight: 600;
    position: absolute;
    top: 0;
    left: 6px;
  }
  .mid .side-right .cart table td:nth-child(3) h6 {
    height: 17px;
    overflow: hidden;
  }
  .mid .side-right .cart table td:nth-child(4) {
    width: 100%;
    order: 5;
    position: relative;
  }
  .mid .side-right .cart table td:nth-child(4)::after {
    content: "QTY";
    font-size: 14px;
    color: #666666;
    font-weight: 600;
    position: absolute;
    top: 50%;
    left: 32px;
    transform: translateY(-50%);
  }
  .mid .side-right .cart table td:nth-child(5) {
    width: 100%;
    order: 6;
    background: #F5F5F5;
    border-radius: 4px;
    padding: 5px 24px;
    text-align: right;
    position: relative;
  }
  .mid .side-right .cart table td:nth-child(5)::after {
    content: "Total Price";
    font-size: 14px;
    color: #666666;
    font-weight: 600;
    position: absolute;
    top: 50%;
    left: 32px;
    transform: translateY(-50%);
  }
  .mid .side-right .cart table td:last-child {
    width: 18px;
    order: 4;
  }
  .mid .side-right .invoice .recipient .grid-l, .mid .side-right .invoice .recipient .grid-r {
    flex: 0 0 100%;
    max-width: 100%;
  }
  .mid .side-right .invoice .notes .total {
    text-align: left;
    margin-bottom: 24px;
  }
  .mid .side-right .invoice .payment-detail {
    margin-bottom: 24px;
  }
  .mid .side-right .invoice .payment-detail .thead .flex-grid .grid-r {
    display: none;
  }
  .mid .side-right .invoice .payment-detail .thead .flex-grid .grid-l {
    padding-left: 6px;
  }
  .mid .side-right .invoice .payment-detail .tbody {
    padding: 20px 0;
  }
  .mid .side-right .invoice .payment-detail .tbody .flex-grid {
    display: block;
    padding-bottom: 20px;
  }
  .mid .side-right .invoice .payment-detail .tbody .flex-grid .grid-r, .mid .side-right .invoice .payment-detail .tbody .flex-grid .grid-l {
    flex: 0 0 100%;
    max-width: 100%;
    padding: 0 6px;
    text-align: left;
  }
  .mid .side-right .school-item .wrap-items {
    margin-bottom: 24px;
  }
  .mid .side-right .school-item .wrap-items figure {
    height: 132px;
  }
  .mid .side-right .school-item .wrap-items figure img {
    height: 100%;
  }
  .mid .side-right .school-item .wrap-items figcaption {
    padding: 12px;
    min-height: 90px;
  }
  .mid .side-right .school-item .wrap-items figcaption h6 {
    font-size: 14px;
  }
  .mid .side-right .school-item .wrap-items figcaption h5 {
    font-size: 16px;
  }
  .mid .side-right .school-item .wrap-items .overlay-cart {
    display: none;
  }
  .mid .side-right .school-item .wrap-items.action .overlay-cart {
    position: fixed;
    top: unset;
    bottom: 0;
    opacity: 1;
    z-index: 9;
    height: auto;
    min-height: 380px;
    display: block;
  }
  .mid .side-right .title-bar {
    display: block;
    min-height: unset;
  }
  .mid .side-right .title-bar h3 {
    font-size: 20px;
    margin-bottom: 0px;
  }
  .mid .side-right .title-bar .search {
    margin-top: 25px;
  }
  .mid .side-right .tab-item {
    margin-bottom: 35px;
  }
  .mid .side-right .tab-item ul li {
    margin-right: 24px;
  }
  .mid .side-right .wrapper {
    margin: 0 12px;
  }
  .mid .side-right .top-bar {
    margin: 0 -12px 12px;
    background: #ECF4F4;
    padding: 50px 0 6.5px 0;
  }
  .mid .side-right .top-bar .flex-top {
    margin: 0 20px;
  }
  .mid .side-right .top-bar .flex-top .burger-menu-eca {
    display: block;
  }
  .mid .side-right .top-bar .flex-top .side-logo {
    width: calc( 100% - 24px - 34px);
    justify-content: center;
  }
  .mid .side-right .top-bar .flex-top .side-logo figure {
    flex: 0 0 113px;
    max-width: 113px;
  }
  .mid .side-right .top-bar .flex-top .side-logo h6 {
    display: none;
  }
  .mid .side-right .top-bar .flex-top .side-btn {
    width: 24px;
  }
  .mid .side-right .top-bar .flex-top .side-btn a {
    display: none;
  }
  .mid .side-right .top-bar .flex-top .side-btn .box-notif {
    width: 100%;
    height: 100%;
    max-height: unset;
    left: 0;
    position: fixed;
    top: 0;
    z-index: 999999;
  }
  .mid .side-right .top-bar .flex-top .side-btn .box-notif .close-notif {
    display: block;
    width: 30px;
    top: 7px;
    right: 7px;
    position: absolute;
  }
  .only-mobile {
    display: block;
  }
  .logout-mobile {
    padding: 12px 0;
    text-align: center;
    border: 1px solid #EABA2B;
    border-radius: 6px;
    color: #EABA2B;
    font-weight: 700;
    font-size: 14px;
    margin-top: 30px;
  }
  .eca-top .wrapper {
    margin: 0 34px;
  }
  .eca-top .wrapper .container .heading-txt {
    width: 100%;
  }
  .eca-top .wrapper .container .heading-txt h2 {
    font-size: 28px;
  }
  .eca-top .wrapper .container .heading-txt p {
    font-size: 16px;
  }
  .eca-top .container {
    margin: 0;
  }
  .eca-top .row .column.column-30, .eca-top .row .column.column-10, .eca-top .row .column.column-20 {
    flex: 0 0 100%;
    max-width: 100%;
    margin-bottom: 12px;
  }
  .eca-top .row .column.column-10 {
    margin-top: 20px;
    margin-bottom: 0;
  }
  .eca-content .wrapper {
    margin: 0 16px;
  }
  .eca-content .wrapper .wrap-rounded .content {
    padding: 30px 20px;
  }
  .eca-content .wrapper .wrap-rounded .content .title-bar {
    display: block;
  }
  .eca-content .wrapper .wrap-rounded .content .title-bar h3 {
    margin-bottom: 24px;
    font-size: 20px;
  }
  .eca-content .wrapper .wrap-rounded .content .regist-date {
    display: block;
  }
  .eca-content .wrapper .wrap-rounded .content .regist-date h6 {
    margin: 0;
    margin-top: 10px;
  }
  .eca-content .wrapper .wrap-rounded .content .content-centered {
    padding: 0;
    display: block;
  }
  .eca-content .wrapper .wrap-rounded .content .content-centered .content-img {
    margin-bottom: 24px;
  }
  .eca-content .wrapper .wrap-rounded .content .list-eca.registered .table-std tbody tr td {
    padding: 0;
    padding-top: 8px;
  }
  .eca-content .wrapper .wrap-rounded .content .list-eca.registered .table-std tbody tr td:first-child {
    position: inherit;
    display: flex;
    padding-top: 8px;
  }
  .eca-content .wrapper .wrap-rounded .content .list-eca.registered .table-std tbody tr td:first-child::before {
    display: block;
  }
  .eca-content .wrapper .wrap-rounded .content .list-eca.registered .table-std tbody tr td:nth-child(2) {
    padding-top: 8px;
    color: #5A5A5A;
    font-weight: 600;
  }
  .eca-content .wrapper .wrap-rounded .content .list-eca.registered .table-std tbody tr td:nth-child(3) {
    font-weight: 400;
  }
  .eca-content .wrapper .wrap-rounded .content .list-eca .table-std {
    width: 100%;
    overflow: hidden;
  }
  .eca-content .wrapper .wrap-rounded .content .list-eca .table-std td, .eca-content .wrapper .wrap-rounded .content .list-eca .table-std th {
    display: block;
  }
  .eca-content .wrapper .wrap-rounded .content .list-eca .table-std thead tr {
    position: relative;
  }
  .eca-content .wrapper .wrap-rounded .content .list-eca .table-std thead th {
    display: none;
    padding: 0;
    padding-bottom: 27px;
  }
  .eca-content .wrapper .wrap-rounded .content .list-eca .table-std thead th:first-child {
    display: block;
    position: relative;
  }
  .eca-content .wrapper .wrap-rounded .content .list-eca .table-std thead th:before {
    content: attr(data-title);
    position: absolute;
    display: block;
    left: 30px;
    top: 2px;
    color: #0F6961;
    font-weight: 600;
  }
  .eca-content .wrapper .wrap-rounded .content .list-eca .table-std tbody {
    border-top: 1px solid #D9D9D9;
  }
  .eca-content .wrapper .wrap-rounded .content .list-eca .table-std tbody tr {
    position: relative;
    border-bottom: 1px solid #D9D9D9;
  }
  .eca-content .wrapper .wrap-rounded .content .list-eca .table-std tbody tr td {
    padding: 0;
    margin: 0;
    padding: 8px 0 0 30px;
    display: flex;
    line-height: 1.4;
  }
  .eca-content .wrapper .wrap-rounded .content .list-eca .table-std tbody tr td:first-child {
    position: absolute;
    padding: 0;
    padding-top: 20px;
    left: 0;
    display: block;
  }
  .eca-content .wrapper .wrap-rounded .content .list-eca .table-std tbody tr td:first-child::before {
    display: none;
  }
  .eca-content .wrapper .wrap-rounded .content .list-eca .table-std tbody tr td:nth-child(2) {
    padding-top: 20px;
    color: #0F6961;
    font-weight: 600;
  }
  .eca-content .wrapper .wrap-rounded .content .list-eca .table-std tbody tr td:last-child {
    padding-bottom: 16px;
  }
  .eca-content .wrapper .wrap-rounded .content .list-eca .table-std tbody tr td:before {
    content: attr(data-title);
    position: relative;
    color: #444444;
    font-weight: 600;
    display: block;
    width: 50%;
  }
  .eca-content .wrapper .wrap-rounded .content .list-eca table {
    position: relative;
  }
  .eca-content .wrapper .wrap-rounded .content .list-eca-foot {
    display: block;
    text-align: center;
  }
  .eca-content .wrapper .wrap-rounded .content .list-eca-foot span {
    margin-bottom: 12px;
    display: block;
  }
  .eca-content .wrapper .wrap-rounded .content .list-eca-foot .btn-yellow {
    width: 100%;
  }
  .head-eca {
    height: unset;
  }
  .head-eca .container {
    padding: 54px 0 10px;
  }
  .head-eca .container .heading {
    width: 100%;
  }
  .head-eca .container .heading figure {
    flex: 0 0 107px;
    max-width: 107px;
  }
  .head-eca.float {
    height: auto;
  }
  .head-eca.float .container .heading figure {
    flex: 0 0 107px;
    max-width: 107px;
  }
  .popup.popup-success .box-popup {
    padding: 10px;
  }
  .popup.popup-success .box-popup figure img {
    width: 153px;
  }
  .popup.popup-success .box-popup .wrap-btn-pdf .btn-pdf {
    width: 100%;
  }
}

@media all and (max-width: 479px) {
  header .menu-top .lang {
    margin-right: 12px;
  }
  header .menu-top .login {
    padding-right: 15px !important;
  }
  .mid-content .banner-slider .caption {
    padding: 0 40px 40px 40px;
    font-size: 16px;
    line-height: 20px;
  }
  .careermap .point-map a.jkt {
    left: -10px;
  }
  .careermap .point-map a.bali {
    right: 25px;
  }
  .careermap .middle {
    background: url("../images/material/bg-map-mob.png") no-repeat center 0 !important;
    background-size: 435px auto !important;
  }
  .home-cta .bg_shd {
    right: 0;
    background-size: cover;
  }
  /*.box-news {
		.row {
			.col {
				width: 100%; right: 0;
				.text {
					padding: 20px;
					.title {
						font-size: 14px; line-height: 16px;
					}
				}
				.img {
					&:after {
						opacity:0.75;
					}
				}
				&.large {
					.img {
						&:after {background:url("../images/material/overlay-thumb.png") repeat-x 0 bottom; opacity: 0.75;}
					}
				}
			}
		}
	}*/
  footer .ftop .fl {
    width: 76%;
  }
  footer .ftop .fr {
    width: 24%;
  }
  footer .copyright {
    font-size: 10px;
  }
  .wrap-tankyou p {
    font-size: 14px;
    line-height: 28px;
  }
  .wrap-tankyou.w404 h1 {
    font-size: 80px;
  }
}

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGVfMzIwLmNzcyIsInNvdXJjZXMiOlsic3R5bGVfMzIwLnNjc3MiLCJzYXNzLWxpYi5zY3NzIiwiYm91cmJvbi9fYm91cmJvbi5zY3NzIiwiYm91cmJvbi9zZXR0aW5ncy9fcHJlZml4ZXIuc2NzcyIsImJvdXJib24vc2V0dGluZ3MvX3B4LXRvLWVtLnNjc3MiLCJib3VyYm9uL3NldHRpbmdzL19hc3NldC1waXBlbGluZS5zY3NzIiwiYm91cmJvbi9mdW5jdGlvbnMvX2Fzc2lnbi1pbnB1dHMuc2NzcyIsImJvdXJib24vZnVuY3Rpb25zL19jb250YWlucy5zY3NzIiwiYm91cmJvbi9mdW5jdGlvbnMvX2NvbnRhaW5zLWZhbHN5LnNjc3MiLCJib3VyYm9uL2Z1bmN0aW9ucy9faXMtbGVuZ3RoLnNjc3MiLCJib3VyYm9uL2Z1bmN0aW9ucy9faXMtbGlnaHQuc2NzcyIsImJvdXJib24vZnVuY3Rpb25zL19pcy1udW1iZXIuc2NzcyIsImJvdXJib24vZnVuY3Rpb25zL19pcy1zaXplLnNjc3MiLCJib3VyYm9uL2Z1bmN0aW9ucy9fcHgtdG8tZW0uc2NzcyIsImJvdXJib24vZnVuY3Rpb25zL19weC10by1yZW0uc2NzcyIsImJvdXJib24vZnVuY3Rpb25zL19zaGFkZS5zY3NzIiwiYm91cmJvbi9mdW5jdGlvbnMvX3N0cmlwLXVuaXRzLnNjc3MiLCJib3VyYm9uL2Z1bmN0aW9ucy9fdGludC5zY3NzIiwiYm91cmJvbi9mdW5jdGlvbnMvX3RyYW5zaXRpb24tcHJvcGVydHktbmFtZS5zY3NzIiwiYm91cmJvbi9mdW5jdGlvbnMvX3VucGFjay5zY3NzIiwiYm91cmJvbi9mdW5jdGlvbnMvX21vZHVsYXItc2NhbGUuc2NzcyIsImJvdXJib24vaGVscGVycy9fY29udmVydC11bml0cy5zY3NzIiwiYm91cmJvbi9oZWxwZXJzL19kaXJlY3Rpb25hbC12YWx1ZXMuc2NzcyIsImJvdXJib24vaGVscGVycy9fZm9udC1zb3VyY2UtZGVjbGFyYXRpb24uc2NzcyIsImJvdXJib24vaGVscGVycy9fZ3JhZGllbnQtcG9zaXRpb25zLXBhcnNlci5zY3NzIiwiYm91cmJvbi9oZWxwZXJzL19saW5lYXItYW5nbGUtcGFyc2VyLnNjc3MiLCJib3VyYm9uL2hlbHBlcnMvX2xpbmVhci1ncmFkaWVudC1wYXJzZXIuc2NzcyIsImJvdXJib24vaGVscGVycy9fbGluZWFyLXBvc2l0aW9ucy1wYXJzZXIuc2NzcyIsImJvdXJib24vaGVscGVycy9fbGluZWFyLXNpZGUtY29ybmVyLXBhcnNlci5zY3NzIiwiYm91cmJvbi9oZWxwZXJzL19yYWRpYWwtYXJnLXBhcnNlci5zY3NzIiwiYm91cmJvbi9oZWxwZXJzL19yYWRpYWwtcG9zaXRpb25zLXBhcnNlci5zY3NzIiwiYm91cmJvbi9oZWxwZXJzL19yYWRpYWwtZ3JhZGllbnQtcGFyc2VyLnNjc3MiLCJib3VyYm9uL2hlbHBlcnMvX3JlbmRlci1ncmFkaWVudHMuc2NzcyIsImJvdXJib24vaGVscGVycy9fc2hhcGUtc2l6ZS1zdHJpcHBlci5zY3NzIiwiYm91cmJvbi9oZWxwZXJzL19zdHItdG8tbnVtLnNjc3MiLCJib3VyYm9uL2NzczMvX2FuaW1hdGlvbi5zY3NzIiwiYm91cmJvbi9jc3MzL19hcHBlYXJhbmNlLnNjc3MiLCJib3VyYm9uL2NzczMvX2JhY2tmYWNlLXZpc2liaWxpdHkuc2NzcyIsImJvdXJib24vY3NzMy9fYmFja2dyb3VuZC5zY3NzIiwiYm91cmJvbi9jc3MzL19iYWNrZ3JvdW5kLWltYWdlLnNjc3MiLCJib3VyYm9uL2NzczMvX2JvcmRlci1pbWFnZS5zY3NzIiwiYm91cmJvbi9jc3MzL19jYWxjLnNjc3MiLCJib3VyYm9uL2NzczMvX2NvbHVtbnMuc2NzcyIsImJvdXJib24vY3NzMy9fZmlsdGVyLnNjc3MiLCJib3VyYm9uL2NzczMvX2ZsZXgtYm94LnNjc3MiLCJib3VyYm9uL2NzczMvX2ZvbnQtZmFjZS5zY3NzIiwiYm91cmJvbi9jc3MzL19mb250LWZlYXR1cmUtc2V0dGluZ3Muc2NzcyIsImJvdXJib24vY3NzMy9faGlkcGktbWVkaWEtcXVlcnkuc2NzcyIsImJvdXJib24vY3NzMy9faHlwaGVucy5zY3NzIiwiYm91cmJvbi9jc3MzL19pbWFnZS1yZW5kZXJpbmcuc2NzcyIsImJvdXJib24vY3NzMy9fa2V5ZnJhbWVzLnNjc3MiLCJib3VyYm9uL2NzczMvX2xpbmVhci1ncmFkaWVudC5zY3NzIiwiYm91cmJvbi9jc3MzL19wZXJzcGVjdGl2ZS5zY3NzIiwiYm91cmJvbi9jc3MzL19wbGFjZWhvbGRlci5zY3NzIiwiYm91cmJvbi9jc3MzL19yYWRpYWwtZ3JhZGllbnQuc2NzcyIsImJvdXJib24vY3NzMy9fc2VsZWN0aW9uLnNjc3MiLCJib3VyYm9uL2NzczMvX3RleHQtZGVjb3JhdGlvbi5zY3NzIiwiYm91cmJvbi9jc3MzL190cmFuc2Zvcm0uc2NzcyIsImJvdXJib24vY3NzMy9fdHJhbnNpdGlvbi5zY3NzIiwiYm91cmJvbi9jc3MzL191c2VyLXNlbGVjdC5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX2JvcmRlci1jb2xvci5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX2JvcmRlci1yYWRpdXMuc2NzcyIsImJvdXJib24vYWRkb25zL19ib3JkZXItc3R5bGUuc2NzcyIsImJvdXJib24vYWRkb25zL19ib3JkZXItd2lkdGguc2NzcyIsImJvdXJib24vYWRkb25zL19idXR0b25zLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fY2xlYXJmaXguc2NzcyIsImJvdXJib24vYWRkb25zL19lbGxpcHNpcy5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX2ZvbnQtc3RhY2tzLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9faGlkZS10ZXh0LnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fbWFyZ2luLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fcGFkZGluZy5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX3Bvc2l0aW9uLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fcHJlZml4ZXIuc2NzcyIsImJvdXJib24vYWRkb25zL19yZXRpbmEtaW1hZ2Uuc2NzcyIsImJvdXJib24vYWRkb25zL19zaXplLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fdGV4dC1pbnB1dHMuc2NzcyIsImJvdXJib24vYWRkb25zL190aW1pbmctZnVuY3Rpb25zLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fdHJpYW5nbGUuc2NzcyIsImJvdXJib24vYWRkb25zL193b3JkLXdyYXAuc2NzcyIsImJvdXJib24vX2JvdXJib24tZGVwcmVjYXRlZC11cGNvbWluZy5zY3NzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgICBDb21wYW55ICAgIDogUFQgV2ViIEFyY2hpdGVjdCBUZWNobm9sb2d5IC0gd2ViYXJxLmNvbVxyXG4gICAgRG9jdW1lbnQgICA6IFN0eWxlc2hlZXRcclxuICAgIEF1dGhvciAgICAgOiBBbmRyaXNhbVxyXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cclxuQGltcG9ydCBcInNhc3MtbGliXCI7XHJcblxyXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xyXG5cclxuXHQuZnhvLXdpZGdldC1pZnJhbWUge3JpZ2h0OiA0NXB4ICFpbXBvcnRhbnQ7IGJvdHRvbTogMnB4ICFpbXBvcnRhbnQ7fVxyXG5cclxuXHQud3JhcHBlciwgLmNvbnRhaW5lciB7d2lkdGg6IGF1dG87IG1hcmdpbjowIDIwcHg7fVxyXG5cclxuXHQuYnRuIHtcclxuXHRcdGhlaWdodDogNDBweDsgbGluZS1oZWlnaHQ6IDQwcHg7IHBhZGRpbmc6IDAgMjBweDtcclxuXHRcdCYudjIge2hlaWdodDogNDBweDsgbGluZS1oZWlnaHQ6IDM1cHg7IHBhZGRpbmc6IDAgMjVweDt9XHJcblx0XHQmLm1lZGl1bSB7cGFkZGluZzowIDQ1cHg7IGZvbnQtc2l6ZTogMTRweDt9XHJcblx0XHQmLmFicyB7aGVpZ2h0OiAzNnB4OyBsaW5lLWhlaWdodDogMzJweDt9XHJcblx0XHQmLmdyZWVuLW91dGxpbmUge1xyXG5cdFx0XHRoZWlnaHQ6IDM2cHg7IGxpbmUtaGVpZ2h0OiAzMnB4OyBwYWRkaW5nOiAwIDI1cHg7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRoZWFkZXIge1xyXG5cdFx0aGVpZ2h0OiA2MHB4O1xyXG5cdFx0Lm1lbnUtdG9wIHtcclxuXHRcdFx0bWFyZ2luOiAyMHB4IDAgMCAwO1xyXG5cdFx0XHRhIHtcclxuXHRcdFx0XHRoZWlnaHQ6IDIwcHg7IGxpbmUtaGVpZ2h0OiAyMHB4OyBmb250LXNpemU6IDEycHg7XHJcblx0XHRcdFx0Ji5pbmZvIHtkaXNwbGF5OiBub25lO31cclxuXHRcdFx0fVxyXG5cdFx0XHQubGFuZyB7XHJcblx0XHRcdFx0LmFjdCB7XHJcblx0XHRcdFx0XHRwYWRkaW5nLXRvcDogMDsgbWFyZ2luLXRvcDogLTJweDtcclxuXHRcdFx0XHRcdCY6YWZ0ZXIge3RvcDogNHB4O31cclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0dWwge1xyXG5cdFx0XHRcdFx0cGFkZGluZy10b3A6IDNweDtcclxuXHRcdFx0XHRcdGxpIHtcclxuXHRcdFx0XHRcdFx0YSB7aGVpZ2h0OiAyNHB4OyBsaW5lLWhlaWdodDogMjRweDt9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHQubG9nbyB7XHJcblx0XHRcdHdpZHRoOiAxMDBweDsgaGVpZ2h0OiA0MHB4OyBwYWRkaW5nOiAxMHB4IDAgMCAwO1xyXG5cdFx0fVxyXG5cdFx0LmJ1cmdlci1tZW51IHtcclxuXHRcdFx0bWFyZ2luOiAyMHB4IDAgMCA1cHg7IHdpZHRoOiAyMnB4OyBoZWlnaHQ6IDIwcHg7XHJcblx0XHRcdHNwYW4ge1xyXG5cdFx0XHRcdHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDRweDtcclxuXHRcdFx0XHQmOm50aC1jaGlsZCgyKSB7dG9wOiA4cHg7fVxyXG5cdFx0XHRcdCY6bnRoLWNoaWxkKDMpIHt0b3A6IDE2cHg7fVxyXG5cdFx0XHR9XHJcblx0XHRcdCYuZXhwYW5kIHtcclxuXHRcdFx0XHRzcGFuIHtcclxuXHRcdFx0XHRcdCY6bnRoLWNoaWxkKDMpe3RvcDogMTZweDt9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHQmLmZsb2F0IHtcclxuXHRcdFx0aGVpZ2h0OiA2MHB4O1xyXG5cdFx0XHQubWVudS10b3Age1xyXG5cdFx0XHRcdG1hcmdpbjogMjBweCAwIDAgMDtcclxuXHRcdFx0XHRhIHtcclxuXHRcdFx0XHRcdGhlaWdodDogMjBweDsgbGluZS1oZWlnaHQ6IDIwcHg7IGZvbnQtc2l6ZTogMTJweDtcclxuXHRcdFx0XHRcdCYuaW5mbyB7ZGlzcGxheTogbm9uZTt9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdC5sYW5nIHtcclxuXHRcdFx0XHRcdC5hY3Qge1xyXG5cdFx0XHRcdFx0XHRwYWRkaW5nLXRvcDogMDtcclxuXHRcdFx0XHRcdFx0JjphZnRlciB7dG9wOiA0cHg7fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHQubG9nbyB7XHJcblx0XHRcdFx0d2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDQwcHg7IHBhZGRpbmc6IDEwcHggMCAwIDA7XHJcblx0XHRcdH1cclxuXHRcdFx0LmJ1cmdlci1tZW51IHtcclxuXHRcdFx0XHRtYXJnaW46IDIwcHggMCAwIDVweDsgd2lkdGg6IDIycHg7IGhlaWdodDogMjBweDtcclxuXHRcdFx0XHRzcGFuIHtcclxuXHRcdFx0XHRcdHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDRweDtcclxuXHRcdFx0XHRcdCY6bnRoLWNoaWxkKDIpIHt0b3A6IDhweDsgd2lkdGg6IDcwJTt9XHJcblx0XHRcdFx0XHQmOm50aC1jaGlsZCgzKSB7dG9wOiAxNnB4O31cclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0Ji5leHBhbmQge1xyXG5cdFx0XHRcdFx0c3BhbiB7XHJcblx0XHRcdFx0XHRcdCY6bnRoLWNoaWxkKDMpe3RvcDogMTZweDt9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQuYnJlYWRjcnVtYiB7ZGlzcGxheTogbm9uZTt9XHJcblxyXG5cdC5uYXYtbW9iaWxlIHtcclxuXHRcdHBhZGRpbmc6IDYwcHggMCAzMHB4IDA7IHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHRcdC5uYXZtb2Ige1xyXG5cdFx0XHRwYWRkaW5nOiAwO1xyXG5cdFx0XHR1bCB7XHJcblx0XHRcdFx0cGFkZGluZzogMzVweCAwIDIwcHggMDtcclxuXHRcdFx0XHRsaSB7XHJcblx0XHRcdFx0XHR1bCB7aGVpZ2h0OiA2MCU7fVxyXG5cdFx0XHRcdFx0YSB7Zm9udC1zaXplOiAxNnB4OyBwYWRkaW5nOiAxM3B4IDA7fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHQuc3ViZHJvcCwgLnN1YmRyb3AtMiB7XHJcblx0XHRcdFx0cGFkZGluZzogMCAxNXB4OyBoZWlnaHQ6IDk1JTsgdG9wOiA2MHB4O1xyXG5cdCAgICAgICAgICAgIC50aXRsZSB7XHJcblx0ICAgICAgICAgICAgXHRmb250LXNpemU6IDE3cHg7IGZvbnQtd2VpZ2h0OiBib2xkOyBjb2xvcjogJGNfZ3JlZW5fMTA7IG1hcmdpbi1ib3R0b206IDIwcHg7XHJcblx0ICAgICAgICAgICAgXHRhIHtmb250LXdlaWdodDogYm9sZDsgZm9udC1zaXplOiAxNnB4O31cclxuXHQgICAgICAgICAgICB9XHJcblx0ICAgICAgICAgICAgLmJhY2ssIC5iYWNrLTIge1xyXG5cdCAgICAgICAgICAgICAgICBtYXJnaW46IDE1cHggMCAwIDA7XHJcblx0ICAgICAgICAgICAgICAgIGEge1xyXG5cdCAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMDtcdHdpZHRoOiAyNnB4OyBoZWlnaHQ6IDI2cHg7IGJhY2tncm91bmQtc2l6ZToxMDAlIDEwMCU7XHJcblx0ICAgICAgICAgICAgICAgIH1cclxuXHQgICAgICAgICAgICB9XHJcblx0ICAgICAgICAgICAgbGkge1xyXG5cclxuXHQgICAgICAgICAgICAgICAgYSB7XHJcblx0ICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAxMHB4IDA7IGZvbnQtc2l6ZTogMTZweDtcclxuXHQgICAgICAgICAgICAgICAgfVxyXG5cdCAgICAgICAgICAgIH1cclxuXHQgICAgICAgIH1cclxuXHRcdH1cclxuXHRcdC5zb2NpYWwtbW9iIHtcclxuXHRcdFx0dWwge1xyXG5cdFx0XHRcdGxpIHtcclxuXHRcdFx0XHRcdHBhZGRpbmc6IDAgNXB4O1xyXG5cdFx0XHRcdFx0YSB7XHJcblx0XHRcdFx0XHRcdHdpZHRoOiAyMHB4ICFpbXBvcnRhbnQ7IGhlaWdodDogMTdweCAhaW1wb3J0YW50O1xyXG5cdFx0XHRcdFx0XHRiYWNrZ3JvdW5kLXNpemU6IGF1dG8gMTAwJSAhaW1wb3J0YW50O1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0LmluZm8tbW9iIHtcclxuXHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQubWlkZGxlIHtcclxuXHRcdHBhZGRpbmctdG9wOiA2MHB4O1xyXG5cdH1cclxuXHJcblx0LmhvbWVzbGlkZXIge1xyXG5cdFx0LmNhcHRpb24ge1xyXG5cdFx0XHR3aWR0aDogMTAwJTsgcGFkZGluZzogMCAyMHB4OyBsZWZ0OiAwO1xyXG5cdFx0XHRAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlKDAsIC01MCUpKTtcclxuXHRcdFx0QGluY2x1ZGUgYm94U2l6aW5nKGJvcmRlci1ib3gpO1xyXG5cdFx0XHQudGl0bGUge2ZvbnQtc2l6ZTogMjJweDsgbGluZS1oZWlnaHQ6MjZweDsgbWFyZ2luLWJvdHRvbTogMTBweDt9XHJcblx0XHRcdC5kZXMge2ZvbnQtc2l6ZTogMTRweDsgbWFyZ2luLWJvdHRvbTogMjBweDt9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQuY29sLWxvZ28ge1xyXG5cdFx0cGFkZGluZzogMTVweCAwO1xyXG5cdFx0LnJvdyB7XHJcblx0XHRcdC5jb2wge1xyXG5cdFx0XHRcdHdpZHRoOiAxNyU7IG1hcmdpbjogMCAxJTtcclxuXHRcdFx0XHRhIHtcclxuXHRcdFx0XHRcdGhlaWdodDogMjJweDsgdGV4dC1hbGlnbjogY2VudGVyOyBkaXNwbGF5OiBibG9jaztcclxuXHRcdFx0XHRcdGltZyB7bGVmdDogMDsgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZSgwLC01MCUpKTt9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdC5jb2wtYm94IHtcclxuXHRcdGgyIHtcclxuXHRcdFx0Zm9udC1zaXplOiAxNnB4OyBtYXJnaW4tYm90dG9tOiAxMHB4OyBwYWRkaW5nLWxlZnQ6IDA7XHJcblx0XHRcdHNwYW4ge2ZvbnQtc2l6ZTogNzBweDsgdG9wOiAtMzBweDsgbGVmdDogMDsgbWFyZ2luLWxlZnQ6IDA7fVxyXG5cdFx0XHQmLnNheSB7bWFyZ2luOiAwO31cclxuXHRcdFx0Ji5sYW5kIHtcclxuXHRcdFx0XHRzcGFuIHtsZWZ0OiAwO31cclxuXHRcdFx0fVxyXG5cdFx0XHQmLmdyZWVuIHtcclxuXHRcdFx0XHRzcGFuIHttYXJnaW4tbGVmdDogMDt9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdGgzIHtcclxuXHRcdFx0Zm9udC1zaXplOiAyNXB4OyBsaW5lLWhlaWdodDogMzBweDtcclxuXHRcdFx0Ji52MiB7bGluZS1oZWlnaHQ6IDI4cHg7fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LmhvbWUtYWJvdXQge1xyXG5cdFx0LmNvbnRhaW5lciB7cGFkZGluZzogNTBweCAwO31cclxuXHRcdC50ZXh0IHtcclxuXHRcdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRcdHAge2ZvbnQtc2l6ZTogMTRweDsgbGluZS1oZWlnaHQ6IDIwcHg7fVxyXG5cdFx0XHRvbCB7XHJcblx0XHRcdFx0bGkge1xyXG5cdFx0XHRcdFx0Zm9udC1zaXplOiAxMy41cHg7IHBhZGRpbmc6IDNweCAwIDNweCAyNXB4O1xyXG5cdFx0XHRcdFx0JjphZnRlciB7XHJcblx0XHRcdFx0XHRcdGxlZnQ6MTdweDtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC5saXN0aW5nLW5ld3Mge1xyXG5cdFx0LmNvbnRhaW5lciB7cGFkZGluZzogNTBweCAwO31cclxuXHRcdC5yb3cge1xyXG5cdFx0XHRhIHttaW4taGVpZ2h0OiAzMjBweDt9XHJcblx0XHRcdC5jb2wge1xyXG5cdFx0XHRcdHdpZHRoOiAxMDAlOyBtYXJnaW46IDAgMCAxNXB4IDA7XHJcblx0XHRcdFx0Ji5oYXMtaW1nIHtcclxuXHRcdFx0XHRcdC5pbWcge1xyXG5cdFx0XHRcdFx0XHRpbWcge3dpZHRoOiAxMDAlO31cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdCYudjIge1xyXG5cdFx0XHQucm93IHtcclxuXHRcdFx0XHQuY29sIHtcclxuXHRcdFx0XHRcdCYuYWJzLWltZyB7XHJcblx0XHRcdFx0XHRcdC5pbm4ge3BhZGRpbmc6IDI1cHggMjBweDt9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHQmLmNhcm91c2VsIHtcclxuXHRcdFx0LnNsaWNrLWxpc3Qge1xyXG5cdFx0XHRcdG1hcmdpbjogMCA0MHB4O1xyXG5cdFx0XHR9XHJcblx0XHRcdC5zbGljay1hcnJvdyB7XHJcblx0XHRcdFx0d2lkdGg6IDI4cHg7IGhlaWdodDoyOHB4O1xyXG5cdFx0XHRcdGJhY2tncm91bmQtc2l6ZTogYXV0byAxMDAlICFpbXBvcnRhbnQ7XHJcblx0XHRcdFx0Ji5zbGljay1uZXh0IHtcclxuXHRcdFx0XHRcdGJhY2tncm91bmQtcG9zaXRpb246IC0yOHB4IDAgIWltcG9ydGFudDtcclxuXHRcdFx0XHRcdCYuc2xpY2stZGlzYWJsZWQge2JhY2tncm91bmQtcG9zaXRpb246IC0yOHB4IDAgIWltcG9ydGFudDt9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdCYuc2xpY2stcHJldiB7XHJcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDAgIWltcG9ydGFudDtcclxuXHRcdFx0XHRcdCYuc2xpY2stZGlzYWJsZWQge2JhY2tncm91bmQtcG9zaXRpb246IDAgMCAhaW1wb3J0YW50O31cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0LnJvdyB7XHJcblx0XHRcdFx0LmNvbCB7XHJcblx0XHRcdFx0XHRtYXJnaW46IDAgMCAxMHB4IDA7XHJcblx0XHRcdFx0XHQmOm50aC1jaGlsZCg0bis0KSB7bWFyZ2luLXJpZ2h0OiAwJTsgZGlzcGxheTogaW5saW5lLWJsb2NrO31cclxuXHRcdFx0XHRcdCY6bnRoLWNoaWxkKDNuKzMpIHttYXJnaW4tcmlnaHQ6IDAlO31cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC5ib3gtbmV3cyB7XHJcblx0XHQucm93IHtcclxuXHRcdFx0LmNvbCB7XHJcblx0XHRcdFx0d2lkdGg6IDEwMCU7IHJpZ2h0OiAwO1xyXG5cdFx0XHRcdC50ZXh0IHtcclxuXHRcdFx0XHRcdHBhZGRpbmc6IDIwcHg7XHJcblx0XHRcdFx0XHQudGl0bGUge1xyXG5cdFx0XHRcdFx0XHRmb250LXNpemU6IDE0cHg7IGxpbmUtaGVpZ2h0OiAxNnB4O1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHQuaW1nIHtcclxuXHRcdFx0XHRcdCY6YWZ0ZXIge2JhY2tncm91bmQ6IHVybChcIi4uL2ltYWdlcy9tYXRlcmlhbC9iZ19zaGFkb3cucG5nXCIpIHJlcGVhdC14IDAgYm90dG9tO31cclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0Ji5sYXJnZSB7XHJcblx0XHRcdFx0XHQudGV4dCB7XHJcblx0XHRcdFx0XHRcdC50aXRsZSB7XHJcblx0XHRcdFx0XHRcdFx0Zm9udC1zaXplOiAxNHB4OyBsaW5lLWhlaWdodDogMTZweDtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0YSB7XHJcblx0XHRcdFx0XHRcdCY6YmVmb3JlIHt3aWR0aDogNDBweDsgaGVpZ2h0OiAzMHB4OyBiYWNrZ3JvdW5kLXNpemU6MTAwJTt9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHQuaW1nIHtcclxuXHRcdFx0XHRcdFx0JjphZnRlciB7YmFja2dyb3VuZDogdXJsKFwiLi4vaW1hZ2VzL21hdGVyaWFsL2JnX3NoYWRvdy5wbmdcIikgcmVwZWF0LXggMCBib3R0b207fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0Ji52aWRzIHtcclxuXHQgICAgICAgICAgICAgICAgICAgIGEge1xyXG5cdCAgICAgICAgICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcclxuXHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDUwcHg7IGhlaWdodDogMzhweDtcclxuXHQgICAgICAgICAgICAgICAgICAgICAgICB9XHJcblx0ICAgICAgICAgICAgICAgICAgICB9XHJcblx0ICAgICAgICAgICAgICAgIH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC5ob21lLXRlc3RpIHtcclxuXHRcdC5jb250YWluZXIge1xyXG5cdFx0XHRwYWRkaW5nOiA1MHB4IDA7XHJcblx0XHRcdCY6YWZ0ZXIge2Rpc3BsYXk6bm9uZTt9XHJcblx0XHR9XHJcblx0XHQudHh0LXRlc3RpIHtcclxuXHRcdFx0cGFkZGluZzogMCAwIDE1cHggMDtcclxuXHRcdFx0YSB7XHJcblx0XHRcdFx0JjphZnRlciB7XHJcblx0XHRcdFx0XHR0b3A6MDsgbGVmdDogMDsgd2lkdGg6IDMwcHg7IGhlaWdodDogMzFweDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0LnRzLXRpdGxlIHtcclxuXHRcdFx0XHRwYWRkaW5nOiA0MHB4IDAgMCAwO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHQuc2xpY2stc2xpZGVyIHtcclxuXHRcdFx0bWFyZ2luOiAwO1xyXG5cdFx0XHQuc2xpY2stZG90cyB7Ym90dG9tOiAtMjVweDt9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQuaG9tZS1jdGEge1xyXG5cdFx0cG9zaXRpb246IHJlbGF0aXZlOyBoZWlnaHQ6IGF1dG87XHJcblx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwOyBsZWZ0OiAwOyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyBjb250ZW50OiBcIlwiO1xyXG5cdFx0XHR6LWluZGV4OiAyOyBiYWNrZ3JvdW5kOiByZ2JhKDUxLDU4LDY3LCAwLjk1KTtcclxuXHRcdH1cclxuXHRcdC5jb250YWluZXIge3BhZGRpbmc6IDUwcHggMDsgei1pbmRleDogMzt9XHJcblx0XHQudGV4dCB7XHJcblx0XHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0XHRoMyB7Zm9udC1zaXplOiAyMHB4OyBsaW5lLWhlaWdodDogMjVweDt9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQuaG9tZS1hZGRyZXNzIHtcclxuXHRcdC5jb250YWluZXIge3BhZGRpbmc6IDUwcHggMDt9XHJcblx0XHQuY29sIHtcclxuXHRcdFx0aDIge2xpbmUtaGVpZ2h0OiAyMnB4O31cclxuXHRcdFx0Ji5kZXMge1xyXG5cdFx0XHRcdHBhZGRpbmctYm90dG9tOiAxNXB4O1xyXG5cdFx0XHRcdHAge2xpbmUtaGVpZ2h0OiAyMHB4O31cclxuXHRcdFx0fVxyXG5cdFx0XHQmLmFkZHJlc3Mge1xyXG5cdFx0XHRcdC5yb3cge1xyXG5cdFx0XHRcdFx0Lml0ZW0ge1xyXG5cdFx0XHRcdFx0XHR3aWR0aDogMTAwJTsgbWFyZ2luOiAwO1xyXG5cdFx0XHRcdFx0XHQmOmJlZm9yZSB7dG9wOjNweDt9XHJcblx0XHRcdFx0XHRcdEBpbmNsdWRlIGJveFNpemluZyhib3JkZXItYm94KTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC5icmVhZGNydW1iIHtcclxuXHRcdHVsIHtcclxuXHRcdFx0bGkge1xyXG5cdFx0XHRcdG1hcmdpbi1ib3R0b206IDVweDsgZm9udC1zaXplOiAxNHB4O1xyXG5cdFx0XHRcdGEge3BhZGRpbmc6IDAgM3B4IDAgM3B4O31cclxuXHRcdFx0XHQmOmZpcnN0LWNoaWxkIHtcclxuXHRcdFx0XHRcdGEge3BhZGRpbmctbGVmdDowO31cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC5zbGljay1kb3RzIHtcclxuXHRcdGJvdHRvbTogMTBweDsgbWFyZ2luOiAwO1xyXG5cdFx0bGkge1xyXG5cdFx0XHRtYXJnaW46IDAgM3B4O1xyXG5cdFx0XHRidXR0b24ge3dpZHRoOiAxMHB4OyBoZWlnaHQ6IDEwcHg7fVxyXG5cdFx0fVxyXG5cdH1cclxuXHQuc2xpY2stYXJyb3cge1xyXG5cdFx0d2lkdGg6IDM4cHg7IGhlaWdodDogMzhweDtcclxuXHRcdCY6YWZ0ZXIge3dpZHRoOiAyNHB4OyBoZWlnaHQ6IDI0cHg7IGJhY2tncm91bmQtc2l6ZToyNHB4IDI0cHggIWltcG9ydGFudDt9XHJcblx0fVxyXG5cclxuXHQuYm94LXRpdGxlIHtcclxuXHRcdG1pbi1oZWlnaHQ6IDE4MHB4O1xyXG5cdFx0LmNvbnRhaW5lciB7cGFkZGluZzogMzBweCAwO31cclxuXHRcdGgxIHtmb250LXNpemU6IDE2cHg7IGxpbmUtaGVpZ2h0OiAyMHB4O31cclxuXHRcdC5jb250YWluZXIge3BhZGRpbmc6IDM1cHggMCAwIDA7fVxyXG5cdFx0Ji52MiB7XHJcblx0XHRcdG1hcmdpbi1ib3R0b206IDQwcHg7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQubWlkLWNvbnRlbnQge1xyXG5cdFx0cGFkZGluZy1ib3R0b206IDMwcHg7IGZvbnQtc2l6ZTogMTRweDtcclxuXHRcdC5iYW5uZXItc2xpZGVyIHtcclxuXHRcdFx0bWFyZ2luOiAtMTg2cHggMCA2MHB4IDA7XHJcblx0XHRcdCYudjIge21hcmdpbi1ib3R0b206IDQwcHg7fVxyXG5cdFx0XHQmLnYzIHttYXJnaW4tYm90dG9tOiA0MHB4O31cclxuXHRcdFx0Ji52NCB7XHJcblx0XHRcdFx0LmltZyB7XHJcblx0XHRcdFx0XHQmOmJlZm9yZSB7b3BhY2l0eTogMC40O31cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0Ji52NSB7bWFyZ2luLXRvcDogLTg3cHg7IG1hcmdpbi1ib3R0b206IDMwcHg7fVxyXG5cdFx0XHQuY2FwdGlvbiB7XHJcblx0XHRcdFx0cGFkZGluZzogMCAxNXB4IDQwcHggMTVweDsgdGV4dC1hbGlnbjogY2VudGVyOyBmb250LXNpemU6IDE4cHg7IGxpbmUtaGVpZ2h0OiAyMnB4O1xyXG5cdFx0XHR9XHJcblx0XHRcdCYuY3JlZXIge1xyXG5cdFx0XHRcdG1hcmdpbjogMzBweCAwO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHQuYmFubmVyLXRlc3RpbW9uaSB7XHJcblx0XHRcdG1hcmdpbjogLTE4NnB4IDAgNjBweCAwO1xyXG5cdFx0XHRtYXgtaGVpZ2h0OiAxMDAlOyBwb3NpdGlvbjogc3RhdGljO1xyXG5cdFx0XHQuaW1nIHttYXJnaW4tYm90dG9tOiAzMHB4O31cclxuXHRcdFx0LnNsaWNrLWRvdHMge21hcmdpbi10b3A6IC0xNXB4O31cclxuXHRcdH1cclxuXHRcdC5ib3gtbGFuZGluZyB7XHJcblx0XHRcdC5yb3cge1xyXG5cdFx0XHRcdG1hcmdpbi1ib3R0b206IDYwcHg7XHJcblx0XHRcdFx0LmNvbCB7XHJcblx0XHRcdFx0XHR3aWR0aDogMTAwJTsgbWFyZ2luOiAwIDAgMTVweCAwO1xyXG5cdFx0XHRcdFx0LmxkLWRlcyB7XHJcblx0XHRcdFx0XHRcdC5jdCB7Zm9udC1zaXplOiAxNHB4O31cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdCYudHh0IHt3aWR0aDogMTAwJTsgcGFkZGluZzogMDt9XHJcblx0XHRcdFx0XHQmLmltZyB7d2lkdGg6IDEwMCU7IHBhZGRpbmc6IDA7IG1hcmdpbi1ib3R0b206IDA7fVxyXG5cdFx0XHRcdFx0LmxhbmQtYmFubmVyIHtcclxuXHRcdFx0XHRcdFx0LnNsaWRlIHtcclxuXHRcdFx0XHRcdFx0XHQuaW1nIHtcclxuXHRcdFx0XHRcdFx0XHRcdGltZyB7d2lkdGg6IDEwMCU7fVxyXG5cdFx0XHRcdFx0XHRcdFx0Ji52MiB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgYm90dG9tO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdC5zbGljay1pbml0aWFsaXplZCB7XHJcblx0XHRcdFx0XHRcdFx0LnNsaWNrLWxpc3Qge1xyXG5cdFx0XHRcdFx0XHRcdFx0JjphZnRlciB7d2lkdGg6IDExNXB4OyBoZWlnaHQ6IDUwcHg7IGJhY2tncm91bmQtc2l6ZTpjb3ZlciAhaW1wb3J0YW50O31cclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0LnNsaWNrLWFycm93IHtcclxuXHRcdFx0XHRcdFx0XHRcdHdpZHRoOiAzOHB4OyBoZWlnaHQ6IDM4cHg7IHRvcDogMjBweDtcclxuXHRcdFx0XHRcdFx0XHRcdCY6YWZ0ZXIge3dpZHRoOiAzOHB4OyBoZWlnaHQ6IDM4cHg7IGJhY2tncm91bmQtc2l6ZTogMzhweCAzOHB4ICFpbXBvcnRhbnQ7fVxyXG5cdFx0XHRcdFx0XHRcdFx0Ji5zbGljay1wcmV2IHtyaWdodDoyMHB4OyBtYXJnaW4tbGVmdDogLTEwNXB4O31cclxuXHRcdFx0XHRcdFx0XHRcdCYuc2xpY2stbmV4dCB7cmlnaHQ6MjBweDt9XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdC5jYXB0aW9uIHtcclxuXHRcdFx0XHRcdFx0XHQmLnYyIHtcclxuXHRcdFx0XHRcdFx0XHRcdHBhZGRpbmc6IDAgMjBweDsgZm9udC1zaXplOiAxOHB4OyBsaW5lLWhlaWdodDogMjBweDtcclxuXHRcdFx0XHRcdFx0XHRcdGEge2ZvbnQtc2l6ZTogMTRweDt9XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdCY6bnRoLWNoaWxkKGV2ZW4pIHtcclxuXHRcdFx0XHRcdC5jb2wge1xyXG5cdFx0XHRcdFx0XHQmLnR4dCB7cGFkZGluZzogMDt9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRwIHtcclxuXHRcdFx0bGluZS1oZWlnaHQ6IDIycHg7IGZvbnQtc2l6ZTogMTRweDtcclxuXHRcdH1cclxuXHJcblx0XHQucGFnaW5nIHtcclxuXHRcdFx0ZGl2IHtcclxuXHRcdFx0XHRhIHtcclxuXHRcdFx0XHRcdHBhZGRpbmc6IDNweCA3cHggM3B4IDdweDsgZm9udC1zaXplOiAxNnB4O1xyXG5cdFx0XHRcdFx0JjphZnRlciB7cmlnaHQ6MTAlO31cclxuXHRcdFx0XHRcdCYucHJldiwgJi5uZXh0IHtcclxuXHRcdFx0XHRcdFx0cGFkZGluZzogMDsgd2lkdGg6IDI1cHg7IGhlaWdodDogMjVweDsgYmFja2dyb3VuZC1zaXplOmF1dG8gMjVweDtcclxuXHRcdFx0XHRcdFx0bWFyZ2luOiAwIDEwcHg7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHQmLnByZXYge1xyXG5cdFx0XHRcdFx0XHQmOmhvdmVyIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgMDt9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHQmLm5leHQge1xyXG5cdFx0XHRcdFx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjVweCBjZW50ZXI7XHJcblx0XHRcdFx0XHRcdCY6aG92ZXIge2JhY2tncm91bmQtcG9zaXRpb246LTI1cHggMDt9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0LmRlc2NyaXB0aW9uIHtcclxuXHRcdFx0aDMge1xyXG5cdFx0XHRcdGZvbnQtc2l6ZTogMjJweDsgbGluZS1oZWlnaHQ6IDMwcHg7XHJcblx0XHRcdFx0Ji52MiB7Zm9udC1zaXplOiAyMHB4OyBsaW5lLWhlaWdodDogMjZweDt9XHJcblx0XHRcdH1cclxuXHRcdFx0aDQge2ZvbnQtc2l6ZTogMTZweDsgbGluZS1oZWlnaHQ6IDI2cHg7fVxyXG5cdFx0XHRoNSB7XHJcblx0XHRcdFx0c3BhbiB7ZGlzcGxheTogYmxvY2s7IG1hcmdpbi1ib3R0b206IDEwcHg7fVxyXG5cdFx0XHR9XHJcblx0XHRcdC5odG9wIHtcclxuXHRcdFx0XHRhIHtmb250LXNpemU6IDEzcHg7IG1hcmdpbi10b3A6IDVweDt9XHJcblx0XHRcdH1cclxuXHRcdFx0LnRhYmxlLXN0ZCB7cG9zaXRpb246IHJlbGF0aXZlOyBvdmVyZmxvdzogYXV0bzsgcGFkZGluZzogMTBweCAwIDAgMDsgbWFyZ2luLWJvdHRvbTogMzVweDt9XHJcblx0XHRcdHRhYmxlIHtcclxuXHRcdFx0XHR0aGVhZCB7XHJcblx0XHRcdFx0XHR0ciB7XHJcblx0XHRcdFx0XHRcdHRoIHtwYWRkaW5nOiAxMHB4IDVweDsgZm9udC1zaXplOiAxM3B4O31cclxuXHRcdFx0XHRcdFx0Ji5tZWQge1xyXG5cdFx0XHRcdFx0XHRcdHRoIHtmb250LXNpemU6IDEzcHg7fVxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdHRib2R5IHtcclxuXHRcdFx0XHRcdHRyIHtcclxuXHRcdFx0XHRcdFx0dGQge2ZvbnQtc2l6ZTogMTJweDsgcGFkZGluZzogMTBweCA1cHg7fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHR0Zm9vdCB7XHJcblx0XHRcdFx0XHR0ciB7XHJcblx0XHRcdFx0XHRcdHRkIHtmb250LXNpemU6IDEycHg7IHBhZGRpbmc6IDEwcHggNXB4O31cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0dWwge1xyXG5cdFx0XHRcdG1hcmdpbi1sZWZ0OiAwO1xyXG5cdFx0XHRcdGxpIHtcclxuXHRcdFx0XHRcdGxpbmUtaGVpZ2h0OiAyMHB4O1xyXG5cdFx0XHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdFx0XHR0b3A6N3B4O1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0dWwge21hcmdpbi1sZWZ0OiAwO31cclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0Ji5zcGFjZSB7XHJcblx0XHRcdFx0XHRtYXJnaW4tbGVmdDogNXB4O1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHQucGhvdG8tcHJvZmlsZSB7XHJcblx0XHRcdFx0cGFkZGluZzogMCAwIDEwcHggMDtcclxuXHRcdFx0XHQuY29sIHtcclxuXHRcdFx0XHRcdCYuaW1nIHtcclxuXHRcdFx0XHRcdFx0d2lkdGg6IDEwMCU7IHRleHQtYWxpZ246IGNlbnRlcjsgbWFyZ2luLWJvdHRvbTogMTVweDtcclxuXHRcdFx0XHRcdFx0aW1nIHt3aWR0aDogMTQ1cHg7fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0Ji50ZXh0IHtcclxuXHRcdFx0XHRcdFx0d2lkdGg6IDEwMCU7IHBhZGRpbmc6IDA7IHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHRcdFx0XHRcdFx0aDMge2ZvbnQtc2l6ZTogMjRweDt9XHJcblx0XHRcdFx0XHRcdGg0IHtmb250LXNpemU6IDEzcHg7IGxpbmUtaGVpZ2h0OiAxOHB4O31cclxuXHRcdFx0XHRcdFx0cCB7Zm9udC1zaXplOiAxM3B4O31cclxuXHRcdFx0XHRcdFx0Ji52MiB7XHJcblx0XHRcdFx0XHRcdFx0cGFkZGluZy1yaWdodDogMDsgcGFkZGluZy10b3A6IDA7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0Lmxpc3RpbmctaGVhZHNjaG9vbCB7XHJcblx0XHRcdFx0LnBob3RvLXByb2ZpbGUge3BhZGRpbmc6IDAgMCA3MHB4IDA7fVxyXG5cdFx0XHRcdC5yb3cge1xyXG5cdFx0XHRcdFx0LmFicyB7XHJcblx0XHRcdFx0XHRcdHRvcDogMTAwJTsgbWFyZ2luLXRvcDogLTY1cHg7IGxlZnQ6IDUwJTsgcGFkZGluZzogMCAxNXB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblx0XHRcdFx0XHRcdEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGUoLTUwJSkpO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHQuaW5kZXMge1xyXG5cdFx0XHRcdHBhZGRpbmc6IDA7XHJcblx0XHRcdH1cclxuXHRcdFx0Ji5ub3N0eWxlZC10YWJsZSB7XHJcblx0XHRcdFx0dGFibGUge3dpZHRoOiAxMDAlO31cclxuXHRcdFx0fVxyXG5cdFx0XHQuc2xpY2stZG90cyB7XHJcblx0XHRcdFx0bWFyZ2luOiAwO1xyXG5cdFx0XHRcdGxpIHtsaW5lLWhlaWdodDogMTBweDt9XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdC5jb2wtYm90dG9tIHtcclxuXHRcdFx0XHRwYWRkaW5nOiA2MHB4IDAgMCAwO1xyXG5cdFx0XHRcdC5yb3cge1xyXG5cdFx0XHRcdFx0JjpiZWZvcmUge2Rpc3BsYXk6bm9uZTt9XHJcblx0XHRcdFx0XHQuY2wge1xyXG5cdFx0XHRcdFx0XHQmLmZsIHtcclxuXHRcdFx0XHRcdFx0XHR3aWR0aDogMTAwJTsgcGFkZGluZzogMCAwIDAgMDsgbWFyZ2luLWJvdHRvbTogMzBweDtcclxuXHRcdFx0XHRcdFx0XHQmOmFmdGVyIHtcclxuXHRcdFx0XHRcdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdFx0XHRcdFx0XHQgICAgd2lkdGg6IDEwMCU7XHJcblx0XHRcdFx0XHRcdFx0ICAgIGhlaWdodDogMXB4O1xyXG5cdFx0XHRcdFx0XHRcdCAgICBjb250ZW50OiBcIlwiO1xyXG5cdFx0XHRcdFx0XHRcdCAgICBkaXNwbGF5OiBibG9jaztcclxuXHRcdFx0XHRcdFx0XHQgICAgYmFja2dyb3VuZDogI2RkZGRkZDtcclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0Ji5mciB7d2lkdGg6IDEwMCU7IHBhZGRpbmc6IDAgMCAwIDA7fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHQubGlzdC1saWZlIHtcclxuXHRcdFx0XHQucm93IHtcclxuXHRcdFx0XHRcdC5jb2wge1xyXG5cdFx0XHRcdFx0XHRwYWRkaW5nOiAwIDAgMjBweCAwOyBtYXJnaW46IDAgMCAyMHB4IDA7XHJcblx0XHRcdFx0XHRcdC5mbCB7d2lkdGg6IDEwMCU7IG1hcmdpbi1ib3R0b206IDE1cHg7fVxyXG5cdFx0XHRcdFx0XHQuZnIge3dpZHRoOiAxMDAlO31cclxuXHRcdFx0XHRcdFx0aDUge2ZvbnQtc2l6ZTogMTRweDsgbWFyZ2luLXRvcDogMDt9XHJcblx0XHRcdFx0XHRcdGEge2hlaWdodDogMzBweDsgbGluZS1oZWlnaHQ6IDMwcHg7IHBhZGRpbmc6IDAgMjBweDt9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHRcdC50ZXN0aSB7XHJcblx0XHRcdFx0LnBob3RvLXByb2ZpbGUge1xyXG5cdFx0XHRcdFx0cGFkZGluZy1ib3R0b206IDIwcHg7XHJcblx0XHRcdFx0XHQuY29sLnRleHQudjIge1xyXG5cdFx0XHRcdFx0XHRwYWRkaW5nOiAwIDEwcHg7XHJcblx0XHRcdFx0XHRcdHAge2ZvbnQtc2l6ZTogMTNweDsgbGluZS1oZWlnaHQ6IDIycHg7fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdC5ncmlkLWNhdGVnb3J5IHtcclxuXHRcdFx0cGFkZGluZzogMDtcclxuXHRcdFx0LnJvdyB7XHJcblx0XHRcdFx0LmNvbCB7XHJcblx0XHRcdFx0XHR3aWR0aDogMTAwJTsgcGFkZGluZzogMDsgbWFyZ2luOiAwIDAgMjBweCAwO1xyXG5cdFx0XHRcdFx0JjpudGgtY2hpbGQoMm4rMikge3BhZGRpbmctbGVmdDogMDt9XHJcblx0XHRcdFx0XHQmLmZpcnN0IHtcclxuXHRcdFx0XHRcdFx0LmNhcHRpb24ge1xyXG5cdFx0XHRcdFx0XHRcdHdpZHRoOiA0OSU7IHBhZGRpbmc6IDAgMTVweDsgZm9udC1zaXplOiAxNnB4OyBsaW5lLWhlaWdodDogMThweDtcclxuXHRcdFx0XHRcdFx0XHQuZGVzIHtmb250LXNpemU6IDEzcHg7IGxpbmUtaGVpZ2h0OiAxNXB4OyBwYWRkaW5nOiA1cHggMCAwIDA7fVxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHRcdCYuY29sXzMge1xyXG5cdFx0XHRcdC5yb3cge1xyXG5cdFx0XHRcdFx0LmNvbCB7d2lkdGg6IDEwMCU7fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdC5saXN0LWdlbiB7XHJcblx0XHRcdC5jb2wge1xyXG5cdFx0XHRcdHBhZGRpbmc6IDE1cHggMDtcclxuXHRcdFx0XHQuZmwge3dpZHRoOiAxMDAlOyBtYXJnaW46IDAgMCAxMHB4IDA7fVxyXG5cdFx0XHRcdC5mciB7XHJcblx0XHRcdFx0XHR3aWR0aDogMTAwJTsgcGFkZGluZzogMDsgdGV4dC1hbGlnbjogbGVmdDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHQuY29sLXVuaXZlcnNpdHksIC5jb2wtcGFydG5lciB7XHJcblx0XHRcdC5yb3cge1xyXG5cdFx0XHRcdG1hcmdpbi1ib3R0b206IDMwcHg7XHJcblx0XHRcdFx0LmNvbCB7XHJcblx0XHRcdFx0XHRoNSB7bWFyZ2luLWJvdHRvbTogMjBweDt9XHJcblx0XHRcdFx0XHRkaXYge1xyXG5cdFx0XHRcdFx0XHRhIHtwYWRkaW5nOiAwIDIwcHggMCAyMHB4OyB3aWR0aDogNTAlOyBoZWlnaHQ6IDEwMHB4O31cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0Ji5jb2wtNSB7XHJcblx0XHRcdFx0XHQuY29sIHtcclxuXHRcdFx0XHRcdFx0YSB7d2lkdGg6IDUwJTt9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdH1cclxuXHJcblxyXG5cclxuXHQuY29sLWZvcm0ge1xyXG5cdFx0LmNvbnRhaW5lciB7XHJcblx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHR3aWR0aDo2NXB4OyBoZWlnaHQ6IDg1cHg7IHJpZ2h0OiAwOyB0b3A6IC00MHB4O1xyXG5cdFx0XHRcdGJhY2tncm91bmQtc2l6ZTogMTAwJTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0LmZvcm0tc3RkIHtcclxuXHRcdFx0cGFkZGluZzogMDtcclxuXHRcdFx0LmNvbCB7XHJcblx0XHRcdFx0d2lkdGg6IDEwMCU7IHBhZGRpbmc6IDAgMCAwIDA7IG1hcmdpbjogMCAwIDMwcHggMDtcclxuXHRcdFx0XHQmOm50aC1jaGlsZCgybisyKSB7bWFyZ2luLXJpZ2h0OiAwOyBwYWRkaW5nLWxlZnQ6IDA7fVxyXG5cdFx0XHRcdC5sYWJlbCB7XHJcblx0XHRcdFx0XHRoZWlnaHQ6IDIwcHg7IGxpbmUtaGVpZ2h0OiAyMHB4OyBmb250LXNpemU6IDE0cHg7IHRvcDogMTJweDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0LmFuaW0tbGFiZWwge2ZvbnQtc2l6ZTogMTRweDt9XHJcblx0XHRcdFx0LmZpZWxkIHtcclxuXHRcdFx0XHRcdHBhZGRpbmctYm90dG9tOiAxMHB4O1xyXG5cdFx0XHRcdFx0Ji5vdGhlci12YWwge1xyXG5cdFx0XHRcdFx0XHRwYWRkaW5nLXRvcDogMTBweDtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0ICAgICAgICAgICAgJi53aXRoLXBhZGRpbmd7XHJcblx0ICAgICAgICAgICAgXHRwYWRkaW5nLWxlZnQ6MDtcclxuXHQgICAgICAgICAgICB9XHJcblx0ICAgICAgICAgICAgJi5uby1wYWRkaW5ne1xyXG5cdCAgICAgICAgICAgIFx0cGFkZGluZzowO1xyXG5cdCAgICAgICAgICAgIH1cclxuXHQgICAgICAgICAgICAmLmNvbC1idXR0b257XHJcblx0ICAgICAgICAgICAgXHRwYWRkaW5nOjA7XHJcblx0ICAgICAgICAgICAgfVxyXG5cdCAgICAgICAgICAgICYuY29sLWNhcHRjaGEgLmctcmVjYXB0Y2hhe1xyXG5cdCAgICAgICAgICAgIFx0dHJhbnNmb3JtOiBzY2FsZSgwLjkzKTtcclxuXHRcdFx0XHQgICAgdHJhbnNmb3JtLW9yaWdpbjogMDtcclxuXHRcdFx0XHQgICAgbWFyZ2luLWJvdHRvbTogLTVweDtcclxuXHQgICAgICAgICAgICB9XHJcblxyXG5cdFx0XHR9XHJcblx0XHRcdCYuc3RkLTIge1xyXG5cdFx0XHRcdC5jb2wge1xyXG5cdFx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMTVweDtcclxuXHRcdFx0XHRcdC5idG4ge21hcmdpbjogMCBhdXRvO31cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdCYudjIge1xyXG5cdFx0XHQuZm9ybS1zdGQge1xyXG5cdFx0XHRcdC5jb2wge1xyXG5cdFx0XHRcdFx0LmxhYmVsIHtmb250LXNpemU6IDE0cHg7fVxyXG5cdFx0XHRcdFx0LmZpZWxkLmZvY3VzIC5sYWJlbCB7Zm9udC1zaXplOiAxMnB4O31cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC5jb2wtYWNjIHtcclxuXHRcdC5hY2NsaXN0IHtcclxuXHRcdFx0LmFjYy10aXRsZSB7XHJcblx0XHRcdFx0cGFkZGluZzogMTVweCAzMHB4IDE1cHggMHB4OyBmb250LXNpemU6IDE0cHg7XHJcblx0XHRcdFx0JjphZnRlciB7cmlnaHQ6OHB4OyB0b3A6IDIwcHg7fVxyXG5cdFx0XHR9XHJcblx0XHRcdC5hY2MtZGVzY3JpcCB7XHJcblx0XHRcdFx0b2wge1xyXG5cdFx0XHRcdFx0bGkge2ZvbnQtc2l6ZTogMTRweDsgbGluZS1oZWlnaHQ6IDE4cHg7fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0Ji52MiB7XHJcblx0XHRcdC5hY2MtZGVzY3JpcCB7XHJcblx0XHRcdFx0cGFkZGluZzogMTVweCAwO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQudGFiLWNvbnRhaW5lciB7XHJcblx0XHQubmF2LXRhYiB7XHJcblx0XHRcdHBhZGRpbmctYm90dG9tOiAzMHB4O1xyXG5cdFx0XHQucGFyZW50LW1vYiB7XHJcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XHJcblx0XHRcdH1cclxuXHRcdFx0dWwge1xyXG5cdFx0XHRcdGRpc3BsYXk6IG5vbmU7XHJcblx0XHRcdFx0bGkge1xyXG5cdFx0XHRcdFx0ZGlzcGxheTogYmxvY2s7IG1hcmdpbi1ib3R0b206IDFweDtcclxuXHRcdFx0XHRcdCY6YWZ0ZXIge2Rpc3BsYXk6bm9uZTt9XHJcblx0XHRcdFx0XHRhIHtcclxuXHRcdFx0XHRcdFx0Zm9udC1zaXplOiAxNHB4OyBwYWRkaW5nOiAxNXB4IDE1cHg7IGJhY2tncm91bmQ6JGNfZTFlO1xyXG5cdFx0XHRcdFx0XHQmOmFmdGVyIHtkaXNwbGF5Om5vbmU7fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0JjpmaXJzdC1jaGlsZCB7XHJcblx0XHRcdFx0XHRcdGEge1xyXG5cdFx0XHRcdFx0XHRcdHBhZGRpbmctbGVmdDogMTVweDtcclxuXHRcdFx0XHRcdFx0XHQmOmFmdGVyIHtsZWZ0OjUwJTt9XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC5jb2wtZ2FsbGVyeSB7XHJcblx0XHQubmF2LWdhbCB7XHJcblx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjsgbWFyZ2luLWJvdHRvbTogMjVweDtcclxuXHRcdFx0YSB7Zm9udC1zaXplOiAxOHB4OyBtYXJnaW4tcmlnaHQ6IDMwcHg7IGZsb2F0OiBub25lOyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7fVxyXG5cdFx0fVxyXG5cdFx0LnJvdyB7XHJcblx0XHRcdC5jb2wge1xyXG5cdFx0XHRcdHdpZHRoOiAxMDAlOyBtYXJnaW46IDAgMCAzJSAwO1xyXG5cdFx0XHRcdGEge1xyXG5cdFx0XHRcdFx0LnRleHQge1xyXG5cdFx0XHRcdFx0XHRwYWRkaW5nOiAxOHB4O1xyXG5cdFx0XHRcdFx0XHQuY2FwdGlvbiB7Zm9udC1zaXplOiAxNnB4OyBsaW5lLWhlaWdodDogMThweDsgaGVpZ2h0OiBhdXRvO31cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdC5pbWcge1xyXG5cdFx0XHRcdFx0XHQmOmJlZm9yZSB7YmFja2dyb3VuZC1wb3NpdGlvbjowIGJvdHRvbTsgb3BhY2l0eTogMC45fVxyXG5cdFx0XHRcdFx0XHQuaG92X2J0biB7XHJcblx0XHRcdFx0XHRcdFx0LmJ0biB7Zm9udC1zaXplOiAxMnB4OyBsaW5lLWhlaWdodDogMzBweDsgaGVpZ2h0OiAzMHB4OyBwYWRkaW5nOiAwIDI1cHg7fVxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQuaW5uZXItY29udGFjdCB7XHJcblx0XHQmLnYyIHtwYWRkaW5nOiA1MHB4IDA7fVxyXG5cdFx0Lmxpc3QtYWRkcmVzcyB7XHJcblx0XHRcdC5yb3cge1xyXG5cdFx0XHRcdC5jb2wge1xyXG5cdFx0XHRcdFx0aDMge1xyXG5cdFx0XHRcdFx0XHRmb250LXNpemU6IDIycHg7XHJcblx0XHRcdFx0XHRcdCYudjIge2ZvbnQtc2l6ZTogMjBweDt9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRoNCB7Zm9udC1zaXplOiAxOHB4O31cclxuXHRcdFx0XHRcdHAge1xyXG5cdFx0XHRcdFx0XHRmb250LXNpemU6IDE2cHg7IGxpbmUtaGVpZ2h0OiAyNnB4O1xyXG5cdFx0XHRcdFx0XHQuZ3JlZW4ge2ZvbnQtc2l6ZTogMTVweDsgbGluZS1oZWlnaHQ6IDI0cHg7fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0LnJvdyB7XHJcblx0XHRcdFx0XHRcdG1hcmdpbi1ib3R0b206IDMwcHg7XHJcblx0XHRcdFx0XHRcdC5jbCB7XHJcblx0XHRcdFx0XHRcdFx0JjpudGgtY2hpbGQoMSkge3dpZHRoOiAxMDAlO31cclxuXHRcdFx0XHRcdFx0XHQmOm50aC1jaGlsZCgyKSB7d2lkdGg6IDEwMCU7fVxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQuaW5uZXItY29udGFjdCB7XHJcblx0XHQubGlzdC1tYXAge1xyXG5cdFx0XHRoMyB7bWFyZ2luLWJvdHRvbTogMjBweDt9XHJcblx0XHRcdC5yb3cge1xyXG5cdFx0XHRcdC5jb2wge1xyXG5cdFx0XHRcdFx0d2lkdGg6IDEwMCU7IG1hcmdpbjogMCAwIDIwcHggMDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdC5hZGRtaXNzaW9uIHtcclxuXHRcdFx0aDIge21hcmdpbi1ib3R0b206IDIwcHg7fVxyXG5cdFx0XHQucm93IHtcclxuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG5cdFx0XHRcdC5jb2wge1xyXG5cdFx0XHRcdFx0d2lkdGg6IDEwMCU7IG1hcmdpbi1ib3R0b206IDVweDsgZm9udC1zaXplOiAxNnB4O1xyXG5cdFx0XHRcdFx0JjpudGgtY2hpbGQoMm4rMikge3dpZHRoOiAxMDAlOyBwYWRkaW5nOiAwOyBmb250LXNpemU6IDE0cHg7fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LmNhcmVlcm1hcCB7XHJcblx0XHQubWlkZGxlIHttaW4taGVpZ2h0OiA0ODBweDsgbWF4LWhlaWdodDogNDgwcHg7fVxyXG5cdFx0LmNvbnRhaW5lciB7d2lkdGg6IDI0MHB4OyBtYXJnaW46IGF1dG87fVxyXG5cdFx0aGVhZGVyIHtcclxuXHRcdFx0LmNvbnRhaW5lciB7d2lkdGg6IGF1dG87IG1hcmdpbjogMCAyMHB4O31cclxuXHRcdH1cclxuXHRcdC5kZXMtbWFwIHtcclxuXHRcdFx0bWluLWhlaWdodDoyNjBweDsgbWF4LWhlaWdodDogMjYwcHg7XHJcblx0XHRcdC50aXRsZSB7Zm9udC1zaXplOiAyMnB4OyBsaW5lLWhlaWdodDogMjhweDsgcGFkZGluZy10b3A6IDQwcHg7fVxyXG5cdFx0XHRwIHtmb250LXNpemU6IDEzcHg7IGRpc3BsYXk6IG5vbmU7fVxyXG5cdFx0fVxyXG5cdFx0LnBvaW50LW1hcCB7XHJcblx0XHRcdGEge1xyXG5cdFx0XHRcdGZvbnQtc2l6ZTogOXB4OyBwYWRkaW5nOiAzMHB4IDAgMCAwO1xyXG5cdFx0XHRcdCY6YWZ0ZXIge3dpZHRoOiAyM3B4OyBoZWlnaHQ6IDI4cHg7IGJhY2tncm91bmQtc2l6ZTogMTAwJTt9XHJcblx0XHRcdFx0Ji5qa3Qge2xlZnQ6LTcwcHg7IHRvcDogLTQ4cHg7fVxyXG5cdFx0XHRcdCYuYmFsaSB7cmlnaHQ6NDBweDsgdG9wOiAwO31cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LndyYXAtdGFua3lvdSB7XHJcblx0XHRtaW4taGVpZ2h0OiA1MDBweDtcclxuXHRcdC5jb250YWluZXIge3dpZHRoOiBhdXRvO31cclxuXHR9XHJcblxyXG5cclxuXHQjYm94UG9wIHtcclxuXHRcdC5wb3BBcnJvdyB7XHJcblx0XHRcdHdpZHRoOiAzOHB4OyBoZWlnaHQ6IDM4cHg7XHJcblx0XHRcdCY6YWZ0ZXIge3dpZHRoOiAyNXB4OyBoZWlnaHQ6IDI1cHg7IGJhY2tncm91bmQtc2l6ZToxMDAlIDEwMCUgIWltcG9ydGFudDt9XHJcblx0XHR9XHJcblx0XHQuY2xvc2VfcG9wIHtcclxuXHRcdFx0d2lkdGg6IDE4cHg7IGhlaWdodDogMThweDsgYmFja2dyb3VuZC1zaXplOiAxMDAlOyB0b3A6IC0zNXB4O1xyXG5cdFx0fVxyXG5cdFx0LmNvbnRlbnRfcG9wIHtcclxuXHRcdFx0LmRldFR4dCB7XHJcblx0XHRcdFx0LmRldENhdGUge2ZvbnQtc2l6ZTogMTNweDt9XHJcblx0XHRcdFx0LmRldFRpdGxlIHtmb250LXNpemU6IDIwcHg7fVxyXG5cdFx0XHR9XHJcblx0XHRcdC52aWQge2hlaWdodDogMjAwcHg7fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LmZpbHRlcmluZyB7XHJcblx0XHQuY2wge2Rpc3BsYXk6IGJsb2NrO31cclxuXHRcdC5mciB7d2lkdGg6IDEwMCU7fVxyXG5cdH1cclxuXHJcblx0LnBvcHVwIHtcclxuICAgIC5ib3gtcG9wdXAge1xyXG5cdFx0XHRtYXgtd2lkdGg6IDM4MHB4O1xyXG5cdFx0XHRwYWRkaW5nOiAxMHB4O1xyXG5cdFx0XHQuY29udGVudC1wb3B1cCB7XHJcblx0XHRcdFx0cGFkZGluZzogMCAxMHB4O1xyXG5cdFx0XHRcdGg0IHtcclxuXHRcdFx0XHRcdGZvbnQtc2l6ZTogMTZweDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0cCB7XHJcblx0XHRcdFx0XHRmb250LXNpemU6IDEycHg7XHJcblx0XHRcdFx0XHRsaW5lLWhlaWdodDogMThweDtcclxuXHRcdFx0XHRcdG1hcmdpbi1ib3R0b206IDE1cHg7XHJcblx0XHRcdFx0fVxyXG4gICAgICAgIG9sIGxpLCBvbCBsaTpiZWZvcmUsIHVsIGxpIHtcclxuICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDtcclxuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxOHB4O1xyXG4gICAgICAgIH1cclxuICAgICAgICBvbCBsaSB7XHJcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDE1cHg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHVsIGxpIHtcclxuICAgICAgICAgIHBhZGRpbmctbGVmdDogMTVweDtcclxuICAgICAgICAgICY6OmJlZm9yZSB7XHJcbiAgICAgICAgICAgIGhlaWdodDogNnB4O1xyXG4gICAgICAgICAgICB0b3A6IDZweDtcclxuICAgICAgICAgICAgd2lkdGg6IDZweDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblx0XHRcdH1cclxuXHRcdFx0YnV0dG9uIHtcclxuXHRcdFx0XHR3aWR0aDogMTQwcHg7XHJcblx0XHRcdFx0cGFkZGluZzogOHB4IDA7XHJcblx0XHRcdFx0Zm9udC1zaXplOiAxMXB4O1xyXG5cdFx0XHR9XHJcbiAgICB9XHJcblx0fVxyXG5cclxuXHRmb290ZXIge1xyXG5cdFx0LmZ0b3Age1xyXG5cdFx0XHQuZmwge1xyXG5cdFx0XHRcdHdpZHRoOiA2NSU7IHBhZGRpbmc6IDAgMTBweCAwIDA7XHJcblx0XHRcdFx0QGluY2x1ZGUgYm94U2l6aW5nKGJvcmRlci1ib3gpO1xyXG5cdFx0XHRcdC5jbCB7XHJcblx0XHRcdFx0XHR3aWR0aDogMTAwJTsgQGluY2x1ZGUgYm94U2l6aW5nKGJvcmRlci1ib3gpOyBtYXJnaW46IDAgYXV0byA2cHggYXV0bzsgZmxvYXQ6IG5vbmU7XHJcblx0XHRcdFx0XHRwYWRkaW5nOiAzcHggMHB4IDVweCAzNHB4OyBmb250LXNpemU6IDEwLjVweDsgbGluZS1oZWlnaHQ6IDE0cHg7XHJcblx0XHRcdFx0XHQmLm1haWwge3dpZHRoOiAxMDAlO31cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0LmZyIHtcclxuXHRcdFx0XHR3aWR0aDogMzUlO1xyXG5cdFx0XHRcdC5zb2NpYWwtZm9vdCB7XHJcblx0XHRcdFx0XHR3aWR0aDogMTAwJTsgdGV4dC1hbGlnbjogcmlnaHQ7XHJcblx0XHRcdFx0XHRhIHtwYWRkaW5nOiAwIDJweDsgdGV4dC1pbmRlbnQ6IDk5OTk5OXB4OyBtYXJnaW4tYm90dG9tOiA2cHg7fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0LmNvcHlyaWdodCB7bWFyZ2luOiAwO31cclxuXHRcdC5mYm90IHtcclxuXHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cdFx0XHQuZmwge3dpZHRoOiAxMDAlOyBtYXJnaW4tYm90dG9tOiAxMHB4O31cclxuXHRcdFx0LmZyIHt3aWR0aDogMTAwJTt9XHJcblx0XHR9XHJcblx0fVxyXG5cdC5zY3JvbGx1cCB7XHJcblx0XHRib3R0b206IDI1cHg7IHJpZ2h0OiAyMHB4OyB3aWR0aDogMjVweDsgaGVpZ2h0OiAyNXB4O1xyXG5cdFx0YmFja2dyb3VuZC1zaXplOjUwJSBhdXRvICFpbXBvcnRhbnQ7XHJcblx0fVxyXG4gIC5sb2dpbntcclxuICAgIC53cmFwcGVye1xyXG4gICAgICBtYXJnaW46IDAgMjBweDtcclxuICAgICAgLnNpZGUtZm9ybXtcclxuICAgICAgICAuY29udGVudC1mb3Jte1xyXG4gICAgICAgICAgLmhlYWRpbmd7XHJcbiAgICAgICAgICAgIGZpZ3VyZXtcclxuICAgICAgICAgICAgICA+IGltZ3tcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAxNTBweDtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaDZ7XHJcbiAgICAgICAgICAgICAgZm9udC1zaXplOiAxNXB4O1xyXG4gICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMTZweDtcclxuICAgICAgICAgICAgICAmOjpiZWZvcmV7XHJcbiAgICAgICAgICAgICAgICBsZWZ0OiA4cHg7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBoMntcclxuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICAubWlke1xyXG4gICAgLnJvd3tcclxuICAgICAgbWFyZ2luLWxlZnQ6IHVuc2V0O1xyXG4gICAgICB3aWR0aDogYXV0bztcclxuICAgICAgLmNvbHVtbi5jb2x1bW4tMzN7XHJcbiAgICAgICAgcGFkZGluZzogMCAxMHB4O1xyXG4gICAgICB9XHJcbiAgICAgIC5jb2x1bW57XHJcbiAgICAgICAgJi5jb2x1bW4tNjUsICYuY29sdW1uLTM1LCAmLmNvbHVtbi01MCwgJi5jb2x1bW4tMjUsICYuY29sdW1uLTc1LCAmLmNvbHVtbi0xMDB7XHJcbiAgICAgICAgICBmbGV4OiAwIDAgMTAwJTtcclxuICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblx0XHRcdCYucm93LXNwbGl0IHtcclxuXHRcdFx0XHR3aWR0aDogY2FsYygxMDAlICsgMjBweCk7XHJcblx0XHRcdFx0bWFyZ2luLWxlZnQ6IC0xMHB4O1xyXG5cdFx0XHRcdC5jb2x1bW4ge1xyXG5cdFx0XHRcdFx0Ji5jb2x1bW4tMjUge1xyXG5cdFx0XHRcdFx0XHRmbGV4OiAwIDAgNDAlO1xyXG5cdFx0XHRcdFx0XHRtYXgtd2lkdGg6IDQwJTtcclxuXHRcdFx0XHRcdFx0cGFkZGluZzogMCAxMHB4O1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0Ji5jb2x1bW4tNTAge1xyXG5cdFx0XHRcdFx0XHRmbGV4OiAwIDAgNTAlO1xyXG5cdFx0XHRcdFx0XHRtYXgtd2lkdGg6IDUwJTtcclxuXHRcdFx0XHRcdFx0cGFkZGluZzogMCAxMHB4O1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0Ji5jb2x1bW4tNzUge1xyXG5cdFx0XHRcdFx0XHRmbGV4OiAwIDAgNjAlO1xyXG5cdFx0XHRcdFx0XHRtYXgtd2lkdGg6IDYwJTtcclxuXHRcdFx0XHRcdFx0cGFkZGluZzogMCAxMHB4O1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG4gICAgfVxyXG4gICAgLm5hdi1tb2JpbGUtZWNhe1xyXG4gICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG4gICAgLnNpZGUtcmlnaHR7XHJcbiAgICAgIHBhZGRpbmctbGVmdDogMDtcclxuICAgICAgJi5tb3ZlcmlnaHR7XHJcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xyXG4gICAgICB9XHJcbiAgICAgIC53cmFwLWRheXtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgIH1cclxuICAgICAgLnBheW1lbnR7XHJcbiAgICAgICAgLnBheW1lbnQtZGV0YWlse1xyXG4gICAgICAgICAgLmJveC1wYXltZW50e1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAyNXB4IDI1cHggMTEwcHg7XHJcblx0XHRcdFx0XHRcdHNlbGVjdCB7XHJcblx0XHRcdFx0XHRcdFx0d2lkdGg6IGNhbGMoMTAwJSAtIDUwcHgpO1xyXG5cdFx0XHRcdFx0XHRcdGxlZnQ6IDI1cHg7XHJcblx0XHRcdFx0XHRcdFx0cmlnaHQ6IHVuc2V0O1xyXG5cdFx0XHRcdFx0XHRcdHRvcDogdW5zZXQ7XHJcblx0XHRcdFx0XHRcdFx0Ym90dG9tOiA0NXB4O1xyXG5cdFx0XHRcdFx0XHR9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5hY2NvcmRpb24tcGF5bWVudHtcclxuXHRcdFx0XHRcdGJvcmRlci1ib3R0b206IHVuc2V0O1xyXG4gICAgICAgICAgLmFjY2xpc3R7XHJcbiAgICAgICAgICAgIC5hY2MtdGl0bGV7XHJcblx0XHRcdFx0XHRcdFx0Zm9udC1zaXplOiAyMHB4O1xyXG4gICAgICAgICAgICAgIHBhZGRpbmc6IDI0cHggMDtcclxuXHRcdFx0XHRcdFx0XHRib3JkZXItdG9wOiB1bnNldDtcclxuXHRcdFx0XHRcdFx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcclxuXHRcdFx0XHRcdFx0XHQubG9nby1wYXltZW50IHtcclxuXHRcdFx0XHRcdFx0XHRcdGRpc3BsYXk6IG5vbmU7XHJcblx0XHRcdFx0XHRcdFx0fVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC5hY2MtZGVzY3JpcHtcclxuXHRcdFx0XHRcdFx0XHRwYWRkaW5nOiAyNXB4IDA7XHJcbiAgICAgICAgICAgICAgLmZvcm0tY29udHJvbHtcclxuICAgICAgICAgICAgICAgIGlucHV0W3R5cGU9bnVtYmVyXXtcclxuICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICA+IGltZ3tcclxuICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIC53cmFwLWJ1dHRvbntcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICAgICAgLmJ0bi1jYW5jZWwsIC5idG4tc3VibWl0e1xyXG4gICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgLnN1bW1hcnl7XHJcbiAgICAgICAgcmlnaHQ6IDE4cHg7XHJcbiAgICAgICAgbGVmdDogMThweDtcclxuICAgICAgICBib3R0b206IDE4cHg7XHJcbiAgICAgICAgd2lkdGg6IGNhbGMoIDEwMCUgLSAzNnB4ICk7XHJcbiAgICAgICAgaDN7XHJcbiAgICAgICAgICAmOmZpcnN0LWNoaWxke1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAuYnRuLXllbGxvd3tcclxuICAgICAgICAgIGZvbnQtc2l6ZTogMDtcclxuICAgICAgICAgIHdpZHRoOiA3NnB4O1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICAuY2FydHtcclxuICAgICAgICAuaW5wdXQtcXVhbnRpdHl7XHJcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGVuZDtcclxuICAgICAgICB9XHJcbiAgICAgICAgLmNhcnQtY2F0ZWdvcnl7XHJcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAzNHB4O1xyXG4gICAgICAgIH1cclxuICAgICAgICB0YWJsZXtcclxuICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjRTZFNkU2O1xyXG4gICAgICAgICAgdGQsdGh7IGRpc3BsYXk6IGJsb2NrO31cclxuXHRcdFx0ICAgIHRoZWFkeyBkaXNwbGF5OiBub25lO31cclxuICAgICAgICAgIHRye1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgIGZsZXgtZmxvdzogd3JhcDtcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRke1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxke1xyXG4gICAgICAgICAgICAgIHRvcDogMzBweDtcclxuICAgICAgICAgICAgICAuY3VzdG9tLWNoZWNrYm94e1xyXG4gICAgICAgICAgICAgICAgdG9wOiAzMHB4O1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAmOm50aC1jaGlsZCgyKXtcclxuICAgICAgICAgICAgICB3aWR0aDogODBweDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAmOm50aC1jaGlsZCgzKXtcclxuICAgICAgICAgICAgICB3aWR0aDogY2FsYyggMTAwJSAtIDMycHggLSA4MHB4IC0gMThweCApO1xyXG4gICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogNnB4O1xyXG4gICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAyMHB4O1xyXG4gICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNHB4O1xyXG4gICAgICAgICAgICAgICY6OmFmdGVye1xyXG4gICAgICAgICAgICAgICAgY29udGVudDogXCJJdGVtIE5hbWVcIjtcclxuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiAjNjY2NjY2O1xyXG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgICAgIHRvcDogMDtcclxuICAgICAgICAgICAgICAgIGxlZnQ6IDZweDtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgaDZ7XHJcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE3cHg7XHJcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAmOm50aC1jaGlsZCg0KXtcclxuICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgICBvcmRlcjogNTtcclxuICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgICAgJjo6YWZ0ZXJ7XHJcbiAgICAgICAgICAgICAgICBjb250ZW50OiBcIlFUWVwiO1xyXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgICAgICAgICAgICAgY29sb3I6ICM2NjY2NjY7XHJcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XHJcbiAgICAgICAgICAgICAgICBsZWZ0OiAzMnB4O1xyXG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAmOm50aC1jaGlsZCg1KXtcclxuICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgICBvcmRlcjogNjtcclxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjRjVGNUY1O1xyXG4gICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcclxuICAgICAgICAgICAgICBwYWRkaW5nOiA1cHggMjRweDtcclxuICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcclxuICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgICAgJjo6YWZ0ZXJ7XHJcbiAgICAgICAgICAgICAgICBjb250ZW50OiBcIlRvdGFsIFByaWNlXCI7XHJcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDE0cHg7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogIzY2NjY2NjtcclxuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcclxuICAgICAgICAgICAgICAgIGxlZnQ6IDMycHg7XHJcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICY6bGFzdC1jaGlsZHtcclxuICAgICAgICAgICAgICB3aWR0aDogMThweDtcclxuICAgICAgICAgICAgICBvcmRlcjogNDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICAuaW52b2ljZXtcclxuICAgICAgICAucmVjaXBpZW50e1xyXG4gICAgICAgICAgLmdyaWQtbCwgLmdyaWQtcntcclxuICAgICAgICAgICAgZmxleDogMCAwIDEwMCU7XHJcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLm5vdGVze1xyXG4gICAgICAgICAgLnRvdGFse1xyXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAucGF5bWVudC1kZXRhaWx7XHJcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4O1xyXG4gICAgICAgICAgLnRoZWFke1xyXG4gICAgICAgICAgICAuZmxleC1ncmlke1xyXG4gICAgICAgICAgICAgIC5ncmlkLXJ7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAuZ3JpZC1se1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiA2cHg7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAudGJvZHl7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDIwcHggMDtcclxuICAgICAgICAgICAgLmZsZXgtZ3JpZHtcclxuICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMjBweDtcclxuICAgICAgICAgICAgICAuZ3JpZC1yLCAuZ3JpZC1se1xyXG4gICAgICAgICAgICAgICAgZmxleDogMCAwIDEwMCU7XHJcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIDZweDtcclxuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIC5zY2hvb2wtaXRlbXtcclxuICAgICAgICAud3JhcC1pdGVtc3tcclxuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XHJcbiAgICAgICAgICBmaWd1cmV7XHJcbiAgICAgICAgICAgIGhlaWdodDogMTMycHg7XHJcbiAgICAgICAgICAgIGltZ3tcclxuICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGZpZ2NhcHRpb257XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDEycHg7XHJcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDkwcHg7XHJcbiAgICAgICAgICAgIGg2e1xyXG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBoNXtcclxuICAgICAgICAgICAgICBmb250LXNpemU6IDE2cHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC5vdmVybGF5LWNhcnR7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAmLmFjdGlvbntcclxuICAgICAgICAgICAgLm92ZXJsYXktY2FydHtcclxuICAgICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICAgICAgICAgICAgdG9wOiB1bnNldDtcclxuICAgICAgICAgICAgICBib3R0b206IDA7XHJcbiAgICAgICAgICAgICAgb3BhY2l0eTogMTtcclxuICAgICAgICAgICAgICB6LWluZGV4OiA5O1xyXG4gICAgICAgICAgICAgIGhlaWdodDogYXV0bztcclxuICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzODBweDtcclxuICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICAudGl0bGUtYmFye1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgIG1pbi1oZWlnaHQ6IHVuc2V0O1xyXG4gICAgICAgIGgze1xyXG4gICAgICAgICAgZm9udC1zaXplOiAyMHB4O1xyXG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMHB4O1xyXG4gICAgICAgIH1cclxuICAgICAgICAuc2VhcmNoe1xyXG4gICAgICAgICAgbWFyZ2luLXRvcDogMjVweDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgLnRhYi1pdGVte1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDM1cHg7XHJcbiAgICAgICAgdWx7XHJcbiAgICAgICAgICBsaXtcclxuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAyNHB4O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICAud3JhcHBlcntcclxuICAgICAgICBtYXJnaW46IDAgMTJweDtcclxuICAgICAgfVxyXG4gICAgICAudG9wLWJhcntcclxuICAgICAgICBtYXJnaW46IDAgLTEycHggMTJweDtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAjRUNGNEY0O1xyXG4gICAgICAgIHBhZGRpbmc6IDUwcHggMCA2LjVweCAwO1xyXG4gICAgICAgIC5mbGV4LXRvcHtcclxuICAgICAgICAgIG1hcmdpbjogMCAyMHB4O1xyXG4gICAgICAgICAgLmJ1cmdlci1tZW51LWVjYXtcclxuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAuc2lkZS1sb2dve1xyXG4gICAgICAgICAgICB3aWR0aDogY2FsYyggMTAwJSAtIDI0cHggLSAzNHB4ICk7XHJcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICAgICAgICBmaWd1cmV7XHJcbiAgICAgICAgICAgICAgZmxleDogMCAwIDExM3B4O1xyXG4gICAgICAgICAgICAgIG1heC13aWR0aDogMTEzcHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaDZ7XHJcbiAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgLnNpZGUtYnRue1xyXG4gICAgICAgICAgICB3aWR0aDogMjRweDtcclxuICAgICAgICAgICAgYXtcclxuICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgICAgICB9XHJcblx0XHRcdFx0XHRcdC5ib3gtbm90aWYge1xyXG5cdFx0XHRcdFx0XHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0XHRcdFx0XHRcdGhlaWdodDogMTAwJTtcclxuXHRcdFx0XHRcdFx0XHRtYXgtaGVpZ2h0OiB1bnNldDsgXHJcblx0XHRcdFx0XHRcdFx0bGVmdDogMDtcclxuXHRcdFx0XHRcdFx0XHRwb3NpdGlvbjogZml4ZWQ7XHJcblx0XHRcdFx0XHRcdFx0dG9wOiAwO1xyXG5cdFx0XHRcdFx0XHRcdHotaW5kZXg6IDk5OTk5OTtcclxuXHRcdFx0XHRcdFx0XHQuY2xvc2Utbm90aWYge1xyXG5cdFx0XHRcdFx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XHJcblx0XHRcdFx0XHRcdFx0XHR3aWR0aDogMzBweDtcclxuXHRcdFx0XHRcdFx0XHRcdHRvcDogN3B4O1xyXG5cdFx0XHRcdFx0XHRcdFx0cmlnaHQ6IDdweDtcclxuXHRcdFx0XHRcdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgLm9ubHktbW9iaWxle1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgfVxyXG5cclxuICAubG9nb3V0LW1vYmlsZXtcclxuICAgIHBhZGRpbmc6IDEycHggMDtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkICNFQUJBMkI7XHJcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XHJcbiAgICBjb2xvcjogI0VBQkEyQjtcclxuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgICBmb250LXNpemU6IDE0cHg7XHJcbiAgICBtYXJnaW4tdG9wOiAzMHB4O1xyXG4gIH1cclxuICAuZWNhLXRvcHtcclxuICAgIC53cmFwcGVye1xyXG4gICAgICBtYXJnaW46IDAgMzRweDtcclxuICAgICAgLmNvbnRhaW5lcntcclxuICAgICAgICAuaGVhZGluZy10eHR7XHJcbiAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgIGgye1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDI4cHg7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBwe1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDE2cHg7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAuY29udGFpbmVye1xyXG4gICAgICBtYXJnaW46IDA7XHJcbiAgICB9XHJcbiAgICAucm93e1xyXG4gICAgICAuY29sdW1uLmNvbHVtbi0zMCwgLmNvbHVtbi5jb2x1bW4tMTAsLmNvbHVtbi5jb2x1bW4tMjB7XHJcbiAgICAgICAgZmxleDogMCAwIDEwMCU7XHJcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7XHJcbiAgICAgIH1cclxuICAgICAgLmNvbHVtbi5jb2x1bW4tMTB7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogMjBweDtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIC5lY2EtY29udGVudHtcclxuICAgIC53cmFwcGVye1xyXG4gICAgICBtYXJnaW46IDAgMTZweDtcclxuICAgICAgLndyYXAtcm91bmRlZHtcclxuICAgICAgICAuY29udGVudHtcclxuICAgICAgICAgIHBhZGRpbmc6IDMwcHggMjBweDtcclxuICAgICAgICAgIC50aXRsZS1iYXJ7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICBoM3tcclxuICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4O1xyXG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogMjBweDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgLnJlZ2lzdC1kYXRle1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgaDZ7XHJcbiAgICAgICAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgICAgICAgIG1hcmdpbi10b3A6IDEwcHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC5jb250ZW50LWNlbnRlcmVke1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgLmNvbnRlbnQtaW1ne1xyXG4gICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC5saXN0LWVjYXtcclxuICAgICAgICAgICAgJi5yZWdpc3RlcmVke1xyXG4gICAgICAgICAgICAgIC50YWJsZS1zdGR7XHJcbiAgICAgICAgICAgICAgICB0Ym9keXtcclxuICAgICAgICAgICAgICAgICAgdHJ7XHJcbiAgICAgICAgICAgICAgICAgICAgdGR7XHJcbiAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDhweDtcclxuICAgICAgICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGR7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpbmhlcml0O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogOHB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAmOjpiZWZvcmV7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDIpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogOHB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogIzVBNUE1QTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDMpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAudGFibGUtc3Rke1xyXG4gICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgICAgICAgICAgdGQsdGh7IGRpc3BsYXk6IGJsb2NrO31cclxuICAgICAgICAgICAgICB0aGVhZHtcclxuICAgICAgICAgICAgICAgIHRye1xyXG4gICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aHtcclxuICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICAgICAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDI3cHg7XHJcbiAgICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGR7XHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICY6YmVmb3Jle1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS10aXRsZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDMwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAycHg7XHJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICMwRjY5NjE7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB0Ym9keXtcclxuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6MXB4IHNvbGlkICNEOUQ5RDk7XHRcdFx0XHRcclxuICAgICAgICAgICAgICAgIHRye1xyXG4gICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNEOUQ5RDk7XHRcdFx0XHRcclxuICAgICAgICAgICAgICAgICAgdGR7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogOHB4IDAgMCAzMHB4O1xyXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcclxuICAgICAgICAgICAgICAgICAgICAvLyB3aWR0aDogY2FsYyggMTAwJSAtIDMwcHggKTtcclxuICAgICAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxke1xyXG4gICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAyMHB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcclxuICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICAgICAgICAgICAgJjo6YmVmb3Jle1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgyKXtcclxuICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAyMHB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICMwRjY5NjE7XHJcbiAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGR7XHJcbiAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTZweDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgJjpiZWZvcmV7XHJcbiAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtdGl0bGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICM0NDQ0NDQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogNTAlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0YWJsZSB7XHJcbiAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAubGlzdC1lY2EtZm9vdHtcclxuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICAgICAgc3BhbntcclxuICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xyXG4gICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC5idG4teWVsbG93e1xyXG4gICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIC5oZWFkLWVjYXtcclxuICAgIGhlaWdodDogdW5zZXQ7XHJcbiAgICAuY29udGFpbmVye1xyXG4gICAgICBwYWRkaW5nOiA1NHB4IDAgMTBweDtcclxuICAgICAgLmhlYWRpbmd7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgZmlndXJle1xyXG4gICAgICAgICAgZmxleDogMCAwIDEwN3B4O1xyXG4gICAgICAgICAgbWF4LXdpZHRoOiAxMDdweDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgICYuZmxvYXR7XHJcbiAgICAgIGhlaWdodDogYXV0bztcclxuICAgICAgLmNvbnRhaW5lcntcclxuICAgICAgICAuaGVhZGluZ3tcclxuICAgICAgICAgIGZpZ3VyZXtcclxuICAgICAgICAgICAgZmxleDogMCAwIDEwN3B4O1xyXG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwN3B4O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICAucG9wdXB7XHJcbiAgICAmLnBvcHVwLXN1Y2Nlc3N7XHJcbiAgICAgIC5ib3gtcG9wdXB7XHJcbiAgICAgICAgcGFkZGluZzogMTBweDtcclxuICAgICAgICBmaWd1cmV7XHJcbiAgICAgICAgICBpbWd7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxNTNweDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLndyYXAtYnRuLXBkZntcclxuICAgICAgICAgIC5idG4tcGRme1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcblxyXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA0NzlweCkge1xyXG5cclxuXHRoZWFkZXIge1xyXG5cdFx0Lm1lbnUtdG9wIHtcclxuXHRcdFx0Lmxhbmcge21hcmdpbi1yaWdodDogMTJweDt9XHJcblx0XHRcdC5sb2dpbiB7cGFkZGluZy1yaWdodDogMTVweCAhaW1wb3J0YW50O31cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC5taWQtY29udGVudCB7XHJcblx0XHQuYmFubmVyLXNsaWRlciB7XHJcblx0XHRcdC5jYXB0aW9uIHtcclxuXHRcdFx0XHRwYWRkaW5nOiAwIDQwcHggNDBweCA0MHB4OyBmb250LXNpemU6IDE2cHg7IGxpbmUtaGVpZ2h0OiAyMHB4O1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQuY2FyZWVybWFwIHtcclxuXHRcdC5wb2ludC1tYXAge1xyXG5cdFx0XHRhIHtcclxuXHRcdFx0XHQmLmprdCB7bGVmdDogLTEwcHg7fVxyXG5cdFx0XHRcdCYuYmFsaSB7cmlnaHQ6IDI1cHg7fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHQubWlkZGxlIHtcclxuXHRcdFx0YmFja2dyb3VuZDogdXJsKCcuLi9pbWFnZXMvbWF0ZXJpYWwvYmctbWFwLW1vYi5wbmcnKSBuby1yZXBlYXQgY2VudGVyIDAgIWltcG9ydGFudDtcclxuXHRcdFx0YmFja2dyb3VuZC1zaXplOiA0MzVweCBhdXRvICFpbXBvcnRhbnQ7XHJcblx0XHR9XHJcblx0fVxyXG5cdC5ob21lLWN0YSB7XHJcblx0XHQuYmdfc2hkIHtyaWdodDowOyBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO31cclxuXHR9XHJcblxyXG5cdC8qLmJveC1uZXdzIHtcclxuXHRcdC5yb3cge1xyXG5cdFx0XHQuY29sIHtcclxuXHRcdFx0XHR3aWR0aDogMTAwJTsgcmlnaHQ6IDA7XHJcblx0XHRcdFx0LnRleHQge1xyXG5cdFx0XHRcdFx0cGFkZGluZzogMjBweDtcclxuXHRcdFx0XHRcdC50aXRsZSB7XHJcblx0XHRcdFx0XHRcdGZvbnQtc2l6ZTogMTRweDsgbGluZS1oZWlnaHQ6IDE2cHg7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdC5pbWcge1xyXG5cdFx0XHRcdFx0JjphZnRlciB7XHJcblx0XHRcdFx0XHRcdG9wYWNpdHk6MC43NTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0Ji5sYXJnZSB7XHJcblx0XHRcdFx0XHQuaW1nIHtcclxuXHRcdFx0XHRcdFx0JjphZnRlciB7YmFja2dyb3VuZDp1cmwoXCIuLi9pbWFnZXMvbWF0ZXJpYWwvb3ZlcmxheS10aHVtYi5wbmdcIikgcmVwZWF0LXggMCBib3R0b207IG9wYWNpdHk6IDAuNzU7fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH0qL1xyXG5cdGZvb3RlciB7XHJcblx0XHQuZnRvcCB7XHJcblx0XHRcdC5mbCB7XHJcblx0XHRcdFx0d2lkdGg6IDc2JTtcclxuXHRcdFx0fVxyXG5cdFx0XHQuZnIge1xyXG5cdFx0XHRcdHdpZHRoOiAyNCU7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdC5jb3B5cmlnaHQge2ZvbnQtc2l6ZTogMTBweDt9XHJcblx0fVxyXG5cclxuXHQud3JhcC10YW5reW91IHtcclxuXHRcdHAge2ZvbnQtc2l6ZTogMTRweDsgbGluZS1oZWlnaHQ6IDI4cHg7fVxyXG5cdFx0Ji53NDA0IHtcclxuXHRcdFx0aDEge2ZvbnQtc2l6ZTogODBweDt9XHJcblx0XHR9XHJcblx0fVxyXG5cclxufVxyXG4iLCIvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVx0XHJcbiAgICBDb21wYW55ICAgIDogUFQgV2ViIEFyY2hpdGVjdCBUZWNobm9sb2d5IC0gd2ViYXJxLmNvbVxyXG4gICAgRG9jdW1lbnQgICA6IFN0eWxlc2hlZXRcclxuICAgIEF1dGhvciAgICAgOiBGcm9udEVuZCBUZWFtICBcclxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXHJcblxyXG4vKiBpbXBvcnQgYm91cmJvbiAtIGh0dHA6Ly9ib3VyYm9uLmlvL2RvY3MgKi9cclxuQGltcG9ydCBcImJvdXJib24vYm91cmJvblwiO1xyXG5cclxuQG1peGluIHRyYW5zaXRpb24oJGF0dHIpe1xyXG4gICAgdHJhbnNpdGlvbjogJGF0dHI7XHJcbiAgICAtd2Via2l0LXRyYW5zaXRpb246ICRhdHRyO1xyXG4gICAgLW1vei10cmFuc2l0aW9uOiAkYXR0cjtcclxuICAgIC1tcy10cmFuc2l0aW9uOiAkYXR0cjtcclxuICAgIC1vLXRyYW5zaXRpb246ICRhdHRyO1xyXG59XHJcbkBtaXhpbiB0cmFuc2Zvcm0oJGF0dHIpe1xyXG4gICAgdHJhbnNmb3JtOiAkYXR0cjtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiAkYXR0cjtcclxuICAgIC1tb3otdHJhbnNmb3JtOiAkYXR0cjtcclxuICAgIC1tcy10cmFuc2Zvcm06ICRhdHRyO1xyXG4gICAgLW8tdHJhbnNmb3JtOiAkYXR0cjtcclxufVxyXG5AbWl4aW4gYm9yZGVyUmFkaXVzKCRhdHRyKXtcclxuICAgIGJvcmRlci1yYWRpdXM6ICRhdHRyO1xyXG4gICAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAkYXR0cjtcclxuICAgIC1tb3otYm9yZGVyLXJhZGl1czogJGF0dHI7XHJcbiAgICAtbXMtYm9yZGVyLXJhZGl1czogJGF0dHI7XHJcbiAgICAtby1ib3JkZXItcmFkaXVzOiAkYXR0cjtcclxufVxyXG5AbWl4aW4gYm94U2hhZG93KCRhdHRyKXtcclxuICAgIGJveC1zaGFkb3c6ICAkYXR0cjtcclxuICAgIC13ZWJraXQtYm94LXNoYWRvdzogJGF0dHI7XHJcbiAgICAtbW96LWJveC1zaGFkb3c6ICRhdHRyO1xyXG4gICAgLW1zLWJveC1zaGFkb3c6ICRhdHRyO1xyXG4gICAgLW8tYm94LXNoYWRvdzogJGF0dHJcclxufVxyXG5AbWl4aW4gYm94U2l6aW5nKCRhdHRyKXtcclxuICAgIGJveC1zaXppbmc6ICAkYXR0cjtcclxuICAgIC13ZWJraXQtYm94LXNpemluZzogJGF0dHI7XHJcbiAgICAtbW96LWJveC1zaXppbmc6ICRhdHRyO1xyXG4gICAgLW1zLWJveC1zaXppbmc6ICRhdHRyO1xyXG4gICAgLW8tYm94LXNpemluZzogJGF0dHJcclxufVxyXG5AbWl4aW4gcGxhY2Vob2xkZXIge1xyXG4gICAgOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtAY29udGVudH1cclxuICAgIDotbW96LXBsYWNlaG9sZGVyICAgICAgICAgICB7QGNvbnRlbnR9XHJcbiAgICA6Oi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAge0Bjb250ZW50fVxyXG4gICAgOi1tcy1pbnB1dC1wbGFjZWhvbGRlciAgICAgIHtAY29udGVudH0gIFxyXG59XHJcbkBtaXhpbiBhbmRwbGFjZWhvbGRlciB7XHJcbiAgICAmOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtAY29udGVudH1cclxuICAgICY6LW1vei1wbGFjZWhvbGRlciAgICAgICAgICAge0Bjb250ZW50fVxyXG4gICAgJjo6LW1vei1wbGFjZWhvbGRlciAgICAgICAgICB7QGNvbnRlbnR9XHJcbiAgICAmOi1tcy1pbnB1dC1wbGFjZWhvbGRlciAgICAgIHtAY29udGVudH0gIFxyXG59XHJcbkBtaXhpbiBib3hTaXppbmcoJGF0dHIpe1xyXG4gICAgLXdlYmtpdC1ib3gtc2l6aW5nOiAkYXR0cjtcclxuICAgIC1tb3otYm94LXNpemluZzogJGF0dHI7XHJcbiAgICBib3gtc2l6aW5nOiAkYXR0cjtcclxufVxyXG5AbWl4aW4gY2xlYXJmaXh7XHJcbiAgICAmOmJlZm9yZSxcclxuICAgICY6YWZ0ZXJ7XHJcbiAgICAgICAgY29udGVudDogXCIgXCI7IFxyXG4gICAgICAgIGRpc3BsYXk6IHRhYmxlOyBcclxuICAgIH1cclxuICAgICY6YWZ0ZXJ7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7IFxyXG4gICAgICAgIGNsZWFyOiBib3RoO1xyXG4gICAgICAgIGhlaWdodDogMHB4O1xyXG4gICAgICAgIG1hcmdpbi10b3A6IC0xcHg7XHJcbiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xyXG4gICAgfVxyXG4gICAgJntcclxuICAgICAgICAqem9vbTogMTtcclxuICAgIH1cclxufVxyXG5AbWl4aW4gdHJhbnNmb3Jtb3JpZ2luKCRhdHRyKXtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogJGF0dHI7XHJcbiAgICAtbW96LXRyYW5zZm9ybS1vcmlnaW46ICRhdHRyO1xyXG4gICAgLW8tdHJhbnNmb3JtLW9yaWdpbjogJGF0dHI7XHJcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAkYXR0cjtcclxufVxyXG5cclxuXHJcbi8qIGNvbG9yIGdsb2JhbFxyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cclxuJGNfMTExOiAjMTExO1xyXG4kY18zMzM6ICMzMzM7XHJcbiRjXzNhMzogIzNhM2EzYTtcclxuJGNfM2E0OiAjMzMzYTQzO1xyXG4kY181NTU6ICM1NTU7XHJcbiRjXzVjNTogIzVjNWM1YztcclxuJGNfNjY2OiAjNjY2O1xyXG4kY185OTk6ICM5OTk7XHJcbiRjX2VhOiAjZWFlYWVhO1xyXG4kY19lMWU6ICNlMWUxZTE7XHJcbiRjX2NjYzogI2NjYztcclxuJGNfY2ZjOiAjY2ZjZmNmO1xyXG4kY19kZGQ6ICNkZGQ7XHJcbiRjX2QxZDogI2QxZDFkMTtcclxuJGNfZDZkOiAjZDZkNmQ2O1xyXG4kY19mZmY6ICNmZmY7XHJcbiRjX2YxZjogI2YxZjFmMTtcclxuJGNfZjVmOiAjZjVmNWY1O1xyXG4kY19lNGU6ICNlNGU0ZTQ7XHJcbiRjX2FjYTogI2FjYWNhYzsgXHJcbiRjX2E5YTogI2E5YTlhOTtcclxuJGNfZTllOiAjZTllOWU5O1xyXG4kY185Zjk6ICM5ZjlmOWY7XHJcbiRjXzk1OTogIzk1OTU5NTtcclxuJGNfZGRkOiAjZGRkZGRkO1xyXG4kY19lZWU6ICNlZWU7XHJcbiRjXzc0OTogIzc0OTI3YjtcclxuJGNfN2ZjOiAjN2ZjOGFkO1xyXG4kY19iZmU6ICNiZmU0ZDY7XHJcbiRjXzljOTogIzljOWMzNDtcclxuJGNfYTZhOiAjYTZhNjJiO1xyXG4kY19hYWI6ICNhYWJiZDE7XHJcbiRjX2FjYTogI2FjYWNhYztcclxuJGNfeWVsbG93OiAjZWNiYjAyO1xyXG4kY195ZWxsb3dfMjogI2UwYjIwNjtcclxuJGNfeWVsbG93XzM6ICNmOWVhYjM7XHJcbiRjX3llbGxvd180OiAjZjdlNDlhO1xyXG4kY195ZWxsb3dfNTogI2Y0YzIwNDtcclxuJGNfZ3JlZW46ICMwMDQ1M2Y7XHJcbiRjX2dyZWVuXzI6ICNhOGE4Mzg7XHJcbiRjX2dyZWVuXzM6ICM0MmUyYzY7XHJcbiRjX2dyZWVuXzQ6ICMyNDVlNTk7XHJcbiRjX2dyZWVuXzU6ICM4YmFkMjU7XHJcbiRjX2dyZWVuXzY6ICM2Yzk0MDA7XHJcbiRjX2dyZWVuXzc6ICM3YmRjYjk7XHJcbiRjX2dyZWVuXzg6ICNkY2U2YmQ7XHJcbiRjX2dyZWVuXzk6ICNlOGVmZDM7XHJcbiRjX2dyZWVuXzEwOiAjMDA0ODQzO1xyXG4kY19lOGY6ICNlOGZmZmQ7XHJcbiRjX2UwZjogI2UwZjBlZjtcclxuJGNfMDAzOiAjMDAzNzMzO1xyXG4kY18wMDQ6ICMwMDQ5NDM7XHJcbiRjX2M3YzogI2M3Yzc4NjtcclxuIiwiLy8gQm91cmJvbiA0LjIuN1xyXG4vLyBodHRwOi8vYm91cmJvbi5pb1xyXG4vLyBDb3B5cmlnaHQgMjAxMS0yMDE1IHRob3VnaHRib3QsIGluYy5cclxuLy8gTUlUIExpY2Vuc2VcclxuXHJcbkBpbXBvcnQgXCJzZXR0aW5ncy9wcmVmaXhlclwiO1xyXG5AaW1wb3J0IFwic2V0dGluZ3MvcHgtdG8tZW1cIjtcclxuQGltcG9ydCBcInNldHRpbmdzL2Fzc2V0LXBpcGVsaW5lXCI7XHJcblxyXG5AaW1wb3J0IFwiZnVuY3Rpb25zL2Fzc2lnbi1pbnB1dHNcIjtcclxuQGltcG9ydCBcImZ1bmN0aW9ucy9jb250YWluc1wiO1xyXG5AaW1wb3J0IFwiZnVuY3Rpb25zL2NvbnRhaW5zLWZhbHN5XCI7XHJcbkBpbXBvcnQgXCJmdW5jdGlvbnMvaXMtbGVuZ3RoXCI7XHJcbkBpbXBvcnQgXCJmdW5jdGlvbnMvaXMtbGlnaHRcIjtcclxuQGltcG9ydCBcImZ1bmN0aW9ucy9pcy1udW1iZXJcIjtcclxuQGltcG9ydCBcImZ1bmN0aW9ucy9pcy1zaXplXCI7XHJcbkBpbXBvcnQgXCJmdW5jdGlvbnMvcHgtdG8tZW1cIjtcclxuQGltcG9ydCBcImZ1bmN0aW9ucy9weC10by1yZW1cIjtcclxuQGltcG9ydCBcImZ1bmN0aW9ucy9zaGFkZVwiO1xyXG5AaW1wb3J0IFwiZnVuY3Rpb25zL3N0cmlwLXVuaXRzXCI7XHJcbkBpbXBvcnQgXCJmdW5jdGlvbnMvdGludFwiO1xyXG5AaW1wb3J0IFwiZnVuY3Rpb25zL3RyYW5zaXRpb24tcHJvcGVydHktbmFtZVwiO1xyXG5AaW1wb3J0IFwiZnVuY3Rpb25zL3VucGFja1wiO1xyXG5AaW1wb3J0IFwiZnVuY3Rpb25zL21vZHVsYXItc2NhbGVcIjtcclxuXHJcbkBpbXBvcnQgXCJoZWxwZXJzL2NvbnZlcnQtdW5pdHNcIjtcclxuQGltcG9ydCBcImhlbHBlcnMvZGlyZWN0aW9uYWwtdmFsdWVzXCI7XHJcbkBpbXBvcnQgXCJoZWxwZXJzL2ZvbnQtc291cmNlLWRlY2xhcmF0aW9uXCI7XHJcbkBpbXBvcnQgXCJoZWxwZXJzL2dyYWRpZW50LXBvc2l0aW9ucy1wYXJzZXJcIjtcclxuQGltcG9ydCBcImhlbHBlcnMvbGluZWFyLWFuZ2xlLXBhcnNlclwiO1xyXG5AaW1wb3J0IFwiaGVscGVycy9saW5lYXItZ3JhZGllbnQtcGFyc2VyXCI7XHJcbkBpbXBvcnQgXCJoZWxwZXJzL2xpbmVhci1wb3NpdGlvbnMtcGFyc2VyXCI7XHJcbkBpbXBvcnQgXCJoZWxwZXJzL2xpbmVhci1zaWRlLWNvcm5lci1wYXJzZXJcIjtcclxuQGltcG9ydCBcImhlbHBlcnMvcmFkaWFsLWFyZy1wYXJzZXJcIjtcclxuQGltcG9ydCBcImhlbHBlcnMvcmFkaWFsLXBvc2l0aW9ucy1wYXJzZXJcIjtcclxuQGltcG9ydCBcImhlbHBlcnMvcmFkaWFsLWdyYWRpZW50LXBhcnNlclwiO1xyXG5AaW1wb3J0IFwiaGVscGVycy9yZW5kZXItZ3JhZGllbnRzXCI7XHJcbkBpbXBvcnQgXCJoZWxwZXJzL3NoYXBlLXNpemUtc3RyaXBwZXJcIjtcclxuQGltcG9ydCBcImhlbHBlcnMvc3RyLXRvLW51bVwiO1xyXG5cclxuQGltcG9ydCBcImNzczMvYW5pbWF0aW9uXCI7XHJcbkBpbXBvcnQgXCJjc3MzL2FwcGVhcmFuY2VcIjtcclxuQGltcG9ydCBcImNzczMvYmFja2ZhY2UtdmlzaWJpbGl0eVwiO1xyXG5AaW1wb3J0IFwiY3NzMy9iYWNrZ3JvdW5kXCI7XHJcbkBpbXBvcnQgXCJjc3MzL2JhY2tncm91bmQtaW1hZ2VcIjtcclxuQGltcG9ydCBcImNzczMvYm9yZGVyLWltYWdlXCI7XHJcbkBpbXBvcnQgXCJjc3MzL2NhbGNcIjtcclxuQGltcG9ydCBcImNzczMvY29sdW1uc1wiO1xyXG5AaW1wb3J0IFwiY3NzMy9maWx0ZXJcIjtcclxuQGltcG9ydCBcImNzczMvZmxleC1ib3hcIjtcclxuQGltcG9ydCBcImNzczMvZm9udC1mYWNlXCI7XHJcbkBpbXBvcnQgXCJjc3MzL2ZvbnQtZmVhdHVyZS1zZXR0aW5nc1wiO1xyXG5AaW1wb3J0IFwiY3NzMy9oaWRwaS1tZWRpYS1xdWVyeVwiO1xyXG5AaW1wb3J0IFwiY3NzMy9oeXBoZW5zXCI7XHJcbkBpbXBvcnQgXCJjc3MzL2ltYWdlLXJlbmRlcmluZ1wiO1xyXG5AaW1wb3J0IFwiY3NzMy9rZXlmcmFtZXNcIjtcclxuQGltcG9ydCBcImNzczMvbGluZWFyLWdyYWRpZW50XCI7XHJcbkBpbXBvcnQgXCJjc3MzL3BlcnNwZWN0aXZlXCI7XHJcbkBpbXBvcnQgXCJjc3MzL3BsYWNlaG9sZGVyXCI7XHJcbkBpbXBvcnQgXCJjc3MzL3JhZGlhbC1ncmFkaWVudFwiO1xyXG5AaW1wb3J0IFwiY3NzMy9zZWxlY3Rpb25cIjtcclxuQGltcG9ydCBcImNzczMvdGV4dC1kZWNvcmF0aW9uXCI7XHJcbkBpbXBvcnQgXCJjc3MzL3RyYW5zZm9ybVwiO1xyXG5AaW1wb3J0IFwiY3NzMy90cmFuc2l0aW9uXCI7XHJcbkBpbXBvcnQgXCJjc3MzL3VzZXItc2VsZWN0XCI7XHJcblxyXG5AaW1wb3J0IFwiYWRkb25zL2JvcmRlci1jb2xvclwiO1xyXG5AaW1wb3J0IFwiYWRkb25zL2JvcmRlci1yYWRpdXNcIjtcclxuQGltcG9ydCBcImFkZG9ucy9ib3JkZXItc3R5bGVcIjtcclxuQGltcG9ydCBcImFkZG9ucy9ib3JkZXItd2lkdGhcIjtcclxuQGltcG9ydCBcImFkZG9ucy9idXR0b25zXCI7XHJcbkBpbXBvcnQgXCJhZGRvbnMvY2xlYXJmaXhcIjtcclxuQGltcG9ydCBcImFkZG9ucy9lbGxpcHNpc1wiO1xyXG5AaW1wb3J0IFwiYWRkb25zL2ZvbnQtc3RhY2tzXCI7XHJcbkBpbXBvcnQgXCJhZGRvbnMvaGlkZS10ZXh0XCI7XHJcbkBpbXBvcnQgXCJhZGRvbnMvbWFyZ2luXCI7XHJcbkBpbXBvcnQgXCJhZGRvbnMvcGFkZGluZ1wiO1xyXG5AaW1wb3J0IFwiYWRkb25zL3Bvc2l0aW9uXCI7XHJcbkBpbXBvcnQgXCJhZGRvbnMvcHJlZml4ZXJcIjtcclxuQGltcG9ydCBcImFkZG9ucy9yZXRpbmEtaW1hZ2VcIjtcclxuQGltcG9ydCBcImFkZG9ucy9zaXplXCI7XHJcbkBpbXBvcnQgXCJhZGRvbnMvdGV4dC1pbnB1dHNcIjtcclxuQGltcG9ydCBcImFkZG9ucy90aW1pbmctZnVuY3Rpb25zXCI7XHJcbkBpbXBvcnQgXCJhZGRvbnMvdHJpYW5nbGVcIjtcclxuQGltcG9ydCBcImFkZG9ucy93b3JkLXdyYXBcIjtcclxuXHJcbkBpbXBvcnQgXCJib3VyYm9uLWRlcHJlY2F0ZWQtdXBjb21pbmdcIjtcclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIEdsb2JhbCB2YXJpYWJsZXMgdG8gZW5hYmxlIG9yIGRpc2FibGUgdmVuZG9yIHByZWZpeGVzXHJcblxyXG4kcHJlZml4LWZvci13ZWJraXQ6ICAgIHRydWUgIWRlZmF1bHQ7XHJcbiRwcmVmaXgtZm9yLW1vemlsbGE6ICAgdHJ1ZSAhZGVmYXVsdDtcclxuJHByZWZpeC1mb3ItbWljcm9zb2Z0OiB0cnVlICFkZWZhdWx0O1xyXG4kcHJlZml4LWZvci1vcGVyYTogICAgIHRydWUgIWRlZmF1bHQ7XHJcbiRwcmVmaXgtZm9yLXNwZWM6ICAgICAgdHJ1ZSAhZGVmYXVsdDtcclxuIiwiJGVtLWJhc2U6IDE2cHggIWRlZmF1bHQ7XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBBIGdsb2JhbCBzZXR0aW5nIHRvIGVuYWJsZSBvciBkaXNhYmxlIHRoZSBgJGFzc2V0LXBpcGVsaW5lYCB2YXJpYWJsZSBmb3IgYWxsIGZ1bmN0aW9ucyB0aGF0IGFjY2VwdCBpdC5cclxuLy8vXHJcbi8vLyBAdHlwZSBCb29sXHJcblxyXG4kYXNzZXQtcGlwZWxpbmU6IGZhbHNlICFkZWZhdWx0O1xyXG4iLCJAZnVuY3Rpb24gYXNzaWduLWlucHV0cygkaW5wdXRzLCAkcHNldWRvOiBudWxsKSB7XHJcbiAgJGxpc3Q6ICgpO1xyXG5cclxuICBAZWFjaCAkaW5wdXQgaW4gJGlucHV0cyB7XHJcbiAgICAkaW5wdXQ6IHVucXVvdGUoJGlucHV0KTtcclxuICAgICRpbnB1dDogaWYoJHBzZXVkbywgJGlucHV0ICsgXCI6XCIgKyAkcHNldWRvLCAkaW5wdXQpO1xyXG4gICAgJGxpc3Q6IGFwcGVuZCgkbGlzdCwgJGlucHV0LCBjb21tYSk7XHJcbiAgfVxyXG5cclxuICBAcmV0dXJuICRsaXN0O1xyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBDaGVja3MgaWYgYSBsaXN0IGNvbnRhaW5zIGEgdmFsdWUocykuXHJcbi8vL1xyXG4vLy8gQGFjY2VzcyBwcml2YXRlXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtMaXN0fSAkbGlzdFxyXG4vLy8gICBUaGUgbGlzdCB0byBjaGVjayBhZ2FpbnN0LlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TGlzdH0gJHZhbHVlc1xyXG4vLy8gICBBIHNpbmdsZSB2YWx1ZSBvciBsaXN0IG9mIHZhbHVlcyB0byBjaGVjayBmb3IuXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIGNvbnRhaW5zKCRsaXN0LCAkdmFsdWUpXHJcbi8vL1xyXG4vLy8gQHJldHVybiB7Qm9vbH1cclxuXHJcbkBmdW5jdGlvbiBjb250YWlucygkbGlzdCwgJHZhbHVlcy4uLikge1xyXG4gIEBlYWNoICR2YWx1ZSBpbiAkdmFsdWVzIHtcclxuICAgIEBpZiB0eXBlLW9mKGluZGV4KCRsaXN0LCAkdmFsdWUpKSAhPSBcIm51bWJlclwiIHtcclxuICAgICAgQHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEByZXR1cm4gdHJ1ZTtcclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gQ2hlY2tzIGlmIGEgbGlzdCBkb2VzIG5vdCBjb250YWlucyBhIHZhbHVlLlxyXG4vLy9cclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TGlzdH0gJGxpc3RcclxuLy8vICAgVGhlIGxpc3QgdG8gY2hlY2sgYWdhaW5zdC5cclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtCb29sfVxyXG5cclxuQGZ1bmN0aW9uIGNvbnRhaW5zLWZhbHN5KCRsaXN0KSB7XHJcbiAgQGVhY2ggJGl0ZW0gaW4gJGxpc3Qge1xyXG4gICAgQGlmIG5vdCAkaXRlbSB7XHJcbiAgICAgIEByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEByZXR1cm4gZmFsc2U7XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIENoZWNrcyBmb3IgYSB2YWxpZCBDU1MgbGVuZ3RoLlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkdmFsdWVcclxuXHJcbkBmdW5jdGlvbiBpcy1sZW5ndGgoJHZhbHVlKSB7XHJcbiAgQHJldHVybiB0eXBlLW9mKCR2YWx1ZSkgIT0gXCJudWxsXCIgYW5kIChzdHItc2xpY2UoJHZhbHVlICsgXCJcIiwgMSwgNCkgPT0gXCJjYWxjXCJcclxuICAgICAgIG9yIGluZGV4KGF1dG8gaW5oZXJpdCBpbml0aWFsIDAsICR2YWx1ZSlcclxuICAgICAgIG9yICh0eXBlLW9mKCR2YWx1ZSkgPT0gXCJudW1iZXJcIiBhbmQgbm90KHVuaXRsZXNzKCR2YWx1ZSkpKSk7XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIFByb2dyYW1hdGljYWxseSBkZXRlcm1pbmVzIHdoZXRoZXIgYSBjb2xvciBpcyBsaWdodCBvciBkYXJrLlxyXG4vLy9cclxuLy8vIEBsaW5rIGh0dHA6Ly9yb2JvdHMudGhvdWdodGJvdC5jb20vY2xvc2VyLWxvb2stY29sb3ItbGlnaHRuZXNzXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtDb2xvciAoSGV4KX0gJGNvbG9yXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIGlzLWxpZ2h0KCRjb2xvcilcclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtCb29sfVxyXG5cclxuQGZ1bmN0aW9uIGlzLWxpZ2h0KCRoZXgtY29sb3IpIHtcclxuICAkLWxvY2FsLXJlZDogcmVkKHJnYmEoJGhleC1jb2xvciwgMSkpO1xyXG4gICQtbG9jYWwtZ3JlZW46IGdyZWVuKHJnYmEoJGhleC1jb2xvciwgMSkpO1xyXG4gICQtbG9jYWwtYmx1ZTogYmx1ZShyZ2JhKCRoZXgtY29sb3IsIDEpKTtcclxuICAkLWxvY2FsLWxpZ2h0bmVzczogKCQtbG9jYWwtcmVkICogMC4yMTI2ICsgJC1sb2NhbC1ncmVlbiAqIDAuNzE1MiArICQtbG9jYWwtYmx1ZSAqIDAuMDcyMikgLyAyNTU7XHJcblxyXG4gIEByZXR1cm4gJC1sb2NhbC1saWdodG5lc3MgPiAwLjY7XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIENoZWNrcyBmb3IgYSB2YWxpZCBudW1iZXIuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR2YWx1ZVxyXG4vLy9cclxuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gY29udGFpbnNcclxuXHJcbkBmdW5jdGlvbiBpcy1udW1iZXIoJHZhbHVlKSB7XHJcbiAgQHJldHVybiBjb250YWlucyhcIjBcIiBcIjFcIiBcIjJcIiBcIjNcIiBcIjRcIiBcIjVcIiBcIjZcIiBcIjdcIiBcIjhcIiBcIjlcIiAwIDEgMiAzIDQgNSA2IDcgOCA5LCAkdmFsdWUpO1xyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBDaGVja3MgZm9yIGEgdmFsaWQgQ1NTIHNpemUuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR2YWx1ZVxyXG4vLy9cclxuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gY29udGFpbnNcclxuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gaXMtbGVuZ3RoXHJcblxyXG5AZnVuY3Rpb24gaXMtc2l6ZSgkdmFsdWUpIHtcclxuICBAcmV0dXJuIGlzLWxlbmd0aCgkdmFsdWUpXHJcbiAgICAgICAgICBvciBjb250YWlucyhcImZpbGxcIiBcImZpdC1jb250ZW50XCIgXCJtaW4tY29udGVudFwiIFwibWF4LWNvbnRlbnRcIiwgJHZhbHVlKTtcclxufVxyXG4iLCIvLyBDb252ZXJ0IHBpeGVscyB0byBlbXNcclxuLy8gZWcuIGZvciBhIHJlbGF0aW9uYWwgdmFsdWUgb2YgMTJweCB3cml0ZSBlbSgxMikgd2hlbiB0aGUgcGFyZW50IGlzIDE2cHhcclxuLy8gaWYgdGhlIHBhcmVudCBpcyBhbm90aGVyIHZhbHVlIHNheSAyNHB4IHdyaXRlIGVtKDEyLCAyNClcclxuXHJcbkBmdW5jdGlvbiBlbSgkcHh2YWwsICRiYXNlOiAkZW0tYmFzZSkge1xyXG4gIEBpZiBub3QgdW5pdGxlc3MoJHB4dmFsKSB7XHJcbiAgICAkcHh2YWw6IHN0cmlwLXVuaXRzKCRweHZhbCk7XHJcbiAgfVxyXG4gIEBpZiBub3QgdW5pdGxlc3MoJGJhc2UpIHtcclxuICAgICRiYXNlOiBzdHJpcC11bml0cygkYmFzZSk7XHJcbiAgfVxyXG4gIEByZXR1cm4gKCRweHZhbCAvICRiYXNlKSAqIDFlbTtcclxufVxyXG4iLCIvLyBDb252ZXJ0IHBpeGVscyB0byByZW1zXHJcbi8vIGVnLiBmb3IgYSByZWxhdGlvbmFsIHZhbHVlIG9mIDEycHggd3JpdGUgcmVtKDEyKVxyXG4vLyBBc3N1bWVzICRlbS1iYXNlIGlzIHRoZSBmb250LXNpemUgb2YgPGh0bWw+XHJcblxyXG5AZnVuY3Rpb24gcmVtKCRweHZhbCkge1xyXG4gIEBpZiBub3QgdW5pdGxlc3MoJHB4dmFsKSB7XHJcbiAgICAkcHh2YWw6IHN0cmlwLXVuaXRzKCRweHZhbCk7XHJcbiAgfVxyXG5cclxuICAkYmFzZTogJGVtLWJhc2U7XHJcbiAgQGlmIG5vdCB1bml0bGVzcygkYmFzZSkge1xyXG4gICAgJGJhc2U6IHN0cmlwLXVuaXRzKCRiYXNlKTtcclxuICB9XHJcbiAgQHJldHVybiAoJHB4dmFsIC8gJGJhc2UpICogMXJlbTtcclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gTWl4ZXMgYSBjb2xvciB3aXRoIGJsYWNrLlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvclxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TnVtYmVyIChQZXJjZW50YWdlKX0gJHBlcmNlbnRcclxuLy8vICAgVGhlIGFtb3VudCBvZiBibGFjayB0byBiZSBtaXhlZCBpbi5cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6IHNoYWRlKCNmZmJiNTIsIDYwJSk7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjY0YTIwO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQHJldHVybiB7Q29sb3J9XHJcblxyXG5AZnVuY3Rpb24gc2hhZGUoJGNvbG9yLCAkcGVyY2VudCkge1xyXG4gIEByZXR1cm4gbWl4KCMwMDAsICRjb2xvciwgJHBlcmNlbnQpO1xyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBTdHJpcHMgdGhlIHVuaXQgZnJvbSBhIG51bWJlci5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge051bWJlciAoV2l0aCBVbml0KX0gJHZhbHVlXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgICRkaW1lbnNpb246IHN0cmlwLXVuaXRzKDEwZW0pO1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgJGRpbWVuc2lvbjogMTA7XHJcbi8vL1xyXG4vLy8gQHJldHVybiB7TnVtYmVyIChVbml0bGVzcyl9XHJcblxyXG5AZnVuY3Rpb24gc3RyaXAtdW5pdHMoJHZhbHVlKSB7XHJcbiAgQHJldHVybiAoJHZhbHVlIC8gKCR2YWx1ZSAqIDAgKyAxKSk7XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIE1peGVzIGEgY29sb3Igd2l0aCB3aGl0ZS5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3JcclxuLy8vXHJcbi8vLyBAcGFyYW0ge051bWJlciAoUGVyY2VudGFnZSl9ICRwZXJjZW50XHJcbi8vLyAgIFRoZSBhbW91bnQgb2Ygd2hpdGUgdG8gYmUgbWl4ZWQgaW4uXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aW50KCM2ZWNhYTYsIDQwJSk7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYThkZmM5O1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQHJldHVybiB7Q29sb3J9XHJcblxyXG5AZnVuY3Rpb24gdGludCgkY29sb3IsICRwZXJjZW50KSB7XHJcbiAgQHJldHVybiBtaXgoI2ZmZiwgJGNvbG9yLCAkcGVyY2VudCk7XHJcbn1cclxuIiwiLy8gUmV0dXJuIHZlbmRvci1wcmVmaXhlZCBwcm9wZXJ0eSBuYW1lcyBpZiBhcHByb3ByaWF0ZVxyXG4vLyBFeGFtcGxlOiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCh0cmFuc2Zvcm0sIGNvbG9yLCBiYWNrZ3JvdW5kKSwgbW96KSAtPiAtbW96LXRyYW5zZm9ybSwgY29sb3IsIGJhY2tncm91bmRcclxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xyXG5AZnVuY3Rpb24gdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygkcHJvcHMsICR2ZW5kb3I6IGZhbHNlKSB7XHJcbiAgJG5ldy1wcm9wczogKCk7XHJcblxyXG4gIEBlYWNoICRwcm9wIGluICRwcm9wcyB7XHJcbiAgICAkbmV3LXByb3BzOiBhcHBlbmQoJG5ldy1wcm9wcywgdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lKCRwcm9wLCAkdmVuZG9yKSwgY29tbWEpO1xyXG4gIH1cclxuXHJcbiAgQHJldHVybiAkbmV3LXByb3BzO1xyXG59XHJcblxyXG5AZnVuY3Rpb24gdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lKCRwcm9wLCAkdmVuZG9yOiBmYWxzZSkge1xyXG4gIC8vIHB1dCBvdGhlciBwcm9wZXJ0aWVzIHRoYXQgbmVlZCB0byBiZSBwcmVmaXhlZCBoZXJlIGFzd2VsbFxyXG4gIEBpZiAkdmVuZG9yIGFuZCAkcHJvcCA9PSB0cmFuc2Zvcm0ge1xyXG4gICAgQHJldHVybiB1bnF1b3RlKCctJyskdmVuZG9yKyctJyskcHJvcCk7XHJcbiAgfVxyXG4gIEBlbHNlIHtcclxuICAgIEByZXR1cm4gJHByb3A7XHJcbiAgfVxyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBDb252ZXJ0cyBzaG9ydGhhbmQgdG8gdGhlIDQtdmFsdWUgc3ludGF4LlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TGlzdH0gJHNob3J0aGFuZFxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgbWFyZ2luOiB1bnBhY2soMWVtIDJlbSk7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBtYXJnaW46IDFlbSAyZW0gMWVtIDJlbTtcclxuLy8vICAgfVxyXG5cclxuQGZ1bmN0aW9uIHVucGFjaygkc2hvcnRoYW5kKSB7XHJcbiAgQGlmIGxlbmd0aCgkc2hvcnRoYW5kKSA9PSAxIHtcclxuICAgIEByZXR1cm4gbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDEpO1xyXG4gIH0gQGVsc2UgaWYgbGVuZ3RoKCRzaG9ydGhhbmQpID09IDIge1xyXG4gICAgQHJldHVybiBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDIpIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMik7XHJcbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHNob3J0aGFuZCkgPT0gMyB7XHJcbiAgICBAcmV0dXJuIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMikgbnRoKCRzaG9ydGhhbmQsIDMpIG50aCgkc2hvcnRoYW5kLCAyKTtcclxuICB9IEBlbHNlIHtcclxuICAgIEByZXR1cm4gJHNob3J0aGFuZDtcclxuICB9XHJcbn1cclxuIiwiLy8gU2NhbGluZyBWYXJpYWJsZXNcclxuJGdvbGRlbjogICAgICAgICAgIDEuNjE4O1xyXG4kbWlub3Itc2Vjb25kOiAgICAgMS4wNjc7XHJcbiRtYWpvci1zZWNvbmQ6ICAgICAxLjEyNTtcclxuJG1pbm9yLXRoaXJkOiAgICAgIDEuMjtcclxuJG1ham9yLXRoaXJkOiAgICAgIDEuMjU7XHJcbiRwZXJmZWN0LWZvdXJ0aDogICAxLjMzMztcclxuJGF1Z21lbnRlZC1mb3VydGg6IDEuNDE0O1xyXG4kcGVyZmVjdC1maWZ0aDogICAgMS41O1xyXG4kbWlub3Itc2l4dGg6ICAgICAgMS42O1xyXG4kbWFqb3Itc2l4dGg6ICAgICAgMS42Njc7XHJcbiRtaW5vci1zZXZlbnRoOiAgICAxLjc3ODtcclxuJG1ham9yLXNldmVudGg6ICAgIDEuODc1O1xyXG4kb2N0YXZlOiAgICAgICAgICAgMjtcclxuJG1ham9yLXRlbnRoOiAgICAgIDIuNTtcclxuJG1ham9yLWVsZXZlbnRoOiAgIDIuNjY3O1xyXG4kbWFqb3ItdHdlbGZ0aDogICAgMztcclxuJGRvdWJsZS1vY3RhdmU6ICAgIDQ7XHJcblxyXG4kbW9kdWxhci1zY2FsZS1yYXRpbzogJHBlcmZlY3QtZm91cnRoICFkZWZhdWx0O1xyXG4kbW9kdWxhci1zY2FsZS1iYXNlOiBlbSgkZW0tYmFzZSkgIWRlZmF1bHQ7XHJcblxyXG5AZnVuY3Rpb24gbW9kdWxhci1zY2FsZSgkaW5jcmVtZW50LCAkdmFsdWU6ICRtb2R1bGFyLXNjYWxlLWJhc2UsICRyYXRpbzogJG1vZHVsYXItc2NhbGUtcmF0aW8pIHtcclxuICAkdjE6IG50aCgkdmFsdWUsIDEpO1xyXG4gICR2MjogbnRoKCR2YWx1ZSwgbGVuZ3RoKCR2YWx1ZSkpO1xyXG4gICR2YWx1ZTogJHYxO1xyXG5cclxuICAvLyBzY2FsZSAkdjIgdG8ganVzdCBhYm92ZSAkdjFcclxuICBAd2hpbGUgJHYyID4gJHYxIHtcclxuICAgICR2MjogKCR2MiAvICRyYXRpbyk7IC8vIHdpbGwgYmUgb2ZmLWJ5LTFcclxuICB9XHJcbiAgQHdoaWxlICR2MiA8ICR2MSB7XHJcbiAgICAkdjI6ICgkdjIgKiAkcmF0aW8pOyAvLyB3aWxsIGZpeCBvZmYtYnktMVxyXG4gIH1cclxuXHJcbiAgLy8gY2hlY2sgQUZURVIgc2NhbGluZyAkdjIgdG8gcHJldmVudCBkb3VibGUtY291bnRpbmcgY29ybmVyLWNhc2VcclxuICAkZG91YmxlLXN0cmFuZGVkOiAkdjIgPiAkdjE7XHJcblxyXG4gIEBpZiAkaW5jcmVtZW50ID4gMCB7XHJcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRpbmNyZW1lbnQge1xyXG4gICAgICBAaWYgJGRvdWJsZS1zdHJhbmRlZCBhbmQgKCR2MSAqICRyYXRpbykgPiAkdjIge1xyXG4gICAgICAgICR2YWx1ZTogJHYyO1xyXG4gICAgICAgICR2MjogKCR2MiAqICRyYXRpbyk7XHJcbiAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICR2MTogKCR2MSAqICRyYXRpbyk7XHJcbiAgICAgICAgJHZhbHVlOiAkdjE7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBpZiAkaW5jcmVtZW50IDwgMCB7XHJcbiAgICAvLyBhZGp1c3QgJHYyIHRvIGp1c3QgYmVsb3cgJHYxXHJcbiAgICBAaWYgJGRvdWJsZS1zdHJhbmRlZCB7XHJcbiAgICAgICR2MjogKCR2MiAvICRyYXRpbyk7XHJcbiAgICB9XHJcblxyXG4gICAgQGZvciAkaSBmcm9tICRpbmNyZW1lbnQgdGhyb3VnaCAtMSB7XHJcbiAgICAgIEBpZiAkZG91YmxlLXN0cmFuZGVkIGFuZCAoJHYxIC8gJHJhdGlvKSA8ICR2MiB7XHJcbiAgICAgICAgJHZhbHVlOiAkdjI7XHJcbiAgICAgICAgJHYyOiAoJHYyIC8gJHJhdGlvKTtcclxuICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgJHYxOiAoJHYxIC8gJHJhdGlvKTtcclxuICAgICAgICAkdmFsdWU6ICR2MTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQHJldHVybiAkdmFsdWU7XHJcbn1cclxuIiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xyXG4vLyBIZWxwZXIgZnVuY3Rpb24gZm9yIHN0ci10by1udW0gZm4uXHJcbi8vIFNvdXJjZTogaHR0cDovL3Nhc3NtZWlzdGVyLmNvbS9naXN0Lzk2NDc0MDhcclxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xyXG5AZnVuY3Rpb24gX2NvbnZlcnQtdW5pdHMoJG51bWJlciwgJHVuaXQpIHtcclxuICAkc3RyaW5nczogXCJweFwiLCBcImNtXCIsIFwibW1cIiwgXCIlXCIsIFwiY2hcIiwgXCJwaWNhXCIsIFwiaW5cIiwgXCJlbVwiLCBcInJlbVwiLCBcInB0XCIsIFwicGNcIiwgXCJleFwiLCBcInZ3XCIsIFwidmhcIiwgXCJ2bWluXCIsIFwidm1heFwiLCBcImRlZ1wiLCBcInJhZFwiLCBcImdyYWRcIiwgXCJ0dXJuXCI7XHJcbiAgJHVuaXRzOiAgIDFweCwgMWNtLCAxbW0sIDElLCAxY2gsIDFwaWNhLCAxaW4sIDFlbSwgMXJlbSwgMXB0LCAxcGMsIDFleCwgMXZ3LCAxdmgsIDF2bWluLCAxdm1heCwgMWRlZywgMXJhZCwgMWdyYWQsIDF0dXJuO1xyXG4gICRpbmRleDogaW5kZXgoJHN0cmluZ3MsICR1bml0KTtcclxuXHJcbiAgQGlmIG5vdCAkaW5kZXgge1xyXG4gICAgQHdhcm4gXCJVbmtub3duIHVuaXQgYCN7JHVuaXR9YC5cIjtcclxuICAgIEByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBAaWYgdHlwZS1vZigkbnVtYmVyKSAhPSBcIm51bWJlclwiIHtcclxuICAgIEB3YXJuIFwiYCN7JG51bWJlcn0gaXMgbm90IGEgbnVtYmVyYFwiO1xyXG4gICAgQHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIEByZXR1cm4gJG51bWJlciAqIG50aCgkdW5pdHMsICRpbmRleCk7XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIERpcmVjdGlvbmFsLXByb3BlcnR5IG1peGlucyBhcmUgc2hvcnRoYW5kcyBmb3Igd3JpdGluZyBwcm9wZXJ0aWVzIGxpa2UgdGhlIGZvbGxvd2luZ1xyXG4vLy9cclxuLy8vIEBpZ25vcmUgWW91IGNhbiBhbHNvIHVzZSBgZmFsc2VgIGluc3RlYWQgb2YgYG51bGxgLlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TGlzdH0gJHZhbHNcclxuLy8vICAgTGlzdCBvZiBkaXJlY3Rpb25hbCB2YWx1ZXNcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci1zdHlsZShkb3R0ZWQgbnVsbCk7XHJcbi8vLyAgICAgQGluY2x1ZGUgbWFyZ2luKG51bGwgMCAxMHB4KTtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IGRvdHRlZDtcclxuLy8vICAgICBib3JkZXItdG9wLXN0eWxlOiBkb3R0ZWQ7XHJcbi8vLyAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxuLy8vICAgICBtYXJnaW4tbGVmdDogMDtcclxuLy8vICAgICBtYXJnaW4tcmlnaHQ6IDA7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGNvbnRhaW5zLWZhbHN5XHJcbi8vL1xyXG4vLy8gQHJldHVybiB7TGlzdH1cclxuXHJcbkBmdW5jdGlvbiBjb2xsYXBzZS1kaXJlY3Rpb25hbHMoJHZhbHMpIHtcclxuICAkb3V0cHV0OiBudWxsO1xyXG5cclxuICAkYTogbnRoKCR2YWxzLCAxKTtcclxuICAkYjogaWYobGVuZ3RoKCR2YWxzKSA8IDIsICRhLCBudGgoJHZhbHMsIDIpKTtcclxuICAkYzogaWYobGVuZ3RoKCR2YWxzKSA8IDMsICRhLCBudGgoJHZhbHMsIDMpKTtcclxuICAkZDogaWYobGVuZ3RoKCR2YWxzKSA8IDIsICRhLCBudGgoJHZhbHMsIGlmKGxlbmd0aCgkdmFscykgPCA0LCAyLCA0KSkpO1xyXG5cclxuICBAaWYgJGEgPT0gMCB7ICRhOiAwOyB9XHJcbiAgQGlmICRiID09IDAgeyAkYjogMDsgfVxyXG4gIEBpZiAkYyA9PSAwIHsgJGM6IDA7IH1cclxuICBAaWYgJGQgPT0gMCB7ICRkOiAwOyB9XHJcblxyXG4gIEBpZiAkYSA9PSAkYiBhbmQgJGEgPT0gJGMgYW5kICRhID09ICRkIHsgJG91dHB1dDogJGE7ICAgICAgICAgIH1cclxuICBAZWxzZSBpZiAkYSA9PSAkYyBhbmQgJGIgPT0gJGQgICAgICAgICB7ICRvdXRwdXQ6ICRhICRiOyAgICAgICB9XHJcbiAgQGVsc2UgaWYgJGIgPT0gJGQgICAgICAgICAgICAgICAgICAgICAgeyAkb3V0cHV0OiAkYSAkYiAkYzsgICAgfVxyXG4gIEBlbHNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgJG91dHB1dDogJGEgJGIgJGMgJGQ7IH1cclxuXHJcbiAgQHJldHVybiAkb3V0cHV0O1xyXG59XHJcblxyXG4vLy8gT3V0cHV0IGRpcmVjdGlvbmFsIHByb3BlcnRpZXMsIGZvciBpbnN0YW5jZSBgbWFyZ2luYC5cclxuLy8vXHJcbi8vLyBAYWNjZXNzIHByaXZhdGVcclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHByZVxyXG4vLy8gICBQcmVmaXggdG8gdXNlXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHN1ZlxyXG4vLy8gICBTdWZmaXggdG8gdXNlXHJcbi8vLyBAcGFyYW0ge0xpc3R9ICR2YWxzXHJcbi8vLyAgIExpc3Qgb2YgdmFsdWVzXHJcbi8vL1xyXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBjb2xsYXBzZS1kaXJlY3Rpb25hbHNcclxuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gY29udGFpbnMtZmFsc3lcclxuXHJcbkBtaXhpbiBkaXJlY3Rpb25hbC1wcm9wZXJ0eSgkcHJlLCAkc3VmLCAkdmFscykge1xyXG4gIC8vIFByb3BlcnR5IE5hbWVzXHJcbiAgJHRvcDogICAgJHByZSArIFwiLXRvcFwiICAgICsgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcclxuICAkYm90dG9tOiAkcHJlICsgXCItYm90dG9tXCIgKyBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xyXG4gICRsZWZ0OiAgICRwcmUgKyBcIi1sZWZ0XCIgICArIGlmKCRzdWYsIFwiLSN7JHN1Zn1cIiwgXCJcIik7XHJcbiAgJHJpZ2h0OiAgJHByZSArIFwiLXJpZ2h0XCIgICsgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcclxuICAkYWxsOiAgICAkcHJlICsgICAgICAgICAgICAgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcclxuXHJcbiAgJHZhbHM6IGNvbGxhcHNlLWRpcmVjdGlvbmFscygkdmFscyk7XHJcblxyXG4gIEBpZiBjb250YWlucy1mYWxzeSgkdmFscykge1xyXG4gICAgQGlmIG50aCgkdmFscywgMSkgeyAjeyR0b3B9OiBudGgoJHZhbHMsIDEpOyB9XHJcblxyXG4gICAgQGlmIGxlbmd0aCgkdmFscykgPT0gMSB7XHJcbiAgICAgIEBpZiBudGgoJHZhbHMsIDEpIHsgI3skcmlnaHR9OiBudGgoJHZhbHMsIDEpOyB9XHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgQGlmIG50aCgkdmFscywgMikgeyAjeyRyaWdodH06IG50aCgkdmFscywgMik7IH1cclxuICAgIH1cclxuXHJcbiAgICBAaWYgbGVuZ3RoKCR2YWxzKSA9PSAyIHtcclxuICAgICAgQGlmIG50aCgkdmFscywgMSkgeyAjeyRib3R0b219OiBudGgoJHZhbHMsIDEpOyB9XHJcbiAgICAgIEBpZiBudGgoJHZhbHMsIDIpIHsgI3skbGVmdH06ICAgbnRoKCR2YWxzLCAyKTsgfVxyXG4gICAgfSBAZWxzZSBpZiBsZW5ndGgoJHZhbHMpID09IDMge1xyXG4gICAgICBAaWYgbnRoKCR2YWxzLCAzKSB7ICN7JGJvdHRvbX06IG50aCgkdmFscywgMyk7IH1cclxuICAgICAgQGlmIG50aCgkdmFscywgMikgeyAjeyRsZWZ0fTogICBudGgoJHZhbHMsIDIpOyB9XHJcbiAgICB9IEBlbHNlIGlmIGxlbmd0aCgkdmFscykgPT0gNCB7XHJcbiAgICAgIEBpZiBudGgoJHZhbHMsIDMpIHsgI3skYm90dG9tfTogbnRoKCR2YWxzLCAzKTsgfVxyXG4gICAgICBAaWYgbnRoKCR2YWxzLCA0KSB7ICN7JGxlZnR9OiAgIG50aCgkdmFscywgNCk7IH1cclxuICAgIH1cclxuICB9IEBlbHNlIHtcclxuICAgICN7JGFsbH06ICR2YWxzO1xyXG4gIH1cclxufVxyXG4iLCIvLyBVc2VkIGZvciBjcmVhdGluZyB0aGUgc291cmNlIHN0cmluZyBmb3IgZm9udHMgdXNpbmcgQGZvbnQtZmFjZVxyXG4vLyBSZWZlcmVuY2U6IGh0dHA6Ly9nb28uZ2wvUnUxYktQXHJcblxyXG5AZnVuY3Rpb24gZm9udC11cmwtcHJlZml4ZXIoJGFzc2V0LXBpcGVsaW5lKSB7XHJcbiAgQGlmICRhc3NldC1waXBlbGluZSA9PSB0cnVlIHtcclxuICAgIEByZXR1cm4gZm9udC11cmw7XHJcbiAgfSBAZWxzZSB7XHJcbiAgICBAcmV0dXJuIHVybDtcclxuICB9XHJcbn1cclxuXHJcbkBmdW5jdGlvbiBmb250LXNvdXJjZS1kZWNsYXJhdGlvbihcclxuICAkZm9udC1mYW1pbHksXHJcbiAgJGZpbGUtcGF0aCxcclxuICAkYXNzZXQtcGlwZWxpbmUsXHJcbiAgJGZpbGUtZm9ybWF0cyxcclxuICAkZm9udC11cmwpIHtcclxuXHJcbiAgJHNyYzogKCk7XHJcblxyXG4gICRmb3JtYXRzLW1hcDogKFxyXG4gICAgZW90OiAgIFwiI3skZmlsZS1wYXRofS5lb3Q/I2llZml4XCIgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksXHJcbiAgICB3b2ZmMjogXCIjeyRmaWxlLXBhdGh9LndvZmYyXCIgZm9ybWF0KFwid29mZjJcIiksXHJcbiAgICB3b2ZmOiAgXCIjeyRmaWxlLXBhdGh9LndvZmZcIiBmb3JtYXQoXCJ3b2ZmXCIpLFxyXG4gICAgdHRmOiAgIFwiI3skZmlsZS1wYXRofS50dGZcIiBmb3JtYXQoXCJ0cnVldHlwZVwiKSxcclxuICAgIHN2ZzogICBcIiN7JGZpbGUtcGF0aH0uc3ZnIyN7JGZvbnQtZmFtaWx5fVwiIGZvcm1hdChcInN2Z1wiKVxyXG4gICk7XHJcblxyXG4gIEBlYWNoICRrZXksICR2YWx1ZXMgaW4gJGZvcm1hdHMtbWFwIHtcclxuICAgIEBpZiBjb250YWlucygkZmlsZS1mb3JtYXRzLCAka2V5KSB7XHJcbiAgICAgICRmaWxlLXBhdGg6IG50aCgkdmFsdWVzLCAxKTtcclxuICAgICAgJGZvbnQtZm9ybWF0OiBudGgoJHZhbHVlcywgMik7XHJcblxyXG4gICAgICBAaWYgJGFzc2V0LXBpcGVsaW5lID09IHRydWUge1xyXG4gICAgICAgICRzcmM6IGFwcGVuZCgkc3JjLCBmb250LXVybCgkZmlsZS1wYXRoKSAkZm9udC1mb3JtYXQsIGNvbW1hKTtcclxuICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgJHNyYzogYXBwZW5kKCRzcmMsIHVybCgkZmlsZS1wYXRoKSAkZm9udC1mb3JtYXQsIGNvbW1hKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQHJldHVybiAkc3JjO1xyXG59XHJcbiIsIkBmdW5jdGlvbiBfZ3JhZGllbnQtcG9zaXRpb25zLXBhcnNlcigkZ3JhZGllbnQtdHlwZSwgJGdyYWRpZW50LXBvc2l0aW9ucykge1xyXG4gIEBpZiAkZ3JhZGllbnQtcG9zaXRpb25zXHJcbiAgYW5kICgkZ3JhZGllbnQtdHlwZSA9PSBsaW5lYXIpXHJcbiAgYW5kICh0eXBlLW9mKCRncmFkaWVudC1wb3NpdGlvbnMpICE9IGNvbG9yKSB7XHJcbiAgICAkZ3JhZGllbnQtcG9zaXRpb25zOiBfbGluZWFyLXBvc2l0aW9ucy1wYXJzZXIoJGdyYWRpZW50LXBvc2l0aW9ucyk7XHJcbiAgfVxyXG4gIEBlbHNlIGlmICRncmFkaWVudC1wb3NpdGlvbnNcclxuICBhbmQgKCRncmFkaWVudC10eXBlID09IHJhZGlhbClcclxuICBhbmQgKHR5cGUtb2YoJGdyYWRpZW50LXBvc2l0aW9ucykgIT0gY29sb3IpIHtcclxuICAgICRncmFkaWVudC1wb3NpdGlvbnM6IF9yYWRpYWwtcG9zaXRpb25zLXBhcnNlcigkZ3JhZGllbnQtcG9zaXRpb25zKTtcclxuICB9XHJcbiAgQHJldHVybiAkZ3JhZGllbnQtcG9zaXRpb25zO1xyXG59XHJcbiIsIi8vIFByaXZhdGUgZnVuY3Rpb24gZm9yIGxpbmVhci1ncmFkaWVudC1wYXJzZXJcclxuQGZ1bmN0aW9uIF9saW5lYXItYW5nbGUtcGFyc2VyKCRpbWFnZSwgJGZpcnN0LXZhbCwgJHByZWZpeCwgJHN1ZmZpeCkge1xyXG4gICRvZmZzZXQ6IG51bGw7XHJcbiAgJHVuaXQtc2hvcnQ6ICBzdHItc2xpY2UoJGZpcnN0LXZhbCwgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSAtIDIsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkpO1xyXG4gICR1bml0LWxvbmc6ICAgc3RyLXNsaWNlKCRmaXJzdC12YWwsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkgLSAzLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpKTtcclxuXHJcbiAgQGlmICgkdW5pdC1sb25nID09IFwiZ3JhZFwiKSBvclxyXG4gICAgICAoJHVuaXQtbG9uZyA9PSBcInR1cm5cIikge1xyXG4gICAgJG9mZnNldDogaWYoJHVuaXQtbG9uZyA9PSBcImdyYWRcIiwgLTEwMGdyYWQgKiAzLCAtMC43NXR1cm4pO1xyXG4gIH1cclxuXHJcbiAgQGVsc2UgaWYgKCR1bml0LXNob3J0ID09IFwiZGVnXCIpIG9yXHJcbiAgICAgICAgICAgKCR1bml0LXNob3J0ID09IFwicmFkXCIpIHtcclxuICAgICRvZmZzZXQ6IGlmKCR1bml0LXNob3J0ID09IFwiZGVnXCIsIC05MCAqIDMsIDEuNnJhZCk7XHJcbiAgfVxyXG5cclxuICBAaWYgJG9mZnNldCB7XHJcbiAgICAkbnVtOiBfc3RyLXRvLW51bSgkZmlyc3QtdmFsKTtcclxuXHJcbiAgICBAcmV0dXJuIChcclxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRwcmVmaXggKyAoJG9mZnNldCAtICRudW0pICsgJHN1ZmZpeCxcclxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXHJcbiAgICApO1xyXG4gIH1cclxufVxyXG4iLCJAZnVuY3Rpb24gX2xpbmVhci1ncmFkaWVudC1wYXJzZXIoJGltYWdlKSB7XHJcbiAgJGltYWdlOiB1bnF1b3RlKCRpbWFnZSk7XHJcbiAgJGdyYWRpZW50czogKCk7XHJcbiAgJHN0YXJ0OiBzdHItaW5kZXgoJGltYWdlLCBcIihcIik7XHJcbiAgJGVuZDogc3RyLWluZGV4KCRpbWFnZSwgXCIsXCIpO1xyXG4gICRmaXJzdC12YWw6IHN0ci1zbGljZSgkaW1hZ2UsICRzdGFydCArIDEsICRlbmQgLSAxKTtcclxuXHJcbiAgJHByZWZpeDogc3RyLXNsaWNlKCRpbWFnZSwgMSwgJHN0YXJ0KTtcclxuICAkc3VmZml4OiBzdHItc2xpY2UoJGltYWdlLCAkZW5kLCBzdHItbGVuZ3RoKCRpbWFnZSkpO1xyXG5cclxuICAkaGFzLW11bHRpcGxlLXZhbHM6IHN0ci1pbmRleCgkZmlyc3QtdmFsLCBcIiBcIik7XHJcbiAgJGhhcy1zaW5nbGUtcG9zaXRpb246IHVucXVvdGUoX3Bvc2l0aW9uLWZsaXBwZXIoJGZpcnN0LXZhbCkgKyBcIlwiKTtcclxuICAkaGFzLWFuZ2xlOiBpcy1udW1iZXIoc3RyLXNsaWNlKCRmaXJzdC12YWwsIDEsIDEpKTtcclxuXHJcbiAgQGlmICRoYXMtbXVsdGlwbGUtdmFscyB7XHJcbiAgICAkZ3JhZGllbnRzOiBfbGluZWFyLXNpZGUtY29ybmVyLXBhcnNlcigkaW1hZ2UsICRmaXJzdC12YWwsICRwcmVmaXgsICRzdWZmaXgsICRoYXMtbXVsdGlwbGUtdmFscyk7XHJcbiAgfVxyXG5cclxuICBAZWxzZSBpZiAkaGFzLXNpbmdsZS1wb3NpdGlvbiAhPSBcIlwiIHtcclxuICAgICRwb3M6IHVucXVvdGUoJGhhcy1zaW5nbGUtcG9zaXRpb24gKyBcIlwiKTtcclxuXHJcbiAgICAkZ3JhZGllbnRzOiAoXHJcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkaW1hZ2UsXHJcbiAgICAgIHNwZWMtaW1hZ2U6ICRwcmVmaXggKyBcInRvIFwiICsgJHBvcyArICRzdWZmaXhcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBAZWxzZSBpZiAkaGFzLWFuZ2xlIHtcclxuICAgIC8vIFJvdGF0ZSBkZWdyZWUgZm9yIHdlYmtpdFxyXG4gICAgJGdyYWRpZW50czogX2xpbmVhci1hbmdsZS1wYXJzZXIoJGltYWdlLCAkZmlyc3QtdmFsLCAkcHJlZml4LCAkc3VmZml4KTtcclxuICB9XHJcblxyXG4gIEBlbHNlIHtcclxuICAgICRncmFkaWVudHM6IChcclxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRpbWFnZSxcclxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgQHJldHVybiAkZ3JhZGllbnRzO1xyXG59XHJcbiIsIkBmdW5jdGlvbiBfbGluZWFyLXBvc2l0aW9ucy1wYXJzZXIoJHBvcykge1xyXG4gICR0eXBlOiB0eXBlLW9mKG50aCgkcG9zLCAxKSk7XHJcbiAgJHNwZWM6IG51bGw7XHJcbiAgJGRlZ3JlZTogbnVsbDtcclxuICAkc2lkZTogbnVsbDtcclxuICAkY29ybmVyOiBudWxsO1xyXG4gICRsZW5ndGg6IGxlbmd0aCgkcG9zKTtcclxuICAvLyBQYXJzZSBTaWRlIGFuZCBjb3JuZXIgcG9zaXRpb25zXHJcbiAgQGlmICgkbGVuZ3RoID4gMSkge1xyXG4gICAgQGlmIG50aCgkcG9zLCAxKSA9PSBcInRvXCIgeyAvLyBOZXdlciBzeW50YXhcclxuICAgICAgJHNpZGU6IG50aCgkcG9zLCAyKTtcclxuXHJcbiAgICAgIEBpZiAkbGVuZ3RoID09IDIgeyAvLyBlZy4gdG8gdG9wXHJcbiAgICAgICAgLy8gU3dhcCBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHlcclxuICAgICAgICAkZGVncmVlOiBfcG9zaXRpb24tZmxpcHBlcihudGgoJHBvcywgMikpO1xyXG4gICAgICB9XHJcbiAgICAgIEBlbHNlIGlmICRsZW5ndGggPT0gMyB7IC8vIGVnLiB0byB0b3AgbGVmdFxyXG4gICAgICAgICRjb3JuZXI6IG50aCgkcG9zLCAzKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgQGVsc2UgaWYgJGxlbmd0aCA9PSAyIHsgLy8gT2xkZXIgc3ludGF4IChcInRvcCBsZWZ0XCIpXHJcbiAgICAgICRzaWRlOiBfcG9zaXRpb24tZmxpcHBlcihudGgoJHBvcywgMSkpO1xyXG4gICAgICAkY29ybmVyOiBfcG9zaXRpb24tZmxpcHBlcihudGgoJHBvcywgMikpO1xyXG4gICAgfVxyXG5cclxuICAgIEBpZiAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJsZWZ0IHRvcFwiKSBvciAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJ0b3AgbGVmdFwiKSB7XHJcbiAgICAgICRkZWdyZWU6IF9wb3NpdGlvbi1mbGlwcGVyKCN7JHNpZGV9KSBfcG9zaXRpb24tZmxpcHBlcigjeyRjb3JuZXJ9KTtcclxuICAgIH1cclxuICAgIEBlbHNlIGlmIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcInJpZ2h0IHRvcFwiKSBvciAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJ0b3AgcmlnaHRcIikge1xyXG4gICAgICAkZGVncmVlOiBfcG9zaXRpb24tZmxpcHBlcigjeyRzaWRlfSkgX3Bvc2l0aW9uLWZsaXBwZXIoI3skY29ybmVyfSk7XHJcbiAgICB9XHJcbiAgICBAZWxzZSBpZiAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJyaWdodCBib3R0b21cIikgb3IgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwiYm90dG9tIHJpZ2h0XCIpIHtcclxuICAgICAgJGRlZ3JlZTogX3Bvc2l0aW9uLWZsaXBwZXIoI3skc2lkZX0pIF9wb3NpdGlvbi1mbGlwcGVyKCN7JGNvcm5lcn0pO1xyXG4gICAgfVxyXG4gICAgQGVsc2UgaWYgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwibGVmdCBib3R0b21cIikgb3IgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwiYm90dG9tIGxlZnRcIikge1xyXG4gICAgICAkZGVncmVlOiBfcG9zaXRpb24tZmxpcHBlcigjeyRzaWRlfSkgX3Bvc2l0aW9uLWZsaXBwZXIoI3skY29ybmVyfSk7XHJcbiAgICB9XHJcbiAgICAkc3BlYzogdG8gJHNpZGUgJGNvcm5lcjtcclxuICB9XHJcbiAgQGVsc2UgaWYgJGxlbmd0aCA9PSAxIHtcclxuICAgIC8vIFN3YXAgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5XHJcbiAgICBAaWYgJHR5cGUgPT0gc3RyaW5nIHtcclxuICAgICAgJGRlZ3JlZTogJHBvcztcclxuICAgICAgJHNwZWM6IHRvIF9wb3NpdGlvbi1mbGlwcGVyKCRwb3MpO1xyXG4gICAgfVxyXG4gICAgQGVsc2Uge1xyXG4gICAgICAkZGVncmVlOiAtMjcwIC0gJHBvczsgLy9yb3RhdGUgdGhlIGdyYWRpZW50IG9wcG9zaXRlIGZyb20gc3BlY1xyXG4gICAgICAkc3BlYzogJHBvcztcclxuICAgIH1cclxuICB9XHJcbiAgJGRlZ3JlZTogdW5xdW90ZSgkZGVncmVlICsgXCIsXCIpO1xyXG4gICRzcGVjOiAgIHVucXVvdGUoJHNwZWMgKyBcIixcIik7XHJcbiAgQHJldHVybiAkZGVncmVlICRzcGVjO1xyXG59XHJcblxyXG5AZnVuY3Rpb24gX3Bvc2l0aW9uLWZsaXBwZXIoJHBvcykge1xyXG4gIEByZXR1cm4gaWYoJHBvcyA9PSBsZWZ0LCByaWdodCwgbnVsbClcclxuICAgICAgICAgaWYoJHBvcyA9PSByaWdodCwgbGVmdCwgbnVsbClcclxuICAgICAgICAgaWYoJHBvcyA9PSB0b3AsIGJvdHRvbSwgbnVsbClcclxuICAgICAgICAgaWYoJHBvcyA9PSBib3R0b20sIHRvcCwgbnVsbCk7XHJcbn1cclxuIiwiLy8gUHJpdmF0ZSBmdW5jdGlvbiBmb3IgbGluZWFyLWdyYWRpZW50LXBhcnNlclxyXG5AZnVuY3Rpb24gX2xpbmVhci1zaWRlLWNvcm5lci1wYXJzZXIoJGltYWdlLCAkZmlyc3QtdmFsLCAkcHJlZml4LCAkc3VmZml4LCAkaGFzLW11bHRpcGxlLXZhbHMpIHtcclxuICAkdmFsLTE6IHN0ci1zbGljZSgkZmlyc3QtdmFsLCAxLCAkaGFzLW11bHRpcGxlLXZhbHMgLSAxKTtcclxuICAkdmFsLTI6IHN0ci1zbGljZSgkZmlyc3QtdmFsLCAkaGFzLW11bHRpcGxlLXZhbHMgKyAxLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpKTtcclxuICAkdmFsLTM6IG51bGw7XHJcbiAgJGhhcy12YWwtMzogc3RyLWluZGV4KCR2YWwtMiwgXCIgXCIpO1xyXG5cclxuICBAaWYgJGhhcy12YWwtMyB7XHJcbiAgICAkdmFsLTM6IHN0ci1zbGljZSgkdmFsLTIsICRoYXMtdmFsLTMgKyAxLCBzdHItbGVuZ3RoKCR2YWwtMikpO1xyXG4gICAgJHZhbC0yOiBzdHItc2xpY2UoJHZhbC0yLCAxLCAkaGFzLXZhbC0zIC0gMSk7XHJcbiAgfVxyXG5cclxuICAkcG9zOiBfcG9zaXRpb24tZmxpcHBlcigkdmFsLTEpIF9wb3NpdGlvbi1mbGlwcGVyKCR2YWwtMikgX3Bvc2l0aW9uLWZsaXBwZXIoJHZhbC0zKTtcclxuICAkcG9zOiB1bnF1b3RlKCRwb3MgKyBcIlwiKTtcclxuXHJcbiAgLy8gVXNlIG9sZCBzcGVjIGZvciB3ZWJraXRcclxuICBAaWYgJHZhbC0xID09IFwidG9cIiB7XHJcbiAgICBAcmV0dXJuIChcclxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRwcmVmaXggKyAkcG9zICsgJHN1ZmZpeCxcclxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLy8gQnJpbmcgdGhlIGNvZGUgdXAgdG8gc3BlY1xyXG4gIEBlbHNlIHtcclxuICAgIEByZXR1cm4gKFxyXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJGltYWdlLFxyXG4gICAgICBzcGVjLWltYWdlOiAkcHJlZml4ICsgXCJ0byBcIiArICRwb3MgKyAkc3VmZml4XHJcbiAgICApO1xyXG4gIH1cclxufVxyXG4iLCJAZnVuY3Rpb24gX3JhZGlhbC1hcmctcGFyc2VyKCRnMSwgJGcyLCAkcG9zLCAkc2hhcGUtc2l6ZSkge1xyXG4gIEBlYWNoICR2YWx1ZSBpbiAkZzEsICRnMiB7XHJcbiAgICAkZmlyc3QtdmFsOiBudGgoJHZhbHVlLCAxKTtcclxuICAgICRwb3MtdHlwZTogIHR5cGUtb2YoJGZpcnN0LXZhbCk7XHJcbiAgICAkc3BlYy1hdC1pbmRleDogbnVsbDtcclxuXHJcbiAgICAvLyBEZXRlcm1pbmUgaWYgc3BlYyB3YXMgcGFzc2VkIHRvIG1peGluXHJcbiAgICBAaWYgdHlwZS1vZigkdmFsdWUpID09IGxpc3Qge1xyXG4gICAgICAkc3BlYy1hdC1pbmRleDogaWYoaW5kZXgoJHZhbHVlLCBhdCksIGluZGV4KCR2YWx1ZSwgYXQpLCBmYWxzZSk7XHJcbiAgICB9XHJcbiAgICBAaWYgJHNwZWMtYXQtaW5kZXgge1xyXG4gICAgICBAaWYgJHNwZWMtYXQtaW5kZXggPiAxIHtcclxuICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICgkc3BlYy1hdC1pbmRleCAtIDEpIHtcclxuICAgICAgICAgICRzaGFwZS1zaXplOiAkc2hhcGUtc2l6ZSBudGgoJHZhbHVlLCAkaSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBmb3IgJGkgZnJvbSAoJHNwZWMtYXQtaW5kZXggKyAxKSB0aHJvdWdoIGxlbmd0aCgkdmFsdWUpIHtcclxuICAgICAgICAgICRwb3M6ICRwb3MgbnRoKCR2YWx1ZSwgJGkpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBAZWxzZSBpZiAkc3BlYy1hdC1pbmRleCA9PSAxIHtcclxuICAgICAgICBAZm9yICRpIGZyb20gKCRzcGVjLWF0LWluZGV4ICsgMSkgdGhyb3VnaCBsZW5ndGgoJHZhbHVlKSB7XHJcbiAgICAgICAgICAkcG9zOiAkcG9zIG50aCgkdmFsdWUsICRpKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgJGcxOiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIElmIG5vdCBzcGVjIGNhbGN1bGF0ZSBjb3JyZWN0IHZhbHVlc1xyXG4gICAgQGVsc2Uge1xyXG4gICAgICBAaWYgKCRwb3MtdHlwZSAhPSBjb2xvcikgb3IgKCRmaXJzdC12YWwgIT0gXCJ0cmFuc3BhcmVudFwiKSB7XHJcbiAgICAgICAgQGlmICgkcG9zLXR5cGUgPT0gbnVtYmVyKVxyXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY2VudGVyXCIpXHJcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJ0b3BcIilcclxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcInJpZ2h0XCIpXHJcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJib3R0b21cIilcclxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImxlZnRcIikge1xyXG5cclxuICAgICAgICAgICRwb3M6ICR2YWx1ZTtcclxuXHJcbiAgICAgICAgICBAaWYgJHBvcyA9PSAkZzEge1xyXG4gICAgICAgICAgICAkZzE6IG51bGw7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBAZWxzZSBpZlxyXG4gICAgICAgICAgICgkZmlyc3QtdmFsID09IFwiZWxsaXBzZVwiKVxyXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY2lyY2xlXCIpXHJcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjbG9zZXN0LXNpZGVcIilcclxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNsb3Nlc3QtY29ybmVyXCIpXHJcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJmYXJ0aGVzdC1zaWRlXCIpXHJcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJmYXJ0aGVzdC1jb3JuZXJcIilcclxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNvbnRhaW5cIilcclxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNvdmVyXCIpIHtcclxuXHJcbiAgICAgICAgICAkc2hhcGUtc2l6ZTogJHZhbHVlO1xyXG5cclxuICAgICAgICAgIEBpZiAkdmFsdWUgPT0gJGcxIHtcclxuICAgICAgICAgICAgJGcxOiBudWxsO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIEBlbHNlIGlmICR2YWx1ZSA9PSAkZzIge1xyXG4gICAgICAgICAgICAkZzI6IG51bGw7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIEByZXR1cm4gJGcxLCAkZzIsICRwb3MsICRzaGFwZS1zaXplO1xyXG59XHJcbiIsIkBmdW5jdGlvbiBfcmFkaWFsLXBvc2l0aW9ucy1wYXJzZXIoJGdyYWRpZW50LXBvcykge1xyXG4gICRzaGFwZS1zaXplOiBudGgoJGdyYWRpZW50LXBvcywgMSk7XHJcbiAgJHBvczogICAgICAgIG50aCgkZ3JhZGllbnQtcG9zLCAyKTtcclxuICAkc2hhcGUtc2l6ZS1zcGVjOiBfc2hhcGUtc2l6ZS1zdHJpcHBlcigkc2hhcGUtc2l6ZSk7XHJcblxyXG4gICRwcmUtc3BlYzogdW5xdW90ZShpZigkcG9zLCBcIiN7JHBvc30sIFwiLCBudWxsKSlcclxuICAgICAgICAgICAgIHVucXVvdGUoaWYoJHNoYXBlLXNpemUsIFwiI3skc2hhcGUtc2l6ZX0sXCIsIG51bGwpKTtcclxuICAkcG9zLXNwZWM6IGlmKCRwb3MsIFwiYXQgI3skcG9zfVwiLCBudWxsKTtcclxuXHJcbiAgJHNwZWM6IFwiI3skc2hhcGUtc2l6ZS1zcGVjfSAjeyRwb3Mtc3BlY31cIjtcclxuXHJcbiAgLy8gQWRkIGNvbW1hXHJcbiAgQGlmICgkc3BlYyAhPSBcIiAgXCIpIHtcclxuICAgICRzcGVjOiBcIiN7JHNwZWN9LFwiO1xyXG4gIH1cclxuXHJcbiAgQHJldHVybiAkcHJlLXNwZWMgJHNwZWM7XHJcbn1cclxuIiwiQGZ1bmN0aW9uIF9yYWRpYWwtZ3JhZGllbnQtcGFyc2VyKCRpbWFnZSkge1xyXG4gICRpbWFnZTogdW5xdW90ZSgkaW1hZ2UpO1xyXG4gICRncmFkaWVudHM6ICgpO1xyXG4gICRzdGFydDogc3RyLWluZGV4KCRpbWFnZSwgXCIoXCIpO1xyXG4gICRlbmQ6IHN0ci1pbmRleCgkaW1hZ2UsIFwiLFwiKTtcclxuICAkZmlyc3QtdmFsOiBzdHItc2xpY2UoJGltYWdlLCAkc3RhcnQgKyAxLCAkZW5kIC0gMSk7XHJcblxyXG4gICRwcmVmaXg6IHN0ci1zbGljZSgkaW1hZ2UsIDEsICRzdGFydCk7XHJcbiAgJHN1ZmZpeDogc3RyLXNsaWNlKCRpbWFnZSwgJGVuZCwgc3RyLWxlbmd0aCgkaW1hZ2UpKTtcclxuXHJcbiAgJGlzLXNwZWMtc3ludGF4OiBzdHItaW5kZXgoJGZpcnN0LXZhbCwgXCJhdFwiKTtcclxuXHJcbiAgQGlmICRpcy1zcGVjLXN5bnRheCBhbmQgJGlzLXNwZWMtc3ludGF4ID4gMSB7XHJcbiAgICAka2V5d29yZDogc3RyLXNsaWNlKCRmaXJzdC12YWwsIDEsICRpcy1zcGVjLXN5bnRheCAtIDIpO1xyXG4gICAgJHBvczogc3RyLXNsaWNlKCRmaXJzdC12YWwsICRpcy1zcGVjLXN5bnRheCArIDMsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkpO1xyXG4gICAgJHBvczogYXBwZW5kKCRwb3MsICRrZXl3b3JkLCBjb21tYSk7XHJcblxyXG4gICAgJGdyYWRpZW50czogKFxyXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJHByZWZpeCArICRwb3MgKyAkc3VmZml4LFxyXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBAZWxzZSBpZiAkaXMtc3BlYy1zeW50YXggPT0gMSB7XHJcbiAgICAkcG9zOiBzdHItc2xpY2UoJGZpcnN0LXZhbCwgJGlzLXNwZWMtc3ludGF4ICsgMywgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSk7XHJcblxyXG4gICAgJGdyYWRpZW50czogKFxyXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJHByZWZpeCArICRwb3MgKyAkc3VmZml4LFxyXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBAZWxzZSBpZiBzdHItaW5kZXgoJGltYWdlLCBcImNvdmVyXCIpIG9yIHN0ci1pbmRleCgkaW1hZ2UsIFwiY29udGFpblwiKSB7XHJcbiAgICBAd2FybiBcIlJhZGlhbC1ncmFkaWVudCBuZWVkcyB0byBiZSB1cGRhdGVkIHRvIGNvbmZvcm0gdG8gbGF0ZXN0IHNwZWMuXCI7XHJcblxyXG4gICAgJGdyYWRpZW50czogKFxyXG4gICAgICB3ZWJraXQtaW1hZ2U6IG51bGwsXHJcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIEBlbHNlIHtcclxuICAgICRncmFkaWVudHM6IChcclxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRpbWFnZSxcclxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgQHJldHVybiAkZ3JhZGllbnRzO1xyXG59XHJcbiIsIi8vIFVzZXIgZm9yIGxpbmVhciBhbmQgcmFkaWFsIGdyYWRpZW50cyB3aXRoaW4gYmFja2dyb3VuZC1pbWFnZSBvciBib3JkZXItaW1hZ2UgcHJvcGVydGllc1xyXG5cclxuQGZ1bmN0aW9uIF9yZW5kZXItZ3JhZGllbnRzKCRncmFkaWVudC1wb3NpdGlvbnMsICRncmFkaWVudHMsICRncmFkaWVudC10eXBlLCAkdmVuZG9yOiBmYWxzZSkge1xyXG4gICRwcmUtc3BlYzogbnVsbDtcclxuICAkc3BlYzogbnVsbDtcclxuICAkdmVuZG9yLWdyYWRpZW50czogbnVsbDtcclxuICBAaWYgJGdyYWRpZW50LXR5cGUgPT0gbGluZWFyIHtcclxuICAgIEBpZiAkZ3JhZGllbnQtcG9zaXRpb25zIHtcclxuICAgICAgJHByZS1zcGVjOiBudGgoJGdyYWRpZW50LXBvc2l0aW9ucywgMSk7XHJcbiAgICAgICRzcGVjOiAgICAgbnRoKCRncmFkaWVudC1wb3NpdGlvbnMsIDIpO1xyXG4gICAgfVxyXG4gIH1cclxuICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSByYWRpYWwge1xyXG4gICAgJHByZS1zcGVjOiBudGgoJGdyYWRpZW50LXBvc2l0aW9ucywgMSk7XHJcbiAgICAkc3BlYzogICAgIG50aCgkZ3JhZGllbnQtcG9zaXRpb25zLCAyKTtcclxuICB9XHJcblxyXG4gIEBpZiAkdmVuZG9yIHtcclxuICAgICR2ZW5kb3ItZ3JhZGllbnRzOiAtI3skdmVuZG9yfS0jeyRncmFkaWVudC10eXBlfS1ncmFkaWVudCgjeyRwcmUtc3BlY30gJGdyYWRpZW50cyk7XHJcbiAgfVxyXG4gIEBlbHNlIGlmICR2ZW5kb3IgPT0gZmFsc2Uge1xyXG4gICAgJHZlbmRvci1ncmFkaWVudHM6IFwiI3skZ3JhZGllbnQtdHlwZX0tZ3JhZGllbnQoI3skc3BlY30gI3skZ3JhZGllbnRzfSlcIjtcclxuICAgICR2ZW5kb3ItZ3JhZGllbnRzOiB1bnF1b3RlKCR2ZW5kb3ItZ3JhZGllbnRzKTtcclxuICB9XHJcbiAgQHJldHVybiAkdmVuZG9yLWdyYWRpZW50cztcclxufVxyXG4iLCJAZnVuY3Rpb24gX3NoYXBlLXNpemUtc3RyaXBwZXIoJHNoYXBlLXNpemUpIHtcclxuICAkc2hhcGUtc2l6ZS1zcGVjOiBudWxsO1xyXG4gIEBlYWNoICR2YWx1ZSBpbiAkc2hhcGUtc2l6ZSB7XHJcbiAgICBAaWYgKCR2YWx1ZSA9PSBcImNvdmVyXCIpIG9yICgkdmFsdWUgPT0gXCJjb250YWluXCIpIHtcclxuICAgICAgJHZhbHVlOiBudWxsO1xyXG4gICAgfVxyXG4gICAgJHNoYXBlLXNpemUtc3BlYzogXCIjeyRzaGFwZS1zaXplLXNwZWN9ICN7JHZhbHVlfVwiO1xyXG4gIH1cclxuICBAcmV0dXJuICRzaGFwZS1zaXplLXNwZWM7XHJcbn1cclxuIiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xyXG4vLyBIZWxwZXIgZnVuY3Rpb24gZm9yIGxpbmVhci9yYWRpYWwtZ3JhZGllbnQtcGFyc2Vycy5cclxuLy8gU291cmNlOiBodHRwOi8vc2Fzc21laXN0ZXIuY29tL2dpc3QvOTY0NzQwOFxyXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXHJcbkBmdW5jdGlvbiBfc3RyLXRvLW51bSgkc3RyaW5nKSB7XHJcbiAgLy8gTWF0cmljZXNcclxuICAkc3RyaW5nczogXCIwXCIgXCIxXCIgXCIyXCIgXCIzXCIgXCI0XCIgXCI1XCIgXCI2XCIgXCI3XCIgXCI4XCIgXCI5XCI7XHJcbiAgJG51bWJlcnM6ICAwICAgMSAgIDIgICAzICAgNCAgIDUgICA2ICAgNyAgIDggICA5O1xyXG5cclxuICAvLyBSZXN1bHRcclxuICAkcmVzdWx0OiAwO1xyXG4gICRkaXZpZGVyOiAwO1xyXG4gICRtaW51czogZmFsc2U7XHJcblxyXG4gIC8vIExvb3BpbmcgdGhyb3VnaCBhbGwgY2hhcmFjdGVyc1xyXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggc3RyLWxlbmd0aCgkc3RyaW5nKSB7XHJcbiAgICAkY2hhcmFjdGVyOiBzdHItc2xpY2UoJHN0cmluZywgJGksICRpKTtcclxuICAgICRpbmRleDogaW5kZXgoJHN0cmluZ3MsICRjaGFyYWN0ZXIpO1xyXG5cclxuICAgIEBpZiAkY2hhcmFjdGVyID09IFwiLVwiIHtcclxuICAgICAgJG1pbnVzOiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIEBlbHNlIGlmICRjaGFyYWN0ZXIgPT0gXCIuXCIge1xyXG4gICAgICAkZGl2aWRlcjogMTtcclxuICAgIH1cclxuXHJcbiAgICBAZWxzZSB7XHJcbiAgICAgIEBpZiBub3QgJGluZGV4IHtcclxuICAgICAgICAkcmVzdWx0OiBpZigkbWludXMsICRyZXN1bHQgKiAtMSwgJHJlc3VsdCk7XHJcbiAgICAgICAgQHJldHVybiBfY29udmVydC11bml0cygkcmVzdWx0LCBzdHItc2xpY2UoJHN0cmluZywgJGkpKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgJG51bWJlcjogbnRoKCRudW1iZXJzLCAkaW5kZXgpO1xyXG5cclxuICAgICAgQGlmICRkaXZpZGVyID09IDAge1xyXG4gICAgICAgICRyZXN1bHQ6ICRyZXN1bHQgKiAxMDtcclxuICAgICAgfVxyXG5cclxuICAgICAgQGVsc2Uge1xyXG4gICAgICAgIC8vIE1vdmUgdGhlIGRlY2ltYWwgZG90IHRvIHRoZSBsZWZ0XHJcbiAgICAgICAgJGRpdmlkZXI6ICRkaXZpZGVyICogMTA7XHJcbiAgICAgICAgJG51bWJlcjogJG51bWJlciAvICRkaXZpZGVyO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAkcmVzdWx0OiAkcmVzdWx0ICsgJG51bWJlcjtcclxuICAgIH1cclxuICB9XHJcbiAgQHJldHVybiBpZigkbWludXMsICRyZXN1bHQgKiAtMSwgJHJlc3VsdCk7XHJcbn1cclxuIiwiLy8gaHR0cDovL3d3dy53My5vcmcvVFIvY3NzMy1hbmltYXRpb25zLyN0aGUtYW5pbWF0aW9uLW5hbWUtcHJvcGVydHktXHJcbi8vIEVhY2ggb2YgdGhlc2UgbWl4aW5zIHN1cHBvcnQgY29tbWEgc2VwYXJhdGVkIGxpc3RzIG9mIHZhbHVlcywgd2hpY2ggYWxsb3dzIGRpZmZlcmVudCB0cmFuc2l0aW9ucyBmb3IgaW5kaXZpZHVhbCBwcm9wZXJ0aWVzIHRvIGJlIGRlc2NyaWJlZCBpbiBhIHNpbmdsZSBzdHlsZSBydWxlLiBFYWNoIHZhbHVlIGluIHRoZSBsaXN0IGNvcnJlc3BvbmRzIHRvIHRoZSB2YWx1ZSBhdCB0aGF0IHNhbWUgcG9zaXRpb24gaW4gdGhlIG90aGVyIHByb3BlcnRpZXMuXHJcblxyXG5AbWl4aW4gYW5pbWF0aW9uKCRhbmltYXRpb25zLi4uKSB7XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLCAkYW5pbWF0aW9ucywgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIGFuaW1hdGlvbi1uYW1lKCRuYW1lcy4uLikge1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1uYW1lLCAkbmFtZXMsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiBhbmltYXRpb24tZHVyYXRpb24oJHRpbWVzLi4uKSB7XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWR1cmF0aW9uLCAkdGltZXMsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uKCRtb3Rpb25zLi4uKSB7XHJcbiAgLy8gZWFzZSB8IGxpbmVhciB8IGVhc2UtaW4gfCBlYXNlLW91dCB8IGVhc2UtaW4tb3V0XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbiwgJG1vdGlvbnMsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50KCR2YWx1ZXMuLi4pIHtcclxuICAvLyBpbmZpbml0ZSB8IDxudW1iZXI+XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCwgJHZhbHVlcywgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIGFuaW1hdGlvbi1kaXJlY3Rpb24oJGRpcmVjdGlvbnMuLi4pIHtcclxuICAvLyBub3JtYWwgfCBhbHRlcm5hdGVcclxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tZGlyZWN0aW9uLCAkZGlyZWN0aW9ucywgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIGFuaW1hdGlvbi1wbGF5LXN0YXRlKCRzdGF0ZXMuLi4pIHtcclxuICAvLyBydW5uaW5nIHwgcGF1c2VkXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLXBsYXktc3RhdGUsICRzdGF0ZXMsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiBhbmltYXRpb24tZGVsYXkoJHRpbWVzLi4uKSB7XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWRlbGF5LCAkdGltZXMsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiBhbmltYXRpb24tZmlsbC1tb2RlKCRtb2Rlcy4uLikge1xyXG4gIC8vIG5vbmUgfCBmb3J3YXJkcyB8IGJhY2t3YXJkcyB8IGJvdGhcclxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tZmlsbC1tb2RlLCAkbW9kZXMsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuIiwiQG1peGluIGFwcGVhcmFuY2UoJHZhbHVlKSB7XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYXBwZWFyYW5jZSwgJHZhbHVlLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XHJcbn1cclxuIiwiQG1peGluIGJhY2tmYWNlLXZpc2liaWxpdHkoJHZpc2liaWxpdHkpIHtcclxuICBAaW5jbHVkZSBwcmVmaXhlcihiYWNrZmFjZS12aXNpYmlsaXR5LCAkdmlzaWJpbGl0eSwgd2Via2l0IHNwZWMpO1xyXG59XHJcbiIsIi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cclxuLy8gQmFja2dyb3VuZCBwcm9wZXJ0eSBmb3IgYWRkaW5nIG11bHRpcGxlIGJhY2tncm91bmRzIHVzaW5nIHNob3J0aGFuZFxyXG4vLyBub3RhdGlvbi5cclxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xyXG5cclxuQG1peGluIGJhY2tncm91bmQoJGJhY2tncm91bmRzLi4uKSB7XHJcbiAgJHdlYmtpdC1iYWNrZ3JvdW5kczogKCk7XHJcbiAgJHNwZWMtYmFja2dyb3VuZHM6ICgpO1xyXG5cclxuICBAZWFjaCAkYmFja2dyb3VuZCBpbiAkYmFja2dyb3VuZHMge1xyXG4gICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiAoKTtcclxuICAgICRzcGVjLWJhY2tncm91bmQ6ICgpO1xyXG4gICAgJGJhY2tncm91bmQtdHlwZTogdHlwZS1vZigkYmFja2dyb3VuZCk7XHJcblxyXG4gICAgQGlmICRiYWNrZ3JvdW5kLXR5cGUgPT0gc3RyaW5nIG9yICRiYWNrZ3JvdW5kLXR5cGUgPT0gbGlzdCB7XHJcbiAgICAgICRiYWNrZ3JvdW5kLXN0cjogaWYoJGJhY2tncm91bmQtdHlwZSA9PSBsaXN0LCBudGgoJGJhY2tncm91bmQsIDEpLCAkYmFja2dyb3VuZCk7XHJcblxyXG4gICAgICAkdXJsLXN0cjogICAgICAgc3RyLXNsaWNlKCRiYWNrZ3JvdW5kLXN0ciwgMSwgMyk7XHJcbiAgICAgICRncmFkaWVudC10eXBlOiBzdHItc2xpY2UoJGJhY2tncm91bmQtc3RyLCAxLCA2KTtcclxuXHJcbiAgICAgIEBpZiAkdXJsLXN0ciA9PSBcInVybFwiIHtcclxuICAgICAgICAkd2Via2l0LWJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xyXG4gICAgICAgICRzcGVjLWJhY2tncm91bmQ6ICAgJGJhY2tncm91bmQ7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwibGluZWFyXCIge1xyXG4gICAgICAgICRncmFkaWVudHM6IF9saW5lYXItZ3JhZGllbnQtcGFyc2VyKFwiI3skYmFja2dyb3VuZH1cIik7XHJcbiAgICAgICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XHJcbiAgICAgICAgJHNwZWMtYmFja2dyb3VuZDogICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcInJhZGlhbFwiIHtcclxuICAgICAgICAkZ3JhZGllbnRzOiBfcmFkaWFsLWdyYWRpZW50LXBhcnNlcihcIiN7JGJhY2tncm91bmR9XCIpO1xyXG4gICAgICAgICR3ZWJraXQtYmFja2dyb3VuZDogbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xyXG4gICAgICAgICRzcGVjLWJhY2tncm91bmQ6ICAgbWFwLWdldCgkZ3JhZGllbnRzLCBzcGVjLWltYWdlKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgQGVsc2Uge1xyXG4gICAgICAgICR3ZWJraXQtYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XHJcbiAgICAgICAgJHNwZWMtYmFja2dyb3VuZDogICAkYmFja2dyb3VuZDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBlbHNlIHtcclxuICAgICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcclxuICAgICAgJHNwZWMtYmFja2dyb3VuZDogICAkYmFja2dyb3VuZDtcclxuICAgIH1cclxuXHJcbiAgICAkd2Via2l0LWJhY2tncm91bmRzOiBhcHBlbmQoJHdlYmtpdC1iYWNrZ3JvdW5kcywgJHdlYmtpdC1iYWNrZ3JvdW5kLCBjb21tYSk7XHJcbiAgICAkc3BlYy1iYWNrZ3JvdW5kczogICBhcHBlbmQoJHNwZWMtYmFja2dyb3VuZHMsICAgJHNwZWMtYmFja2dyb3VuZCwgICBjb21tYSk7XHJcbiAgfVxyXG5cclxuICBiYWNrZ3JvdW5kOiAkd2Via2l0LWJhY2tncm91bmRzO1xyXG4gIGJhY2tncm91bmQ6ICRzcGVjLWJhY2tncm91bmRzO1xyXG59XHJcbiIsIi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cclxuLy8gQmFja2dyb3VuZC1pbWFnZSBwcm9wZXJ0eSBmb3IgYWRkaW5nIG11bHRpcGxlIGJhY2tncm91bmQgaW1hZ2VzIHdpdGhcclxuLy8gZ3JhZGllbnRzLCBvciBmb3Igc3RyaW5naW5nIG11bHRpcGxlIGdyYWRpZW50cyB0b2dldGhlci5cclxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xyXG5cclxuQG1peGluIGJhY2tncm91bmQtaW1hZ2UoJGltYWdlcy4uLikge1xyXG4gICR3ZWJraXQtaW1hZ2VzOiAoKTtcclxuICAkc3BlYy1pbWFnZXM6ICgpO1xyXG5cclxuICBAZWFjaCAkaW1hZ2UgaW4gJGltYWdlcyB7XHJcbiAgICAkd2Via2l0LWltYWdlOiAoKTtcclxuICAgICRzcGVjLWltYWdlOiAoKTtcclxuXHJcbiAgICBAaWYgKHR5cGUtb2YoJGltYWdlKSA9PSBzdHJpbmcpIHtcclxuICAgICAgJHVybC1zdHI6ICAgICAgIHN0ci1zbGljZSgkaW1hZ2UsIDEsIDMpO1xyXG4gICAgICAkZ3JhZGllbnQtdHlwZTogc3RyLXNsaWNlKCRpbWFnZSwgMSwgNik7XHJcblxyXG4gICAgICBAaWYgJHVybC1zdHIgPT0gXCJ1cmxcIiB7XHJcbiAgICAgICAgJHdlYmtpdC1pbWFnZTogJGltYWdlO1xyXG4gICAgICAgICRzcGVjLWltYWdlOiAgICRpbWFnZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJsaW5lYXJcIiB7XHJcbiAgICAgICAgJGdyYWRpZW50czogX2xpbmVhci1ncmFkaWVudC1wYXJzZXIoJGltYWdlKTtcclxuICAgICAgICAkd2Via2l0LWltYWdlOiAgbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xyXG4gICAgICAgICRzcGVjLWltYWdlOiAgICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcInJhZGlhbFwiIHtcclxuICAgICAgICAkZ3JhZGllbnRzOiBfcmFkaWFsLWdyYWRpZW50LXBhcnNlcigkaW1hZ2UpO1xyXG4gICAgICAgICR3ZWJraXQtaW1hZ2U6IG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcclxuICAgICAgICAkc3BlYy1pbWFnZTogICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJHdlYmtpdC1pbWFnZXM6IGFwcGVuZCgkd2Via2l0LWltYWdlcywgJHdlYmtpdC1pbWFnZSwgY29tbWEpO1xyXG4gICAgJHNwZWMtaW1hZ2VzOiAgIGFwcGVuZCgkc3BlYy1pbWFnZXMsICAgJHNwZWMtaW1hZ2UsICAgY29tbWEpO1xyXG4gIH1cclxuXHJcbiAgYmFja2dyb3VuZC1pbWFnZTogJHdlYmtpdC1pbWFnZXM7XHJcbiAgYmFja2dyb3VuZC1pbWFnZTogJHNwZWMtaW1hZ2VzO1xyXG59XHJcbiIsIkBtaXhpbiBib3JkZXItaW1hZ2UoJGJvcmRlcnMuLi4pIHtcclxuICAkd2Via2l0LWJvcmRlcnM6ICgpO1xyXG4gICRzcGVjLWJvcmRlcnM6ICgpO1xyXG5cclxuICBAZWFjaCAkYm9yZGVyIGluICRib3JkZXJzIHtcclxuICAgICR3ZWJraXQtYm9yZGVyOiAoKTtcclxuICAgICRzcGVjLWJvcmRlcjogKCk7XHJcbiAgICAkYm9yZGVyLXR5cGU6IHR5cGUtb2YoJGJvcmRlcik7XHJcblxyXG4gICAgQGlmICRib3JkZXItdHlwZSA9PSBzdHJpbmcgb3IgbGlzdCB7XHJcbiAgICAgICRib3JkZXItc3RyOiBpZigkYm9yZGVyLXR5cGUgPT0gbGlzdCwgbnRoKCRib3JkZXIsIDEpLCAkYm9yZGVyKTtcclxuXHJcbiAgICAgICR1cmwtc3RyOiAgICAgICBzdHItc2xpY2UoJGJvcmRlci1zdHIsIDEsIDMpO1xyXG4gICAgICAkZ3JhZGllbnQtdHlwZTogc3RyLXNsaWNlKCRib3JkZXItc3RyLCAxLCA2KTtcclxuXHJcbiAgICAgIEBpZiAkdXJsLXN0ciA9PSBcInVybFwiIHtcclxuICAgICAgICAkd2Via2l0LWJvcmRlcjogJGJvcmRlcjtcclxuICAgICAgICAkc3BlYy1ib3JkZXI6ICAgJGJvcmRlcjtcclxuICAgICAgfVxyXG5cclxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJsaW5lYXJcIiB7XHJcbiAgICAgICAgJGdyYWRpZW50czogX2xpbmVhci1ncmFkaWVudC1wYXJzZXIoXCIjeyRib3JkZXJ9XCIpO1xyXG4gICAgICAgICR3ZWJraXQtYm9yZGVyOiBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XHJcbiAgICAgICAgJHNwZWMtYm9yZGVyOiAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwicmFkaWFsXCIge1xyXG4gICAgICAgICRncmFkaWVudHM6IF9yYWRpYWwtZ3JhZGllbnQtcGFyc2VyKFwiI3skYm9yZGVyfVwiKTtcclxuICAgICAgICAkd2Via2l0LWJvcmRlcjogbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xyXG4gICAgICAgICRzcGVjLWJvcmRlcjogICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBAZWxzZSB7XHJcbiAgICAgICAgJHdlYmtpdC1ib3JkZXI6ICRib3JkZXI7XHJcbiAgICAgICAgJHNwZWMtYm9yZGVyOiAgICRib3JkZXI7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBAZWxzZSB7XHJcbiAgICAgICR3ZWJraXQtYm9yZGVyOiAkYm9yZGVyO1xyXG4gICAgICAkc3BlYy1ib3JkZXI6ICAgJGJvcmRlcjtcclxuICAgIH1cclxuXHJcbiAgICAkd2Via2l0LWJvcmRlcnM6IGFwcGVuZCgkd2Via2l0LWJvcmRlcnMsICR3ZWJraXQtYm9yZGVyLCBjb21tYSk7XHJcbiAgICAkc3BlYy1ib3JkZXJzOiAgIGFwcGVuZCgkc3BlYy1ib3JkZXJzLCAgICRzcGVjLWJvcmRlciwgICBjb21tYSk7XHJcbiAgfVxyXG5cclxuICAtd2Via2l0LWJvcmRlci1pbWFnZTogJHdlYmtpdC1ib3JkZXJzO1xyXG4gICAgICAgICAgYm9yZGVyLWltYWdlOiAkc3BlYy1ib3JkZXJzO1xyXG4gICAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcclxufVxyXG5cclxuLy9FeGFtcGxlczpcclxuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKHVybChcImltYWdlLnBuZ1wiKSk7XHJcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZSh1cmwoXCJpbWFnZS5wbmdcIikgMjAgc3RyZXRjaCk7XHJcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZShsaW5lYXItZ3JhZGllbnQoNDVkZWcsIG9yYW5nZSwgeWVsbG93KSk7XHJcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZShsaW5lYXItZ3JhZGllbnQoNDVkZWcsIG9yYW5nZSwgeWVsbG93KSBzdHJldGNoKTtcclxuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKGxpbmVhci1ncmFkaWVudCg0NWRlZywgb3JhbmdlLCB5ZWxsb3cpIDIwIDMwIDQwIDUwIHN0cmV0Y2ggcm91bmQpO1xyXG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UocmFkaWFsLWdyYWRpZW50KHRvcCwgY292ZXIsIG9yYW5nZSwgeWVsbG93LCBvcmFuZ2UpKTtcclxuIiwiQG1peGluIGNhbGMoJHByb3BlcnR5LCAkdmFsdWUpIHtcclxuICAjeyRwcm9wZXJ0eX06IC13ZWJraXQtY2FsYygjeyR2YWx1ZX0pO1xyXG4gICN7JHByb3BlcnR5fTogY2FsYygjeyR2YWx1ZX0pO1xyXG59XHJcbiIsIkBtaXhpbiBjb2x1bW5zKCRhcmc6IGF1dG8pIHtcclxuICAvLyA8Y29sdW1uLWNvdW50PiB8fCA8Y29sdW1uLXdpZHRoPlxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbnMsICRhcmcsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiBjb2x1bW4tY291bnQoJGludDogYXV0bykge1xyXG4gIC8vIGF1dG8gfHwgaW50ZWdlclxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1jb3VudCwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIGNvbHVtbi1nYXAoJGxlbmd0aDogbm9ybWFsKSB7XHJcbiAgLy8gbm9ybWFsIHx8IGxlbmd0aFxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1nYXAsICRsZW5ndGgsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiBjb2x1bW4tZmlsbCgkYXJnOiBhdXRvKSB7XHJcbiAgLy8gYXV0byB8fCBsZW5ndGhcclxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tZmlsbCwgJGFyZywgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIGNvbHVtbi1ydWxlKCRhcmcpIHtcclxuICAvLyA8Ym9yZGVyLXdpZHRoPiB8fCA8Ym9yZGVyLXN0eWxlPiB8fCA8Y29sb3I+XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXJ1bGUsICRhcmcsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiBjb2x1bW4tcnVsZS1jb2xvcigkY29sb3IpIHtcclxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tcnVsZS1jb2xvciwgJGNvbG9yLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gY29sdW1uLXJ1bGUtc3R5bGUoJHN0eWxlOiBub25lKSB7XHJcbiAgLy8gbm9uZSB8IGhpZGRlbiB8IGRhc2hlZCB8IGRvdHRlZCB8IGRvdWJsZSB8IGdyb292ZSB8IGluc2V0IHwgaW5zZXQgfCBvdXRzZXQgfCByaWRnZSB8IHNvbGlkXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXJ1bGUtc3R5bGUsICRzdHlsZSwgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIGNvbHVtbi1ydWxlLXdpZHRoICgkd2lkdGg6IG5vbmUpIHtcclxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tcnVsZS13aWR0aCwgJHdpZHRoLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gY29sdW1uLXNwYW4oJGFyZzogbm9uZSkge1xyXG4gIC8vIG5vbmUgfHwgYWxsXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXNwYW4sICRhcmcsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiBjb2x1bW4td2lkdGgoJGxlbmd0aDogYXV0bykge1xyXG4gIC8vIGF1dG8gfHwgbGVuZ3RoXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXdpZHRoLCAkbGVuZ3RoLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcbiIsIkBtaXhpbiBmaWx0ZXIoJGZ1bmN0aW9uOiBub25lKSB7XHJcbiAgLy8gPGZpbHRlci1mdW5jdGlvbj4gWzxmaWx0ZXItZnVuY3Rpb25dKiB8IG5vbmVcclxuICBAaW5jbHVkZSBwcmVmaXhlcihmaWx0ZXIsICRmdW5jdGlvbiwgd2Via2l0IHNwZWMpO1xyXG59XHJcbiIsIi8vIENTUzMgRmxleGlibGUgQm94IE1vZGVsIGFuZCBwcm9wZXJ0eSBkZWZhdWx0c1xyXG5cclxuLy8gQ3VzdG9tIHNob3J0aGFuZCBub3RhdGlvbiBmb3IgZmxleGJveFxyXG5AbWl4aW4gYm94KCRvcmllbnQ6IGlubGluZS1heGlzLCAkcGFjazogc3RhcnQsICRhbGlnbjogc3RyZXRjaCkge1xyXG4gIEBpbmNsdWRlIGRpc3BsYXktYm94O1xyXG4gIEBpbmNsdWRlIGJveC1vcmllbnQoJG9yaWVudCk7XHJcbiAgQGluY2x1ZGUgYm94LXBhY2soJHBhY2spO1xyXG4gIEBpbmNsdWRlIGJveC1hbGlnbigkYWxpZ24pO1xyXG59XHJcblxyXG5AbWl4aW4gZGlzcGxheS1ib3gge1xyXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xyXG4gIGRpc3BsYXk6IC1tb3otYm94O1xyXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94OyAvLyBJRSAxMFxyXG4gIGRpc3BsYXk6IGJveDtcclxufVxyXG5cclxuQG1peGluIGJveC1vcmllbnQoJG9yaWVudDogaW5saW5lLWF4aXMpIHtcclxuLy8gaG9yaXpvbnRhbHx2ZXJ0aWNhbHxpbmxpbmUtYXhpc3xibG9jay1heGlzfGluaGVyaXRcclxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtb3JpZW50LCAkb3JpZW50LCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gYm94LXBhY2soJHBhY2s6IHN0YXJ0KSB7XHJcbi8vIHN0YXJ0fGVuZHxjZW50ZXJ8anVzdGlmeVxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1wYWNrLCAkcGFjaywgd2Via2l0IG1veiBzcGVjKTtcclxuICAtbXMtZmxleC1wYWNrOiAkcGFjazsgLy8gSUUgMTBcclxufVxyXG5cclxuQG1peGluIGJveC1hbGlnbigkYWxpZ246IHN0cmV0Y2gpIHtcclxuLy8gc3RhcnR8ZW5kfGNlbnRlcnxiYXNlbGluZXxzdHJldGNoXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWFsaWduLCAkYWxpZ24sIHdlYmtpdCBtb3ogc3BlYyk7XHJcbiAgLW1zLWZsZXgtYWxpZ246ICRhbGlnbjsgLy8gSUUgMTBcclxufVxyXG5cclxuQG1peGluIGJveC1kaXJlY3Rpb24oJGRpcmVjdGlvbjogbm9ybWFsKSB7XHJcbi8vIG5vcm1hbHxyZXZlcnNlfGluaGVyaXRcclxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZGlyZWN0aW9uLCAkZGlyZWN0aW9uLCB3ZWJraXQgbW96IHNwZWMpO1xyXG4gIC1tcy1mbGV4LWRpcmVjdGlvbjogJGRpcmVjdGlvbjsgLy8gSUUgMTBcclxufVxyXG5cclxuQG1peGluIGJveC1saW5lcygkbGluZXM6IHNpbmdsZSkge1xyXG4vLyBzaW5nbGV8bXVsdGlwbGVcclxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtbGluZXMsICRsaW5lcywgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIGJveC1vcmRpbmFsLWdyb3VwKCRpbnQ6IDEpIHtcclxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtb3JkaW5hbC1ncm91cCwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcclxuICAtbXMtZmxleC1vcmRlcjogJGludDsgLy8gSUUgMTBcclxufVxyXG5cclxuQG1peGluIGJveC1mbGV4KCR2YWx1ZTogMCkge1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1mbGV4LCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbiAgLW1zLWZsZXg6ICR2YWx1ZTsgLy8gSUUgMTBcclxufVxyXG5cclxuQG1peGluIGJveC1mbGV4LWdyb3VwKCRpbnQ6IDEpIHtcclxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZmxleC1ncm91cCwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuLy8gQ1NTMyBGbGV4aWJsZSBCb3ggTW9kZWwgYW5kIHByb3BlcnR5IGRlZmF1bHRzXHJcbi8vIFVuaWZpZWQgYXR0cmlidXRlcyBmb3IgMjAwOSwgMjAxMSwgYW5kIDIwMTIgZmxhdm91cnMuXHJcblxyXG4vLyAyMDA5IC0gZGlzcGxheSAoYm94IHwgaW5saW5lLWJveClcclxuLy8gMjAxMSAtIGRpc3BsYXkgKGZsZXhib3ggfCBpbmxpbmUtZmxleGJveClcclxuLy8gMjAxMiAtIGRpc3BsYXkgKGZsZXggfCBpbmxpbmUtZmxleClcclxuQG1peGluIGRpc3BsYXkoJHZhbHVlKSB7XHJcbi8vIGZsZXggfCBpbmxpbmUtZmxleFxyXG4gIEBpZiAkdmFsdWUgPT0gXCJmbGV4XCIge1xyXG4gICAgLy8gMjAwOVxyXG4gICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XHJcbiAgICBkaXNwbGF5OiAtbW96LWJveDtcclxuICAgIGRpc3BsYXk6IGJveDtcclxuXHJcbiAgICAvLyAyMDEyXHJcbiAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XHJcbiAgICBkaXNwbGF5OiAtbW96LWZsZXg7XHJcbiAgICBkaXNwbGF5OiAtbXMtZmxleGJveDsgLy8gMjAxMSAoSUUgMTApXHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiaW5saW5lLWZsZXhcIiB7XHJcbiAgICBkaXNwbGF5OiAtd2Via2l0LWlubGluZS1ib3g7XHJcbiAgICBkaXNwbGF5OiAtbW96LWlubGluZS1ib3g7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYm94O1xyXG5cclxuICAgIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWZsZXg7XHJcbiAgICBkaXNwbGF5OiAtbW96LWlubGluZS1mbGV4O1xyXG4gICAgZGlzcGxheTogLW1zLWlubGluZS1mbGV4Ym94O1xyXG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XHJcbiAgfSBAZWxzZSB7XHJcbiAgICBkaXNwbGF5OiAkdmFsdWU7XHJcbiAgfVxyXG59XHJcblxyXG4vLyAyMDA5IC0gYm94LWZsZXggKGludGVnZXIpXHJcbi8vIDIwMTEgLSBmbGV4IChkZWNpbWFsIHwgd2lkdGggZGVjaW1hbClcclxuLy8gMjAxMiAtIGZsZXggKGludGVnZXIgaW50ZWdlciB3aWR0aClcclxuQG1peGluIGZsZXgoJHZhbHVlKSB7XHJcblxyXG4gIC8vIEdyYWIgZmxleC1ncm93IGZvciBvbGRlciBicm93c2Vycy5cclxuICAkZmxleC1ncm93OiBudGgoJHZhbHVlLCAxKTtcclxuXHJcbiAgLy8gMjAwOVxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1mbGV4LCAkZmxleC1ncm93LCB3ZWJraXQgbW96IHNwZWMpO1xyXG5cclxuICAvLyAyMDExIChJRSAxMCksIDIwMTJcclxuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgc3BlYyk7XHJcbn1cclxuXHJcbi8vIDIwMDkgLSBib3gtb3JpZW50ICggaG9yaXpvbnRhbCB8IHZlcnRpY2FsIHwgaW5saW5lLWF4aXMgfCBibG9jay1heGlzKVxyXG4vLyAgICAgIC0gYm94LWRpcmVjdGlvbiAobm9ybWFsIHwgcmV2ZXJzZSlcclxuLy8gMjAxMSAtIGZsZXgtZGlyZWN0aW9uIChyb3cgfCByb3ctcmV2ZXJzZSB8IGNvbHVtbiB8IGNvbHVtbi1yZXZlcnNlKVxyXG4vLyAyMDEyIC0gZmxleC1kaXJlY3Rpb24gKHJvdyB8IHJvdy1yZXZlcnNlIHwgY29sdW1uIHwgY29sdW1uLXJldmVyc2UpXHJcbkBtaXhpbiBmbGV4LWRpcmVjdGlvbigkdmFsdWU6IHJvdykge1xyXG5cclxuICAvLyBBbHQgdmFsdWVzLlxyXG4gICR2YWx1ZS0yMDA5OiAkdmFsdWU7XHJcbiAgJHZhbHVlLTIwMTE6ICR2YWx1ZTtcclxuICAkZGlyZWN0aW9uOiBub3JtYWw7XHJcblxyXG4gIEBpZiAkdmFsdWUgPT0gcm93IHtcclxuICAgICR2YWx1ZS0yMDA5OiBob3Jpem9udGFsO1xyXG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwicm93LXJldmVyc2VcIiB7XHJcbiAgICAkdmFsdWUtMjAwOTogaG9yaXpvbnRhbDtcclxuICAgICRkaXJlY3Rpb246IHJldmVyc2U7XHJcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gY29sdW1uIHtcclxuICAgICR2YWx1ZS0yMDA5OiB2ZXJ0aWNhbDtcclxuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImNvbHVtbi1yZXZlcnNlXCIge1xyXG4gICAgJHZhbHVlLTIwMDk6IHZlcnRpY2FsO1xyXG4gICAgJGRpcmVjdGlvbjogcmV2ZXJzZTtcclxuICB9XHJcblxyXG4gIC8vIDIwMDlcclxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtb3JpZW50LCAkdmFsdWUtMjAwOSwgd2Via2l0IG1veiBzcGVjKTtcclxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZGlyZWN0aW9uLCAkZGlyZWN0aW9uLCB3ZWJraXQgbW96IHNwZWMpO1xyXG5cclxuICAvLyAyMDEyXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1kaXJlY3Rpb24sICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcclxuXHJcbiAgLy8gMjAxMSAoSUUgMTApXHJcbiAgLW1zLWZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XHJcbn1cclxuXHJcbi8vIDIwMDkgLSBib3gtbGluZXMgKHNpbmdsZSB8IG11bHRpcGxlKVxyXG4vLyAyMDExIC0gZmxleC13cmFwIChub3dyYXAgfCB3cmFwIHwgd3JhcC1yZXZlcnNlKVxyXG4vLyAyMDEyIC0gZmxleC13cmFwIChub3dyYXAgfCB3cmFwIHwgd3JhcC1yZXZlcnNlKVxyXG5AbWl4aW4gZmxleC13cmFwKCR2YWx1ZTogbm93cmFwKSB7XHJcbiAgLy8gQWx0IHZhbHVlc1xyXG4gICRhbHQtdmFsdWU6ICR2YWx1ZTtcclxuICBAaWYgJHZhbHVlID09IG5vd3JhcCB7XHJcbiAgICAkYWx0LXZhbHVlOiBzaW5nbGU7XHJcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gd3JhcCB7XHJcbiAgICAkYWx0LXZhbHVlOiBtdWx0aXBsZTtcclxuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcIndyYXAtcmV2ZXJzZVwiIHtcclxuICAgICRhbHQtdmFsdWU6IG11bHRpcGxlO1xyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWxpbmVzLCAkYWx0LXZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtd3JhcCwgJHZhbHVlLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xyXG59XHJcblxyXG4vLyAyMDA5IC0gVE9ETzogcGFyc2UgdmFsdWVzIGludG8gZmxleC1kaXJlY3Rpb24vZmxleC13cmFwXHJcbi8vIDIwMTEgLSBUT0RPOiBwYXJzZSB2YWx1ZXMgaW50byBmbGV4LWRpcmVjdGlvbi9mbGV4LXdyYXBcclxuLy8gMjAxMiAtIGZsZXgtZmxvdyAoZmxleC1kaXJlY3Rpb24gfHwgZmxleC13cmFwKVxyXG5AbWl4aW4gZmxleC1mbG93KCR2YWx1ZSkge1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtZmxvdywgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG4vLyAyMDA5IC0gYm94LW9yZGluYWwtZ3JvdXAgKGludGVnZXIpXHJcbi8vIDIwMTEgLSBmbGV4LW9yZGVyIChpbnRlZ2VyKVxyXG4vLyAyMDEyIC0gb3JkZXIgKGludGVnZXIpXHJcbkBtaXhpbiBvcmRlcigkaW50OiAwKSB7XHJcbiAgLy8gMjAwOVxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1vcmRpbmFsLWdyb3VwLCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xyXG5cclxuICAvLyAyMDEyXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIob3JkZXIsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XHJcblxyXG4gIC8vIDIwMTEgKElFIDEwKVxyXG4gIC1tcy1mbGV4LW9yZGVyOiAkaW50O1xyXG59XHJcblxyXG4vLyAyMDEyIC0gZmxleC1ncm93IChudW1iZXIpXHJcbkBtaXhpbiBmbGV4LWdyb3coJG51bWJlcjogMCkge1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtZ3JvdywgJG51bWJlciwgd2Via2l0IG1veiBzcGVjKTtcclxuICAtbXMtZmxleC1wb3NpdGl2ZTogJG51bWJlcjtcclxufVxyXG5cclxuLy8gMjAxMiAtIGZsZXgtc2hyaW5rIChudW1iZXIpXHJcbkBtaXhpbiBmbGV4LXNocmluaygkbnVtYmVyOiAxKSB7XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1zaHJpbmssICRudW1iZXIsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbiAgLW1zLWZsZXgtbmVnYXRpdmU6ICRudW1iZXI7XHJcbn1cclxuXHJcbi8vIDIwMTIgLSBmbGV4LWJhc2lzIChudW1iZXIpXHJcbkBtaXhpbiBmbGV4LWJhc2lzKCR3aWR0aDogYXV0bykge1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtYmFzaXMsICR3aWR0aCwgd2Via2l0IG1veiBzcGVjKTtcclxuICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogJHdpZHRoO1xyXG59XHJcblxyXG4vLyAyMDA5IC0gYm94LXBhY2sgKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwganVzdGlmeSlcclxuLy8gMjAxMSAtIGZsZXgtcGFjayAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBqdXN0aWZ5KVxyXG4vLyAyMDEyIC0ganVzdGlmeS1jb250ZW50IChmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBzcGFjZS1iZXR3ZWVuIHwgc3BhY2UtYXJvdW5kKVxyXG5AbWl4aW4ganVzdGlmeS1jb250ZW50KCR2YWx1ZTogZmxleC1zdGFydCkge1xyXG5cclxuICAvLyBBbHQgdmFsdWVzLlxyXG4gICRhbHQtdmFsdWU6ICR2YWx1ZTtcclxuICBAaWYgJHZhbHVlID09IFwiZmxleC1zdGFydFwiIHtcclxuICAgICRhbHQtdmFsdWU6IHN0YXJ0O1xyXG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiZmxleC1lbmRcIiB7XHJcbiAgICAkYWx0LXZhbHVlOiBlbmQ7XHJcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJzcGFjZS1iZXR3ZWVuXCIge1xyXG4gICAgJGFsdC12YWx1ZToganVzdGlmeTtcclxuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcInNwYWNlLWFyb3VuZFwiIHtcclxuICAgICRhbHQtdmFsdWU6IGRpc3RyaWJ1dGU7XHJcbiAgfVxyXG5cclxuICAvLyAyMDA5XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LXBhY2ssICRhbHQtdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XHJcblxyXG4gIC8vIDIwMTJcclxuICBAaW5jbHVkZSBwcmVmaXhlcihqdXN0aWZ5LWNvbnRlbnQsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xyXG5cclxuICAvLyAyMDExIChJRSAxMClcclxuICAtbXMtZmxleC1wYWNrOiAkYWx0LXZhbHVlO1xyXG59XHJcblxyXG4vLyAyMDA5IC0gYm94LWFsaWduIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcclxuLy8gMjAxMSAtIGZsZXgtYWxpZ24gKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxyXG4vLyAyMDEyIC0gYWxpZ24taXRlbXMgKGZsZXgtc3RhcnQgfCBmbGV4LWVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcclxuQG1peGluIGFsaWduLWl0ZW1zKCR2YWx1ZTogc3RyZXRjaCkge1xyXG5cclxuICAkYWx0LXZhbHVlOiAkdmFsdWU7XHJcblxyXG4gIEBpZiAkdmFsdWUgPT0gXCJmbGV4LXN0YXJ0XCIge1xyXG4gICAgJGFsdC12YWx1ZTogc3RhcnQ7XHJcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJmbGV4LWVuZFwiIHtcclxuICAgICRhbHQtdmFsdWU6IGVuZDtcclxuICB9XHJcblxyXG4gIC8vIDIwMDlcclxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtYWxpZ24sICRhbHQtdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XHJcblxyXG4gIC8vIDIwMTJcclxuICBAaW5jbHVkZSBwcmVmaXhlcihhbGlnbi1pdGVtcywgJHZhbHVlLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XHJcblxyXG4gIC8vIDIwMTEgKElFIDEwKVxyXG4gIC1tcy1mbGV4LWFsaWduOiAkYWx0LXZhbHVlO1xyXG59XHJcblxyXG4vLyAyMDExIC0gZmxleC1pdGVtLWFsaWduIChhdXRvIHwgc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXHJcbi8vIDIwMTIgLSBhbGlnbi1zZWxmIChhdXRvIHwgZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxyXG5AbWl4aW4gYWxpZ24tc2VsZigkdmFsdWU6IGF1dG8pIHtcclxuXHJcbiAgJHZhbHVlLTIwMTE6ICR2YWx1ZTtcclxuICBAaWYgJHZhbHVlID09IFwiZmxleC1zdGFydFwiIHtcclxuICAgICR2YWx1ZS0yMDExOiBzdGFydDtcclxuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImZsZXgtZW5kXCIge1xyXG4gICAgJHZhbHVlLTIwMTE6IGVuZDtcclxuICB9XHJcblxyXG4gIC8vIDIwMTJcclxuICBAaW5jbHVkZSBwcmVmaXhlcihhbGlnbi1zZWxmLCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XHJcblxyXG4gIC8vIDIwMTEgKElFIDEwKVxyXG4gIC1tcy1mbGV4LWl0ZW0tYWxpZ246ICR2YWx1ZS0yMDExO1xyXG59XHJcblxyXG4vLyAyMDExIC0gZmxleC1saW5lLXBhY2sgKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwganVzdGlmeSB8IGRpc3RyaWJ1dGUgfCBzdHJldGNoKVxyXG4vLyAyMDEyIC0gYWxpZ24tY29udGVudCAoZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgc3BhY2UtYmV0d2VlbiB8IHNwYWNlLWFyb3VuZCB8IHN0cmV0Y2gpXHJcbkBtaXhpbiBhbGlnbi1jb250ZW50KCR2YWx1ZTogc3RyZXRjaCkge1xyXG5cclxuICAkdmFsdWUtMjAxMTogJHZhbHVlO1xyXG4gIEBpZiAkdmFsdWUgPT0gXCJmbGV4LXN0YXJ0XCIge1xyXG4gICAgJHZhbHVlLTIwMTE6IHN0YXJ0O1xyXG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiZmxleC1lbmRcIiB7XHJcbiAgICAkdmFsdWUtMjAxMTogZW5kO1xyXG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwic3BhY2UtYmV0d2VlblwiIHtcclxuICAgICR2YWx1ZS0yMDExOiBqdXN0aWZ5O1xyXG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwic3BhY2UtYXJvdW5kXCIge1xyXG4gICAgJHZhbHVlLTIwMTE6IGRpc3RyaWJ1dGU7XHJcbiAgfVxyXG5cclxuICAvLyAyMDEyXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYWxpZ24tY29udGVudCwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xyXG5cclxuICAvLyAyMDExIChJRSAxMClcclxuICAtbXMtZmxleC1saW5lLXBhY2s6ICR2YWx1ZS0yMDExO1xyXG59XHJcbiIsIkBtaXhpbiBmb250LWZhY2UoXHJcbiAgJGZvbnQtZmFtaWx5LFxyXG4gICRmaWxlLXBhdGgsXHJcbiAgJHdlaWdodDogbm9ybWFsLFxyXG4gICRzdHlsZTogbm9ybWFsLFxyXG4gICRhc3NldC1waXBlbGluZTogJGFzc2V0LXBpcGVsaW5lLFxyXG4gICRmaWxlLWZvcm1hdHM6IGVvdCB3b2ZmMiB3b2ZmIHR0ZiBzdmcpIHtcclxuXHJcbiAgJGZvbnQtdXJsLXByZWZpeDogZm9udC11cmwtcHJlZml4ZXIoJGFzc2V0LXBpcGVsaW5lKTtcclxuXHJcbiAgQGZvbnQtZmFjZSB7XHJcbiAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5O1xyXG4gICAgZm9udC1zdHlsZTogJHN0eWxlO1xyXG4gICAgZm9udC13ZWlnaHQ6ICR3ZWlnaHQ7XHJcblxyXG4gICAgc3JjOiBmb250LXNvdXJjZS1kZWNsYXJhdGlvbihcclxuICAgICAgJGZvbnQtZmFtaWx5LFxyXG4gICAgICAkZmlsZS1wYXRoLFxyXG4gICAgICAkYXNzZXQtcGlwZWxpbmUsXHJcbiAgICAgICRmaWxlLWZvcm1hdHMsXHJcbiAgICAgICRmb250LXVybC1wcmVmaXhcclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiIsIkBtaXhpbiBmb250LWZlYXR1cmUtc2V0dGluZ3MoJHNldHRpbmdzLi4uKSB7XHJcbiAgQGlmIGxlbmd0aCgkc2V0dGluZ3MpID09IDAgeyAkc2V0dGluZ3M6IG5vbmU7IH1cclxuICBAaW5jbHVkZSBwcmVmaXhlcihmb250LWZlYXR1cmUtc2V0dGluZ3MsICRzZXR0aW5ncywgd2Via2l0IG1veiBtcyBzcGVjKTtcclxufVxyXG4iLCIvLyBIaURQSSBtaXhpbi4gRGVmYXVsdCB2YWx1ZSBzZXQgdG8gMS4zIHRvIHRhcmdldCBHb29nbGUgTmV4dXMgNyAoaHR0cDovL2JqYW5nby5jb20vYXJ0aWNsZXMvbWluLWRldmljZS1waXhlbC1yYXRpby8pXHJcbkBtaXhpbiBoaWRwaSgkcmF0aW86IDEuMykge1xyXG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogJHJhdGlvKSxcclxuICBvbmx5IHNjcmVlbiBhbmQgKG1pbi0tbW96LWRldmljZS1waXhlbC1yYXRpbzogJHJhdGlvKSxcclxuICBvbmx5IHNjcmVlbiBhbmQgKC1vLW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86ICN7JHJhdGlvfS8xKSxcclxuICBvbmx5IHNjcmVlbiBhbmQgKG1pbi1yZXNvbHV0aW9uOiByb3VuZCgkcmF0aW8gKiA5NmRwaSkpLFxyXG4gIG9ubHkgc2NyZWVuIGFuZCAobWluLXJlc29sdXRpb246ICRyYXRpbyAqIDFkcHB4KSB7XHJcbiAgICBAY29udGVudDtcclxuICB9XHJcbn1cclxuIiwiQG1peGluIGh5cGhlbnMoJGh5cGhlbmF0aW9uOiBub25lKSB7XHJcbiAgLy8gbm9uZSB8IG1hbnVhbCB8IGF1dG9cclxuICBAaW5jbHVkZSBwcmVmaXhlcihoeXBoZW5zLCAkaHlwaGVuYXRpb24sIHdlYmtpdCBtb3ogbXMgc3BlYyk7XHJcbn1cclxuIiwiQG1peGluIGltYWdlLXJlbmRlcmluZyAoJG1vZGU6YXV0bykge1xyXG5cclxuICBAaWYgKCRtb2RlID09IGNyaXNwLWVkZ2VzKSB7XHJcbiAgICAtbXMtaW50ZXJwb2xhdGlvbi1tb2RlOiBuZWFyZXN0LW5laWdoYm9yOyAvLyBJRTgrXHJcbiAgICBpbWFnZS1yZW5kZXJpbmc6IC1tb3otY3Jpc3AtZWRnZXM7XHJcbiAgICBpbWFnZS1yZW5kZXJpbmc6IC1vLWNyaXNwLWVkZ2VzO1xyXG4gICAgaW1hZ2UtcmVuZGVyaW5nOiAtd2Via2l0LW9wdGltaXplLWNvbnRyYXN0O1xyXG4gICAgaW1hZ2UtcmVuZGVyaW5nOiBjcmlzcC1lZGdlcztcclxuICB9XHJcblxyXG4gIEBlbHNlIHtcclxuICAgIGltYWdlLXJlbmRlcmluZzogJG1vZGU7XHJcbiAgfVxyXG59XHJcbiIsIi8vIEFkZHMga2V5ZnJhbWVzIGJsb2NrcyBmb3Igc3VwcG9ydGVkIHByZWZpeGVzLCByZW1vdmluZyByZWR1bmRhbnQgcHJlZml4ZXMgaW4gdGhlIGJsb2NrJ3MgY29udGVudFxyXG5AbWl4aW4ga2V5ZnJhbWVzKCRuYW1lKSB7XHJcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3Itd2Via2l0OiAgICAkcHJlZml4LWZvci13ZWJraXQ7XHJcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3ItbW96aWxsYTogICAkcHJlZml4LWZvci1tb3ppbGxhO1xyXG4gICRvcmlnaW5hbC1wcmVmaXgtZm9yLW1pY3Jvc29mdDogJHByZWZpeC1mb3ItbWljcm9zb2Z0O1xyXG4gICRvcmlnaW5hbC1wcmVmaXgtZm9yLW9wZXJhOiAgICAgJHByZWZpeC1mb3Itb3BlcmE7XHJcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3Itc3BlYzogICAgICAkcHJlZml4LWZvci1zcGVjO1xyXG5cclxuICBAaWYgJG9yaWdpbmFsLXByZWZpeC1mb3Itd2Via2l0IHtcclxuICAgIEBpbmNsdWRlIGRpc2FibGUtcHJlZml4LWZvci1hbGwoKTtcclxuICAgICRwcmVmaXgtZm9yLXdlYmtpdDogdHJ1ZSAhZ2xvYmFsO1xyXG4gICAgQC13ZWJraXQta2V5ZnJhbWVzICN7JG5hbWV9IHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAaWYgJG9yaWdpbmFsLXByZWZpeC1mb3ItbW96aWxsYSB7XHJcbiAgICBAaW5jbHVkZSBkaXNhYmxlLXByZWZpeC1mb3ItYWxsKCk7XHJcbiAgICAkcHJlZml4LWZvci1tb3ppbGxhOiB0cnVlICFnbG9iYWw7XHJcbiAgICBALW1vei1rZXlmcmFtZXMgI3skbmFtZX0ge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICRwcmVmaXgtZm9yLXdlYmtpdDogICAgJG9yaWdpbmFsLXByZWZpeC1mb3Itd2Via2l0ICAgICFnbG9iYWw7XHJcbiAgJHByZWZpeC1mb3ItbW96aWxsYTogICAkb3JpZ2luYWwtcHJlZml4LWZvci1tb3ppbGxhICAgIWdsb2JhbDtcclxuICAkcHJlZml4LWZvci1taWNyb3NvZnQ6ICRvcmlnaW5hbC1wcmVmaXgtZm9yLW1pY3Jvc29mdCAhZ2xvYmFsO1xyXG4gICRwcmVmaXgtZm9yLW9wZXJhOiAgICAgJG9yaWdpbmFsLXByZWZpeC1mb3Itb3BlcmEgICAgICFnbG9iYWw7XHJcbiAgJHByZWZpeC1mb3Itc3BlYzogICAgICAkb3JpZ2luYWwtcHJlZml4LWZvci1zcGVjICAgICAgIWdsb2JhbDtcclxuXHJcbiAgQGlmICRvcmlnaW5hbC1wcmVmaXgtZm9yLXNwZWMge1xyXG4gICAgQGtleWZyYW1lcyAjeyRuYW1lfSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCJAbWl4aW4gbGluZWFyLWdyYWRpZW50KCRwb3MsICRnMSwgJGcyOiBudWxsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICRnMzogbnVsbCwgJGc0OiBudWxsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICRnNTogbnVsbCwgJGc2OiBudWxsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICRnNzogbnVsbCwgJGc4OiBudWxsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICRnOTogbnVsbCwgJGcxMDogbnVsbCxcclxuICAgICAgICAgICAgICAgICAgICAgICAkZmFsbGJhY2s6IG51bGwpIHtcclxuICAvLyBEZXRlY3Qgd2hhdCB0eXBlIG9mIHZhbHVlIGV4aXN0cyBpbiAkcG9zXHJcbiAgJHBvcy10eXBlOiB0eXBlLW9mKG50aCgkcG9zLCAxKSk7XHJcbiAgJHBvcy1zcGVjOiBudWxsO1xyXG4gICRwb3MtZGVncmVlOiBudWxsO1xyXG5cclxuICAvLyBJZiAkcG9zIGlzIG1pc3NpbmcgZnJvbSBtaXhpbiwgcmVhc3NpZ24gdmFycyBhbmQgYWRkIGRlZmF1bHQgcG9zaXRpb25cclxuICBAaWYgKCRwb3MtdHlwZSA9PSBjb2xvcikgb3IgKG50aCgkcG9zLCAxKSA9PSBcInRyYW5zcGFyZW50XCIpICB7XHJcbiAgICAkZzEwOiAkZzk7ICRnOTogJGc4OyAkZzg6ICRnNzsgJGc3OiAkZzY7ICRnNjogJGc1O1xyXG4gICAgJGc1OiAkZzQ7ICRnNDogJGczOyAkZzM6ICRnMjsgJGcyOiAkZzE7ICRnMTogJHBvcztcclxuICAgICRwb3M6IG51bGw7XHJcbiAgfVxyXG5cclxuICBAaWYgJHBvcyB7XHJcbiAgICAkcG9zaXRpb25zOiBfbGluZWFyLXBvc2l0aW9ucy1wYXJzZXIoJHBvcyk7XHJcbiAgICAkcG9zLWRlZ3JlZTogbnRoKCRwb3NpdGlvbnMsIDEpO1xyXG4gICAgJHBvcy1zcGVjOiAgIG50aCgkcG9zaXRpb25zLCAyKTtcclxuICB9XHJcblxyXG4gICRmdWxsOiAkZzEsICRnMiwgJGczLCAkZzQsICRnNSwgJGc2LCAkZzcsICRnOCwgJGc5LCAkZzEwO1xyXG5cclxuICAvLyBTZXQgJGcxIGFzIHRoZSBkZWZhdWx0IGZhbGxiYWNrIGNvbG9yXHJcbiAgJGZhbGxiYWNrLWNvbG9yOiBudGgoJGcxLCAxKTtcclxuXHJcbiAgLy8gSWYgJGZhbGxiYWNrIGlzIGEgY29sb3IgdXNlIHRoYXQgY29sb3IgYXMgdGhlIGZhbGxiYWNrIGNvbG9yXHJcbiAgQGlmICh0eXBlLW9mKCRmYWxsYmFjaykgPT0gY29sb3IpIG9yICgkZmFsbGJhY2sgPT0gXCJ0cmFuc3BhcmVudFwiKSB7XHJcbiAgICAkZmFsbGJhY2stY29sb3I6ICRmYWxsYmFjaztcclxuICB9XHJcblxyXG4gIGJhY2tncm91bmQtY29sb3I6ICRmYWxsYmFjay1jb2xvcjtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCgkcG9zLWRlZ3JlZSAkZnVsbCk7IC8vIFNhZmFyaSA1LjErLCBDaHJvbWVcclxuICBiYWNrZ3JvdW5kLWltYWdlOiB1bnF1b3RlKFwibGluZWFyLWdyYWRpZW50KCN7JHBvcy1zcGVjfSN7JGZ1bGx9KVwiKTtcclxufVxyXG4iLCJAbWl4aW4gcGVyc3BlY3RpdmUoJGRlcHRoOiBub25lKSB7XHJcbiAgLy8gbm9uZSB8IDxsZW5ndGg+XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIocGVyc3BlY3RpdmUsICRkZXB0aCwgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIHBlcnNwZWN0aXZlLW9yaWdpbigkdmFsdWU6IDUwJSA1MCUpIHtcclxuICBAaW5jbHVkZSBwcmVmaXhlcihwZXJzcGVjdGl2ZS1vcmlnaW4sICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG4iLCJAbWl4aW4gcGxhY2Vob2xkZXIge1xyXG4gICRwbGFjZWhvbGRlcnM6IFwiOi13ZWJraXQtaW5wdXRcIiBcIjotbW96XCIgXCItbW96XCIgXCItbXMtaW5wdXRcIjtcclxuICBAZWFjaCAkcGxhY2Vob2xkZXIgaW4gJHBsYWNlaG9sZGVycyB7XHJcbiAgICAmOiN7JHBsYWNlaG9sZGVyfS1wbGFjZWhvbGRlciB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIvLyBSZXF1aXJlcyBTYXNzIDMuMStcclxuQG1peGluIHJhZGlhbC1ncmFkaWVudCgkZzEsICRnMixcclxuICAgICAgICAgICAgICAgICAgICAgICAkZzM6IG51bGwsICRnNDogbnVsbCxcclxuICAgICAgICAgICAgICAgICAgICAgICAkZzU6IG51bGwsICRnNjogbnVsbCxcclxuICAgICAgICAgICAgICAgICAgICAgICAkZzc6IG51bGwsICRnODogbnVsbCxcclxuICAgICAgICAgICAgICAgICAgICAgICAkZzk6IG51bGwsICRnMTA6IG51bGwsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgJHBvczogbnVsbCxcclxuICAgICAgICAgICAgICAgICAgICAgICAkc2hhcGUtc2l6ZTogbnVsbCxcclxuICAgICAgICAgICAgICAgICAgICAgICAkZmFsbGJhY2s6IG51bGwpIHtcclxuXHJcbiAgJGRhdGE6IF9yYWRpYWwtYXJnLXBhcnNlcigkZzEsICRnMiwgJHBvcywgJHNoYXBlLXNpemUpO1xyXG4gICRnMTogIG50aCgkZGF0YSwgMSk7XHJcbiAgJGcyOiAgbnRoKCRkYXRhLCAyKTtcclxuICAkcG9zOiBudGgoJGRhdGEsIDMpO1xyXG4gICRzaGFwZS1zaXplOiBudGgoJGRhdGEsIDQpO1xyXG5cclxuICAkZnVsbDogJGcxLCAkZzIsICRnMywgJGc0LCAkZzUsICRnNiwgJGc3LCAkZzgsICRnOSwgJGcxMDtcclxuXHJcbiAgLy8gU3RyaXAgZGVwcmVjYXRlZCBjb3Zlci9jb250YWluIGZvciBzcGVjXHJcbiAgJHNoYXBlLXNpemUtc3BlYzogX3NoYXBlLXNpemUtc3RyaXBwZXIoJHNoYXBlLXNpemUpO1xyXG5cclxuICAvLyBTZXQgJGcxIGFzIHRoZSBkZWZhdWx0IGZhbGxiYWNrIGNvbG9yXHJcbiAgJGZpcnN0LWNvbG9yOiBudGgoJGZ1bGwsIDEpO1xyXG4gICRmYWxsYmFjay1jb2xvcjogbnRoKCRmaXJzdC1jb2xvciwgMSk7XHJcblxyXG4gIEBpZiAodHlwZS1vZigkZmFsbGJhY2spID09IGNvbG9yKSBvciAoJGZhbGxiYWNrID09IFwidHJhbnNwYXJlbnRcIikge1xyXG4gICAgJGZhbGxiYWNrLWNvbG9yOiAkZmFsbGJhY2s7XHJcbiAgfVxyXG5cclxuICAvLyBBZGQgQ29tbWFzIGFuZCBzcGFjZXNcclxuICAkc2hhcGUtc2l6ZTogaWYoJHNoYXBlLXNpemUsIFwiI3skc2hhcGUtc2l6ZX0sIFwiLCBudWxsKTtcclxuICAkcG9zOiAgICAgICAgaWYoJHBvcywgXCIjeyRwb3N9LCBcIiwgbnVsbCk7XHJcbiAgJHBvcy1zcGVjOiAgIGlmKCRwb3MsIFwiYXQgI3skcG9zfVwiLCBudWxsKTtcclxuICAkc2hhcGUtc2l6ZS1zcGVjOiBpZigoJHNoYXBlLXNpemUtc3BlYyAhPSBcIiBcIikgYW5kICgkcG9zID09IG51bGwpLCBcIiN7JHNoYXBlLXNpemUtc3BlY30sIFwiLCBcIiN7JHNoYXBlLXNpemUtc3BlY30gXCIpO1xyXG5cclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAgJGZhbGxiYWNrLWNvbG9yO1xyXG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtcmFkaWFsLWdyYWRpZW50KCN7JHBvc30jeyRzaGFwZS1zaXplfSN7JGZ1bGx9KTtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiByYWRpYWwtZ3JhZGllbnQoI3skc2hhcGUtc2l6ZS1zcGVjfSN7JHBvcy1zcGVjfSN7JGZ1bGx9KTtcclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gT3V0cHV0cyB0aGUgc3BlYyBhbmQgcHJlZml4ZWQgdmVyc2lvbnMgb2YgdGhlIGA6OnNlbGVjdGlvbmAgcHNldWRvLWVsZW1lbnQuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtCb29sfSAkY3VycmVudC1zZWxlY3RvciBbZmFsc2VdXHJcbi8vLyAgIElmIHNldCB0byBgdHJ1ZWAsIGl0IHRha2VzIHRoZSBjdXJyZW50IGVsZW1lbnQgaW50byBjb25zaWRlcmF0aW9uLlxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgQGluY2x1ZGUgc2VsZWN0aW9uKHRydWUpIHtcclxuLy8vICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmJiNTI7XHJcbi8vLyAgICAgfVxyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxyXG4vLy8gICAuZWxlbWVudDo6LW1vei1zZWxlY3Rpb24ge1xyXG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmJiNTI7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyAgIC5lbGVtZW50OjpzZWxlY3Rpb24ge1xyXG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmJiNTI7XHJcbi8vLyAgIH1cclxuXHJcbkBtaXhpbiBzZWxlY3Rpb24oJGN1cnJlbnQtc2VsZWN0b3I6IGZhbHNlKSB7XHJcbiAgQGlmICRjdXJyZW50LXNlbGVjdG9yIHtcclxuICAgICY6Oi1tb3otc2VsZWN0aW9uIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgJjo6c2VsZWN0aW9uIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfSBAZWxzZSB7XHJcbiAgICA6Oi1tb3otc2VsZWN0aW9uIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgOjpzZWxlY3Rpb24ge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiQG1peGluIHRleHQtZGVjb3JhdGlvbigkdmFsdWUpIHtcclxuLy8gPHRleHQtZGVjb3JhdGlvbi1saW5lPiB8fCA8dGV4dC1kZWNvcmF0aW9uLXN0eWxlPiB8fCA8dGV4dC1kZWNvcmF0aW9uLWNvbG9yPlxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKHRleHQtZGVjb3JhdGlvbiwgJHZhbHVlLCBtb3opO1xyXG59XHJcblxyXG5AbWl4aW4gdGV4dC1kZWNvcmF0aW9uLWxpbmUoJGxpbmU6IG5vbmUpIHtcclxuLy8gbm9uZSB8fCB1bmRlcmxpbmUgfHwgb3ZlcmxpbmUgfHwgbGluZS10aHJvdWdoXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIodGV4dC1kZWNvcmF0aW9uLWxpbmUsICRsaW5lLCBtb3opO1xyXG59XHJcblxyXG5AbWl4aW4gdGV4dC1kZWNvcmF0aW9uLXN0eWxlKCRzdHlsZTogc29saWQpIHtcclxuLy8gc29saWQgfHwgZG91YmxlIHx8IGRvdHRlZCB8fCBkYXNoZWQgfHwgd2F2eVxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKHRleHQtZGVjb3JhdGlvbi1zdHlsZSwgJHN0eWxlLCBtb3ogd2Via2l0KTtcclxufVxyXG5cclxuQG1peGluIHRleHQtZGVjb3JhdGlvbi1jb2xvcigkY29sb3I6IGN1cnJlbnRDb2xvcikge1xyXG4vLyBjdXJyZW50Q29sb3IgfHwgPGNvbG9yPlxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKHRleHQtZGVjb3JhdGlvbi1jb2xvciwgJGNvbG9yLCBtb3opO1xyXG59XHJcbiIsIkBtaXhpbiB0cmFuc2Zvcm0oJHByb3BlcnR5OiBub25lKSB7XHJcbiAgLy8gbm9uZSB8IDx0cmFuc2Zvcm0tZnVuY3Rpb24+XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNmb3JtLCAkcHJvcGVydHksIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIHRyYW5zZm9ybS1vcmlnaW4oJGF4ZXM6IDUwJSkge1xyXG4gIC8vIHgtYXhpcyAtIGxlZnQgfCBjZW50ZXIgfCByaWdodCAgfCBsZW5ndGggfCAlXHJcbiAgLy8geS1heGlzIC0gdG9wICB8IGNlbnRlciB8IGJvdHRvbSB8IGxlbmd0aCB8ICVcclxuICAvLyB6LWF4aXMgLSAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNmb3JtLW9yaWdpbiwgJGF4ZXMsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIHRyYW5zZm9ybS1zdHlsZSgkc3R5bGU6IGZsYXQpIHtcclxuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2Zvcm0tc3R5bGUsICRzdHlsZSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xyXG59XHJcbiIsIi8vIFNob3J0aGFuZCBtaXhpbi4gU3VwcG9ydHMgbXVsdGlwbGUgcGFyZW50aGVzZXMtZGVsaW1pbmF0ZWQgdmFsdWVzIGZvciBlYWNoIHZhcmlhYmxlLlxyXG4vLyBFeGFtcGxlOiBAaW5jbHVkZSB0cmFuc2l0aW9uIChhbGwgMnMgZWFzZS1pbi1vdXQpO1xyXG4vLyAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uIChvcGFjaXR5IDFzIGVhc2UtaW4gMnMsIHdpZHRoIDJzIGVhc2Utb3V0KTtcclxuLy8gICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1wcm9wZXJ0eSAodHJhbnNmb3JtLCBvcGFjaXR5KTtcclxuXHJcbkBtaXhpbiB0cmFuc2l0aW9uKCRwcm9wZXJ0aWVzLi4uKSB7XHJcbiAgLy8gRml4IGZvciB2ZW5kb3ItcHJlZml4IHRyYW5zZm9ybSBwcm9wZXJ0eVxyXG4gICRuZWVkcy1wcmVmaXhlczogZmFsc2U7XHJcbiAgJHdlYmtpdDogKCk7XHJcbiAgJG1vejogKCk7XHJcbiAgJHNwZWM6ICgpO1xyXG5cclxuICAvLyBDcmVhdGUgbGlzdHMgZm9yIHZlbmRvci1wcmVmaXhlZCB0cmFuc2Zvcm1cclxuICBAZWFjaCAkbGlzdCBpbiAkcHJvcGVydGllcyB7XHJcbiAgICBAaWYgbnRoKCRsaXN0LCAxKSA9PSBcInRyYW5zZm9ybVwiIHtcclxuICAgICAgJG5lZWRzLXByZWZpeGVzOiB0cnVlO1xyXG4gICAgICAkbGlzdDE6IC13ZWJraXQtdHJhbnNmb3JtO1xyXG4gICAgICAkbGlzdDI6IC1tb3otdHJhbnNmb3JtO1xyXG4gICAgICAkbGlzdDM6ICgpO1xyXG5cclxuICAgICAgQGVhY2ggJHZhciBpbiAkbGlzdCB7XHJcbiAgICAgICAgJGxpc3QzOiBqb2luKCRsaXN0MywgJHZhcik7XHJcblxyXG4gICAgICAgIEBpZiAkdmFyICE9IFwidHJhbnNmb3JtXCIge1xyXG4gICAgICAgICAgJGxpc3QxOiBqb2luKCRsaXN0MSwgJHZhcik7XHJcbiAgICAgICAgICAkbGlzdDI6IGpvaW4oJGxpc3QyLCAkdmFyKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICR3ZWJraXQ6IGFwcGVuZCgkd2Via2l0LCAkbGlzdDEpO1xyXG4gICAgICAkbW96OiAgICBhcHBlbmQoJG1veiwgICAgJGxpc3QyKTtcclxuICAgICAgJHNwZWM6ICAgYXBwZW5kKCRzcGVjLCAgICRsaXN0Myk7XHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgJHdlYmtpdDogYXBwZW5kKCR3ZWJraXQsICRsaXN0LCBjb21tYSk7XHJcbiAgICAgICRtb3o6ICAgIGFwcGVuZCgkbW96LCAgICAkbGlzdCwgY29tbWEpO1xyXG4gICAgICAkc3BlYzogICBhcHBlbmQoJHNwZWMsICAgJGxpc3QsIGNvbW1hKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBpZiAkbmVlZHMtcHJlZml4ZXMge1xyXG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiAkd2Via2l0O1xyXG4gICAgICAgLW1vei10cmFuc2l0aW9uOiAkbW96O1xyXG4gICAgICAgICAgICB0cmFuc2l0aW9uOiAkc3BlYztcclxuICB9IEBlbHNlIHtcclxuICAgIEBpZiBsZW5ndGgoJHByb3BlcnRpZXMpID49IDEge1xyXG4gICAgICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLCAkcHJvcGVydGllcywgd2Via2l0IG1veiBzcGVjKTtcclxuICAgIH0gQGVsc2Uge1xyXG4gICAgICAkcHJvcGVydGllczogYWxsIDAuMTVzIGVhc2Utb3V0IDBzO1xyXG4gICAgICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLCAkcHJvcGVydGllcywgd2Via2l0IG1veiBzcGVjKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiB0cmFuc2l0aW9uLXByb3BlcnR5KCRwcm9wZXJ0aWVzLi4uKSB7XHJcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCRwcm9wZXJ0aWVzLCBcIndlYmtpdFwiKTtcclxuICAgICAtbW96LXRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXMoJHByb3BlcnRpZXMsIFwibW96XCIpO1xyXG4gICAgICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygkcHJvcGVydGllcywgZmFsc2UpO1xyXG59XHJcblxyXG5AbWl4aW4gdHJhbnNpdGlvbi1kdXJhdGlvbigkdGltZXMuLi4pIHtcclxuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLWR1cmF0aW9uLCAkdGltZXMsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbigkbW90aW9ucy4uLikge1xyXG4gIC8vIGVhc2UgfCBsaW5lYXIgfCBlYXNlLWluIHwgZWFzZS1vdXQgfCBlYXNlLWluLW91dCB8IGN1YmljLWJlemllcigpXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24sICRtb3Rpb25zLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gdHJhbnNpdGlvbi1kZWxheSgkdGltZXMuLi4pIHtcclxuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLWRlbGF5LCAkdGltZXMsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuIiwiQG1peGluIHVzZXItc2VsZWN0KCR2YWx1ZTogbm9uZSkge1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKHVzZXItc2VsZWN0LCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgc3BlYyk7XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciB0YXJnZXRpbmcgYGJvcmRlci1jb2xvcmAgb24gc3BlY2lmaWMgc2lkZXMgb2YgYSBib3guIFVzZSBhIGBudWxsYCB2YWx1ZSB0byDigJxza2lw4oCdIGEgc2lkZS5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICR2YWxzXHJcbi8vLyAgIExpc3Qgb2YgYXJndW1lbnRzXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBAaW5jbHVkZSBib3JkZXItY29sb3IoI2E2MGI1NSAjNzZjZDljIG51bGwgI2U4YWUxYSk7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBib3JkZXItbGVmdC1jb2xvcjogI2U4YWUxYTtcclxuLy8vICAgICBib3JkZXItcmlnaHQtY29sb3I6ICM3NmNkOWM7XHJcbi8vLyAgICAgYm9yZGVyLXRvcC1jb2xvcjogI2E2MGI1NTtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEByZXF1aXJlIHttaXhpbn0gZGlyZWN0aW9uYWwtcHJvcGVydHlcclxuLy8vXHJcbi8vLyBAb3V0cHV0IGBib3JkZXItY29sb3JgXHJcblxyXG5AbWl4aW4gYm9yZGVyLWNvbG9yKCR2YWxzLi4uKSB7XHJcbiAgQGluY2x1ZGUgZGlyZWN0aW9uYWwtcHJvcGVydHkoYm9yZGVyLCBjb2xvciwgJHZhbHMuLi4pO1xyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3IgdGFyZ2V0aW5nIGBib3JkZXItcmFkaXVzYCBvbiBib3RoIGNvcm5lcnMgb24gdGhlIHNpZGUgb2YgYSBib3guXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRyYWRpaVxyXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50c1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAuZWxlbWVudC1vbmUge1xyXG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci10b3AtcmFkaXVzKDVweCk7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyAgIC5lbGVtZW50LXR3byB7XHJcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLWxlZnQtcmFkaXVzKDNweCk7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC5lbGVtZW50LW9uZSB7XHJcbi8vLyAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNXB4O1xyXG4vLy8gICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA1cHg7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyAgIC5lbGVtZW50LXR3byB7XHJcbi8vLyAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogM3B4O1xyXG4vLy8gICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDNweDtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBvdXRwdXQgYGJvcmRlci1yYWRpdXNgXHJcblxyXG5AbWl4aW4gYm9yZGVyLXRvcC1yYWRpdXMoJHJhZGlpKSB7XHJcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJHJhZGlpO1xyXG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkcmFkaWk7XHJcbn1cclxuXHJcbkBtaXhpbiBib3JkZXItcmlnaHQtcmFkaXVzKCRyYWRpaSkge1xyXG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkcmFkaWk7XHJcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRyYWRpaTtcclxufVxyXG5cclxuQG1peGluIGJvcmRlci1ib3R0b20tcmFkaXVzKCRyYWRpaSkge1xyXG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRyYWRpaTtcclxuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogJHJhZGlpO1xyXG59XHJcblxyXG5AbWl4aW4gYm9yZGVyLWxlZnQtcmFkaXVzKCRyYWRpaSkge1xyXG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRyYWRpaTtcclxuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkcmFkaWk7XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciB0YXJnZXRpbmcgYGJvcmRlci1zdHlsZWAgb24gc3BlY2lmaWMgc2lkZXMgb2YgYSBib3guIFVzZSBhIGBudWxsYCB2YWx1ZSB0byDigJxza2lw4oCdIGEgc2lkZS5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICR2YWxzXHJcbi8vLyAgIExpc3Qgb2YgYXJndW1lbnRzXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBAaW5jbHVkZSBib3JkZXItc3R5bGUoZGFzaGVkIG51bGwgc29saWQpO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XHJcbi8vLyAgICAgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQHJlcXVpcmUge21peGlufSBkaXJlY3Rpb25hbC1wcm9wZXJ0eVxyXG4vLy9cclxuLy8vIEBvdXRwdXQgYGJvcmRlci1zdHlsZWBcclxuXHJcbkBtaXhpbiBib3JkZXItc3R5bGUoJHZhbHMuLi4pIHtcclxuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShib3JkZXIsIHN0eWxlLCAkdmFscy4uLik7XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciB0YXJnZXRpbmcgYGJvcmRlci13aWR0aGAgb24gc3BlY2lmaWMgc2lkZXMgb2YgYSBib3guIFVzZSBhIGBudWxsYCB2YWx1ZSB0byDigJxza2lw4oCdIGEgc2lkZS5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICR2YWxzXHJcbi8vLyAgIExpc3Qgb2YgYXJndW1lbnRzXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBAaW5jbHVkZSBib3JkZXItd2lkdGgoMWVtIG51bGwgMjBweCk7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBib3JkZXItYm90dG9tLXdpZHRoOiAyMHB4O1xyXG4vLy8gICAgIGJvcmRlci10b3Atd2lkdGg6IDFlbTtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEByZXF1aXJlIHttaXhpbn0gZGlyZWN0aW9uYWwtcHJvcGVydHlcclxuLy8vXHJcbi8vLyBAb3V0cHV0IGBib3JkZXItd2lkdGhgXHJcblxyXG5AbWl4aW4gYm9yZGVyLXdpZHRoKCR2YWxzLi4uKSB7XHJcbiAgQGluY2x1ZGUgZGlyZWN0aW9uYWwtcHJvcGVydHkoYm9yZGVyLCB3aWR0aCwgJHZhbHMuLi4pO1xyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBHZW5lcmF0ZXMgdmFyaWFibGVzIGZvciBhbGwgYnV0dG9ucy4gUGxlYXNlIG5vdGUgdGhhdCB5b3UgbXVzdCB1c2UgaW50ZXJwb2xhdGlvbiBvbiB0aGUgdmFyaWFibGU6IGAjeyRhbGwtYnV0dG9uc31gLlxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAjeyRhbGwtYnV0dG9uc30ge1xyXG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICNmMDA7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyAgICN7JGFsbC1idXR0b25zLWZvY3VzfSxcclxuLy8vICAgI3skYWxsLWJ1dHRvbnMtaG92ZXJ9IHtcclxuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGYwO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gICAjeyRhbGwtYnV0dG9ucy1hY3RpdmV9IHtcclxuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBmO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxyXG4vLy8gICBidXR0b24sXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJidXR0b25cIl0sXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJyZXNldFwiXSxcclxuLy8vICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XHJcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YwMDtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vICAgYnV0dG9uOmZvY3VzLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdOmZvY3VzLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwicmVzZXRcIl06Zm9jdXMsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJzdWJtaXRcIl06Zm9jdXMsXHJcbi8vLyAgIGJ1dHRvbjpob3ZlcixcclxuLy8vICAgaW5wdXRbdHlwZT1cImJ1dHRvblwiXTpob3ZlcixcclxuLy8vICAgaW5wdXRbdHlwZT1cInJlc2V0XCJdOmhvdmVyLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwic3VibWl0XCJdOmhvdmVyIHtcclxuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGYwO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gICBidXR0b246YWN0aXZlLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdOmFjdGl2ZSxcclxuLy8vICAgaW5wdXRbdHlwZT1cInJlc2V0XCJdOmFjdGl2ZSxcclxuLy8vICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXTphY3RpdmUge1xyXG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICMwMGY7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAcmVxdWlyZSBhc3NpZ24taW5wdXRzXHJcbi8vL1xyXG4vLy8gQHR5cGUgTGlzdFxyXG4vLy9cclxuLy8vIEB0b2RvIFJlbW92ZSBkb3VibGUgYXNzaWduZWQgdmFyaWFibGVzIChMaW5lcyA1OeKAkzYyKSBpbiB2NS4wLjBcclxuXHJcbiRidXR0b25zLWxpc3Q6ICdidXR0b24nLFxyXG4gICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cImJ1dHRvblwiXScsXHJcbiAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwicmVzZXRcIl0nLFxyXG4gICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSc7XHJcblxyXG4kYWxsLWJ1dHRvbnM6ICAgICAgICBhc3NpZ24taW5wdXRzKCRidXR0b25zLWxpc3QpO1xyXG4kYWxsLWJ1dHRvbnMtYWN0aXZlOiBhc3NpZ24taW5wdXRzKCRidXR0b25zLWxpc3QsIGFjdGl2ZSk7XHJcbiRhbGwtYnV0dG9ucy1mb2N1czogIGFzc2lnbi1pbnB1dHMoJGJ1dHRvbnMtbGlzdCwgZm9jdXMpO1xyXG4kYWxsLWJ1dHRvbnMtaG92ZXI6ICBhc3NpZ24taW5wdXRzKCRidXR0b25zLWxpc3QsIGhvdmVyKTtcclxuXHJcbiRhbGwtYnV0dG9uLWlucHV0czogICAgICAgICRhbGwtYnV0dG9ucztcclxuJGFsbC1idXR0b24taW5wdXRzLWFjdGl2ZTogJGFsbC1idXR0b25zLWFjdGl2ZTtcclxuJGFsbC1idXR0b24taW5wdXRzLWZvY3VzOiAgJGFsbC1idXR0b25zLWZvY3VzO1xyXG4kYWxsLWJ1dHRvbi1pbnB1dHMtaG92ZXI6ICAkYWxsLWJ1dHRvbnMtaG92ZXI7XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBQcm92aWRlcyBhbiBlYXN5IHdheSB0byBpbmNsdWRlIGEgY2xlYXJmaXggZm9yIGNvbnRhaW5pbmcgZmxvYXRzLlxyXG4vLy9cclxuLy8vIEBsaW5rIGh0dHA6Ly9jc3Ntb2pvLmNvbS9sYXRlc3RfbmV3X2NsZWFyZml4X3NvX2Zhci9cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIEBpbmNsdWRlIGNsZWFyZml4O1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxyXG4vLy8gICAuZWxlbWVudDo6YWZ0ZXIge1xyXG4vLy8gICAgIGNsZWFyOiBib3RoO1xyXG4vLy8gICAgIGNvbnRlbnQ6IFwiXCI7XHJcbi8vLyAgICAgZGlzcGxheTogdGFibGU7XHJcbi8vLyAgIH1cclxuXHJcbkBtaXhpbiBjbGVhcmZpeCB7XHJcbiAgJjo6YWZ0ZXIge1xyXG4gICAgY2xlYXI6IGJvdGg7XHJcbiAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgZGlzcGxheTogdGFibGU7XHJcbiAgfVxyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBUcnVuY2F0ZXMgdGV4dCBhbmQgYWRkcyBhbiBlbGxpcHNpcyB0byByZXByZXNlbnQgb3ZlcmZsb3cuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3aWR0aCBbMTAwJV1cclxuLy8vICAgTWF4LXdpZHRoIGZvciB0aGUgc3RyaW5nIHRvIHJlc3BlY3QgYmVmb3JlIGJlaW5nIHRydW5jYXRlZFxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgQGluY2x1ZGUgZWxsaXBzaXM7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbi8vLyAgICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4vLy8gICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbi8vLyAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XHJcbi8vLyAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuLy8vICAgICB3b3JkLXdyYXA6IG5vcm1hbDtcclxuLy8vICAgfVxyXG5cclxuQG1peGluIGVsbGlwc2lzKCR3aWR0aDogMTAwJSkge1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICBtYXgtd2lkdGg6ICR3aWR0aDtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xyXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgd29yZC13cmFwOiBub3JtYWw7XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIEdlb3JnaWEgZm9udCBzdGFjay5cclxuLy8vXHJcbi8vLyBAdHlwZSBMaXN0XHJcblxyXG4kZ2VvcmdpYTogXCJHZW9yZ2lhXCIsIFwiQ2FtYnJpYVwiLCBcIlRpbWVzIE5ldyBSb21hblwiLCBcIlRpbWVzXCIsIHNlcmlmO1xyXG5cclxuLy8vIEhlbHZldGljYSBmb250IHN0YWNrLlxyXG4vLy9cclxuLy8vIEB0eXBlIExpc3RcclxuXHJcbiRoZWx2ZXRpY2E6IFwiSGVsdmV0aWNhIE5ldWVcIiwgXCJIZWx2ZXRpY2FcIiwgXCJSb2JvdG9cIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xyXG5cclxuLy8vIEx1Y2lkYSBHcmFuZGUgZm9udCBzdGFjay5cclxuLy8vXHJcbi8vLyBAdHlwZSBMaXN0XHJcblxyXG4kbHVjaWRhLWdyYW5kZTogXCJMdWNpZGEgR3JhbmRlXCIsIFwiVGFob21hXCIsIFwiVmVyZGFuYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XHJcblxyXG4vLy8gTW9ub3NwYWNlIGZvbnQgc3RhY2suXHJcbi8vL1xyXG4vLy8gQHR5cGUgTGlzdFxyXG5cclxuJG1vbm9zcGFjZTogXCJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm9cIiwgXCJDb25zb2xhc1wiLCBcIkNvdXJpZXJcIiwgbW9ub3NwYWNlO1xyXG5cclxuLy8vIFZlcmRhbmEgZm9udCBzdGFjay5cclxuLy8vXHJcbi8vLyBAdHlwZSBMaXN0XHJcblxyXG4kdmVyZGFuYTogXCJWZXJkYW5hXCIsIFwiR2VuZXZhXCIsIHNhbnMtc2VyaWY7XHJcbiIsIi8vLyBIaWRlcyB0aGUgdGV4dCBpbiBhbiBlbGVtZW50LCBjb21tb25seSB1c2VkIHRvIHNob3cgYW4gaW1hZ2UuIFNvbWUgZWxlbWVudHMgd2lsbCBuZWVkIGJsb2NrLWxldmVsIHN0eWxlcyBhcHBsaWVkLlxyXG4vLy9cclxuLy8vIEBsaW5rIGh0dHA6Ly96ZWxkbWFuLmNvbS8yMDEyLzAzLzAxL3JlcGxhY2luZy10aGUtOTk5OXB4LWhhY2stbmV3LWltYWdlLXJlcGxhY2VtZW50XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBAaW5jbHVkZSBoaWRlLXRleHQ7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4vLy8gICAgIHRleHQtaW5kZW50OiAxMDElO1xyXG4vLy8gICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAdG9kbyBSZW1vdmUgaGVpZ2h0IGFyZ3VtZW50IGluIHY1LjAuMFxyXG5cclxuQG1peGluIGhpZGUtdGV4dCgkaGVpZ2h0OiBudWxsKSB7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICB0ZXh0LWluZGVudDogMTAxJTtcclxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG5cclxuICBAaWYgJGhlaWdodCB7XHJcbiAgICBAd2FybiBcIlRoZSBgaGlkZS10ZXh0YCBtaXhpbiBoYXMgY2hhbmdlZCBhbmQgbm8gbG9uZ2VyIHJlcXVpcmVzIGEgaGVpZ2h0LiBUaGUgaGVpZ2h0IGFyZ3VtZW50IHdpbGwgbm8gbG9uZ2VyIGJlIGFjY2VwdGVkIGluIHY1LjAuMFwiO1xyXG4gIH1cclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgbWFyZ2luYCBvbiBzcGVjaWZpYyBzaWRlcyBvZiBhIGJveC4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJHZhbHNcclxuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIEBpbmNsdWRlIG1hcmdpbihudWxsIDEwcHggM2VtIDIwdmgpO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgbWFyZ2luLWJvdHRvbTogM2VtO1xyXG4vLy8gICAgIG1hcmdpbi1sZWZ0OiAyMHZoO1xyXG4vLy8gICAgIG1hcmdpbi1yaWdodDogMTBweDtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEByZXF1aXJlIHttaXhpbn0gZGlyZWN0aW9uYWwtcHJvcGVydHlcclxuLy8vXHJcbi8vLyBAb3V0cHV0IGBtYXJnaW5gXHJcblxyXG5AbWl4aW4gbWFyZ2luKCR2YWxzLi4uKSB7XHJcbiAgQGluY2x1ZGUgZGlyZWN0aW9uYWwtcHJvcGVydHkobWFyZ2luLCBmYWxzZSwgJHZhbHMuLi4pO1xyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3IgdGFyZ2V0aW5nIGBwYWRkaW5nYCBvbiBzcGVjaWZpYyBzaWRlcyBvZiBhIGJveC4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJHZhbHNcclxuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIEBpbmNsdWRlIHBhZGRpbmcoMTJ2aCBudWxsIDEwcHggNSUpO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgcGFkZGluZy1ib3R0b206IDEwcHg7XHJcbi8vLyAgICAgcGFkZGluZy1sZWZ0OiA1JTtcclxuLy8vICAgICBwYWRkaW5nLXRvcDogMTJ2aDtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEByZXF1aXJlIHttaXhpbn0gZGlyZWN0aW9uYWwtcHJvcGVydHlcclxuLy8vXHJcbi8vLyBAb3V0cHV0IGBwYWRkaW5nYFxyXG5cclxuQG1peGluIHBhZGRpbmcoJHZhbHMuLi4pIHtcclxuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShwYWRkaW5nLCBmYWxzZSwgJHZhbHMuLi4pO1xyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3Igc2V0dGluZyBhbiBlbGVtZW504oCZcyBwb3NpdGlvbi4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7UG9zaXRpb259ICRwb3NpdGlvbiBbcmVsYXRpdmVdXHJcbi8vLyAgIEEgQ1NTIHBvc2l0aW9uIHZhbHVlXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkY29vcmRpbmF0ZXMgW251bGwgbnVsbCBudWxsIG51bGxdXHJcbi8vLyAgIExpc3Qgb2YgdmFsdWVzIHRoYXQgY29ycmVzcG9uZCB0byB0aGUgNC12YWx1ZSBzeW50YXggZm9yIHRoZSBlZGdlcyBvZiBhIGJveFxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDAgbnVsbCBudWxsIDEwZW0pO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgbGVmdDogMTBlbTtcclxuLy8vICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbi8vLyAgICAgdG9wOiAwO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBpcy1sZW5ndGhcclxuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gdW5wYWNrXHJcblxyXG5AbWl4aW4gcG9zaXRpb24oJHBvc2l0aW9uOiByZWxhdGl2ZSwgJGNvb3JkaW5hdGVzOiBudWxsIG51bGwgbnVsbCBudWxsKSB7XHJcbiAgQGlmIHR5cGUtb2YoJHBvc2l0aW9uKSA9PSBsaXN0IHtcclxuICAgICRjb29yZGluYXRlczogJHBvc2l0aW9uO1xyXG4gICAgJHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICB9XHJcblxyXG4gICRjb29yZGluYXRlczogdW5wYWNrKCRjb29yZGluYXRlcyk7XHJcblxyXG4gICRvZmZzZXRzOiAoXHJcbiAgICB0b3A6ICAgIG50aCgkY29vcmRpbmF0ZXMsIDEpLFxyXG4gICAgcmlnaHQ6ICBudGgoJGNvb3JkaW5hdGVzLCAyKSxcclxuICAgIGJvdHRvbTogbnRoKCRjb29yZGluYXRlcywgMyksXHJcbiAgICBsZWZ0OiAgIG50aCgkY29vcmRpbmF0ZXMsIDQpXHJcbiAgKTtcclxuXHJcbiAgcG9zaXRpb246ICRwb3NpdGlvbjtcclxuXHJcbiAgQGVhY2ggJG9mZnNldCwgJHZhbHVlIGluICRvZmZzZXRzIHtcclxuICAgIEBpZiBpcy1sZW5ndGgoJHZhbHVlKSB7XHJcbiAgICAgICN7JG9mZnNldH06ICR2YWx1ZTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIEEgbWl4aW4gZm9yIGdlbmVyYXRpbmcgdmVuZG9yIHByZWZpeGVzIG9uIG5vbi1zdGFuZGFyZGl6ZWQgcHJvcGVydGllcy5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHByb3BlcnR5XHJcbi8vLyAgIFByb3BlcnR5IHRvIHByZWZpeFxyXG4vLy9cclxuLy8vIEBwYXJhbSB7Kn0gJHZhbHVlXHJcbi8vLyAgIFZhbHVlIHRvIHVzZVxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TGlzdH0gJHByZWZpeGVzXHJcbi8vLyAgIFByZWZpeGVzIHRvIGRlZmluZVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgQGluY2x1ZGUgcHJlZml4ZXIoYm9yZGVyLXJhZGl1cywgMTBweCwgd2Via2l0IG1zIHNwZWMpO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAxMHB4O1xyXG4vLy8gICAgIC1tb3otYm9yZGVyLXJhZGl1czogMTBweDtcclxuLy8vICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQHJlcXVpcmUge3ZhcmlhYmxlfSAkcHJlZml4LWZvci13ZWJraXRcclxuLy8vIEByZXF1aXJlIHt2YXJpYWJsZX0gJHByZWZpeC1mb3ItbW96aWxsYVxyXG4vLy8gQHJlcXVpcmUge3ZhcmlhYmxlfSAkcHJlZml4LWZvci1taWNyb3NvZnRcclxuLy8vIEByZXF1aXJlIHt2YXJpYWJsZX0gJHByZWZpeC1mb3Itb3BlcmFcclxuLy8vIEByZXF1aXJlIHt2YXJpYWJsZX0gJHByZWZpeC1mb3Itc3BlY1xyXG5cclxuQG1peGluIHByZWZpeGVyKCRwcm9wZXJ0eSwgJHZhbHVlLCAkcHJlZml4ZXMpIHtcclxuICBAZWFjaCAkcHJlZml4IGluICRwcmVmaXhlcyB7XHJcbiAgICBAaWYgJHByZWZpeCA9PSB3ZWJraXQge1xyXG4gICAgICBAaWYgJHByZWZpeC1mb3Itd2Via2l0IHtcclxuICAgICAgICAtd2Via2l0LSN7JHByb3BlcnR5fTogJHZhbHVlO1xyXG4gICAgICB9XHJcbiAgICB9IEBlbHNlIGlmICRwcmVmaXggPT0gbW96IHtcclxuICAgICAgQGlmICRwcmVmaXgtZm9yLW1vemlsbGEge1xyXG4gICAgICAgIC1tb3otI3skcHJvcGVydHl9OiAkdmFsdWU7XHJcbiAgICAgIH1cclxuICAgIH0gQGVsc2UgaWYgJHByZWZpeCA9PSBtcyB7XHJcbiAgICAgIEBpZiAkcHJlZml4LWZvci1taWNyb3NvZnQge1xyXG4gICAgICAgIC1tcy0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcclxuICAgICAgfVxyXG4gICAgfSBAZWxzZSBpZiAkcHJlZml4ID09IG8ge1xyXG4gICAgICBAaWYgJHByZWZpeC1mb3Itb3BlcmEge1xyXG4gICAgICAgIC1vLSN7JHByb3BlcnR5fTogJHZhbHVlO1xyXG4gICAgICB9XHJcbiAgICB9IEBlbHNlIGlmICRwcmVmaXggPT0gc3BlYyB7XHJcbiAgICAgIEBpZiAkcHJlZml4LWZvci1zcGVjIHtcclxuICAgICAgICAjeyRwcm9wZXJ0eX06ICR2YWx1ZTtcclxuICAgICAgfVxyXG4gICAgfSBAZWxzZSAge1xyXG4gICAgICBAd2FybiBcIlVucmVjb2duaXplZCBwcmVmaXg6ICN7JHByZWZpeH1cIjtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBkaXNhYmxlLXByZWZpeC1mb3ItYWxsKCkge1xyXG4gICRwcmVmaXgtZm9yLXdlYmtpdDogICAgZmFsc2UgIWdsb2JhbDtcclxuICAkcHJlZml4LWZvci1tb3ppbGxhOiAgIGZhbHNlICFnbG9iYWw7XHJcbiAgJHByZWZpeC1mb3ItbWljcm9zb2Z0OiBmYWxzZSAhZ2xvYmFsO1xyXG4gICRwcmVmaXgtZm9yLW9wZXJhOiAgICAgZmFsc2UgIWdsb2JhbDtcclxuICAkcHJlZml4LWZvci1zcGVjOiAgICAgIGZhbHNlICFnbG9iYWw7XHJcbn1cclxuIiwiQG1peGluIHJldGluYS1pbWFnZSgkZmlsZW5hbWUsICRiYWNrZ3JvdW5kLXNpemUsICRleHRlbnNpb246IHBuZywgJHJldGluYS1maWxlbmFtZTogbnVsbCwgJHJldGluYS1zdWZmaXg6IF8yeCwgJGFzc2V0LXBpcGVsaW5lOiAkYXNzZXQtcGlwZWxpbmUpIHtcclxuICBAaWYgJGFzc2V0LXBpcGVsaW5lIHtcclxuICAgIGJhY2tncm91bmQtaW1hZ2U6IGltYWdlLXVybChcIiN7JGZpbGVuYW1lfS4jeyRleHRlbnNpb259XCIpO1xyXG4gIH0gQGVsc2Uge1xyXG4gICAgYmFja2dyb3VuZC1pbWFnZTogICAgICAgdXJsKFwiI3skZmlsZW5hbWV9LiN7JGV4dGVuc2lvbn1cIik7XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBoaWRwaSB7XHJcbiAgICBAaWYgJGFzc2V0LXBpcGVsaW5lIHtcclxuICAgICAgQGlmICRyZXRpbmEtZmlsZW5hbWUge1xyXG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGltYWdlLXVybChcIiN7JHJldGluYS1maWxlbmFtZX0uI3skZXh0ZW5zaW9ufVwiKTtcclxuICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogaW1hZ2UtdXJsKFwiI3skZmlsZW5hbWV9I3skcmV0aW5hLXN1ZmZpeH0uI3skZXh0ZW5zaW9ufVwiKTtcclxuICAgICAgfVxyXG4gICAgfSBAZWxzZSB7XHJcbiAgICAgIEBpZiAkcmV0aW5hLWZpbGVuYW1lIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIjeyRyZXRpbmEtZmlsZW5hbWV9LiN7JGV4dGVuc2lvbn1cIik7XHJcbiAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIiN7JGZpbGVuYW1lfSN7JHJldGluYS1zdWZmaXh9LiN7JGV4dGVuc2lvbn1cIik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBiYWNrZ3JvdW5kLXNpemU6ICRiYWNrZ3JvdW5kLXNpemU7XHJcbiAgfVxyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBTZXRzIHRoZSBgd2lkdGhgIGFuZCBgaGVpZ2h0YCBvZiB0aGUgZWxlbWVudC5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge0xpc3R9ICRzaXplXHJcbi8vLyAgIEEgbGlzdCBvZiBhdCBtb3N0IDIgc2l6ZSB2YWx1ZXMuXHJcbi8vL1xyXG4vLy8gICBJZiB0aGVyZSBpcyBvbmx5IGEgc2luZ2xlIHZhbHVlIGluIGAkc2l6ZWAgaXQgaXMgdXNlZCBmb3IgYm90aCB3aWR0aCBhbmQgaGVpZ2h0LiBBbGwgdW5pdHMgYXJlIHN1cHBvcnRlZC5cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgLmZpcnN0LWVsZW1lbnQge1xyXG4vLy8gICAgIEBpbmNsdWRlIHNpemUoMmVtKTtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vICAgLnNlY29uZC1lbGVtZW50IHtcclxuLy8vICAgICBAaW5jbHVkZSBzaXplKGF1dG8gMTBlbSk7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC5maXJzdC1lbGVtZW50IHtcclxuLy8vICAgICB3aWR0aDogMmVtO1xyXG4vLy8gICAgIGhlaWdodDogMmVtO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gICAuc2Vjb25kLWVsZW1lbnQge1xyXG4vLy8gICAgIHdpZHRoOiBhdXRvO1xyXG4vLy8gICAgIGhlaWdodDogMTBlbTtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEB0b2RvIFJlZmFjdG9yIGluIDUuMC4wIHRvIHVzZSBhIGNvbW1hLXNlcGFyYXRlZCBhcmd1bWVudFxyXG5cclxuQG1peGluIHNpemUoJHZhbHVlKSB7XHJcbiAgJHdpZHRoOiBudGgoJHZhbHVlLCAxKTtcclxuICAkaGVpZ2h0OiAkd2lkdGg7XHJcblxyXG4gIEBpZiBsZW5ndGgoJHZhbHVlKSA+IDEge1xyXG4gICAgJGhlaWdodDogbnRoKCR2YWx1ZSwgMik7XHJcbiAgfVxyXG5cclxuICBAaWYgaXMtc2l6ZSgkaGVpZ2h0KSB7XHJcbiAgICBoZWlnaHQ6ICRoZWlnaHQ7XHJcbiAgfSBAZWxzZSB7XHJcbiAgICBAd2FybiBcImAjeyRoZWlnaHR9YCBpcyBub3QgYSB2YWxpZCBsZW5ndGggZm9yIHRoZSBgJGhlaWdodGAgcGFyYW1ldGVyIGluIHRoZSBgc2l6ZWAgbWl4aW4uXCI7XHJcbiAgfVxyXG5cclxuICBAaWYgaXMtc2l6ZSgkd2lkdGgpIHtcclxuICAgIHdpZHRoOiAkd2lkdGg7XHJcbiAgfSBAZWxzZSB7XHJcbiAgICBAd2FybiBcImAjeyR3aWR0aH1gIGlzIG5vdCBhIHZhbGlkIGxlbmd0aCBmb3IgdGhlIGAkd2lkdGhgIHBhcmFtZXRlciBpbiB0aGUgYHNpemVgIG1peGluLlwiO1xyXG4gIH1cclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gR2VuZXJhdGVzIHZhcmlhYmxlcyBmb3IgYWxsIHRleHQtYmFzZWQgaW5wdXRzLiBQbGVhc2Ugbm90ZSB0aGF0IHlvdSBtdXN0IHVzZSBpbnRlcnBvbGF0aW9uIG9uIHRoZSB2YXJpYWJsZTogYCN7JGFsbC10ZXh0LWlucHV0c31gLlxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAjeyRhbGwtdGV4dC1pbnB1dHN9IHtcclxuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjZjAwO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gICAjeyRhbGwtdGV4dC1pbnB1dHMtZm9jdXN9LFxyXG4vLy8gICAjeyRhbGwtdGV4dC1pbnB1dHMtaG92ZXJ9IHtcclxuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjMGYwO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gICAjeyRhbGwtdGV4dC1pbnB1dHMtYWN0aXZlfSB7XHJcbi8vLyAgICAgYm9yZGVyOiAxcHggc29saWQgIzAwZjtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgaW5wdXRbdHlwZT1cImNvbG9yXCJdLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZVwiXSxcclxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl0sXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJlbWFpbFwiXSxcclxuLy8vICAgaW5wdXRbdHlwZT1cIm1vbnRoXCJdLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0sXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJzZWFyY2hcIl0sXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZWxcIl0sXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwidGltZVwiXSxcclxuLy8vICAgaW5wdXRbdHlwZT1cInVybFwiXSxcclxuLy8vICAgaW5wdXRbdHlwZT1cIndlZWtcIl0sXHJcbi8vLyAgIHRleHRhcmVhIHtcclxuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjZjAwO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gICBpbnB1dFt0eXBlPVwiY29sb3JcIl06Zm9jdXMsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRlXCJdOmZvY3VzLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl06Zm9jdXMsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXTpmb2N1cyxcclxuLy8vICAgaW5wdXRbdHlwZT1cImVtYWlsXCJdOmZvY3VzLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwibW9udGhcIl06Zm9jdXMsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJudW1iZXJcIl06Zm9jdXMsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXTpmb2N1cyxcclxuLy8vICAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXTpmb2N1cyxcclxuLy8vICAgaW5wdXRbdHlwZT1cInRlbFwiXTpmb2N1cyxcclxuLy8vICAgaW5wdXRbdHlwZT1cInRleHRcIl06Zm9jdXMsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJ0aW1lXCJdOmZvY3VzLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwidXJsXCJdOmZvY3VzLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwid2Vla1wiXTpmb2N1cyxcclxuLy8vICAgdGV4dGFyZWE6Zm9jdXMsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJjb2xvclwiXTpob3ZlcixcclxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGVcIl06aG92ZXIsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZVwiXTpob3ZlcixcclxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdOmhvdmVyLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwiZW1haWxcIl06aG92ZXIsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJtb250aFwiXTpob3ZlcixcclxuLy8vICAgaW5wdXRbdHlwZT1cIm51bWJlclwiXTpob3ZlcixcclxuLy8vICAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdOmhvdmVyLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdOmhvdmVyLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwidGVsXCJdOmhvdmVyLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwidGV4dFwiXTpob3ZlcixcclxuLy8vICAgaW5wdXRbdHlwZT1cInRpbWVcIl06aG92ZXIsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJ1cmxcIl06aG92ZXIsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJ3ZWVrXCJdOmhvdmVyLFxyXG4vLy8gICB0ZXh0YXJlYTpob3ZlciB7XHJcbi8vLyAgICAgYm9yZGVyOiAxcHggc29saWQgIzBmMDtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vICAgaW5wdXRbdHlwZT1cImNvbG9yXCJdOmFjdGl2ZSxcclxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGVcIl06YWN0aXZlLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl06YWN0aXZlLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl06YWN0aXZlLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwiZW1haWxcIl06YWN0aXZlLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwibW9udGhcIl06YWN0aXZlLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOmFjdGl2ZSxcclxuLy8vICAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdOmFjdGl2ZSxcclxuLy8vICAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXTphY3RpdmUsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZWxcIl06YWN0aXZlLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwidGV4dFwiXTphY3RpdmUsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJ0aW1lXCJdOmFjdGl2ZSxcclxuLy8vICAgaW5wdXRbdHlwZT1cInVybFwiXTphY3RpdmUsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJ3ZWVrXCJdOmFjdGl2ZSxcclxuLy8vICAgdGV4dGFyZWE6YWN0aXZlIHtcclxuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjMDBmO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQHJlcXVpcmUgYXNzaWduLWlucHV0c1xyXG4vLy9cclxuLy8vIEB0eXBlIExpc3RcclxuXHJcbiR0ZXh0LWlucHV0cy1saXN0OiAnaW5wdXRbdHlwZT1cImNvbG9yXCJdJyxcclxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwiZGF0ZVwiXScsXHJcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdJyxcclxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl0nLFxyXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJlbWFpbFwiXScsXHJcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cIm1vbnRoXCJdJyxcclxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwibnVtYmVyXCJdJyxcclxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0nLFxyXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJzZWFyY2hcIl0nLFxyXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJ0ZWxcIl0nLFxyXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJ0ZXh0XCJdJyxcclxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwidGltZVwiXScsXHJcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInVybFwiXScsXHJcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cIndlZWtcIl0nLFxyXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0Om5vdChbdHlwZV0pJyxcclxuICAgICAgICAgICAgICAgICAgICd0ZXh0YXJlYSc7XHJcblxyXG4kYWxsLXRleHQtaW5wdXRzOiAgICAgICAgYXNzaWduLWlucHV0cygkdGV4dC1pbnB1dHMtbGlzdCk7XHJcbiRhbGwtdGV4dC1pbnB1dHMtYWN0aXZlOiBhc3NpZ24taW5wdXRzKCR0ZXh0LWlucHV0cy1saXN0LCBhY3RpdmUpO1xyXG4kYWxsLXRleHQtaW5wdXRzLWZvY3VzOiAgYXNzaWduLWlucHV0cygkdGV4dC1pbnB1dHMtbGlzdCwgZm9jdXMpO1xyXG4kYWxsLXRleHQtaW5wdXRzLWhvdmVyOiAgYXNzaWduLWlucHV0cygkdGV4dC1pbnB1dHMtbGlzdCwgaG92ZXIpO1xyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gQ1NTIGN1YmljLWJlemllciB0aW1pbmcgZnVuY3Rpb25zLiBUaW1pbmcgZnVuY3Rpb25zIGNvdXJ0ZXN5IG9mIGpxdWVyeS5lYXNpZSAoZ2l0aHViLmNvbS9qYXVraWEvZWFzaWUpXHJcbi8vL1xyXG4vLy8gVGltaW5nIGZ1bmN0aW9ucyBhcmUgdGhlIHNhbWUgYXMgZGVtb2VkIGhlcmU6IGh0dHA6Ly9qcXVlcnl1aS5jb20vcmVzb3VyY2VzL2RlbW9zL2VmZmVjdC9lYXNpbmcuaHRtbFxyXG4vLy9cclxuLy8vIEB0eXBlIGN1YmljLWJlemllclxyXG5cclxuJGVhc2UtaW4tcXVhZDogICAgICBjdWJpYy1iZXppZXIoMC41NTAsICAwLjA4NSwgMC42ODAsIDAuNTMwKTtcclxuJGVhc2UtaW4tY3ViaWM6ICAgICBjdWJpYy1iZXppZXIoMC41NTAsICAwLjA1NSwgMC42NzUsIDAuMTkwKTtcclxuJGVhc2UtaW4tcXVhcnQ6ICAgICBjdWJpYy1iZXppZXIoMC44OTUsICAwLjAzMCwgMC42ODUsIDAuMjIwKTtcclxuJGVhc2UtaW4tcXVpbnQ6ICAgICBjdWJpYy1iZXppZXIoMC43NTUsICAwLjA1MCwgMC44NTUsIDAuMDYwKTtcclxuJGVhc2UtaW4tc2luZTogICAgICBjdWJpYy1iZXppZXIoMC40NzAsICAwLjAwMCwgMC43NDUsIDAuNzE1KTtcclxuJGVhc2UtaW4tZXhwbzogICAgICBjdWJpYy1iZXppZXIoMC45NTAsICAwLjA1MCwgMC43OTUsIDAuMDM1KTtcclxuJGVhc2UtaW4tY2lyYzogICAgICBjdWJpYy1iZXppZXIoMC42MDAsICAwLjA0MCwgMC45ODAsIDAuMzM1KTtcclxuJGVhc2UtaW4tYmFjazogICAgICBjdWJpYy1iZXppZXIoMC42MDAsIC0wLjI4MCwgMC43MzUsIDAuMDQ1KTtcclxuXHJcbiRlYXNlLW91dC1xdWFkOiAgICAgY3ViaWMtYmV6aWVyKDAuMjUwLCAgMC40NjAsIDAuNDUwLCAwLjk0MCk7XHJcbiRlYXNlLW91dC1jdWJpYzogICAgY3ViaWMtYmV6aWVyKDAuMjE1LCAgMC42MTAsIDAuMzU1LCAxLjAwMCk7XHJcbiRlYXNlLW91dC1xdWFydDogICAgY3ViaWMtYmV6aWVyKDAuMTY1LCAgMC44NDAsIDAuNDQwLCAxLjAwMCk7XHJcbiRlYXNlLW91dC1xdWludDogICAgY3ViaWMtYmV6aWVyKDAuMjMwLCAgMS4wMDAsIDAuMzIwLCAxLjAwMCk7XHJcbiRlYXNlLW91dC1zaW5lOiAgICAgY3ViaWMtYmV6aWVyKDAuMzkwLCAgMC41NzUsIDAuNTY1LCAxLjAwMCk7XHJcbiRlYXNlLW91dC1leHBvOiAgICAgY3ViaWMtYmV6aWVyKDAuMTkwLCAgMS4wMDAsIDAuMjIwLCAxLjAwMCk7XHJcbiRlYXNlLW91dC1jaXJjOiAgICAgY3ViaWMtYmV6aWVyKDAuMDc1LCAgMC44MjAsIDAuMTY1LCAxLjAwMCk7XHJcbiRlYXNlLW91dC1iYWNrOiAgICAgY3ViaWMtYmV6aWVyKDAuMTc1LCAgMC44ODUsIDAuMzIwLCAxLjI3NSk7XHJcblxyXG4kZWFzZS1pbi1vdXQtcXVhZDogIGN1YmljLWJlemllcigwLjQ1NSwgIDAuMDMwLCAwLjUxNSwgMC45NTUpO1xyXG4kZWFzZS1pbi1vdXQtY3ViaWM6IGN1YmljLWJlemllcigwLjY0NSwgIDAuMDQ1LCAwLjM1NSwgMS4wMDApO1xyXG4kZWFzZS1pbi1vdXQtcXVhcnQ6IGN1YmljLWJlemllcigwLjc3MCwgIDAuMDAwLCAwLjE3NSwgMS4wMDApO1xyXG4kZWFzZS1pbi1vdXQtcXVpbnQ6IGN1YmljLWJlemllcigwLjg2MCwgIDAuMDAwLCAwLjA3MCwgMS4wMDApO1xyXG4kZWFzZS1pbi1vdXQtc2luZTogIGN1YmljLWJlemllcigwLjQ0NSwgIDAuMDUwLCAwLjU1MCwgMC45NTApO1xyXG4kZWFzZS1pbi1vdXQtZXhwbzogIGN1YmljLWJlemllcigxLjAwMCwgIDAuMDAwLCAwLjAwMCwgMS4wMDApO1xyXG4kZWFzZS1pbi1vdXQtY2lyYzogIGN1YmljLWJlemllcigwLjc4NSwgIDAuMTM1LCAwLjE1MCwgMC44NjApO1xyXG4kZWFzZS1pbi1vdXQtYmFjazogIGN1YmljLWJlemllcigwLjY4MCwgLTAuNTUwLCAwLjI2NSwgMS41NTApO1xyXG4iLCJAbWl4aW4gdHJpYW5nbGUoJHNpemUsICRjb2xvciwgJGRpcmVjdGlvbikge1xyXG4gICR3aWR0aDogbnRoKCRzaXplLCAxKTtcclxuICAkaGVpZ2h0OiBudGgoJHNpemUsIGxlbmd0aCgkc2l6ZSkpO1xyXG4gICRmb3JlZ3JvdW5kLWNvbG9yOiBudGgoJGNvbG9yLCAxKTtcclxuICAkYmFja2dyb3VuZC1jb2xvcjogaWYobGVuZ3RoKCRjb2xvcikgPT0gMiwgbnRoKCRjb2xvciwgMiksIHRyYW5zcGFyZW50KTtcclxuICBoZWlnaHQ6IDA7XHJcbiAgd2lkdGg6IDA7XHJcblxyXG4gIEBpZiAoJGRpcmVjdGlvbiA9PSB1cCkgb3IgKCRkaXJlY3Rpb24gPT0gZG93bikgb3IgKCRkaXJlY3Rpb24gPT0gcmlnaHQpIG9yICgkZGlyZWN0aW9uID09IGxlZnQpIHtcclxuICAgICR3aWR0aDogJHdpZHRoIC8gMjtcclxuICAgICRoZWlnaHQ6IGlmKGxlbmd0aCgkc2l6ZSkgPiAxLCAkaGVpZ2h0LCAkaGVpZ2h0LzIpO1xyXG5cclxuICAgIEBpZiAkZGlyZWN0aW9uID09IHVwIHtcclxuICAgICAgYm9yZGVyLWJvdHRvbTogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcclxuICAgICAgYm9yZGVyLWxlZnQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcclxuICAgICAgYm9yZGVyLXJpZ2h0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XHJcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gcmlnaHQge1xyXG4gICAgICBib3JkZXItYm90dG9tOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XHJcbiAgICAgIGJvcmRlci1sZWZ0OiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xyXG4gICAgICBib3JkZXItdG9wOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XHJcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gZG93biB7XHJcbiAgICAgIGJvcmRlci1sZWZ0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XHJcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xyXG4gICAgICBib3JkZXItdG9wOiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xyXG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IGxlZnQge1xyXG4gICAgICBib3JkZXItYm90dG9tOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XHJcbiAgICAgIGJvcmRlci1yaWdodDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcclxuICAgICAgYm9yZGVyLXRvcDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xyXG4gICAgfVxyXG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gdXAtcmlnaHQpIG9yICgkZGlyZWN0aW9uID09IHVwLWxlZnQpIHtcclxuICAgIGJvcmRlci10b3A6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XHJcblxyXG4gICAgQGlmICRkaXJlY3Rpb24gPT0gdXAtcmlnaHQge1xyXG4gICAgICBib3JkZXItbGVmdDogICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcclxuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSB1cC1sZWZ0IHtcclxuICAgICAgYm9yZGVyLXJpZ2h0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XHJcbiAgICB9XHJcbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBkb3duLXJpZ2h0KSBvciAoJGRpcmVjdGlvbiA9PSBkb3duLWxlZnQpIHtcclxuICAgIGJvcmRlci1ib3R0b206ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XHJcblxyXG4gICAgQGlmICRkaXJlY3Rpb24gPT0gZG93bi1yaWdodCB7XHJcbiAgICAgIGJvcmRlci1sZWZ0OiAgJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xyXG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IGRvd24tbGVmdCB7XHJcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xyXG4gICAgfVxyXG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gaW5zZXQtdXApIHtcclxuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGZvcmVncm91bmQtY29sb3I7XHJcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xyXG4gICAgYm9yZGVyLXdpZHRoOiAkaGVpZ2h0ICR3aWR0aDtcclxuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGluc2V0LWRvd24pIHtcclxuICAgIGJvcmRlci1jb2xvcjogJGZvcmVncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3I7XHJcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xyXG4gICAgYm9yZGVyLXdpZHRoOiAkaGVpZ2h0ICR3aWR0aDtcclxuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGluc2V0LXJpZ2h0KSB7XHJcbiAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRmb3JlZ3JvdW5kLWNvbG9yO1xyXG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcclxuICAgIGJvcmRlci13aWR0aDogJHdpZHRoICRoZWlnaHQ7XHJcbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC1sZWZ0KSB7XHJcbiAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yICRmb3JlZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yO1xyXG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcclxuICAgIGJvcmRlci13aWR0aDogJHdpZHRoICRoZWlnaHQ7XHJcbiAgfVxyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBQcm92aWRlcyBhbiBlYXN5IHdheSB0byBjaGFuZ2UgdGhlIGB3b3JkLXdyYXBgIHByb3BlcnR5LlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkd3JhcCBbYnJlYWstd29yZF1cclxuLy8vICAgVmFsdWUgZm9yIHRoZSBgd29yZC1icmVha2AgcHJvcGVydHkuXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIC53cmFwcGVyIHtcclxuLy8vICAgICBAaW5jbHVkZSB3b3JkLXdyYXAoYnJlYWstd29yZCk7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC53cmFwcGVyIHtcclxuLy8vICAgICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xyXG4vLy8gICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcclxuLy8vICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XHJcbi8vLyAgIH1cclxuXHJcbkBtaXhpbiB3b3JkLXdyYXAoJHdyYXA6IGJyZWFrLXdvcmQpIHtcclxuICBvdmVyZmxvdy13cmFwOiAkd3JhcDtcclxuICB3b3JkLXdyYXA6ICR3cmFwO1xyXG5cclxuICBAaWYgJHdyYXAgPT0gYnJlYWstd29yZCB7XHJcbiAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XHJcbiAgfSBAZWxzZSB7XHJcbiAgICB3b3JkLWJyZWFrOiAkd3JhcDtcclxuICB9XHJcbn1cclxuIiwiLy8gVGhlIGZvbGxvd2luZyBmZWF0dXJlcyBoYXZlIGJlZW4gZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IE1BSk9SIHZlcnNpb24gcmVsZWFzZVxyXG5cclxuQG1peGluIGlubGluZS1ibG9jayB7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cclxuICBAd2FybiBcIlRoZSBpbmxpbmUtYmxvY2sgbWl4aW4gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gcmVsZWFzZVwiO1xyXG59XHJcblxyXG5AbWl4aW4gYnV0dG9uICgkc3R5bGU6IHNpbXBsZSwgJGJhc2UtY29sb3I6ICM0Mjk0ZjAsICR0ZXh0LXNpemU6IGluaGVyaXQsICRwYWRkaW5nOiA3cHggMThweCkge1xyXG5cclxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IHN0cmluZyBhbmQgdHlwZS1vZigkYmFzZS1jb2xvcikgPT0gY29sb3Ige1xyXG4gICAgQGluY2x1ZGUgYnV0dG9uc3R5bGUoJHN0eWxlLCAkYmFzZS1jb2xvciwgJHRleHQtc2l6ZSwgJHBhZGRpbmcpO1xyXG4gIH1cclxuXHJcbiAgQGlmIHR5cGUtb2YoJHN0eWxlKSA9PSBzdHJpbmcgYW5kIHR5cGUtb2YoJGJhc2UtY29sb3IpID09IG51bWJlciB7XHJcbiAgICAkcGFkZGluZzogJHRleHQtc2l6ZTtcclxuICAgICR0ZXh0LXNpemU6ICRiYXNlLWNvbG9yO1xyXG4gICAgJGJhc2UtY29sb3I6ICM0Mjk0ZjA7XHJcblxyXG4gICAgQGlmICRwYWRkaW5nID09IGluaGVyaXQge1xyXG4gICAgICAkcGFkZGluZzogN3B4IDE4cHg7XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgYnV0dG9uc3R5bGUoJHN0eWxlLCAkYmFzZS1jb2xvciwgJHRleHQtc2l6ZSwgJHBhZGRpbmcpO1xyXG4gIH1cclxuXHJcbiAgQGlmIHR5cGUtb2YoJHN0eWxlKSA9PSBjb2xvciBhbmQgdHlwZS1vZigkYmFzZS1jb2xvcikgPT0gY29sb3Ige1xyXG4gICAgJGJhc2UtY29sb3I6ICRzdHlsZTtcclxuICAgICRzdHlsZTogc2ltcGxlO1xyXG4gICAgQGluY2x1ZGUgYnV0dG9uc3R5bGUoJHN0eWxlLCAkYmFzZS1jb2xvciwgJHRleHQtc2l6ZSwgJHBhZGRpbmcpO1xyXG4gIH1cclxuXHJcbiAgQGlmIHR5cGUtb2YoJHN0eWxlKSA9PSBjb2xvciBhbmQgdHlwZS1vZigkYmFzZS1jb2xvcikgPT0gbnVtYmVyIHtcclxuICAgICRwYWRkaW5nOiAkdGV4dC1zaXplO1xyXG4gICAgJHRleHQtc2l6ZTogJGJhc2UtY29sb3I7XHJcbiAgICAkYmFzZS1jb2xvcjogJHN0eWxlO1xyXG4gICAgJHN0eWxlOiBzaW1wbGU7XHJcblxyXG4gICAgQGlmICRwYWRkaW5nID09IGluaGVyaXQge1xyXG4gICAgICAkcGFkZGluZzogN3B4IDE4cHg7XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgYnV0dG9uc3R5bGUoJHN0eWxlLCAkYmFzZS1jb2xvciwgJHRleHQtc2l6ZSwgJHBhZGRpbmcpO1xyXG4gIH1cclxuXHJcbiAgQGlmIHR5cGUtb2YoJHN0eWxlKSA9PSBudW1iZXIge1xyXG4gICAgJHBhZGRpbmc6ICRiYXNlLWNvbG9yO1xyXG4gICAgJHRleHQtc2l6ZTogJHN0eWxlO1xyXG4gICAgJGJhc2UtY29sb3I6ICM0Mjk0ZjA7XHJcbiAgICAkc3R5bGU6IHNpbXBsZTtcclxuXHJcbiAgICBAaWYgJHBhZGRpbmcgPT0gIzQyOTRmMCB7XHJcbiAgICAgICRwYWRkaW5nOiA3cHggMThweDtcclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XHJcbiAgfVxyXG5cclxuICAmOmRpc2FibGVkIHtcclxuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XHJcbiAgICBvcGFjaXR5OiAwLjU7XHJcbiAgfVxyXG5cclxuICBAd2FybiBcIlRoZSBidXR0b24gbWl4aW4gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gcmVsZWFzZVwiO1xyXG59XHJcblxyXG4vLyBTZWxlY3RvciBTdHlsZSBCdXR0b25cclxuQG1peGluIGJ1dHRvbnN0eWxlKCR0eXBlLCAkYi1jb2xvciwgJHQtc2l6ZSwgJHBhZCkge1xyXG4gIC8vIEdyYXlzY2FsZSBidXR0b25cclxuICBAaWYgJHR5cGUgPT0gc2ltcGxlIGFuZCAkYi1jb2xvciA9PSBncmF5c2NhbGUoJGItY29sb3IpIHtcclxuICAgIEBpbmNsdWRlIHNpbXBsZSgkYi1jb2xvciwgdHJ1ZSwgJHQtc2l6ZSwgJHBhZCk7XHJcbiAgfVxyXG5cclxuICBAaWYgJHR5cGUgPT0gc2hpbnkgYW5kICRiLWNvbG9yID09IGdyYXlzY2FsZSgkYi1jb2xvcikge1xyXG4gICAgQGluY2x1ZGUgc2hpbnkoJGItY29sb3IsIHRydWUsICR0LXNpemUsICRwYWQpO1xyXG4gIH1cclxuXHJcbiAgQGlmICR0eXBlID09IHBpbGwgYW5kICRiLWNvbG9yID09IGdyYXlzY2FsZSgkYi1jb2xvcikge1xyXG4gICAgQGluY2x1ZGUgcGlsbCgkYi1jb2xvciwgdHJ1ZSwgJHQtc2l6ZSwgJHBhZCk7XHJcbiAgfVxyXG5cclxuICBAaWYgJHR5cGUgPT0gZmxhdCBhbmQgJGItY29sb3IgPT0gZ3JheXNjYWxlKCRiLWNvbG9yKSB7XHJcbiAgICBAaW5jbHVkZSBmbGF0KCRiLWNvbG9yLCB0cnVlLCAkdC1zaXplLCAkcGFkKTtcclxuICB9XHJcblxyXG4gIC8vIENvbG9yZWQgYnV0dG9uXHJcbiAgQGlmICR0eXBlID09IHNpbXBsZSB7XHJcbiAgICBAaW5jbHVkZSBzaW1wbGUoJGItY29sb3IsIGZhbHNlLCAkdC1zaXplLCAkcGFkKTtcclxuICB9XHJcblxyXG4gIEBlbHNlIGlmICR0eXBlID09IHNoaW55IHtcclxuICAgIEBpbmNsdWRlIHNoaW55KCRiLWNvbG9yLCBmYWxzZSwgJHQtc2l6ZSwgJHBhZCk7XHJcbiAgfVxyXG5cclxuICBAZWxzZSBpZiAkdHlwZSA9PSBwaWxsIHtcclxuICAgIEBpbmNsdWRlIHBpbGwoJGItY29sb3IsIGZhbHNlLCAkdC1zaXplLCAkcGFkKTtcclxuICB9XHJcblxyXG4gIEBlbHNlIGlmICR0eXBlID09IGZsYXQge1xyXG4gICAgQGluY2x1ZGUgZmxhdCgkYi1jb2xvciwgZmFsc2UsICR0LXNpemUsICRwYWQpO1xyXG4gIH1cclxufVxyXG5cclxuLy8gU2ltcGxlIEJ1dHRvblxyXG5AbWl4aW4gc2ltcGxlKCRiYXNlLWNvbG9yLCAkZ3JheXNjYWxlOiBmYWxzZSwgJHRleHRzaXplOiBpbmhlcml0LCAkcGFkZGluZzogN3B4IDE4cHgpIHtcclxuICAkY29sb3I6ICAgICAgICAgaHNsKDAsIDAsIDEwMCUpO1xyXG4gICRib3JkZXI6ICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAgOSUsICAkbGlnaHRuZXNzOiAtMTQlKTtcclxuICAkaW5zZXQtc2hhZG93OiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogLTglLCAgJGxpZ2h0bmVzczogIDE1JSk7XHJcbiAgJHN0b3AtZ3JhZGllbnQ6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246ICA5JSwgICRsaWdodG5lc3M6IC0xMSUpO1xyXG4gICR0ZXh0LXNoYWRvdzogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAgMTUlLCAkbGlnaHRuZXNzOiAtMTglKTtcclxuXHJcbiAgQGlmIGlzLWxpZ2h0KCRiYXNlLWNvbG9yKSB7XHJcbiAgICAkY29sb3I6ICAgICAgIGhzbCgwLCAwLCAyMCUpO1xyXG4gICAgJHRleHQtc2hhZG93OiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAxMCUsICRsaWdodG5lc3M6IDQlKTtcclxuICB9XHJcblxyXG4gIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xyXG4gICAgJGJvcmRlcjogICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyKTtcclxuICAgICRpbnNldC1zaGFkb3c6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdyk7XHJcbiAgICAkc3RvcC1ncmFkaWVudDogZ3JheXNjYWxlKCRzdG9wLWdyYWRpZW50KTtcclxuICAgICR0ZXh0LXNoYWRvdzogICBncmF5c2NhbGUoJHRleHQtc2hhZG93KTtcclxuICB9XHJcblxyXG4gIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXI7XHJcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xyXG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgMCAkaW5zZXQtc2hhZG93O1xyXG4gIGNvbG9yOiAkY29sb3I7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIGZvbnQtc2l6ZTogJHRleHRzaXplO1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCAoJGJhc2UtY29sb3IsICRzdG9wLWdyYWRpZW50KTtcclxuICBwYWRkaW5nOiAkcGFkZGluZztcclxuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgdGV4dC1zaGFkb3c6IDAgMXB4IDAgJHRleHQtc2hhZG93O1xyXG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XHJcblxyXG4gICY6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xyXG4gICAgJGJhc2UtY29sb3ItaG92ZXI6ICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IC00JSwgJGxpZ2h0bmVzczogLTUlKTtcclxuICAgICRpbnNldC1zaGFkb3ctaG92ZXI6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAtNyUsICRsaWdodG5lc3M6ICA1JSk7XHJcbiAgICAkc3RvcC1ncmFkaWVudC1ob3ZlcjogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogIDglLCAkbGlnaHRuZXNzOiAtMTQlKTtcclxuXHJcbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcclxuICAgICAgJGJhc2UtY29sb3ItaG92ZXI6ICAgIGdyYXlzY2FsZSgkYmFzZS1jb2xvci1ob3Zlcik7XHJcbiAgICAgICRpbnNldC1zaGFkb3ctaG92ZXI6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdy1ob3Zlcik7XHJcbiAgICAgICRzdG9wLWdyYWRpZW50LWhvdmVyOiBncmF5c2NhbGUoJHN0b3AtZ3JhZGllbnQtaG92ZXIpO1xyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCAoJGJhc2UtY29sb3ItaG92ZXIsICRzdG9wLWdyYWRpZW50LWhvdmVyKTtcclxuXHJcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgJGluc2V0LXNoYWRvdy1ob3ZlcjtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICB9XHJcblxyXG4gICY6YWN0aXZlOm5vdCg6ZGlzYWJsZWQpLFxyXG4gICY6Zm9jdXM6bm90KDpkaXNhYmxlZCkge1xyXG4gICAgJGJvcmRlci1hY3RpdmU6ICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDklLCAkbGlnaHRuZXNzOiAtMTQlKTtcclxuICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiA3JSwgJGxpZ2h0bmVzczogLTE3JSk7XHJcblxyXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XHJcbiAgICAgICRib3JkZXItYWN0aXZlOiAgICAgICBncmF5c2NhbGUoJGJvcmRlci1hY3RpdmUpO1xyXG4gICAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogZ3JheXNjYWxlKCRpbnNldC1zaGFkb3ctYWN0aXZlKTtcclxuICAgIH1cclxuXHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLWFjdGl2ZTtcclxuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCA4cHggNHB4ICRpbnNldC1zaGFkb3ctYWN0aXZlLCBpbnNldCAwIDAgOHB4IDRweCAkaW5zZXQtc2hhZG93LWFjdGl2ZTtcclxuICB9XHJcbn1cclxuXHJcbi8vIFNoaW55IEJ1dHRvblxyXG5AbWl4aW4gc2hpbnkoJGJhc2UtY29sb3IsICRncmF5c2NhbGU6IGZhbHNlLCAkdGV4dHNpemU6IGluaGVyaXQsICRwYWRkaW5nOiA3cHggMThweCkge1xyXG4gICRjb2xvcjogICAgICAgICBoc2woMCwgMCwgMTAwJSk7XHJcbiAgJGJvcmRlcjogICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTExNywgJGdyZWVuOiAtMTExLCAkYmx1ZTogLTgxKTtcclxuICAkYm9yZGVyLWJvdHRvbTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTI2LCAkZ3JlZW46IC0xMjcsICRibHVlOiAtMTIyKTtcclxuICAkZm91cnRoLXN0b3A6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtNzksICAkZ3JlZW46IC03MCwgICRibHVlOiAtNDYpO1xyXG4gICRpbnNldC1zaGFkb3c6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6ICAzNywgICRncmVlbjogIDI5LCAgJGJsdWU6ICAxMik7XHJcbiAgJHNlY29uZC1zdG9wOiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTU2LCAgJGdyZWVuOiAtNTAsICAkYmx1ZTogLTMzKTtcclxuICAkdGV4dC1zaGFkb3c6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTQwLCAkZ3JlZW46IC0xNDEsICRibHVlOiAtMTE0KTtcclxuICAkdGhpcmQtc3RvcDogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtODYsICAkZ3JlZW46IC03NSwgICRibHVlOiAtNDgpO1xyXG5cclxuICBAaWYgaXMtbGlnaHQoJGJhc2UtY29sb3IpIHtcclxuICAgICRjb2xvcjogICAgICAgaHNsKDAsIDAsIDIwJSk7XHJcbiAgICAkdGV4dC1zaGFkb3c6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDEwJSwgJGxpZ2h0bmVzczogNCUpO1xyXG4gIH1cclxuXHJcbiAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XHJcbiAgICAkYm9yZGVyOiAgICAgICAgZ3JheXNjYWxlKCRib3JkZXIpO1xyXG4gICAgJGJvcmRlci1ib3R0b206IGdyYXlzY2FsZSgkYm9yZGVyLWJvdHRvbSk7XHJcbiAgICAkZm91cnRoLXN0b3A6ICAgZ3JheXNjYWxlKCRmb3VydGgtc3RvcCk7XHJcbiAgICAkaW5zZXQtc2hhZG93OiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3cpO1xyXG4gICAgJHNlY29uZC1zdG9wOiAgIGdyYXlzY2FsZSgkc2Vjb25kLXN0b3ApO1xyXG4gICAgJHRleHQtc2hhZG93OiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3cpO1xyXG4gICAgJHRoaXJkLXN0b3A6ICAgIGdyYXlzY2FsZSgkdGhpcmQtc3RvcCk7XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQodG9wLCAkYmFzZS1jb2xvciAwJSwgJHNlY29uZC1zdG9wIDUwJSwgJHRoaXJkLXN0b3AgNTAlLCAkZm91cnRoLXN0b3AgMTAwJSk7XHJcblxyXG4gIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXI7XHJcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRib3JkZXItYm90dG9tO1xyXG4gIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgJGluc2V0LXNoYWRvdztcclxuICBjb2xvcjogJGNvbG9yO1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICBmb250LXNpemU6ICR0ZXh0c2l6ZTtcclxuICBmb250LXdlaWdodDogYm9sZDtcclxuICBwYWRkaW5nOiAkcGFkZGluZztcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gIHRleHQtc2hhZG93OiAwIC0xcHggMXB4ICR0ZXh0LXNoYWRvdztcclxuXHJcbiAgJjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XHJcbiAgICAkZmlyc3Qtc3RvcC1ob3ZlcjogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTEzLCAkZ3JlZW46IC0xNSwgJGJsdWU6IC0xOCk7XHJcbiAgICAkc2Vjb25kLXN0b3AtaG92ZXI6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTY2LCAkZ3JlZW46IC02MiwgJGJsdWU6IC01MSk7XHJcbiAgICAkdGhpcmQtc3RvcC1ob3ZlcjogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTkzLCAkZ3JlZW46IC04NSwgJGJsdWU6IC02Nik7XHJcbiAgICAkZm91cnRoLXN0b3AtaG92ZXI6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTg2LCAkZ3JlZW46IC04MCwgJGJsdWU6IC02Myk7XHJcblxyXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XHJcbiAgICAgICRmaXJzdC1zdG9wLWhvdmVyOiAgZ3JheXNjYWxlKCRmaXJzdC1zdG9wLWhvdmVyKTtcclxuICAgICAgJHNlY29uZC1zdG9wLWhvdmVyOiBncmF5c2NhbGUoJHNlY29uZC1zdG9wLWhvdmVyKTtcclxuICAgICAgJHRoaXJkLXN0b3AtaG92ZXI6ICBncmF5c2NhbGUoJHRoaXJkLXN0b3AtaG92ZXIpO1xyXG4gICAgICAkZm91cnRoLXN0b3AtaG92ZXI6IGdyYXlzY2FsZSgkZm91cnRoLXN0b3AtaG92ZXIpO1xyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCh0b3AsICRmaXJzdC1zdG9wLWhvdmVyICAwJSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzZWNvbmQtc3RvcC1ob3ZlciA1MCUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGhpcmQtc3RvcC1ob3ZlciAgNTAlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGZvdXJ0aC1zdG9wLWhvdmVyIDEwMCUpO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIH1cclxuXHJcbiAgJjphY3RpdmU6bm90KDpkaXNhYmxlZCksXHJcbiAgJjpmb2N1czpub3QoOmRpc2FibGVkKSB7XHJcbiAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTExLCAkZ3JlZW46IC0xMTYsICRibHVlOiAtMTIyKTtcclxuXHJcbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcclxuICAgICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6IGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93LWFjdGl2ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDIwcHggMCAkaW5zZXQtc2hhZG93LWFjdGl2ZTtcclxuICB9XHJcbn1cclxuXHJcbi8vIFBpbGwgQnV0dG9uXHJcbkBtaXhpbiBwaWxsKCRiYXNlLWNvbG9yLCAkZ3JheXNjYWxlOiBmYWxzZSwgJHRleHRzaXplOiBpbmhlcml0LCAkcGFkZGluZzogN3B4IDE4cHgpIHtcclxuICAkY29sb3I6ICAgICAgICAgaHNsKDAsIDAsIDEwMCUpO1xyXG4gICRib3JkZXItYm90dG9tOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA4LCAkc2F0dXJhdGlvbjogLTExJSwgJGxpZ2h0bmVzczogLTI2JSk7XHJcbiAgJGJvcmRlci1zaWRlczogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDQsICRzYXR1cmF0aW9uOiAtMjElLCAkbGlnaHRuZXNzOiAtMjElKTtcclxuICAkYm9yZGVyLXRvcDogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAtMSwgJHNhdHVyYXRpb246IC0zMCUsICRsaWdodG5lc3M6IC0xNSUpO1xyXG4gICRpbnNldC1zaGFkb3c6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IC0xLCAkc2F0dXJhdGlvbjogLTElLCAgJGxpZ2h0bmVzczogIDclKTtcclxuICAkc3RvcC1ncmFkaWVudDogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgOCwgJHNhdHVyYXRpb246ICAxNCUsICRsaWdodG5lc3M6IC0xMCUpO1xyXG4gICR0ZXh0LXNoYWRvdzogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA1LCAkc2F0dXJhdGlvbjogLTE5JSwgJGxpZ2h0bmVzczogLTE1JSk7XHJcblxyXG4gIEBpZiBpcy1saWdodCgkYmFzZS1jb2xvcikge1xyXG4gICAgJGNvbG9yOiAgICAgICBoc2woMCwgMCwgMjAlKTtcclxuICAgICR0ZXh0LXNoYWRvdzogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogMTAlLCAkbGlnaHRuZXNzOiA0JSk7XHJcbiAgfVxyXG5cclxuICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcclxuICAgICRib3JkZXItYm90dG9tOiBncmF5c2NhbGUoJGJvcmRlci1ib3R0b20pO1xyXG4gICAgJGJvcmRlci1zaWRlczogIGdyYXlzY2FsZSgkYm9yZGVyLXNpZGVzKTtcclxuICAgICRib3JkZXItdG9wOiAgICBncmF5c2NhbGUoJGJvcmRlci10b3ApO1xyXG4gICAgJGluc2V0LXNoYWRvdzogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93KTtcclxuICAgICRzdG9wLWdyYWRpZW50OiBncmF5c2NhbGUoJHN0b3AtZ3JhZGllbnQpO1xyXG4gICAgJHRleHQtc2hhZG93OiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3cpO1xyXG4gIH1cclxuXHJcbiAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci10b3A7XHJcbiAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLXRvcCAkYm9yZGVyLXNpZGVzICRib3JkZXItYm90dG9tO1xyXG4gIGJvcmRlci1yYWRpdXM6IDE2cHg7XHJcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCAwICRpbnNldC1zaGFkb3c7XHJcbiAgY29sb3I6ICRjb2xvcjtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgZm9udC1zaXplOiAkdGV4dHNpemU7XHJcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICBsaW5lLWhlaWdodDogMTtcclxuICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQgKCRiYXNlLWNvbG9yLCAkc3RvcC1ncmFkaWVudCk7XHJcbiAgcGFkZGluZzogJHBhZGRpbmc7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICB0ZXh0LXNoYWRvdzogMCAtMXB4IDFweCAkdGV4dC1zaGFkb3c7XHJcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcclxuXHJcbiAgJjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XHJcbiAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpZ2h0bmVzczogLTQuNSUpO1xyXG4gICAgJGJvcmRlci1ib3R0b206ICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDgsICRzYXR1cmF0aW9uOiAgMTMuNSUsICRsaWdodG5lc3M6IC0zMiUpO1xyXG4gICAgJGJvcmRlci1zaWRlczogICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDQsICRzYXR1cmF0aW9uOiAtMiUsICAgICRsaWdodG5lc3M6IC0yNyUpO1xyXG4gICAgJGJvcmRlci10b3A6ICAgICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogLTEsICRzYXR1cmF0aW9uOiAtMTclLCAgICRsaWdodG5lc3M6IC0yMSUpO1xyXG4gICAgJGluc2V0LXNoYWRvdy1ob3ZlcjogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgICAgICAgICAgICRzYXR1cmF0aW9uOiAtMSUsICAgICRsaWdodG5lc3M6ICAzJSk7XHJcbiAgICAkc3RvcC1ncmFkaWVudC1ob3ZlcjogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgOCwgJHNhdHVyYXRpb246IC00JSwgICAgJGxpZ2h0bmVzczogLTE1LjUlKTtcclxuICAgICR0ZXh0LXNoYWRvdy1ob3ZlcjogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA1LCAkc2F0dXJhdGlvbjogLTUlLCAgICAkbGlnaHRuZXNzOiAtMjIlKTtcclxuXHJcbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcclxuICAgICAgJGJhc2UtY29sb3ItaG92ZXI6ICAgIGdyYXlzY2FsZSgkYmFzZS1jb2xvci1ob3Zlcik7XHJcbiAgICAgICRib3JkZXItYm90dG9tOiAgICAgICBncmF5c2NhbGUoJGJvcmRlci1ib3R0b20pO1xyXG4gICAgICAkYm9yZGVyLXNpZGVzOiAgICAgICAgZ3JheXNjYWxlKCRib3JkZXItc2lkZXMpO1xyXG4gICAgICAkYm9yZGVyLXRvcDogICAgICAgICAgZ3JheXNjYWxlKCRib3JkZXItdG9wKTtcclxuICAgICAgJGluc2V0LXNoYWRvdy1ob3ZlcjogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93LWhvdmVyKTtcclxuICAgICAgJHN0b3AtZ3JhZGllbnQtaG92ZXI6IGdyYXlzY2FsZSgkc3RvcC1ncmFkaWVudC1ob3Zlcik7XHJcbiAgICAgICR0ZXh0LXNoYWRvdy1ob3ZlcjogICBncmF5c2NhbGUoJHRleHQtc2hhZG93LWhvdmVyKTtcclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQgKCRiYXNlLWNvbG9yLWhvdmVyLCAkc3RvcC1ncmFkaWVudC1ob3Zlcik7XHJcblxyXG4gICAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItdG9wO1xyXG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLXRvcCAkYm9yZGVyLXNpZGVzICRib3JkZXItYm90dG9tO1xyXG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCAwICRpbnNldC1zaGFkb3ctaG92ZXI7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICB0ZXh0LXNoYWRvdzogMCAtMXB4IDFweCAkdGV4dC1zaGFkb3ctaG92ZXI7XHJcbiAgfVxyXG5cclxuICAmOmFjdGl2ZTpub3QoOmRpc2FibGVkKSxcclxuICAmOmZvY3VzOm5vdCg6ZGlzYWJsZWQpIHtcclxuICAgICRhY3RpdmUtY29sb3I6ICAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiA0LCAgJHNhdHVyYXRpb246IC0xMiUsICAkbGlnaHRuZXNzOiAtMTAlKTtcclxuICAgICRib3JkZXItYWN0aXZlOiAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiA2LCAgJHNhdHVyYXRpb246IC0yLjUlLCAkbGlnaHRuZXNzOiAtMzAlKTtcclxuICAgICRib3JkZXItYm90dG9tLWFjdGl2ZTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAxMSwgJHNhdHVyYXRpb246ICA2JSwgICAkbGlnaHRuZXNzOiAtMzElKTtcclxuICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiA5LCAgJHNhdHVyYXRpb246ICAyJSwgICAkbGlnaHRuZXNzOiAtMjEuNSUpO1xyXG4gICAgJHRleHQtc2hhZG93LWFjdGl2ZTogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDUsICAkc2F0dXJhdGlvbjogLTEyJSwgICRsaWdodG5lc3M6IC0yMS41JSk7XHJcblxyXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XHJcbiAgICAgICRhY3RpdmUtY29sb3I6ICAgICAgICAgZ3JheXNjYWxlKCRhY3RpdmUtY29sb3IpO1xyXG4gICAgICAkYm9yZGVyLWFjdGl2ZTogICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyLWFjdGl2ZSk7XHJcbiAgICAgICRib3JkZXItYm90dG9tLWFjdGl2ZTogZ3JheXNjYWxlKCRib3JkZXItYm90dG9tLWFjdGl2ZSk7XHJcbiAgICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3ctYWN0aXZlKTtcclxuICAgICAgJHRleHQtc2hhZG93LWFjdGl2ZTogICBncmF5c2NhbGUoJHRleHQtc2hhZG93LWFjdGl2ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgYmFja2dyb3VuZDogJGFjdGl2ZS1jb2xvcjtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItYWN0aXZlO1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRib3JkZXItYm90dG9tLWFjdGl2ZTtcclxuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCA2cHggM3B4ICRpbnNldC1zaGFkb3ctYWN0aXZlO1xyXG4gICAgdGV4dC1zaGFkb3c6IDAgLTFweCAxcHggJHRleHQtc2hhZG93LWFjdGl2ZTtcclxuICB9XHJcbn1cclxuXHJcbi8vIEZsYXQgQnV0dG9uXHJcbkBtaXhpbiBmbGF0KCRiYXNlLWNvbG9yLCAkZ3JheXNjYWxlOiBmYWxzZSwgJHRleHRzaXplOiBpbmhlcml0LCAkcGFkZGluZzogN3B4IDE4cHgpIHtcclxuICAkY29sb3I6ICAgICAgICAgaHNsKDAsIDAsIDEwMCUpO1xyXG5cclxuICBAaWYgaXMtbGlnaHQoJGJhc2UtY29sb3IpIHtcclxuICAgICRjb2xvcjogICAgICAgaHNsKDAsIDAsIDIwJSk7XHJcbiAgfVxyXG5cclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFzZS1jb2xvcjtcclxuICBib3JkZXItcmFkaXVzOiAzcHg7XHJcbiAgYm9yZGVyOiAwO1xyXG4gIGNvbG9yOiAkY29sb3I7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIGZvbnQtc2l6ZTogJHRleHRzaXplO1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xyXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xyXG5cclxuICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpe1xyXG4gICAgJGJhc2UtY29sb3ItaG92ZXI6ICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDQlLCAkbGlnaHRuZXNzOiA1JSk7XHJcblxyXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XHJcbiAgICAgICRiYXNlLWNvbG9yLWhvdmVyOiBncmF5c2NhbGUoJGJhc2UtY29sb3ItaG92ZXIpO1xyXG4gICAgfVxyXG5cclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYXNlLWNvbG9yLWhvdmVyO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIH1cclxuXHJcbiAgJjphY3RpdmU6bm90KDpkaXNhYmxlZCksXHJcbiAgJjpmb2N1czpub3QoOmRpc2FibGVkKSB7XHJcbiAgICAkYmFzZS1jb2xvci1hY3RpdmU6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IC00JSwgJGxpZ2h0bmVzczogLTUlKTtcclxuXHJcbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcclxuICAgICAgJGJhc2UtY29sb3ItYWN0aXZlOiBncmF5c2NhbGUoJGJhc2UtY29sb3ItYWN0aXZlKTtcclxuICAgIH1cclxuXHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFzZS1jb2xvci1hY3RpdmU7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgfVxyXG59XHJcblxyXG4vLyBGbGV4aWJsZSBncmlkXHJcbkBmdW5jdGlvbiBmbGV4LWdyaWQoJGNvbHVtbnMsICRjb250YWluZXItY29sdW1uczogJGZnLW1heC1jb2x1bW5zKSB7XHJcbiAgJHdpZHRoOiAkY29sdW1ucyAqICRmZy1jb2x1bW4gKyAoJGNvbHVtbnMgLSAxKSAqICRmZy1ndXR0ZXI7XHJcbiAgJGNvbnRhaW5lci13aWR0aDogJGNvbnRhaW5lci1jb2x1bW5zICogJGZnLWNvbHVtbiArICgkY29udGFpbmVyLWNvbHVtbnMgLSAxKSAqICRmZy1ndXR0ZXI7XHJcbiAgQHJldHVybiBwZXJjZW50YWdlKCR3aWR0aCAvICRjb250YWluZXItd2lkdGgpO1xyXG5cclxuICBAd2FybiBcIlRoZSBmbGV4LWdyaWQgZnVuY3Rpb24gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gcmVsZWFzZVwiO1xyXG59XHJcblxyXG4vLyBGbGV4aWJsZSBndXR0ZXJcclxuQGZ1bmN0aW9uIGZsZXgtZ3V0dGVyKCRjb250YWluZXItY29sdW1uczogJGZnLW1heC1jb2x1bW5zLCAkZ3V0dGVyOiAkZmctZ3V0dGVyKSB7XHJcbiAgJGNvbnRhaW5lci13aWR0aDogJGNvbnRhaW5lci1jb2x1bW5zICogJGZnLWNvbHVtbiArICgkY29udGFpbmVyLWNvbHVtbnMgLSAxKSAqICRmZy1ndXR0ZXI7XHJcbiAgQHJldHVybiBwZXJjZW50YWdlKCRndXR0ZXIgLyAkY29udGFpbmVyLXdpZHRoKTtcclxuXHJcbiAgQHdhcm4gXCJUaGUgZmxleC1ndXR0ZXIgZnVuY3Rpb24gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gcmVsZWFzZVwiO1xyXG59XHJcblxyXG5AZnVuY3Rpb24gZ3JpZC13aWR0aCgkbikge1xyXG4gIEByZXR1cm4gJG4gKiAkZ3ctY29sdW1uICsgKCRuIC0gMSkgKiAkZ3ctZ3V0dGVyO1xyXG5cclxuICBAd2FybiBcIlRoZSBncmlkLXdpZHRoIGZ1bmN0aW9uIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIHJlbGVhc2VcIjtcclxufVxyXG5cclxuQGZ1bmN0aW9uIGdvbGRlbi1yYXRpbygkdmFsdWUsICRpbmNyZW1lbnQpIHtcclxuICBAcmV0dXJuIG1vZHVsYXItc2NhbGUoJGluY3JlbWVudCwgJHZhbHVlLCAkcmF0aW86ICRnb2xkZW4pO1xyXG5cclxuICBAd2FybiBcIlRoZSBnb2xkZW4tcmF0aW8gZnVuY3Rpb24gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gcmVsZWFzZS4gUGxlYXNlIHVzZSB0aGUgbW9kdWxhci1zY2FsZSBmdW5jdGlvbiwgaW5zdGVhZC5cIjtcclxufVxyXG5cclxuQG1peGluIGJveC1zaXppbmcoJGJveCkge1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1zaXppbmcsICRib3gsIHdlYmtpdCBtb3ogc3BlYyk7XHJcblxyXG4gIEB3YXJuIFwiVGhlIGJveC1zaXppbmcgbWl4aW4gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gcmVsZWFzZS4gVGhpcyBwcm9wZXJ0eSBjYW4gbm93IGJlIHVzZWQgdW4tcHJlZml4ZWQuXCI7XHJcbn1cclxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O2dHQUlnRztBQ0poRzs7OztnR0FJZ0c7QUFFaEcsNkNBQTZDO0FBZ0Y3QztnR0FDZ0c7QURoRmhHLE1BQU0sQ0FBQyxHQUFHLE1BQU0sU0FBUyxFQUFFLEtBQUs7RUFFL0IsQUFBQSxrQkFBa0IsQ0FBQztJQUFDLEtBQUssRUFBRSxlQUFlO0lBQUUsTUFBTSxFQUFFLGNBQWM7R0FBRztFQUVyRSxBQUFBLFFBQVEsRUFBRSxVQUFVLENBQUM7SUFBQyxLQUFLLEVBQUUsSUFBSTtJQUFFLE1BQU0sRUFBQyxNQUFNO0dBQUc7RUFFbkQsQUFBQSxJQUFJLENBQUM7SUFDSixNQUFNLEVBQUUsSUFBSTtJQUFFLFdBQVcsRUFBRSxJQUFJO0lBQUUsT0FBTyxFQUFFLE1BQU07R0FPaEQ7RUFSRCxBQUVDLElBRkcsQUFFRixHQUFHLENBQUM7SUFBQyxNQUFNLEVBQUUsSUFBSTtJQUFFLFdBQVcsRUFBRSxJQUFJO0lBQUUsT0FBTyxFQUFFLE1BQU07R0FBRztFQUYxRCxBQUdDLElBSEcsQUFHRixPQUFPLENBQUM7SUFBQyxPQUFPLEVBQUMsTUFBTTtJQUFFLFNBQVMsRUFBRSxJQUFJO0dBQUc7RUFIN0MsQUFJQyxJQUpHLEFBSUYsSUFBSSxDQUFDO0lBQUMsTUFBTSxFQUFFLElBQUk7SUFBRSxXQUFXLEVBQUUsSUFBSTtHQUFHO0VBSjFDLEFBS0MsSUFMRyxBQUtGLGNBQWMsQ0FBQztJQUNmLE1BQU0sRUFBRSxJQUFJO0lBQUUsV0FBVyxFQUFFLElBQUk7SUFBRSxPQUFPLEVBQUUsTUFBTTtHQUNoRDtFQUdGLEFBQUEsTUFBTSxDQUFDO0lBQ04sTUFBTSxFQUFFLElBQUk7R0FvRVo7RUFyRUQsQUFFQyxNQUZLLENBRUwsU0FBUyxDQUFDO0lBQ1QsTUFBTSxFQUFFLFVBQVU7R0FpQmxCO0VBcEJGLEFBSUUsTUFKSSxDQUVMLFNBQVMsQ0FFUixDQUFDLENBQUM7SUFDRCxNQUFNLEVBQUUsSUFBSTtJQUFFLFdBQVcsRUFBRSxJQUFJO0lBQUUsU0FBUyxFQUFFLElBQUk7R0FFaEQ7RUFQSCxBQU1HLE1BTkcsQ0FFTCxTQUFTLENBRVIsQ0FBQyxBQUVDLEtBQUssQ0FBQztJQUFDLE9BQU8sRUFBRSxJQUFJO0dBQUc7RUFOM0IsQUFTRyxNQVRHLENBRUwsU0FBUyxDQU1SLEtBQUssQ0FDSixJQUFJLENBQUM7SUFDSixXQUFXLEVBQUUsQ0FBQztJQUFFLFVBQVUsRUFBRSxJQUFJO0dBRWhDO0VBWkosQUFXSSxNQVhFLENBRUwsU0FBUyxDQU1SLEtBQUssQ0FDSixJQUFJLEFBRUYsTUFBTSxDQUFDO0lBQUMsR0FBRyxFQUFFLEdBQUc7R0FBRztFQVh4QixBQWFHLE1BYkcsQ0FFTCxTQUFTLENBTVIsS0FBSyxDQUtKLEVBQUUsQ0FBQztJQUNGLFdBQVcsRUFBRSxHQUFHO0dBSWhCO0VBbEJKLEFBZ0JLLE1BaEJDLENBRUwsU0FBUyxDQU1SLEtBQUssQ0FLSixFQUFFLENBRUQsRUFBRSxDQUNELENBQUMsQ0FBQztJQUFDLE1BQU0sRUFBRSxJQUFJO0lBQUUsV0FBVyxFQUFFLElBQUk7R0FBRztFQWhCMUMsQUFxQkMsTUFyQkssQ0FxQkwsS0FBSyxDQUFDO0lBQ0wsS0FBSyxFQUFFLEtBQUs7SUFBRSxNQUFNLEVBQUUsSUFBSTtJQUFFLE9BQU8sRUFBRSxVQUFVO0dBQy9DO0VBdkJGLEFBd0JDLE1BeEJLLENBd0JMLFlBQVksQ0FBQztJQUNaLE1BQU0sRUFBRSxZQUFZO0lBQUUsS0FBSyxFQUFFLElBQUk7SUFBRSxNQUFNLEVBQUUsSUFBSTtHQVcvQztFQXBDRixBQTBCRSxNQTFCSSxDQXdCTCxZQUFZLENBRVgsSUFBSSxDQUFDO0lBQ0osS0FBSyxFQUFFLElBQUk7SUFBRSxNQUFNLEVBQUUsR0FBRztHQUd4QjtFQTlCSCxBQTRCRyxNQTVCRyxDQXdCTCxZQUFZLENBRVgsSUFBSSxBQUVGLFVBQVcsQ0FBQSxDQUFDLEVBQUU7SUFBQyxHQUFHLEVBQUUsR0FBRztHQUFHO0VBNUI5QixBQTZCRyxNQTdCRyxDQXdCTCxZQUFZLENBRVgsSUFBSSxBQUdGLFVBQVcsQ0FBQSxDQUFDLEVBQUU7SUFBQyxHQUFHLEVBQUUsSUFBSTtHQUFHO0VBN0IvQixBQWlDSSxNQWpDRSxDQXdCTCxZQUFZLEFBT1YsT0FBTyxDQUNQLElBQUksQUFDRixVQUFXLENBQUEsQ0FBQyxFQUFDO0lBQUMsR0FBRyxFQUFFLElBQUk7R0FBRztFQWpDL0IsQUFxQ0MsTUFyQ0ssQUFxQ0osTUFBTSxDQUFDO0lBQ1AsTUFBTSxFQUFFLElBQUk7R0E4Qlo7RUFwRUYsQUF1Q0UsTUF2Q0ksQUFxQ0osTUFBTSxDQUVOLFNBQVMsQ0FBQztJQUNULE1BQU0sRUFBRSxVQUFVO0dBV2xCO0VBbkRILEFBeUNHLE1BekNHLEFBcUNKLE1BQU0sQ0FFTixTQUFTLENBRVIsQ0FBQyxDQUFDO0lBQ0QsTUFBTSxFQUFFLElBQUk7SUFBRSxXQUFXLEVBQUUsSUFBSTtJQUFFLFNBQVMsRUFBRSxJQUFJO0dBRWhEO0VBNUNKLEFBMkNJLE1BM0NFLEFBcUNKLE1BQU0sQ0FFTixTQUFTLENBRVIsQ0FBQyxBQUVDLEtBQUssQ0FBQztJQUFDLE9BQU8sRUFBRSxJQUFJO0dBQUc7RUEzQzVCLEFBOENJLE1BOUNFLEFBcUNKLE1BQU0sQ0FFTixTQUFTLENBTVIsS0FBSyxDQUNKLElBQUksQ0FBQztJQUNKLFdBQVcsRUFBRSxDQUFDO0dBRWQ7RUFqREwsQUFnREssTUFoREMsQUFxQ0osTUFBTSxDQUVOLFNBQVMsQ0FNUixLQUFLLENBQ0osSUFBSSxBQUVGLE1BQU0sQ0FBQztJQUFDLEdBQUcsRUFBRSxHQUFHO0dBQUc7RUFoRHpCLEFBb0RFLE1BcERJLEFBcUNKLE1BQU0sQ0FlTixLQUFLLENBQUM7SUFDTCxLQUFLLEVBQUUsS0FBSztJQUFFLE1BQU0sRUFBRSxJQUFJO0lBQUUsT0FBTyxFQUFFLFVBQVU7R0FDL0M7RUF0REgsQUF1REUsTUF2REksQUFxQ0osTUFBTSxDQWtCTixZQUFZLENBQUM7SUFDWixNQUFNLEVBQUUsWUFBWTtJQUFFLEtBQUssRUFBRSxJQUFJO0lBQUUsTUFBTSxFQUFFLElBQUk7R0FXL0M7RUFuRUgsQUF5REcsTUF6REcsQUFxQ0osTUFBTSxDQWtCTixZQUFZLENBRVgsSUFBSSxDQUFDO0lBQ0osS0FBSyxFQUFFLElBQUk7SUFBRSxNQUFNLEVBQUUsR0FBRztHQUd4QjtFQTdESixBQTJESSxNQTNERSxBQXFDSixNQUFNLENBa0JOLFlBQVksQ0FFWCxJQUFJLEFBRUYsVUFBVyxDQUFBLENBQUMsRUFBRTtJQUFDLEdBQUcsRUFBRSxHQUFHO0lBQUUsS0FBSyxFQUFFLEdBQUc7R0FBRztFQTNEM0MsQUE0REksTUE1REUsQUFxQ0osTUFBTSxDQWtCTixZQUFZLENBRVgsSUFBSSxBQUdGLFVBQVcsQ0FBQSxDQUFDLEVBQUU7SUFBQyxHQUFHLEVBQUUsSUFBSTtHQUFHO0VBNURoQyxBQWdFSyxNQWhFQyxBQXFDSixNQUFNLENBa0JOLFlBQVksQUFPVixPQUFPLENBQ1AsSUFBSSxBQUNGLFVBQVcsQ0FBQSxDQUFDLEVBQUM7SUFBQyxHQUFHLEVBQUUsSUFBSTtHQUFHO0VBT2hDLEFBQUEsV0FBVyxDQUFDO0lBQUMsT0FBTyxFQUFFLElBQUk7R0FBRztFQUU3QixBQUFBLFdBQVcsQ0FBQztJQUNYLE9BQU8sRUFBRSxhQUFhO0lBQUUsVUFBVSxFQUFFLE1BQU07R0E0QzFDO0VBN0NELEFBRUMsV0FGVSxDQUVWLE9BQU8sQ0FBQztJQUNQLE9BQU8sRUFBRSxDQUFDO0dBMkJWO0VBOUJGLEFBSUUsV0FKUyxDQUVWLE9BQU8sQ0FFTixFQUFFLENBQUM7SUFDRixPQUFPLEVBQUUsYUFBYTtHQUt0QjtFQVZILEFBT0ksV0FQTyxDQUVWLE9BQU8sQ0FFTixFQUFFLENBRUQsRUFBRSxDQUNELEVBQUUsQ0FBQztJQUFDLE1BQU0sRUFBRSxHQUFHO0dBQUc7RUFQdEIsQUFRSSxXQVJPLENBRVYsT0FBTyxDQUVOLEVBQUUsQ0FFRCxFQUFFLENBRUQsQ0FBQyxDQUFDO0lBQUMsU0FBUyxFQUFFLElBQUk7SUFBRSxPQUFPLEVBQUUsTUFBTTtHQUFHO0VBUjFDLEFBV0UsV0FYUyxDQUVWLE9BQU8sQ0FTTixRQUFRLEVBWFYsV0FBVyxDQUVWLE9BQU8sQ0FTSSxVQUFVLENBQUM7SUFDcEIsT0FBTyxFQUFFLE1BQU07SUFBRSxNQUFNLEVBQUUsR0FBRztJQUFFLEdBQUcsRUFBRSxJQUFJO0dBaUJqQztFQTdCVCxBQWFZLFdBYkQsQ0FFVixPQUFPLENBU04sUUFBUSxDQUVFLE1BQU0sRUFibEIsV0FBVyxDQUVWLE9BQU8sQ0FTSSxVQUFVLENBRVYsTUFBTSxDQUFDO0lBQ04sU0FBUyxFQUFFLElBQUk7SUFBRSxXQUFXLEVBQUUsSUFBSTtJQUFFLEtBQUssRUN5QjFDLE9BQU87SUR6QmtELGFBQWEsRUFBRSxJQUFJO0dBRTNFO0VBaEJiLEFBZWEsV0FmRixDQUVWLE9BQU8sQ0FTTixRQUFRLENBRUUsTUFBTSxDQUVMLENBQUMsRUFmZCxXQUFXLENBRVYsT0FBTyxDQVNJLFVBQVUsQ0FFVixNQUFNLENBRUwsQ0FBQyxDQUFDO0lBQUMsV0FBVyxFQUFFLElBQUk7SUFBRSxTQUFTLEVBQUUsSUFBSTtHQUFHO0VBZnJELEFBaUJZLFdBakJELENBRVYsT0FBTyxDQVNOLFFBQVEsQ0FNRSxLQUFLLEVBakJqQixXQUFXLENBRVYsT0FBTyxDQVNOLFFBQVEsQ0FNUyxPQUFPLEVBakIxQixXQUFXLENBRVYsT0FBTyxDQVNJLFVBQVUsQ0FNVixLQUFLLEVBakJqQixXQUFXLENBRVYsT0FBTyxDQVNJLFVBQVUsQ0FNSCxPQUFPLENBQUM7SUFDWCxNQUFNLEVBQUUsVUFBVTtHQUlyQjtFQXRCYixBQW1CZ0IsV0FuQkwsQ0FFVixPQUFPLENBU04sUUFBUSxDQU1FLEtBQUssQ0FFRCxDQUFDLEVBbkJqQixXQUFXLENBRVYsT0FBTyxDQVNOLFFBQVEsQ0FNUyxPQUFPLENBRVYsQ0FBQyxFQW5CakIsV0FBVyxDQUVWLE9BQU8sQ0FTSSxVQUFVLENBTVYsS0FBSyxDQUVELENBQUMsRUFuQmpCLFdBQVcsQ0FFVixPQUFPLENBU0ksVUFBVSxDQU1ILE9BQU8sQ0FFVixDQUFDLENBQUM7SUFDRSxPQUFPLEVBQUUsQ0FBQztJQUFFLEtBQUssRUFBRSxJQUFJO0lBQUUsTUFBTSxFQUFFLElBQUk7SUFBRSxlQUFlLEVBQUMsU0FBUztHQUNuRTtFQXJCakIsQUF5QmdCLFdBekJMLENBRVYsT0FBTyxDQVNOLFFBQVEsQ0FZRSxFQUFFLENBRUUsQ0FBQyxFQXpCakIsV0FBVyxDQUVWLE9BQU8sQ0FTSSxVQUFVLENBWVYsRUFBRSxDQUVFLENBQUMsQ0FBQztJQUNFLE9BQU8sRUFBRSxNQUFNO0lBQUUsU0FBUyxFQUFFLElBQUk7R0FDbkM7RUEzQmpCLEFBaUNHLFdBakNRLENBK0JWLFdBQVcsQ0FDVixFQUFFLENBQ0QsRUFBRSxDQUFDO0lBQ0YsT0FBTyxFQUFFLEtBQUs7R0FLZDtFQXZDSixBQW1DSSxXQW5DTyxDQStCVixXQUFXLENBQ1YsRUFBRSxDQUNELEVBQUUsQ0FFRCxDQUFDLENBQUM7SUFDRCxLQUFLLEVBQUUsZUFBZTtJQUFFLE1BQU0sRUFBRSxlQUFlO0lBQy9DLGVBQWUsRUFBRSxvQkFBb0I7R0FDckM7RUF0Q0wsQUEwQ0MsV0ExQ1UsQ0EwQ1YsU0FBUyxDQUFDO0lBQ1QsT0FBTyxFQUFDLFlBQVk7R0FDcEI7RUFHRixBQUFBLE9BQU8sQ0FBQztJQUNQLFdBQVcsRUFBRSxJQUFJO0dBQ2pCO0VBRUQsQUFDQyxXQURVLENBQ1YsUUFBUSxDQUFDO0lBQ1IsS0FBSyxFQUFFLElBQUk7SUFBRSxPQUFPLEVBQUUsTUFBTTtJQUFFLElBQUksRUFBRSxDQUFDO0lDcElwQyxTQUFTLEVEcUlTLGtCQUFrQjtJQ3BJcEMsaUJBQWlCLEVEb0lDLGtCQUFrQjtJQ25JcEMsY0FBYyxFRG1JSSxrQkFBa0I7SUNsSXBDLGFBQWEsRURrSUssa0JBQWtCO0lDaklwQyxZQUFZLEVEaUlNLGtCQUFrQjtJQzdGcEMsa0JBQWtCLEVEOEZBLFVBQVU7SUM3RjVCLGVBQWUsRUQ2RkcsVUFBVTtJQzVGNUIsVUFBVSxFRDRGUSxVQUFVO0dBRzdCO0VBUEYsQUFLRSxXQUxTLENBQ1YsUUFBUSxDQUlQLE1BQU0sQ0FBQztJQUFDLFNBQVMsRUFBRSxJQUFJO0lBQUUsV0FBVyxFQUFDLElBQUk7SUFBRSxhQUFhLEVBQUUsSUFBSTtHQUFHO0VBTG5FLEFBTUUsV0FOUyxDQUNWLFFBQVEsQ0FLUCxJQUFJLENBQUM7SUFBQyxTQUFTLEVBQUUsSUFBSTtJQUFFLGFBQWEsRUFBRSxJQUFJO0dBQUc7RUFJL0MsQUFBQSxTQUFTLENBQUM7SUFDVCxPQUFPLEVBQUUsTUFBTTtHQVVmO0VBWEQsQUFHRSxTQUhPLENBRVIsSUFBSSxDQUNILElBQUksQ0FBQztJQUNKLEtBQUssRUFBRSxHQUFHO0lBQUUsTUFBTSxFQUFFLElBQUk7R0FLeEI7RUFUSCxBQUtHLFNBTE0sQ0FFUixJQUFJLENBQ0gsSUFBSSxDQUVILENBQUMsQ0FBQztJQUNELE1BQU0sRUFBRSxJQUFJO0lBQUUsVUFBVSxFQUFFLE1BQU07SUFBRSxPQUFPLEVBQUUsS0FBSztHQUVoRDtFQVJKLEFBT0ksU0FQSyxDQUVSLElBQUksQ0FDSCxJQUFJLENBRUgsQ0FBQyxDQUVBLEdBQUcsQ0FBQztJQUFDLElBQUksRUFBRSxDQUFDO0lDbkpiLFNBQVMsRURtSnlCLGtCQUFpQjtJQ2xKbkQsaUJBQWlCLEVEa0ppQixrQkFBaUI7SUNqSm5ELGNBQWMsRURpSm9CLGtCQUFpQjtJQ2hKbkQsYUFBYSxFRGdKcUIsa0JBQWlCO0lDL0luRCxZQUFZLEVEK0lzQixrQkFBaUI7R0FBSTtFQUsxRCxBQUNDLFFBRE8sQ0FDUCxFQUFFLENBQUM7SUFDRixTQUFTLEVBQUUsSUFBSTtJQUFFLGFBQWEsRUFBRSxJQUFJO0lBQUUsWUFBWSxFQUFFLENBQUM7R0FTckQ7RUFYRixBQUdFLFFBSE0sQ0FDUCxFQUFFLENBRUQsSUFBSSxDQUFDO0lBQUMsU0FBUyxFQUFFLElBQUk7SUFBRSxHQUFHLEVBQUUsS0FBSztJQUFFLElBQUksRUFBRSxDQUFDO0lBQUUsV0FBVyxFQUFFLENBQUM7R0FBRztFQUgvRCxBQUlFLFFBSk0sQ0FDUCxFQUFFLEFBR0EsSUFBSSxDQUFDO0lBQUMsTUFBTSxFQUFFLENBQUM7R0FBRztFQUpyQixBQU1HLFFBTkssQ0FDUCxFQUFFLEFBSUEsS0FBSyxDQUNMLElBQUksQ0FBQztJQUFDLElBQUksRUFBRSxDQUFDO0dBQUc7RUFObkIsQUFTRyxRQVRLLENBQ1AsRUFBRSxBQU9BLE1BQU0sQ0FDTixJQUFJLENBQUM7SUFBQyxXQUFXLEVBQUUsQ0FBQztHQUFHO0VBVDFCLEFBWUMsUUFaTyxDQVlQLEVBQUUsQ0FBQztJQUNGLFNBQVMsRUFBRSxJQUFJO0lBQUUsV0FBVyxFQUFFLElBQUk7R0FFbEM7RUFmRixBQWNFLFFBZE0sQ0FZUCxFQUFFLEFBRUEsR0FBRyxDQUFDO0lBQUMsV0FBVyxFQUFFLElBQUk7R0FBRztFQUk1QixBQUNDLFdBRFUsQ0FDVixVQUFVLENBQUM7SUFBQyxPQUFPLEVBQUUsTUFBTTtHQUFHO0VBRC9CLEFBRUMsV0FGVSxDQUVWLEtBQUssQ0FBQztJQUNMLEtBQUssRUFBRSxJQUFJO0dBVVg7RUFiRixBQUlFLFdBSlMsQ0FFVixLQUFLLENBRUosQ0FBQyxDQUFDO0lBQUMsU0FBUyxFQUFFLElBQUk7SUFBRSxXQUFXLEVBQUUsSUFBSTtHQUFHO0VBSjFDLEFBTUcsV0FOUSxDQUVWLEtBQUssQ0FHSixFQUFFLENBQ0QsRUFBRSxDQUFDO0lBQ0YsU0FBUyxFQUFFLE1BQU07SUFBRSxPQUFPLEVBQUUsY0FBYztHQUkxQztFQVhKLEFBUUksV0FSTyxDQUVWLEtBQUssQ0FHSixFQUFFLENBQ0QsRUFBRSxBQUVBLE1BQU0sQ0FBQztJQUNQLElBQUksRUFBQyxJQUFJO0dBQ1Q7RUFNTCxBQUNDLGFBRFksQ0FDWixVQUFVLENBQUM7SUFBQyxPQUFPLEVBQUUsTUFBTTtHQUFHO0VBRC9CLEFBR0UsYUFIVyxDQUVaLElBQUksQ0FDSCxDQUFDLENBQUM7SUFBQyxVQUFVLEVBQUUsS0FBSztHQUFHO0VBSHpCLEFBSUUsYUFKVyxDQUVaLElBQUksQ0FFSCxJQUFJLENBQUM7SUFDSixLQUFLLEVBQUUsSUFBSTtJQUFFLE1BQU0sRUFBRSxVQUFVO0dBTS9CO0VBWEgsQUFRSyxhQVJRLENBRVosSUFBSSxDQUVILElBQUksQUFFRixRQUFRLENBQ1IsSUFBSSxDQUNILEdBQUcsQ0FBQztJQUFDLEtBQUssRUFBRSxJQUFJO0dBQUc7RUFSeEIsQUFpQkssYUFqQlEsQUFhWCxHQUFHLENBQ0gsSUFBSSxDQUNILElBQUksQUFDRixRQUFRLENBQ1IsSUFBSSxDQUFDO0lBQUMsT0FBTyxFQUFFLFNBQVM7R0FBRztFQWpCaEMsQUF1QkUsYUF2QlcsQUFzQlgsU0FBUyxDQUNULFdBQVcsQ0FBQztJQUNYLE1BQU0sRUFBRSxNQUFNO0dBQ2Q7RUF6QkgsQUEwQkUsYUExQlcsQUFzQlgsU0FBUyxDQUlULFlBQVksQ0FBQztJQUNaLEtBQUssRUFBRSxJQUFJO0lBQUUsTUFBTSxFQUFDLElBQUk7SUFDeEIsZUFBZSxFQUFFLG9CQUFvQjtHQVNyQztFQXJDSCxBQTZCRyxhQTdCVSxBQXNCWCxTQUFTLENBSVQsWUFBWSxBQUdWLFdBQVcsQ0FBQztJQUNaLG1CQUFtQixFQUFFLGtCQUFrQjtHQUV2QztFQWhDSixBQStCSSxhQS9CUyxBQXNCWCxTQUFTLENBSVQsWUFBWSxBQUdWLFdBQVcsQUFFVixlQUFlLENBQUM7SUFBQyxtQkFBbUIsRUFBRSxrQkFBa0I7R0FBRztFQS9CaEUsQUFpQ0csYUFqQ1UsQUFzQlgsU0FBUyxDQUlULFlBQVksQUFPVixXQUFXLENBQUM7SUFDWixtQkFBbUIsRUFBRSxjQUFjO0dBRW5DO0VBcENKLEFBbUNJLGFBbkNTLEFBc0JYLFNBQVMsQ0FJVCxZQUFZLEFBT1YsV0FBVyxBQUVWLGVBQWUsQ0FBQztJQUFDLG1CQUFtQixFQUFFLGNBQWM7R0FBRztFQW5DNUQsQUF1Q0csYUF2Q1UsQUFzQlgsU0FBUyxDQWdCVCxJQUFJLENBQ0gsSUFBSSxDQUFDO0lBQ0osTUFBTSxFQUFFLFVBQVU7R0FHbEI7RUEzQ0osQUF5Q0ksYUF6Q1MsQUFzQlgsU0FBUyxDQWdCVCxJQUFJLENBQ0gsSUFBSSxBQUVGLFVBQVcsQ0FBQSxJQUFJLEVBQUU7SUFBQyxZQUFZLEVBQUUsRUFBRTtJQUFFLE9BQU8sRUFBRSxZQUFZO0dBQUc7RUF6Q2pFLEFBMENJLGFBMUNTLEFBc0JYLFNBQVMsQ0FnQlQsSUFBSSxDQUNILElBQUksQUFHRixVQUFXLENBQUEsSUFBSSxFQUFFO0lBQUMsWUFBWSxFQUFFLEVBQUU7R0FBRztFQU0xQyxBQUVFLFNBRk8sQ0FDUixJQUFJLENBQ0gsSUFBSSxDQUFDO0lBQ0osS0FBSyxFQUFFLElBQUk7SUFBRSxLQUFLLEVBQUUsQ0FBQztHQThCckI7RUFqQ0gsQUFJRyxTQUpNLENBQ1IsSUFBSSxDQUNILElBQUksQ0FFSCxLQUFLLENBQUM7SUFDTCxPQUFPLEVBQUUsSUFBSTtHQUliO0VBVEosQUFNSSxTQU5LLENBQ1IsSUFBSSxDQUNILElBQUksQ0FFSCxLQUFLLENBRUosTUFBTSxDQUFDO0lBQ04sU0FBUyxFQUFFLElBQUk7SUFBRSxXQUFXLEVBQUUsSUFBSTtHQUNsQztFQVJMLEFBV0ksU0FYSyxDQUNSLElBQUksQ0FDSCxJQUFJLENBUUgsSUFBSSxBQUNGLE1BQU0sQ0FBQztJQUFDLFVBQVUsRUFBRSx1Q0FBdUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU07R0FBRztFQVhyRixBQWVLLFNBZkksQ0FDUixJQUFJLENBQ0gsSUFBSSxBQVdGLE1BQU0sQ0FDTixLQUFLLENBQ0osTUFBTSxDQUFDO0lBQ04sU0FBUyxFQUFFLElBQUk7SUFBRSxXQUFXLEVBQUUsSUFBSTtHQUNsQztFQWpCTixBQW9CSyxTQXBCSSxDQUNSLElBQUksQ0FDSCxJQUFJLEFBV0YsTUFBTSxDQU1OLENBQUMsQUFDQyxPQUFPLENBQUM7SUFBQyxLQUFLLEVBQUUsSUFBSTtJQUFFLE1BQU0sRUFBRSxJQUFJO0lBQUUsZUFBZSxFQUFDLElBQUk7R0FBRztFQXBCakUsQUF1QkssU0F2QkksQ0FDUixJQUFJLENBQ0gsSUFBSSxBQVdGLE1BQU0sQ0FTTixJQUFJLEFBQ0YsTUFBTSxDQUFDO0lBQUMsVUFBVSxFQUFFLHVDQUF1QyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTTtHQUFHO0VBdkJ0RixBQTJCd0IsU0EzQmYsQ0FDUixJQUFJLENBQ0gsSUFBSSxBQVdGLE1BQU0sQUFZTCxLQUFLLENBQ1UsQ0FBQyxBQUNJLE9BQU8sQ0FBQztJQUNMLEtBQUssRUFBRSxJQUFJO0lBQUUsTUFBTSxFQUFFLElBQUk7R0FDNUI7RUFRekIsQUFDQyxXQURVLENBQ1YsVUFBVSxDQUFDO0lBQ1YsT0FBTyxFQUFFLE1BQU07R0FFZjtFQUpGLEFBR0UsV0FIUyxDQUNWLFVBQVUsQUFFUixNQUFNLENBQUM7SUFBQyxPQUFPLEVBQUMsSUFBSTtHQUFHO0VBSDFCLEFBS0MsV0FMVSxDQUtWLFVBQVUsQ0FBQztJQUNWLE9BQU8sRUFBRSxVQUFVO0dBU25CO0VBZkYsQUFRRyxXQVJRLENBS1YsVUFBVSxDQUVULENBQUMsQUFDQyxNQUFNLENBQUM7SUFDUCxHQUFHLEVBQUMsQ0FBQztJQUFFLElBQUksRUFBRSxDQUFDO0lBQUUsS0FBSyxFQUFFLElBQUk7SUFBRSxNQUFNLEVBQUUsSUFBSTtHQUN6QztFQVZKLEFBWUUsV0FaUyxDQUtWLFVBQVUsQ0FPVCxTQUFTLENBQUM7SUFDVCxPQUFPLEVBQUUsVUFBVTtHQUNuQjtFQWRILEFBZ0JDLFdBaEJVLENBZ0JWLGFBQWEsQ0FBQztJQUNiLE1BQU0sRUFBRSxDQUFDO0dBRVQ7RUFuQkYsQUFrQkUsV0FsQlMsQ0FnQlYsYUFBYSxDQUVaLFdBQVcsQ0FBQztJQUFDLE1BQU0sRUFBRSxLQUFLO0dBQUc7RUFJL0IsQUFBQSxTQUFTLENBQUM7SUFDVCxRQUFRLEVBQUUsUUFBUTtJQUFFLE1BQU0sRUFBRSxJQUFJO0dBVWhDO0VBWEQsQUFFQyxTQUZRLEFBRVAsT0FBTyxDQUFDO0lBQ1IsUUFBUSxFQUFFLFFBQVE7SUFBRSxHQUFHLEVBQUUsQ0FBQztJQUFFLElBQUksRUFBRSxDQUFDO0lBQUUsS0FBSyxFQUFFLElBQUk7SUFBRSxNQUFNLEVBQUUsSUFBSTtJQUFFLE9BQU8sRUFBRSxFQUFFO0lBQzNFLE9BQU8sRUFBRSxDQUFDO0lBQUUsVUFBVSxFQUFFLHNCQUFvQjtHQUM1QztFQUxGLEFBTUMsU0FOUSxDQU1SLFVBQVUsQ0FBQztJQUFDLE9BQU8sRUFBRSxNQUFNO0lBQUUsT0FBTyxFQUFFLENBQUM7R0FBRztFQU4zQyxBQU9DLFNBUFEsQ0FPUixLQUFLLENBQUM7SUFDTCxLQUFLLEVBQUUsSUFBSTtHQUVYO0VBVkYsQUFTRSxTQVRPLENBT1IsS0FBSyxDQUVKLEVBQUUsQ0FBQztJQUFDLFNBQVMsRUFBRSxJQUFJO0lBQUUsV0FBVyxFQUFFLElBQUk7R0FBRztFQUkzQyxBQUNDLGFBRFksQ0FDWixVQUFVLENBQUM7SUFBQyxPQUFPLEVBQUUsTUFBTTtHQUFHO0VBRC9CLEFBR0UsYUFIVyxDQUVaLElBQUksQ0FDSCxFQUFFLENBQUM7SUFBQyxXQUFXLEVBQUUsSUFBSTtHQUFHO0VBSDFCLEFBSUUsYUFKVyxDQUVaLElBQUksQUFFRixJQUFJLENBQUM7SUFDTCxjQUFjLEVBQUUsSUFBSTtHQUVwQjtFQVBILEFBTUcsYUFOVSxDQUVaLElBQUksQUFFRixJQUFJLENBRUosQ0FBQyxDQUFDO0lBQUMsV0FBVyxFQUFFLElBQUk7R0FBRztFQU4xQixBQVVJLGFBVlMsQ0FFWixJQUFJLEFBTUYsUUFBUSxDQUNSLElBQUksQ0FDSCxLQUFLLENBQUM7SUFDTCxLQUFLLEVBQUUsSUFBSTtJQUFFLE1BQU0sRUFBRSxDQUFDO0lDclJ4QixrQkFBa0IsRUR1UkcsVUFBVTtJQ3RSL0IsZUFBZSxFRHNSTSxVQUFVO0lDclIvQixVQUFVLEVEcVJXLFVBQVU7R0FDN0I7RUFkTCxBQVlLLGFBWlEsQ0FFWixJQUFJLEFBTUYsUUFBUSxDQUNSLElBQUksQ0FDSCxLQUFLLEFBRUgsT0FBTyxDQUFDO0lBQUMsR0FBRyxFQUFDLEdBQUc7R0FBRztFQVF6QixBQUVFLFdBRlMsQ0FDVixFQUFFLENBQ0QsRUFBRSxDQUFDO0lBQ0YsYUFBYSxFQUFFLEdBQUc7SUFBRSxTQUFTLEVBQUUsSUFBSTtHQUtuQztFQVJILEFBSUcsV0FKUSxDQUNWLEVBQUUsQ0FDRCxFQUFFLENBRUQsQ0FBQyxDQUFDO0lBQUMsT0FBTyxFQUFFLFdBQVc7R0FBRztFQUo3QixBQU1JLFdBTk8sQ0FDVixFQUFFLENBQ0QsRUFBRSxBQUdBLFlBQVksQ0FDWixDQUFDLENBQUM7SUFBQyxZQUFZLEVBQUMsQ0FBQztHQUFHO0VBTXhCLEFBQUEsV0FBVyxDQUFDO0lBQ1gsTUFBTSxFQUFFLElBQUk7SUFBRSxNQUFNLEVBQUUsQ0FBQztHQUt2QjtFQU5ELEFBRUMsV0FGVSxDQUVWLEVBQUUsQ0FBQztJQUNGLE1BQU0sRUFBRSxLQUFLO0dBRWI7RUFMRixBQUlFLFdBSlMsQ0FFVixFQUFFLENBRUQsTUFBTSxDQUFDO0lBQUMsS0FBSyxFQUFFLElBQUk7SUFBRSxNQUFNLEVBQUUsSUFBSTtHQUFHO0VBR3RDLEFBQUEsWUFBWSxDQUFDO0lBQ1osS0FBSyxFQUFFLElBQUk7SUFBRSxNQUFNLEVBQUUsSUFBSTtHQUV6QjtFQUhELEFBRUMsWUFGVyxBQUVWLE1BQU0sQ0FBQztJQUFDLEtBQUssRUFBRSxJQUFJO0lBQUUsTUFBTSxFQUFFLElBQUk7SUFBRSxlQUFlLEVBQUMsb0JBQW9CO0dBQUc7RUFHNUUsQUFBQSxVQUFVLENBQUM7SUFDVixVQUFVLEVBQUUsS0FBSztHQU9qQjtFQVJELEFBRUMsVUFGUyxDQUVULFVBQVUsQ0FBQztJQUFDLE9BQU8sRUFBRSxNQUFNO0dBQUc7RUFGL0IsQUFHQyxVQUhTLENBR1QsRUFBRSxDQUFDO0lBQUMsU0FBUyxFQUFFLElBQUk7SUFBRSxXQUFXLEVBQUUsSUFBSTtHQUFHO0VBSDFDLEFBSUMsVUFKUyxDQUlULFVBQVUsQ0FBQztJQUFDLE9BQU8sRUFBRSxVQUFVO0dBQUc7RUFKbkMsQUFLQyxVQUxTLEFBS1IsR0FBRyxDQUFDO0lBQ0osYUFBYSxFQUFFLElBQUk7R0FDbkI7RUFHRixBQUFBLFlBQVksQ0FBQztJQUNaLGNBQWMsRUFBRSxJQUFJO0lBQUUsU0FBUyxFQUFFLElBQUk7R0E2UXJDO0VBOVFELEFBRUMsWUFGVyxDQUVYLGNBQWMsQ0FBQztJQUNkLE1BQU0sRUFBRSxlQUFlO0dBZXZCO0VBbEJGLEFBSUUsWUFKVSxDQUVYLGNBQWMsQUFFWixHQUFHLENBQUM7SUFBQyxhQUFhLEVBQUUsSUFBSTtHQUFHO0VBSjlCLEFBS0UsWUFMVSxDQUVYLGNBQWMsQUFHWixHQUFHLENBQUM7SUFBQyxhQUFhLEVBQUUsSUFBSTtHQUFHO0VBTDlCLEFBUUksWUFSUSxDQUVYLGNBQWMsQUFJWixHQUFHLENBQ0gsSUFBSSxBQUNGLE9BQU8sQ0FBQztJQUFDLE9BQU8sRUFBRSxHQUFHO0dBQUc7RUFSN0IsQUFXRSxZQVhVLENBRVgsY0FBYyxBQVNaLEdBQUcsQ0FBQztJQUFDLFVBQVUsRUFBRSxLQUFLO0lBQUUsYUFBYSxFQUFFLElBQUk7R0FBRztFQVhqRCxBQVlFLFlBWlUsQ0FFWCxjQUFjLENBVWIsUUFBUSxDQUFDO0lBQ1IsT0FBTyxFQUFFLGdCQUFnQjtJQUFFLFVBQVUsRUFBRSxNQUFNO0lBQUUsU0FBUyxFQUFFLElBQUk7SUFBRSxXQUFXLEVBQUUsSUFBSTtHQUNqRjtFQWRILEFBZUUsWUFmVSxDQUVYLGNBQWMsQUFhWixNQUFNLENBQUM7SUFDUCxNQUFNLEVBQUUsTUFBTTtHQUNkO0VBakJILEFBbUJDLFlBbkJXLENBbUJYLGlCQUFpQixDQUFDO0lBQ2pCLE1BQU0sRUFBRSxlQUFlO0lBQ3ZCLFVBQVUsRUFBRSxJQUFJO0lBQUUsUUFBUSxFQUFFLE1BQU07R0FHbEM7RUF4QkYsQUFzQkUsWUF0QlUsQ0FtQlgsaUJBQWlCLENBR2hCLElBQUksQ0FBQztJQUFDLGFBQWEsRUFBRSxJQUFJO0dBQUc7RUF0QjlCLEFBdUJFLFlBdkJVLENBbUJYLGlCQUFpQixDQUloQixXQUFXLENBQUM7SUFBQyxVQUFVLEVBQUUsS0FBSztHQUFHO0VBdkJuQyxBQTBCRSxZQTFCVSxDQXlCWCxZQUFZLENBQ1gsSUFBSSxDQUFDO0lBQ0osYUFBYSxFQUFFLElBQUk7R0EyQ25CO0VBdEVILEFBNEJHLFlBNUJTLENBeUJYLFlBQVksQ0FDWCxJQUFJLENBRUgsSUFBSSxDQUFDO0lBQ0osS0FBSyxFQUFFLElBQUk7SUFBRSxNQUFNLEVBQUUsVUFBVTtHQW1DL0I7RUFoRUosQUErQkssWUEvQk8sQ0F5QlgsWUFBWSxDQUNYLElBQUksQ0FFSCxJQUFJLENBRUgsT0FBTyxDQUNOLEdBQUcsQ0FBQztJQUFDLFNBQVMsRUFBRSxJQUFJO0dBQUc7RUEvQjVCLEFBaUNJLFlBakNRLENBeUJYLFlBQVksQ0FDWCxJQUFJLENBRUgsSUFBSSxBQUtGLElBQUksQ0FBQztJQUFDLEtBQUssRUFBRSxJQUFJO0lBQUUsT0FBTyxFQUFFLENBQUM7R0FBRztFQWpDckMsQUFrQ0ksWUFsQ1EsQ0F5QlgsWUFBWSxDQUNYLElBQUksQ0FFSCxJQUFJLEFBTUYsSUFBSSxDQUFDO0lBQUMsS0FBSyxFQUFFLElBQUk7SUFBRSxPQUFPLEVBQUUsQ0FBQztJQUFFLGFBQWEsRUFBRSxDQUFDO0dBQUc7RUFsQ3ZELEFBc0NPLFlBdENLLENBeUJYLFlBQVksQ0FDWCxJQUFJLENBRUgsSUFBSSxDQU9ILFlBQVksQ0FDWCxNQUFNLENBQ0wsSUFBSSxDQUNILEdBQUcsQ0FBQztJQUFDLEtBQUssRUFBRSxJQUFJO0dBQUc7RUF0QzFCLEFBd0NRLFlBeENJLENBeUJYLFlBQVksQ0FDWCxJQUFJLENBRUgsSUFBSSxDQU9ILFlBQVksQ0FDWCxNQUFNLENBQ0wsSUFBSSxBQUVGLEdBQUcsQUFDRixPQUFPLENBQUM7SUFDUixtQkFBbUIsRUFBQyxRQUFRO0dBQzVCO0VBMUNULEFBZ0RPLFlBaERLLENBeUJYLFlBQVksQ0FDWCxJQUFJLENBRUgsSUFBSSxDQU9ILFlBQVksQ0FXWCxrQkFBa0IsQ0FDakIsV0FBVyxBQUNULE1BQU0sQ0FBQztJQUFDLEtBQUssRUFBRSxLQUFLO0lBQUUsTUFBTSxFQUFFLElBQUk7SUFBRSxlQUFlLEVBQUMsZ0JBQWdCO0dBQUc7RUFoRC9FLEFBa0RNLFlBbERNLENBeUJYLFlBQVksQ0FDWCxJQUFJLENBRUgsSUFBSSxDQU9ILFlBQVksQ0FXWCxrQkFBa0IsQ0FJakIsWUFBWSxDQUFDO0lBQ1osS0FBSyxFQUFFLElBQUk7SUFBRSxNQUFNLEVBQUUsSUFBSTtJQUFFLEdBQUcsRUFBRSxJQUFJO0dBSXBDO0VBdkRQLEFBb0RPLFlBcERLLENBeUJYLFlBQVksQ0FDWCxJQUFJLENBRUgsSUFBSSxDQU9ILFlBQVksQ0FXWCxrQkFBa0IsQ0FJakIsWUFBWSxBQUVWLE1BQU0sQ0FBQztJQUFDLEtBQUssRUFBRSxJQUFJO0lBQUUsTUFBTSxFQUFFLElBQUk7SUFBRSxlQUFlLEVBQUUsb0JBQW9CO0dBQUc7RUFwRG5GLEFBcURPLFlBckRLLENBeUJYLFlBQVksQ0FDWCxJQUFJLENBRUgsSUFBSSxDQU9ILFlBQVksQ0FXWCxrQkFBa0IsQ0FJakIsWUFBWSxBQUdWLFdBQVcsQ0FBQztJQUFDLEtBQUssRUFBQyxJQUFJO0lBQUUsV0FBVyxFQUFFLE1BQU07R0FBRztFQXJEdkQsQUFzRE8sWUF0REssQ0F5QlgsWUFBWSxDQUNYLElBQUksQ0FFSCxJQUFJLENBT0gsWUFBWSxDQVdYLGtCQUFrQixDQUlqQixZQUFZLEFBSVYsV0FBVyxDQUFDO0lBQUMsS0FBSyxFQUFDLElBQUk7R0FBRztFQXREbEMsQUEwRE0sWUExRE0sQ0F5QlgsWUFBWSxDQUNYLElBQUksQ0FFSCxJQUFJLENBT0gsWUFBWSxDQXNCWCxRQUFRLEFBQ04sR0FBRyxDQUFDO0lBQ0osT0FBTyxFQUFFLE1BQU07SUFBRSxTQUFTLEVBQUUsSUFBSTtJQUFFLFdBQVcsRUFBRSxJQUFJO0dBRW5EO0VBN0RQLEFBNERPLFlBNURLLENBeUJYLFlBQVksQ0FDWCxJQUFJLENBRUgsSUFBSSxDQU9ILFlBQVksQ0FzQlgsUUFBUSxBQUNOLEdBQUcsQ0FFSCxDQUFDLENBQUM7SUFBQyxTQUFTLEVBQUUsSUFBSTtHQUFHO0VBNUQ1QixBQW1FSyxZQW5FTyxDQXlCWCxZQUFZLENBQ1gsSUFBSSxBQXVDRixVQUFXLENBQUEsSUFBSSxFQUNmLElBQUksQUFDRixJQUFJLENBQUM7SUFBQyxPQUFPLEVBQUUsQ0FBQztHQUFHO0VBbkV6QixBQXdFQyxZQXhFVyxDQXdFWCxDQUFDLENBQUM7SUFDRCxXQUFXLEVBQUUsSUFBSTtJQUFFLFNBQVMsRUFBRSxJQUFJO0dBQ2xDO0VBMUVGLEFBOEVHLFlBOUVTLENBNEVYLE9BQU8sQ0FDTixHQUFHLENBQ0YsQ0FBQyxDQUFDO0lBQ0QsT0FBTyxFQUFFLGVBQWU7SUFBRSxTQUFTLEVBQUUsSUFBSTtHQWF6QztFQTVGSixBQWdGSSxZQWhGUSxDQTRFWCxPQUFPLENBQ04sR0FBRyxDQUNGLENBQUMsQUFFQyxNQUFNLENBQUM7SUFBQyxLQUFLLEVBQUMsR0FBRztHQUFHO0VBaEZ6QixBQWlGSSxZQWpGUSxDQTRFWCxPQUFPLENBQ04sR0FBRyxDQUNGLENBQUMsQUFHQyxLQUFLLEVBakZWLFlBQVksQ0E0RVgsT0FBTyxDQUNOLEdBQUcsQ0FDRixDQUFDLEFBR1MsS0FBSyxDQUFDO0lBQ2QsT0FBTyxFQUFFLENBQUM7SUFBRSxLQUFLLEVBQUUsSUFBSTtJQUFFLE1BQU0sRUFBRSxJQUFJO0lBQUUsZUFBZSxFQUFDLFNBQVM7SUFDaEUsTUFBTSxFQUFFLE1BQU07R0FDZDtFQXBGTCxBQXNGSyxZQXRGTyxDQTRFWCxPQUFPLENBQ04sR0FBRyxDQUNGLENBQUMsQUFPQyxLQUFLLEFBQ0osTUFBTSxDQUFDO0lBQUMsbUJBQW1CLEVBQUMsR0FBRztHQUFHO0VBdEZ4QyxBQXdGSSxZQXhGUSxDQTRFWCxPQUFPLENBQ04sR0FBRyxDQUNGLENBQUMsQUFVQyxLQUFLLENBQUM7SUFDTixtQkFBbUIsRUFBRSxZQUFZO0dBRWpDO0VBM0ZMLEFBMEZLLFlBMUZPLENBNEVYLE9BQU8sQ0FDTixHQUFHLENBQ0YsQ0FBQyxBQVVDLEtBQUssQUFFSixNQUFNLENBQUM7SUFBQyxtQkFBbUIsRUFBQyxPQUFPO0dBQUc7RUExRjVDLEFBaUdFLFlBakdVLENBZ0dYLFlBQVksQ0FDWCxFQUFFLENBQUM7SUFDRixTQUFTLEVBQUUsSUFBSTtJQUFFLFdBQVcsRUFBRSxJQUFJO0dBRWxDO0VBcEdILEFBbUdHLFlBbkdTLENBZ0dYLFlBQVksQ0FDWCxFQUFFLEFBRUEsR0FBRyxDQUFDO0lBQUMsU0FBUyxFQUFFLElBQUk7SUFBRSxXQUFXLEVBQUUsSUFBSTtHQUFHO0VBbkc5QyxBQXFHRSxZQXJHVSxDQWdHWCxZQUFZLENBS1gsRUFBRSxDQUFDO0lBQUMsU0FBUyxFQUFFLElBQUk7SUFBRSxXQUFXLEVBQUUsSUFBSTtHQUFHO0VBckczQyxBQXVHRyxZQXZHUyxDQWdHWCxZQUFZLENBTVgsRUFBRSxDQUNELElBQUksQ0FBQztJQUFDLE9BQU8sRUFBRSxLQUFLO0lBQUUsYUFBYSxFQUFFLElBQUk7R0FBRztFQXZHL0MsQUEwR0csWUExR1MsQ0FnR1gsWUFBWSxDQVNYLEtBQUssQ0FDSixDQUFDLENBQUM7SUFBQyxTQUFTLEVBQUUsSUFBSTtJQUFFLFVBQVUsRUFBRSxHQUFHO0dBQUc7RUExR3pDLEFBNEdFLFlBNUdVLENBZ0dYLFlBQVksQ0FZWCxVQUFVLENBQUM7SUFBQyxRQUFRLEVBQUUsUUFBUTtJQUFFLFFBQVEsRUFBRSxJQUFJO0lBQUUsT0FBTyxFQUFFLFVBQVU7SUFBRSxhQUFhLEVBQUUsSUFBSTtHQUFHO0VBNUc3RixBQWdISyxZQWhITyxDQWdHWCxZQUFZLENBYVgsS0FBSyxDQUNKLEtBQUssQ0FDSixFQUFFLENBQ0QsRUFBRSxDQUFDO0lBQUMsT0FBTyxFQUFFLFFBQVE7SUFBRSxTQUFTLEVBQUUsSUFBSTtHQUFHO0VBaEg5QyxBQWtITSxZQWxITSxDQWdHWCxZQUFZLENBYVgsS0FBSyxDQUNKLEtBQUssQ0FDSixFQUFFLEFBRUEsSUFBSSxDQUNKLEVBQUUsQ0FBQztJQUFDLFNBQVMsRUFBRSxJQUFJO0dBQUc7RUFsSDVCLEFBd0hLLFlBeEhPLENBZ0dYLFlBQVksQ0FhWCxLQUFLLENBU0osS0FBSyxDQUNKLEVBQUUsQ0FDRCxFQUFFLENBQUM7SUFBQyxTQUFTLEVBQUUsSUFBSTtJQUFFLE9BQU8sRUFBRSxRQUFRO0dBQUc7RUF4SDlDLEFBNkhLLFlBN0hPLENBZ0dYLFlBQVksQ0FhWCxLQUFLLENBY0osS0FBSyxDQUNKLEVBQUUsQ0FDRCxFQUFFLENBQUM7SUFBQyxTQUFTLEVBQUUsSUFBSTtJQUFFLE9BQU8sRUFBRSxRQUFRO0dBQUc7RUE3SDlDLEFBaUlFLFlBaklVLENBZ0dYLFlBQVksQ0FpQ1gsRUFBRSxDQUFDO0lBQ0YsV0FBVyxFQUFFLENBQUM7R0FXZDtFQTdJSCxBQW1JRyxZQW5JUyxDQWdHWCxZQUFZLENBaUNYLEVBQUUsQ0FFRCxFQUFFLENBQUM7SUFDRixXQUFXLEVBQUUsSUFBSTtHQUtqQjtFQXpJSixBQXFJSSxZQXJJUSxDQWdHWCxZQUFZLENBaUNYLEVBQUUsQ0FFRCxFQUFFLEFBRUEsT0FBTyxDQUFDO0lBQ1IsR0FBRyxFQUFDLEdBQUc7R0FDUDtFQXZJTCxBQXdJSSxZQXhJUSxDQWdHWCxZQUFZLENBaUNYLEVBQUUsQ0FFRCxFQUFFLENBS0QsRUFBRSxDQUFDO0lBQUMsV0FBVyxFQUFFLENBQUM7R0FBRztFQXhJekIsQUEwSUcsWUExSVMsQ0FnR1gsWUFBWSxDQWlDWCxFQUFFLEFBU0EsTUFBTSxDQUFDO0lBQ1AsV0FBVyxFQUFFLEdBQUc7R0FDaEI7RUE1SUosQUE4SUUsWUE5SVUsQ0FnR1gsWUFBWSxDQThDWCxjQUFjLENBQUM7SUFDZCxPQUFPLEVBQUUsVUFBVTtHQWdCbkI7RUEvSkgsQUFpSkksWUFqSlEsQ0FnR1gsWUFBWSxDQThDWCxjQUFjLENBRWIsSUFBSSxBQUNGLElBQUksQ0FBQztJQUNMLEtBQUssRUFBRSxJQUFJO0lBQUUsVUFBVSxFQUFFLE1BQU07SUFBRSxhQUFhLEVBQUUsSUFBSTtHQUVwRDtFQXBKTCxBQW1KSyxZQW5KTyxDQWdHWCxZQUFZLENBOENYLGNBQWMsQ0FFYixJQUFJLEFBQ0YsSUFBSSxDQUVKLEdBQUcsQ0FBQztJQUFDLEtBQUssRUFBRSxLQUFLO0dBQUc7RUFuSnpCLEFBcUpJLFlBckpRLENBZ0dYLFlBQVksQ0E4Q1gsY0FBYyxDQUViLElBQUksQUFLRixLQUFLLENBQUM7SUFDTixLQUFLLEVBQUUsSUFBSTtJQUFFLE9BQU8sRUFBRSxDQUFDO0lBQUUsVUFBVSxFQUFFLE1BQU07R0FPM0M7RUE3SkwsQUF1SkssWUF2Sk8sQ0FnR1gsWUFBWSxDQThDWCxjQUFjLENBRWIsSUFBSSxBQUtGLEtBQUssQ0FFTCxFQUFFLENBQUM7SUFBQyxTQUFTLEVBQUUsSUFBSTtHQUFHO0VBdkozQixBQXdKSyxZQXhKTyxDQWdHWCxZQUFZLENBOENYLGNBQWMsQ0FFYixJQUFJLEFBS0YsS0FBSyxDQUdMLEVBQUUsQ0FBQztJQUFDLFNBQVMsRUFBRSxJQUFJO0lBQUUsV0FBVyxFQUFFLElBQUk7R0FBRztFQXhKOUMsQUF5SkssWUF6Sk8sQ0FnR1gsWUFBWSxDQThDWCxjQUFjLENBRWIsSUFBSSxBQUtGLEtBQUssQ0FJTCxDQUFDLENBQUM7SUFBQyxTQUFTLEVBQUUsSUFBSTtHQUFHO0VBekoxQixBQTBKSyxZQTFKTyxDQWdHWCxZQUFZLENBOENYLGNBQWMsQ0FFYixJQUFJLEFBS0YsS0FBSyxBQUtKLEdBQUcsQ0FBQztJQUNKLGFBQWEsRUFBRSxDQUFDO0lBQUUsV0FBVyxFQUFFLENBQUM7R0FDaEM7RUE1Sk4sQUFpS0csWUFqS1MsQ0FnR1gsWUFBWSxDQWdFWCxtQkFBbUIsQ0FDbEIsY0FBYyxDQUFDO0lBQUMsT0FBTyxFQUFFLFVBQVU7R0FBRztFQWpLekMsQUFtS0ksWUFuS1EsQ0FnR1gsWUFBWSxDQWdFWCxtQkFBbUIsQ0FFbEIsSUFBSSxDQUNILElBQUksQ0FBQztJQUNKLEdBQUcsRUFBRSxJQUFJO0lBQUUsVUFBVSxFQUFFLEtBQUs7SUFBRSxJQUFJLEVBQUUsR0FBRztJQUFFLE9BQU8sRUFBRSxNQUFNO0lBQUUsVUFBVSxFQUFFLE1BQU07SUM1Z0I5RSxTQUFTLEVENmdCWSxlQUFlO0lDNWdCcEMsaUJBQWlCLEVENGdCSSxlQUFlO0lDM2dCcEMsY0FBYyxFRDJnQk8sZUFBZTtJQzFnQnBDLGFBQWEsRUQwZ0JRLGVBQWU7SUN6Z0JwQyxZQUFZLEVEeWdCUyxlQUFlO0dBQ2xDO0VBdEtMLEFBeUtFLFlBektVLENBZ0dYLFlBQVksQ0F5RVgsTUFBTSxDQUFDO0lBQ04sT0FBTyxFQUFFLENBQUM7R0FDVjtFQTNLSCxBQTZLRyxZQTdLUyxDQWdHWCxZQUFZLEFBNEVWLGVBQWUsQ0FDZixLQUFLLENBQUM7SUFBQyxLQUFLLEVBQUUsSUFBSTtHQUFHO0VBN0t4QixBQStLRSxZQS9LVSxDQWdHWCxZQUFZLENBK0VYLFdBQVcsQ0FBQztJQUNYLE1BQU0sRUFBRSxDQUFDO0dBRVQ7RUFsTEgsQUFpTEcsWUFqTFMsQ0FnR1gsWUFBWSxDQStFWCxXQUFXLENBRVYsRUFBRSxDQUFDO0lBQUMsV0FBVyxFQUFFLElBQUk7R0FBRztFQWpMM0IsQUFvTEUsWUFwTFUsQ0FnR1gsWUFBWSxDQW9GWCxXQUFXLENBQUM7SUFDWCxPQUFPLEVBQUUsVUFBVTtHQWtCbkI7RUF2TUgsQUF1TEksWUF2TFEsQ0FnR1gsWUFBWSxDQW9GWCxXQUFXLENBRVYsSUFBSSxBQUNGLE9BQU8sQ0FBQztJQUFDLE9BQU8sRUFBQyxJQUFJO0dBQUc7RUF2TDdCLEFBeUxLLFlBekxPLENBZ0dYLFlBQVksQ0FvRlgsV0FBVyxDQUVWLElBQUksQ0FFSCxHQUFHLEFBQ0QsR0FBRyxDQUFDO0lBQ0osS0FBSyxFQUFFLElBQUk7SUFBRSxPQUFPLEVBQUUsT0FBTztJQUFFLGFBQWEsRUFBRSxJQUFJO0dBU2xEO0VBbk1OLEFBMkxNLFlBM0xNLENBZ0dYLFlBQVksQ0FvRlgsV0FBVyxDQUVWLElBQUksQ0FFSCxHQUFHLEFBQ0QsR0FBRyxBQUVGLE1BQU0sQ0FBQztJQUNQLFFBQVEsRUFBRSxRQUFRO0lBQ2YsS0FBSyxFQUFFLElBQUk7SUFDWCxNQUFNLEVBQUUsR0FBRztJQUNYLE9BQU8sRUFBRSxFQUFFO0lBQ1gsT0FBTyxFQUFFLEtBQUs7SUFDZCxVQUFVLEVBQUUsT0FBTztHQUN0QjtFQWxNUCxBQW9NSyxZQXBNTyxDQWdHWCxZQUFZLENBb0ZYLFdBQVcsQ0FFVixJQUFJLENBRUgsR0FBRyxBQVlELEdBQUcsQ0FBQztJQUFDLEtBQUssRUFBRSxJQUFJO0lBQUUsT0FBTyxFQUFFLE9BQU87R0FBRztFQXBNM0MsQUEwTUksWUExTVEsQ0FnR1gsWUFBWSxDQXdHWCxVQUFVLENBQ1QsSUFBSSxDQUNILElBQUksQ0FBQztJQUNKLE9BQU8sRUFBRSxVQUFVO0lBQUUsTUFBTSxFQUFFLFVBQVU7R0FLdkM7RUFoTkwsQUE0TUssWUE1TU8sQ0FnR1gsWUFBWSxDQXdHWCxVQUFVLENBQ1QsSUFBSSxDQUNILElBQUksQ0FFSCxHQUFHLENBQUM7SUFBQyxLQUFLLEVBQUUsSUFBSTtJQUFFLGFBQWEsRUFBRSxJQUFJO0dBQUc7RUE1TTdDLEFBNk1LLFlBN01PLENBZ0dYLFlBQVksQ0F3R1gsVUFBVSxDQUNULElBQUksQ0FDSCxJQUFJLENBR0gsR0FBRyxDQUFDO0lBQUMsS0FBSyxFQUFFLElBQUk7R0FBRztFQTdNeEIsQUE4TUssWUE5TU8sQ0FnR1gsWUFBWSxDQXdHWCxVQUFVLENBQ1QsSUFBSSxDQUNILElBQUksQ0FJSCxFQUFFLENBQUM7SUFBQyxTQUFTLEVBQUUsSUFBSTtJQUFFLFVBQVUsRUFBRSxDQUFDO0dBQUc7RUE5TTFDLEFBK01LLFlBL01PLENBZ0dYLFlBQVksQ0F3R1gsVUFBVSxDQUNULElBQUksQ0FDSCxJQUFJLENBS0gsQ0FBQyxDQUFDO0lBQUMsTUFBTSxFQUFFLElBQUk7SUFBRSxXQUFXLEVBQUUsSUFBSTtJQUFFLE9BQU8sRUFBRSxNQUFNO0dBQUc7RUEvTTNELEFBb05HLFlBcE5TLENBZ0dYLFlBQVksQ0FtSFgsTUFBTSxDQUNMLGNBQWMsQ0FBQztJQUNkLGNBQWMsRUFBRSxJQUFJO0dBS3BCO0VBMU5KLEFBc05JLFlBdE5RLENBZ0dYLFlBQVksQ0FtSFgsTUFBTSxDQUNMLGNBQWMsQ0FFYixJQUFJLEFBQUEsS0FBSyxBQUFBLEdBQUcsQ0FBQztJQUNaLE9BQU8sRUFBRSxNQUFNO0dBRWY7RUF6TkwsQUF3TkssWUF4Tk8sQ0FnR1gsWUFBWSxDQW1IWCxNQUFNLENBQ0wsY0FBYyxDQUViLElBQUksQUFBQSxLQUFLLEFBQUEsR0FBRyxDQUVYLENBQUMsQ0FBQztJQUFDLFNBQVMsRUFBRSxJQUFJO0lBQUUsV0FBVyxFQUFFLElBQUk7R0FBRztFQXhON0MsQUE4TkMsWUE5TlcsQ0E4TlgsY0FBYyxDQUFDO0lBQ2QsT0FBTyxFQUFFLENBQUM7R0FrQlY7RUFqUEYsQUFpT0csWUFqT1MsQ0E4TlgsY0FBYyxDQUViLElBQUksQ0FDSCxJQUFJLENBQUM7SUFDSixLQUFLLEVBQUUsSUFBSTtJQUFFLE9BQU8sRUFBRSxDQUFDO0lBQUUsTUFBTSxFQUFFLFVBQVU7R0FRM0M7RUExT0osQUFtT0ksWUFuT1EsQ0E4TlgsY0FBYyxDQUViLElBQUksQ0FDSCxJQUFJLEFBRUYsVUFBVyxDQUFBLElBQUksRUFBRTtJQUFDLFlBQVksRUFBRSxDQUFDO0dBQUc7RUFuT3pDLEFBcU9LLFlBck9PLENBOE5YLGNBQWMsQ0FFYixJQUFJLENBQ0gsSUFBSSxBQUdGLE1BQU0sQ0FDTixRQUFRLENBQUM7SUFDUixLQUFLLEVBQUUsR0FBRztJQUFFLE9BQU8sRUFBRSxNQUFNO0lBQUUsU0FBUyxFQUFFLElBQUk7SUFBRSxXQUFXLEVBQUUsSUFBSTtHQUUvRDtFQXhPTixBQXVPTSxZQXZPTSxDQThOWCxjQUFjLENBRWIsSUFBSSxDQUNILElBQUksQUFHRixNQUFNLENBQ04sUUFBUSxDQUVQLElBQUksQ0FBQztJQUFDLFNBQVMsRUFBRSxJQUFJO0lBQUUsV0FBVyxFQUFFLElBQUk7SUFBRSxPQUFPLEVBQUUsU0FBUztHQUFHO0VBdk9yRSxBQThPSSxZQTlPUSxDQThOWCxjQUFjLEFBY1osTUFBTSxDQUNOLElBQUksQ0FDSCxJQUFJLENBQUM7SUFBQyxLQUFLLEVBQUUsSUFBSTtHQUFHO0VBOU94QixBQW9QRSxZQXBQVSxDQW1QWCxTQUFTLENBQ1IsSUFBSSxDQUFDO0lBQ0osT0FBTyxFQUFFLE1BQU07R0FLZjtFQTFQSCxBQXNQRyxZQXRQUyxDQW1QWCxTQUFTLENBQ1IsSUFBSSxDQUVILEdBQUcsQ0FBQztJQUFDLEtBQUssRUFBRSxJQUFJO0lBQUUsTUFBTSxFQUFFLFVBQVU7R0FBRztFQXRQMUMsQUF1UEcsWUF2UFMsQ0FtUFgsU0FBUyxDQUNSLElBQUksQ0FHSCxHQUFHLENBQUM7SUFDSCxLQUFLLEVBQUUsSUFBSTtJQUFFLE9BQU8sRUFBRSxDQUFDO0lBQUUsVUFBVSxFQUFFLElBQUk7R0FDekM7RUF6UEosQUE4UEUsWUE5UFUsQ0E2UFgsZUFBZSxDQUNkLElBQUksRUE5UE4sWUFBWSxDQTZQTSxZQUFZLENBQzVCLElBQUksQ0FBQztJQUNKLGFBQWEsRUFBRSxJQUFJO0dBWW5CO0VBM1FILEFBaVFJLFlBalFRLENBNlBYLGVBQWUsQ0FDZCxJQUFJLENBRUgsSUFBSSxDQUNILEVBQUUsRUFqUU4sWUFBWSxDQTZQTSxZQUFZLENBQzVCLElBQUksQ0FFSCxJQUFJLENBQ0gsRUFBRSxDQUFDO0lBQUMsYUFBYSxFQUFFLElBQUk7R0FBRztFQWpROUIsQUFtUUssWUFuUU8sQ0E2UFgsZUFBZSxDQUNkLElBQUksQ0FFSCxJQUFJLENBRUgsR0FBRyxDQUNGLENBQUMsRUFuUU4sWUFBWSxDQTZQTSxZQUFZLENBQzVCLElBQUksQ0FFSCxJQUFJLENBRUgsR0FBRyxDQUNGLENBQUMsQ0FBQztJQUFDLE9BQU8sRUFBRSxhQUFhO0lBQUUsS0FBSyxFQUFFLEdBQUc7SUFBRSxNQUFNLEVBQUUsS0FBSztHQUFHO0VBblE1RCxBQXdRSyxZQXhRTyxDQTZQWCxlQUFlLENBQ2QsSUFBSSxBQVFGLE1BQU0sQ0FDTixJQUFJLENBQ0gsQ0FBQyxFQXhRTixZQUFZLENBNlBNLFlBQVksQ0FDNUIsSUFBSSxBQVFGLE1BQU0sQ0FDTixJQUFJLENBQ0gsQ0FBQyxDQUFDO0lBQUMsS0FBSyxFQUFFLEdBQUc7R0FBRztFQVVyQixBQUVFLFNBRk8sQ0FDUixVQUFVLEFBQ1IsT0FBTyxDQUFDO0lBQ1IsS0FBSyxFQUFDLElBQUk7SUFBRSxNQUFNLEVBQUUsSUFBSTtJQUFFLEtBQUssRUFBRSxDQUFDO0lBQUUsR0FBRyxFQUFFLEtBQUs7SUFDOUMsZUFBZSxFQUFFLElBQUk7R0FDckI7RUFMSCxBQU9DLFNBUFEsQ0FPUixTQUFTLENBQUM7SUFDVCxPQUFPLEVBQUUsQ0FBQztHQW9DVjtFQTVDRixBQVNFLFNBVE8sQ0FPUixTQUFTLENBRVIsSUFBSSxDQUFDO0lBQ0osS0FBSyxFQUFFLElBQUk7SUFBRSxPQUFPLEVBQUUsT0FBTztJQUFFLE1BQU0sRUFBRSxVQUFVO0dBMkJqRDtFQXJDSCxBQVdHLFNBWE0sQ0FPUixTQUFTLENBRVIsSUFBSSxBQUVGLFVBQVcsQ0FBQSxJQUFJLEVBQUU7SUFBQyxZQUFZLEVBQUUsQ0FBQztJQUFFLFlBQVksRUFBRSxDQUFDO0dBQUc7RUFYekQsQUFZRyxTQVpNLENBT1IsU0FBUyxDQUVSLElBQUksQ0FHSCxNQUFNLENBQUM7SUFDTixNQUFNLEVBQUUsSUFBSTtJQUFFLFdBQVcsRUFBRSxJQUFJO0lBQUUsU0FBUyxFQUFFLElBQUk7SUFBRSxHQUFHLEVBQUUsSUFBSTtHQUMzRDtFQWRKLEFBZUcsU0FmTSxDQU9SLFNBQVMsQ0FFUixJQUFJLENBTUgsV0FBVyxDQUFDO0lBQUMsU0FBUyxFQUFFLElBQUk7R0FBRztFQWZsQyxBQWdCRyxTQWhCTSxDQU9SLFNBQVMsQ0FFUixJQUFJLENBT0gsTUFBTSxDQUFDO0lBQ04sY0FBYyxFQUFFLElBQUk7R0FJcEI7RUFyQkosQUFrQkksU0FsQkssQ0FPUixTQUFTLENBRVIsSUFBSSxDQU9ILE1BQU0sQUFFSixVQUFVLENBQUM7SUFDWCxXQUFXLEVBQUUsSUFBSTtHQUNqQjtFQXBCTCxBQXNCWSxTQXRCSCxDQU9SLFNBQVMsQ0FFUixJQUFJLEFBYU8sYUFBYSxDQUFBO0lBQ2IsWUFBWSxFQUFDLENBQUM7R0FDZDtFQXhCYixBQXlCWSxTQXpCSCxDQU9SLFNBQVMsQ0FFUixJQUFJLEFBZ0JPLFdBQVcsQ0FBQTtJQUNYLE9BQU8sRUFBQyxDQUFDO0dBQ1Q7RUEzQmIsQUE0QlksU0E1QkgsQ0FPUixTQUFTLENBRVIsSUFBSSxBQW1CTyxXQUFXLENBQUE7SUFDWCxPQUFPLEVBQUMsQ0FBQztHQUNUO0VBOUJiLEFBK0JZLFNBL0JILENBT1IsU0FBUyxDQUVSLElBQUksQUFzQk8sWUFBWSxDQUFDLFlBQVksQ0FBQTtJQUN6QixTQUFTLEVBQUUsV0FBVztJQUM1QixnQkFBZ0IsRUFBRSxDQUFDO0lBQ25CLGFBQWEsRUFBRSxJQUFJO0dBQ2I7RUFuQ2IsQUF1Q0csU0F2Q00sQ0FPUixTQUFTLEFBK0JQLE1BQU0sQ0FDTixJQUFJLENBQUM7SUFDSixhQUFhLEVBQUUsSUFBSTtHQUVuQjtFQTFDSixBQXlDSSxTQXpDSyxDQU9SLFNBQVMsQUErQlAsTUFBTSxDQUNOLElBQUksQ0FFSCxJQUFJLENBQUM7SUFBQyxNQUFNLEVBQUUsTUFBTTtHQUFHO0VBekMzQixBQWdESSxTQWhESyxBQTZDUCxHQUFHLENBQ0gsU0FBUyxDQUNSLElBQUksQ0FDSCxNQUFNLENBQUM7SUFBQyxTQUFTLEVBQUUsSUFBSTtHQUFHO0VBaEQ5QixBQWlESSxTQWpESyxBQTZDUCxHQUFHLENBQ0gsU0FBUyxDQUNSLElBQUksQ0FFSCxNQUFNLEFBQUEsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUFDLFNBQVMsRUFBRSxJQUFJO0dBQUc7RUFNM0MsQUFFRSxRQUZNLENBQ1AsUUFBUSxDQUNQLFVBQVUsQ0FBQztJQUNWLE9BQU8sRUFBRSxrQkFBa0I7SUFBRSxTQUFTLEVBQUUsSUFBSTtHQUU1QztFQUxILEFBSUcsUUFKSyxDQUNQLFFBQVEsQ0FDUCxVQUFVLEFBRVIsTUFBTSxDQUFDO0lBQUMsS0FBSyxFQUFDLEdBQUc7SUFBRSxHQUFHLEVBQUUsSUFBSTtHQUFHO0VBSm5DLEFBUUksUUFSSSxDQUNQLFFBQVEsQ0FLUCxZQUFZLENBQ1gsRUFBRSxDQUNELEVBQUUsQ0FBQztJQUFDLFNBQVMsRUFBRSxJQUFJO0lBQUUsV0FBVyxFQUFFLElBQUk7R0FBRztFQVI3QyxBQWFFLFFBYk0sQUFZTixHQUFHLENBQ0gsWUFBWSxDQUFDO0lBQ1osT0FBTyxFQUFFLE1BQU07R0FDZjtFQUlILEFBQ0MsY0FEYSxDQUNiLFFBQVEsQ0FBQztJQUNSLGNBQWMsRUFBRSxJQUFJO0dBcUJwQjtFQXZCRixBQUdFLGNBSFksQ0FDYixRQUFRLENBRVAsV0FBVyxDQUFDO0lBQ1gsT0FBTyxFQUFFLEtBQUs7R0FDZDtFQUxILEFBTUUsY0FOWSxDQUNiLFFBQVEsQ0FLUCxFQUFFLENBQUM7SUFDRixPQUFPLEVBQUUsSUFBSTtHQWViO0VBdEJILEFBUUcsY0FSVyxDQUNiLFFBQVEsQ0FLUCxFQUFFLENBRUQsRUFBRSxDQUFDO0lBQ0YsT0FBTyxFQUFFLEtBQUs7SUFBRSxhQUFhLEVBQUUsR0FBRztHQVlsQztFQXJCSixBQVVJLGNBVlUsQ0FDYixRQUFRLENBS1AsRUFBRSxDQUVELEVBQUUsQUFFQSxNQUFNLENBQUM7SUFBQyxPQUFPLEVBQUMsSUFBSTtHQUFHO0VBVjVCLEFBV0ksY0FYVSxDQUNiLFFBQVEsQ0FLUCxFQUFFLENBRUQsRUFBRSxDQUdELENBQUMsQ0FBQztJQUNELFNBQVMsRUFBRSxJQUFJO0lBQUUsT0FBTyxFQUFFLFNBQVM7SUFBRSxVQUFVLEVDaG9CN0MsT0FBTztHRGtvQlQ7RUFkTCxBQWFLLGNBYlMsQ0FDYixRQUFRLENBS1AsRUFBRSxDQUVELEVBQUUsQ0FHRCxDQUFDLEFBRUMsTUFBTSxDQUFDO0lBQUMsT0FBTyxFQUFDLElBQUk7R0FBRztFQWI3QixBQWdCSyxjQWhCUyxDQUNiLFFBQVEsQ0FLUCxFQUFFLENBRUQsRUFBRSxBQU9BLFlBQVksQ0FDWixDQUFDLENBQUM7SUFDRCxZQUFZLEVBQUUsSUFBSTtHQUVsQjtFQW5CTixBQWtCTSxjQWxCUSxDQUNiLFFBQVEsQ0FLUCxFQUFFLENBRUQsRUFBRSxBQU9BLFlBQVksQ0FDWixDQUFDLEFBRUMsTUFBTSxDQUFDO0lBQUMsSUFBSSxFQUFDLEdBQUc7R0FBRztFQVExQixBQUNDLFlBRFcsQ0FDWCxRQUFRLENBQUM7SUFDUixVQUFVLEVBQUUsTUFBTTtJQUFFLGFBQWEsRUFBRSxJQUFJO0dBRXZDO0VBSkYsQUFHRSxZQUhVLENBQ1gsUUFBUSxDQUVQLENBQUMsQ0FBQztJQUFDLFNBQVMsRUFBRSxJQUFJO0lBQUUsWUFBWSxFQUFFLElBQUk7SUFBRSxLQUFLLEVBQUUsSUFBSTtJQUFFLE9BQU8sRUFBRSxZQUFZO0dBQUc7RUFIL0UsQUFNRSxZQU5VLENBS1gsSUFBSSxDQUNILElBQUksQ0FBQztJQUNKLEtBQUssRUFBRSxJQUFJO0lBQUUsTUFBTSxFQUFFLFFBQVE7R0FhN0I7RUFwQkgsQUFTSSxZQVRRLENBS1gsSUFBSSxDQUNILElBQUksQ0FFSCxDQUFDLENBQ0EsS0FBSyxDQUFDO0lBQ0wsT0FBTyxFQUFFLElBQUk7R0FFYjtFQVpMLEFBV0ssWUFYTyxDQUtYLElBQUksQ0FDSCxJQUFJLENBRUgsQ0FBQyxDQUNBLEtBQUssQ0FFSixRQUFRLENBQUM7SUFBQyxTQUFTLEVBQUUsSUFBSTtJQUFFLFdBQVcsRUFBRSxJQUFJO0lBQUUsTUFBTSxFQUFFLElBQUk7R0FBRztFQVhsRSxBQWNLLFlBZE8sQ0FLWCxJQUFJLENBQ0gsSUFBSSxDQUVILENBQUMsQ0FLQSxJQUFJLEFBQ0YsT0FBTyxDQUFDO0lBQUMsbUJBQW1CLEVBQUMsUUFBUTtJQUFFLE9BQU8sRUFBRSxHQUFHO0dBQUU7RUFkM0QsQUFnQk0sWUFoQk0sQ0FLWCxJQUFJLENBQ0gsSUFBSSxDQUVILENBQUMsQ0FLQSxJQUFJLENBRUgsUUFBUSxDQUNQLElBQUksQ0FBQztJQUFDLFNBQVMsRUFBRSxJQUFJO0lBQUUsV0FBVyxFQUFFLElBQUk7SUFBRSxNQUFNLEVBQUUsSUFBSTtJQUFFLE9BQU8sRUFBRSxNQUFNO0dBQUc7RUFRaEYsQUFDQyxjQURhLEFBQ1osR0FBRyxDQUFDO0lBQUMsT0FBTyxFQUFFLE1BQU07R0FBRztFQUR6QixBQUtJLGNBTFUsQ0FFYixhQUFhLENBQ1osSUFBSSxDQUNILElBQUksQ0FDSCxFQUFFLENBQUM7SUFDRixTQUFTLEVBQUUsSUFBSTtHQUVmO0VBUkwsQUFPSyxjQVBTLENBRWIsYUFBYSxDQUNaLElBQUksQ0FDSCxJQUFJLENBQ0gsRUFBRSxBQUVBLEdBQUcsQ0FBQztJQUFDLFNBQVMsRUFBRSxJQUFJO0dBQUc7RUFQN0IsQUFTSSxjQVRVLENBRWIsYUFBYSxDQUNaLElBQUksQ0FDSCxJQUFJLENBS0gsRUFBRSxDQUFDO0lBQUMsU0FBUyxFQUFFLElBQUk7R0FBRztFQVQxQixBQVVJLGNBVlUsQ0FFYixhQUFhLENBQ1osSUFBSSxDQUNILElBQUksQ0FNSCxDQUFDLENBQUM7SUFDRCxTQUFTLEVBQUUsSUFBSTtJQUFFLFdBQVcsRUFBRSxJQUFJO0dBRWxDO0VBYkwsQUFZSyxjQVpTLENBRWIsYUFBYSxDQUNaLElBQUksQ0FDSCxJQUFJLENBTUgsQ0FBQyxDQUVBLE1BQU0sQ0FBQztJQUFDLFNBQVMsRUFBRSxJQUFJO0lBQUUsV0FBVyxFQUFFLElBQUk7R0FBRztFQVpsRCxBQWNJLGNBZFUsQ0FFYixhQUFhLENBQ1osSUFBSSxDQUNILElBQUksQ0FVSCxJQUFJLENBQUM7SUFDSixhQUFhLEVBQUUsSUFBSTtHQUtuQjtFQXBCTCxBQWlCTSxjQWpCUSxDQUViLGFBQWEsQ0FDWixJQUFJLENBQ0gsSUFBSSxDQVVILElBQUksQ0FFSCxHQUFHLEFBQ0QsVUFBVyxDQUFBLENBQUMsRUFBRTtJQUFDLEtBQUssRUFBRSxJQUFJO0dBQUc7RUFqQnBDLEFBa0JNLGNBbEJRLENBRWIsYUFBYSxDQUNaLElBQUksQ0FDSCxJQUFJLENBVUgsSUFBSSxDQUVILEdBQUcsQUFFRCxVQUFXLENBQUEsQ0FBQyxFQUFFO0lBQUMsS0FBSyxFQUFFLElBQUk7R0FBRztFQVFwQyxBQUVFLGNBRlksQ0FDYixTQUFTLENBQ1IsRUFBRSxDQUFDO0lBQUMsYUFBYSxFQUFFLElBQUk7R0FBRztFQUY1QixBQUlHLGNBSlcsQ0FDYixTQUFTLENBRVIsSUFBSSxDQUNILElBQUksQ0FBQztJQUNKLEtBQUssRUFBRSxJQUFJO0lBQUUsTUFBTSxFQUFFLFVBQVU7R0FDL0I7RUFOSixBQVVFLGNBVlksQ0FTYixXQUFXLENBQ1YsRUFBRSxDQUFDO0lBQUMsYUFBYSxFQUFFLElBQUk7R0FBRztFQVY1QixBQVdFLGNBWFksQ0FTYixXQUFXLENBRVYsSUFBSSxDQUFDO0lBQ0osYUFBYSxFQUFFLElBQUk7R0FLbkI7RUFqQkgsQUFhRyxjQWJXLENBU2IsV0FBVyxDQUVWLElBQUksQ0FFSCxJQUFJLENBQUM7SUFDSixLQUFLLEVBQUUsSUFBSTtJQUFFLGFBQWEsRUFBRSxHQUFHO0lBQUUsU0FBUyxFQUFFLElBQUk7R0FFaEQ7RUFoQkosQUFlSSxjQWZVLENBU2IsV0FBVyxDQUVWLElBQUksQ0FFSCxJQUFJLEFBRUYsVUFBVyxDQUFBLElBQUksRUFBRTtJQUFDLEtBQUssRUFBRSxJQUFJO0lBQUUsT0FBTyxFQUFFLENBQUM7SUFBRSxTQUFTLEVBQUUsSUFBSTtHQUFHO0VBTWxFLEFBQ0MsVUFEUyxDQUNULE9BQU8sQ0FBQztJQUFDLFVBQVUsRUFBRSxLQUFLO0lBQUUsVUFBVSxFQUFFLEtBQUs7R0FBRztFQURqRCxBQUVDLFVBRlMsQ0FFVCxVQUFVLENBQUM7SUFBQyxLQUFLLEVBQUUsS0FBSztJQUFFLE1BQU0sRUFBRSxJQUFJO0dBQUc7RUFGMUMsQUFJRSxVQUpRLENBR1QsTUFBTSxDQUNMLFVBQVUsQ0FBQztJQUFDLEtBQUssRUFBRSxJQUFJO0lBQUUsTUFBTSxFQUFFLE1BQU07R0FBRztFQUo1QyxBQU1DLFVBTlMsQ0FNVCxRQUFRLENBQUM7SUFDUixVQUFVLEVBQUMsS0FBSztJQUFFLFVBQVUsRUFBRSxLQUFLO0dBR25DO0VBVkYsQUFRRSxVQVJRLENBTVQsUUFBUSxDQUVQLE1BQU0sQ0FBQztJQUFDLFNBQVMsRUFBRSxJQUFJO0lBQUUsV0FBVyxFQUFFLElBQUk7SUFBRSxXQUFXLEVBQUUsSUFBSTtHQUFHO0VBUmxFLEFBU0UsVUFUUSxDQU1ULFFBQVEsQ0FHUCxDQUFDLENBQUM7SUFBQyxTQUFTLEVBQUUsSUFBSTtJQUFFLE9BQU8sRUFBRSxJQUFJO0dBQUc7RUFUdEMsQUFZRSxVQVpRLENBV1QsVUFBVSxDQUNULENBQUMsQ0FBQztJQUNELFNBQVMsRUFBRSxHQUFHO0lBQUUsT0FBTyxFQUFFLFVBQVU7R0FJbkM7RUFqQkgsQUFjRyxVQWRPLENBV1QsVUFBVSxDQUNULENBQUMsQUFFQyxNQUFNLENBQUM7SUFBQyxLQUFLLEVBQUUsSUFBSTtJQUFFLE1BQU0sRUFBRSxJQUFJO0lBQUUsZUFBZSxFQUFFLElBQUk7R0FBRztFQWQvRCxBQWVHLFVBZk8sQ0FXVCxVQUFVLENBQ1QsQ0FBQyxBQUdDLElBQUksQ0FBQztJQUFDLElBQUksRUFBQyxLQUFLO0lBQUUsR0FBRyxFQUFFLEtBQUs7R0FBRztFQWZuQyxBQWdCRyxVQWhCTyxDQVdULFVBQVUsQ0FDVCxDQUFDLEFBSUMsS0FBSyxDQUFDO0lBQUMsS0FBSyxFQUFDLElBQUk7SUFBRSxHQUFHLEVBQUUsQ0FBQztHQUFHO0VBS2hDLEFBQUEsYUFBYSxDQUFDO0lBQ2IsVUFBVSxFQUFFLEtBQUs7R0FFakI7RUFIRCxBQUVDLGFBRlksQ0FFWixVQUFVLENBQUM7SUFBQyxLQUFLLEVBQUUsSUFBSTtHQUFHO0VBSTNCLEFBQ0MsT0FETSxDQUNOLFNBQVMsQ0FBQztJQUNULEtBQUssRUFBRSxJQUFJO0lBQUUsTUFBTSxFQUFFLElBQUk7R0FFekI7RUFKRixBQUdFLE9BSEssQ0FDTixTQUFTLEFBRVAsTUFBTSxDQUFDO0lBQUMsS0FBSyxFQUFFLElBQUk7SUFBRSxNQUFNLEVBQUUsSUFBSTtJQUFFLGVBQWUsRUFBQyxvQkFBb0I7R0FBRztFQUg3RSxBQUtDLE9BTE0sQ0FLTixVQUFVLENBQUM7SUFDVixLQUFLLEVBQUUsSUFBSTtJQUFFLE1BQU0sRUFBRSxJQUFJO0lBQUUsZUFBZSxFQUFFLElBQUk7SUFBRSxHQUFHLEVBQUUsS0FBSztHQUM1RDtFQVBGLEFBVUcsT0FWSSxDQVFOLFlBQVksQ0FDWCxPQUFPLENBQ04sUUFBUSxDQUFDO0lBQUMsU0FBUyxFQUFFLElBQUk7R0FBRztFQVYvQixBQVdHLE9BWEksQ0FRTixZQUFZLENBQ1gsT0FBTyxDQUVOLFNBQVMsQ0FBQztJQUFDLFNBQVMsRUFBRSxJQUFJO0dBQUc7RUFYaEMsQUFhRSxPQWJLLENBUU4sWUFBWSxDQUtYLElBQUksQ0FBQztJQUFDLE1BQU0sRUFBRSxLQUFLO0dBQUc7RUFJeEIsQUFDQyxVQURTLENBQ1QsR0FBRyxDQUFDO0lBQUMsT0FBTyxFQUFFLEtBQUs7R0FBRztFQUR2QixBQUVDLFVBRlMsQ0FFVCxHQUFHLENBQUM7SUFBQyxLQUFLLEVBQUUsSUFBSTtHQUFHO0VBR3BCLEFBQ0csTUFERyxDQUNILFVBQVUsQ0FBQztJQUNaLFNBQVMsRUFBRSxLQUFLO0lBQ2hCLE9BQU8sRUFBRSxJQUFJO0dBZ0NYO0VBbkNKLEFBSUUsTUFKSSxDQUNILFVBQVUsQ0FHWCxjQUFjLENBQUM7SUFDZCxPQUFPLEVBQUUsTUFBTTtHQXdCZjtFQTdCSCxBQU1HLE1BTkcsQ0FDSCxVQUFVLENBR1gsY0FBYyxDQUViLEVBQUUsQ0FBQztJQUNGLFNBQVMsRUFBRSxJQUFJO0dBQ2Y7RUFSSixBQVNHLE1BVEcsQ0FDSCxVQUFVLENBR1gsY0FBYyxDQUtiLENBQUMsQ0FBQztJQUNELFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLElBQUk7SUFDakIsYUFBYSxFQUFFLElBQUk7R0FDbkI7RUFiSixBQWNPLE1BZEQsQ0FDSCxVQUFVLENBR1gsY0FBYyxDQVVULEVBQUUsQ0FBQyxFQUFFLEVBZFosTUFBTSxDQUNILFVBQVUsQ0FHWCxjQUFjLENBVUYsRUFBRSxDQUFDLEVBQUUsQUFBQSxPQUFPLEVBZDFCLE1BQU0sQ0FDSCxVQUFVLENBR1gsY0FBYyxDQVVZLEVBQUUsQ0FBQyxFQUFFLENBQUM7SUFDekIsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsSUFBSTtHQUNsQjtFQWpCUixBQWtCTyxNQWxCRCxDQUNILFVBQVUsQ0FHWCxjQUFjLENBY1QsRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUNKLFlBQVksRUFBRSxJQUFJO0dBQ25CO0VBcEJSLEFBcUJPLE1BckJELENBQ0gsVUFBVSxDQUdYLGNBQWMsQ0FpQlQsRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUNKLFlBQVksRUFBRSxJQUFJO0dBTW5CO0VBNUJSLEFBdUJTLE1BdkJILENBQ0gsVUFBVSxDQUdYLGNBQWMsQ0FpQlQsRUFBRSxDQUFDLEVBQUUsQUFFRixRQUFRLENBQUM7SUFDUixNQUFNLEVBQUUsR0FBRztJQUNYLEdBQUcsRUFBRSxHQUFHO0lBQ1IsS0FBSyxFQUFFLEdBQUc7R0FDWDtFQTNCVixBQThCRSxNQTlCSSxDQUNILFVBQVUsQ0E2QlgsTUFBTSxDQUFDO0lBQ04sS0FBSyxFQUFFLEtBQUs7SUFDWixPQUFPLEVBQUUsS0FBSztJQUNkLFNBQVMsRUFBRSxJQUFJO0dBQ2Y7RUFJSCxBQUVFLE1BRkksQ0FDTCxLQUFLLENBQ0osR0FBRyxDQUFDO0lBQ0gsS0FBSyxFQUFFLEdBQUc7SUFBRSxPQUFPLEVBQUUsVUFBVTtJQ3YxQi9CLGtCQUFrQixFRHcxQkMsVUFBVTtJQ3YxQjdCLGVBQWUsRUR1MUJJLFVBQVU7SUN0MUI3QixVQUFVLEVEczFCUyxVQUFVO0dBTTdCO0VBVkgsQUFLRyxNQUxHLENBQ0wsS0FBSyxDQUNKLEdBQUcsQ0FHRixHQUFHLENBQUM7SUFDSCxLQUFLLEVBQUUsSUFBSTtJQzExQlosa0JBQWtCLEVEMDFCZSxVQUFVO0lDejFCM0MsZUFBZSxFRHkxQmtCLFVBQVU7SUN4MUIzQyxVQUFVLEVEdzFCdUIsVUFBVTtJQUFHLE1BQU0sRUFBRSxlQUFlO0lBQUUsS0FBSyxFQUFFLElBQUk7SUFDakYsT0FBTyxFQUFFLGdCQUFnQjtJQUFFLFNBQVMsRUFBRSxNQUFNO0lBQUUsV0FBVyxFQUFFLElBQUk7R0FFL0Q7RUFUSixBQVFJLE1BUkUsQ0FDTCxLQUFLLENBQ0osR0FBRyxDQUdGLEdBQUcsQUFHRCxLQUFLLENBQUM7SUFBQyxLQUFLLEVBQUUsSUFBSTtHQUFHO0VBUjFCLEFBV0UsTUFYSSxDQUNMLEtBQUssQ0FVSixHQUFHLENBQUM7SUFDSCxLQUFLLEVBQUUsR0FBRztHQUtWO0VBakJILEFBYUcsTUFiRyxDQUNMLEtBQUssQ0FVSixHQUFHLENBRUYsWUFBWSxDQUFDO0lBQ1osS0FBSyxFQUFFLElBQUk7SUFBRSxVQUFVLEVBQUUsS0FBSztHQUU5QjtFQWhCSixBQWVJLE1BZkUsQ0FDTCxLQUFLLENBVUosR0FBRyxDQUVGLFlBQVksQ0FFWCxDQUFDLENBQUM7SUFBQyxPQUFPLEVBQUUsS0FBSztJQUFFLFdBQVcsRUFBRSxRQUFRO0lBQUUsYUFBYSxFQUFFLEdBQUc7R0FBRztFQWZuRSxBQW1CQyxNQW5CSyxDQW1CTCxVQUFVLENBQUM7SUFBQyxNQUFNLEVBQUUsQ0FBQztHQUFHO0VBbkJ6QixBQW9CQyxNQXBCSyxDQW9CTCxLQUFLLENBQUM7SUFDTCxVQUFVLEVBQUUsTUFBTTtHQUdsQjtFQXhCRixBQXNCRSxNQXRCSSxDQW9CTCxLQUFLLENBRUosR0FBRyxDQUFDO0lBQUMsS0FBSyxFQUFFLElBQUk7SUFBRSxhQUFhLEVBQUUsSUFBSTtHQUFHO0VBdEIxQyxBQXVCRSxNQXZCSSxDQW9CTCxLQUFLLENBR0osR0FBRyxDQUFDO0lBQUMsS0FBSyxFQUFFLElBQUk7R0FBRztFQUdyQixBQUFBLFNBQVMsQ0FBQztJQUNULE1BQU0sRUFBRSxJQUFJO0lBQUUsS0FBSyxFQUFFLElBQUk7SUFBRSxLQUFLLEVBQUUsSUFBSTtJQUFFLE1BQU0sRUFBRSxJQUFJO0lBQ3BELGVBQWUsRUFBQyxtQkFBbUI7R0FDbkM7RUFDQSxBQUNFLE1BREksQ0FDSixRQUFRLENBQUE7SUFDTixNQUFNLEVBQUUsTUFBTTtHQXNCZjtFQXhCSCxBQU9ZLE1BUE4sQ0FDSixRQUFRLENBRU4sVUFBVSxDQUNSLGFBQWEsQ0FDWCxRQUFRLENBQ04sTUFBTSxHQUNGLEdBQUcsQ0FBQTtJQUNILEtBQUssRUFBRSxLQUFLO0dBQ2I7RUFUYixBQVdVLE1BWEosQ0FDSixRQUFRLENBRU4sVUFBVSxDQUNSLGFBQWEsQ0FDWCxRQUFRLENBTU4sRUFBRSxDQUFBO0lBQ0EsU0FBUyxFQUFFLElBQUk7SUFDZixZQUFZLEVBQUUsSUFBSTtHQUluQjtFQWpCWCxBQWNZLE1BZE4sQ0FDSixRQUFRLENBRU4sVUFBVSxDQUNSLGFBQWEsQ0FDWCxRQUFRLENBTU4sRUFBRSxBQUdDLFFBQVEsQ0FBQTtJQUNQLElBQUksRUFBRSxHQUFHO0dBQ1Y7RUFoQmIsQUFtQlEsTUFuQkYsQ0FDSixRQUFRLENBRU4sVUFBVSxDQUNSLGFBQWEsQ0FlWCxFQUFFLENBQUE7SUFDQSxVQUFVLEVBQUUsTUFBTTtHQUNuQjtFQUtULEFBQ0UsSUFERSxDQUNGLElBQUksQ0FBQTtJQUNGLFdBQVcsRUFBRSxLQUFLO0lBQ2xCLEtBQUssRUFBRSxJQUFJO0dBZ0NaO0VBbkNILEFBSUksSUFKQSxDQUNGLElBQUksQ0FHRixPQUFPLEFBQUEsVUFBVSxDQUFBO0lBQ2YsT0FBTyxFQUFFLE1BQU07R0FDaEI7RUFOTCxBQVFNLElBUkYsQ0FDRixJQUFJLENBTUYsT0FBTyxBQUNKLFVBQVUsRUFSakIsSUFBSSxDQUNGLElBQUksQ0FNRixPQUFPLEFBQ1MsVUFBVSxFQVI5QixJQUFJLENBQ0YsSUFBSSxDQU1GLE9BQU8sQUFDc0IsVUFBVSxFQVIzQyxJQUFJLENBQ0YsSUFBSSxDQU1GLE9BQU8sQUFDbUMsVUFBVSxFQVJ4RCxJQUFJLENBQ0YsSUFBSSxDQU1GLE9BQU8sQUFDZ0QsVUFBVSxFQVJyRSxJQUFJLENBQ0YsSUFBSSxDQU1GLE9BQU8sQUFDNkQsV0FBVyxDQUFBO0lBQzNFLElBQUksRUFBRSxRQUFRO0lBQ2QsU0FBUyxFQUFFLElBQUk7SUFDZixPQUFPLEVBQUUsQ0FBQztHQUNYO0VBWlAsQUFjQyxJQWRHLENBQ0YsSUFBSSxBQWFKLFVBQVUsQ0FBQztJQUNYLEtBQUssRUFBRSxpQkFBaUI7SUFDeEIsV0FBVyxFQUFFLEtBQUs7R0FrQmxCO0VBbENGLEFBa0JHLElBbEJDLENBQ0YsSUFBSSxBQWFKLFVBQVUsQ0FHVixPQUFPLEFBQ0wsVUFBVSxDQUFDO0lBQ1gsSUFBSSxFQUFFLE9BQU87SUFDYixTQUFTLEVBQUUsR0FBRztJQUNkLE9BQU8sRUFBRSxNQUFNO0dBQ2Y7RUF0QkosQUF1QkcsSUF2QkMsQ0FDRixJQUFJLEFBYUosVUFBVSxDQUdWLE9BQU8sQUFNTCxVQUFVLENBQUM7SUFDWCxJQUFJLEVBQUUsT0FBTztJQUNiLFNBQVMsRUFBRSxHQUFHO0lBQ2QsT0FBTyxFQUFFLE1BQU07R0FDZjtFQTNCSixBQTRCRyxJQTVCQyxDQUNGLElBQUksQUFhSixVQUFVLENBR1YsT0FBTyxBQVdMLFVBQVUsQ0FBQztJQUNYLElBQUksRUFBRSxPQUFPO0lBQ2IsU0FBUyxFQUFFLEdBQUc7SUFDZCxPQUFPLEVBQUUsTUFBTTtHQUNmO0VBaENKLEFBb0NFLElBcENFLENBb0NGLGVBQWUsQ0FBQTtJQUNiLE9BQU8sRUFBRSxJQUFJO0dBQ2Q7RUF0Q0gsQUF1Q0UsSUF2Q0UsQ0F1Q0YsV0FBVyxDQUFBO0lBQ1QsWUFBWSxFQUFFLENBQUM7R0EyU2hCO0VBblZILEFBeUNJLElBekNBLENBdUNGLFdBQVcsQUFFUixVQUFVLENBQUE7SUFDVCxZQUFZLEVBQUUsQ0FBQztHQUNoQjtFQTNDTCxBQTRDSSxJQTVDQSxDQXVDRixXQUFXLENBS1QsU0FBUyxDQUFBO0lBQ1AsUUFBUSxFQUFFLFFBQVE7R0FDbkI7RUE5Q0wsQUFpRFEsSUFqREosQ0F1Q0YsV0FBVyxDQVFULFFBQVEsQ0FDTixlQUFlLENBQ2IsWUFBWSxDQUFBO0lBQ1YsT0FBTyxFQUFFLGVBQWU7R0FRekI7RUExRFQsQUFtREksSUFuREEsQ0F1Q0YsV0FBVyxDQVFULFFBQVEsQ0FDTixlQUFlLENBQ2IsWUFBWSxDQUVoQixNQUFNLENBQUM7SUFDTixLQUFLLEVBQUUsaUJBQWlCO0lBQ3hCLElBQUksRUFBRSxJQUFJO0lBQ1YsS0FBSyxFQUFFLEtBQUs7SUFDWixHQUFHLEVBQUUsS0FBSztJQUNWLE1BQU0sRUFBRSxJQUFJO0dBQ1o7RUF6REwsQUE0RE0sSUE1REYsQ0F1Q0YsV0FBVyxDQVFULFFBQVEsQ0FhTixrQkFBa0IsQ0FBQTtJQUNyQixhQUFhLEVBQUUsS0FBSztHQThCaEI7RUEzRlAsQUErRFUsSUEvRE4sQ0F1Q0YsV0FBVyxDQVFULFFBQVEsQ0FhTixrQkFBa0IsQ0FFaEIsUUFBUSxDQUNOLFVBQVUsQ0FBQTtJQUNmLFNBQVMsRUFBRSxJQUFJO0lBQ1IsT0FBTyxFQUFFLE1BQU07SUFDdEIsVUFBVSxFQUFFLEtBQUs7SUFDakIsYUFBYSxFQUFFLGNBQWM7R0FJdkI7RUF2RVgsQUFvRUssSUFwRUQsQ0F1Q0YsV0FBVyxDQVFULFFBQVEsQ0FhTixrQkFBa0IsQ0FFaEIsUUFBUSxDQUNOLFVBQVUsQ0FLZixhQUFhLENBQUM7SUFDYixPQUFPLEVBQUUsSUFBSTtHQUNiO0VBdEVOLEFBd0VVLElBeEVOLENBdUNGLFdBQVcsQ0FRVCxRQUFRLENBYU4sa0JBQWtCLENBRWhCLFFBQVEsQ0FVTixZQUFZLENBQUE7SUFDakIsT0FBTyxFQUFFLE1BQU07R0FnQlQ7RUF6RlgsQUEyRWMsSUEzRVYsQ0F1Q0YsV0FBVyxDQVFULFFBQVEsQ0FhTixrQkFBa0IsQ0FFaEIsUUFBUSxDQVVOLFlBQVksQ0FFVixhQUFhLENBQ1gsS0FBSyxDQUFBLEFBQUEsSUFBQyxDQUFELE1BQUMsQUFBQSxFQUFZO0lBQ2hCLEtBQUssRUFBRSxJQUFJO0dBQ1o7RUE3RWYsQUE4RWMsSUE5RVYsQ0F1Q0YsV0FBVyxDQVFULFFBQVEsQ0FhTixrQkFBa0IsQ0FFaEIsUUFBUSxDQVVOLFlBQVksQ0FFVixhQUFhLEdBSVQsR0FBRyxDQUFBO0lBQ0gsS0FBSyxFQUFFLElBQUk7R0FDWjtFQWhGZixBQWtGWSxJQWxGUixDQXVDRixXQUFXLENBUVQsUUFBUSxDQWFOLGtCQUFrQixDQUVoQixRQUFRLENBVU4sWUFBWSxDQVVWLFlBQVksQ0FBQTtJQUNWLE9BQU8sRUFBRSxLQUFLO0dBS2Y7RUF4RmIsQUFvRmMsSUFwRlYsQ0F1Q0YsV0FBVyxDQVFULFFBQVEsQ0FhTixrQkFBa0IsQ0FFaEIsUUFBUSxDQVVOLFlBQVksQ0FVVixZQUFZLENBRVYsV0FBVyxFQXBGekIsSUFBSSxDQXVDRixXQUFXLENBUVQsUUFBUSxDQWFOLGtCQUFrQixDQUVoQixRQUFRLENBVU4sWUFBWSxDQVVWLFlBQVksQ0FFRyxXQUFXLENBQUE7SUFDdEIsS0FBSyxFQUFFLElBQUk7SUFDWCxhQUFhLEVBQUUsSUFBSTtHQUNwQjtFQXZGZixBQTZGSSxJQTdGQSxDQXVDRixXQUFXLENBc0RULFFBQVEsQ0FBQTtJQUNOLEtBQUssRUFBRSxJQUFJO0lBQ1gsSUFBSSxFQUFFLElBQUk7SUFDVixNQUFNLEVBQUUsSUFBSTtJQUNaLEtBQUssRUFBRSxrQkFBbUI7R0FVM0I7RUEzR0wsQUFtR1EsSUFuR0osQ0F1Q0YsV0FBVyxDQXNEVCxRQUFRLENBS04sRUFBRSxBQUNDLFlBQVksQ0FBQTtJQUNYLE9BQU8sRUFBRSxJQUFJO0dBQ2Q7RUFyR1QsQUF1R00sSUF2R0YsQ0F1Q0YsV0FBVyxDQXNEVCxRQUFRLENBVU4sV0FBVyxDQUFBO0lBQ1QsU0FBUyxFQUFFLENBQUM7SUFDWixLQUFLLEVBQUUsSUFBSTtHQUNaO0VBMUdQLEFBNkdNLElBN0dGLENBdUNGLFdBQVcsQ0FxRVQsS0FBSyxDQUNILGVBQWUsQ0FBQTtJQUNiLGVBQWUsRUFBRSxHQUFHO0dBQ3JCO0VBL0dQLEFBZ0hNLElBaEhGLENBdUNGLFdBQVcsQ0FxRVQsS0FBSyxDQUlILGNBQWMsQ0FBQTtJQUNaLGFBQWEsRUFBRSxJQUFJO0dBQ3BCO0VBbEhQLEFBbUhNLElBbkhGLENBdUNGLFdBQVcsQ0FxRVQsS0FBSyxDQU9ILEtBQUssQ0FBQTtJQUNILGFBQWEsRUFBRSxpQkFBaUI7R0ErRWpDO0VBbk1QLEFBcUhRLElBckhKLENBdUNGLFdBQVcsQ0FxRVQsS0FBSyxDQU9ILEtBQUssQ0FFSCxFQUFFLEVBckhWLElBQUksQ0F1Q0YsV0FBVyxDQXFFVCxLQUFLLENBT0gsS0FBSyxDQUVBLEVBQUUsQ0FBQTtJQUFFLE9BQU8sRUFBRSxLQUFLO0dBQUc7RUFySGhDLEFBc0hLLElBdEhELENBdUNGLFdBQVcsQ0FxRVQsS0FBSyxDQU9ILEtBQUssQ0FHTixLQUFLLENBQUE7SUFBRSxPQUFPLEVBQUUsSUFBSTtHQUFHO0VBdEg1QixBQXVIUSxJQXZISixDQXVDRixXQUFXLENBcUVULEtBQUssQ0FPSCxLQUFLLENBSUgsRUFBRSxDQUFBO0lBQ0EsUUFBUSxFQUFFLFFBQVE7SUFDbEIsT0FBTyxFQUFFLElBQUk7SUFDYixTQUFTLEVBQUUsSUFBSTtJQUNmLGFBQWEsRUFBRSxJQUFJO0dBQ3BCO0VBNUhULEFBNkhRLElBN0hKLENBdUNGLFdBQVcsQ0FxRVQsS0FBSyxDQU9ILEtBQUssQ0FVSCxFQUFFLENBQUE7SUFDQSxPQUFPLEVBQUUsQ0FBQztHQW9FWDtFQWxNVCxBQStIVSxJQS9ITixDQXVDRixXQUFXLENBcUVULEtBQUssQ0FPSCxLQUFLLENBVUgsRUFBRSxBQUVDLFlBQVksQ0FBQTtJQUNYLEdBQUcsRUFBRSxJQUFJO0dBSVY7RUFwSVgsQUFpSVksSUFqSVIsQ0F1Q0YsV0FBVyxDQXFFVCxLQUFLLENBT0gsS0FBSyxDQVVILEVBQUUsQUFFQyxZQUFZLENBRVgsZ0JBQWdCLENBQUE7SUFDZCxHQUFHLEVBQUUsSUFBSTtHQUNWO0VBbkliLEFBcUlVLElBcklOLENBdUNGLFdBQVcsQ0FxRVQsS0FBSyxDQU9ILEtBQUssQ0FVSCxFQUFFLEFBUUMsVUFBVyxDQUFBLENBQUMsRUFBQztJQUNaLEtBQUssRUFBRSxJQUFJO0dBQ1o7RUF2SVgsQUF3SVUsSUF4SU4sQ0F1Q0YsV0FBVyxDQXFFVCxLQUFLLENBT0gsS0FBSyxDQVVILEVBQUUsQUFXQyxVQUFXLENBQUEsQ0FBQyxFQUFDO0lBQ1osS0FBSyxFQUFFLGdDQUFpQztJQUN4QyxZQUFZLEVBQUUsR0FBRztJQUNqQixXQUFXLEVBQUUsSUFBSTtJQUNqQixRQUFRLEVBQUUsUUFBUTtJQUNsQixhQUFhLEVBQUUsSUFBSTtHQWNwQjtFQTNKWCxBQThJWSxJQTlJUixDQXVDRixXQUFXLENBcUVULEtBQUssQ0FPSCxLQUFLLENBVUgsRUFBRSxBQVdDLFVBQVcsQ0FBQSxDQUFDLENBTVYsT0FBTyxDQUFBO0lBQ04sT0FBTyxFQUFFLFdBQVc7SUFDcEIsU0FBUyxFQUFFLElBQUk7SUFDZixLQUFLLEVBQUUsT0FBTztJQUNkLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLEdBQUcsRUFBRSxDQUFDO0lBQ04sSUFBSSxFQUFFLEdBQUc7R0FDVjtFQXRKYixBQXVKWSxJQXZKUixDQXVDRixXQUFXLENBcUVULEtBQUssQ0FPSCxLQUFLLENBVUgsRUFBRSxBQVdDLFVBQVcsQ0FBQSxDQUFDLEVBZVgsRUFBRSxDQUFBO0lBQ0EsTUFBTSxFQUFFLElBQUk7SUFDWixRQUFRLEVBQUUsTUFBTTtHQUNqQjtFQTFKYixBQTRKVSxJQTVKTixDQXVDRixXQUFXLENBcUVULEtBQUssQ0FPSCxLQUFLLENBVUgsRUFBRSxBQStCQyxVQUFXLENBQUEsQ0FBQyxFQUFDO0lBQ1osS0FBSyxFQUFFLElBQUk7SUFDWCxLQUFLLEVBQUUsQ0FBQztJQUNSLFFBQVEsRUFBRSxRQUFRO0dBV25CO0VBMUtYLEFBZ0tZLElBaEtSLENBdUNGLFdBQVcsQ0FxRVQsS0FBSyxDQU9ILEtBQUssQ0FVSCxFQUFFLEFBK0JDLFVBQVcsQ0FBQSxDQUFDLENBSVYsT0FBTyxDQUFBO0lBQ04sT0FBTyxFQUFFLEtBQUs7SUFDZCxTQUFTLEVBQUUsSUFBSTtJQUNmLEtBQUssRUFBRSxPQUFPO0lBQ2QsV0FBVyxFQUFFLEdBQUc7SUFDaEIsUUFBUSxFQUFFLFFBQVE7SUFDbEIsR0FBRyxFQUFFLEdBQUc7SUFDUixJQUFJLEVBQUUsSUFBSTtJQUNWLFNBQVMsRUFBRSxnQkFBZ0I7R0FDNUI7RUF6S2IsQUEyS1UsSUEzS04sQ0F1Q0YsV0FBVyxDQXFFVCxLQUFLLENBT0gsS0FBSyxDQVVILEVBQUUsQUE4Q0MsVUFBVyxDQUFBLENBQUMsRUFBQztJQUNaLEtBQUssRUFBRSxJQUFJO0lBQ1gsS0FBSyxFQUFFLENBQUM7SUFDUixVQUFVLEVBQUUsT0FBTztJQUNuQixhQUFhLEVBQUUsR0FBRztJQUNsQixPQUFPLEVBQUUsUUFBUTtJQUNqQixVQUFVLEVBQUUsS0FBSztJQUNqQixRQUFRLEVBQUUsUUFBUTtHQVduQjtFQTdMWCxBQW1MWSxJQW5MUixDQXVDRixXQUFXLENBcUVULEtBQUssQ0FPSCxLQUFLLENBVUgsRUFBRSxBQThDQyxVQUFXLENBQUEsQ0FBQyxDQVFWLE9BQU8sQ0FBQTtJQUNOLE9BQU8sRUFBRSxhQUFhO0lBQ3RCLFNBQVMsRUFBRSxJQUFJO0lBQ2YsS0FBSyxFQUFFLE9BQU87SUFDZCxXQUFXLEVBQUUsR0FBRztJQUNoQixRQUFRLEVBQUUsUUFBUTtJQUNsQixHQUFHLEVBQUUsR0FBRztJQUNSLElBQUksRUFBRSxJQUFJO0lBQ1YsU0FBUyxFQUFFLGdCQUFnQjtHQUM1QjtFQTVMYixBQThMVSxJQTlMTixDQXVDRixXQUFXLENBcUVULEtBQUssQ0FPSCxLQUFLLENBVUgsRUFBRSxBQWlFQyxXQUFXLENBQUE7SUFDVixLQUFLLEVBQUUsSUFBSTtJQUNYLEtBQUssRUFBRSxDQUFDO0dBQ1Q7RUFqTVgsQUF1TVEsSUF2TUosQ0F1Q0YsV0FBVyxDQThKVCxRQUFRLENBQ04sVUFBVSxDQUNSLE9BQU8sRUF2TWYsSUFBSSxDQXVDRixXQUFXLENBOEpULFFBQVEsQ0FDTixVQUFVLENBQ0MsT0FBTyxDQUFBO0lBQ2QsSUFBSSxFQUFFLFFBQVE7SUFDZCxTQUFTLEVBQUUsSUFBSTtHQUNoQjtFQTFNVCxBQTZNUSxJQTdNSixDQXVDRixXQUFXLENBOEpULFFBQVEsQ0FPTixNQUFNLENBQ0osTUFBTSxDQUFBO0lBQ0osVUFBVSxFQUFFLElBQUk7SUFDaEIsYUFBYSxFQUFFLElBQUk7R0FDcEI7RUFoTlQsQUFrTk0sSUFsTkYsQ0F1Q0YsV0FBVyxDQThKVCxRQUFRLENBYU4sZUFBZSxDQUFBO0lBQ2IsYUFBYSxFQUFFLElBQUk7R0F3QnBCO0VBM09QLEFBc05ZLElBdE5SLENBdUNGLFdBQVcsQ0E4SlQsUUFBUSxDQWFOLGVBQWUsQ0FFYixNQUFNLENBQ0osVUFBVSxDQUNSLE9BQU8sQ0FBQTtJQUNMLE9BQU8sRUFBRSxJQUFJO0dBQ2Q7RUF4TmIsQUF5TlksSUF6TlIsQ0F1Q0YsV0FBVyxDQThKVCxRQUFRLENBYU4sZUFBZSxDQUViLE1BQU0sQ0FDSixVQUFVLENBSVIsT0FBTyxDQUFBO0lBQ0wsWUFBWSxFQUFFLEdBQUc7R0FDbEI7RUEzTmIsQUE4TlEsSUE5TkosQ0F1Q0YsV0FBVyxDQThKVCxRQUFRLENBYU4sZUFBZSxDQVliLE1BQU0sQ0FBQTtJQUNKLE9BQU8sRUFBRSxNQUFNO0dBV2hCO0VBMU9ULEFBZ09VLElBaE9OLENBdUNGLFdBQVcsQ0E4SlQsUUFBUSxDQWFOLGVBQWUsQ0FZYixNQUFNLENBRUosVUFBVSxDQUFBO0lBQ1IsT0FBTyxFQUFFLEtBQUs7SUFDZCxjQUFjLEVBQUUsSUFBSTtHQU9yQjtFQXpPWCxBQW1PWSxJQW5PUixDQXVDRixXQUFXLENBOEpULFFBQVEsQ0FhTixlQUFlLENBWWIsTUFBTSxDQUVKLFVBQVUsQ0FHUixPQUFPLEVBbk9uQixJQUFJLENBdUNGLFdBQVcsQ0E4SlQsUUFBUSxDQWFOLGVBQWUsQ0FZYixNQUFNLENBRUosVUFBVSxDQUdDLE9BQU8sQ0FBQTtJQUNkLElBQUksRUFBRSxRQUFRO0lBQ2QsU0FBUyxFQUFFLElBQUk7SUFDZixPQUFPLEVBQUUsS0FBSztJQUNkLFVBQVUsRUFBRSxJQUFJO0dBQ2pCO0VBeE9iLEFBOE9NLElBOU9GLENBdUNGLFdBQVcsQ0FzTVQsWUFBWSxDQUNWLFdBQVcsQ0FBQTtJQUNULGFBQWEsRUFBRSxJQUFJO0dBZ0NwQjtFQS9RUCxBQWdQUSxJQWhQSixDQXVDRixXQUFXLENBc01ULFlBQVksQ0FDVixXQUFXLENBRVQsTUFBTSxDQUFBO0lBQ0osTUFBTSxFQUFFLEtBQUs7R0FJZDtFQXJQVCxBQWtQVSxJQWxQTixDQXVDRixXQUFXLENBc01ULFlBQVksQ0FDVixXQUFXLENBRVQsTUFBTSxDQUVKLEdBQUcsQ0FBQTtJQUNELE1BQU0sRUFBRSxJQUFJO0dBQ2I7RUFwUFgsQUFzUFEsSUF0UEosQ0F1Q0YsV0FBVyxDQXNNVCxZQUFZLENBQ1YsV0FBVyxDQVFULFVBQVUsQ0FBQTtJQUNSLE9BQU8sRUFBRSxJQUFJO0lBQ2IsVUFBVSxFQUFFLElBQUk7R0FPakI7RUEvUFQsQUF5UFUsSUF6UE4sQ0F1Q0YsV0FBVyxDQXNNVCxZQUFZLENBQ1YsV0FBVyxDQVFULFVBQVUsQ0FHUixFQUFFLENBQUE7SUFDQSxTQUFTLEVBQUUsSUFBSTtHQUNoQjtFQTNQWCxBQTRQVSxJQTVQTixDQXVDRixXQUFXLENBc01ULFlBQVksQ0FDVixXQUFXLENBUVQsVUFBVSxDQU1SLEVBQUUsQ0FBQTtJQUNBLFNBQVMsRUFBRSxJQUFJO0dBQ2hCO0VBOVBYLEFBZ1FRLElBaFFKLENBdUNGLFdBQVcsQ0FzTVQsWUFBWSxDQUNWLFdBQVcsQ0FrQlQsYUFBYSxDQUFBO0lBQ1gsT0FBTyxFQUFFLElBQUk7R0FDZDtFQWxRVCxBQW9RVSxJQXBRTixDQXVDRixXQUFXLENBc01ULFlBQVksQ0FDVixXQUFXLEFBcUJSLE9BQU8sQ0FDTixhQUFhLENBQUE7SUFDWCxRQUFRLEVBQUUsS0FBSztJQUNmLEdBQUcsRUFBRSxLQUFLO0lBQ1YsTUFBTSxFQUFFLENBQUM7SUFDVCxPQUFPLEVBQUUsQ0FBQztJQUNWLE9BQU8sRUFBRSxDQUFDO0lBQ1YsTUFBTSxFQUFFLElBQUk7SUFDWixVQUFVLEVBQUUsS0FBSztJQUNqQixPQUFPLEVBQUUsS0FBSztHQUNmO0VBN1FYLEFBaVJJLElBalJBLENBdUNGLFdBQVcsQ0EwT1QsVUFBVSxDQUFBO0lBQ1IsT0FBTyxFQUFFLEtBQUs7SUFDZCxVQUFVLEVBQUUsS0FBSztHQVFsQjtFQTNSTCxBQW9STSxJQXBSRixDQXVDRixXQUFXLENBME9ULFVBQVUsQ0FHUixFQUFFLENBQUE7SUFDQSxTQUFTLEVBQUUsSUFBSTtJQUNmLGFBQWEsRUFBRSxHQUFHO0dBQ25CO0VBdlJQLEFBd1JNLElBeFJGLENBdUNGLFdBQVcsQ0EwT1QsVUFBVSxDQU9SLE9BQU8sQ0FBQTtJQUNMLFVBQVUsRUFBRSxJQUFJO0dBQ2pCO0VBMVJQLEFBNFJJLElBNVJBLENBdUNGLFdBQVcsQ0FxUFQsU0FBUyxDQUFBO0lBQ1AsYUFBYSxFQUFFLElBQUk7R0FNcEI7RUFuU0wsQUErUlEsSUEvUkosQ0F1Q0YsV0FBVyxDQXFQVCxTQUFTLENBRVAsRUFBRSxDQUNBLEVBQUUsQ0FBQTtJQUNBLFlBQVksRUFBRSxJQUFJO0dBQ25CO0VBalNULEFBb1NJLElBcFNBLENBdUNGLFdBQVcsQ0E2UFQsUUFBUSxDQUFBO0lBQ04sTUFBTSxFQUFFLE1BQU07R0FDZjtFQXRTTCxBQXVTSSxJQXZTQSxDQXVDRixXQUFXLENBZ1FULFFBQVEsQ0FBQTtJQUNOLE1BQU0sRUFBRSxZQUFZO0lBQ3BCLFVBQVUsRUFBRSxPQUFPO0lBQ25CLE9BQU8sRUFBRSxjQUFjO0dBd0N4QjtFQWxWTCxBQTJTTSxJQTNTRixDQXVDRixXQUFXLENBZ1FULFFBQVEsQ0FJTixTQUFTLENBQUE7SUFDUCxNQUFNLEVBQUUsTUFBTTtHQXFDZjtFQWpWUCxBQTZTUSxJQTdTSixDQXVDRixXQUFXLENBZ1FULFFBQVEsQ0FJTixTQUFTLENBRVAsZ0JBQWdCLENBQUE7SUFDZCxPQUFPLEVBQUUsS0FBSztHQUNmO0VBL1NULEFBZ1RRLElBaFRKLENBdUNGLFdBQVcsQ0FnUVQsUUFBUSxDQUlOLFNBQVMsQ0FLUCxVQUFVLENBQUE7SUFDUixLQUFLLEVBQUUseUJBQTBCO0lBQ2pDLGVBQWUsRUFBRSxNQUFNO0dBUXhCO0VBMVRULEFBbVRVLElBblROLENBdUNGLFdBQVcsQ0FnUVQsUUFBUSxDQUlOLFNBQVMsQ0FLUCxVQUFVLENBR1IsTUFBTSxDQUFBO0lBQ0osSUFBSSxFQUFFLFNBQVM7SUFDZixTQUFTLEVBQUUsS0FBSztHQUNqQjtFQXRUWCxBQXVUVSxJQXZUTixDQXVDRixXQUFXLENBZ1FULFFBQVEsQ0FJTixTQUFTLENBS1AsVUFBVSxDQU9SLEVBQUUsQ0FBQTtJQUNBLE9BQU8sRUFBRSxJQUFJO0dBQ2Q7RUF6VFgsQUEyVFEsSUEzVEosQ0F1Q0YsV0FBVyxDQWdRVCxRQUFRLENBSU4sU0FBUyxDQWdCUCxTQUFTLENBQUE7SUFDUCxLQUFLLEVBQUUsSUFBSTtHQW9CWjtFQWhWVCxBQTZUVSxJQTdUTixDQXVDRixXQUFXLENBZ1FULFFBQVEsQ0FJTixTQUFTLENBZ0JQLFNBQVMsQ0FFUCxDQUFDLENBQUE7SUFDQyxPQUFPLEVBQUUsSUFBSTtHQUNkO0VBL1RYLEFBZ1VJLElBaFVBLENBdUNGLFdBQVcsQ0FnUVQsUUFBUSxDQUlOLFNBQVMsQ0FnQlAsU0FBUyxDQUtiLFVBQVUsQ0FBQztJQUNWLEtBQUssRUFBRSxJQUFJO0lBQ1gsTUFBTSxFQUFFLElBQUk7SUFDWixVQUFVLEVBQUUsS0FBSztJQUNqQixJQUFJLEVBQUUsQ0FBQztJQUNQLFFBQVEsRUFBRSxLQUFLO0lBQ2YsR0FBRyxFQUFFLENBQUM7SUFDTixPQUFPLEVBQUUsTUFBTTtHQVFmO0VBL1VMLEFBd1VLLElBeFVELENBdUNGLFdBQVcsQ0FnUVQsUUFBUSxDQUlOLFNBQVMsQ0FnQlAsU0FBUyxDQUtiLFVBQVUsQ0FRVCxZQUFZLENBQUM7SUFDWixPQUFPLEVBQUUsS0FBSztJQUNkLEtBQUssRUFBRSxJQUFJO0lBQ1gsR0FBRyxFQUFFLEdBQUc7SUFDUixLQUFLLEVBQUUsR0FBRztJQUNWLFFBQVEsRUFBRSxRQUFRO0dBQ2xCO0VBT04sQUFBQSxZQUFZLENBQUE7SUFDVixPQUFPLEVBQUUsS0FBSztHQUNmO0VBRUQsQUFBQSxjQUFjLENBQUE7SUFDWixPQUFPLEVBQUUsTUFBTTtJQUNmLFVBQVUsRUFBRSxNQUFNO0lBQ2xCLE1BQU0sRUFBRSxpQkFBaUI7SUFDekIsYUFBYSxFQUFFLEdBQUc7SUFDbEIsS0FBSyxFQUFFLE9BQU87SUFDZCxXQUFXLEVBQUUsR0FBRztJQUNoQixTQUFTLEVBQUUsSUFBSTtJQUNmLFVBQVUsRUFBRSxJQUFJO0dBQ2pCO0VBQ0QsQUFDRSxRQURNLENBQ04sUUFBUSxDQUFBO0lBQ04sTUFBTSxFQUFFLE1BQU07R0FZZjtFQWRILEFBSU0sUUFKRSxDQUNOLFFBQVEsQ0FFTixVQUFVLENBQ1IsWUFBWSxDQUFBO0lBQ1YsS0FBSyxFQUFFLElBQUk7R0FPWjtFQVpQLEFBTVEsUUFOQSxDQUNOLFFBQVEsQ0FFTixVQUFVLENBQ1IsWUFBWSxDQUVWLEVBQUUsQ0FBQTtJQUNBLFNBQVMsRUFBRSxJQUFJO0dBQ2hCO0VBUlQsQUFTUSxRQVRBLENBQ04sUUFBUSxDQUVOLFVBQVUsQ0FDUixZQUFZLENBS1YsQ0FBQyxDQUFBO0lBQ0MsU0FBUyxFQUFFLElBQUk7R0FDaEI7RUFYVCxBQWVFLFFBZk0sQ0FlTixVQUFVLENBQUE7SUFDUixNQUFNLEVBQUUsQ0FBQztHQUNWO0VBakJILEFBbUJJLFFBbkJJLENBa0JOLElBQUksQ0FDRixPQUFPLEFBQUEsVUFBVSxFQW5CckIsUUFBUSxDQWtCTixJQUFJLENBQ2lCLE9BQU8sQUFBQSxVQUFVLEVBbkJ4QyxRQUFRLENBa0JOLElBQUksQ0FDbUMsT0FBTyxBQUFBLFVBQVUsQ0FBQTtJQUNwRCxJQUFJLEVBQUUsUUFBUTtJQUNkLFNBQVMsRUFBRSxJQUFJO0lBQ2YsYUFBYSxFQUFFLElBQUk7R0FDcEI7RUF2QkwsQUF3QkksUUF4QkksQ0FrQk4sSUFBSSxDQU1GLE9BQU8sQUFBQSxVQUFVLENBQUE7SUFDZixVQUFVLEVBQUUsSUFBSTtJQUNoQixhQUFhLEVBQUUsQ0FBQztHQUNqQjtFQUdMLEFBQ0UsWUFEVSxDQUNWLFFBQVEsQ0FBQTtJQUNOLE1BQU0sRUFBRSxNQUFNO0dBNElmO0VBOUlILEFBSU0sWUFKTSxDQUNWLFFBQVEsQ0FFTixhQUFhLENBQ1gsUUFBUSxDQUFBO0lBQ04sT0FBTyxFQUFFLFNBQVM7R0F1SW5CO0VBNUlQLEFBTVEsWUFOSSxDQUNWLFFBQVEsQ0FFTixhQUFhLENBQ1gsUUFBUSxDQUVOLFVBQVUsQ0FBQTtJQUNSLE9BQU8sRUFBRSxLQUFLO0dBS2Y7RUFaVCxBQVFVLFlBUkUsQ0FDVixRQUFRLENBRU4sYUFBYSxDQUNYLFFBQVEsQ0FFTixVQUFVLENBRVIsRUFBRSxDQUFBO0lBQ0EsYUFBYSxFQUFFLElBQUk7SUFDbkIsU0FBUyxFQUFFLElBQUk7R0FDaEI7RUFYWCxBQWFRLFlBYkksQ0FDVixRQUFRLENBRU4sYUFBYSxDQUNYLFFBQVEsQ0FTTixZQUFZLENBQUE7SUFDVixPQUFPLEVBQUUsS0FBSztHQUtmO0VBbkJULEFBZVUsWUFmRSxDQUNWLFFBQVEsQ0FFTixhQUFhLENBQ1gsUUFBUSxDQVNOLFlBQVksQ0FFVixFQUFFLENBQUE7SUFDQSxNQUFNLEVBQUUsQ0FBQztJQUNULFVBQVUsRUFBRSxJQUFJO0dBQ2pCO0VBbEJYLEFBb0JRLFlBcEJJLENBQ1YsUUFBUSxDQUVOLGFBQWEsQ0FDWCxRQUFRLENBZ0JOLGlCQUFpQixDQUFBO0lBQ2YsT0FBTyxFQUFFLENBQUM7SUFDVixPQUFPLEVBQUUsS0FBSztHQUlmO0VBMUJULEFBdUJVLFlBdkJFLENBQ1YsUUFBUSxDQUVOLGFBQWEsQ0FDWCxRQUFRLENBZ0JOLGlCQUFpQixDQUdmLFlBQVksQ0FBQTtJQUNWLGFBQWEsRUFBRSxJQUFJO0dBQ3BCO0VBekJYLEFBZ0NrQixZQWhDTixDQUNWLFFBQVEsQ0FFTixhQUFhLENBQ1gsUUFBUSxDQXVCTixTQUFTLEFBQ04sV0FBVyxDQUNWLFVBQVUsQ0FDUixLQUFLLENBQ0gsRUFBRSxDQUNBLEVBQUUsQ0FBQTtJQUNBLE9BQU8sRUFBRSxDQUFDO0lBQ1YsV0FBVyxFQUFFLEdBQUc7R0FpQmpCO0VBbkRuQixBQW1Db0IsWUFuQ1IsQ0FDVixRQUFRLENBRU4sYUFBYSxDQUNYLFFBQVEsQ0F1Qk4sU0FBUyxBQUNOLFdBQVcsQ0FDVixVQUFVLENBQ1IsS0FBSyxDQUNILEVBQUUsQ0FDQSxFQUFFLEFBR0MsWUFBWSxDQUFBO0lBQ1gsUUFBUSxFQUFFLE9BQU87SUFDakIsT0FBTyxFQUFFLElBQUk7SUFDYixXQUFXLEVBQUUsR0FBRztHQUlqQjtFQTFDckIsQUF1Q3NCLFlBdkNWLENBQ1YsUUFBUSxDQUVOLGFBQWEsQ0FDWCxRQUFRLENBdUJOLFNBQVMsQUFDTixXQUFXLENBQ1YsVUFBVSxDQUNSLEtBQUssQ0FDSCxFQUFFLENBQ0EsRUFBRSxBQUdDLFlBQVksQUFJVixRQUFRLENBQUE7SUFDUCxPQUFPLEVBQUUsS0FBSztHQUNmO0VBekN2QixBQTJDb0IsWUEzQ1IsQ0FDVixRQUFRLENBRU4sYUFBYSxDQUNYLFFBQVEsQ0F1Qk4sU0FBUyxBQUNOLFdBQVcsQ0FDVixVQUFVLENBQ1IsS0FBSyxDQUNILEVBQUUsQ0FDQSxFQUFFLEFBV0MsVUFBVyxDQUFBLENBQUMsRUFBQztJQUNaLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLEtBQUssRUFBRSxPQUFPO0lBQ2QsV0FBVyxFQUFFLEdBQUc7R0FDakI7RUEvQ3JCLEFBZ0RvQixZQWhEUixDQUNWLFFBQVEsQ0FFTixhQUFhLENBQ1gsUUFBUSxDQXVCTixTQUFTLEFBQ04sV0FBVyxDQUNWLFVBQVUsQ0FDUixLQUFLLENBQ0gsRUFBRSxDQUNBLEVBQUUsQUFnQkMsVUFBVyxDQUFBLENBQUMsRUFBQztJQUNaLFdBQVcsRUFBRSxHQUFHO0dBQ2pCO0VBbERyQixBQXdEVSxZQXhERSxDQUNWLFFBQVEsQ0FFTixhQUFhLENBQ1gsUUFBUSxDQXVCTixTQUFTLENBNkJQLFVBQVUsQ0FBQTtJQUNSLEtBQUssRUFBRSxJQUFJO0lBQ1gsUUFBUSxFQUFFLE1BQU07R0FrRWpCO0VBNUhYLEFBMkRZLFlBM0RBLENBQ1YsUUFBUSxDQUVOLGFBQWEsQ0FDWCxRQUFRLENBdUJOLFNBQVMsQ0E2QlAsVUFBVSxDQUdSLEVBQUUsRUEzRGQsWUFBWSxDQUNWLFFBQVEsQ0FFTixhQUFhLENBQ1gsUUFBUSxDQXVCTixTQUFTLENBNkJQLFVBQVUsQ0FHTCxFQUFFLENBQUE7SUFBRSxPQUFPLEVBQUUsS0FBSztHQUFHO0VBM0RwQyxBQTZEYyxZQTdERixDQUNWLFFBQVEsQ0FFTixhQUFhLENBQ1gsUUFBUSxDQXVCTixTQUFTLENBNkJQLFVBQVUsQ0FJUixLQUFLLENBQ0gsRUFBRSxDQUFBO0lBQ0EsUUFBUSxFQUFFLFFBQVE7R0FDbkI7RUEvRGYsQUFnRWMsWUFoRUYsQ0FDVixRQUFRLENBRU4sYUFBYSxDQUNYLFFBQVEsQ0F1Qk4sU0FBUyxDQTZCUCxVQUFVLENBSVIsS0FBSyxDQUlILEVBQUUsQ0FBQTtJQUNBLE9BQU8sRUFBRSxJQUFJO0lBQ2IsT0FBTyxFQUFFLENBQUM7SUFDVixjQUFjLEVBQUUsSUFBSTtHQWNyQjtFQWpGZixBQW9FZ0IsWUFwRUosQ0FDVixRQUFRLENBRU4sYUFBYSxDQUNYLFFBQVEsQ0F1Qk4sU0FBUyxDQTZCUCxVQUFVLENBSVIsS0FBSyxDQUlILEVBQUUsQUFJQyxZQUFZLENBQUE7SUFDWCxPQUFPLEVBQUUsS0FBSztJQUNkLFFBQVEsRUFBRSxRQUFRO0dBQ25CO0VBdkVqQixBQXdFZ0IsWUF4RUosQ0FDVixRQUFRLENBRU4sYUFBYSxDQUNYLFFBQVEsQ0F1Qk4sU0FBUyxDQTZCUCxVQUFVLENBSVIsS0FBSyxDQUlILEVBQUUsQUFRQyxPQUFPLENBQUE7SUFDTixPQUFPLEVBQUUsZ0JBQWdCO0lBQ3pCLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLE9BQU8sRUFBRSxLQUFLO0lBQ2QsSUFBSSxFQUFFLElBQUk7SUFDVixHQUFHLEVBQUUsR0FBRztJQUNSLEtBQUssRUFBRSxPQUFPO0lBQ2QsV0FBVyxFQUFFLEdBQUc7R0FDakI7RUFoRmpCLEFBbUZZLFlBbkZBLENBQ1YsUUFBUSxDQUVOLGFBQWEsQ0FDWCxRQUFRLENBdUJOLFNBQVMsQ0E2QlAsVUFBVSxDQTJCUixLQUFLLENBQUE7SUFDSCxVQUFVLEVBQUMsaUJBQWlCO0dBdUM3QjtFQTNIYixBQXFGYyxZQXJGRixDQUNWLFFBQVEsQ0FFTixhQUFhLENBQ1gsUUFBUSxDQXVCTixTQUFTLENBNkJQLFVBQVUsQ0EyQlIsS0FBSyxDQUVILEVBQUUsQ0FBQTtJQUNBLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLGFBQWEsRUFBQyxpQkFBaUI7R0FtQ2hDO0VBMUhmLEFBd0ZnQixZQXhGSixDQUNWLFFBQVEsQ0FFTixhQUFhLENBQ1gsUUFBUSxDQXVCTixTQUFTLENBNkJQLFVBQVUsQ0EyQlIsS0FBSyxDQUVILEVBQUUsQ0FHQSxFQUFFLENBQUE7SUFDQSxPQUFPLEVBQUUsQ0FBQztJQUNWLE1BQU0sRUFBRSxDQUFDO0lBQ1QsT0FBTyxFQUFFLFlBQVk7SUFDckIsT0FBTyxFQUFFLElBQUk7SUFDYixXQUFXLEVBQUUsR0FBRztHQTRCakI7RUF6SGpCLEFBK0ZrQixZQS9GTixDQUNWLFFBQVEsQ0FFTixhQUFhLENBQ1gsUUFBUSxDQXVCTixTQUFTLENBNkJQLFVBQVUsQ0EyQlIsS0FBSyxDQUVILEVBQUUsQ0FHQSxFQUFFLEFBT0MsWUFBWSxDQUFBO0lBQ1gsUUFBUSxFQUFFLFFBQVE7SUFDbEIsT0FBTyxFQUFFLENBQUM7SUFDVixXQUFXLEVBQUUsSUFBSTtJQUNqQixJQUFJLEVBQUUsQ0FBQztJQUNQLE9BQU8sRUFBRSxLQUFLO0dBSWY7RUF4R25CLEFBcUdvQixZQXJHUixDQUNWLFFBQVEsQ0FFTixhQUFhLENBQ1gsUUFBUSxDQXVCTixTQUFTLENBNkJQLFVBQVUsQ0EyQlIsS0FBSyxDQUVILEVBQUUsQ0FHQSxFQUFFLEFBT0MsWUFBWSxBQU1WLFFBQVEsQ0FBQTtJQUNQLE9BQU8sRUFBRSxJQUFJO0dBQ2Q7RUF2R3JCLEFBeUdrQixZQXpHTixDQUNWLFFBQVEsQ0FFTixhQUFhLENBQ1gsUUFBUSxDQXVCTixTQUFTLENBNkJQLFVBQVUsQ0EyQlIsS0FBSyxDQUVILEVBQUUsQ0FHQSxFQUFFLEFBaUJDLFVBQVcsQ0FBQSxDQUFDLEVBQUM7SUFDWixXQUFXLEVBQUUsSUFBSTtJQUNqQixLQUFLLEVBQUUsT0FBTztJQUNkLFdBQVcsRUFBRSxHQUFHO0dBQ2pCO0VBN0duQixBQThHa0IsWUE5R04sQ0FDVixRQUFRLENBRU4sYUFBYSxDQUNYLFFBQVEsQ0F1Qk4sU0FBUyxDQTZCUCxVQUFVLENBMkJSLEtBQUssQ0FFSCxFQUFFLENBR0EsRUFBRSxBQXNCQyxXQUFXLENBQUE7SUFDVixjQUFjLEVBQUUsSUFBSTtHQUNyQjtFQWhIbkIsQUFpSGtCLFlBakhOLENBQ1YsUUFBUSxDQUVOLGFBQWEsQ0FDWCxRQUFRLENBdUJOLFNBQVMsQ0E2QlAsVUFBVSxDQTJCUixLQUFLLENBRUgsRUFBRSxDQUdBLEVBQUUsQUF5QkMsT0FBTyxDQUFBO0lBQ04sT0FBTyxFQUFFLGdCQUFnQjtJQUN6QixRQUFRLEVBQUUsUUFBUTtJQUNsQixLQUFLLEVBQUUsT0FBTztJQUNkLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLE9BQU8sRUFBRSxLQUFLO0lBQ2QsS0FBSyxFQUFFLEdBQUc7R0FDWDtFQXhIbkIsQUE2SFUsWUE3SEUsQ0FDVixRQUFRLENBRU4sYUFBYSxDQUNYLFFBQVEsQ0F1Qk4sU0FBUyxDQWtHUCxLQUFLLENBQUM7SUFDSixRQUFRLEVBQUUsUUFBUTtHQUNuQjtFQS9IWCxBQWlJUSxZQWpJSSxDQUNWLFFBQVEsQ0FFTixhQUFhLENBQ1gsUUFBUSxDQTZITixjQUFjLENBQUE7SUFDWixPQUFPLEVBQUUsS0FBSztJQUNkLFVBQVUsRUFBRSxNQUFNO0dBUW5CO0VBM0lULEFBb0lVLFlBcElFLENBQ1YsUUFBUSxDQUVOLGFBQWEsQ0FDWCxRQUFRLENBNkhOLGNBQWMsQ0FHWixJQUFJLENBQUE7SUFDRixhQUFhLEVBQUUsSUFBSTtJQUNuQixPQUFPLEVBQUUsS0FBSztHQUNmO0VBdklYLEFBd0lVLFlBeElFLENBQ1YsUUFBUSxDQUVOLGFBQWEsQ0FDWCxRQUFRLENBNkhOLGNBQWMsQ0FPWixXQUFXLENBQUE7SUFDVCxLQUFLLEVBQUUsSUFBSTtHQUNaO0VBTVgsQUFBQSxTQUFTLENBQUE7SUFDUCxNQUFNLEVBQUUsS0FBSztHQXNCZDtFQXZCRCxBQUVFLFNBRk8sQ0FFUCxVQUFVLENBQUE7SUFDUixPQUFPLEVBQUUsV0FBVztHQVFyQjtFQVhILEFBSUksU0FKSyxDQUVQLFVBQVUsQ0FFUixRQUFRLENBQUE7SUFDTixLQUFLLEVBQUUsSUFBSTtHQUtaO0VBVkwsQUFNTSxTQU5HLENBRVAsVUFBVSxDQUVSLFFBQVEsQ0FFTixNQUFNLENBQUE7SUFDSixJQUFJLEVBQUUsU0FBUztJQUNmLFNBQVMsRUFBRSxLQUFLO0dBQ2pCO0VBVFAsQUFZRSxTQVpPLEFBWU4sTUFBTSxDQUFBO0lBQ0wsTUFBTSxFQUFFLElBQUk7R0FTYjtFQXRCSCxBQWdCUSxTQWhCQyxBQVlOLE1BQU0sQ0FFTCxVQUFVLENBQ1IsUUFBUSxDQUNOLE1BQU0sQ0FBQTtJQUNKLElBQUksRUFBRSxTQUFTO0lBQ2YsU0FBUyxFQUFFLEtBQUs7R0FDakI7RUFLVCxBQUVJLE1BRkUsQUFDSCxjQUFjLENBQ2IsVUFBVSxDQUFBO0lBQ1IsT0FBTyxFQUFFLElBQUk7R0FXZDtFQWRMLEFBS1EsTUFMRixBQUNILGNBQWMsQ0FDYixVQUFVLENBRVIsTUFBTSxDQUNKLEdBQUcsQ0FBQTtJQUNELEtBQUssRUFBRSxLQUFLO0dBQ2I7RUFQVCxBQVVRLE1BVkYsQUFDSCxjQUFjLENBQ2IsVUFBVSxDQU9SLGFBQWEsQ0FDWCxRQUFRLENBQUE7SUFDTixLQUFLLEVBQUUsSUFBSTtHQUNaOzs7QUFRWCxNQUFNLENBQUMsR0FBRyxNQUFNLFNBQVMsRUFBRSxLQUFLO0VBRS9CLEFBRUUsTUFGSSxDQUNMLFNBQVMsQ0FDUixLQUFLLENBQUM7SUFBQyxZQUFZLEVBQUUsSUFBSTtHQUFHO0VBRjlCLEFBR0UsTUFISSxDQUNMLFNBQVMsQ0FFUixNQUFNLENBQUM7SUFBQyxhQUFhLEVBQUUsZUFBZTtHQUFHO0VBSTNDLEFBRUUsWUFGVSxDQUNYLGNBQWMsQ0FDYixRQUFRLENBQUM7SUFDUixPQUFPLEVBQUUsZ0JBQWdCO0lBQUUsU0FBUyxFQUFFLElBQUk7SUFBRSxXQUFXLEVBQUUsSUFBSTtHQUM3RDtFQUlILEFBR0csVUFITyxDQUNULFVBQVUsQ0FDVCxDQUFDLEFBQ0MsSUFBSSxDQUFDO0lBQUMsSUFBSSxFQUFFLEtBQUs7R0FBRztFQUh4QixBQUlHLFVBSk8sQ0FDVCxVQUFVLENBQ1QsQ0FBQyxBQUVDLEtBQUssQ0FBQztJQUFDLEtBQUssRUFBRSxJQUFJO0dBQUc7RUFKekIsQUFPQyxVQVBTLENBT1QsT0FBTyxDQUFDO0lBQ1AsVUFBVSxFQUFFLHdDQUF3QyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFVBQVU7SUFDbEYsZUFBZSxFQUFFLHFCQUFxQjtHQUN0QztFQUVGLEFBQ0MsU0FEUSxDQUNSLE9BQU8sQ0FBQztJQUFDLEtBQUssRUFBQyxDQUFDO0lBQUUsZUFBZSxFQUFFLEtBQUs7R0FBRztFQUc1Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQXNCRztFQUNILEFBRUUsTUFGSSxDQUNMLEtBQUssQ0FDSixHQUFHLENBQUM7SUFDSCxLQUFLLEVBQUUsR0FBRztHQUNWO0VBSkgsQUFLRSxNQUxJLENBQ0wsS0FBSyxDQUlKLEdBQUcsQ0FBQztJQUNILEtBQUssRUFBRSxHQUFHO0dBQ1Y7RUFQSCxBQVNDLE1BVEssQ0FTTCxVQUFVLENBQUM7SUFBQyxTQUFTLEVBQUUsSUFBSTtHQUFHO0VBRy9CLEFBQ0MsYUFEWSxDQUNaLENBQUMsQ0FBQztJQUFDLFNBQVMsRUFBRSxJQUFJO0lBQUUsV0FBVyxFQUFFLElBQUk7R0FBRztFQUR6QyxBQUdFLGFBSFcsQUFFWCxLQUFLLENBQ0wsRUFBRSxDQUFDO0lBQUMsU0FBUyxFQUFFLElBQUk7R0FBRyJ9 */
