/*
.sixteen-nine {
	@include aspect-ratio(16,9);
}*/
/* Media Queries Breakpoints */
/**
* *******************
*  Usage examples
* *******************
*
//
//  use <=
*   ALWAYS use <= ( '<' with '=' character) for all breakpoints
*   when setting max-width, ex: max-width: 767px,
*
*   so max-width: 1440px  == media('<=desktop-l')
*
* ***********************************************
*
//  use >
*   ALWAYS use only > as single character for all breakpoints
*   when setting min-width, ex: min-width: 768px,
*
*   so min-width: 1025px  == media('>desktop')
*
*************************************************
*
*## EXAMPLE:
*
*   (min-width: 768px) and (max-width: 1024px)
*   =
*   media ('>tablet'), ('<=desktop')
*
//

 */
/* Project-specific decorations: icons/backgrounds/patterns */
/* project-custom > _custom__blog.scss */ /**
 ############################
 #   MODULE: BLOG NEWS GRID
 ############################
 */
.blog-grid {
  display: grid;
  grid-template: auto/repeat(var(--grid-item-col, 4), minmax(0, 1fr));
  gap: var(--grid-item-gap);
}
@media (max-width: 766px) {
  .blog-grid {
    --grid-item-col: 1;
    --grid-img-height: 150px;
  }
}
@media (min-width: 768px) {
  .blog-grid {
    margin-bottom: 10vmin;
    margin-top: 10px;
  }
}
.blog-grid .not-found {
  grid-column: span 3;
}
.blog-grid__item {
  margin-bottom: 0 !important;
}
@media (min-width: 1113px) {
  .listing-style-2 .blog-grid__item:first-child {
    grid-row: span 2;
    grid-column: span 2;
  }
  .listing-style-2 .blog-grid__item:first-child .c-block__media {
    height: calc(var(--grid-img-height) * 2);
  }
  .listing-style-2 .blog-grid__item:first-child .c-block__title {
    font-size: var(--h2-font-size);
  }
}
.blog-grid .c-block {
  --c-block-gap-vertical: 35px;
  --c-block-gap-horizontal: 35px;
  display: block;
  overflow: hidden;
  height: 100%;
  box-shadow: var(--grid-item-shadow);
  background-color: var(--grid-item-bg);
  position: relative;
  transition: opacity 0.3s;
}
@media (max-width: 766px) {
  .blog-grid .c-block {
    --c-block-gap-vertical: 15px;
    --c-block-gap-horizontal: 15px;
  }
}
.blog-grid .c-block__media {
  height: var(--grid-img-height);
  overflow: hidden;
}
.blog-grid .c-block__media-link {
  display: block;
  height: 100%;
}
.blog-grid .c-block__media img {
  height: 100%;
  width: 100%;
  object-fit: cover;
  transition: transform 0.5s;
}
.blog-grid .c-block__body {
  padding: var(--grid-gap-vertical) var(--grid-gap-horizontal);
}
.blog-grid .c-block__title {
  font-weight: var(--grid-title-weight);
  color: var(--grid-title-color);
  font-size: var(--grid-title-size);
  transition: color 0.3s;
}
.blog-grid .c-block:hover .c-block__media img {
  transform: scale(1.05);
}
.blog-grid .c-block:hover .c-block__title {
  color: var(--primary-color2);
}

#ajax-posts {
  position: relative;
}

.c-loadmore {
  text-align: center;
  padding: 2em 0;
}

.single-post .site-content {
  padding-top: 30px;
}
@media (min-width: 1113px) {
  .single-post.fixed-header .site-content {
    padding-top: var(--navbar-height);
  }
}

.content-single__title {
  padding: 20px 0;
  width: 100%;
  background-color: #ccc;
  text-align: center;
}
.content-single__info {
  color: rgba(var(--primary-text-color), 0.8);
  text-align: left;
  padding: 20px 0;
}
@media (min-width: 1113px) {
  .content-single__info {
    display: flex;
    justify-content: space-between;
    font-size: 0.8em;
  }
}
.content-single__pagination {
  display: flex;
  justify-content: space-between;
  max-width: var(--blog-width, 650px);
  padding: 30px 0;
}

.single-post-style-2 {
  margin-bottom: 6vmin;
  max-width: none;
  position: relative;
  z-index: 20;
}
@media (min-width: 1113px) {
  .single-post-style-2 {
    align-items: center;
    display: flex;
    gap: 45px;
    left: 50%;
    margin-left: -50vw;
    margin-right: -50vw;
    right: 50%;
    width: calc(100vw - 8.1px);
  }
  .single-post-style-2 .single-post__col1,
.single-post-style-2 .single-post__col2 {
    width: 50%;
  }
  .single-post-style-2 .single-post__col2 {
    padding: 0 5% 0 20px;
  }
  .single-post-style-2 .single-post__col2 .-h1 {
    font-size: var(--h1-font-size, 6rem);
    line-height: var(--h1-line-height, 1.3);
    font-weight: var(--h1-font-weight, 700);
  }
  .single-post-style-2 .single-post__col1 {
    height: 67vh;
    text-align: right;
  }
  .single-post-style-2 .single-post__col1 img {
    border: 1px solid transparent;
    border-radius: 0 var(--c-block-radius, 15px) var(--c-block-radius, 15px) 0;
    height: 100%;
    max-height: 100%;
    object-fit: cover;
    width: 100%;
  }
}

.blog-filter {
  background-color: var(--filter-bg);
}
.blog-filter__inner {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: var(--filter-vspace);
  padding-bottom: var(--filter-vspace);
}
.blog-filter__list {
  display: flex;
}
@media (max-width: 766px) {
  .blog-filter__list {
    flex-wrap: wrap;
    padding-right: 10px;
  }
}
.blog-filter__list > li {
  margin: 0 3em 0 0;
  white-space: nowrap;
}
@media (max-width: 766px) {
  .blog-filter__list > li {
    margin: 0 5px 10px;
  }
}
.blog-filter__list a {
  color: var(--filter-link-color);
  font-weight: var(--filter-link-weight);
  font-size: var(--filter-link-size);
}
.blog-filter__list a:hover, .blog-filter__list a.active_term {
  color: var(--filter-link-color-active);
}
.blog-filter__search .input {
  max-width: 200px;
  background-color: transparent;
}
.blog-filter__tag {
  padding-top: 30px;
  padding-bottom: 30px;
  display: flex;
  align-items: center;
  position: relative;
}
.blog-filter__tag label {
  font-weight: 700;
  text-transform: uppercase;
  margin-right: 1em;
}
.blog-filter__tag select {
  background: #fff;
  box-shadow: 0px 0px 25px #CDEAEC;
  border-radius: 8px;
  border: 1px solid #cdeaec;
  height: 54px;
  padding-left: 20px;
}
@media (max-width: 1112px) {
  .blog-filter .-desktop {
    display: none;
  }
}
@media (min-width: 1113px) {
  .blog-filter .-mobile {
    display: none;
  }
}

.blog-filter__search {
  position: absolute;
  height: 30px;
  top: 50%;
  margin-top: -15px;
  display: flex;
  right: 0;
}
@media (max-width: 1112px) {
  .blog-filter__search {
    display: none;
  }
}
.blog-filter__search-field {
  position: absolute;
  right: 40px;
  top: 50%;
  color: #222;
  transform: translateY(-50%);
  width: 300px;
  max-width: 0;
  opacity: 0;
  background: #fff;
  box-shadow: 0px 0px 4px #CDEAEC;
  border-radius: 8px;
  padding: 5px 10px;
  border: 1px solid #cdeaec;
  transition: all 0.3s !important;
}
.blog-filter__search-field:focus, .blog-filter__search-field:active {
  opacity: 1;
  width: 300px;
  max-width: 300px;
}
.blog-filter__search-btn {
  background: transparent;
  border: none;
}
.blog-filter__search-btn .icon {
  fill: #fff;
  height: 24px;
  width: 25px;
}
.blog-filter__search:hover .blog-filter__search-field {
  opacity: 1;
  width: 300px;
  max-width: 300px;
}

.blog-pagination {
  text-align: center;
  padding: 1em 0;
}
.blog-pagination ul {
  display: flex;
  justify-content: center;
  align-items: center;
}
.blog-pagination li {
  margin: 0 10px;
}
.blog-pagination a:hover {
  color: var(--primary-color2);
}
.blog-pagination .active a {
  color: var(--primary-color2);
  font-weight: 700;
}

.pagination-container {
  text-align: center;
  padding: 30px 0;
}

.blog-breadcrumb {
  font-size: var(--breadcrumb-size);
  padding-top: 1em;
  padding-bottom: 1em;
  color: var(--breadcrumb-color-current);
  background-color: var(--breadcrumb-bg);
}
.blog-breadcrumb > span {
  margin: 0 var(--breadcrumb-gap);
}
.blog-breadcrumb a {
  color: var(--breadcrumb-color);
}
.blog-breadcrumb a:hover {
  text-decoration: underline;
}
.blog-breadcrumb .current-item {
  color: var(--breadcrumb-color-current);
}

/* GALLERIES */
.gallery {
  display: flex;
  flex-wrap: wrap;
  margin: 3em 0 3em -0.8em;
  width: calc(100% + 1.6em);
}

.gallery-item {
  margin: 0.8em 0;
  padding: 0 0.8em;
  width: 100%;
}
.gallery-item img {
  margin-bottom: 0;
}

.gallery-caption {
  display: block;
  margin-top: 0.8em;
}

@media (min-width: 768px) {
  .gallery-columns-2 .gallery-item {
    max-width: 50%;
  }
  .gallery-columns-3 .gallery-item {
    max-width: 33.33%;
  }
  .gallery-columns-4 .gallery-item {
    max-width: 25%;
  }
  .gallery-columns-5 .gallery-item {
    max-width: 20%;
  }
  .gallery-columns-6 .gallery-item {
    max-width: 16.66%;
  }
  .gallery-columns-7 .gallery-item {
    max-width: 14.28%;
  }
  .gallery-columns-8 .gallery-item {
    max-width: 12.5%;
  }
  .gallery-columns-9 .gallery-item {
    max-width: 11.11%;
  }
}
.post .aligncenter, .post .alignnone, .post iframe {
  margin-left: auto;
  margin-right: auto;
}
.post .alignleft {
  float: left;
  margin-right: 20px;
}
.post .alignright {
  float: right;
  margin-left: 20px;
}
.post .wp-block-columns,
.post .alignfull {
  width: calc(100vw - 8.1px);
  max-width: none;
  position: relative;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
}
.post .wp-block-columns .wp-block-gallery,
.post .alignfull .wp-block-gallery {
  margin-bottom: 0;
}
.post .blocks-gallery-item img {
  margin: 0;
}
.post .wp-block-image.alignfull img, .post .wp-block-image.alignwide img {
  margin-bottom: 0;
}

.filter-loader {
  height: 100%;
  width: 100%;
  position: absolute;
  background: rgba(255, 255, 255, 0.5);
  z-index: 100;
  left: 0;
  top: 0;
}

.spinner {
  width: 40px;
  height: 40px;
  position: relative;
  margin: 100px auto;
}

.double-bounce1, .double-bounce2 {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background-color: var(--primary-color2);
  opacity: 0.6;
  position: absolute;
  top: 0;
  left: 0;
  -webkit-animation: sk-bounce 2s infinite ease-in-out;
  animation: sk-bounce 2s infinite ease-in-out;
}

.double-bounce2 {
  -webkit-animation-delay: -1s;
  animation-delay: -1s;
}

@-webkit-keyframes sk-bounce {
  0%, 100% {
    -webkit-transform: scale(0);
  }
  50% {
    -webkit-transform: scale(1);
  }
}
@keyframes sk-bounce {
  0%, 100% {
    transform: scale(0);
    -webkit-transform: scale(0);
  }
  50% {
    transform: scale(1);
    -webkit-transform: scale(1);
  }
}
.dark-mode {
  background-color: var(--dm-bg);
  padding: 0.8em 1em;
  display: flex;
  align-items: center;
  border-radius: var(--dm-radius);
  z-index: 10;
}
.dark-mode__wrap {
  position: relative;
}
@media (max-width: 1111px) {
  .dark-mode {
    max-width: 230px;
    margin: 0 auto 20px;
  }
}
@media (min-width: 1112px) {
  .dark-mode {
    position: absolute;
    transform: translateX(100%);
    top: 35px;
    right: 0;
  }
}
.dark-mode__label {
  margin-right: 15px;
  font-size: 16px;
  font-weight: 400;
  color: var(--dm-color);
  letter-spacing: 0.05em;
}
.dark-mode__toggler {
  width: var(--dm-width);
  height: var(--dm-height);
  padding: 1px;
  background-color: var(--dm-toggler-bg);
  border: solid 1px var(--dm-toggler-bg);
  transition: all 0.25s ease-in;
  border-radius: 16px;
  position: relative;
  overflow: hidden;
}
.dark-mode__toggler:focus {
  outline: none;
}
.dark-mode__handler {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  transition: background-color 0.25s cubic-bezier(0.41, 0.36, 0.82, 0.4);
}
.dark-mode__handler:before {
  content: "";
  position: absolute;
  transform: translate(0, -50%);
  top: 50%;
  left: 0;
  width: calc(var(--dm-height) - 4px);
  height: calc(var(--dm-height) - 4px);
  border-radius: 100%;
  background-color: var(--dm-dot);
  transition: all 0.25s cubic-bezier(0.41, 0.36, 0.82, 0.4);
}
[color-mode=dark] .dark-mode__handler:before {
  transform: translate(calc(-100% - 2px), -50%);
  left: 100%;
}

@media (min-width: 1113px) {
  .addtoany_share_save_container {
    margin: 0;
    position: sticky;
    top: 140px;
    height: 250px;
    float: left;
    z-index: 1;
  }
  .addtoany_share_save_container > div {
    position: absolute;
    top: 0;
    left: -160px;
  }
}
.addtoany_share_save_container .addtoany_list {
  display: flex;
  flex-direction: column;
  align-items: center;
}
@media (max-width: 1111px) {
  .addtoany_share_save_container .addtoany_list {
    flex-direction: row;
    justify-content: center;
  }
}
.addtoany_share_save_container .addtoany_list a {
  margin-bottom: 10px;
}
.addtoany_share_save_container .addtoany_list a > span {
  border-radius: 40px;
  height: 50px;
  width: 50px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.addtoany_share_save_container .addtoany_list a > span svg {
  width: 26px;
}

.separators-custom-box {
  display: flex;
  padding: 15px;
  justify-content: space-between;
  align-items: center;
  background-color: var(--primary-color1);
  border-radius: 10px;
  color: #fff;
  font-size: 2.2rem;
  margin: 1.5em 0;
}
@media (max-width: 766px) {
  .separators-custom-box {
    flex-direction: column;
    text-align: center;
  }
}
@media (min-width: 1113px) {
  .separators-custom-box {
    padding: 30px;
  }
}
.separators-custom-box > span, .separators-custom-box h4 {
  color: #fff !important;
  font-weight: bold;
  font-size: 2.4rem;
  margin: 0;
}
@media (max-width: 766px) {
  .separators-custom-box > span, .separators-custom-box h4 {
    margin-bottom: 20px;
    text-align: center !important;
  }
}
@media (min-width: 767px) {
  .separators-custom-box > span, .separators-custom-box h4 {
    padding-right: 20px;
  }
}
.separators-custom-box a {
  color: #fff;
  text-transform: uppercase;
  font-size: 2rem;
  font-weight: 600;
  height: 50px;
  line-height: 50px;
  white-space: nowrap;
  background-color: var(--primary-color2);
  background-position: right 15px center;
  background-repeat: no-repeat;
  padding: 0 30px;
  border-radius: 30px;
  transition: all 0.3s;
}
.separators-custom-box a:hover {
  text-decoration: none !important;
  opacity: 0.9;
}

.content-single {
  position: relative;
}
.content-single #ez-toc-container {
  background-color: var(--toc-bg);
  padding: 0;
  margin-bottom: 3em;
  box-shadow: none;
  border: none !important;
  width: 100%;
  transition: all 0.3s;
  z-index: 10;
}
.content-single #ez-toc-container + *:first-of-type, .content-single #ez-toc-container + *:first-child {
  clear: both;
}
@media (min-width: 1281px) {
  .content-single #ez-toc-container.is-float {
    position: sticky;
    max-width: 300px;
    top: var(--navbar-height, 100px);
    right: 0;
    float: right;
    transform: translateX(110%);
  }
  .fixed-header .content-single #ez-toc-container.is-float {
    top: var(--navbar-height, 100px);
  }
  .content-single #ez-toc-container.is-float .ez-toc-title-container {
    padding: 10px;
  }
  .content-single #ez-toc-container.is-float .ez-toc-title {
    font-size: 1.8rem;
  }
  .content-single #ez-toc-container.is-float .ez-toc-link {
    padding: 5px 0;
    font-size: 1.4rem;
    font-weight: 500;
  }
  .content-single #ez-toc-container.is-float nav {
    position: static;
    max-width: none;
    transform: translateX(0);
  }
}
.content-single #ez-toc-container nav > ul {
  padding: 1em;
}
.content-single #ez-toc-container nav .ez-toc-viewed {
  color: var(--primary-color2) !important;
}
.content-single #ez-toc-container ul {
  height: auto !important;
}
.content-single #ez-toc-container .ez-toc-link {
  display: block;
  padding: 10px 0;
  font-size: 1.6rem;
  font-weight: 700;
  color: var(--toc-color);
}
@media (min-width: 1441px) {
  .content-single #ez-toc-container .ez-toc-link {
    font-size: var(--toc-link-l1-size);
    font-weight: var(--toc-link-l1-weight);
    padding: var(--toc-link-l1-padding);
  }
}
.content-single #ez-toc-container .ez-toc-link:visited {
  color: var(--toc-color);
}
.content-single #ez-toc-container .ez-toc-link:hover {
  text-decoration: none;
  color: var(--primary-color2) !important;
}
.content-single #ez-toc-container .ez-toc-page-1:not(:last-child) {
  border-bottom: 1px solid rgba(var(--primary-color1-rgb), 0.3);
}
.content-single #ez-toc-container .ez-toc-btn {
  margin-bottom: 0;
  margin-left: 10px;
  font-weight: normal;
  text-align: center;
  white-space: nowrap;
  vertical-align: middle;
  cursor: pointer;
  user-select: none;
  color: #333;
  background-color: #fff;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);
  background-image: linear-gradient(to bottom, #fff 0, #e0e0e0 100%);
  background-repeat: repeat-x;
  padding: 6px 15px;
  min-width: 100px;
  border-radius: 20px;
  font-size: 16px;
  line-height: 18px;
  position: relative;
  align-items: center;
  justify-content: space-between;
  border: 1px solid #ccc;
  display: flex !important;
}
.content-single #ez-toc-container .ez-toc-btn:hover {
  color: #333;
  background-image: none;
  background-color: #eeeeee;
  border-color: #adadad;
  text-decoration: none;
}
.content-single #ez-toc-container .ez-toc-btn:before {
  content: "Show";
  display: block;
  left: 30px;
  top: 5px;
  font-weight: 400;
  font-size: 16px;
  vertical-align: middle;
}
.content-single #ez-toc-container .ez-toc-btn:active {
  box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
  background-color: #e0e0e0;
  border-color: #dbdbdb;
}
.content-single #ez-toc-container .ez-toc-btn:focus {
  outline: thin dotted #333;
  outline: 5px auto -webkit-focus-ring-color;
  outline-offset: -2px;
}
.content-single #ez-toc-container .ez-toc-btn.active:before {
  content: "Hide";
}
.content-single #ez-toc-container .ez-toc-btn.active .ez-toc-icon-toggle:before {
  transform: rotate(0);
}
.content-single #ez-toc-container .ez-toc-icon-toggle {
  position: relative;
  top: 0;
  height: 16px;
  display: inline-block;
  vertical-align: middle;
  font-style: normal;
  font-weight: normal;
  line-height: 1;
}
.content-single #ez-toc-container .ez-toc-icon-toggle:empty {
  width: 1em;
}
.content-single #ez-toc-container .ez-toc-icon-toggle:before {
  content: "";
  display: inline-block;
  width: 17px;
  height: 100%;
  background-repeat: no-repeat;
  background-position: 50% 50%;
  background-image: url("data:image/svg+xml,%3Csvg width='11' height='8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M9.703 8L5.5 3.41 1.297 8 0 6.583 5.5.576 11 6.583 9.703 8z' fill='%232A425C'/%3E%3C/svg%3E");
  transform: rotate(180deg);
}
.content-single #ez-toc-container .ez-toc-title-container {
  background-color: var(--toc-title-bg);
  padding: var(--toc-title-padding);
}
.content-single #ez-toc-container .ez-toc-title {
  color: var(--toc-title-color);
  font-size: var(--toc-title-size);
  font-weight: var(--toc-title-weight);
  letter-spacing: 0.17em;
  text-transform: uppercase;
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIl9fY29yZS9taXhpbnMvX2FzcGVjdC1yYXRpby5zY3NzIiwiX19jb3JlL21peGlucy9fcGFnZS1zaXplcy5zY3NzIiwidmlzdWFscy9fX2RlY29yYXRlLnNjc3MiLCJibG9nL19ibG9nX2NvcmUuc2NzcyIsImJsb2cvY29tcG9uZW50cy9fYmxvZy1ncmlkLnNjc3MiLCJfX2NvcmUvbWl4aW5zL19pbmNsdWRlLW1lZGlhLnNjc3MiLCJibG9nL2NvbXBvbmVudHMvX2Jsb2ctYXJ0aWNsZS5zY3NzIiwiYmxvZy9jb21wb25lbnRzL19maWx0ZXIuc2NzcyIsImJsb2cvY29tcG9uZW50cy9fcGFnaW5hdGlvbi5zY3NzIiwiYmxvZy9jb21wb25lbnRzL19icmVhZGNydW1icy5zY3NzIiwiYmxvZy9jb21wb25lbnRzL193cC1kZWZhdWx0LWNsYXNzZXMuc2NzcyIsImJsb2cvY29tcG9uZW50cy9fbG9hZGVyLnNjc3MiLCJibG9nL3dpZGdldHMvX2Rhcmttb2RlLnNjc3MiLCJibG9nL3dpZGdldHMvX2FkZHRvYW55LnNjc3MiLCJibG9nL3dpZGdldHMvX2N0YS1jdXN0b20tYm94LnNjc3MiLCJibG9nL3dpZGdldHMvX3RvYy5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW9CQTtBQUFBO0FBQUE7QUFBQTtBQ3BCQTtBQWFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUNQQTtBQ05BO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUNNQTtFQUNJO0VBQ0E7RUFDQTs7QUM4akJBO0VEamtCSjtJQU1RO0lBQ0E7OztBQzBqQko7RURqa0JKO0lBVVE7SUFDQTs7O0FBR0o7RUFDSTs7QUFHSjtFQXdCSTs7QUN1aEJKO0VEcmlCUTtJQUVRO0lBQ0E7O0VB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QUNBO0lBQ0E7OztBQU9SO0VBQ0k7O0FBR0o7RUFDSTs7QUFJUjtFQUNJOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QVY4ZlI7RVVuZ0JJO0lBUVE7SUFDQTtJQUNBOzs7QUFHSjtFQUNJOztBQUVKO0VBQ0k7RUFDQTs7QUFLSjtFQUNJOztBQUlSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7QUFJQTtFQUNJOztBQUlBO0VBQ0k7O0FBTWhCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFJUjtFQUNJO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBIiwiZmlsZSI6ImJsb2cuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQHVzZSBcInNhc3M6bWF0aFwiO1xuXG5AbWl4aW4gYXNwZWN0LXJhdGlvKCR3aWR0aCwgJGhlaWdodCkge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdCY6YmVmb3Jle1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdGNvbnRlbnQ6IFwiIFwiO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdHBhZGRpbmctdG9wOiBtYXRoLmRpdigkaGVpZ2h0LCAkd2lkdGgpICogMTAwJTtcblx0fVxuXG5cdD4gLmNvbnRlbnQge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR0b3A6IDA7XG5cdFx0bGVmdDogMDtcblx0XHRyaWdodDogMDtcblx0XHRib3R0b206IDA7XG5cdH1cbn1cblxuLypcbi5zaXh0ZWVuLW5pbmUge1xuXHRAaW5jbHVkZSBhc3BlY3QtcmF0aW8oMTYsOSk7XG59Ki9cbiIsIi8qIE1lZGlhIFF1ZXJpZXMgQnJlYWtwb2ludHMgKi9cblxuJGJyZWFrcG9pbnRzOiAoXG4gICAgICAgICdwaG9uZSc6IDMyMHB4LFxuICAgICAgICAncGhvbmUtbCc6IDU3NXB4LFxuICAgICAgICAndGFibGV0JzogNzY3cHgsXG4gICAgICAgICdkZXNrdG9wJzogMTExMnB4LFxuICAgICAgICAnZGVza3RvcC1tJzogMTI4MHB4LFxuICAgICAgICAnZGVza3RvcC1sJzogMTQ0MHB4LFxuICAgICAgICAnZGVza3RvcC14bCc6IDE2NjBweCxcbiAgICAgICAgJ2Rlc2t0b3AtMTkyMCc6IDE5MjBweCxcbik7XG5cbi8qKlxuKiAqKioqKioqKioqKioqKioqKioqXG4qICBVc2FnZSBleGFtcGxlc1xuKiAqKioqKioqKioqKioqKioqKioqXG4qXG4vL1xuLy8gIHVzZSA8PVxuKiAgIEFMV0FZUyB1c2UgPD0gKCAnPCcgd2l0aCAnPScgY2hhcmFjdGVyKSBmb3IgYWxsIGJyZWFrcG9pbnRzXG4qICAgd2hlbiBzZXR0aW5nIG1heC13aWR0aCwgZXg6IG1heC13aWR0aDogNzY3cHgsXG4qXG4qICAgc28gbWF4LXdpZHRoOiAxNDQwcHggID09IG1lZGlhKCc8PWRlc2t0b3AtbCcpXG4qXG4qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4qXG4vLyAgdXNlID5cbiogICBBTFdBWVMgdXNlIG9ubHkgPiBhcyBzaW5nbGUgY2hhcmFjdGVyIGZvciBhbGwgYnJlYWtwb2ludHNcbiogICB3aGVuIHNldHRpbmcgbWluLXdpZHRoLCBleDogbWluLXdpZHRoOiA3NjhweCxcbipcbiogICBzbyBtaW4td2lkdGg6IDEwMjVweCAgPT0gbWVkaWEoJz5kZXNrdG9wJylcbipcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbipcbiojIyBFWEFNUExFOlxuKlxuKiAgIChtaW4td2lkdGg6IDc2OHB4KSBhbmQgKG1heC13aWR0aDogMTAyNHB4KVxuKiAgID1cbiogICBtZWRpYSAoJz50YWJsZXQnKSwgKCc8PWRlc2t0b3AnKVxuKlxuLy9cblxuICovXG4iLCJAaW1wb3J0IFwiZGVjb3JhdGUvZC1taXhpbnNcIjtcblxuQGltcG9ydCBcImRlY29yYXRlL2QtY29yZVwiO1xuXG5AaW1wb3J0IFwiZGVjb3JhdGUvZC1pY29uc1wiO1xuXG4vKiBQcm9qZWN0LXNwZWNpZmljIGRlY29yYXRpb25zOiBpY29ucy9iYWNrZ3JvdW5kcy9wYXR0ZXJucyAqL1xuXG5cblxuIiwiLyogcHJvamVjdC1jdXN0b20gPiBfY3VzdG9tX19ibG9nLnNjc3MgKi8iLCIvKipcbiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG4gIyAgIE1PRFVMRTogQkxPRyBORVdTIEdSSURcbiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG4gKi9cblxuLmJsb2ctZ3JpZCB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlOiBhdXRvL3JlcGVhdCh2YXIoLS1ncmlkLWl0ZW0tY29sLCA0KSxtaW5tYXgoMCwxZnIpKTtcbiAgICBnYXA6IHZhcigtLWdyaWQtaXRlbS1nYXApO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0XCIpIHtcbiAgICAgICAgLS1ncmlkLWl0ZW0tY29sOiAxO1xuICAgICAgICAtLWdyaWQtaW1nLWhlaWdodDogMTUwcHg7XG4gICAgfVxuICAgIEBpbmNsdWRlIG1lZGlhKFwiPnRhYmxldFwiKSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEwdm1pbjtcbiAgICAgICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICB9XG5cbiAgICAubm90LWZvdW5kIHtcbiAgICAgICAgZ3JpZC1jb2x1bW46IHNwYW4gMztcbiAgICB9XG5cbiAgICAmX19pdGVtIHtcblxuICAgICAgICAubGlzdGluZy1zdHlsZS0xICYge1xuICAgICAgICAgICAgLy8gQmxvZyBHcmlkIFN0eWxlIDE6IFN0YW5kYXJkIGdyaWQgd2l0aCBlcXVhbCBjb2x1bW5zXG4gICAgICAgIH1cblxuICAgICAgICAvLyBCbG9nIEdyaWQgU3R5bGUgMjogRmlyc3QgaXRlbSBpbiB0aGUgZ3JpZCBoYXMgZG91YmxlIHNpemVcblxuICAgICAgICAubGlzdGluZy1zdHlsZS0yICYge1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj5kZXNrdG9wXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgZ3JpZC1yb3c6IHNwYW4gMjtcbiAgICAgICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IHNwYW4gMjtcbiAgICAgICAgICAgICAgICAgICAgLmMtYmxvY2tfX21lZGlhIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogY2FsYyh2YXIoLS1ncmlkLWltZy1oZWlnaHQpICogMik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLmMtYmxvY2tfX3RpdGxlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0taDItZm9udC1zaXplKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcblxuICAgIH1cblxuICAgIC5jLWJsb2NrIHtcbiAgICAgICAgLS1jLWJsb2NrLWdhcC12ZXJ0aWNhbDogMzVweDtcbiAgICAgICAgLS1jLWJsb2NrLWdhcC1ob3Jpem9udGFsOiAzNXB4O1xuXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGJveC1zaGFkb3c6IHZhcigtLWdyaWQtaXRlbS1zaGFkb3cpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ncmlkLWl0ZW0tYmcpO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgLjNzO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG4gICAgICAgICAgICAtLWMtYmxvY2stZ2FwLXZlcnRpY2FsOiAxNXB4O1xuICAgICAgICAgICAgLS1jLWJsb2NrLWdhcC1ob3Jpem9udGFsOiAxNXB4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVkaWEge1xuICAgICAgICAgICAgaGVpZ2h0OiB2YXIoLS1ncmlkLWltZy1oZWlnaHQpO1xuXG4gICAgICAgICAgICAmLWxpbmsge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIC41c1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1ncmlkLWdhcC12ZXJ0aWNhbCkgdmFyKC0tZ3JpZC1nYXAtaG9yaXpvbnRhbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tZ3JpZC10aXRsZS13ZWlnaHQpO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLWdyaWQtdGl0bGUtY29sb3IpO1xuICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1ncmlkLXRpdGxlLXNpemUpO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgLjNzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAuYy1ibG9ja19fbWVkaWEge1xuICAgICAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLmMtYmxvY2tfX3RpdGxlIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcjIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICB9XG5cbn1cblxuI2FqYXgtcG9zdHMge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmMtbG9hZG1vcmUge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAyZW0gMDtcbn0iLCIvLyAgICAgXyAgICAgICAgICAgIF8gICAgICAgICAgIF8gICAgICAgICAgICAgICAgICAgICAgICAgICBfIF9cbi8vICAgIChfKSAgICAgICAgICB8IHwgICAgICAgICB8IHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAoXylcbi8vICAgICBfIF8gX18gICBfX198IHxfICAgXyAgX198IHwgX19fICAgXyBfXyBfX18gICBfX18gIF9ffCB8XyAgX18gX1xuLy8gICAgfCB8ICdfIFxcIC8gX198IHwgfCB8IHwvIF9gIHwvIF8gXFwgfCAnXyBgIF8gXFwgLyBfIFxcLyBfYCB8IHwvIF9gIHxcbi8vICAgIHwgfCB8IHwgfCAoX198IHwgfF98IHwgKF98IHwgIF9fLyB8IHwgfCB8IHwgfCAgX18vIChffCB8IHwgKF98IHxcbi8vICAgIHxffF98IHxffFxcX19ffF98XFxfXyxffFxcX18sX3xcXF9fX3wgfF98IHxffCB8X3xcXF9fX3xcXF9fLF98X3xcXF9fLF98XG4vL1xuLy8gICAgICBTaW1wbGUsIGVsZWdhbnQgYW5kIG1haW50YWluYWJsZSBtZWRpYSBxdWVyaWVzIGluIFNhc3Ncbi8vICAgICAgICAgICAgICAgICAgICAgICAgdjIuMC4wXG4vL1xuLy8gICAgICAgIGh0dHBzOi8vZWR1YXJkb2JvdWNhcy5naXRodWIuaW8vaW5jbHVkZS1tZWRpYVxuLy9cbi8vICAgICAgICAgQXV0aG9yczogRWR1YXJkbyBCb3VjYXMgKEBlZHVhcmRvYm91Y2FzKVxuLy8gICAgICAgICAgICAgICAgICBLaXR0eSBHaXJhdWRlbCAoQGtpdHR5Z2lyYXVkZWwpXG4vL1xuLy8gICAgICBUaGlzIHByb2plY3QgaXMgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBNSVQgbGljZW5zZVxuQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8vXG4vLy8gaW5jbHVkZS1tZWRpYSBsaWJyYXJ5IHB1YmxpYyBjb25maWd1cmF0aW9uXG4vLy8gQGF1dGhvciBFZHVhcmRvIEJvdWNhc1xuLy8vIEBhY2Nlc3MgcHVibGljXG4vLy8vXG5AdXNlICdzYXNzOm1hdGgnO1xuQHVzZSAnc2FzczptYXAnO1xuQHVzZSAnc2FzczpsaXN0JztcbkB1c2UgJ3Nhc3M6c3RyaW5nJztcbkB1c2UgJ3Nhc3M6bWV0YSc7XG5cbi8vL1xuLy8vIENyZWF0ZXMgYSBsaXN0IG9mIGdsb2JhbCBicmVha3BvaW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzaW5nbGUgYnJlYWtwb2ludCB3aXRoIHRoZSBsYWJlbCBgcGhvbmVgXG4vLy8gICRicmVha3BvaW50czogKCdwaG9uZSc6IDMyMHB4KTtcbi8vL1xuJGJyZWFrcG9pbnRzOiAoXG4gICdwaG9uZSc6IDMyMHB4LFxuICAndGFibGV0JzogNzY4cHgsXG4gICdkZXNrdG9wJzogMTAyNHB4LFxuKSAhZGVmYXVsdDtcblxuLy8vXG4vLy8gQ3JlYXRlcyBhIGxpc3Qgb2Ygc3RhdGljIGV4cHJlc3Npb25zIG9yIG1lZGlhIHR5cGVzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gQ3JlYXRlcyBhIHNpbmdsZSBtZWRpYSB0eXBlIChzY3JlZW4pXG4vLy8gICRtZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nOiAnc2NyZWVuJyk7XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gQ3JlYXRlcyBhIHN0YXRpYyBleHByZXNzaW9uIHdpdGggbG9naWNhbCBkaXNqdW5jdGlvbiAoT1Igb3BlcmF0b3IpXG4vLy8gICRtZWRpYS1leHByZXNzaW9uczogKFxuLy8vICAgICdyZXRpbmEyeCc6ICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpJ1xuLy8vICApO1xuLy8vXG4kbWVkaWEtZXhwcmVzc2lvbnM6IChcbiAgJ3NjcmVlbic6ICdzY3JlZW4nLFxuICAncHJpbnQnOiAncHJpbnQnLFxuICAnaGFuZGhlbGQnOiAnaGFuZGhlbGQnLFxuICAnbGFuZHNjYXBlJzogJyhvcmllbnRhdGlvbjogbGFuZHNjYXBlKScsXG4gICdwb3J0cmFpdCc6ICcob3JpZW50YXRpb246IHBvcnRyYWl0KScsXG4gICdyZXRpbmEyeCc6XG4gICAgJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAobWluLXJlc29sdXRpb246IDE5MmRwaSksIChtaW4tcmVzb2x1dGlvbjogMmRwcHgpJyxcbiAgJ3JldGluYTN4JzpcbiAgICAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMyksIChtaW4tcmVzb2x1dGlvbjogMzUwZHBpKSwgKG1pbi1yZXNvbHV0aW9uOiAzZHBweCknLFxuKSAhZGVmYXVsdDtcblxuLy8vXG4vLy8gRGVmaW5lcyBhIG51bWJlciB0byBiZSBhZGRlZCBvciBzdWJ0cmFjdGVkIGZyb20gZWFjaCB1bml0IHdoZW4gZGVjbGFyaW5nIGJyZWFrcG9pbnRzIHdpdGggZXhjbHVzaXZlIGludGVydmFsc1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEludGVydmFsIGZvciBwaXhlbHMgaXMgZGVmaW5lZCBhcyBgMWAgYnkgZGVmYXVsdFxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjEyOHB4Jykge31cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIEBtZWRpYSAobWluLXdpZHRoOiAxMjlweCkge31cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBJbnRlcnZhbCBmb3IgZW1zIGlzIGRlZmluZWQgYXMgYDAuMDFgIGJ5IGRlZmF1bHRcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz4yMGVtJykge31cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIEBtZWRpYSAobWluLXdpZHRoOiAyMC4wMWVtKSB7fVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEludGVydmFsIGZvciByZW1zIGlzIGRlZmluZWQgYXMgYDAuMWAgYnkgZGVmYXVsdCwgdG8gYmUgdXNlZCB3aXRoIGBmb250LXNpemU6IDYyLjUlO2Bcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz4yLjByZW0nKSB7fVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDIuMXJlbSkge31cbi8vL1xuJHVuaXQtaW50ZXJ2YWxzOiAoXG4gICdweCc6IDEsXG4gICdlbSc6IDAuMDEsXG4gICdyZW0nOiAwLjEsXG4gICcnOiAwLFxuKSAhZGVmYXVsdDtcblxuLy8vXG4vLy8gRGVmaW5lcyB3aGV0aGVyIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXMgaXMgYXZhaWxhYmxlLCB1c2VmdWwgZm9yIGNyZWF0aW5nIHNlcGFyYXRlIHN0eWxlc2hlZXRzXG4vLy8gZm9yIGJyb3dzZXJzIHRoYXQgZG9uJ3Qgc3VwcG9ydCBtZWRpYSBxdWVyaWVzLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIERpc2FibGVzIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXNcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgLmZvbyB7XG4vLy8gICAgY29sb3I6IHRvbWF0bztcbi8vLyAgfVxuLy8vXG4kaW0tbWVkaWEtc3VwcG9ydDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vXG4vLy8gU2VsZWN0cyB3aGljaCBicmVha3BvaW50IHRvIGVtdWxhdGUgd2hlbiBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzIGlzIGRpc2FibGVkLiBNZWRpYSBxdWVyaWVzIHRoYXQgc3RhcnQgYXQgb3Jcbi8vLyBpbnRlcmNlcHQgdGhlIGJyZWFrcG9pbnQgd2lsbCBiZSBkaXNwbGF5ZWQsIGFueSBvdGhlcnMgd2lsbCBiZSBpZ25vcmVkLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnRcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgLmZvbyB7XG4vLy8gICAgY29sb3I6IHRvbWF0bztcbi8vLyAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBOT1Qgc2hvdyBiZWNhdXNlIGl0IGRvZXMgbm90IGludGVyY2VwdCB0aGUgZGVza3RvcCBicmVha3BvaW50XG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICd0YWJsZXQnO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj1kZXNrdG9wJykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAvKiBObyBvdXRwdXQgKi9cbi8vL1xuJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJyAhZGVmYXVsdDtcblxuLy8vXG4vLy8gU2VsZWN0cyB3aGljaCBtZWRpYSBleHByZXNzaW9ucyBhcmUgYWxsb3dlZCBpbiBhbiBleHByZXNzaW9uIGZvciBpdCB0byBiZSB1c2VkIHdoZW4gbWVkaWEgcXVlcmllc1xuLy8vIGFyZSBub3Qgc3VwcG9ydGVkLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnQgYW5kIGNvbnRhaW5zIG9ubHkgYWNjZXB0ZWQgbWVkaWEgZXhwcmVzc2lvbnNcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xuLy8vICAkaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJyk7XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcsICdzY3JlZW4nKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gICAuZm9vIHtcbi8vLyAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgTk9UIHNob3cgYmVjYXVzZSBpdCBpbnRlcmNlcHRzIHRoZSBzdGF0aWMgYnJlYWtwb2ludCBidXQgY29udGFpbnMgYSBtZWRpYSBleHByZXNzaW9uIHRoYXQgaXMgbm90IGFjY2VwdGVkXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJztcbi8vLyAgJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicpO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnLCAncmV0aW5hMngnKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gIC8qIE5vIG91dHB1dCAqL1xuLy8vXG4kaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJywgJ3BvcnRyYWl0JywgJ2xhbmRzY2FwZScpICFkZWZhdWx0O1xuXG4vLy8vXG4vLy8gQ3Jvc3MtZW5naW5lIGxvZ2dpbmcgZW5naW5lXG4vLy8gQGF1dGhvciBLaXR0eSBHaXJhdWRlbFxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vL1xuXG4vLy9cbi8vLyBMb2cgYSBtZXNzYWdlIGVpdGhlciB3aXRoIGBAZXJyb3JgIGlmIHN1cHBvcnRlZFxuLy8vIGVsc2Ugd2l0aCBgQHdhcm5gLCB1c2luZyBgZmVhdHVyZS1leGlzdHMoJ2F0LWVycm9yJylgXG4vLy8gdG8gZGV0ZWN0IHN1cHBvcnQuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG1lc3NhZ2UgLSBNZXNzYWdlIHRvIGxvZ1xuLy8vXG5AZnVuY3Rpb24gaW0tbG9nKCRtZXNzYWdlKSB7XG4gIEBpZiBtZXRhLmZlYXR1cmUtZXhpc3RzKCdhdC1lcnJvcicpIHtcbiAgICBAZXJyb3IgJG1lc3NhZ2U7XG4gIH0gQGVsc2Uge1xuICAgIEB3YXJuICRtZXNzYWdlO1xuICAgICRfOiBub29wKCk7XG4gIH1cblxuICBAcmV0dXJuICRtZXNzYWdlO1xufVxuXG4vLy9cbi8vLyBXcmFwcGVyIG1peGluIGZvciB0aGUgbG9nIGZ1bmN0aW9uIHNvIGl0IGNhbiBiZSB1c2VkIHdpdGggYSBtb3JlIGZyaWVuZGx5XG4vLy8gQVBJIHRoYW4gYEBpZiBpbS1sb2coJy4uJykge31gIG9yIGAkXzogaW0tbG9nKCcuLicpYC4gQmFzaWNhbGx5LCB1c2UgdGhlIGZ1bmN0aW9uXG4vLy8gd2l0aGluIGZ1bmN0aW9ucyBiZWNhdXNlIGl0IGlzIG5vdCBwb3NzaWJsZSB0byBpbmNsdWRlIGEgbWl4aW4gaW4gYSBmdW5jdGlvblxuLy8vIGFuZCB1c2UgdGhlIG1peGluIGV2ZXJ5d2hlcmUgZWxzZSBiZWNhdXNlIGl0J3MgbXVjaCBtb3JlIGVsZWdhbnQuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG1lc3NhZ2UgLSBNZXNzYWdlIHRvIGxvZ1xuLy8vXG5AbWl4aW4gbG9nKCRtZXNzYWdlKSB7XG4gIEBpZiBpbS1sb2coJG1lc3NhZ2UpIHtcbiAgfVxufVxuXG4vLy9cbi8vLyBGdW5jdGlvbiB3aXRoIG5vIGBAcmV0dXJuYCBjYWxsZWQgbmV4dCB0byBgQHdhcm5gIGluIFNhc3MgMy4zXG4vLy8gdG8gdHJpZ2dlciBhIGNvbXBpbGluZyBlcnJvciBhbmQgc3RvcCB0aGUgcHJvY2Vzcy5cbi8vL1xuQGZ1bmN0aW9uIG5vb3AoKSB7XG59XG5cbi8vL1xuLy8vIERldGVybWluZXMgd2hldGhlciBhIGxpc3Qgb2YgY29uZGl0aW9ucyBpcyBpbnRlcmNlcHRlZCBieSB0aGUgc3RhdGljIGJyZWFrcG9pbnQuXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICAgJGNvbmRpdGlvbnMgIC0gTWVkaWEgcXVlcnkgY29uZGl0aW9uc1xuLy8vXG4vLy8gQHJldHVybiB7Qm9vbGVhbn0gLSBSZXR1cm5zIHRydWUgaWYgdGhlIGNvbmRpdGlvbnMgYXJlIGludGVyY2VwdGVkIGJ5IHRoZSBzdGF0aWMgYnJlYWtwb2ludFxuLy8vXG5AZnVuY3Rpb24gaW0taW50ZXJjZXB0cy1zdGF0aWMtYnJlYWtwb2ludCgkY29uZGl0aW9ucy4uLikge1xuICAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZTogbWFwLmdldCgkYnJlYWtwb2ludHMsICRpbS1uby1tZWRpYS1icmVha3BvaW50KTtcblxuICBAaWYgbm90ICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlIHtcbiAgICBAaWYgaW0tbG9nKCdgI3skaW0tbm8tbWVkaWEtYnJlYWtwb2ludH1gIGlzIG5vdCBhIHZhbGlkIGJyZWFrcG9pbnQuJykge1xuICAgIH1cbiAgfVxuXG4gIEBlYWNoICRjb25kaXRpb24gaW4gJGNvbmRpdGlvbnMge1xuICAgIEBpZiBub3QgbWFwLmhhcy1rZXkoJG1lZGlhLWV4cHJlc3Npb25zLCAkY29uZGl0aW9uKSB7XG4gICAgICAkb3BlcmF0b3I6IGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRjb25kaXRpb24pO1xuICAgICAgJHByZWZpeDogZ2V0LWV4cHJlc3Npb24tcHJlZml4KCRvcGVyYXRvcik7XG4gICAgICAkdmFsdWU6IGdldC1leHByZXNzaW9uLXZhbHVlKCRjb25kaXRpb24sICRvcGVyYXRvcik7XG5cbiAgICAgIEBpZiAoJHByZWZpeCA9PSAnbWF4JyBhbmQgJHZhbHVlIDw9ICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlKSBvclxuICAgICAgICAoJHByZWZpeCA9PSAnbWluJyBhbmQgJHZhbHVlID4gJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWUpXG4gICAgICB7XG4gICAgICAgIEByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfSBAZWxzZSBpZiBub3QgbGlzdC5pbmRleCgkaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnMsICRjb25kaXRpb24pIHtcbiAgICAgIEByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiB0cnVlO1xufVxuXG4vLy8vXG4vLy8gUGFyc2luZyBlbmdpbmVcbi8vLyBAYXV0aG9yIEtpdHR5IEdpcmF1ZGVsXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy8vXG5cbi8vL1xuLy8vIEdldCBvcGVyYXRvciBvZiBhbiBleHByZXNzaW9uXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIGV4dHJhY3Qgb3BlcmF0b3IgZnJvbVxuLy8vXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIEFueSBvZiBgPj1gLCBgPmAsIGA8PWAsIGA8YCwgYOKJpWAsIGDiiaRgXG4vLy9cbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi1vcGVyYXRvcigkZXhwcmVzc2lvbikge1xuICBAZWFjaCAkb3BlcmF0b3IgaW4gKCc+PScsICc+JywgJzw9JywgJzwnLCAn4omlJywgJ+KJpCcpIHtcbiAgICBAaWYgc3RyaW5nLmluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpIHtcbiAgICAgIEByZXR1cm4gJG9wZXJhdG9yO1xuICAgIH1cbiAgfVxuXG4gIC8vIEl0IGlzIG5vdCBwb3NzaWJsZSB0byBpbmNsdWRlIGEgbWl4aW4gaW5zaWRlIGEgZnVuY3Rpb24sIHNvIHdlIGhhdmUgdG9cbiAgLy8gcmVseSBvbiB0aGUgYGltLWxvZyguLilgIGZ1bmN0aW9uIHJhdGhlciB0aGFuIHRoZSBgbG9nKC4uKWAgbWl4aW4uIEJlY2F1c2VcbiAgLy8gZnVuY3Rpb25zIGNhbm5vdCBiZSBjYWxsZWQgYW55d2hlcmUgaW4gU2Fzcywgd2UgbmVlZCB0byBoYWNrIHRoZSBjYWxsIGluXG4gIC8vIGEgZHVtbXkgdmFyaWFibGUsIHN1Y2ggYXMgYCRfYC4gSWYgYW55Ym9keSBldmVyIHJhaXNlIGEgc2NvcGluZyBpc3N1ZSB3aXRoXG4gIC8vIFNhc3MgMy4zLCBjaGFuZ2UgdGhpcyBsaW5lIGluIGBAaWYgaW0tbG9nKC4uKSB7fWAgaW5zdGVhZC5cbiAgJF86IGltLWxvZygnTm8gb3BlcmF0b3IgZm91bmQgaW4gYCN7JGV4cHJlc3Npb259YC4nKTtcbn1cblxuLy8vXG4vLy8gR2V0IGRpbWVuc2lvbiBvZiBhbiBleHByZXNzaW9uLCBiYXNlZCBvbiBhIGZvdW5kIG9wZXJhdG9yXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIGV4dHJhY3QgZGltZW5zaW9uIGZyb21cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG9wZXJhdG9yIC0gT3BlcmF0b3IgZnJvbSBgJGV4cHJlc3Npb25gXG4vLy9cbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gYHdpZHRoYCBvciBgaGVpZ2h0YCAob3IgcG90ZW50aWFsbHkgYW55dGhpbmcgZWxzZSlcbi8vL1xuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLWRpbWVuc2lvbigkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKSB7XG4gICRvcGVyYXRvci1pbmRleDogc3RyaW5nLmluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xuICAkcGFyc2VkLWRpbWVuc2lvbjogc3RyaW5nLnNsaWNlKCRleHByZXNzaW9uLCAwLCAkb3BlcmF0b3ItaW5kZXggLSAxKTtcbiAgJGRpbWVuc2lvbjogJ3dpZHRoJztcblxuICBAaWYgc3RyaW5nLmxlbmd0aCgkcGFyc2VkLWRpbWVuc2lvbikgPiAwIHtcbiAgICAkZGltZW5zaW9uOiAkcGFyc2VkLWRpbWVuc2lvbjtcbiAgfVxuXG4gIEByZXR1cm4gJGRpbWVuc2lvbjtcbn1cblxuLy8vXG4vLy8gR2V0IGRpbWVuc2lvbiBwcmVmaXggYmFzZWQgb24gYW4gb3BlcmF0b3Jcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3BlcmF0b3IgLSBPcGVyYXRvclxuLy8vXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIGBtaW5gIG9yIGBtYXhgXG4vLy9cbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi1wcmVmaXgoJG9wZXJhdG9yKSB7XG4gIEByZXR1cm4gaWYobGlzdC5pbmRleCgoJzwnLCAnPD0nLCAn4omkJyksICRvcGVyYXRvciksICdtYXgnLCAnbWluJyk7XG59XG5cbi8vL1xuLy8vIEdldCB2YWx1ZSBvZiBhbiBleHByZXNzaW9uLCBiYXNlZCBvbiBhIGZvdW5kIG9wZXJhdG9yXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIGV4dHJhY3QgdmFsdWUgZnJvbVxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3BlcmF0b3IgLSBPcGVyYXRvciBmcm9tIGAkZXhwcmVzc2lvbmBcbi8vL1xuLy8vIEByZXR1cm4ge051bWJlcn0gLSBBIG51bWVyaWMgdmFsdWVcbi8vL1xuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLXZhbHVlKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpIHtcbiAgJG9wZXJhdG9yLWluZGV4OiBzdHJpbmcuaW5kZXgoJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XG4gICR2YWx1ZTogc3RyaW5nLnNsaWNlKCRleHByZXNzaW9uLCAkb3BlcmF0b3ItaW5kZXggKyBzdHJpbmcubGVuZ3RoKCRvcGVyYXRvcikpO1xuXG4gIEBpZiBtYXAuaGFzLWtleSgkYnJlYWtwb2ludHMsICR2YWx1ZSkge1xuICAgICR2YWx1ZTogbWFwLmdldCgkYnJlYWtwb2ludHMsICR2YWx1ZSk7XG4gIH0gQGVsc2Uge1xuICAgICR2YWx1ZTogdG8tbnVtYmVyKCR2YWx1ZSk7XG4gIH1cblxuICAkaW50ZXJ2YWw6IG1hcC5nZXQoJHVuaXQtaW50ZXJ2YWxzLCBtYXRoLnVuaXQoJHZhbHVlKSk7XG5cbiAgQGlmIG5vdCAkaW50ZXJ2YWwge1xuICAgIC8vIEl0IGlzIG5vdCBwb3NzaWJsZSB0byBpbmNsdWRlIGEgbWl4aW4gaW5zaWRlIGEgZnVuY3Rpb24sIHNvIHdlIGhhdmUgdG9cbiAgICAvLyByZWx5IG9uIHRoZSBgaW0tbG9nKC4uKWAgZnVuY3Rpb24gcmF0aGVyIHRoYW4gdGhlIGBsb2coLi4pYCBtaXhpbi4gQmVjYXVzZVxuICAgIC8vIGZ1bmN0aW9ucyBjYW5ub3QgYmUgY2FsbGVkIGFueXdoZXJlIGluIFNhc3MsIHdlIG5lZWQgdG8gaGFjayB0aGUgY2FsbCBpblxuICAgIC8vIGEgZHVtbXkgdmFyaWFibGUsIHN1Y2ggYXMgYCRfYC4gSWYgYW55Ym9keSBldmVyIHJhaXNlIGEgc2NvcGluZyBpc3N1ZSB3aXRoXG4gICAgLy8gU2FzcyAzLjMsIGNoYW5nZSB0aGlzIGxpbmUgaW4gYEBpZiBpbS1sb2coLi4pIHt9YCBpbnN0ZWFkLlxuICAgICRfOiBpbS1sb2coJ1Vua25vd24gdW5pdCBgI3ttYXRoLnVuaXQoJHZhbHVlKX1gLicpO1xuICB9XG5cbiAgQGlmICRvcGVyYXRvciA9PSAnPicge1xuICAgICR2YWx1ZTogJHZhbHVlICsgJGludGVydmFsO1xuICB9IEBlbHNlIGlmICRvcGVyYXRvciA9PSAnPCcge1xuICAgICR2YWx1ZTogJHZhbHVlIC0gJGludGVydmFsO1xuICB9XG5cbiAgQHJldHVybiAkdmFsdWU7XG59XG5cbi8vL1xuLy8vIFBhcnNlIGFuIGV4cHJlc3Npb24gdG8gcmV0dXJuIGEgdmFsaWQgbWVkaWEtcXVlcnkgZXhwcmVzc2lvblxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBwYXJzZVxuLy8vXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIFZhbGlkIG1lZGlhIHF1ZXJ5XG4vLy9cbkBmdW5jdGlvbiBwYXJzZS1leHByZXNzaW9uKCRleHByZXNzaW9uKSB7XG4gIC8vIElmIGl0IGlzIHBhcnQgb2YgJG1lZGlhLWV4cHJlc3Npb25zLCBpdCBoYXMgbm8gb3BlcmF0b3JcbiAgLy8gdGhlbiB0aGVyZSBpcyBubyBuZWVkIHRvIGdvIGFueSBmdXJ0aGVyLCBqdXN0IHJldHVybiB0aGUgdmFsdWVcbiAgQGlmIG1hcC5oYXMta2V5KCRtZWRpYS1leHByZXNzaW9ucywgJGV4cHJlc3Npb24pIHtcbiAgICBAcmV0dXJuIG1hcC5nZXQoJG1lZGlhLWV4cHJlc3Npb25zLCAkZXhwcmVzc2lvbik7XG4gIH1cblxuICAkb3BlcmF0b3I6IGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRleHByZXNzaW9uKTtcbiAgJGRpbWVuc2lvbjogZ2V0LWV4cHJlc3Npb24tZGltZW5zaW9uKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xuICAkcHJlZml4OiBnZXQtZXhwcmVzc2lvbi1wcmVmaXgoJG9wZXJhdG9yKTtcbiAgJHZhbHVlOiBnZXQtZXhwcmVzc2lvbi12YWx1ZSgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcblxuICBAcmV0dXJuICcoI3skcHJlZml4fS0jeyRkaW1lbnNpb259OiAjeyR2YWx1ZX0pJztcbn1cblxuLy8vXG4vLy8gU2xpY2UgYCRsaXN0YCBiZXR3ZWVuIGAkc3RhcnRgIGFuZCBgJGVuZGAgaW5kZXhlc1xuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRsaXN0IC0gTGlzdCB0byBzbGljZVxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc3RhcnQgWzFdIC0gU3RhcnQgaW5kZXhcbi8vLyBAcGFyYW0ge051bWJlcn0gJGVuZCBbbGVuZ3RoKCRsaXN0KV0gLSBFbmQgaW5kZXhcbi8vL1xuLy8vIEByZXR1cm4ge0xpc3R9IFNsaWNlZCBsaXN0XG4vLy9cbkBmdW5jdGlvbiBzbGljZSgkbGlzdCwgJHN0YXJ0OiAxLCAkZW5kOiBsaXN0Lmxlbmd0aCgkbGlzdCkpIHtcbiAgQGlmIGxpc3QubGVuZ3RoKCRsaXN0KSA8IDEgb3IgJHN0YXJ0ID4gJGVuZCB7XG4gICAgQHJldHVybiAoKTtcbiAgfVxuXG4gICRyZXN1bHQ6ICgpO1xuXG4gIEBmb3IgJGkgZnJvbSAkc3RhcnQgdGhyb3VnaCAkZW5kIHtcbiAgICAkcmVzdWx0OiBsaXN0LmFwcGVuZCgkcmVzdWx0LCBsaXN0Lm50aCgkbGlzdCwgJGkpLCBjb21tYSk7XG4gIH1cblxuICBAcmV0dXJuICRyZXN1bHQ7XG59XG5cbi8vLy9cbi8vLyBTdHJpbmcgdG8gbnVtYmVyIGNvbnZlcnRlclxuLy8vIEBhdXRob3IgS2l0dHkgR2lyYXVkZWxcbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vLy9cblxuLy8vXG4vLy8gQ2FzdHMgYSBzdHJpbmcgaW50byBhIG51bWJlclxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmcgfCBOdW1iZXJ9ICR2YWx1ZSAtIFZhbHVlIHRvIGJlIHBhcnNlZFxuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyfVxuLy8vXG5cbkBmdW5jdGlvbiB0by1udW1iZXIoJHZhbHVlKSB7XG4gIEBpZiBtZXRhLnR5cGUtb2YoJHZhbHVlKSA9PSAnbnVtYmVyJyB7XG4gICAgQHJldHVybiAkdmFsdWU7XG4gIH0gQGVsc2UgaWYgbWV0YS50eXBlLW9mKCR2YWx1ZSkgIT0gJ3N0cmluZycge1xuICAgICRfOiBpbS1sb2coJ1ZhbHVlIGZvciBgdG8tbnVtYmVyYCBzaG91bGQgYmUgYSBudW1iZXIgb3IgYSBzdHJpbmcuJyk7XG4gIH1cblxuICAkZmlyc3QtY2hhcmFjdGVyOiBzdHJpbmcuc2xpY2UoJHZhbHVlLCAxLCAxKTtcbiAgJHJlc3VsdDogMDtcbiAgJGRpZ2l0czogMDtcbiAgJG1pbnVzOiAoJGZpcnN0LWNoYXJhY3RlciA9PSAnLScpO1xuICAkbnVtYmVyczogKFxuICAgICcwJzogMCxcbiAgICAnMSc6IDEsXG4gICAgJzInOiAyLFxuICAgICczJzogMyxcbiAgICAnNCc6IDQsXG4gICAgJzUnOiA1LFxuICAgICc2JzogNixcbiAgICAnNyc6IDcsXG4gICAgJzgnOiA4LFxuICAgICc5JzogOSxcbiAgKTtcblxuICAvLyBSZW1vdmUgKy8tIHNpZ24gaWYgcHJlc2VudCBhdCBmaXJzdCBjaGFyYWN0ZXJcbiAgQGlmICgkZmlyc3QtY2hhcmFjdGVyID09ICcrJyBvciAkZmlyc3QtY2hhcmFjdGVyID09ICctJykge1xuICAgICR2YWx1ZTogc3RyaW5nLnNsaWNlKCR2YWx1ZSwgMik7XG4gIH1cblxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIHN0cmluZy5sZW5ndGgoJHZhbHVlKSB7XG4gICAgJGNoYXJhY3Rlcjogc3RyaW5nLnNsaWNlKCR2YWx1ZSwgJGksICRpKTtcblxuICAgIEBpZiBub3QobGlzdC5pbmRleChtYXAua2V5cygkbnVtYmVycyksICRjaGFyYWN0ZXIpIG9yICRjaGFyYWN0ZXIgPT0gJy4nKSB7XG4gICAgICBAcmV0dXJuIHRvLWxlbmd0aChpZigkbWludXMsIC0kcmVzdWx0LCAkcmVzdWx0KSwgc3RyaW5nLnNsaWNlKCR2YWx1ZSwgJGkpKTtcbiAgICB9XG5cbiAgICBAaWYgJGNoYXJhY3RlciA9PSAnLicge1xuICAgICAgJGRpZ2l0czogMTtcbiAgICB9IEBlbHNlIGlmICRkaWdpdHMgPT0gMCB7XG4gICAgICAkcmVzdWx0OiAkcmVzdWx0ICogMTAgKyBtYXAuZ2V0KCRudW1iZXJzLCAkY2hhcmFjdGVyKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICRkaWdpdHM6ICRkaWdpdHMgKiAxMDtcbiAgICAgICRyZXN1bHQ6ICRyZXN1bHQgKyBtYXRoLmRpdihtYXAuZ2V0KCRudW1iZXJzLCAkY2hhcmFjdGVyKSwgJGRpZ2l0cyk7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiBpZigkbWludXMsIC0kcmVzdWx0LCAkcmVzdWx0KTtcbn1cblxuLy8vXG4vLy8gQWRkIGAkdW5pdGAgdG8gYCR2YWx1ZWBcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdmFsdWUgLSBWYWx1ZSB0byBhZGQgdW5pdCB0b1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkdW5pdCAtIFN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgdW5pdFxuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyfSAtIGAkdmFsdWVgIGV4cHJlc3NlZCBpbiBgJHVuaXRgXG4vLy9cbkBmdW5jdGlvbiB0by1sZW5ndGgoJHZhbHVlLCAkdW5pdCkge1xuICAkdW5pdHM6IChcbiAgICAncHgnOiAxcHgsXG4gICAgJ2NtJzogMWNtLFxuICAgICdtbSc6IDFtbSxcbiAgICAnJSc6IDElLFxuICAgICdjaCc6IDFjaCxcbiAgICAncGMnOiAxcGMsXG4gICAgJ2luJzogMWluLFxuICAgICdlbSc6IDFlbSxcbiAgICAncmVtJzogMXJlbSxcbiAgICAncHQnOiAxcHQsXG4gICAgJ2V4JzogMWV4LFxuICAgICd2dyc6IDF2dyxcbiAgICAndmgnOiAxdmgsXG4gICAgJ3ZtaW4nOiAxdm1pbixcbiAgICAndm1heCc6IDF2bWF4LFxuICApO1xuXG4gIEBpZiBub3QgbGlzdC5pbmRleChtYXAua2V5cygkdW5pdHMpLCAkdW5pdCkge1xuICAgICRfOiBpbS1sb2coJ0ludmFsaWQgdW5pdCBgI3skdW5pdH1gLicpO1xuICB9XG5cbiAgQHJldHVybiAkdmFsdWUgKiBtYXAuZ2V0KCR1bml0cywgJHVuaXQpO1xufVxuXG4vLy9cbi8vLyBUaGlzIG1peGluIGFpbXMgYXQgcmVkZWZpbmluZyB0aGUgY29uZmlndXJhdGlvbiBqdXN0IGZvciB0aGUgc2NvcGUgb2Zcbi8vLyB0aGUgY2FsbC4gSXQgaXMgaGVscGZ1bCB3aGVuIGhhdmluZyBhIGNvbXBvbmVudCBuZWVkaW5nIGFuIGV4dGVuZGVkXG4vLy8gY29uZmlndXJhdGlvbiBzdWNoIGFzIGN1c3RvbSBicmVha3BvaW50cyAocmVmZXJyZWQgdG8gYXMgdHdlYWtwb2ludHMpXG4vLy8gZm9yIGluc3RhbmNlLlxuLy8vXG4vLy8gQGF1dGhvciBLaXR0eSBHaXJhdWRlbFxuLy8vXG4vLy8gQHBhcmFtIHtNYXB9ICR0d2Vha3BvaW50cyBbKCldIC0gTWFwIG9mIHR3ZWFrcG9pbnRzIHRvIGJlIG1lcmdlZCB3aXRoIGAkYnJlYWtwb2ludHNgXG4vLy8gQHBhcmFtIHtNYXB9ICR0d2Vhay1tZWRpYS1leHByZXNzaW9ucyBbKCldIC0gTWFwIG9mIHR3ZWFrZWQgbWVkaWEgZXhwcmVzc2lvbnMgdG8gYmUgbWVyZ2VkIHdpdGggYCRtZWRpYS1leHByZXNzaW9uYFxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEV4dGVuZCB0aGUgZ2xvYmFsIGJyZWFrcG9pbnRzIHdpdGggYSB0d2Vha3BvaW50XG4vLy8gIEBpbmNsdWRlIG1lZGlhLWNvbnRleHQoKCdjdXN0b20nOiA2NzhweCkpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIEBpbmNsdWRlIG1lZGlhKCc+cGhvbmUnLCAnPD1jdXN0b20nKSB7XG4vLy8gICAgICAgLy8gLi4uXG4vLy8gICAgICB9XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gRXh0ZW5kIHRoZSBnbG9iYWwgbWVkaWEgZXhwcmVzc2lvbnMgd2l0aCBhIGN1c3RvbSBvbmVcbi8vLyAgQGluY2x1ZGUgbWVkaWEtY29udGV4dCgkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnM6ICgnYWxsJzogJ2FsbCcpKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBAaW5jbHVkZSBtZWRpYSgnYWxsJywgJz5waG9uZScpIHtcbi8vLyAgICAgICAvLyAuLi5cbi8vLyAgICAgIH1cbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBFeHRlbmQgYm90aCBjb25maWd1cmF0aW9uIG1hcHNcbi8vLyAgQGluY2x1ZGUgbWVkaWEtY29udGV4dCgoJ2N1c3RvbSc6IDY3OHB4KSwgKCdhbGwnOiAnYWxsJykpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIEBpbmNsdWRlIG1lZGlhKCdhbGwnLCAnPnBob25lJywgJzw9Y3VzdG9tJykge1xuLy8vICAgICAgIC8vIC4uLlxuLy8vICAgICAgfVxuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG5AbWl4aW4gbWVkaWEtY29udGV4dCgkdHdlYWtwb2ludHM6ICgpLCAkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnM6ICgpKSB7XG4gIC8vIFNhdmUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cbiAgJGdsb2JhbC1icmVha3BvaW50czogJGJyZWFrcG9pbnRzO1xuICAkZ2xvYmFsLW1lZGlhLWV4cHJlc3Npb25zOiAkbWVkaWEtZXhwcmVzc2lvbnM7XG5cbiAgLy8gVXBkYXRlIGdsb2JhbCBjb25maWd1cmF0aW9uXG4gICRicmVha3BvaW50czogbWFwLm1lcmdlKCRicmVha3BvaW50cywgJHR3ZWFrcG9pbnRzKSAhZ2xvYmFsO1xuICAkbWVkaWEtZXhwcmVzc2lvbnM6IG1hcC5tZXJnZSgkbWVkaWEtZXhwcmVzc2lvbnMsICR0d2Vhay1tZWRpYS1leHByZXNzaW9ucykgIWdsb2JhbDtcblxuICBAY29udGVudDtcblxuICAvLyBSZXN0b3JlIGdsb2JhbCBjb25maWd1cmF0aW9uXG4gICRicmVha3BvaW50czogJGdsb2JhbC1icmVha3BvaW50cyAhZ2xvYmFsO1xuICAkbWVkaWEtZXhwcmVzc2lvbnM6ICRnbG9iYWwtbWVkaWEtZXhwcmVzc2lvbnMgIWdsb2JhbDtcbn1cblxuLy8vL1xuLy8vIGluY2x1ZGUtbWVkaWEgcHVibGljIGV4cG9zZWQgQVBJXG4vLy8gQGF1dGhvciBFZHVhcmRvIEJvdWNhc1xuLy8vIEBhY2Nlc3MgcHVibGljXG4vLy8vXG5cbi8vL1xuLy8vIEdlbmVyYXRlcyBhIG1lZGlhIHF1ZXJ5IGJhc2VkIG9uIGEgbGlzdCBvZiBjb25kaXRpb25zXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICAgJGNvbmRpdGlvbnMgIC0gTWVkaWEgcXVlcnkgY29uZGl0aW9uc1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggYSBzaW5nbGUgc2V0IGJyZWFrcG9pbnRcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz5waG9uZScpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggdHdvIHNldCBicmVha3BvaW50c1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPnBob25lJywgJzw9dGFibGV0JykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBjdXN0b20gdmFsdWVzXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PTM1OHB4JywgJzw4NTBweCcpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggc2V0IGJyZWFrcG9pbnRzIHdpdGggY3VzdG9tIHZhbHVlc1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPmRlc2t0b3AnLCAnPD0xMzUwcHgnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIGEgc3RhdGljIGV4cHJlc3Npb25cbi8vLyAgQGluY2x1ZGUgbWVkaWEoJ3JldGluYTJ4JykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gTWl4aW5nIGV2ZXJ5dGhpbmdcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49MzUwcHgnLCAnPHRhYmxldCcsICdyZXRpbmEzeCcpIHsgfVxuLy8vXG5AbWl4aW4gbWVkaWEoJGNvbmRpdGlvbnMuLi4pIHtcbiAgQGlmICgkaW0tbWVkaWEtc3VwcG9ydCBhbmQgbGlzdC5sZW5ndGgoJGNvbmRpdGlvbnMpID09IDApIG9yXG4gICAgKG5vdCAkaW0tbWVkaWEtc3VwcG9ydCBhbmQgaW0taW50ZXJjZXB0cy1zdGF0aWMtYnJlYWtwb2ludCgkY29uZGl0aW9ucy4uLikpXG4gIHtcbiAgICBAY29udGVudDtcbiAgfSBAZWxzZSBpZiAoJGltLW1lZGlhLXN1cHBvcnQgYW5kIGxpc3QubGVuZ3RoKCRjb25kaXRpb25zKSA+IDApIHtcbiAgICBAbWVkaWEgI3tzdHJpbmcudW5xdW90ZShwYXJzZS1leHByZXNzaW9uKGxpc3QubnRoKCRjb25kaXRpb25zLCAxKSkpfSB7XG4gICAgICAvLyBSZWN1cnNpdmUgY2FsbFxuICAgICAgQGluY2x1ZGUgbWVkaWEoc2xpY2UoJGNvbmRpdGlvbnMsIDIpLi4uKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLnNpbmdsZS1wb3N0IHtcblxuXHQuc2l0ZS1oZWFkZXIge1xuXHRcdC8vYmFja2dyb3VuZC1jb2xvcjogdmFyKC0taGVhZGVyLXN0aWNreS1iZywgdmFyKC0tcHJpbWFyeS1jb2xvcjEpKTtcblx0fVxuXG5cdC5zaXRlLWNvbnRlbnQge1xuXHRcdHBhZGRpbmctdG9wOiAzMHB4O1xuXHR9XG5cblx0Ji5maXhlZC1oZWFkZXIge1xuXHRcdC5zaXRlLWNvbnRlbnQge1xuXHRcdFx0QGluY2x1ZGUgbWVkaWEoXCI+ZGVza3RvcFwiKSB7XG5cdFx0XHRcdHBhZGRpbmctdG9wOiB2YXIoLS1uYXZiYXItaGVpZ2h0KTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuLmNvbnRlbnQtc2luZ2xlIHtcblxuXHQmX190aXRsZSB7XG5cdFx0cGFkZGluZzogMjBweCAwO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICNjY2M7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyXG5cdH1cblxuXHQmX19pbmZvIHtcblx0XHRjb2xvcjogcmdiYSh2YXIoLS1wcmltYXJ5LXRleHQtY29sb3IpLCAuOCk7XG5cdFx0dGV4dC1hbGlnbjogbGVmdDtcblx0XHRwYWRkaW5nOiAyMHB4IDA7XG5cblx0XHRAaW5jbHVkZSBtZWRpYShcIj5kZXNrdG9wXCIpIHtcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cdFx0XHRmb250LXNpemU6IC44ZW07XG5cdFx0fVxuXHR9XG5cblx0Jl9fcGFnaW5hdGlvbiB7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cdFx0bWF4LXdpZHRoOiB2YXIoLS1ibG9nLXdpZHRoLCA2NTBweCk7XG5cdFx0cGFkZGluZzogMzBweCAwO1xuXHR9XG59XG5cbi5zaW5nbGUtcG9zdC1zdHlsZS0yIHtcblx0bWFyZ2luLWJvdHRvbTogNnZtaW47XG5cdG1heC13aWR0aDogbm9uZTtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR6LWluZGV4OiAyMDtcblx0QGluY2x1ZGUgbWVkaWEoXCI+ZGVza3RvcFwiKSB7XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGdhcDogNDVweDtcblx0XHRsZWZ0OiA1MCU7XG5cdFx0bWFyZ2luLWxlZnQ6IC01MHZ3O1xuXHRcdG1hcmdpbi1yaWdodDogLTUwdnc7XG5cdFx0cmlnaHQ6IDUwJTtcblx0XHR3aWR0aDogY2FsYygxMDB2dyAtIDguMXB4KTtcblx0XHQuc2luZ2xlLXBvc3RfX2NvbDEsXG5cdFx0LnNpbmdsZS1wb3N0X19jb2wyIHtcblx0XHRcdHdpZHRoOiA1MCU7XG5cdFx0fVxuXHRcdC5zaW5nbGUtcG9zdF9fY29sMiB7XG5cdFx0XHRwYWRkaW5nOiAwIDUlIDAgMjBweDtcblxuXHRcdFx0Li1oMSB7XG5cdFx0XHRcdGZvbnQtc2l6ZTogdmFyKC0taDEtZm9udC1zaXplLCA2cmVtKTtcblx0XHRcdFx0bGluZS1oZWlnaHQ6IHZhcigtLWgxLWxpbmUtaGVpZ2h0LCAxLjMpO1xuXHRcdFx0XHRmb250LXdlaWdodDogdmFyKC0taDEtZm9udC13ZWlnaHQsIDcwMCk7XG5cdFx0XHR9XG5cblx0XHR9XG5cdFx0LnNpbmdsZS1wb3N0X19jb2wxIHtcblx0XHRcdGhlaWdodDogNjd2aDtcblx0XHRcdHRleHQtYWxpZ246IHJpZ2h0O1xuXG5cdFx0XHRpbWcge1xuXHRcdFx0XHRib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcblx0XHRcdFx0Ym9yZGVyLXJhZGl1czogMCB2YXIoLS1jLWJsb2NrLXJhZGl1cywgMTVweCkgdmFyKC0tYy1ibG9jay1yYWRpdXMsIDE1cHgpIDA7XG5cdFx0XHRcdGhlaWdodDogMTAwJTtcblx0XHRcdFx0bWF4LWhlaWdodDogMTAwJTtcblx0XHRcdFx0b2JqZWN0LWZpdDogY292ZXI7XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG5cbiIsIi5ibG9nLWZpbHRlciB7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWZpbHRlci1iZyk7XG5cblx0Jl9faW5uZXIge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXHRcdHBhZGRpbmctdG9wOiB2YXIoLS1maWx0ZXItdnNwYWNlKTtcblx0XHRwYWRkaW5nLWJvdHRvbTogdmFyKC0tZmlsdGVyLXZzcGFjZSk7XG5cdH1cblxuXHQmX19saXN0IHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuXHRcdFx0ZmxleC13cmFwOiB3cmFwO1xuXHRcdFx0cGFkZGluZy1yaWdodDogMTBweDtcblx0XHR9XG5cblx0XHQ+IGxpIHtcblx0XHRcdG1hcmdpbjogMCAzZW0gMCAwO1xuXHRcdFx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0XHRcdEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuXHRcdFx0XHRtYXJnaW46IDAgNXB4IDEwcHg7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0YSB7XG5cdFx0XHRjb2xvcjogdmFyKC0tZmlsdGVyLWxpbmstY29sb3IpO1xuXHRcdFx0Zm9udC13ZWlnaHQ6IHZhcigtLWZpbHRlci1saW5rLXdlaWdodCk7XG5cdFx0XHRmb250LXNpemU6IHZhcigtLWZpbHRlci1saW5rLXNpemUpO1xuXG5cdFx0XHQmOmhvdmVyLFxuXHRcdFx0Ji5hY3RpdmVfdGVybSB7XG5cdFx0XHRcdGNvbG9yOiB2YXIoLS1maWx0ZXItbGluay1jb2xvci1hY3RpdmUpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdCZfX3NlYXJjaCB7XG5cdFx0LmlucHV0IHtcblx0XHRcdG1heC13aWR0aDogMjAwcHg7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0XHR9XG5cdH1cblxuXHQmX190YWcge1xuXHRcdHBhZGRpbmctdG9wOiAzMHB4O1xuXHRcdHBhZGRpbmctYm90dG9tOiAzMHB4O1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0XHRsYWJlbCB7XG5cdFx0XHRmb250LXdlaWdodDogNzAwO1xuXHRcdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0XHRcdG1hcmdpbi1yaWdodDogMWVtO1xuXHRcdH1cblxuXHRcdHNlbGVjdCB7XG5cdFx0XHRiYWNrZ3JvdW5kOiAjZmZmO1xuXHRcdFx0Ym94LXNoYWRvdzogMHB4IDBweCAyNXB4ICNDREVBRUM7XG5cdFx0XHRib3JkZXItcmFkaXVzOiA4cHg7XG5cdFx0XHRib3JkZXI6IDFweCBzb2xpZCAjY2RlYWVjO1xuXHRcdFx0aGVpZ2h0OiA1NHB4O1xuXHRcdFx0cGFkZGluZy1sZWZ0OiAyMHB4O1xuXHRcdH1cblx0fVxuXG5cdEBpbmNsdWRlIG1lZGlhKCc8PWRlc2t0b3AnKSB7XG5cdFx0Li1kZXNrdG9wIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXHR9XG5cdEBpbmNsdWRlIG1lZGlhKCc+ZGVza3RvcCcpIHtcblx0XHQuLW1vYmlsZSB7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdH1cblx0fVxuXG59XG5cbi5ibG9nLWZpbHRlcl9fc2VhcmNoIHtcblxuXHRAaW5jbHVkZSBtZWRpYSgnPD1kZXNrdG9wJykge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cblxuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdGhlaWdodDogMzBweDtcblx0dG9wOiA1MCU7XG5cdG1hcmdpbi10b3A6IC0xNXB4O1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRyaWdodDogMDtcblxuXHQmLWZpZWxkIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0cmlnaHQ6IDQwcHg7XG5cdFx0dG9wOiA1MCU7XG5cdFx0Y29sb3I6ICMyMjI7XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuXHRcdHdpZHRoOiAzMDBweDtcblx0XHRtYXgtd2lkdGg6IDA7XG5cdFx0b3BhY2l0eTogMDtcblx0XHRiYWNrZ3JvdW5kOiAjZmZmO1xuXHRcdGJveC1zaGFkb3c6IDBweCAwcHggNHB4ICNDREVBRUM7XG5cdFx0Ym9yZGVyLXJhZGl1czogOHB4O1xuXHRcdHBhZGRpbmc6IDVweCAxMHB4O1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkICNjZGVhZWM7XG5cdFx0dHJhbnNpdGlvbjogYWxsIC4zcyAhaW1wb3J0YW50O1xuXG5cdFx0Jjpmb2N1cywgJjphY3RpdmUge1xuXHRcdFx0b3BhY2l0eTogMTtcblx0XHRcdHdpZHRoOiAzMDBweDtcblx0XHRcdG1heC13aWR0aDogMzAwcHg7XG5cdFx0fVxuXHR9XG5cblx0Ji1idG4ge1xuXHRcdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXHRcdGJvcmRlcjogbm9uZTtcblxuXHRcdC5pY29uIHtcblx0XHRcdGZpbGw6ICNmZmY7XG5cdFx0XHRoZWlnaHQ6IDI0cHg7XG5cdFx0XHR3aWR0aDogMjVweDtcblx0XHR9XG5cdH1cblxuXHQmOmhvdmVyIHtcblx0XHQuYmxvZy1maWx0ZXJfX3NlYXJjaC1maWVsZCB7XG5cdFx0XHRvcGFjaXR5OiAxO1xuXHRcdFx0d2lkdGg6IDMwMHB4O1xuXHRcdFx0bWF4LXdpZHRoOiAzMDBweDtcblx0XHR9XG5cdH1cbn1cbiIsIi5ibG9nLXBhZ2luYXRpb24ge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAxZW0gMDtcbiAgICB1bCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cbiAgICBsaSB7XG4gICAgICAgIG1hcmdpbjogMCAxMHB4O1xuICAgIH1cbiAgICBhIHtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcjIpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5hY3RpdmUgYSB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG9yMik7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgfVxufVxuXG4ucGFnaW5hdGlvbi1jb250YWluZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAzMHB4IDA7XG59IiwiLmJsb2ctYnJlYWRjcnVtYiB7XG5cdGZvbnQtc2l6ZTogdmFyKC0tYnJlYWRjcnVtYi1zaXplKTtcblx0cGFkZGluZy10b3A6IDFlbTtcblx0cGFkZGluZy1ib3R0b206IDFlbTtcblx0Y29sb3I6IHZhcigtLWJyZWFkY3J1bWItY29sb3ItY3VycmVudCk7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJyZWFkY3J1bWItYmcpO1xuXG5cdD4gc3BhbiB7XG5cdFx0bWFyZ2luOiAwIHZhcigtLWJyZWFkY3J1bWItZ2FwKTtcblx0fVxuXG5cdGEge1xuXHRcdGNvbG9yOiB2YXIoLS1icmVhZGNydW1iLWNvbG9yKTtcblxuXHRcdCY6aG92ZXIge1xuXHRcdFx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG5cdFx0fVxuXHR9XG5cblx0LmN1cnJlbnQtaXRlbSB7XG5cdFx0Y29sb3I6IHZhcigtLWJyZWFkY3J1bWItY29sb3ItY3VycmVudCk7XG5cdH1cbn0iLCIvKiBHQUxMRVJJRVMgKi9cblxuLmdhbGxlcnkge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LXdyYXA6IHdyYXA7XG5cdG1hcmdpbjogM2VtIDAgM2VtIC0wLjhlbTtcblx0d2lkdGg6IGNhbGMoMTAwJSArIDEuNmVtKTtcbn1cblxuLmdhbGxlcnktaXRlbSB7XG5cdG1hcmdpbjogMC44ZW0gMDtcblx0cGFkZGluZzogMCAwLjhlbTtcblx0d2lkdGg6IDEwMCU7XG5cblx0aW1nIHtcblx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHR9XG59XG5cbi5nYWxsZXJ5LWNhcHRpb24ge1xuXHRkaXNwbGF5OiBibG9jaztcblx0bWFyZ2luLXRvcDogMC44ZW07XG59XG5cbkBpbmNsdWRlIG1lZGlhKFwiPnRhYmxldFwiKSB7XG5cdC5nYWxsZXJ5LWNvbHVtbnMtMiAuZ2FsbGVyeS1pdGVtIHtcblx0XHRtYXgtd2lkdGg6IDUwJTtcblx0fVxuXG5cdC5nYWxsZXJ5LWNvbHVtbnMtMyAuZ2FsbGVyeS1pdGVtIHtcblx0XHRtYXgtd2lkdGg6IDMzLjMzJTtcblx0fVxuXG5cdC5nYWxsZXJ5LWNvbHVtbnMtNCAuZ2FsbGVyeS1pdGVtIHtcblx0XHRtYXgtd2lkdGg6IDI1JTtcblx0fVxuXG5cdC5nYWxsZXJ5LWNvbHVtbnMtNSAuZ2FsbGVyeS1pdGVtIHtcblx0XHRtYXgtd2lkdGg6IDIwJTtcblx0fVxuXG5cdC5nYWxsZXJ5LWNvbHVtbnMtNiAuZ2FsbGVyeS1pdGVtIHtcblx0XHRtYXgtd2lkdGg6IDE2LjY2JTtcblx0fVxuXG5cdC5nYWxsZXJ5LWNvbHVtbnMtNyAuZ2FsbGVyeS1pdGVtIHtcblx0XHRtYXgtd2lkdGg6IDE0LjI4JTtcblx0fVxuXG5cdC5nYWxsZXJ5LWNvbHVtbnMtOCAuZ2FsbGVyeS1pdGVtIHtcblx0XHRtYXgtd2lkdGg6IDEyLjUlO1xuXHR9XG5cblx0LmdhbGxlcnktY29sdW1ucy05IC5nYWxsZXJ5LWl0ZW0ge1xuXHRcdG1heC13aWR0aDogMTEuMTElO1xuXHR9XG59XG5cbi5wb3N0IHtcblx0LmFsaWduY2VudGVyLCAuYWxpZ25ub25lLCBpZnJhbWUge1xuXHRcdG1hcmdpbi1sZWZ0OiBhdXRvO1xuXHRcdG1hcmdpbi1yaWdodDogYXV0bztcblx0fVxuXG5cdC5hbGlnbmxlZnQge1xuXHRcdGZsb2F0OiBsZWZ0O1xuXHRcdG1hcmdpbi1yaWdodDogMjBweDtcblx0fVxuXG5cdC5hbGlnbnJpZ2h0IHtcblx0XHRmbG9hdDogcmlnaHQ7XG5cdFx0bWFyZ2luLWxlZnQ6IDIwcHg7XG5cdH1cblxuXHQud3AtYmxvY2stY29sdW1ucyxcblx0LmFsaWduZnVsbCB7XG5cdFx0d2lkdGg6IGNhbGMoMTAwdncgLSA4LjFweCk7XG5cdFx0bWF4LXdpZHRoOiBub25lO1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRsZWZ0OiA1MCU7XG5cdFx0cmlnaHQ6IDUwJTtcblx0XHRtYXJnaW4tbGVmdDogLTUwdnc7XG5cdFx0bWFyZ2luLXJpZ2h0OiAtNTB2dztcblxuXHRcdC53cC1ibG9jay1nYWxsZXJ5IHtcblx0XHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdFx0fVxuXHR9XG5cblx0LmJsb2Nrcy1nYWxsZXJ5LWl0ZW0ge1xuXHRcdGltZyB7XG5cdFx0XHRtYXJnaW46IDA7XG5cdFx0fVxuXHR9XG5cblx0LndwLWJsb2NrLWltYWdlLmFsaWduZnVsbCBpbWcsIC53cC1ibG9jay1pbWFnZS5hbGlnbndpZGUgaW1nIHtcblx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHR9XG5cbn0iLCJcbi8vIExvYWRlciB3aXRoIGFuaW1hdGlvblxuXG4uZmlsdGVyLWxvYWRlciB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIC41KTtcbiAgICB6LWluZGV4OiAxMDA7XG4gICAgbGVmdDogMDtcbiAgICB0b3A6IDA7XG59XG5cbi5zcGlubmVyIHtcbiAgICB3aWR0aDogNDBweDtcbiAgICBoZWlnaHQ6IDQwcHg7XG5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luOiAxMDBweCBhdXRvO1xufVxuXG4uZG91YmxlLWJvdW5jZTEsIC5kb3VibGUtYm91bmNlMiB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG9yMik7XG4gICAgb3BhY2l0eTogMC42O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcblxuICAgIC13ZWJraXQtYW5pbWF0aW9uOiBzay1ib3VuY2UgMi4wcyBpbmZpbml0ZSBlYXNlLWluLW91dDtcbiAgICBhbmltYXRpb246IHNrLWJvdW5jZSAyLjBzIGluZmluaXRlIGVhc2UtaW4tb3V0O1xufVxuXG4uZG91YmxlLWJvdW5jZTIge1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAtMS4wcztcbiAgICBhbmltYXRpb24tZGVsYXk6IC0xLjBzO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgc2stYm91bmNlIHtcbiAgICAwJSwgMTAwJSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjApXG4gICAgfVxuICAgIDUwJSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxLjApXG4gICAgfVxufVxuXG5Aa2V5ZnJhbWVzIHNrLWJvdW5jZSB7XG4gICAgMCUsIDEwMCUge1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuMCk7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjApO1xuICAgIH1cbiAgICA1MCUge1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMCk7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxLjApO1xuICAgIH1cbn1cbiIsIi5kYXJrLW1vZGUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWRtLWJnKTtcbiAgICBwYWRkaW5nOiAuOGVtIDFlbTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tZG0tcmFkaXVzKTtcbiAgICB6LWluZGV4OiAxMDtcblxuICAgICZfX3dyYXAge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoXCI8ZGVza3RvcFwiKSB7XG4gICAgICAgIG1heC13aWR0aDogMjMwcHg7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvIDIwcHg7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoXCI+PWRlc2t0b3BcIikge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcbiAgICAgICAgdG9wOiAzNXB4O1xuICAgICAgICByaWdodDogMDtcbiAgICB9XG5cbiAgICAmX19sYWJlbCB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMTVweDtcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICBjb2xvcjogdmFyKC0tZG0tY29sb3IpO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogLjA1ZW07XG4gICAgfVxuXG4gICAgJl9fdG9nZ2xlciB7XG4gICAgICAgIHdpZHRoOiB2YXIoLS1kbS13aWR0aCk7XG4gICAgICAgIGhlaWdodDogdmFyKC0tZG0taGVpZ2h0KTtcbiAgICAgICAgcGFkZGluZzogMXB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1kbS10b2dnbGVyLWJnKTtcbiAgICAgICAgYm9yZGVyOiBzb2xpZCAxcHggdmFyKC0tZG0tdG9nZ2xlci1iZyk7XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAuMjVzIGVhc2UtaW47XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgICZfX2hhbmRsZXIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAuMjVzIGN1YmljLWJlemllciguNDEsIC4zNiwgLjgyLCAuNCk7XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtNTAlKTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiBjYWxjKHZhcigtLWRtLWhlaWdodCkgLSA0cHgpO1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKHZhcigtLWRtLWhlaWdodCkgLSA0cHgpO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWRtLWRvdCk7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgLjI1cyBjdWJpYy1iZXppZXIoLjQxLCAuMzYsIC44MiwgLjQpO1xuXG4gICAgICAgICAgICBbY29sb3ItbW9kZT1cImRhcmtcIl0gJiB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoY2FsYygtMTAwJSAtIDJweCksIC01MCUpO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIuYWRkdG9hbnlfc2hhcmVfc2F2ZV9jb250YWluZXIge1xuXHRAaW5jbHVkZSBtZWRpYShcIj5kZXNrdG9wXCIpIHtcblx0XHRtYXJnaW46IDA7XG5cdFx0cG9zaXRpb246IHN0aWNreTtcblx0XHR0b3A6IDE0MHB4O1xuXHRcdGhlaWdodDogMjUwcHg7XG5cdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0ei1pbmRleDogMTtcblx0XHQ+IGRpdiB7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHR0b3A6IDA7XG5cdFx0XHRsZWZ0OiAtMTYwcHg7XG5cdFx0fVxuXHR9XG5cblx0LmFkZHRvYW55X2xpc3Qge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdEBpbmNsdWRlIG1lZGlhKFwiPGRlc2t0b3BcIikge1xuXHRcdFx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0XHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHRcdH1cblxuXHRcdGEge1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogMTBweDtcblxuXHRcdFx0PiBzcGFuIHtcblx0XHRcdFx0Ym9yZGVyLXJhZGl1czogNDBweDtcblx0XHRcdFx0aGVpZ2h0OiA1MHB4O1xuXHRcdFx0XHR3aWR0aDogNTBweDtcblx0XHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRcdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cblx0XHRcdFx0c3ZnIHtcblx0XHRcdFx0XHR3aWR0aDogMjZweDtcblx0XHRcdFx0fVxuXG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG4iLCIuc2VwYXJhdG9ycy1jdXN0b20tYm94IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHBhZGRpbmc6IDE1cHg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcjEpO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZm9udC1zaXplOiAyLjJyZW07XG4gICAgbWFyZ2luOiAxLjVlbSAwO1xuICAgIEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG4gICAgQGluY2x1ZGUgbWVkaWEoXCI+ZGVza3RvcFwiKSB7XG4gICAgICAgIHBhZGRpbmc6IDMwcHg7XG4gICAgfVxuICAgID4gc3BhbiwgaDQge1xuICAgICAgICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50O1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgZm9udC1zaXplOiAyLjRyZW07XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0XCIpIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj49dGFibGV0XCIpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7XG4gICAgICAgIH1cbiAgICB9XG4gICAgYSB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBmb250LXNpemU6IDJyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGhlaWdodDogNTBweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDUwcHg7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IyKTtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgMTVweCBjZW50ZXI7XG4gICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgIHBhZGRpbmc6IDAgMzBweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMzBweDtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIC4zcztcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgICAgIG9wYWNpdHk6IC45O1xuICAgICAgICB9XG4gICAgfVxuXG59XG4iLCIuY29udGVudC1zaW5nbGUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICNlei10b2MtY29udGFpbmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdG9jLWJnKTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogM2VtO1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAuM3M7XG4gICAgICAgIHotaW5kZXg6IDEwO1xuXG4gICAgICAgICsgKiB7XG4gICAgICAgICAgICAmOmZpcnN0LW9mLXR5cGUsXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPmRlc2t0b3AtbVwiKSB7XG5cbiAgICAgICAgICAgICYuaXMtZmxvYXQge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAzMDBweDtcbiAgICAgICAgICAgICAgICB0b3A6IHZhcigtLW5hdmJhci1oZWlnaHQsIDEwMHB4KTtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDExMCUpO1xuXG4gICAgICAgICAgICAgICAgLmZpeGVkLWhlYWRlciAmIHtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiB2YXIoLS1uYXZiYXItaGVpZ2h0LCAxMDBweCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLmV6LXRvYy10aXRsZS1jb250YWluZXIge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAxMHB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAuZXotdG9jLXRpdGxlIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjhyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC5lei10b2MtbGluayB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDVweCAwO1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbmF2IHtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgbmF2IHtcblxuICAgICAgICAgICAgPiB1bCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMWVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuZXotdG9jLXZpZXdlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IyKSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdWwge1xuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAuZXotdG9jLWxpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAxMHB4IDA7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tdG9jLWNvbG9yKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI+ZGVza3RvcC1sXCIpIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IHZhcigtLXRvYy1saW5rLWwxLXNpemUpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS10b2MtbGluay1sMS13ZWlnaHQpO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLXRvYy1saW5rLWwxLXBhZGRpbmcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOnZpc2l0ZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS10b2MtY29sb3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG9yMikgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5lei10b2MtcGFnZS0xIHtcbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEodmFyKC0tcHJpbWFyeS1jb2xvcjEtcmdiKSwgLjMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmV6LXRvYy1idG4ge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogIzMzMztcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSksIDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMDc1KTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICNmZmYgMCwgI2UwZTBlMCAxMDAlKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDZweCAxNXB4O1xuICAgICAgICAgICAgbWluLXdpZHRoOiAxMDBweDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gICAgICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMThweDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogIzMzMztcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWVlZWU7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAjYWRhZGFkO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiU2hvd1wiO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDMwcHg7XG4gICAgICAgICAgICAgICAgdG9wOiA1cHg7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgM3B4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTI1KTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTBlMGUwO1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogI2RiZGJkYjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgb3V0bGluZTogdGhpbiBkb3R0ZWQgIzMzMztcbiAgICAgICAgICAgICAgICBvdXRsaW5lOiA1cHggYXV0byAtd2Via2l0LWZvY3VzLXJpbmctY29sb3I7XG4gICAgICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICdIaWRlJztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAuZXotdG9jLWljb24tdG9nZ2xlIHtcbiAgICAgICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuZXotdG9jLWljb24tdG9nZ2xlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMTdweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgNTAlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0Nzdmcgd2lkdGg9JzExJyBoZWlnaHQ9JzgnIGZpbGw9J25vbmUnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyclM0UlM0NwYXRoIGQ9J005LjcwMyA4TDUuNSAzLjQxIDEuMjk3IDggMCA2LjU4MyA1LjUuNTc2IDExIDYuNTgzIDkuNzAzIDh6JyBmaWxsPSclMjMyQTQyNUMnLyUzRSUzQy9zdmclM0VcIik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5lei10b2MtdGl0bGUtY29udGFpbmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRvYy10aXRsZS1iZyk7XG4gICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS10b2MtdGl0bGUtcGFkZGluZyk7XG4gICAgICAgIH1cblxuICAgICAgICAuZXotdG9jLXRpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS10b2MtdGl0bGUtY29sb3IpO1xuICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS10b2MtdGl0bGUtc2l6ZSk7XG4gICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tdG9jLXRpdGxlLXdlaWdodCk7XG4gICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4xN2VtO1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgfVxuXG59XG4iXX0= */
