/*
 * override Bootstrap variables here
 * see: node_modules/bootstrap/scss/_variables.scss
 */
 
.media__icon--litebox {
visibility:hidden !important;
}
.blazy .media--blazy img.b-blur, .blazy .media--blazy img.media__element, .blazy .grid figure {
	margin: 0 auto;
}
.slick-arrow,
.slick-arrow:hover {
	background: transparent;
}
.slick-arrow::before {
	color: #000;
}
.slick-arrow:focus {
    border: 1px dotted #f76902;
} 
.slick-lightbox-slick .slick-arrow::before {
	color: #fff;
}
.slick-lightbox-close::before {
	font-size: 50px;
}
.slick-current .slide__thumbnail .image-style-thumbnail {
	border: solid 2px #ff6d2c;
}
.product-sold {
    font-size: 22px;
    font-weight: 100;
}
.view-artists-by-catalog .item-list ul {
    list-style-type: none;
}

.view-artists-by-catalog .item-list ul li {
    margin-left: 0;
}

.view-artists-by-catalog .item-list li span.field-content {
    height: 1.5em;
    display: inline;
}

.filtered-view .views-exposed-form .form--inline .form-item-keywords {
  position: relative;
  width: 100%;
  padding-right: 15px;
  padding-left: 15px;
}

.filtered-view .views-exposed-form .form--inline .form-actions {
	position: absolute;
    top: 0;
    left: 0;
    padding: 0;
    margin-left: 91.66667%;
    flex: 0 0 8.33333%;
    max-width: 8.33333%;
	width: 100%;
}

/* Button Overrides */

.node-357 .hero-content.hero-container a {
    text-decoration: none;
}

.field--name-field-hero-content .carousel .hero-content h5,
.field--name-field-hero-content .carousel .hero-content .h5 {
    font-size: 1.75rem;
    line-height: 1.875rem;
    margin-bottom: 1rem;
}

@media (min-width: 1200px) {
    .field--name-field-hero-content .carousel .hero-content h5,
    .field--name-field-hero-content .carousel .hero-content .h5 {
        font-size: 2.1rem;
        line-height: 2.2rem;
    }
}

@media (min-width: 1460px) {
    .field--name-field-hero-content .carousel .hero-content h5,
    .field--name-field-hero-content .carousel .hero-content .h5 {
        font-size: 2.5rem;
        line-height: 2.6rem;
    }
}

@media (max-height: 1024px) {
    .field--name-field-hero-content .carousel .hero-content h5,
    .field--name-field-hero-content .carousel .hero-content .h5 {
        font-size: 1.55rem;
        line-height: 1.65rem;
    }
}

.field--name-field-number-in-stock.field--type-commerce-stock-level .field__item>p {
    line-height: 1.5em;
    margin-bottom: 0.25rem;
}

.leadership-page .embed-person {
    max-width: 80%;
    margin-bottom: 3rem;
}

.leadership-page .embed-person .embed-person--image {
    margin-bottom: 1.5rem !important;
}

.leadership-page .embed-person .person-name {
    font-size: 1.5rem;
    color: #000000;
    margin-bottom: 0.5rem;
}

.leadership-page .embed-person .person-title {
    margin-bottom: 0.5rem;
}

.top-100-item .top-100-item--content {
    margin-bottom: 30px;
}

.top-100-item .top-100-item--content .top-100-item--inner-content {
    top: 0;
    left: 0;
    background-image: linear-gradient( to top, rgba(0, 0, 0, 0.8), transparent 60%);
}

.top-100-item .top-100-item--content .top-100-item--inner-content .top-100-item--number {
    top: 0;
    width: 25%;
    height: 25%;
    font-size: 3.875rem;
    line-height: 4.75rem;
    padding-left: 1.75rem;
    display: flex;
    font-weight: bold;
}

.top-100-item .top-100-item--content .top-100-item--inner-content .top-100-item--number.corner-color {
    padding-left: 0.75rem;
    background-image: linear-gradient( to bottom right, #f76902, #f76902 50%, transparent 50%, transparent 100%);
}

.top-100-item .top-100-item--content .top-100-item--inner-content .top-100-item--number.ribbon span:before {
    content: "";
    display: block;
    min-width: 160px;
    position: absolute;
    left: -120px;
    top: 70px;
    -webkit-transform: rotateZ(-45deg) rotateX(1deg);
    transform: rotateZ(-45deg) rotateX(1deg);
    height: 35px;
    /* background-color: rgba(247, 105, 02, .95); */
    border-top: 35px solid rgba(247, 105, 2, 0.95);
    border-left: 35px solid rgba(247, 105, 2, 0.95);
    border-bottom: 35px solid rgba(247, 105, 2, 0.95);
    border-right: 35px solid transparent;
}

.top-100-item .top-100-item--content .top-100-item--inner-content .top-100-item--number.ribbon-alternate {
    top: 5px;
}

.top-100-item .top-100-item--content .top-100-item--inner-content .top-100-item--number.ribbon-alternate span:before {
    content: "";
    display: block;
    min-width: 160px;
    position: absolute;
    left: -120px;
    top: -55px;
    -webkit-transform: rotateZ(45deg) rotateX(1deg);
    transform: rotateZ(45deg) rotateX(1deg);
    height: 35px;
    /* background-color: rgba(247, 105, 02, .95); */
    border-top: 35px solid rgba(247, 105, 2, 0.95);
    border-left: 35px solid rgba(247, 105, 2, 0.95);
    border-bottom: 35px solid rgba(247, 105, 2, 0.95);
    border-right: 35px solid transparent;
}

.top-100-item .top-100-item--content .top-100-item--inner-content .top-100-item--number span {
    text-shadow: 1px 3px 8px rgba(0, 0, 0, 0.6);
    position: relative;
}

.top-100-item .top-100-item--content .top-100-item--inner-content .top-100-item--description {
    bottom: 0;
}

.top-100-item .top-100-item--content .top-100-item--inner-content .top-100-item--description p {
    margin-bottom: 0.5rem;
    font-weight: bold;
    font-size: 1.16688rem;
    line-height: 1.25rem;
}

.top-100-item .top-100-item--content .top-100-item--inner-content .top-100-item--description p a {
    color: #f76902;
}

.top-100-item .top-100-item--content .top-100-item--inner-content .top-100-item--description p a:hover {
    color: #c75300;
}

.top-100-item .top-100-item--edit {
    top: 5px;
    right: 5px;
}

.resilience-stories {
    padding-top: 2rem;
}

@media (min-width: 768px) {
    .resilience-stories .resilience-story .resilience-teaser {
        max-width: 80%;
    }
}

.facilitators .row.pb-5 {
    padding-bottom: 0 !important;
}

.facilitators .image-card .card-body {
    padding-top: 0;
    padding-bottom: 0;
}

@media (min-width: 768px) {
    #footer--site--bottom ul.nav-0 {
        margin-top: -1rem;
    }
    #footer--site--bottom ul.nav-0>li {
        margin-top: 1rem;
    }
}

@media (min-width:  768px) {
    .node-357 .page-column-right {
        margin-top:  -1.8em;
    }

    .node-357 .page-column-right .logo-text {
        margin-top:  -2.5em;
    }

    .node-357 .page-column-right .paragraph--type--even-width-content {
        margin-top: -2em;
    }
}

@media (min-width:  1024px) {
    .node-357 .page-column-right {
        margin-top:  -1.8em;
    }

    .node-357 .page-column-right .logo-text {
        margin-top:  -2.5em;
    }

    .node-357 .page-column-right .paragraph--even-width-content {
        margin-top: -2em;
    }
}

/* Blog Post Styles */

.blog-row .card-img-con{
  height: 500px;
  padding: 0;
  display: inline-block;
}
.blog-row .card-text{
  display: inline;
  top: 0;
  /*float: right;*/
}
.blog-row .card-body  {
  height: 500px;
}
.blog-row{
  margin: 2rem;
}

/* ShopOne product-grid-view */

/*.single-column-container-7545>.content-row--container {
    width: 90% !important;
    max-width: none !important;
    display: flex !important
}*/

.view-product-grid-view {
    width: 100%
}

.gallery-item-container {
    /* margin: 50px; */
    display: block;
    width: 350px;
    /* Change to 400px for larger picture */
    height: 425px !important;
    margin-bottom: 15px;
    justify-content: center;
    margin-top: 0;
    text-align: center;
    height: 325px;
	margin: 15px;
}

.gallery-item-container a img {
    /* max-width: 345px; */
    max-width: 300px;
    /* Change to 395px for larger picture */
    width: auto;
    vertical-align: middle;
    margin-top: 0;
    text-align: center;
    max-height: 325px;
}

.gallery-item {
    margin: auto;
    width: auto;
    height: auto;
    max-height: 325px;
    max-width: 350px;
    /* Change to 400px for larger picture */
}

.info-container {
    display: flex;
    flex-wrap: wrap;
    margin-bottom: 18px;
    width: 344px;
    /* Change to 394px for larger picture */
    padding: 14px;
    height: 100px;
}

.price-container {
    margin-left: auto;
    display: flex;
    /* justify-content: right; */
    width: auto;
}

.title-container {
    /* margin-top: auto; */
    width: 316px !important;
    /* Change to 366 for larger box */
    float: left;
    max-height: 30px;
    padding-left: 13px;
}

.move-right {
    justify-content: right;
    width: auto;
    float: right;
}

.move-left strong a {
    width:auto;
    display: inline-block;
    font-size: 16px;
    text-decoration: none;
    text-align: left;
    text-overflow: ellipsis;
    overflow: auto;
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    word-break: break-word;
}

.move-left strong a:hover {
    display: inline-block;
    font-size: 16px;
    color: #cccccc;
    text-decoration: underline;
    text-align: left;
    text-overflow: ellipsis;
    overflow: auto;
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
}

.info-container a {
    margin-right: auto;
    text-align: left;
    text-decoration: none;
    font-size: 14px;
    width: 300px;
    /* Change to 350px for larger picture */
    height: 30px;
}

.info-container a:hover {
    margin-right: auto;
    text-align: left;
    font-weight: 300;
    text-decoration: underline;
    font-size: 14px;
    width: 300px;
    /* Change to 350px for larger picture */
    height: 30px;
}
.move-left {
    float: left;
    overflow: auto;
    text-overflow: ellipsis;
}

.artist-entry {
    text-align: left;
    justify-content: left;
    height: 30px;
    width: 200px;
    padding-left: 13px;
	margin: 2px;
}

.cutoff-container {
    max-height: 45px;
    text-overflow: ellipsis;
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

.cutoff-container strong a {
    font-weight: normal;
    font-size: 16px;
    color: white;
    text-decoration: none;
}

.cutoff-container strong a:hover {
    font-weight: normal;
    font-size: 16px;
    color: white;
    text-decoration: underline;
}

.artist-name {
    font-weight: 300;
    color: white;
    text-decoration: none;
    font-size: 14px;
}

.artist-name:hover {
    font-weight: 300;
    color: white;
    text-decoration: underline;
    font-size: 14px;
}

.search-art {
    display: inline-block;
}

#search-art {
    margin-right: 0;
    margin-left: auto;
}

.pager {
    display: block;
    margin: auto;
    text-align: center;
}

.pager__item{
  /* from .btn */
  display: inline-block;
  font-weight: 400;
  /*color: #212529;*/
  text-align: center;
  vertical-align: middle;
  cursor: pointer;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  background-color: transparent;
  border: 1px solid transparent;
  padding: 0.375rem 0.75rem;
  font-size: 1rem;
  line-height: 1.5;
  border-radius: 0;
  transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
  /* from .btn-primary */
  color: #fff !important;
  background-color: #F76902;
  border-color: #F76902;
  /*this makes it look nicer i think*/
  font-weight: bold;
}

.pager__item:hover {
  /* from .btn-primary:hover */
  background-color: black;
  border-color: black;
  color: white;
}

.pager__item:not(:disabled):not(.disabled):active{
    /*from ^that but .btn-primary */
    color: #fff;
    background-color: #c45302;
    border-color: #b84e01;
}
/* ideally improves spacing on pagers */
a.see-more{
  padding: 15px;
  color: #fff;
}

.product-hr{
  border-top: 1px solid rgba(0,0,0,1);
  margin-top: 16px;
  /* width: 330px; */
  width:85%;
}

.form--inline {
    display: flex;
    height: 100px !important;
    padding: 0px;
    width: 95%;
    flex-direction: column;
    align-items: center;
}

.form--inline>div {
    flex: 1 1;
    text-align: center;
    margin: 5px;
}

.form--inline>.js-form-type-textfield {
    text-align: center;
}

.artist-searchbox{
    width:400px;
}
@media only screen and (min-device-width: 320px) and (max-device-width: 480px) and (-webkit-min-device-pixel-ratio: 2) {
    .gallery-item-container {
        margin: auto;
        margin-top: 20px;
    }
}

/* grid display from 3 to 3 with smaller screen size */
@media screen and (min-width: 1200px) and (max-width: 1384px) {

    .product-hr {
        width: 70%;
    }
    .price-container {
        margin-left: 20px;
    }
    .title-container {
        padding-left: 40px;
    }
    .artist-entry {
        padding-left: 40px;
    }
  }

  @media screen and (min-width: 929px) and (max-width: 1199px) {

  }

  /* grid display from 2 to 1 */
  @media screen and (max-width: 928px) and (min-width: 768px) {

    .product-hr {
        width: 70%;
    }
    .price-container {
        margin-left: 15px;
    }
    .title-container {
        padding-left: 40px;
    }
    .artist-entry {
        padding-left: 40px;
    }

  }

/* Artist Page Styling */

.artist-header {
    display: block;
    width: 100%;
    font-family: "Lato", sans-serif;
    font-size: 36px !important;
    font-weight: 300;
    text-transform: uppercase;
    margin-bottom: 25px;
    margin-top: 25px;
    float: left;
}

.artist-summary {
    padding:  25px 0 0 0;
}

@media only screen and (min-width:  800px) {
    .side-by-side {
        display: flex;
        height: auto;
    }

    .artist-summary {
        flex-grow: 1;
        padding: 0 0 0 50px;
    }
}

.artist-profile-image-container img {
    position: relative;
    border: solid;
    border-color: lightgray;
    height: 400px;
    width: 400px;
    object-fit: cover;
}



.contact-info {
    margin-top: 30px;
    margin-bottom: 30px;
}

@media only screen and (min-device-width: 320px) and (max-device-width: 480px) and (-webkit-min-device-pixel-ratio: 2) {
    .side-by-side {
        display: block;
        height: auto;
    }
    .artist-profile-image-container img {
        margin: auto;
        max-height: 300px;
        max-width: 300px;
    }
    .artist-summary {
        padding: 10px;
    }
}

@media only screen and (min-device-width: 768px) and (max-device-width: 1024px) and (-webkit-min-device-pixel-ratio: 2) {
    .side-by-side {
        display: block;
        height: auto;
    }
    .artist-profile-image-container img {
        margin: auto;
        max-height: 500px;
        max-width: 500px;
    }
    .artist-summary {
        padding: 10px;
    }
}


/* About Page: Our Story */

.about-hrule {
    border-top: 2px solid #000000;
    width: 84px;
    text-align: center;
}

.lightweight {
    font-weight: 300;
}

.second-about-header {
    margin-top: 50px;
}

.image-separate {
    margin-top: 100px;
}


/* contact us */

.light-header {
    font-weight: 300;
    font-size: 18px;
}

.pad-this {
    padding-left: 100px;
    padding-top: 50px;
    padding-right: 100px;
}

@media only screen and (min-device-width: 320px) and (max-device-width: 480px) and (-webkit-min-device-pixel-ratio: 2) {
    .pad-this {
        padding-left: 20px;
        padding-top: 50px;
        padding-right: 20px;
    }
}

@media only screen and (min-device-width: 768px) and (max-device-width: 1024px) and (-webkit-min-device-pixel-ratio: 2) {
    .pad-this {
        padding-left: 20px;
        padding-top: 50px;
        padding-right: 20px;
    }
}


/* Slideshow Hero */

.large-hero {
    width: 100%;
    margin: 0;
}

.contain-this {
    display: inline-block;
    overflow: hidden;
    max-height: 700px;
    object-fit: cover;
}

.carousel-item {
    max-height: 700px;
}

.img-responsive {
    max-height: 700px;
}

.p-desc {
    color: white;
}

.darkness {
    background-color: #262626;
}


/* Catalog */

.sidebar-container {
    width: auto
}

.move-right-no-margin {
    width: 80px;
    float: right;
    text-align: right;
}

.field-content-big {
    display: flex;
    justify-content: center;
    align-items: center;
    margin-top: 0;
    text-align: center;
    height: 350px;
}

.field-content-big a img {
    vertical-align: middle;
    max-width: 283px;
    height: auto;
    max-height: 350px;
}

.gallery-item-container-big {
    margin: 15px;
    display: block;
    width: 290px;
    height: 475px !important;
    border-style: solid;
    border-color: lightgray;
}

.info-container-small {
    margin-bottom: 0;
    background-color: #3f3f3f;
    color: #ffffff;
    width: 100%;
    padding: 14px;
    height: 119px;
}

.title-container-long {
    width: 150px;
    float: left;
}

.views-row, .views-view-grid > .row > div{
  margin-bottom: 30px;
}

/* Catalog Sidebar */

#block-mainnavigation-4 .menu-level-0 {
    display: inline-block;
    border-color: lightgray;
    max-height: 600px;
}

#block-mainnavigation-4 .menu-item {
    font-size: 15px;
}

#block-mainnavigation-4 .menu-item a {
    color: #727578;
    font-weight: 500;
}

.taxonomy-term {
    height: 30px;
}

#block-mainnavigation-4 .menu-item a:hover {
    height: 20px;
    color: #f76902;
    font-weight: 500;
}

#block-mainnavigation-4 .menu-item .is-active {
    font-weight: 900;
    color: black;
}

.views-field-nothing {
    height: 25px;
    text-align: left;
}

.views-field-nothing span a {
    color: #727578;
    font-weight: 500;
    text-overflow: ellipsis;
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
}

.views-field-nothing span a:hover {
    color: #f76902;
    font-weight: 500;
    text-overflow: ellipsis;
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
}

.views-field-nothing span {
    font-size: 15px;
    margin-left: 15px;
    display: inline-block;
    text-align: left;
}

.view-artists-by-taxonomy-catalog {
    display: inline-block;
    text-align: left;
}

/* Shop All sidebar */
.nav-0 li{
  list-style-type: none;
  font-weight: bold;
}

/* Our Artists Directory*/

.artist-directory-row {
    margin-bottom: 30px;
    max-height: 600px;
    display: flex;
    inline-size: 465px;
    /* word-break: break-all; */
    overflow-wrap: break-word;
    /* width: 100%;
    justify-content: space-between; */

}

.artist-directory-row .views-field-body {
    max-width: 600px;
}

/* .artist-directory-row .views-field-field-website .field-content {} */

.artist-info-text a {
    margin-left: 10px;
}

.artist-info-text .order-info-artist a {
    margin: 0;
}

.order-info-artist {
    width: auto;
    margin-top: -25px;
    margin-bottom: 0;
    margin-left: 10px;
    white-space: pre-wrap;
}

.year-graduated {
    margin-left: 10px;
    border: 0 !important;
    padding: 0 !important;
}

.artist-info {
    font-size: 0.875rem;
    text-align: left;
    display: flex;
}

.artist-info a:first-child {
    font-size: 16px;
}

.artist-directory-row .views-field-body p:not(:first-child) {
    display: none;
}

.artist-directory-row .views-field-body p {
    text-align: left;
    text-overflow: ellipsis;
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 5;
    -webkit-box-orient: vertical;
}


/*Product page restyles*/
.field--name-field-artist-entity a{
  font-size: 1.5rem;
  font-weight: bold;
}
.field__item{
  margin-bottom: 10px;
}
.field--name-price{
  font-weight: bold;
  font-size: 1.5rem;
}
.views-accordion-header span.field-content{
  /* from .btn */
  display: inline-block;
  /*color: #212529;*/
  text-align: center;
  vertical-align: middle;
  cursor: pointer;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  background-color: transparent;
  border: 1px solid transparent;
  padding: 0.375rem 0.75rem;
  font-size: 1rem;
  line-height: 1.5;
  border-radius: 0;
  transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
  /* from .btn-primary */
  color: #fff !important;
  background-color: #F76902;
  border-color: #F76902;
  /*this makes it look nicer i think*/
  font-weight: bold;
  margin-left: 0;
}
div.views-accordion-header, div.ui-accordion-content{
  background: rgba(0, 0, 0, 0);
  border: 0px solid black;
  padding-left: 0 !important;
}
div.views-accordion-header{
  height: 50px;
}
.views-accordion-header:focus{
  outline: none;
}
span.ui-accordion-header-icon{
  display: none;
}


/* GENERAL */

.widen-container {
    max-width: 1800px;
}

[id^="views-bootstrap-product-grid-view-block-2"]>.row {
    align-items: center;
    justify-content: center;
}

[id^="views-bootstrap-product-grid-view-block-1"]>.row {
    align-items: center;
    justify-content: center;
}

/* shopone logo section */
.logo-text{
    padding-left:15px;
    padding-bottom:15px;
}
.shopone-logo{
    margin-left:-15px;
}

.button--add-to-cart {
    padding:  0.5rem 1rem;
    font-size: 1.25rem;
    line-height:  1.5;
}

.image-card-7813 > .card-body,
.image-card-7817 > .card-body,
.image-card-7645 > .card-body {
    padding-top: 0;
}

.image-card-7645 > .card-body > .image-card--image {
    height: 450px;
}

div[class="coupon-redemption-form__coupons coupon-redemption-form__coupons--multiple"]{
    text-align: center;
}
.table-coup{
    justify-content: space-between;
    text-align: center;
    margin-left: auto;
    margin-right: auto;
}
.coupon-row{
    justify-content: space-between;
    text-align: center;
}
.coupon-cell{
    justify-content: space-between;
    text-align: center;
    padding: 15px;
}
#edit-actions{
    text-align: center;
}
@media only screen and (max-width:  800px) {
    
    
    #edit-sidebar-coupon-redemption-form{
        text-align: center;
    }
    
    #edit-sidebar-coupon-redemption-form-code{
        width: fit-content;
    }
    div[class = "form-group artist-searchbox js-form-item form-item js-form-type-textfield form-type-textfield js-form-item-sidebar-coupon-redemption-form-code form-item-sidebar-coupon-redemption-form-code"]{
        width: 100%;
    }
    #edit-actions{
        text-align: center;
    }  
}


@media only screen and (max-width: 768px){
  .gallery-item-container{
    justify-content: center;
    text-align: center;
    margin-left:auto;
    margin-right: auto;
  }
  div[class="col-12 col-sm-12 col-md-6 col-lg-4 col-xl-4"]{
    justify-content: center;
    text-align: center;
    margin-left:auto;
    margin-right: auto;
  }
  .row{
    justify-content: center;
    text-align: center;
    margin-left:auto;
    margin-right: auto;
  }
}
.image-card-7833 > .card-body
    padding-top: 50px;
}

/* OLD CODE */


/* .all-artists .view-content .container .row .views-field-title span{
    margin: 15px;
    height: 30px;

  }
  .all-artists .view-content .container .row .views-field-title span a {
    margin: 15px;
    height: 30px;
    color: #727578;
    font-weight:500;
  }
  .all-artists .view-content .container .row .views-field-title span a:hover  {
    margin: 15px;
    height: 30px;
    color: #F76902;
    font-weight:500;
  } */


/* .catalog-container {
    max-width: 2000px;
  } */


/* .catalog-container .row .col-12 [class^=js-view-dom-id] .container {

    max-width: 2000px;
  } */


/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3dlYl93d3cvaG9tZS93LW1jdXRpbGl0aWVzL3d3dy9hc3NldHMvc2Nzcy9fYm9vdHN0cmFwLWN1c3RvbWl6YXRpb25zLnNjc3MiLCJwYWdlcy9fZnJvbnQuc2NzcyIsImZ1bmN0aW9ucy9fZnVuY3Rpb25zLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvbWl4aW5zL19icmVha3BvaW50cy5zY3NzIiwicGFnZXMvX2xlYWRlcnNoaXAuc2NzcyIsImNvbXBvbmVudHMvX3RvcC0xMDAuc2NzcyIsImNvbXBvbmVudHMvX3Jlc2lsaWVuY2Utc3Rvcmllcy5zY3NzIiwiX2dsb2JhbC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRztBQThGSCxzQkFBc0I7QUNqR3RCO0VBR00sc0JBQXFCLEVBQ3RCOztBQUlMO0VBSUksbUJDSDhCO0VESTlCLHNCQ0o4QjtFREs5QixvQkRrRVMsRUNsRFQ7RUU4QkE7SUZwREo7TUFTSyxrQkFBaUI7TUFDakIsb0JBQW1CLEVBWXBCLEVBQUE7RUU4QkE7SUZwREo7TUFjSyxrQkFBaUI7TUFDakIsb0JBQW1CLEVBT3BCLEVBQUE7RUFKQTtJQWxCSjtNQW1CSyxtQkFBa0I7TUFDbEIscUJBQW9CLEVBRXJCLEVBQUE7O0FHOUJKO0VBRUksZUFBYztFQUNkLG9CQUFtQixFQW1CcEI7RUF0Qkg7SUFNTSxpQ0FBZ0MsRUFDakM7RUFQTDtJQVVNLGtCQUFpQjtJQUNqQixlSkxXO0lJTVgscUJBQW9CLEVBQ3JCO0VBYkw7SUFnQk0scUJBQW9CLEVBQ3JCOztBQ2pCTDtFQUtJLG9CQUFtQixFQStFcEI7RUFwRkg7SUFPTSxPQUFNO0lBQ04sUUFBTztJQUNQLCtFQUF5RSxFQTBFMUU7SUFuRkw7TUFZUSxPQUFNO01BQ04sV0FBVTtNQUNWLFlBQVc7TUFDWCxvQkhOMEI7TUdPMUIscUJBQW9CO01BRXBCLHNCQUFxQjtNQUNyQixjQUFhO01BQ2Isa0JBQWlCLEVBOENsQjtNQWxFUDtRQXNCVSxxQkFBb0I7UUFDcEIsNEdBQTZHLEVBQzlHO01BeEJUO1FBMkJZLFlBQVc7UUFDWCxlQUFjO1FBQ2QsaUJBQWdCO1FBQ2hCLG1CQUFrQjtRQUNsQixhQUFZO1FBQ1osVUFBUztRQUNULGlEQUF3QztnQkFBeEMseUNBQXdDO1FBQ3hDLGFBQVk7UUFDWixnREFBZ0Q7UUFDaEQsK0NBQThDO1FBQzlDLGdEQUErQztRQUMvQyxrREFBaUQ7UUFDakQscUNBQW9DLEVBQ3JDO01BeENYO1FBMkNVLFNBQVEsRUFnQlQ7UUEzRFQ7VUE2Q1ksWUFBVztVQUNYLGVBQWM7VUFDZCxpQkFBZ0I7VUFDaEIsbUJBQWtCO1VBQ2xCLGFBQVk7VUFDWixXQUFVO1VBQ1YsZ0RBQXVDO2tCQUF2Qyx3Q0FBdUM7VUFDdkMsYUFBWTtVQUNaLGdEQUFnRDtVQUNoRCwrQ0FBOEM7VUFDOUMsZ0RBQStDO1VBQy9DLGtEQUFpRDtVQUNqRCxxQ0FBb0MsRUFDckM7TUExRFg7UUE2RFUsNENBQTJDO1FBQzNDLG1CQUFrQixFQUNuQjtJQS9EVDtNQXFFUSxVQUFTLEVBYVY7TUFsRlA7UUF1RVUscUJBQW9CO1FBQ3BCLGtCQUFpQjtRQUNqQixzQkhoRXdCO1FHaUV4QixxQkFBb0IsRUFPckI7UUFqRlQ7VUE0RVksZUxuRVUsRUt1RVg7VUFoRlg7WUE4RWMsZUxwRVMsRUtxRVY7O0FBL0ViO0VBc0ZJLFNBQVE7RUFDUixXQUFVLEVBQ1g7O0FDeEZIO0VBQ0Usa0JBQWlCLEVBUWxCO0VIbURHO0lHNURKO01BS1EsZUFBYyxFQUVqQixFQUFBOztBQ1BMO0VBRUksNkJBQTRCLEVBQzdCOztBQUhIO0VBS0ksZUFBYztFQUNkLGtCQUFpQixFQUNsQjs7QUpxREM7RUlsREo7SUFHWSxrQkFBaUIsRUFLcEI7SUFSVDtNQU1nQixpQkFBZ0IsRUFDbkIsRUFBQSIsImZpbGUiOiJzdHlsZS5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogb3ZlcnJpZGUgQm9vdHN0cmFwIHZhcmlhYmxlcyBoZXJlXG4gKiBzZWU6IG5vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9fdmFyaWFibGVzLnNjc3NcbiAqL1xuXG4kdGhlbWUtY29sb3JzOiAoXG5cdFwiYmxhY2tcIjogIzAwMDAwMCxcblx0XCJ3aGl0ZVwiOiAjZmZmZmZmLFxuXHRcblx0XCJyaXQtb3JhbmdlXCI6ICNGNzY5MDIsIC8vICNlODc0MDAsXG5cdFwid2NhZy1vcmFuZ2VcIjogI0M3NTMwMCxcblxuXHRcImFjY2VudC10ZWFsXCI6ICMwMDVlNWQsXG5cdFwiYWNjZW50LWdyZWVuXCI6ICM4NEJEMDAsXG5cdFwiYWNjZW50LWJsdWVcIjogIzAwOWNiZCxcblx0XCJhY2NlbnQtcHVycGxlXCI6ICM3RDU1QzcsXG5cdFwiYWNjZW50LXJlZFwiOiAjREEyOTFDLFxuXHRcImFjY2VudC15ZWxsb3dcIjogI0Y2QkUwMCxcblxuXHRcIm5ldXRyYWwtZ3JheS1tZWRpdW1cIjogIzk0OTQ5NCxcblx0XCJuZXV0cmFsLWNvb2wtZ3JheS1kYXJrXCI6ICM3Mjc1NzgsXG5cdFwibmV1dHJhbC1jb29sLWdyYXlcIjogI2Q5ZDlkNixcblx0XCJuZXV0cmFsLXdhcm0tZ3JheVwiOiAjRDdEMkNCLFxuXHRcIm5ldXRyYWwtZ3JlZW5cIjogIzgyOTk5NSxcblx0XCJuZXV0cmFsLWJyb3duXCI6ICNBMzkzODIsXG5cdFwiZm9ybS1ncmF5XCI6ICM3Mjc0NzgsXG4pO1xuJHByaW1hcnk6IHRoZW1lLWNvbG9yKFwicml0LW9yYW5nZVwiKTtcblxuJGZvbnQtZmFtaWx5LXNhbnMtc2VyaWY6IFwiSGVsdmV0aWNhIE5ldWVcIiwgXCJIZWx2ZXRpY2FcIiwgXCJSb2JvdG9cIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuJGZvbnQtZmFtaWx5LWhlbHZldGljYS1saWdodDogXCJIZWx2ZXRpY2FOZXVlLUxpZ2h0XCIsIFwiSGVsdmV0aWNhIE5ldWUgTGlnaHRcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBcIkhlbHZldGljYVwiLCBcIlJvYm90b1wiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG5cbiRmb250LXNpemUtbGc6IDEuMTY3cmVtO1xuXG4kaGVhZGluZ3MtbWFyZ2luLWJvdHRvbTogMi42cmVtO1xuJGhlYWRpbmdzLWZvbnQtd2VpZ2h0OiBib2xkO1xuXG4kaDEtZm9udC1zaXplOiBweC10by1yZW0oNjgpO1xuJGgyLWZvbnQtc2l6ZTogcHgtdG8tcmVtKDM2KTtcbiRoMy1mb250LXNpemU6IHB4LXRvLXJlbSgzMik7XG4kaDQtZm9udC1zaXplOiBweC10by1yZW0oMjgpO1xuJGg1LWZvbnQtc2l6ZTogcHgtdG8tcmVtKDI0KTtcbiRoNi1mb250LXNpemU6IHB4LXRvLXJlbSgyMCk7XG5cbiRib3JkZXItcmFkaXVzOiAwO1xuJGJvcmRlci1yYWRpdXMtbGc6IDA7XG4kYm9yZGVyLXJhZGl1cy1zbTogMDtcbiRpbnB1dC1idG4tYm9yZGVyLXdpZHRoOiAxcHg7XG5cbiRsaW5rLWNvbG9yOiB0aGVtZS1jb2xvcihcIndjYWctb3JhbmdlXCIpICFkZWZhdWx0O1xuJGxpbmstaG92ZXItY29sb3I6IHRoZW1lLWNvbG9yKFwiYmxhY2tcIik7XG4kbGluay1ob3Zlci1kZWNvcmF0aW9uOiBub25lO1xuXG5cbiRncmlkLWJyZWFrcG9pbnRzOiAoXG5cdC8vIEV4dHJhIHNtYWxsIHNjcmVlbiAvIHBob25lXG5cdHhzOiAwLFxuXHQvLyBTbWFsbCBzY3JlZW4gLyBwaG9uZVxuXHRzbTogNTc2cHgsXG5cdC8vIE1lZGl1bSBzY3JlZW4gLyB0YWJsZXRcblx0bWQ6IDc2OHB4LFxuXHQvLyBDVVNUT01cblx0bWRsZzogODgwcHgsXG5cdC8vIExhcmdlIHNjcmVlbiAvIGRlc2t0b3Bcblx0bGc6IDk5MnB4LFxuXHQvLyBFeHRyYSBsYXJnZSBzY3JlZW4gLyB3aWRlIGRlc2t0b3Bcblx0eGw6IDEyMDBweCxcblx0Ly8gRXh0cmEgZXh0cmEgbGFyZ2Ugc2NyZWVuIC8gd2lkZXIgZGVza3RvcFxuXHR4eGw6IDE0NjBweFxuKTtcblxuJGNvbnRhaW5lci1tYXgtd2lkdGhzOiAoXG5cdHNtOiA1NDBweCxcblx0bWQ6IDcyMHB4LFxuXHRtZGxnOiA4NDBweCxcblx0bGc6IDk2MHB4LFxuXHR4bDogMTE0MHB4LFxuXHR4eGw6IDE0MDBweFxuKTtcblxuJHNwYWNlcjogMXJlbSAhZGVmYXVsdDtcbiRzcGFjZXJzOiAoXG5cdC03OiAtKCRzcGFjZXIgKiA2KSxcblx0LTY6IC0oJHNwYWNlciAqIDQuNSksXG5cdC01OiAtKCRzcGFjZXIgKiAzKSxcblx0LTQ6IC0oJHNwYWNlciAqIDEuNSksXG5cdC0zOiAtJHNwYWNlcixcblx0LTI6IC0oJHNwYWNlciAqIC41KSxcblx0LTE6IC0oJHNwYWNlciAqIC4yNSksXG5cdDY6ICgkc3BhY2VyICogNC41KSxcblx0NzogKCRzcGFjZXIgKiA2KVxuKTtcblxuXG4kY2FyZC1jYXAtYmc6IHRyYW5zcGFyZW50O1xuJGNhcmQtYm9yZGVyLXdpZHRoOiAwO1xuXG4vKiBCdXR0b24gT3ZlcnJpZGVzICovXG5cbiRpbnB1dC1idG4tcGFkZGluZy15LXNtOiAgICAgIC41cmVtO1xuJGlucHV0LWJ0bi1wYWRkaW5nLXgtc206ICAgICAgMXJlbTtcblxuJGlucHV0LWJ0bi1wYWRkaW5nLXktbGc6ICAgICAgLjYyNXJlbTtcbiRpbnB1dC1idG4tcGFkZGluZy14LWxnOiAgICAgIDEuMjVyZW07XG5cblxuLy8gRm9ybXNcbiRpbnB1dC1wYWRkaW5nLXk6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB4LXRvLXJlbSgxMCk7XG4kaW5wdXQtcGFkZGluZy14OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBweC10by1yZW0oMjApO1xuJGlucHV0LWZvbnQtc2l6ZTpcdFx0XHRcdFx0XHRcdFx0JGZvbnQtc2l6ZS1sZztcbiRpbnB1dC1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJsYWNrO1xuJGlucHV0LWJvcmRlci1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlbWUtY29sb3IoJ2Zvcm0tZ3JheScpO1xuJGlucHV0LWJveC1zaGFkb3c6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5zZXQgMCAxcHggMXB4IHJnYmEoYmxhY2ssIC4wNzUpO1xuJGlucHV0LWJvcmRlci1yYWRpdXM6ICAgICAgICAgICAgICAgICAgICAgICAgICAgMnB4O1xuJGlucHV0LWZvY3VzLWJvcmRlci1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgYmxhY2s7XG4kaW5wdXQtZm9jdXMtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBibGFjaztcbiRpbnB1dC1mb2N1cy1ib3gtc2hhZG93OiAgICAgICAgICAgICAgICAgICAgICAgIG5vbmU7XG4kaW5wdXQtcGxhY2Vob2xkZXItY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICB0aGVtZS1jb2xvcignZm9ybS1ncmF5Jyk7XG4kaW5wdXQtcGxhaW50ZXh0LWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICBibGFjaztcbi8vICRpbnB1dC1oZWlnaHQtaW5uZXI6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG87XG4vLyAkaW5wdXQtaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvO1xuXG4kY3VzdG9tLWNvbnRyb2wtZ3V0dGVyOiAgICAgICAgICAgICAgICAgICAgICAgICAwO1xuJGN1c3RvbS1jb250cm9sLWluZGljYXRvci1zaXplOiAgICAgICAgICAgICAgICAgMS4ycmVtO1xuJGN1c3RvbS1jb250cm9sLWluZGljYXRvci1iZzogICAgICAgICAgICAgICAgICAgd2hpdGU7XG4kY3VzdG9tLWNvbnRyb2wtaW5kaWNhdG9yLWJveC1zaGFkb3c6ICAgICAgICAgICBub25lO1xuJGN1c3RvbS1jb250cm9sLWluZGljYXRvci1jaGVja2VkLWJnOiAgICAgICAgICAgdGhlbWUtY29sb3IoJ3JpdC1vcmFuZ2UnKTtcbiRjdXN0b20tY29udHJvbC1pbmRpY2F0b3ItZm9jdXMtYm94LXNoYWRvdzogICAgIG5vbmU7XG4kY3VzdG9tLWNvbnRyb2wtaW5kaWNhdG9yLWFjdGl2ZS1ib3gtc2hhZG93OiAgICBub25lO1xuJGN1c3RvbS1jaGVja2JveC1pbmRpY2F0b3ItYm9yZGVyLXJhZGl1czogICAgICAgMnB4O1xuIiwiLm5vZGUtMzU3e1xuICAuaGVyby1jb250ZW50Lmhlcm8tY29udGFpbmVye1xuICAgIGF7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuICB9XG59XG5cbi5maWVsZC0tbmFtZS1maWVsZC1oZXJvLWNvbnRlbnQge1xuXHQuY2Fyb3VzZWwge1xuXHRcdC5oZXJvLWNvbnRlbnQge1xuXHRcdFx0aDUsIC5oNSB7XG5cdFx0XHRcdGZvbnQtc2l6ZTogcHgtdG8tcmVtKDI4KTtcblx0XHRcdFx0bGluZS1oZWlnaHQ6IHB4LXRvLXJlbSgzMCk7XG5cdFx0XHRcdG1hcmdpbi1ib3R0b206ICRzcGFjZXI7XG5cblx0XHRcdFx0QGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCh4bCkge1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTogMi4xcmVtO1xuXHRcdFx0XHRcdGxpbmUtaGVpZ2h0OiAyLjJyZW07XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKHh4bCkge1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTogMi41cmVtO1xuXHRcdFx0XHRcdGxpbmUtaGVpZ2h0OiAyLjZyZW07XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRAbWVkaWEgKG1heC1oZWlnaHQ6IDEwMjRweCkge1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTogMS41NXJlbTtcblx0XHRcdFx0XHRsaW5lLWhlaWdodDogMS42NXJlbTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuIiwiQGZ1bmN0aW9uIHB4LXRvLXJlbSgkcGl4ZWxzLCAkcm9vdDogMTYpIHtcbiAgICBAaWYgKHVuaXRsZXNzKCRwaXhlbHMpKSB7XG4gICAgICAgICRwaXhlbHM6ICRwaXhlbHMgKiAxcHg7XG4gICAgfVxuXG4gICAgQGlmICh1bml0bGVzcygkcm9vdCkpIHtcbiAgICAgICAgJHJvb3Q6ICRyb290ICogMXB4O1xuICAgIH1cblxuICAgIEByZXR1cm4gJHBpeGVscyAvICRyb290ICogMXJlbTtcbn1cbiIsIi8vIEJyZWFrcG9pbnQgdmlld3BvcnQgc2l6ZXMgYW5kIG1lZGlhIHF1ZXJpZXMuXG4vL1xuLy8gQnJlYWtwb2ludHMgYXJlIGRlZmluZWQgYXMgYSBtYXAgb2YgKG5hbWU6IG1pbmltdW0gd2lkdGgpLCBvcmRlciBmcm9tIHNtYWxsIHRvIGxhcmdlOlxuLy9cbi8vICAgICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweClcbi8vXG4vLyBUaGUgbWFwIGRlZmluZWQgaW4gdGhlIGAkZ3JpZC1icmVha3BvaW50c2AgZ2xvYmFsIHZhcmlhYmxlIGlzIHVzZWQgYXMgdGhlIGAkYnJlYWtwb2ludHNgIGFyZ3VtZW50IGJ5IGRlZmF1bHQuXG5cbi8vIE5hbWUgb2YgdGhlIG5leHQgYnJlYWtwb2ludCwgb3IgbnVsbCBmb3IgdGhlIGxhc3QgYnJlYWtwb2ludC5cbi8vXG4vLyAgICA+PiBicmVha3BvaW50LW5leHQoc20pXG4vLyAgICBtZFxuLy8gICAgPj4gYnJlYWtwb2ludC1uZXh0KHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpKVxuLy8gICAgbWRcbi8vICAgID4+IGJyZWFrcG9pbnQtbmV4dChzbSwgJGJyZWFrcG9pbnQtbmFtZXM6ICh4cyBzbSBtZCBsZyB4bCkpXG4vLyAgICBtZFxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbmV4dCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cywgJGJyZWFrcG9pbnQtbmFtZXM6IG1hcC1rZXlzKCRicmVha3BvaW50cykpIHtcbiAgJG46IGluZGV4KCRicmVha3BvaW50LW5hbWVzLCAkbmFtZSk7XG4gIEByZXR1cm4gaWYoJG4gIT0gbnVsbCBhbmQgJG4gPCBsZW5ndGgoJGJyZWFrcG9pbnQtbmFtZXMpLCBudGgoJGJyZWFrcG9pbnQtbmFtZXMsICRuICsgMSksIG51bGwpO1xufVxuXG4vLyBNaW5pbXVtIGJyZWFrcG9pbnQgd2lkdGguIE51bGwgZm9yIHRoZSBzbWFsbGVzdCAoZmlyc3QpIGJyZWFrcG9pbnQuXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1taW4oc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXG4vLyAgICA1NzZweFxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtaW46IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkbmFtZSk7XG4gIEByZXR1cm4gaWYoJG1pbiAhPSAwLCAkbWluLCBudWxsKTtcbn1cblxuLy8gTWF4aW11bSBicmVha3BvaW50IHdpZHRoLiBOdWxsIGZvciB0aGUgbGFyZ2VzdCAobGFzdCkgYnJlYWtwb2ludC5cbi8vIFRoZSBtYXhpbXVtIHZhbHVlIGlzIGNhbGN1bGF0ZWQgYXMgdGhlIG1pbmltdW0gb2YgdGhlIG5leHQgb25lIGxlc3MgMC4wMnB4XG4vLyB0byB3b3JrIGFyb3VuZCB0aGUgbGltaXRhdGlvbnMgb2YgYG1pbi1gIGFuZCBgbWF4LWAgcHJlZml4ZXMgYW5kIHZpZXdwb3J0cyB3aXRoIGZyYWN0aW9uYWwgd2lkdGhzLlxuLy8gU2VlIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9tZWRpYXF1ZXJpZXMtNC8jbXEtbWluLW1heFxuLy8gVXNlcyAwLjAycHggcmF0aGVyIHRoYW4gMC4wMXB4IHRvIHdvcmsgYXJvdW5kIGEgY3VycmVudCByb3VuZGluZyBidWcgaW4gU2FmYXJpLlxuLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzgyNjFcbi8vXG4vLyAgICA+PiBicmVha3BvaW50LW1heChzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcbi8vICAgIDc2Ny45OHB4XG5AZnVuY3Rpb24gYnJlYWtwb2ludC1tYXgoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG5leHQ6IGJyZWFrcG9pbnQtbmV4dCgkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgQHJldHVybiBpZigkbmV4dCwgYnJlYWtwb2ludC1taW4oJG5leHQsICRicmVha3BvaW50cykgLSAuMDIsIG51bGwpO1xufVxuXG4vLyBSZXR1cm5zIGEgYmxhbmsgc3RyaW5nIGlmIHNtYWxsZXN0IGJyZWFrcG9pbnQsIG90aGVyd2lzZSByZXR1cm5zIHRoZSBuYW1lIHdpdGggYSBkYXNoIGluIGZyb250LlxuLy8gVXNlZnVsIGZvciBtYWtpbmcgcmVzcG9uc2l2ZSB1dGlsaXRpZXMuXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1pbmZpeCh4cywgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcbi8vICAgIFwiXCIgIChSZXR1cm5zIGEgYmxhbmsgc3RyaW5nKVxuLy8gICAgPj4gYnJlYWtwb2ludC1pbmZpeChzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcbi8vICAgIFwiLXNtXCJcbkBmdW5jdGlvbiBicmVha3BvaW50LWluZml4KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gIEByZXR1cm4gaWYoYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cykgPT0gbnVsbCwgXCJcIiwgXCItI3skbmFtZX1cIik7XG59XG5cbi8vIE1lZGlhIG9mIGF0IGxlYXN0IHRoZSBtaW5pbXVtIGJyZWFrcG9pbnQgd2lkdGguIE5vIHF1ZXJ5IGZvciB0aGUgc21hbGxlc3QgYnJlYWtwb2ludC5cbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSB0byB0aGUgZ2l2ZW4gYnJlYWtwb2ludCBhbmQgd2lkZXIuXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC11cCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWluOiBicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgQGlmICRtaW4ge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWluKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIE1lZGlhIG9mIGF0IG1vc3QgdGhlIG1heGltdW0gYnJlYWtwb2ludCB3aWR0aC4gTm8gcXVlcnkgZm9yIHRoZSBsYXJnZXN0IGJyZWFrcG9pbnQuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQgYW5kIG5hcnJvd2VyLlxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWF4OiBicmVha3BvaW50LW1heCgkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgQGlmICRtYXgge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIE1lZGlhIHRoYXQgc3BhbnMgbXVsdGlwbGUgYnJlYWtwb2ludCB3aWR0aHMuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgYmV0d2VlbiB0aGUgbWluIGFuZCBtYXggYnJlYWtwb2ludHNcbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LWJldHdlZW4oJGxvd2VyLCAkdXBwZXIsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogYnJlYWtwb2ludC1taW4oJGxvd2VyLCAkYnJlYWtwb2ludHMpO1xuICAkbWF4OiBicmVha3BvaW50LW1heCgkdXBwZXIsICRicmVha3BvaW50cyk7XG5cbiAgQGlmICRtaW4gIT0gbnVsbCBhbmQgJG1heCAhPSBudWxsIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbikgYW5kIChtYXgtd2lkdGg6ICRtYXgpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWF4ID09IG51bGwge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJGxvd2VyLCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWluID09IG51bGwge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkdXBwZXIsICRicmVha3BvaW50cykge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vIE1lZGlhIGJldHdlZW4gdGhlIGJyZWFrcG9pbnQncyBtaW5pbXVtIGFuZCBtYXhpbXVtIHdpZHRocy5cbi8vIE5vIG1pbmltdW0gZm9yIHRoZSBzbWFsbGVzdCBicmVha3BvaW50LCBhbmQgbm8gbWF4aW11bSBmb3IgdGhlIGxhcmdlc3Qgb25lLlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IG9ubHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQsIG5vdCB2aWV3cG9ydHMgYW55IHdpZGVyIG9yIG5hcnJvd2VyLlxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtb25seSgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWluOiBicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgJG1heDogYnJlYWtwb2ludC1tYXgoJG5hbWUsICRicmVha3BvaW50cyk7XG5cbiAgQGlmICRtaW4gIT0gbnVsbCBhbmQgJG1heCAhPSBudWxsIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbikgYW5kIChtYXgtd2lkdGg6ICRtYXgpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWF4ID09IG51bGwge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJG5hbWUsICRicmVha3BvaW50cykge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIGlmICRtaW4gPT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKCRuYW1lLCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuIiwiLmxlYWRlcnNoaXAtcGFnZXtcbiAgLmVtYmVkLXBlcnNvbntcbiAgICBtYXgtd2lkdGg6IDgwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAzcmVtO1xuXG4gICAgLmVtYmVkLXBlcnNvbi0taW1hZ2V7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW0gIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAucGVyc29uLW5hbWV7XG4gICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgIGNvbG9yOiB0aGVtZS1jb2xvcignYmxhY2snKTtcbiAgICAgIG1hcmdpbi1ib3R0b206IC41cmVtO1xuICAgIH1cblxuICAgIC5wZXJzb24tdGl0bGV7XG4gICAgICBtYXJnaW4tYm90dG9tOiAuNXJlbTtcbiAgICB9XG5cbiAgICAvLyAucGVyc29uLXBob25le1xuICAgIC8vICAgZGlzcGxheTogbm9uZTtcbiAgICAvLyB9XG4gIH1cbn1cbiIsIi50b3AtMTAwLWl0ZW17XG4gIC50b3AtMTAwLWl0ZW0taW1hZ2V7XG5cbiAgfVxuICAudG9wLTEwMC1pdGVtLS1jb250ZW50e1xuICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XG4gICAgLnRvcC0xMDAtaXRlbS0taW5uZXItY29udGVudHtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gdG9wLHJnYmEoMCwwLDAsMC44KSx0cmFuc3BhcmVudCA2MCUpO1xuXG4gICAgICAudG9wLTEwMC1pdGVtLS1udW1iZXJ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgd2lkdGg6IDI1JTtcbiAgICAgICAgaGVpZ2h0OiAyNSU7XG4gICAgICAgIGZvbnQtc2l6ZTogcHgtdG8tcmVtKDYyKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDQuNzVyZW07XG4gICAgICAgIC8vIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxLjc1cmVtO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgJi5jb3JuZXItY29sb3J7XG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiAuNzVyZW07XG4gICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSByaWdodCwgJHByaW1hcnksICRwcmltYXJ5IDUwJSwgdHJhbnNwYXJlbnQgNTAlLCB0cmFuc3BhcmVudCAxMDAlKTtcbiAgICAgICAgfVxuICAgICAgICAmLnJpYmJvbntcbiAgICAgICAgICBzcGFuOmJlZm9yZXtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDE2MHB4O1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogLTEyMHB4O1xuICAgICAgICAgICAgdG9wOiA3MHB4O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVaKC00NWRlZykgcm90YXRlWCgxZGVnKTtcbiAgICAgICAgICAgIGhlaWdodDogMzVweDtcbiAgICAgICAgICAgIC8qIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjQ3LCAxMDUsIDAyLCAuOTUpOyAqL1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMzVweCBzb2xpZCByZ2JhKDI0NywgMTA1LCAwMiwgLjk1KTtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAzNXB4IHNvbGlkIHJnYmEoMjQ3LCAxMDUsIDAyLCAuOTUpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMzVweCBzb2xpZCByZ2JhKDI0NywgMTA1LCAwMiwgLjk1KTtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogMzVweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJi5yaWJib24tYWx0ZXJuYXRle1xuICAgICAgICAgIHRvcDogNXB4O1xuICAgICAgICAgIHNwYW46YmVmb3Jle1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogMTYwcHg7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAtMTIwcHg7XG4gICAgICAgICAgICB0b3A6IC01NXB4O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVaKDQ1ZGVnKSByb3RhdGVYKDFkZWcpO1xuICAgICAgICAgICAgaGVpZ2h0OiAzNXB4O1xuICAgICAgICAgICAgLyogYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNDcsIDEwNSwgMDIsIC45NSk7ICovXG4gICAgICAgICAgICBib3JkZXItdG9wOiAzNXB4IHNvbGlkIHJnYmEoMjQ3LCAxMDUsIDAyLCAuOTUpO1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDM1cHggc29saWQgcmdiYSgyNDcsIDEwNSwgMDIsIC45NSk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAzNXB4IHNvbGlkIHJnYmEoMjQ3LCAxMDUsIDAyLCAuOTUpO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAzNXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBzcGFue1xuICAgICAgICAgIHRleHQtc2hhZG93OiAxcHggM3B4IDhweCByZ2JhKDAsIDAsIDAsIDAuNik7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cblxuICAgICAgfVxuXG4gICAgICAudG9wLTEwMC1pdGVtLS1kZXNjcmlwdGlvbntcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBwe1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IC41cmVtO1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgIGZvbnQtc2l6ZTogcHgtdG8tcmVtKDE4LjY3KTtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICBhe1xuICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5O1xuICAgICAgICAgICAgJjpob3ZlcntcbiAgICAgICAgICAgICAgY29sb3I6IHRoZW1lLWNvbG9yKCd3Y2FnLW9yYW5nZScpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICAudG9wLTEwMC1pdGVtLS1lZGl0e1xuICAgIHRvcDogNXB4O1xuICAgIHJpZ2h0OiA1cHg7XG4gIH1cbn1cbiIsIi5yZXNpbGllbmNlLXN0b3JpZXN7XG4gIHBhZGRpbmctdG9wOiAycmVtO1xuICAucmVzaWxpZW5jZS1zdG9yeXtcbiAgICAucmVzaWxpZW5jZS10ZWFzZXJ7XG4gICAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKG1kKXtcbiAgICAgICAgbWF4LXdpZHRoOiA4MCU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIuZmFjaWxpdGF0b3Jze1xuICAucm93LnBiLTV7XG4gICAgcGFkZGluZy1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgfVxuICAuaW1hZ2UtY2FyZCAuY2FyZC1ib2R5e1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICB9XG59XG5cbiNmb290ZXItLXNpdGUtLWJvdHRvbSB7XG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cChtZCl7XG4gICAgICAgIHVsLm5hdi0wIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IC0xcmVtO1xuXG4gICAgICAgICAgICAmID4gbGkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0= */
