@charset "UTF-8";
/**
 * Foundation for Sites by ZURB
 * Version 6.2.3
 * foundation.zurb.com
 * Licensed under MIT Open Source
 */
/* New Style Begin */
html {
  overflow-y: scroll;
  margin: 0;
  padding: 0; }

body {
  line-height: 18px;
  margin: 0px;
  padding: 0px;
  font-size: 12px;
  text-decoration: none; }

td, th, input, textarea, select {
  font-size: 12px;
  text-decoration: none; }

a {
  font-size: 12px;
  text-decoration: none;
  transition: all 0.2s ease-in 0s;
  cursor: pointer;
  text-decoration: none; }
  a:visited {
    text-decoration: none; }
  a:link:after, a:visited:after {
    content: ""; }

h1, h2, h3, h4, h5, h6 {
  font-family: inherit;
  line-height: 1.5; }

h1 {
  font-size: 30px; }

h2 {
  font-size: 22px; }

h3 {
  font-size: 19px; }

h4 {
  font-size: 14px; }

h5 {
  font-size: 13px; }

h6 {
  font-size: 12px; }

ul {
  list-style-type: none; }

.welcome {
  margin-top: 0px;
  margin-bottom: 20px;
  font-size: 30px;
  font-weight: normal; }

form {
  padding: 0;
  margin: 0;
  display: inline; }

input[type="text"], input[type="password"], input[type="date"], input[type="datetime"], input[type="email"], input[type="number"], input[type="search"], input[type="tel"], input[type="time"], input[type="url"] {
  background: #FFFFFF;
  border-color: #DFDFDF #EFEFEF #EFEFEF #DFDFDF;
  border-radius: 0;
  border-style: solid;
  border-width: 1px;
  padding: 9px;
  margin: 5px 0;
  width: auto;
  height: auto;
  box-shadow: none;
  transition: all 0.15s linear 0s; }

#content textarea, #content select {
  border-color: #DFDFDF #EFEFEF #EFEFEF #DFDFDF;
  border-radius: 0;
  border-style: solid;
  border-width: 1px;
  margin: 5px 0;
  width: 100%;
  height: auto;
  box-shadow: none;
  transition: all 0.15s linear 0s; }

input[type="text"]:focus, input[type="password"]:focus, input[type="date"]:focus, input[type="datetime"]:focus, input[type="email"]:focus, input[type="number"]:focus, input[type="search"]:focus, input[type="tel"]:focus, input[type="time"]:focus, input[type="url"]:focus {
  border: 1px solid #E42D9F; }

#content textarea:focus, #content select:focus {
  border: 1px solid #E42D9F; }

label {
  cursor: pointer;
  display: inline; }

pre {
  font-family: inherit;
  line-height: 18px; }

small {
  font-size: 90%; }

.highlight {
  background: none; }

/* Buttons */
a.button, input.button {
  border: none;
  box-shadow: none;
  font-size: 12px;
  text-align: center;
  cursor: pointer;
  display: inline-block;
  position: relative;
  padding: 10px 12px;
  transition: all 0.2s ease-in 0s;
  -webkit-appearance: none; }

a.button-exclusive, input.button-exclusive {
  border: none;
  box-shadow: none;
  font-size: 12px;
  text-align: center;
  cursor: pointer;
  display: inline-block;
  position: relative;
  padding: 10px 12px;
  transition: all 0.2s ease-in 0s;
  -webkit-appearance: none; }

.buttons {
  overflow: auto;
  padding: 6px;
  margin-bottom: 20px; }
  .buttons .left {
    float: left;
    text-align: left; }
  .buttons .right {
    float: right;
    text-align: right; }
  .buttons .center {
    text-align: center;
    margin-left: auto;
    margin-right: auto; }

.wrapper {
  margin: 0 auto;
  padding: 0 10px;
  margin-bottom: 25px;
  width: auto;
  max-width: 980px;
  overflow: hidden; }

@media (min-width: 980px) and (max-width: 1040px) {
  .wrapper {
    margin: 0 30px; } }

@media (min-width: 768px) and (max-width: 979px) {
  .wrapper {
    margin: 0 10px; } }

#midsection {
  margin-top: 25px; }

#content {
  width: 100%;
  min-height: 400px;
  margin-bottom: 20px; }

#column-left {
  margin-bottom: 30px; }

#column-right {
  float: right;
  margin-bottom: 30px; }

#column-left + #column-right + #content {
  width: 50%; }

#column-right + #content, #column-left + #content {
  width: 75%; }

.op {
  float: none; }

#column-left + .op, #column-left + #column-right + .op {
  float: left; }

/* Scrolled Top Bar */
.is-sticky #header {
  box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.35);
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  padding: 0;
  margin-left: 0;
  z-index: 10001;
  opacity: 0.97; }
  .is-sticky #header #t-header {
    min-height: inherit;
    padding: 10px 0 5px; }
  .is-sticky #header #logo img {
    max-height: 40px; }
  .is-sticky #header #search {
    margin-top: 7px; }
  .is-sticky #header #cart {
    top: 3px; }
  .is-sticky #header #menu {
    min-height: 40px;
    height: 40px;
    margin-bottom: 0;
    border-top: none;
    border-bottom: none; }
    .is-sticky #header #menu #homepage a {
      line-height: 40px; }
  .is-sticky #header #menu_v > ul > li > a, .is-sticky #header #menu_h > ul > li > a, .is-sticky #header #menu_oc > ul > li > a, .is-sticky #header #menu_brands > ul > li > a, .is-sticky #header .menu_links a, .is-sticky #header #menu_custom_menu > ul > li > a, .is-sticky #header .menu_custom_block > ul > li > a, .is-sticky #header #menu_informations > ul > li > a, .is-sticky #header #menu_contacts > ul > li > a {
    line-height: 40px; }

/* Top line */
#top-line {
  min-height: 28px;
  line-height: 28px;
  padding: 0 10px;
  margin-left: -10px;
  margin-right: -10px;
  text-transform: uppercase; }

/* Top Welcome */
#welcome {
  font-size: 10px; }
  #welcome a {
    font-size: 10px; }

/* Content */
#content .content {
  padding: 20px;
  overflow: auto;
  margin-bottom: 20px; }
  #content .content .left {
    float: left;
    width: 49%; }
  #content .content .right {
    float: right;
    width: 49%; }
  #content .content input[type="text"], #content .content input[type="password"] {
    width: 100%; }
  #content .content ul {
    margin-bottom: 0px; }
    #content .content ul li {
      list-style: none;
      line-height: 26px; }

/*  Notifications  */
.success, .warning, .attention, .information {
  padding: 21px 40px 21px 80px;
  margin-left: 10px;
  margin-right: 10px;
  box-shadow: 0 5px 20px rgba(0, 0, 0, 0.3);
  position: fixed;
  top: 37px;
  right: 20px;
  max-width: 350px;
  border-radius: 0px;
  z-index: 999999; }

.success {
  background: url("../image/success.png") 25px center no-repeat; }

.warning {
  background: url("../image/warning.png") 25px center no-repeat; }

.attention {
  background: url("../image/attention.png") 25px center no-repeat; }

.success .close, .warning .close, .attention .close, .information .close {
  float: right;
  position: absolute;
  top: 7px;
  right: 7px;
  padding-top: 4px;
  padding-right: 4px;
  cursor: pointer; }

.required {
  color: #FF0000;
  font-weight: bold;
  font-size: 17px; }

.error {
  display: block;
  color: #FF0000; }

.help {
  color: #999999;
  font-size: 10px;
  font-weight: normal;
  font-family: Verdana, Geneva, sans-serif;
  display: block; }

/* Tables */
table {
  background: none;
  border: none;
  margin: 0; }
  table tbody tr td {
    vertical-align: middle; }

table.form {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 20px; }
  table.form tr td:first-child {
    width: 25%;
    vertical-align: middle; }
  table.form td {
    padding: 4px; }
  table.form thead, table.form tbody, table.form tfoot, table.form tr:nth-child(even) {
    background: none;
    border: none; }

input.large-field, select.large-field {
  width: 300px; }

table.list {
  border-collapse: collapse;
  width: 100%;
  margin-bottom: 20px; }
  table.list thead td {
    padding: 0 5px; }
    table.list thead td a {
      text-decoration: none;
      font-weight: bold; }

.list thead td {
  text-decoration: none;
  font-weight: bold; }

table.list tbody td {
  vertical-align: top;
  padding: 0 5px; }

table.list .left {
  text-align: left;
  padding: 7px;
  float: none; }

table.list .right {
  text-align: right;
  padding: 7px;
  float: none; }

table.list .center {
  text-align: center;
  padding: 7px; }

table.radio {
  width: 100%;
  border-collapse: collapse; }
  table.radio td {
    padding: 5px;
    vertical-align: middle; }
  table.radio tr td:first-child {
    width: 1px; }
  table.radio tr.highlight:hover td {
    background: rgba(0, 0, 0, 0.05);
    cursor: pointer; }
  table.radio label {
    width: 100%;
    height: 15px;
    display: inline-block; }

/* Box Left Column */
#column-left .box, #column-right .box {
  margin-bottom: 20px; }
  #column-left .box .box-heading, #column-right .box .box-heading {
    font-size: 15px; }

#column-left .product-box-slider .box-heading, #column-right .product-box-slider .box-heading {
  font-size: 15px; }

#column-left .box .box-content, #column-right .box .box-content {
  width: 100%; }
  #column-left .box .box-content ul li a, #column-right .box .box-content ul li a {
    font-size: 13px;
    text-transform: uppercase; }
  #column-left .box .box-content input text, #column-right .box .box-content input text {
    width: 100%; }
  #column-left .box .box-content table, #column-right .box .box-content table {
    width: 100%; }
  #column-left .box .box-content .button, #column-right .box .box-content .button {
    width: 45%;
    margin-bottom: 0; }
  #column-left .box .box-content .buttons, #column-right .box .box-content .buttons {
    margin-bottom: 0; }

.leftbar {
  width: 220px; }

#column-left {
  padding-right: 25px; }
  #column-left .box {
    border: none;
    box-shadow: 0px 2px 10px 0px rgba(50, 50, 50, 0.5); }
  #column-left .data {
    height: 2.0rem;
    font-weight: bold;
    background: #F8F8F8;
    color: #E42D9F;
    padding: 0.5rem 1.5rem;
    overflow: hidden;
    text-align: right;
    margin: 3px 0 3px 0; }
  #column-left table {
    margin-bottom: 0; }

.page-header {
  height: 45px;
  font-size: 19px;
  font-weight: BOLD;
  color: #E42D9F;
  margin-bottom: 0;
  overflow: hidden;
  position: relative;
  padding: 7px 10px;
  border-bottom: 1px solid #F6F6F6; }

.form-header {
  height: 45px;
  font-size: 19px;
  font-weight: BOLD;
  color: #464646;
  margin-bottom: 0;
  overflow: hidden;
  position: relative;
  padding: 7px 10px; }

.form-info {
  width: 100%;
  padding: 15px 20px;
  margin-bottom: 15px;
  font-size: 14px;
  font-weight: bold;
  color: #464646; }

ul.breadcrumbs {
  padding: 7px 20px;
  margin-bottom: 15;
  height: 35px;
  border-bottom: 1px solid #F6F6F6; }

span.sale-icon {
  color: #FFFFFF;
  font-size: 12px;
  padding: 10px;
  position: absolute;
  top: 10px;
  left: 10px;
  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.05);
  text-transform: uppercase;
  z-index: 5; }

.product {
  padding: 10px 5px !important; }

.product-box {
  padding: 10px 10px 8px 10px;
  border: 1px solid #EAEAEA; }

.product-box:hover {
  background-color: #FFFFFF;
  border: 1px solid #E42D9F; }
  .product-box:hover .flybar {
    opacity: 1; }
  .product-box:hover .wishlist, .product-box:hover .compare {
    border-radius: 0px;
    opacity: 1; }

.product-box .image {
  min-height: 225px;
  max-height: 225px;
  position: relative;
  overflow: hidden; }

.product-box .name {
  margin: 10px 0 0;
  height: 35px; }
  .product-box .name a {
    font-size: 13px;
    line-height: 14px;
    color: #E42D9F; }

.product-box .description {
  display: none; }

.product-box .price {
  margin: 8px 0 10px;
  height: 30px; }

.product-box .price-old {
  font-size: 12px;
  text-decoration: line-through;
  display: none; }

.product-box .flybar {
  position: absolute;
  width: 100%;
  height: 36px;
  text-align: center;
  transition: all 0.1s ease-in 0s;
  z-index: 5;
  opacity: 0;
  bottom: 6px; }

.product-box .wishlist:hover, .product-box .compare:hover {
  background-color: white !important; }

.product-box .wishlist {
  right: 39px;
  background-color: rgba(235, 235, 235, 0.85) !important; }

.product-box .wishlist, .product-box .compare {
  position: absolute;
  width: 32px;
  height: 32px;
  text-indent: -9999px;
  z-index: 5;
  opacity: 0; }

.product-box .rating {
  position: relative;
  transition: all 0.3s ease-in 0s;
  margin-top: 5px;
  display: none; }

.product-box .brand {
  margin: -2px 0 0;
  display: none; }
  .product-box .brand span, .product-box .brand a {
    font-size: 11px;
    font-weight: normal; }

.product-box .description {
  line-height: 15px;
  padding: 10px 0;
  overflow: hidden;
  display: none; }

.product-box select {
  border: 1px solid rgba(0, 0, 0, 0.07);
  padding-left: 20px;
  font-size: 12px;
  height: 22px;
  width: 100%;
  margin-bottom: 0; }

.product-box .cart {
  padding: 0; }

.product-box .decbtn, .product-box .incbtn {
  background-color: rgba(0, 0, 0, 0.1);
  color: rgba(0, 0, 0, 0.3);
  border-radius: 0;
  box-shadow: none;
  width: 15%;
  padding: 4px 0;
  transition: all 0.15s linear 0s; }

.product-box .decbtn {
  background-image: url("../img/quantity-minus.png");
  margin-left: 0; }

.product-box .incbtn {
  background-image: url("../img/quantity-plus.png"); }

.product-box input {
  display: inline;
  margin: 5px 0;
  height: 35px;
  margin-left: 2px; }

.product-box input.quantity {
  background: rgba(252, 252, 252, 0.95);
  border: 1px solid rgba(0, 0, 0, 0.07);
  padding-left: 20px;
  width: 30%;
  font-size: 12px; }

.product-box .button-exclusive {
  width: 35%; }

.product-box a.wishlist-tip, .product-box a.compare-tip {
  background-color: #464646;
  color: #FFFFFF;
  position: absolute;
  top: -30px;
  right: -100px;
  width: auto;
  height: auto;
  padding: 3px 10px;
  text-indent: 0;
  transition: all 0.1s ease-in 0s;
  z-index: 5;
  opacity: 0; }

.product-box .wishlist:hover + a.wishlist-tip {
  right: 0;
  opacity: 0.9; }

.product-box .compare:hover + a.compare-tip {
  right: 0;
  opacity: 0.9; }

.product-box .rating {
  position: relative;
  transition: all 0.3s ease-in 0s;
  margin-top: 5px; }

.product-box span.sale-icon {
  position: absolute;
  z-index: 5;
  top: 0;
  left: 0; }

.price-tax {
  font-size: 12px; }

.price-new {
  font-size: 16px;
  line-height: 20px; }

.price-new2 {
  line-height: 20px;
  font-weight: bold;
  font-size: 12px; }

.product-filter {
  padding: 2px 10px;
  margin-bottom: 15px;
  overflow: auto; }

.product-filter select {
  height: 30px;
  font-size: 12px;
  margin-bottom: 5px; }

.product-filter label {
  font-size: 12px; }

/* Cart */
.cart-info table {
  width: 100%;
  margin-bottom: 15px;
  border-collapse: collapse; }

.cart-info td {
  padding: 8px 15px; }

.cart-info table thead th {
  line-height: 25px;
  color: #E42D9F; }

.cart-info thead th {
  font-weight: bold;
  text-transform: uppercase; }

.cart-info thead .name, .cart-info thead .brand, .cart-info thead .unit, .cart-info thead .quantity {
  text-align: left; }

.cart-info thead .price, .cart-info thead .total {
  text-align: right; }

.cart-info tbody td {
  vertical-align: top; }

.cart-info tbody .name, .cart-info tbody .brand, .cart-info tbody .unit, .cart-info tbody .quantity {
  text-align: left; }

.cart-info tbody .name a {
  font-size: 12px;
  text-transform: uppercase; }

.cart-info tbody .price, .cart-info tbody .total {
  text-align: right;
  font-weight: normal;
  font-size: 13px; }

.cart-info .quantity {
  padding-right: 0; }

.cart-info .price {
  padding-left: 0; }

.cart-info .quantity input {
  display: inline;
  font-size: 12px;
  height: 30px;
  margin: 0; }

.cart-info tbody span.stock {
  color: #F00;
  font-weight: bold; }

.cart-total {
  overflow: auto;
  margin-bottom: 15px; }
  .cart-total table {
    float: right;
    padding: 15px 0;
    width: 100%;
    border-radius: 0; }
  .cart-total tr {
    line-height: 30px;
    border: 1px solid #EAEAEA; }
  .cart-total tr:nth-child(2n) {
    background: none; }
  .cart-total td {
    padding: 3px;
    text-align: right; }
    .cart-total td.left {
      float: none;
      width: 90%; }
  .cart-total .total-l {
    text-transform: uppercase;
    font-size: 12px; }
  .cart-total .total-r {
    font-size: 13px;
    padding-right: 15px; }
  .cart-total select {
    max-width: 200px;
    font-size: 12px;
    height: 30px;
    margin: 5px; }

#product-top .product-top-1 {
  padding: 0 0 5px; }

#product-top .prev-next {
  text-align: right; }

#product-top .product-title {
  font-size: 26px;
  line-height: 26px;
  font-weight: bold; }

#product-top .product-description .product-description-l {
  float: left;
  padding: 0 8px 2px 0; }
  #product-top .product-description .product-description-l:first-child:before {
    content: " "; }
  #product-top .product-description .product-description-l:before {
    content: "-"; }

.product-description-l {
  font-size: 11px;
  font-weight: normal; }
  .product-description-l span, .product-description-l a {
    font-size: 11px;
    font-weight: normal; }

#product-top .product-description .product-description-l span {
  padding-left: 8px; }

#product-top .product-description .product-description-l:first-child span, #product-top .product-description .product-description-l span.stock {
  padding-left: 0; }

.product-description-b .product-description-l {
  clear: both; }

.prev-next {
  padding-top: 5px; }
  .prev-next a {
    width: 28px;
    height: 28px;
    border-radius: 0px;
    margin: -20px 0 0;
    display: block;
    background-image: url(../image/nav_arrows_medium.png);
    position: absolute;
    top: 50%;
    z-index: 1;
    cursor: pointer;
    text-indent: -9999px;
    opacity: 1;
    -webkit-transition: all .3s ease; }
    .prev-next a.product-next {
      background-position: 100% 100%;
      top: 30px;
      right: 10px; }
      .prev-next a.product-next:hover {
        background-position: 100% 0; }
    .prev-next a.product-prev {
      background-position: 0 100%;
      top: 30px;
      right: 39px; }
      .prev-next a.product-prev:hover {
        background-position: 0 0; }
    .prev-next a.product-prev-tip, .prev-next a.product-next-tip {
      background-color: #464646;
      background-image: none;
      color: #FFFFFF;
      position: absolute;
      top: -36px;
      right: -100px;
      width: auto;
      height: auto;
      margin: 0;
      padding: 3px 10px;
      border-radius: 0px;
      text-indent: 0;
      text-transform: uppercase;
      transition: all 0.3s ease-in 0s;
      z-index: 5;
      opacity: 0; }
  .prev-next .product-next:hover + a.product-next-tip, .prev-next .product-prev:hover + a.product-prev-tip {
    right: 10px;
    opacity: 1; }

.product-info {
  overflow: auto;
  margin-bottom: 30px !important; }
  .product-info .image {
    background: #FFFFFF;
    float: left;
    margin-bottom: 15px;
    padding: 10px;
    position: relative;
    width: 100%;
    height: 100%;
    min-height: 450px;
    min-height: 450px; }
    .product-info .image img {
      width: 99.99999%; }
    .product-info .image .zoom-b {
      background-color: white;
      position: absolute;
      right: 10px;
      bottom: 10px;
      padding: 0 10px;
      height: 30px;
      line-height: 30px;
      z-index: 5; }
      .product-info .image .zoom-b a {
        background: url("../image/button-search-small.png") no-repeat scroll;
        color: #A3A3A3;
        font-size: 10px;
        text-transform: uppercase;
        padding-left: 18px; }
  .product-info .image-additional {
    margin-left: -5px;
    margin-right: -5px;
    clear: both;
    overflow: hidden; }
  .product-info .image-additional-left {
    margin-left: -10px;
    margin-right: -10px;
    clear: both;
    overflow: hidden; }
  .product-info .image-additional .ia1 {
    width: 16.66667%; }
  .product-info .image-additional .ia2, .product-info .image-additional .ia5 {
    width: 25%; }
  .product-info .image-additional .ia3 {
    width: 14.28571%; }
  .product-info .image-additional .ia4 {
    width: 8.33333%; }
  .product-info .image-additional .ia6 {
    width: 33.33333%; }
  .product-info .image-additional .ia7 {
    width: 20%; }
  .product-info .image-additional img {
    background: #FFFFFF;
    padding: 5px; }
  .product-info .image-additional-left img {
    background: #FFFFFF;
    padding: 5px; }
  .product-info .image-additional a {
    float: left;
    display: block;
    padding: 0 5px;
    margin-bottom: 10px; }
  .product-info .image-additional-left a {
    float: none;
    display: block;
    margin-left: 10px;
    margin-bottom: 5px; }

#colorbox, #cboxOverlay, #cboxWrapper {
  overflow: visible !important; }

.product-info .price {
  overflow: auto;
  padding: 20px 0;
  font-size: 28px; }

.product-info .price-new {
  font-size: 28px; }

.product-info .price-old {
  font-size: 18px;
  text-decoration: line-through; }

.product-info .saved {
  padding-top: 10px; }

.product-info .you-save {
  font-size: 14px;
  text-transform: uppercase; }

.product-info .save-percent {
  font-size: 17px; }

.product-info .tax {
  padding-top: 5px; }

.product-info .price-tax {
  font-size: 13px;
  font-weight: normal;
  text-transform: uppercase; }

.product-info .price .reward {
  font-size: 13px;
  font-weight: normal; }
  .product-info .price .reward small {
    font-size: 13px;
    font-weight: normal; }

.product-info .price .discount {
  font-size: 13px;
  font-weight: normal; }

.product-info span.stock {
  font-weight: bold; }

.product-info .options {
  padding: 20px 0; }
  .product-info .options h5 {
    float: none;
    clear: both;
    margin: 0; }
  .product-info .options input, .product-info .options textarea, .product-info .options select {
    margin-bottom: 15px; }
  .product-info .options textarea, .product-info .options select {
    width: 100%; }

.product-info .option-image {
  margin-top: 3px;
  margin-bottom: 10px; }
  .product-info .option-image label {
    display: block;
    width: 100%;
    height: 100%; }
  .product-info .option-image img {
    margin-right: 5px;
    cursor: pointer; }

.product-info .cart {
  overflow: auto;
  padding: 25px 0; }

.product-info .add-to-cart {
  float: left;
  width: 100%; }
  .product-info .add-to-cart input {
    display: inline;
    margin: 5px 0; }
    .product-info .add-to-cart input.i-d-quantity {
      background: rgba(252, 252, 252, 0.95);
      border: 1px solid rgba(0, 0, 0, 0.07);
      height: 36px;
      padding-left: 10px; }

.product-info .cart div {
  float: left;
  vertical-align: middle; }

.product-info .cart .dec, .product-info .cart .inc {
  background-color: rgba(0, 0, 0, 0.1);
  color: rgba(0, 0, 0, 0.3);
  border-radius: 0;
  box-shadow: none;
  width: 30px;
  height: 36px;
  padding: 4px 0;
  font-size: 14px;
  line-height: 14px;
  transition: all 0.15s linear 0s; }

.product-info .cart .add-to-cart div {
  margin-right: 1px;
  margin-left: 1px;
  display: inline; }

.product-info .cart .dec {
  background-image: url("../image/quantity-minus.png"); }

.product-info .cart .inc {
  background-image: url("../image/quantity-plus.png"); }

.product-info .cart #qty-text {
  padding-top: 17px;
  padding-right: 10px; }

.product-info .cart #qty, .product-info .cart #qty-dec, .product-info .cart #qty-inc {
  padding-top: 3px; }

.product-info .cart .links {
  display: inline-block;
  vertical-align: middle; }

.product-info .cart .minimum {
  padding-top: 5px;
  font-size: 11px; }

.product-info .wishlist-compare-friend {
  margin-top: 15px;
  width: 100%; }

.prod-wishlist, .prod-compare, .prod-friend {
  float: left;
  margin-right: 11px;
  padding: 3px 0; }

.prod-wishlist a, .prod-compare a, .prod-friend a {
  font-size: 10px;
  font-weight: normal;
  text-transform: uppercase; }

span.wishlist, span.compare, span.friend {
  height: 15px;
  display: block;
  float: left;
  margin-top: 2px;
  padding: 0 15px 0 7px; }

.product-share {
  margin-top: 12px;
  padding: 15px 0;
  width: 100%; }

.product-info .review {
  padding: 20px 0; }
  .product-info .review > div {
    color: rgba(0, 0, 0, 0.2);
    line-height: 16px; }
    .product-info .review > div a {
      font-size: 11px;
      font-weight: normal;
      text-transform: uppercase; }
  .product-info .review .review-stars {
    float: left;
    margin: 0 15px 0 0;
    line-height: normal; }
  .product-info .review .share {
    overflow: auto;
    line-height: normal; }
    .product-info .review .share a {
      text-decoration: none; }

.review-list {
  background-color: #FFFFFF;
  padding: 10px;
  overflow: auto;
  margin-bottom: 20px; }
  .review-list .reviews-left {
    margin-top: 10px;
    padding: 70px 10px 10px !important;
    color: #464646;
    text-align: center;
    background: url("../image/mw_1.png") no-repeat scroll 0 0 #FFFFFF;
    background-position: center top; }
    .review-list .reviews-left span {
      color: #B6B6B6;
      font-size: 11px;
      display: block;
      margin-top: 5px; }
  .review-list .reviews-right {
    margin-top: 10px;
    margin-bottom: 10px;
    padding: 20px 40px;
    border-left: 1px solid #F3F3F3;
    color: #464646;
    font-size: 13px;
    min-height: 130px; }
  .review-list .review-arrow {
    position: absolute;
    margin-top: -18px;
    margin-left: -66px;
    width: 26px;
    height: 55px;
    background: url("../image/review-arrow.png") no-repeat; }
  .review-list .author {
    float: left;
    margin-bottom: 20px; }
  .review-list .rating {
    float: right;
    margin-bottom: 20px; }
  .review-list .text {
    clear: both; }

.contact-info {
  overflow: auto; }
  .contact-info .left {
    float: left;
    width: 100% !important;
    margin-bottom: 20px; }
  .contact-info .right {
    float: left;
    width: 100% !important; }
  .contact-info span.mm {
    display: block;
    clear: none;
    padding-left: 50px;
    font-size: 14px;
    color: #464646; }
  .contact-info .mc {
    clear: left;
    margin-bottom: 10px;
    min-height: 36px; }
  .contact-info span.mm_icon {
    background-color: #793E97;
    display: block;
    float: left;
    position: relative;
    width: 38px;
    height: 38px;
    border-radius: 38px;
    transition: all 0.2s ease-in 0s; }

.contact-custom {
  font-size: 12px;
  color: #464646; }

.contact-form input {
  width: 99%; }

.contact-form img {
  margin: 10px 0 5px; }

.contact-form select {
  height: auto; }

.login-form {
  margin-top: 25px;
  margin-left: auto;
  margin-right: auto; }

.pagination {
  padding-top: 12px;
  display: inline-block;
  width: 100%;
  margin-top: 20px;
  margin-bottom: 20px;
  font-weight: bold; }

.results {
  float: right;
  padding-top: 3px; }

.pagination a.paging_link {
  width: 32px;
  height: 32px;
  line-height: 32px;
  text-align: center;
  background-color: #793E97;
  color: #FFFFFF; }
  .pagination a.paging_link:hover {
    background-color: #92B631; }

.paging_current_page {
  float: left;
  width: 32px;
  height: 32px;
  line-height: 32px;
  text-align: center;
  margin-left: 8px;
  background-color: #92B631;
  color: #FFFFFF; }

.text-box {
  margin-bottom: 20px;
  padding: 1.2rem; }
  .text-box .text-box-content {
    padding: 1.2rem;
    width: 100%;
    border: 1px solid #EAEAEA; }
  .text-box .highlight {
    font-size: 15px;
    font-weight: bold; }

.content-box {
  margin-bottom: 20px;
  padding: 1.2rem; }
  .content-box .content-box-content {
    width: 100%;
    border: 1px solid #EAEAEA;
    padding: 1.2rem; }
    .content-box .content-box-content table {
      width: 100%; }

.data-box {
  margin-bottom: 20px;
  padding: 1.2rem; }
  .data-box .textarea {
    margin-top: 20px; }

.data-box .data-box-content {
  width: 100%;
  border: 1px solid #EAEAEA;
  padding: 1.2rem; }
  .data-box .data-box-content ul li a {
    font-size: 13px;
    text-transform: uppercase; }
  .data-box .data-box-content input text {
    width: 100%; }
  .data-box .data-box-content table {
    width: 100%; }
  .data-box .data-box-content .button {
    width: 45%;
    margin-bottom: 0; }
  .data-box .data-box-content .buttons {
    margin-bottom: 0; }

.text-box .text-box-heading, .data-box .data-box-heading, .content-box .content-box-heading, .content-header {
  background: #EAEAEA;
  height: 35px;
  font-size: 15px;
  font-weight: bold;
  color: #E42D9F;
  padding: 0.5rem 1.2rem;
  overflow: hidden;
  position: relative;
  width: 50%; }

/* New Style End */
#content .admin-content {
  padding: 20px;
  overflow: auto;
  margin-bottom: 20px;
  border: 1px solid #EAEAEA; }
  #content .admin-content .left {
    float: left;
    width: 49%; }
  #content .admin-content .right {
    float: right;
    width: 49%; }
  #content .admin-content input[type="text"], #content .admin-content input[type="password"] {
    width: 100%; }
  #content .admin-content ul {
    margin-bottom: 0px; }
    #content .admin-content ul li {
      list-style: none;
      line-height: 26px; }

#content .admin-box {
  overflow: auto;
  margin-bottom: 20px; }
  #content .admin-box .left {
    float: left;
    width: 49%; }
  #content .admin-box .right {
    float: right;
    width: 49%; }
  #content .admin-box input[type="text"], #content .admin-box input[type="password"] {
    width: 100%; }
  #content .admin-box ul {
    margin-bottom: 0px; }
    #content .admin-box ul li {
      list-style: none;
      line-height: 26px; }

.admin-list table {
  width: 100%;
  margin-bottom: 15px;
  border-collapse: collapse; }

.admin-list td {
  padding: 8px 15px; }

.admin-list table thead th {
  line-height: 25px;
  color: #E42D9F; }

.admin-list thead th {
  font-weight: bold;
  text-transform: uppercase;
  text-align: center; }

.admin-list tbody td {
  vertical-align: top; }

.admin-list tbody .text {
  text-align: left; }

.admin-list tbody .id a {
  font-size: 13px;
  color: #793E97;
  font-weight: bold; }
  .admin-list tbody .id a:hover {
    color: #E42D9F; }

.admin-list tbody .name a {
  font-size: 13px;
  color: #793E97;
  font-weight: bold; }
  .admin-list tbody .name a:hover {
    color: #E42D9F; }

.admin-list tbody .name {
  font-size: 13px;
  color: #793E97;
  display: block;
  font-weight: bold; }

.admin-list tbody .numeric {
  text-align: right;
  font-weight: normal;
  font-size: 13px; }

.admin-list .number {
  padding-right: 0; }

.admin-list .numeric {
  padding-left: 0; }

.admin-list input {
  display: inline;
  font-size: 12px;
  height: 30px;
  margin: 0; }

.admin-list .button-exclusive {
  padding: 6px 8px; }

.user-note {
  width: 100%;
  overflow: auto;
  position: relative;
  padding: 7px 10px;
  margin-bottom: 15px;
  font-size: 14px;
  font-weight: bold;
  color: #E42D9F;
  border-bottom: 1px solid #F6F6F6; }

.admin-form {
  padding: 20px;
  background-color: white; }
  .admin-form .form-fg {
    margin-bottom: 15px; }
  .admin-form .fg-column2 .left {
    float: left;
    width: 49%; }
  .admin-form .fg-column2 .right {
    float: right;
    width: 49%; }
  .admin-form .fg-field {
    padding-left: 0;
    float: left;
    width: 59%;
    position: relative; }
  .admin-form .fg-field-2 {
    padding-left: 0;
    float: left;
    padding-right: 2px;
    width: 29%; }
  .admin-form .fg-field-3 {
    padding-left: 0;
    float: left;
    padding-right: 2px;
    width: 20%; }
  .admin-form .fg-field-4 {
    padding-left: 0;
    float: left;
    padding-right: 2px;
    width: 15%; }
  .admin-form .fg-label {
    float: left;
    width: 29%;
    padding: 0; }
  .admin-form .fg-label-small {
    float: left;
    width: 25%;
    padding: 0; }
  .admin-form .fg-label-large {
    float: left;
    width: 59%;
    padding: 0; }
  .admin-form .fg-label span, .admin-form .fg-label-large span, .admin-form .fg-label-small span {
    color: #E42D9F;
    height: 35px;
    padding: 7px 10px;
    display: block;
    text-align: right;
    font-size: 12px;
    font-weight: bold;
    border: 1px solid #92B631; }
  .admin-form .fg-mini {
    float: left;
    padding: 0;
    height: 35px;
    padding: 7px 5px;
    background: #92B631;
    display: block;
    max-width: 12px; }
  .admin-form .fg-required {
    float: left;
    padding: 0;
    height: 35px;
    padding: 7px 5px;
    background: red;
    display: block;
    max-width: 12px; }
  .admin-form select {
    border: 1px solid rgba(0, 0, 0, 0.07);
    padding-left: 10px;
    font-size: 12px;
    height: 35px;
    width: 100%;
    margin-bottom: 0;
    font-weight: bold; }
  .admin-form input {
    display: inline;
    margin: 5px 0;
    height: 35px;
    margin-left: 0; }
  .admin-form input[type="checkbox"] {
    display: inline;
    margin: 5px 0;
    height: 35px;
    margin-left: 10px;
    border: 1px solid #E42D9F; }

#content .epos-content {
  padding: 20px;
  overflow: auto;
  margin-bottom: 20px; }
  #content .epos-content .left {
    float: left;
    width: 49%; }
  #content .epos-content .right {
    float: right;
    width: 49%; }
  #content .epos-content .product-list {
    float: left;
    width: 59%;
    min-height: 300px; }
  #content .epos-content .trolly {
    float: right;
    width: 39%;
    min-height: 300px;
    padding: 10px 10px 8px 10px; }
  #content .epos-content input[type="text"], #content .epos-content input[type="password"] {
    width: 100%; }
  #content .epos-content ul {
    margin-bottom: 0px; }
    #content .epos-content ul li {
      list-style: none;
      line-height: 26px; }
  #content .epos-content input {
    display: inline;
    margin: 5px 0;
    height: 35px;
    font-size: 12px;
    font-weight: bold; }

.epos-select {
  border: 1px solid rgba(0, 0, 0, 0.07);
  padding-left: 10px;
  font-size: 13px;
  height: 25px;
  width: 100%;
  margin-bottom: 0;
  font-weight: bold; }

.epos-label {
  color: white;
  height: 35px;
  padding: 7px 4px;
  background: #92B631;
  display: block;
  text-align: center;
  font-size: 12px;
  font-weight: bold; }

.epos-product-v {
  padding: 5px 5px !important; }

.epos-product-box-v {
  padding: 10px 10px 8px 10px;
  border: 1px solid #EAEAEA; }

.epos-product-box-v:hover {
  background-color: #FFFFFF;
  border: 1px solid #E42D9F; }

.epos-product-box-v .epos-product-image {
  min-height: 135px;
  max-height: 135px;
  position: relative;
  overflow: hidden; }

.epos-product-box-v .epos-product-name {
  margin: 10px 0 0;
  height: 32px; }
  .epos-product-box-v .epos-product-name a {
    font-size: 12px;
    line-height: 12px;
    color: #793E97;
    font-weight: bold; }

.epos-product-box-v .epos-price {
  margin: 4px 0; }

.epos-product-box-v .epos-price-new {
  height: 30px;
  font-size: 10px;
  line-height: 12px; }

.epos-product-box-v .brand {
  margin: -2px 0 0;
  display: none; }
  .epos-product-box-v .brand span, .epos-product-box-v .brand a {
    font-size: 11px;
    font-weight: normal; }

.epos-product-box-v .description {
  display: none; }

.epos-product-box-v .description {
  line-height: 15px;
  padding: 10px 0;
  overflow: hidden;
  display: none; }

.epos-product-box-v select {
  border: 1px solid rgba(0, 0, 0, 0.07);
  padding-left: 10px;
  font-size: 12px;
  height: 15px;
  width: 70% !important;
  margin-bottom: 0;
  font-weight: bold; }

.epos-product-box-v .epbox-fg {
  padding: 0; }

.epos-product-box-v .epbox-label {
  color: white;
  margin: 5px 0;
  height: 35px;
  padding: 7px 4px;
  background: #EAEAEA;
  display: block;
  text-align: center;
  font-size: 12px;
  font-weight: bold; }

.epos-product-box-v input {
  display: inline;
  margin: 5px 0;
  height: 35px;
  margin-left: 2px; }

.epos-product-box-v input.quantity {
  background: rgba(252, 252, 252, 0.95);
  border: 1px solid rgba(0, 0, 0, 0.07);
  padding-left: 20px;
  width: 43% !important;
  font-size: 12px;
  font-weight: bold; }

.epos-product-box-v input.vFinalPrice, .epos-product-box-v input.finalPrice {
  background: rgba(252, 252, 252, 0.95);
  border: 1px solid rgba(0, 0, 0, 0.07);
  padding-left: 5px;
  width: 28% !important;
  font-size: 12px;
  font-weight: bold; }

.epos-product-box-v .button-exclusive {
  width: 35%;
  height: 35px; }

.epos-product-h {
  padding: 5px 5px !important; }
  .epos-product-h table tbody td {
    padding: 0px 8px 0px 8px; }
  .epos-product-h .lbltd {
    padding-right: 0 !important; }
  .epos-product-h .labeld-input-td {
    padding-left: 0 !important; }

.epos-product-box-h .pbh-label {
  max-width: 60px;
  padding: 0; }
  .epos-product-box-h .pbh-label span {
    color: white;
    height: 35px;
    padding: 7px 4px;
    background: #9db55a;
    display: block;
    text-align: center;
    font-size: 12px;
    font-weight: bold; }

.epos-product-box-h .product-name {
  margin: 10px 0 0;
  height: 32px; }
  .epos-product-box-h .product-name a {
    font-size: 13px;
    line-height: 12px;
    color: #793E97;
    font-weight: bold; }

.epos-product-box-h input {
  display: inline;
  margin: 5px 0;
  height: 35px;
  font-size: 12px;
  font-weight: bold; }

.epos-product-box-h select {
  border: 1px solid rgba(0, 0, 0, 0.07);
  padding-left: 10px;
  font-size: 12px;
  height: 15px;
  width: 100% !important;
  margin-bottom: 0;
  font-weight: bold; }

.epos-product {
  padding: 5px 5px !important; }

.epos-product-box {
  padding: 10px 10px 8px 10px;
  border: 1px solid #EAEAEA; }

.epos-product-box:hover {
  background-color: #FFFFFF;
  border: 1px solid #E42D9F; }

.order-header {
  margin: 5px 0 0;
  height: 15px;
  font-size: 12px;
  line-height: 15px;
  font-weight: bold; }

.order-detail {
  margin: 5px 0 0;
  height: 15px;
  font-size: 12px;
  line-height: 15px; }

.epos-product-box .image {
  min-height: 85px;
  max-height: 85px;
  float: left;
  overflow: hidden; }

.epos-product-box .epos-product-name {
  margin: 10px 0 0;
  height: 30px; }
  .epos-product-box .epos-product-name a {
    font-size: 14px;
    line-height: 14px;
    color: #793E97;
    font-weight: bold; }

.epos-product-box .epos-price-new {
  margin: 10px 0 0;
  height: 30px;
  font-size: 12px;
  line-height: 20px;
  font-weight: bold; }

.epos-product-box .fg-field {
  padding-left: 0; }

.epos-product-box .fg-label {
  max-width: 60px;
  padding: 0; }
  .epos-product-box .fg-label span {
    color: white;
    height: 30px;
    padding: 7px 4px;
    background: #92B631;
    display: block;
    text-align: center;
    font-size: 12px;
    font-weight: bold; }

.epos-product-box .fg-input {
  margin-left: 0;
  height: 30px;
  display: inline;
  font-size: 12px;
  font-weight: bold; }

.epos-product-box .description {
  display: none; }

.epos-product-box .brand {
  margin: -2px 0 0;
  display: none; }
  .epos-product-box .brand span, .epos-product-box .brand a {
    font-size: 11px;
    font-weight: normal; }

.epos-product-box .description {
  line-height: 15px;
  padding: 10px 0;
  overflow: hidden;
  display: none; }

.epos-product-box .g-label {
  widht: 1%;
  display: table-cell; }

.epos-product-box select {
  border: 1px solid rgba(0, 0, 0, 0.07);
  padding-left: 10px;
  font-size: 12px;
  height: 30px;
  width: 100%;
  margin-bottom: 0;
  font-weight: bold; }

.epos-product-box input {
  display: inline;
  margin: 5px 0;
  height: 30px;
  margin-left: 2px; }

.epos-product-box input.quantity {
  background: rgba(252, 252, 252, 0.95);
  border: 1px solid rgba(0, 0, 0, 0.07);
  padding-left: 20px;
  font-weight: bold;
  font-size: 12px; }

.epos-trolly-data {
  height: 2.0rem;
  font-weight: bold;
  background: #F8F8F8;
  color: #E42D9F;
  padding: 0.5rem 1.5rem;
  overflow: hidden;
  text-align: right;
  margin: 3px 0 3px 0; }

.epos-form .form-fg {
  margin-bottom: 15px; }

.epos-form .fg-field {
  padding-left: 0;
  float: left;
  width: 59%;
  padding-right: 2px; }

.epos-form .fg-field-2 {
  padding-left: 0;
  float: left;
  padding-right: 2px;
  width: 29%; }

.epos-form .fg-field-3 {
  padding-left: 0;
  float: left;
  padding-right: 2px;
  width: 20%; }

.epos-form .fg-field-4 {
  padding-left: 0;
  float: left;
  padding-right: 2px;
  width: 15%; }

.epos-form .fg-label {
  float: left;
  width: 29%;
  padding: 0; }

.epos-form .fg-label-large {
  float: left;
  width: 59%;
  padding: 0; }

.epos-form .fg-label span, .epos-form .fg-label-large span {
  color: #E42D9F;
  height: 35px;
  padding: 7px 10px;
  display: block;
  text-align: right;
  font-size: 12px;
  font-weight: bold;
  border: 1px solid #92B631; }

.epos-form .fg-mini {
  float: left;
  padding: 0;
  height: 35px;
  padding: 7px 5px;
  background: #92B631;
  display: block;
  max-width: 12px; }

.epos-form .fg-required {
  float: left;
  padding: 0;
  height: 35px;
  padding: 7px 5px;
  background: red;
  display: block;
  max-width: 12px; }

.epos-form select {
  border: 1px solid rgba(0, 0, 0, 0.07);
  padding-left: 10px;
  font-size: 12px;
  height: 35px;
  width: 100%;
  margin-bottom: 0;
  font-weight: bold; }

.epos-form input {
  display: inline;
  margin: 5px 0;
  height: 35px;
  margin-left: 0; }

.epos-form input[type="checkbox"] {
  display: inline;
  margin: 5px 0;
  height: 35px;
  margin-left: 10px;
  border: 1px solid #E42D9F; }

#invoice-page {
  font-family: verdana, calibri, sans-serif;
  width: 708px;
  max-width: 708px;
  margin-left: 15px;
  margin-top: 0;
  padding-top: 0;
  padding-left: 0;
  color: black; }

#invoice-page .header {
  width: 705px;
  height: 140px;
  margin-left: 1px; }
  #invoice-page .header .header-left {
    width: 200px;
    padding-left: 0;
    float: left; }
  #invoice-page .header .header-middle {
    width: 200px;
    padding-top: 80px;
    float: left;
    text-align: right; }
  #invoice-page .header .header-right {
    width: 305px;
    float: left; }
  #invoice-page .header .logo {
    padding-top: 8px;
    max-width: 112px;
    max-height: 75px; }
  #invoice-page .header .company {
    padding-right: 20px;
    padding-top: 4px;
    float: right;
    text-align: left; }
  #invoice-page .header .company-name {
    padding-top: 6px;
    font-size: 16px;
    text-align: left;
    font-weight: bold; }
  #invoice-page .header .invoice-header {
    font-size: 22px;
    font-weight: bold; }
  #invoice-page .header .company-address {
    padding-top: 1px;
    text-align: left;
    font-size: 11px; }

#invoice-page .top-details {
  width: 705px;
  height: 155px;
  margin-left: 1px; }
  #invoice-page .top-details .td-left {
    width: 400px;
    float: left; }
  #invoice-page .top-details .td-right {
    width: 305px;
    padding-left: 16px;
    float: left; }
  #invoice-page .top-details .customer-details {
    min-height: 155px;
    padding: 12px 22px;
    max-width: 350px;
    border: 1px solid black;
    border-radius: 8px; }
  #invoice-page .top-details .invoice-details {
    min-height: 155px;
    max-width: 250px;
    padding: 12px 22px;
    border: 1px solid black;
    border-radius: 8px; }
  #invoice-page .top-details .td-group {
    height: 25px; }
  #invoice-page .top-details .td-label {
    width: 100px;
    float: left;
    text-align: left;
    font-size: 12px; }
  #invoice-page .top-details .td-text {
    float: left;
    text-align: left;
    font-size: 12px; }
  #invoice-page .top-details .client-label {
    text-align: left;
    font-size: 12px;
    font-weight: bold; }
  #invoice-page .top-details .client-text {
    padding-top: 2px;
    text-align: left;
    font-size: 12px; }
    #invoice-page .top-details .client-text span {
      padding-right: 16px; }

#invoice-page .invoice-table {
  width: 705px;
  min-height: 500px;
  margin-left: 1px;
  margin-top: 22px;
  border: 1px solid black;
  border-radius: 8px; }
  #invoice-page .invoice-table .header-row {
    font-size: 12px;
    font-weight: bold;
    padding: 8px 10px;
    clear: both;
    height: 32px;
    border-bottom: 1px solid black; }
  #invoice-page .invoice-table .data-row {
    padding-left: 10px;
    clear: both;
    overflow: hidden;
    vertical-align: middle;
    font-size: 12px; }
    #invoice-page .invoice-table .data-row div {
      height: 23px;
      padding-top: 3px;
      vertical-align: middle; }
  #invoice-page .invoice-table .item-code {
    float: left;
    width: 75px; }
  #invoice-page .invoice-table .description {
    float: left;
    width: 305px; }
  #invoice-page .invoice-table .pack-size {
    float: left;
    width: 80px; }
  #invoice-page .invoice-table .qty {
    float: left;
    width: 35px;
    text-align: right;
    padding-left: 0;
    padding-right: 20px; }
  #invoice-page .invoice-table .it-price {
    float: left;
    width: 75px;
    text-align: right;
    padding-right: 15px; }
  #invoice-page .invoice-table .vat {
    float: left;
    width: 35px;
    text-align: right;
    padding-right: 10px; }
  #invoice-page .invoice-table .it-total {
    float: left;
    width: 75px;
    text-align: right;
    padding-right: 10px; }

#invoice-page .invoice-totals {
  width: 705px;
  margin-left: 1px;
  margin-top: 6px;
  border: 1px solid black;
  border-radius: 8px;
  min-height: 120px;
  font-size: 11px; }
  #invoice-page .invoice-totals .it-left {
    width: 400px;
    float: left; }
  #invoice-page .invoice-totals .it-right {
    width: 300px;
    float: left;
    padding-right: 0;
    margin-right: 3px; }
  #invoice-page .invoice-totals .customer-check {
    padding: 18px 16px 4px 18px; }
  #invoice-page .invoice-totals .final-totals {
    margin-left: 0;
    padding: 18px 6px 4px 6px;
    float: right; }
  #invoice-page .invoice-totals .it-group {
    height: 30px; }
  #invoice-page .invoice-totals .it-label {
    width: 130px;
    float: left;
    text-align: right;
    font-weight: bold; }
  #invoice-page .invoice-totals .it-text {
    width: 120px;
    float: left;
    text-align: right;
    padding-right: 22px; }
  #invoice-page .invoice-totals .itc-label {
    float: left;
    text-align: right; }

#invoice-page .invoice-footer {
  width: 705px;
  margin-left: 1px;
  margin-top: 2px;
  min-height: 20px; }
  #invoice-page .invoice-footer .ifooter {
    max-height: 100px;
    padding: 6px 12px 4px 18px; }
  #invoice-page .invoice-footer .disclaimer {
    text-align: left;
    font-size: 8px; }
  #invoice-page .invoice-footer .page-number {
    padding: 6px 16px 4px 18px;
    text-align: right;
    font-size: 10px;
    font-weight: bold; }
  #invoice-page .invoice-footer .company-details {
    padding: 6px 16px 4px 18px;
    text-align: center;
    font-size: 11px; }
    #invoice-page .invoice-footer .company-details span {
      padding-right: 16px; }

.wrapper {
  max-width: 1170px; }

@media (min-width: 980px) and (max-width: 1280px) {
  .wrapper {
    margin: 0 30px; } }

@media only screen and (max-width: 767px) {
  .wrapper {
    margin: 0;
    padding: 0; }
  #header-sticky-wrapper {
    background: inherit;
    box-shadow: none;
    opacity: 1;
    position: relative !important;
    width: auto;
    height: auto !important;
    z-index: inherit; }
  .is-sticky #header {
    background: inherit;
    box-shadow: none;
    opacity: 1;
    position: relative !important;
    margin: 0 0 30px;
    width: auto;
    z-index: inherit; }
  #header {
    background-image: none !important; }
  .product .image {
    min-height: 150px; }
  .product {
    padding-top: 10px !important;
    padding-bottom: 10px !important; }
  .product-box .incbtn, .product-box .decbtn {
    display: none !important; }
  .product-box input {
    height: 30px; }
  .product-box select {
    height: 30px; }
  .product-box .button-exclusive {
    width: 50%; }
  .product-box input.quantity {
    width: 45%;
    margin-left: 0; }
  .product-list .image {
    width: 50%; }
  .product-list .price {
    padding: 10px 0 5px; }
  .product-list .cart input {
    width: 50%; }
  .row .product-list .small-2 {
    width: 100% !important;
    padding: 10px; }
    .row .product-list .small-2 .three {
      width: 100% !important;
      float: left; }
    .row .product-list .small-2 .five {
      width: 41.6667% !important;
      float: left; }
    .row .product-list .small-2 .six {
      border-right: none;
      display: table-cell !important; }
  .box-category-home > .five-noc:nth-child(5n+1), .box-manufacturers-home > .five-noc:nth-child(5n+1) {
    clear: none; }
  #welcome, #t-header > div {
    text-align: center; }
  #header #logo {
    padding: 5px 0 !important; }
  #header #search {
    float: none;
    margin-left: auto;
    margin-right: auto;
    width: 100%; }
    #header #search input {
      margin: 0;
      width: 100%; }
  #header .button-search {
    right: 10px; }
  #t-header #cart {
    left: auto;
    margin: 15px auto 10px;
    min-width: inherit;
    position: relative;
    right: auto;
    top: auto;
    text-align: center !important;
    min-width: 230px; }
  #header #cart .heading {
    float: none;
    margin-right: inherit; }
    #header #cart .heading h5 {
      margin-top: 0;
      padding: 0;
      text-align: center; }
    #header #cart .heading a div#cart-total {
      border-right: none !important;
      float: none;
      padding: 12px 15px 0;
      font-size: 20px !important;
      text-align: center; }
    #header #cart .heading a div#cart-icon {
      display: none; }
  #header #cart .content {
    min-width: 280px; }
  .top-bar {
    padding: 10px !important; }
  .top-bar ul > li.name a {
    color: #FFFFFF !important;
    border-bottom: none; }
  .top-bar ul > li a {
    line-height: 40px !important;
    border-bottom: 1px solid #F4F5F4;
    background: #FFFFFF !important;
    color: #464646 !important; }
    .top-bar ul > li a:hover {
      color: #FFFFFF !important;
      background: #793E97 !important; }
  .top-bar ul > li:not(.name):hover a {
    color: #FFFFFF; }
  .top-bar ul > li.toggle-topbar a {
    background: none; }
    .top-bar ul > li.toggle-topbar a:hover {
      background: none; }
  .top-bar ul > li:not(.name):hover, .top-bar ul > li:not(.name).active, .top-bar ul > li:not(.name):focus {
    background: none; }
  .top-bar ul.left > li a {
    transition: none; }
  #content .content input[type="text"], #content .content input[type="password"] {
    width: 100%; }
  textarea, select {
    width: 100%; }
  /*  Category Page  */
  .product-list a.wishlist-tip, .product-list a.compare-tip {
    display: none; }
  .product-grid a.wishlist-tip, .product-grid a.compare-tip {
    display: none; }
  .product-compare {
    border-left: none !important;
    padding-left: 0;
    float: left;
    width: 100%;
    margin-top: 0; }
  .product-filter .limit, .product-filter .sort {
    float: left;
    width: 100%;
    text-align: left;
    margin-left: 0;
    margin-top: 0; }
  .pagination .links {
    float: none;
    text-align: center; }
  .pagination .results {
    float: none;
    text-align: center;
    padding-top: 10px; }
  .product-grid .rating img {
    display: none; }
  /*  Product Page  */
  .prev-next a.product-prev-tip, .prev-next a.product-next-tip {
    display: none; }
  .product-info .product-left {
    text-align: center;
    overflow: hidden; }
    .product-info .product-left .image {
      display: inline-block;
      float: none; }
    .product-info .product-left .image-additional {
      text-align: center;
      width: auto; }
      .product-info .product-left .image-additional a {
        display: inline-block;
        float: none; }
  .product-description-b .product-description-l {
    margin-bottom: 15px; }
  .htabs a {
    width: 100%; }
  .review-list .reviews-right {
    border-left: none;
    min-height: 1px; }
  /*  Footer  */
  #footer_p {
    padding: 20px 10px;
    height: 100%; }
    #footer_p span.p_icon {
      margin-bottom: 5px; }
  #footer_d #powered_content {
    text-align: center;
    margin-bottom: 15px; }
  #footer_d #payment_logos {
    text-align: center; }
  /*  Shopping Cart  */
  .cart-info .image, .cart-info .model, .cart-info .price {
    display: none; }
  .cart-module #shipping select {
    width: 100%; }
  .buttons .left, .buttons .right {
    float: none;
    margin-top: 10px;
    text-align: center; }
  /*  Checkout  */
  .checkout-content .left, .checkout-content .right {
    clear: both;
    float: none;
    margin-bottom: 15px;
    width: 100%; }
  .login-content .left, .login-content .right {
    clear: both;
    float: none;
    margin-bottom: 15px;
    width: 100%; }
  .checkout-content .right select {
    width: 100%; }
  .checkout-content .right input {
    margin-top: 15px; }
  .return-reason {
    margin-right: 0px;
    width: 100%; }
  .return-opened {
    margin-top: 20px;
    width: 100%; } }

@media only screen and (min-width: 768px) and (max-width: 940px) {
  .my-account {
    display: none !important; }
  .currency, .language {
    width: 50% !important; }
  .product-filter .limit, .product-filter .sort {
    float: left;
    width: 100%;
    text-align: left;
    margin-left: 0;
    margin-top: 0; }
  .product-grid .rating img {
    display: none; }
  /*  Footer  */
  #footer_p span.p_title {
    padding-top: 0; } }

/* */
/* Global Misc --- */
/*                 */
/* Block Grids --- */
/*                 */
/* Forms --- */
/*           */
/* Extend width of all inputs */
/* Topbar Specific Breakpoint that you can customize */
/* .top-bar ul > li.toggle-topbar a { content: ""; display: block; width: 0; height: 0; border: solid 8px; border-color: white transparent transparent transparent; padding: 0; position: absolute; top: 50%; right: 22.5px; margin-top: -4px; } */
/* .top-bar.expanded ul li.toggle-topbar a { content: ""; display: block; width: 0; height: 0; border: solid 8px; border-color: transparent transparent #ffffff transparent; top: auto; bottom: 50%; margin-bottom: -4px; } */
/*  Body background color and pattern  */
body {
  background-color: #F6F6F6;
  background-image: none;
  background-position: top center;
  background-repeat: repeat;
  background-attachment: scroll; }

/*  Headings color  */
h1, h2, h3, h4, h5, h6, #content .box-heading, body, .cart-info thead td, .checkout-product thead td, table tbody tr td, .wishlist-info thead td {
  color: #464646; }

/*  Body text color  */
.sitemap-info ul li ul li {
  color: #464646; }
  .sitemap-info ul li ul li a {
    color: #464646; }

body, .content, #content select, #content textarea, #content label {
  color: #464646; }

input[type="text"], input[type="password"], input[type="date"], input[type="datetime"], input[type="email"], input[type="number"], input[type="search"], input[type="tel"], input[type="time"], input[type="url"] {
  color: #464646; }

.product-grid .name a, #content .box-product .name a, .product-list .name a, .product-info .wishlist-compare-friend a, .product-bottom-related .name a, .product-box-slider .name a, .product-right-sm-info span.p_title a, .box-category-home .subcat a, .product-compare a, .product-info .review > div a {
  color: #464646; }

.mini-cart-info .name small, .mini-cart-info td {
  color: #464646; }

.mini-cart-total td {
  color: #464646; }

/*  Light text color  */
.heading h5 {
  color: #B6B6B6; }

.product_box_brand span, .product_box_brand a {
  color: #B6B6B6; }

.product-description-l {
  color: #B6B6B6; }
  .product-description-l span, .product-description-l a {
    color: #B6B6B6; }

ul.breadcrumbs li:before {
  color: #B6B6B6; }

.product-info .cart .minimum, .product-info .you-save {
  color: #B6B6B6; }

.product-right-sm-info span.p_subtitle {
  color: #B6B6B6; }

/*  Links color  */
a, .box ul li, .product-info .save-percent, #product-top .product-description .product-description-l span.stock {
  color: #92B631; }

#menu_contacts .mc:hover span.mm_icon {
  background-color: #92B631; }

.product-info .cart .dec:hover, .product-info .cart .inc:hover {
  background-color: #92B631; }

.contact-info .mc:hover span.mm_icon, #footer_a .mc:hover span.mm_icon, .es-nav span:hover {
  background-color: #92B631; }

.product-related .bx-wrapper div.bx-next:hover, .product-related .bx-wrapper div.bx-prev:hover {
  background-color: #92B631; }

#toTopHover, .product-right-sm-info span.p_icon {
  background-color: #92B631; }

#livesearch_search_results li:hover, #livesearch_search_results .highlighted {
  background-color: #92B631; }

#swipebox-action, .top-bar ul > li a:hover {
  background-color: #92B631; }

/*  Links hover color  */
a:hover, .product-info .review > div a:hover {
  color: #793E97; }

.sitemap-info ul li ul li:hover, .sitemap-info ul li ul li a:hover {
  color: #793E97; }

.htabs a:hover, #header #cart:hover .heading a div#cart-total, .product-grid .name a:hover, #content .box-product .name a:hover, .product-list .name a:hover, .product-info .wishlist-compare-friend a:hover, .product-bottom-related .name a:hover, .product-right-sm-info span.p_title a:hover, .box-category-home .subcat a:hover {
  color: #793E97; }

.product-right-sm-info .product-right-sm-info-content:hover span.p_icon, .camera_wrap .camera_pag .camera_pag_ul li:hover > span, .flex-control-paging li a:hover, #swipebox-action:hover {
  background-color: #793E97; }

/*  General icons style  */
.product-list .wishlist, .product-grid .wishlist {
  background: url("catalog/view/theme/oxy/image/oxy-wishlist-1.png") no-repeat scroll center transparent; }

.product-list .compare, .product-grid .compare {
  background: url("catalog/view/theme/oxy/image/oxy-compare-1.png") no-repeat scroll center transparent; }

span.wishlist {
  background: url("catalog/view/theme/oxy/image/oxy-wishlist-1.png") no-repeat scroll left center transparent; }

span.compare {
  background: url("catalog/view/theme/oxy/image/oxy-compare-1.png") no-repeat scroll left center transparent; }

span.friend {
  background: url("catalog/view/theme/oxy/image/oxy-send-1.png") no-repeat scroll left center transparent; }

/****** Added Newly *********/
/************ End of new stuff ***********/
/*  Main Column  */
.wrapper {
  -ms-flex-line-pack: center;
      align-content: center;
  background-color: #FFFFFF;
  background-image: none;
  background-position: top center;
  background-repeat: repeat;
  background-attachment: scroll;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
  -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
  -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2); }

/*  Content Column  */
.product-filter, #content .content, .form-info, .cart-info thead td, .checkout-heading, .checkout-product thead td, table.list thead td {
  background-color: #F6F6F6; }

.compare-info thead td, .compare-info thead tr td:first-child {
  background-color: #F6F6F6; }

.attribute thead td, .attribute thead tr td:first-child {
  background-color: #F6F6F6; }

.manufacturer-heading, .wishlist-info thead td, #header #cart .content, .reveal-modal, .custom_box {
  background-color: #F6F6F6; }

.pagination {
  margin-top: 0;
  padding-top: 0;
  margin-bottom: 0; }

.product-info .price, .product-info .cart {
  border-bottom: 1px solid  #EAEAEA; }

.product-right-sm-logo, .product-right-sm-custom, .product-right-sm-info, .product-right-sm-related, .product-share, .product-right-sm-tags {
  border-top: 1px solid  #EAEAEA; }

#content h1, #content .box-heading {
  border-bottom: 1px solid  #EAEAEA; }

.product-bottom-related h2 {
  border-bottom: 1px solid  #EAEAEA; }

.product-compare {
  border-left: 1px solid  #EAEAEA; }

.product-info .image, .product-info .image-additional img, .product-info .image-additional-left img {
  border: 1px solid #EAEAEA; }

.contact-map, .manufacturer-list, .checkout-heading, .review-list {
  border: 1px solid #EAEAEA; }

.product-info .option-image img {
  border: 1px solid #EAEAEA; }

.product-info .image-additional img:hover, .product-info .image-additional-left img:hover {
  border: 1px solid #92B631; }

.cart-info table, .cart-total table, .checkout-product table, .wishlist-info table, .order-list .order-content, table.list, .attribute, .compare-info {
  border-top: 1px solid #EAEAEA; }

.cart-info thead td, .cart-info tbody td {
  border-bottom: 1px solid #EAEAEA; }

.cart-total table {
  border-bottom: 1px solid #EAEAEA; }

.checkout-product thead td, .checkout-product tbody td, .checkout-product tfoot td {
  border-bottom: 1px solid #EAEAEA; }

.wishlist-info thead td, .wishlist-info tbody td {
  border-bottom: 1px solid #EAEAEA; }

.order-list .order-content, table.list td, .box-category-home .subcat li, .attribute td, .compare-info td, .mini-cart-info td, .mini-cart-total {
  border-bottom: 1px solid #EAEAEA; }

.cart-info table, .checkout-product table, .wishlist-info table, table.list, .attribute, .compare-info {
  border-left: 1px solid #EAEAEA; }

.cart-info table, .checkout-product table {
  border-right: 1px solid #EAEAEA; }

table thead tr th:last-child, table tfoot tr td:last-child {
  border-right: 1px solid #EAEAEA; }

.wishlist-info table, table.list td, .attribute td, .compare-info td {
  border-right: 1px solid #EAEAEA; }

/*  Left Column Heading  */
/*  Left Column Box  */
#column-left .box .box-heading, #column-left .product-box-slider .box-heading {
  max-height: 45px;
  background-color: #92B631;
  background-image: none; }

#column-left .box .box-heading, #column-left .product-box-slider .box-heading {
  color: #FFFFFF; }

#column-left .box .box-heading, #column-left .product-box-slider .box-heading {
  padding: 10px 15px; }

#column-left .box .box-content, #column-left .product-box-slider .box-content {
  background-color: #FFFFFF;
  padding: 20px 15px; }

#column-left .box-product {
  color: #464646; }
  #column-left .box-product a {
    color: #464646; }

#column-left .box .box-content ul li a, #column-left .product-box-slider .name a {
  color: #464646; }

#column-left .box-product a:hover, #column-left .box .box-content ul li a:hover, #column-left .product-box-slider .name a:hover {
  color: #793E97; }

#column-left .box-product > div + div {
  border-top: 1px solid #F6F6F6; }

/*  Right Column Heading  */
/*  Right Column Box  */
#column-right .box .box-heading, #column-right .product-box-slider .box-heading {
  background-color: #92B631;
  background-image: none; }

#column-right .box .box-heading, #column-right .product-box-slider .box-heading {
  color: #FFFFFF; }

#column-right .box .box-heading, #column-right .product-box-slider .box-heading {
  padding: 12px 15px; }

#column-right .box .box-content, #column-right .product-box-slider .box-content {
  background-color: #FFFFFF;
  padding: 20px 15px; }

#column-right .box-product {
  color: #464646; }
  #column-right .box-product a {
    color: #464646; }

#column-right .box .box-content ul li a, #column-right .product-box-slider .name a {
  color: #464646; }

#column-right .box-product a:hover, #column-right .box .box-content ul li a:hover, #column-right .product-box-slider .name a:hover {
  color: #793E97; }

#column-right .box-product > div + div {
  border-top: 1px solid #F6F6F6; }

/*  Category Box Heading  */
.box-category .box-heading-category {
  background-color: #793E97;
  background-image: none;
  color: #FFFFFF;
  border-bottom: 1px solid  #8745A8;
  padding: 12px 15px; }

.box-category .box-content-category {
  background-color: #793E97; }
  .box-category .box-content-category ul > li > a {
    padding: 10px 25px 10px 15px; }
    .box-category .box-content-category ul > li > a:hover {
      padding-left: 18px; }
  .box-category .box-content-category ul > li > ul > li > a {
    padding: 10px 25px 10px 30px; }
    .box-category .box-content-category ul > li > ul > li > a:hover {
      padding-left: 33px; }
  .box-category .box-content-category ul > li + li, .box-category .box-content-category ul > li ul {
    border-top: 1px solid #8745A8; }
  .box-category .box-content-category ul > li > a {
    color: #F4E6FF; }
    .box-category .box-content-category ul > li > a:hover {
      background-color: #8745A8;
      color: #F4E6FF; }

/*  Category Box Content  */
/*  Filter Box Heading  */
.box-filter .box-heading {
  background-color: #464646;
  background-image: none;
  color: #FFFFFF;
  border-bottom: 1px solid  #525252;
  padding: 12px 15px; }

.box-filter .box-content {
  background-color: #464646;
  padding: 20px 15px; }
  .box-filter .box-content span {
    color: #E8E8E8; }

.box-filter label {
  color: #E8E8E8; }
  .box-filter label:hover {
    color: #793E97; }

/*  Filter Box Content  */
/*  Prices */
.price, .total, .product-info .price .discount {
  color: #92B631; }

.price-old, .wishlist-info tbody .price s {
  color: #B6B6B6; }

.price-new, .price-new2, .cart-total .total-r {
  color: #333333; }

.price-tax, .product-info .price .reward {
  color: #B6B6B6; }

/*  Buttons */
a.button, input.button, .ei-title h4 a.button {
  background-color: #793E97;
  color: #FFFFFF; }

a.button:hover, input.button:hover, .ei-title h4 a.button:hover {
  background-color: #92B631;
  color: #FFFFFF; }

a.button-exclusive, input.button-exclusive {
  background-color: #793E97;
  color: #FFFFFF; }

a.button-exclusive:hover, input.button-exclusive:hover {
  background-color: #92B631;
  color: #FFFFFF; }

.product-grid .cart input.button, .product-list .cart input.button, #content .box-product .cart input.button, .product-right-sm-tags div a, .product-box-slider .cart input.button, .product-bottom-related .cart input.button, #header #cart .checkout .mini-cart-button {
  background-color: #793E97;
  color: #FFFFFF; }

.product-grid .cart input.button:hover, .product-list .cart input.button:hover, #content .box-product .cart input.button:hover, .product-right-sm-tags div a:hover, .product-box-slider .cart input.button:hover, .product-bottom-related .cart input.button:hover, #header #cart .checkout .mini-cart-button:hover {
  background-color: #92B631;
  color: #FFFFFF; }

.prev-next a {
  background-color: #EEEEEE; }

.product-bottom-related .flex-direction-nav a, .product-bottom-related .flex-direction-nav .flex-disabled:hover {
  background-color: #EEEEEE; }

.product-right-sm-related .flex-direction-nav a, .product-right-sm-related .flex-direction-nav .flex-disabled:hover {
  background-color: #EEEEEE; }

.product-box-slider .flex-direction-nav a, .product-box-slider .flex-direction-nav .flex-disabled:hover {
  background-color: #EEEEEE; }

.pagination .links a, .flex-direction-nav a, .flex-control-paging li a, .camera_prevThumbs, .camera_nextThumbs, .camera_prev, .camera_next, .camera_commands, .camera_thumbs_cont, .camera_wrap .camera_pag .camera_pag_ul li, .slideshow .nivo-directionNav a {
  background-color: #EEEEEE; }

.prev-next a:hover, .product-right-sm-related .flex-direction-nav a:hover, .product-bottom-related .flex-direction-nav a:hover, .product-box-slider .flex-direction-nav a:hover {
  background-color: #92B631; }

.pagination .links b, .pagination .links a:hover {
  background-color: #92B631; }

.flexslider:hover .flex-next:hover, .flexslider:hover .flex-prev:hover {
  background-color: #92B631; }

.camera_prevThumbs:hover, .camera_nextThumbs:hover, .camera_prev:hover, .camera_next:hover, .camera_commands:hover, .camera_thumbs_cont:hover, .camera_wrap .camera_pag .camera_pag_ul li.cameracurrent > span, .flex-control-paging li a.flex-active, .slideshow .nivo-directionNav a:hover {
  background-color: #92B631; }

a.button, input.button, a.button-exclusive, input.button-exclusive {
  border-radius: 0px; }

/*  Top Area */
#header {
  background-color: #FFFFFF;
  background-image: url("catalog/view/theme/oxy/image/patterns/p226.png");
  background-position: top center;
  background-repeat: repeat;
  background-attachment: scroll; }

.is-sticky #header {
  background-color: #333333;
  background-image: none; }

/*  Top Bar  */
#top-line {
  background-color: #464646;
  color: #CCCCCC; }
  #top-line a {
    color: #92B631; }
    #top-line a:hover {
      color: #793E97; }

.currency, .language, .my-account {
  border-left: 1px solid #545454; }

.currency {
  border-right: 1px solid #545454; }

@media only screen and (max-width: 767px) {
  .currency, .language {
    border-top: 1px solid #545454; } }

.dropdown_l ul {
  background-color: #FFFFFF; }

.dropdown_l li a {
  color: #464646 !important; }
  .dropdown_l li a:hover {
    background-color: #793E97;
    color: #FFFFFF !important; }

#header #search input {
  background-color: #793E97;
  border-color: #525252;
  color: #FFFFFF; }
  #header #search input:focus {
    border-color: #5E5E5E; }

#header #cart h5 {
  color: #793E97; }

#header #cart .heading a div#cart-total, #header #cart.active .heading a div#cart-total {
  color: #FFFFFF;
  border-right: 1px solid #696969; }

#header #cart .heading a div#cart-total:hover {
  color: #92B631; }

#header #cart .heading a div#cart-icon {
  background: url("assets/img/icon_cart.png") no-repeat scroll 65% 50%; }

#header #logo {
  padding: 5px 15px 5px 20px; }

#header #search {
  margin-top: 22px; }

/*  Main Menu  */
/*  Main Menu Bar  */
#menu {
  background-color: #464646;
  background-image: none;
  background-repeat: repeat; }
  #menu #homepage {
    background-color: #92B631; }
    #menu #homepage:hover {
      background-color: #793E97; }
    #menu #homepage a, #menu #homepage:hover a {
      color: #FFFFFF; }

/*  Home Page Link  */
/*  Categories Section  */
#menu_oc > ul > li:hover, #menu_v > ul > li:hover, #menu_h > ul > li:hover {
  background-color: #793E97; }

#menu_oc > ul > li > a, #menu_v > ul > li > a, #menu_h > ul > li > a, #menu_oc > ul > li:hover > a, #menu_v > ul > li:hover > a, #menu_h > ul > li:hover > a {
  color: #FFFFFF; }

/*  Brands Section  */
#menu_brands > ul > li:hover {
  background-color: #793E97; }
  #menu_brands > ul > li:hover > a {
    color: #FFFFFF; }

#menu_brands > ul > li > a {
  color: #FFFFFF; }

/*  Custom Links Section  */
.menu_links:hover {
  background-color: #793E97; }

.menu_links a, .menu_links:hover a {
  color: #FFFFFF; }

/*  Information Section  */
#menu_informations > ul > li:hover, #menu_custom_menu > ul > li:hover, .menu_custom_block > ul > li:hover, #menu_contacts > ul > li:hover {
  background-color: #793E97; }
  #menu_informations > ul > li:hover > a, #menu_custom_menu > ul > li:hover > a, .menu_custom_block > ul > li:hover > a, #menu_contacts > ul > li:hover > a {
    color: #FFFFFF; }

#menu_informations > ul > li > a, #menu_custom_menu > ul > li > a, .menu_custom_block > ul > li > a, #menu_contacts > ul > li > a {
  color: #FFFFFF; }

/*  Custom Menu Section  */
/*  Custom Blocks Section  */
/*  Contact Section  */
/*  Sub-Menu  */
#menu_oc > ul > li > div {
  background-color: #FFFFFF; }
  #menu_oc > ul > li > div > ul > li > div {
    background-color: #FFFFFF; }

#menu_v > ul > li > div {
  background-color: #FFFFFF; }
  #menu_v > ul > li > div > ul > li > div {
    background-color: #FFFFFF; }
    #menu_v > ul > li > div > ul > li > div > ul > li > div {
      background-color: #FFFFFF; }

#menu_h > ul > li > div, #menu_brands > ul > li > div, #menu_custom_menu > ul > li > div, .menu_custom_block > ul > li > div, #menu_informations > ul > li > div, #menu_contacts > ul > li > div {
  background-color: #FFFFFF; }

#menu, #menu_informations span, .menu_custom_block h1 {
  color: #464646; }

#menu_contacts > ul > li > div > ul > li > .ngw, #menu_contacts span.mm {
  color: #464646; }

#menu_oc > ul > li ul > li > a, #menu_v > ul > li ul > li > a {
  color: #464646; }

#menu_h span a, #menu_h > ul > li ul > li > a {
  color: #464646; }

#menu_brands > ul > li > div > div a, #menu_custom_menu > ul > li ul > li > a, .menu_custom_block > ul > li > div a, #menu_informations > ul > li ul > li > a {
  color: #464646; }

#menu_oc > ul > li ul > li > a:hover {
  color: #FFFFFF; }

#menu_v > ul > li ul > li > a:hover, #menu_v > ul > li > div > ul > li ul > li > a:hover {
  color: #FFFFFF; }

#menu_h span a:hover, #menu_h > ul > li ul > li > a:hover {
  color: #FFFFFF; }

#menu_brands > ul > li > div > div:hover a, #menu_custom_menu > ul > li ul > li > a:hover, .menu_custom_block > ul > li > div a:hover, #menu_informations > ul > li ul > li > a:hover {
  color: #FFFFFF; }

#menu_h > ul > li ul > li ul > li:first-child {
  border-top: 1px solid #F1F1F1; }

#menu_oc > ul > li ul > li, #menu_v > ul > li ul > li, #menu_h > ul > li ul > li, #menu_brands > ul > li > div > div, #menu_custom_menu > ul > li ul > li, #menu_informations > ul > li ul > li {
  border-bottom: 1px solid #F1F1F1; }

#menu_oc > ul > li ul > li > a:hover, #menu_v > ul > li ul > li > a:hover, #menu_h > ul > li ul > li > a:hover, #menu_v > ul > li > div > ul > li ul > li > a:hover, #menu_h span a:hover, #menu_brands > ul > li > div > div:hover, #menu_custom_menu > ul > li ul > li > a:hover, #menu_informations > ul > li ul > li > a:hover {
  background-color: #793E97; }

#menu_h span a, #menu_informations span {
  background-color: #F5F5F5; }

#menu_contacts > ul > li > div > ul > li > .ngw, #menu_contacts > ul > li > div > ul > li > .social_widget {
  background-color: #F5F5F5; }

#menu_oc > ul > li > div {
  box-shadow: 0 5px 20px rgba(0, 0, 0, 0.3);
  -webkit-box-shadow: 0 5px 20px rgba(0, 0, 0, 0.3);
  -moz-box-shadow: 0 5px 20px rgba(0, 0, 0, 0.3); }
  #menu_oc > ul > li > div > ul > li > div {
    box-shadow: 0 5px 20px rgba(0, 0, 0, 0.3);
    -webkit-box-shadow: 0 5px 20px rgba(0, 0, 0, 0.3);
    -moz-box-shadow: 0 5px 20px rgba(0, 0, 0, 0.3); }

#menu_v > ul > li > div {
  box-shadow: 0 5px 20px rgba(0, 0, 0, 0.3);
  -webkit-box-shadow: 0 5px 20px rgba(0, 0, 0, 0.3);
  -moz-box-shadow: 0 5px 20px rgba(0, 0, 0, 0.3); }
  #menu_v > ul > li > div > ul > li > div {
    box-shadow: 0 5px 20px rgba(0, 0, 0, 0.3);
    -webkit-box-shadow: 0 5px 20px rgba(0, 0, 0, 0.3);
    -moz-box-shadow: 0 5px 20px rgba(0, 0, 0, 0.3); }
    #menu_v > ul > li > div > ul > li > div > ul > li > div {
      box-shadow: 0 5px 20px rgba(0, 0, 0, 0.3);
      -webkit-box-shadow: 0 5px 20px rgba(0, 0, 0, 0.3);
      -moz-box-shadow: 0 5px 20px rgba(0, 0, 0, 0.3); }

#menu_h > ul > li > div, #menu_brands > ul > li > div, #menu_custom_menu > ul > li > div, .menu_custom_block > ul > li > div, #menu_informations > ul > li > div, #menu_contacts > ul > li > div {
  box-shadow: 0 5px 20px rgba(0, 0, 0, 0.3);
  -webkit-box-shadow: 0 5px 20px rgba(0, 0, 0, 0.3);
  -moz-box-shadow: 0 5px 20px rgba(0, 0, 0, 0.3); }

/*  Layout  */
.wrapper {
  max-width: 100%;
  margin: 0;
  padding: 0 10px; }

/*  Product Box  */
.product-grid > div {
  padding: 0; }

/*.product-grid > div:hover {
    background-color: #EDEDED;
}*/
span.sale-icon {
  background-color: #92B631; }

.product-grid .product_box_brand, .product-list .product_box_brand, #content .box-product .cart, .product-list .cart, .product-box-slider .cart, .product-list .rating, #content .box-product .rating, .product-grid .rating, #column-left .box-product .rating, #column-right .box-product .rating, .product-box-slider .rating {
  display: none; }

/*.product-grid .cart,  {
    display:none;
}*/
.product-grid .name, #content .box-product .name, .product-bottom-related .name, .product-box-slider .name {
  text-align: left; }

.product-grid .product_box_brand, .product-grid .price {
  text-align: left; }

#content .box-product .price, .product-box-slider .price, .product-bottom-related .price, .product-grid .rating, #content .box-product .rating, .product-box-slider .rating, .product-grid .cart, #content .box-product .cart, .product-box-slider .cart, .product-bottom-related .cart {
  text-align: left; }

/*  Tabs  */
.htabs a {
  background-color: #424242;
  color: #FFFFFF; }
  .htabs a.selected {
    background-color: #92B631;
    color: #FFFFFF; }

/*  Product Slider on Home Page  */
.ei-slider {
  background-color: #F7F7F7;
  background-image: url("catalog/view/theme/oxy/image/bg_prod_slider_1.png");
  background-position: top center;
  background-repeat: repeat; }

@media screen and (max-width: 767px) {
  .ei-slider {
    background-image: none;
    background-color: #FFFFFF; } }

.ei-title h2 a {
  color: #464646; }

.ei-title h3 a {
  color: #A3A3A3; }

.ei-title h4 {
  background-color: #793E97; }

.ei-title h2 a:hover, .ei-title h3 a:hover {
  color: #92B631; }

.ei-slider-thumbs li a {
  background: #E8E8E8; }
  .ei-slider-thumbs li a:hover {
    background: #793E97; }

.ei-slider-thumbs li.ei-slider-element {
  background: #92B631; }

/*  Video Box  */
.video_box_left #video_box_icon {
  background-color: #92B631; }

.video_box_right #video_box_icon {
  background-color: #92B631; }

.video_box_right .video_box {
  border: 4px solid #92B631; }

.video_box_left .video_box {
  border: 4px solid #92B631; }

/*  Custom Box  */
.custom_box_left #custom_box_icon {
  background-color: #793E97; }

.custom_box_right #custom_box_icon {
  background-color: #793E97; }

.custom_box_right .custom_box {
  border: 4px solid #793E97; }

.custom_box_left .custom_box {
  border: 4px solid #793E97; }

/*  Bottom Area  */
/*  Feature Block  */
#footer_p {
  background-color: #F6F6F6; }
  #footer_p span.p_title a {
    color: #464646; }
    #footer_p span.p_title a:hover {
      color: #793E97; }
  #footer_p span.p_subtitle {
    color: #B6B6B6; }
  #footer_p span.pi1 {
    background-color: #D1D1D1; }
  #footer_p .p_content:hover span.pi1 {
    background-color: #92B631; }
  #footer_p span.pi2 {
    background-color: #D1D1D1; }
  #footer_p .p_content:hover span.pi2 {
    background-color: #92B631; }
  #footer_p span.pi3 {
    background-color: #D1D1D1; }
  #footer_p .p_content:hover span.pi3 {
    background-color: #92B631; }
  #footer_p span.pi4 {
    background-color: #D1D1D1; }
  #footer_p .p_content:hover span.pi4 {
    background-color: #92B631; }

/*  About Us, Custom Column, Follow Us, Contact Us  */
#footer_a {
  color: #464646;
  background-color: #E6E6E6;
  background-image: url("catalog/view/theme/oxy/image/patterns/p302.png");
  background-position: top center;
  background-repeat: repeat; }
  #footer_a h3 {
    color: #464646;
    border-bottom: 1px solid #F5F5F5; }
  #footer_a a {
    color: #92B631; }
    #footer_a a:hover {
      color: #793E97; }
  #footer_a span.mm_icon, #footer_a .social_widget ul li {
    background-color: #B6B6B6; }

/*  Information, Customer Service, Extras, My Account  */
#footer_c {
  background-color: #2F2F2F;
  background-image: url("catalog/view/theme/oxy/image/patterns/p226.png");
  background-position: top center;
  background-repeat: repeat; }
  #footer_c h3 {
    color: #FFFFFF;
    border-bottom: 1px solid #464646; }
  #footer_c a {
    color: #8C8C8C; }
    #footer_c a:hover {
      color: #FFFFFF; }
  #footer_c ul li {
    color: #464646; }

/*  Powered by, Payment Images  */
#footer_d, #footer_e {
  background-color: #2F2F2F;
  background-image: url("catalog/view/theme/oxy/image/patterns/p226.png");
  background-position: top center;
  background-repeat: repeat;
  border-top: 1px solid #464646;
  color: #8C8C8C; }
  #footer_d a, #footer_e a {
    color: #92B631; }
    #footer_d a:hover, #footer_e a:hover {
      color: #FFFFFF; }

/*  Bottom Custom Block  */
/*  Fonts  */
body, p, .ei-title h3 a {
  font-family: 'Open Sans',Arial,Helvetica,sans-serif; }

.cart-info thead .price, .cart-info tbody .price {
  font-family: 'Open Sans',Arial,Helvetica,sans-serif; }

.box-category-home .subcat a, .box-category-home .all a {
  font-family: 'Open Sans',Arial,Helvetica,sans-serif; }

h1, h2, h3, h4, h5, h6, #content .box-heading, .box-category .box-heading-category, .box-filter .box-heading, #column-left .box .box-heading, #column-right .box .box-heading, #column-left .product-box-slider .box-heading, #column-right .product-box-slider .box-heading, .product-grid .name a, .product-list .name a, #content .box-product .name a, .product-right-sm-related .name a, .product-bottom-related .name a, #column-left .box-product .name a, #column-right .box-product .name a, .product-box-slider .name a, .box-category-home a {
  font-family: Bitter,Arial,Helvetica,sans-serif; }

h1, h2, h3, h4, h5, h6, #content .box-heading, .box-category .box-heading-category, .box-filter .box-heading, #column-left .box .box-heading, #column-right .box .box-heading, #column-left .product-box-slider .box-heading, #column-right .product-box-slider .box-heading, .product-grid .name a, .product-list .name a, #content .box-product .name a, .product-right-sm-related .name a, .product-bottom-related .name a, #column-left .box-product .name a, #column-right .box-product .name a, .product-box-slider .name a, .box-category-home a {
  font-weight: normal; }

h1, h2, h3, h4, h5, h6, #content .box-heading, .box-category .box-heading-category, .box-filter .box-heading, #column-left .box .box-heading, #column-right .box .box-heading, #column-left .product-box-slider .box-heading, #column-right .product-box-slider .box-heading, .product-grid .name a, .product-list .name a, #content .box-product .name a, .product-right-sm-related .name a, .product-bottom-related .name a, #column-left .box-product .name a, #column-right .box-product .name a, .product-box-slider .name a, .box-category-home a {
  text-transform: uppercase; }

.price, .price-new, .price-new2, .price-old, .ei-title h4 a {
  font-family: Arial,Helvetica,sans-serif; }

.price, .price-new, .price-new2, .price-old, .ei-title h4 a {
  font-weight: bold; }

a.button, input.button, a.button-exclusive, input.button-exclusive, .ei-title h4 a.button {
  font-family: 'Open Sans',Arial,Helvetica,sans-serif; }

a.button, input.button, a.button-exclusive, input.button-exclusive, .ei-title h4 a.button {
  font-weight: normal; }

a.button, input.button, a.button-exclusive, input.button-exclusive, .ei-title h4 a.button {
  text-transform: uppercase; }

#t-header #search input {
  font-family: 'Open Sans',Arial,Helvetica,sans-serif;
  font-size: 13px;
  font-weight: normal;
  text-transform: uppercase; }

#header #cart .heading a div#cart-total {
  font-family: Bitter,Arial,Helvetica,sans-serif;
  font-size: 16px;
  font-weight: normal; }

#menu #homepage a, #menu_oc > ul > li > a, #menu_v > ul > li > a, #menu_h > ul > li > a, #menu_brands > ul > li > a, .menu_links a, #menu_custom_menu > ul > li > a, .menu_custom_block > ul > li > a, #menu_informations > ul > li > a, #menu_contacts > ul > li > a, .top-bar > ul .name h1 a {
  font-family: Bitter,Arial,Helvetica,sans-serif; }

#menu {
  font-size: 16px;
  font-weight: normal;
  text-transform: uppercase; }
  #menu #homepage a {
    font-size: 16px;
    font-weight: normal;
    text-transform: uppercase; }

#menu_oc > ul > li > a, #menu_v > ul > li > a, #menu_h > ul > li > a, #menu_brands > ul > li > a, .menu_links a, #menu_custom_menu > ul > li > a, .menu_custom_block > ul > li > a, #menu_informations > ul > li > a, #menu_contacts > ul > li > a, .top-bar > ul .name h1 a {
  font-size: 16px;
  font-weight: normal;
  text-transform: uppercase; }

/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
/**
   * 1. Set default font family to sans-serif.
   * 2. Prevent iOS and IE text size adjust after device orientation change,
   *    without disabling user zoom.
   */
html {
  font-family: sans-serif;
  /* 1 */
  -ms-text-size-adjust: 100%;
  /* 2 */
  -webkit-text-size-adjust: 100%;
  /* 2 */ }

/**
   * Remove default margin.
   */
body {
  margin: 0; }

/* HTML5 display definitions
     ========================================================================== */
/**
   * Correct `block` display not defined for any HTML5 element in IE 8/9.
   * Correct `block` display not defined for `details` or `summary` in IE 10/11
   * and Firefox.
   * Correct `block` display not defined for `main` in IE 11.
   */
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
menu,
nav,
section,
summary {
  display: block; }

/**
   * 1. Correct `inline-block` display not defined in IE 8/9.
   * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
   */
audio,
canvas,
progress,
video {
  display: inline-block;
  /* 1 */
  vertical-align: baseline;
  /* 2 */ }

/**
   * Prevent modern browsers from displaying `audio` without controls.
   * Remove excess height in iOS 5 devices.
   */
audio:not([controls]) {
  display: none;
  height: 0; }

/**
   * Address `[hidden]` styling not present in IE 8/9/10.
   * Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.
   */
[hidden],
template {
  display: none; }

/* Links
     ========================================================================== */
/**
   * Remove the gray background color from active links in IE 10.
   */
a {
  background-color: transparent; }

/**
   * Improve readability of focused elements when they are also in an
   * active/hover state.
   */
a:active,
a:hover {
  outline: 0; }

/* Text-level semantics
     ========================================================================== */
/**
   * Address styling not present in IE 8/9/10/11, Safari, and Chrome.
   */
abbr[title] {
  border-bottom: 1px dotted; }

/**
   * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
   */
b,
strong {
  font-weight: bold; }

/**
   * Address styling not present in Safari and Chrome.
   */
dfn {
  font-style: italic; }

/**
   * Address variable `h1` font-size and margin within `section` and `article`
   * contexts in Firefox 4+, Safari, and Chrome.
   */
h1 {
  font-size: 2em;
  margin: 0.67em 0; }

/**
   * Address styling not present in IE 8/9.
   */
mark {
  background: #ff0;
  color: #000; }

/**
   * Address inconsistent and variable font size in all browsers.
   */
small {
  font-size: 80%; }

/**
   * Prevent `sub` and `sup` affecting `line-height` in all browsers.
   */
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline; }

sup {
  top: -0.5em; }

sub {
  bottom: -0.25em; }

/* Embedded content
     ========================================================================== */
/**
   * Remove border when inside `a` element in IE 8/9/10.
   */
img {
  border: 0; }

/**
   * Correct overflow not hidden in IE 9/10/11.
   */
svg:not(:root) {
  overflow: hidden; }

/* Grouping content
     ========================================================================== */
/**
   * Address margin not present in IE 8/9 and Safari.
   */
figure {
  margin: 1em 40px; }

/**
   * Address differences between Firefox and other browsers.
   */
hr {
  box-sizing: content-box;
  height: 0; }

/**
   * Contain overflow in all browsers.
   */
pre {
  overflow: auto; }

/**
   * Address odd `em`-unit font size rendering in all browsers.
   */
code,
kbd,
pre,
samp {
  font-family: monospace, monospace;
  font-size: 1em; }

/* Forms
     ========================================================================== */
/**
   * Known limitation: by default, Chrome and Safari on OS X allow very limited
   * styling of `select`, unless a `border` property is set.
   */
/**
   * 1. Correct color not being inherited.
   *    Known issue: affects color of disabled elements.
   * 2. Correct font properties not being inherited.
   * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
   */
button,
input,
optgroup,
select,
textarea {
  color: inherit;
  /* 1 */
  font: inherit;
  /* 2 */
  margin: 0;
  /* 3 */ }

/**
   * Address `overflow` set to `hidden` in IE 8/9/10/11.
   */
button {
  overflow: visible; }

/**
   * Address inconsistent `text-transform` inheritance for `button` and `select`.
   * All other form control elements do not inherit `text-transform` values.
   * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
   * Correct `select` style inheritance in Firefox.
   */
button,
select {
  text-transform: none; }

/**
   * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
   *    and `video` controls.
   * 2. Correct inability to style clickable `input` types in iOS.
   * 3. Improve usability and consistency of cursor style between image-type
   *    `input` and others.
   */
button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
  -webkit-appearance: button;
  /* 2 */
  cursor: pointer;
  /* 3 */ }

/**
   * Re-set default cursor for disabled elements.
   */
button[disabled],
html input[disabled] {
  cursor: not-allowed; }

/**
   * Remove inner padding and border in Firefox 4+.
   */
button::-moz-focus-inner,
input::-moz-focus-inner {
  border: 0;
  padding: 0; }

/**
   * Address Firefox 4+ setting `line-height` on `input` using `!important` in
   * the UA stylesheet.
   */
input {
  line-height: normal; }

/**
   * It's recommended that you don't attempt to style these elements.
   * Firefox's implementation doesn't respect box-sizing, padding, or width.
   *
   * 1. Address box sizing set to `content-box` in IE 8/9/10.
   * 2. Remove excess padding in IE 8/9/10.
   */
input[type="checkbox"],
input[type="radio"] {
  box-sizing: border-box;
  /* 1 */
  padding: 0;
  /* 2 */ }

/**
   * Fix the cursor style for Chrome's increment/decrement buttons. For certain
   * `font-size` values of the `input`, it causes the cursor style of the
   * decrement button to change from `default` to `text`.
   */
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
  height: auto; }

/**
   * 1. Address `appearance` set to `searchfield` in Safari and Chrome.
   * 2. Address `box-sizing` set to `border-box` in Safari and Chrome.
   */
input[type="search"] {
  -webkit-appearance: textfield;
  /* 1 */
  box-sizing: content-box;
  /* 2 */ }

/**
   * Remove inner padding and search cancel button in Safari and Chrome on OS X.
   * Safari (but not Chrome) clips the cancel button when the search input has
   * padding (and `textfield` appearance).
   */
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none; }

/**
   * Define consistent border, margin, and padding.
   * [NOTE] We don't enable this ruleset in Foundation, because we want the <fieldset> element to have plain styling.
   */
/* fieldset {
    border: 1px solid #c0c0c0;
    margin: 0 2px;
    padding: 0.35em 0.625em 0.75em;
  } */
/**
   * 1. Correct `color` not being inherited in IE 8/9/10/11.
   * 2. Remove padding so people aren't caught out if they zero out fieldsets.
   */
legend {
  border: 0;
  /* 1 */
  padding: 0;
  /* 2 */ }

/**
   * Remove default vertical scrollbar in IE 8/9/10/11.
   */
textarea {
  overflow: auto; }

/**
   * Don't inherit the `font-weight` (applied by a rule above).
   * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
   */
optgroup {
  font-weight: bold; }

/* Tables
     ========================================================================== */
/**
   * Remove most spacing between table cells.
   */
table {
  border-collapse: collapse;
  border-spacing: 0; }

td,
th {
  padding: 0; }

.foundation-mq {
  font-family: "small=0em&medium=40em&large=64em&xlarge=75em&xxlarge=90em"; }

html {
  font-size: 100%;
  box-sizing: border-box; }

*,
*::before,
*::after {
  box-sizing: inherit; }

body {
  padding: 0;
  margin: 0;
  font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  font-weight: normal;
  line-height: 1.5;
  color: #0a0a0a;
  background: #fefefe;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

img {
  max-width: 100%;
  height: auto;
  -ms-interpolation-mode: bicubic;
  display: inline-block;
  vertical-align: middle; }

textarea {
  height: auto;
  min-height: 50px;
  border-radius: 0; }

select {
  width: 100%;
  border-radius: 0; }

#map_canvas img,
#map_canvas embed,
#map_canvas object,
.map_canvas img,
.map_canvas embed,
.map_canvas object,
.mqa-display img,
.mqa-display embed,
.mqa-display object {
  max-width: none !important; }

button {
  -webkit-appearance: none;
  -moz-appearance: none;
  background: transparent;
  padding: 0;
  border: 0;
  border-radius: 0;
  line-height: 1; }
  [data-whatinput='mouse'] button {
    outline: 0; }

.is-visible {
  display: block !important; }

.is-hidden {
  display: none !important; }

.align-right {
  -ms-flex-pack: end;
      justify-content: flex-end; }

.align-center {
  -ms-flex-pack: center;
      justify-content: center; }

.align-justify {
  -ms-flex-pack: justify;
      justify-content: space-between; }

.align-spaced {
  -ms-flex-pack: distribute;
      justify-content: space-around; }

.align-top {
  -ms-flex-align: start;
      align-items: flex-start; }

.align-self-top {
  -ms-flex-item-align: start;
      align-self: flex-start; }

.align-bottom {
  -ms-flex-align: end;
      align-items: flex-end; }

.align-self-bottom {
  -ms-flex-item-align: end;
      align-self: flex-end; }

.align-middle {
  -ms-flex-align: center;
      align-items: center; }

.align-self-middle {
  -ms-flex-item-align: center;
      -ms-grid-row-align: center;
      align-self: center; }

.align-stretch {
  -ms-flex-align: stretch;
      align-items: stretch; }

.align-self-stretch {
  -ms-flex-item-align: stretch;
      -ms-grid-row-align: stretch;
      align-self: stretch; }

.small-order-1 {
  -ms-flex-order: 1;
      order: 1; }

.small-order-2 {
  -ms-flex-order: 2;
      order: 2; }

.small-order-3 {
  -ms-flex-order: 3;
      order: 3; }

.small-order-4 {
  -ms-flex-order: 4;
      order: 4; }

.small-order-5 {
  -ms-flex-order: 5;
      order: 5; }

.small-order-6 {
  -ms-flex-order: 6;
      order: 6; }

@media screen and (min-width: 40em) {
  .medium-order-1 {
    -ms-flex-order: 1;
        order: 1; }
  .medium-order-2 {
    -ms-flex-order: 2;
        order: 2; }
  .medium-order-3 {
    -ms-flex-order: 3;
        order: 3; }
  .medium-order-4 {
    -ms-flex-order: 4;
        order: 4; }
  .medium-order-5 {
    -ms-flex-order: 5;
        order: 5; }
  .medium-order-6 {
    -ms-flex-order: 6;
        order: 6; } }

@media screen and (min-width: 64em) {
  .large-order-1 {
    -ms-flex-order: 1;
        order: 1; }
  .large-order-2 {
    -ms-flex-order: 2;
        order: 2; }
  .large-order-3 {
    -ms-flex-order: 3;
        order: 3; }
  .large-order-4 {
    -ms-flex-order: 4;
        order: 4; }
  .large-order-5 {
    -ms-flex-order: 5;
        order: 5; }
  .large-order-6 {
    -ms-flex-order: 6;
        order: 6; } }

.row {
  max-width: 75rem;
  margin-left: auto;
  margin-right: auto;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-flow: row wrap;
      flex-flow: row wrap; }
  .row .row {
    max-width: none;
    margin-left: -0.625rem;
    margin-right: -0.625rem; }
    @media screen and (min-width: 40em) {
      .row .row {
        margin-left: -0.9375rem;
        margin-right: -0.9375rem; } }
  .row.expanded {
    max-width: none; }
  .row.collapse > .column, .row.collapse > .columns {
    padding-left: 0;
    padding-right: 0; }

.column, .columns {
  -ms-flex: 1 1 0px;
      flex: 1 1 0px;
  padding-left: 0.625rem;
  padding-right: 0.625rem;
  min-width: initial; }
  @media screen and (min-width: 40em) {
    .column, .columns {
      padding-left: 0.9375rem;
      padding-right: 0.9375rem; } }

.column.row.row, .row.row.columns {
  float: none;
  display: block; }
  .row .column.row.row, .row .row.row.columns {
    padding-left: 0;
    padding-right: 0;
    margin-left: 0;
    margin-right: 0; }

.small-1 {
  -ms-flex: 0 0 8.33333%;
      flex: 0 0 8.33333%;
  max-width: 8.33333%; }

.small-offset-0 {
  margin-left: 0%; }

.small-2 {
  -ms-flex: 0 0 16.66667%;
      flex: 0 0 16.66667%;
  max-width: 16.66667%; }

.small-offset-1 {
  margin-left: 8.33333%; }

.small-3 {
  -ms-flex: 0 0 25%;
      flex: 0 0 25%;
  max-width: 25%; }

.small-offset-2 {
  margin-left: 16.66667%; }

.small-4 {
  -ms-flex: 0 0 33.33333%;
      flex: 0 0 33.33333%;
  max-width: 33.33333%; }

.small-offset-3 {
  margin-left: 25%; }

.small-5 {
  -ms-flex: 0 0 41.66667%;
      flex: 0 0 41.66667%;
  max-width: 41.66667%; }

.small-offset-4 {
  margin-left: 33.33333%; }

.small-6 {
  -ms-flex: 0 0 50%;
      flex: 0 0 50%;
  max-width: 50%; }

.small-offset-5 {
  margin-left: 41.66667%; }

.small-7 {
  -ms-flex: 0 0 58.33333%;
      flex: 0 0 58.33333%;
  max-width: 58.33333%; }

.small-offset-6 {
  margin-left: 50%; }

.small-8 {
  -ms-flex: 0 0 66.66667%;
      flex: 0 0 66.66667%;
  max-width: 66.66667%; }

.small-offset-7 {
  margin-left: 58.33333%; }

.small-9 {
  -ms-flex: 0 0 75%;
      flex: 0 0 75%;
  max-width: 75%; }

.small-offset-8 {
  margin-left: 66.66667%; }

.small-10 {
  -ms-flex: 0 0 83.33333%;
      flex: 0 0 83.33333%;
  max-width: 83.33333%; }

.small-offset-9 {
  margin-left: 75%; }

.small-11 {
  -ms-flex: 0 0 91.66667%;
      flex: 0 0 91.66667%;
  max-width: 91.66667%; }

.small-offset-10 {
  margin-left: 83.33333%; }

.small-12 {
  -ms-flex: 0 0 100%;
      flex: 0 0 100%;
  max-width: 100%; }

.small-offset-11 {
  margin-left: 91.66667%; }

.small-order-1 {
  -ms-flex-order: 1;
      order: 1; }

.small-order-2 {
  -ms-flex-order: 2;
      order: 2; }

.small-order-3 {
  -ms-flex-order: 3;
      order: 3; }

.small-order-4 {
  -ms-flex-order: 4;
      order: 4; }

.small-order-5 {
  -ms-flex-order: 5;
      order: 5; }

.small-order-6 {
  -ms-flex-order: 6;
      order: 6; }

.small-up-1 {
  -ms-flex-wrap: wrap;
      flex-wrap: wrap; }
  .small-up-1 > .column, .small-up-1 > .columns {
    -ms-flex: 0 0 100%;
        flex: 0 0 100%;
    max-width: 100%; }

.small-up-2 {
  -ms-flex-wrap: wrap;
      flex-wrap: wrap; }
  .small-up-2 > .column, .small-up-2 > .columns {
    -ms-flex: 0 0 50%;
        flex: 0 0 50%;
    max-width: 50%; }

.small-up-3 {
  -ms-flex-wrap: wrap;
      flex-wrap: wrap; }
  .small-up-3 > .column, .small-up-3 > .columns {
    -ms-flex: 0 0 33.33333%;
        flex: 0 0 33.33333%;
    max-width: 33.33333%; }

.small-up-4 {
  -ms-flex-wrap: wrap;
      flex-wrap: wrap; }
  .small-up-4 > .column, .small-up-4 > .columns {
    -ms-flex: 0 0 25%;
        flex: 0 0 25%;
    max-width: 25%; }

.small-up-5 {
  -ms-flex-wrap: wrap;
      flex-wrap: wrap; }
  .small-up-5 > .column, .small-up-5 > .columns {
    -ms-flex: 0 0 20%;
        flex: 0 0 20%;
    max-width: 20%; }

.small-up-6 {
  -ms-flex-wrap: wrap;
      flex-wrap: wrap; }
  .small-up-6 > .column, .small-up-6 > .columns {
    -ms-flex: 0 0 16.66667%;
        flex: 0 0 16.66667%;
    max-width: 16.66667%; }

.small-up-7 {
  -ms-flex-wrap: wrap;
      flex-wrap: wrap; }
  .small-up-7 > .column, .small-up-7 > .columns {
    -ms-flex: 0 0 14.28571%;
        flex: 0 0 14.28571%;
    max-width: 14.28571%; }

.small-up-8 {
  -ms-flex-wrap: wrap;
      flex-wrap: wrap; }
  .small-up-8 > .column, .small-up-8 > .columns {
    -ms-flex: 0 0 12.5%;
        flex: 0 0 12.5%;
    max-width: 12.5%; }

.small-collapse > .column, .small-collapse > .columns {
  padding-left: 0;
  padding-right: 0; }

.small-uncollapse > .column, .small-uncollapse > .columns {
  padding-left: 0.625rem;
  padding-right: 0.625rem; }

@media screen and (min-width: 40em) {
  .medium-1 {
    -ms-flex: 0 0 8.33333%;
        flex: 0 0 8.33333%;
    max-width: 8.33333%; }
  .medium-offset-0 {
    margin-left: 0%; }
  .medium-2 {
    -ms-flex: 0 0 16.66667%;
        flex: 0 0 16.66667%;
    max-width: 16.66667%; }
  .medium-offset-1 {
    margin-left: 8.33333%; }
  .medium-3 {
    -ms-flex: 0 0 25%;
        flex: 0 0 25%;
    max-width: 25%; }
  .medium-offset-2 {
    margin-left: 16.66667%; }
  .medium-4 {
    -ms-flex: 0 0 33.33333%;
        flex: 0 0 33.33333%;
    max-width: 33.33333%; }
  .medium-offset-3 {
    margin-left: 25%; }
  .medium-5 {
    -ms-flex: 0 0 41.66667%;
        flex: 0 0 41.66667%;
    max-width: 41.66667%; }
  .medium-offset-4 {
    margin-left: 33.33333%; }
  .medium-6 {
    -ms-flex: 0 0 50%;
        flex: 0 0 50%;
    max-width: 50%; }
  .medium-offset-5 {
    margin-left: 41.66667%; }
  .medium-7 {
    -ms-flex: 0 0 58.33333%;
        flex: 0 0 58.33333%;
    max-width: 58.33333%; }
  .medium-offset-6 {
    margin-left: 50%; }
  .medium-8 {
    -ms-flex: 0 0 66.66667%;
        flex: 0 0 66.66667%;
    max-width: 66.66667%; }
  .medium-offset-7 {
    margin-left: 58.33333%; }
  .medium-9 {
    -ms-flex: 0 0 75%;
        flex: 0 0 75%;
    max-width: 75%; }
  .medium-offset-8 {
    margin-left: 66.66667%; }
  .medium-10 {
    -ms-flex: 0 0 83.33333%;
        flex: 0 0 83.33333%;
    max-width: 83.33333%; }
  .medium-offset-9 {
    margin-left: 75%; }
  .medium-11 {
    -ms-flex: 0 0 91.66667%;
        flex: 0 0 91.66667%;
    max-width: 91.66667%; }
  .medium-offset-10 {
    margin-left: 83.33333%; }
  .medium-12 {
    -ms-flex: 0 0 100%;
        flex: 0 0 100%;
    max-width: 100%; }
  .medium-offset-11 {
    margin-left: 91.66667%; }
  .medium-order-1 {
    -ms-flex-order: 1;
        order: 1; }
  .medium-order-2 {
    -ms-flex-order: 2;
        order: 2; }
  .medium-order-3 {
    -ms-flex-order: 3;
        order: 3; }
  .medium-order-4 {
    -ms-flex-order: 4;
        order: 4; }
  .medium-order-5 {
    -ms-flex-order: 5;
        order: 5; }
  .medium-order-6 {
    -ms-flex-order: 6;
        order: 6; }
  .medium-up-1 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .medium-up-1 > .column, .medium-up-1 > .columns {
      -ms-flex: 0 0 100%;
          flex: 0 0 100%;
      max-width: 100%; }
  .medium-up-2 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .medium-up-2 > .column, .medium-up-2 > .columns {
      -ms-flex: 0 0 50%;
          flex: 0 0 50%;
      max-width: 50%; }
  .medium-up-3 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .medium-up-3 > .column, .medium-up-3 > .columns {
      -ms-flex: 0 0 33.33333%;
          flex: 0 0 33.33333%;
      max-width: 33.33333%; }
  .medium-up-4 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .medium-up-4 > .column, .medium-up-4 > .columns {
      -ms-flex: 0 0 25%;
          flex: 0 0 25%;
      max-width: 25%; }
  .medium-up-5 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .medium-up-5 > .column, .medium-up-5 > .columns {
      -ms-flex: 0 0 20%;
          flex: 0 0 20%;
      max-width: 20%; }
  .medium-up-6 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .medium-up-6 > .column, .medium-up-6 > .columns {
      -ms-flex: 0 0 16.66667%;
          flex: 0 0 16.66667%;
      max-width: 16.66667%; }
  .medium-up-7 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .medium-up-7 > .column, .medium-up-7 > .columns {
      -ms-flex: 0 0 14.28571%;
          flex: 0 0 14.28571%;
      max-width: 14.28571%; }
  .medium-up-8 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .medium-up-8 > .column, .medium-up-8 > .columns {
      -ms-flex: 0 0 12.5%;
          flex: 0 0 12.5%;
      max-width: 12.5%; } }

@media screen and (min-width: 40em) and (min-width: 40em) {
  .medium-expand {
    -ms-flex: 1 1 0px;
        flex: 1 1 0px; } }

.row.medium-unstack > .column, .row.medium-unstack > .columns {
  -ms-flex: 0 0 100%;
      flex: 0 0 100%; }
  @media screen and (min-width: 40em) {
    .row.medium-unstack > .column, .row.medium-unstack > .columns {
      -ms-flex: 1 1 0px;
          flex: 1 1 0px; } }

@media screen and (min-width: 40em) {
  .medium-collapse > .column, .medium-collapse > .columns {
    padding-left: 0;
    padding-right: 0; }
  .medium-uncollapse > .column, .medium-uncollapse > .columns {
    padding-left: 0.9375rem;
    padding-right: 0.9375rem; } }

@media screen and (min-width: 64em) {
  .large-1 {
    -ms-flex: 0 0 8.33333%;
        flex: 0 0 8.33333%;
    max-width: 8.33333%; }
  .large-offset-0 {
    margin-left: 0%; }
  .large-2 {
    -ms-flex: 0 0 16.66667%;
        flex: 0 0 16.66667%;
    max-width: 16.66667%; }
  .large-offset-1 {
    margin-left: 8.33333%; }
  .large-3 {
    -ms-flex: 0 0 25%;
        flex: 0 0 25%;
    max-width: 25%; }
  .large-offset-2 {
    margin-left: 16.66667%; }
  .large-4 {
    -ms-flex: 0 0 33.33333%;
        flex: 0 0 33.33333%;
    max-width: 33.33333%; }
  .large-offset-3 {
    margin-left: 25%; }
  .large-5 {
    -ms-flex: 0 0 41.66667%;
        flex: 0 0 41.66667%;
    max-width: 41.66667%; }
  .large-offset-4 {
    margin-left: 33.33333%; }
  .large-6 {
    -ms-flex: 0 0 50%;
        flex: 0 0 50%;
    max-width: 50%; }
  .large-offset-5 {
    margin-left: 41.66667%; }
  .large-7 {
    -ms-flex: 0 0 58.33333%;
        flex: 0 0 58.33333%;
    max-width: 58.33333%; }
  .large-offset-6 {
    margin-left: 50%; }
  .large-8 {
    -ms-flex: 0 0 66.66667%;
        flex: 0 0 66.66667%;
    max-width: 66.66667%; }
  .large-offset-7 {
    margin-left: 58.33333%; }
  .large-9 {
    -ms-flex: 0 0 75%;
        flex: 0 0 75%;
    max-width: 75%; }
  .large-offset-8 {
    margin-left: 66.66667%; }
  .large-10 {
    -ms-flex: 0 0 83.33333%;
        flex: 0 0 83.33333%;
    max-width: 83.33333%; }
  .large-offset-9 {
    margin-left: 75%; }
  .large-11 {
    -ms-flex: 0 0 91.66667%;
        flex: 0 0 91.66667%;
    max-width: 91.66667%; }
  .large-offset-10 {
    margin-left: 83.33333%; }
  .large-12 {
    -ms-flex: 0 0 100%;
        flex: 0 0 100%;
    max-width: 100%; }
  .large-offset-11 {
    margin-left: 91.66667%; }
  .large-order-1 {
    -ms-flex-order: 1;
        order: 1; }
  .large-order-2 {
    -ms-flex-order: 2;
        order: 2; }
  .large-order-3 {
    -ms-flex-order: 3;
        order: 3; }
  .large-order-4 {
    -ms-flex-order: 4;
        order: 4; }
  .large-order-5 {
    -ms-flex-order: 5;
        order: 5; }
  .large-order-6 {
    -ms-flex-order: 6;
        order: 6; }
  .large-up-1 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .large-up-1 > .column, .large-up-1 > .columns {
      -ms-flex: 0 0 100%;
          flex: 0 0 100%;
      max-width: 100%; }
  .large-up-2 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .large-up-2 > .column, .large-up-2 > .columns {
      -ms-flex: 0 0 50%;
          flex: 0 0 50%;
      max-width: 50%; }
  .large-up-3 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .large-up-3 > .column, .large-up-3 > .columns {
      -ms-flex: 0 0 33.33333%;
          flex: 0 0 33.33333%;
      max-width: 33.33333%; }
  .large-up-4 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .large-up-4 > .column, .large-up-4 > .columns {
      -ms-flex: 0 0 25%;
          flex: 0 0 25%;
      max-width: 25%; }
  .large-up-5 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .large-up-5 > .column, .large-up-5 > .columns {
      -ms-flex: 0 0 20%;
          flex: 0 0 20%;
      max-width: 20%; }
  .large-up-6 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .large-up-6 > .column, .large-up-6 > .columns {
      -ms-flex: 0 0 16.66667%;
          flex: 0 0 16.66667%;
      max-width: 16.66667%; }
  .large-up-7 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .large-up-7 > .column, .large-up-7 > .columns {
      -ms-flex: 0 0 14.28571%;
          flex: 0 0 14.28571%;
      max-width: 14.28571%; }
  .large-up-8 {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .large-up-8 > .column, .large-up-8 > .columns {
      -ms-flex: 0 0 12.5%;
          flex: 0 0 12.5%;
      max-width: 12.5%; } }

@media screen and (min-width: 64em) and (min-width: 64em) {
  .large-expand {
    -ms-flex: 1 1 0px;
        flex: 1 1 0px; } }

.row.large-unstack > .column, .row.large-unstack > .columns {
  -ms-flex: 0 0 100%;
      flex: 0 0 100%; }
  @media screen and (min-width: 64em) {
    .row.large-unstack > .column, .row.large-unstack > .columns {
      -ms-flex: 1 1 0px;
          flex: 1 1 0px; } }

@media screen and (min-width: 64em) {
  .large-collapse > .column, .large-collapse > .columns {
    padding-left: 0;
    padding-right: 0; }
  .large-uncollapse > .column, .large-uncollapse > .columns {
    padding-left: 0.9375rem;
    padding-right: 0.9375rem; } }

.shrink {
  -ms-flex: 0 0 auto;
      flex: 0 0 auto;
  max-width: 100%; }

.column.align-top, .align-top.columns {
  -ms-flex-item-align: start;
      align-self: flex-start; }

.column.align-bottom, .align-bottom.columns {
  -ms-flex-item-align: end;
      align-self: flex-end; }

.column.align-middle, .align-middle.columns {
  -ms-flex-item-align: center;
      -ms-grid-row-align: center;
      align-self: center; }

.column.align-stretch, .align-stretch.columns {
  -ms-flex-item-align: stretch;
      -ms-grid-row-align: stretch;
      align-self: stretch; }

div,
dl,
dt,
dd,
ul,
ol,
li,
h1,
h2,
h3,
h4,
h5,
h6,
pre,
form,
p,
blockquote,
th,
td {
  margin: 0;
  padding: 0; }

p {
  font-size: inherit;
  line-height: 1.6;
  margin-bottom: 1rem;
  text-rendering: optimizeLegibility; }

em,
i {
  font-style: italic;
  line-height: inherit; }

strong,
b {
  font-weight: bold;
  line-height: inherit; }

small {
  font-size: 80%;
  line-height: inherit; }

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
  font-weight: normal;
  font-style: normal;
  color: inherit;
  text-rendering: optimizeLegibility;
  margin-top: 0;
  margin-bottom: 0.5rem;
  line-height: 1.4; }
  h1 small,
  h2 small,
  h3 small,
  h4 small,
  h5 small,
  h6 small {
    color: #cacaca;
    line-height: 0; }

h1 {
  font-size: 1.5rem; }

h2 {
  font-size: 1.25rem; }

h3 {
  font-size: 1.1875rem; }

h4 {
  font-size: 1.125rem; }

h5 {
  font-size: 1.0625rem; }

h6 {
  font-size: 1rem; }

@media screen and (min-width: 40em) {
  h1 {
    font-size: 3rem; }
  h2 {
    font-size: 2.5rem; }
  h3 {
    font-size: 1.9375rem; }
  h4 {
    font-size: 1.5625rem; }
  h5 {
    font-size: 1.25rem; }
  h6 {
    font-size: 1rem; } }

a {
  color: #92B631;
  text-decoration: none;
  line-height: inherit;
  cursor: pointer; }
  a:hover, a:focus {
    color: #7e9d2a; }
  a img {
    border: 0; }

hr {
  max-width: 75rem;
  height: 0;
  border-right: 0;
  border-top: 0;
  border-bottom: 1px solid #cacaca;
  border-left: 0;
  margin: 1.25rem auto;
  clear: both; }

ul,
ol,
dl {
  line-height: 1.6;
  margin-bottom: 1rem;
  list-style-position: outside; }

li {
  font-size: inherit; }

ul {
  list-style-type: disc;
  margin-left: 1.25rem; }

ol {
  margin-left: 1.25rem; }

ul ul, ol ul, ul ol, ol ol {
  margin-left: 1.25rem;
  margin-bottom: 0; }

dl {
  margin-bottom: 1rem; }
  dl dt {
    margin-bottom: 0.3rem;
    font-weight: bold; }

blockquote {
  margin: 0 0 1rem;
  padding: 0.5625rem 1.25rem 0 1.1875rem;
  border-left: 1px solid #cacaca; }
  blockquote, blockquote p {
    line-height: 1.6;
    color: #8a8a8a; }

cite {
  display: block;
  font-size: 0.8125rem;
  color: #8a8a8a; }
  cite:before {
    content: '\2014 \0020'; }

abbr {
  color: #0a0a0a;
  cursor: help;
  border-bottom: 1px dotted #0a0a0a; }

code {
  font-family: Consolas, "Liberation Mono", Courier, monospace;
  font-weight: normal;
  color: #0a0a0a;
  background-color: #e6e6e6;
  border: 1px solid #cacaca;
  padding: 0.125rem 0.3125rem 0.0625rem; }

kbd {
  padding: 0.125rem 0.25rem 0;
  margin: 0;
  background-color: #e6e6e6;
  color: #0a0a0a;
  font-family: Consolas, "Liberation Mono", Courier, monospace; }

.subheader {
  margin-top: 0.2rem;
  margin-bottom: 0.5rem;
  font-weight: normal;
  line-height: 1.4;
  color: #8a8a8a; }

.lead {
  font-size: 125%;
  line-height: 1.6; }

.stat {
  font-size: 2.5rem;
  line-height: 1; }
  p + .stat {
    margin-top: -1rem; }

.no-bullet {
  margin-left: 0;
  list-style: none; }

.text-left {
  text-align: left; }

.text-right {
  text-align: right; }

.text-center {
  text-align: center; }

.text-justify {
  text-align: justify; }

@media screen and (min-width: 40em) {
  .medium-text-left {
    text-align: left; }
  .medium-text-right {
    text-align: right; }
  .medium-text-center {
    text-align: center; }
  .medium-text-justify {
    text-align: justify; } }

@media screen and (min-width: 64em) {
  .large-text-left {
    text-align: left; }
  .large-text-right {
    text-align: right; }
  .large-text-center {
    text-align: center; }
  .large-text-justify {
    text-align: justify; } }

.show-for-print {
  display: none !important; }

@media print {
  * {
    background: transparent !important;
    color: black !important;
    box-shadow: none !important;
    text-shadow: none !important; }
  .show-for-print {
    display: block !important; }
  .hide-for-print {
    display: none !important; }
  table.show-for-print {
    display: table !important; }
  thead.show-for-print {
    display: table-header-group !important; }
  tbody.show-for-print {
    display: table-row-group !important; }
  tr.show-for-print {
    display: table-row !important; }
  td.show-for-print {
    display: table-cell !important; }
  th.show-for-print {
    display: table-cell !important; }
  a,
  a:visited {
    text-decoration: underline; }
  a[href]:after {
    content: " (" attr(href) ")"; }
  .ir a:after,
  a[href^='javascript:']:after,
  a[href^='#']:after {
    content: ''; }
  abbr[title]:after {
    content: " (" attr(title) ")"; }
  pre,
  blockquote {
    border: 1px solid #8a8a8a;
    page-break-inside: avoid; }
  thead {
    display: table-header-group; }
  tr,
  img {
    page-break-inside: avoid; }
  img {
    max-width: 100% !important; }
  @page {
    margin: 0.5cm; }
  p,
  h2,
  h3 {
    orphans: 3;
    widows: 3; }
  h2,
  h3 {
    page-break-after: avoid; } }

.button {
  display: inline-block;
  text-align: center;
  line-height: 1;
  cursor: pointer;
  -webkit-appearance: none;
  transition: background-color 0.25s ease-out, color 0.25s ease-out;
  vertical-align: middle;
  border: 1px solid transparent;
  border-radius: 0;
  padding: 0.85em 1em;
  margin: 0 0 1rem 0;
  font-size: 0.9rem;
  background-color: #92B631;
  color: #fefefe; }
  [data-whatinput='mouse'] .button {
    outline: 0; }
  .button:hover, .button:focus {
    background-color: #7c9b2a;
    color: #fefefe; }
  .button.tiny {
    font-size: 0.6rem; }
  .button.small {
    font-size: 0.75rem; }
  .button.large {
    font-size: 1.25rem; }
  .button.expanded {
    display: block;
    width: 100%;
    margin-left: 0;
    margin-right: 0; }
  .button.primary {
    background-color: #92B631;
    color: #fefefe; }
    .button.primary:hover, .button.primary:focus {
      background-color: #759227;
      color: #fefefe; }
  .button.secondary {
    background-color: #777;
    color: #fefefe; }
    .button.secondary:hover, .button.secondary:focus {
      background-color: #5f5f5f;
      color: #fefefe; }
  .button.success {
    background-color: #3adb76;
    color: #fefefe; }
    .button.success:hover, .button.success:focus {
      background-color: #22bb5b;
      color: #fefefe; }
  .button.warning {
    background-color: #ffae00;
    color: #fefefe; }
    .button.warning:hover, .button.warning:focus {
      background-color: #cc8b00;
      color: #fefefe; }
  .button.alert {
    background-color: #ec5840;
    color: #fefefe; }
    .button.alert:hover, .button.alert:focus {
      background-color: #da3116;
      color: #fefefe; }
  .button.hollow {
    border: 1px solid #92B631;
    color: #92B631; }
    .button.hollow, .button.hollow:hover, .button.hollow:focus {
      background-color: transparent; }
    .button.hollow:hover, .button.hollow:focus {
      border-color: #495b19;
      color: #495b19; }
    .button.hollow.primary {
      border: 1px solid #92B631;
      color: #92B631; }
      .button.hollow.primary:hover, .button.hollow.primary:focus {
        border-color: #495b19;
        color: #495b19; }
    .button.hollow.secondary {
      border: 1px solid #777;
      color: #777; }
      .button.hollow.secondary:hover, .button.hollow.secondary:focus {
        border-color: #3c3c3c;
        color: #3c3c3c; }
    .button.hollow.success {
      border: 1px solid #3adb76;
      color: #3adb76; }
      .button.hollow.success:hover, .button.hollow.success:focus {
        border-color: #157539;
        color: #157539; }
    .button.hollow.warning {
      border: 1px solid #ffae00;
      color: #ffae00; }
      .button.hollow.warning:hover, .button.hollow.warning:focus {
        border-color: #805700;
        color: #805700; }
    .button.hollow.alert {
      border: 1px solid #ec5840;
      color: #ec5840; }
      .button.hollow.alert:hover, .button.hollow.alert:focus {
        border-color: #881f0e;
        color: #881f0e; }
  .button.disabled, .button[disabled] {
    opacity: 0.25;
    cursor: not-allowed; }
    .button.disabled:hover, .button.disabled:focus, .button[disabled]:hover, .button[disabled]:focus {
      background-color: #92B631;
      color: #fefefe; }
  .button.dropdown::after {
    content: '';
    display: block;
    width: 0;
    height: 0;
    border: inset 0.4em;
    border-color: #fefefe transparent transparent;
    border-top-style: solid;
    border-bottom-width: 0;
    position: relative;
    top: 0.4em;
    float: right;
    margin-left: 1em;
    display: inline-block; }
  .button.arrow-only::after {
    margin-left: 0;
    float: none;
    top: -0.1em; }

[type='text'], [type='password'], [type='date'], [type='datetime'], [type='datetime-local'], [type='month'], [type='week'], [type='email'], [type='number'], [type='search'], [type='tel'], [type='time'], [type='url'], [type='color'],
textarea {
  display: block;
  box-sizing: border-box;
  width: 100%;
  height: 2.4375rem;
  padding: 0.5rem;
  border: 1px solid #cacaca;
  margin: 0 0 1rem;
  font-family: inherit;
  font-size: 1rem;
  color: #0a0a0a;
  background-color: #fefefe;
  box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1);
  border-radius: 0;
  transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
  -webkit-appearance: none;
  -moz-appearance: none; }
  [type='text']:focus, [type='password']:focus, [type='date']:focus, [type='datetime']:focus, [type='datetime-local']:focus, [type='month']:focus, [type='week']:focus, [type='email']:focus, [type='number']:focus, [type='search']:focus, [type='tel']:focus, [type='time']:focus, [type='url']:focus, [type='color']:focus,
  textarea:focus {
    border: 1px solid #8a8a8a;
    background-color: #fefefe;
    outline: none;
    box-shadow: 0 0 5px #cacaca;
    transition: box-shadow 0.5s, border-color 0.25s ease-in-out; }

textarea {
  max-width: 100%; }
  textarea[rows] {
    height: auto; }

input::-webkit-input-placeholder,
textarea::-webkit-input-placeholder {
  color: #cacaca; }

input::-moz-placeholder,
textarea::-moz-placeholder {
  color: #cacaca; }

input:-ms-input-placeholder,
textarea:-ms-input-placeholder {
  color: #cacaca; }

input::placeholder,
textarea::placeholder {
  color: #cacaca; }

input:disabled, input[readonly],
textarea:disabled,
textarea[readonly] {
  background-color: #e6e6e6;
  cursor: default; }

[type='submit'],
[type='button'] {
  border-radius: 0;
  -webkit-appearance: none;
  -moz-appearance: none; }

input[type='search'] {
  box-sizing: border-box; }

[type='file'],
[type='checkbox'],
[type='radio'] {
  margin: 0 0 1rem; }

[type='checkbox'] + label,
[type='radio'] + label {
  display: inline-block;
  margin-left: 0.5rem;
  margin-right: 1rem;
  margin-bottom: 0;
  vertical-align: baseline; }
  [type='checkbox'] + label[for],
  [type='radio'] + label[for] {
    cursor: pointer; }

label > [type='checkbox'],
label > [type='radio'] {
  margin-right: 0.5rem; }

[type='file'] {
  width: 100%; }

label {
  display: block;
  margin: 0;
  font-size: 0.875rem;
  font-weight: normal;
  line-height: 1.8;
  color: #0a0a0a; }
  label.middle {
    margin: 0 0 1rem;
    padding: 0.5625rem 0; }

.help-text {
  margin-top: -0.5rem;
  font-size: 0.8125rem;
  font-style: italic;
  color: #0a0a0a; }

.input-group {
  display: table;
  width: 100%;
  margin-bottom: 1rem; }
  .input-group > :first-child {
    border-radius: 0 0 0 0; }
  .input-group > :last-child > * {
    border-radius: 0 0 0 0; }

.input-group-label, .input-group-field, .input-group-button {
  margin: 0;
  white-space: nowrap;
  display: table-cell;
  vertical-align: middle; }

.input-group-label {
  text-align: center;
  padding: 0 1rem;
  background: #e6e6e6;
  color: #0a0a0a;
  border: 1px solid #cacaca;
  white-space: nowrap;
  width: 1%;
  height: 100%; }
  .input-group-label:first-child {
    border-right: 0; }
  .input-group-label:last-child {
    border-left: 0; }

.input-group-field {
  border-radius: 0;
  height: 2.5rem; }

.input-group-button {
  padding-top: 0;
  padding-bottom: 0;
  text-align: center;
  height: 100%;
  width: 1%; }
  .input-group-button a,
  .input-group-button input,
  .input-group-button button {
    margin: 0; }

.input-group .input-group-button {
  display: table-cell; }

fieldset {
  border: 0;
  padding: 0;
  margin: 0; }

legend {
  margin-bottom: 0.5rem;
  max-width: 100%; }

.fieldset {
  border: 1px solid #cacaca;
  padding: 1.25rem;
  margin: 1.125rem 0; }
  .fieldset legend {
    background: #fefefe;
    padding: 0 0.1875rem;
    margin: 0;
    margin-left: -0.1875rem; }

select {
  height: 2.4375rem;
  padding: 0.5rem;
  border: 1px solid #cacaca;
  margin: 0 0 1rem;
  font-size: 1rem;
  font-family: inherit;
  line-height: normal;
  color: #0a0a0a;
  background-color: #fefefe;
  border-radius: 0;
  -webkit-appearance: none;
  -moz-appearance: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' width='32' height='24' viewBox='0 0 32 24'><polygon points='0,0 32,0 16,24' style='fill: rgb%28138, 138, 138%29'></polygon></svg>");
  background-size: 9px 6px;
  background-position: right -1rem center;
  background-origin: content-box;
  background-repeat: no-repeat;
  padding-right: 1.5rem; }
  @media screen and (min-width: 0\0) {
    select {
      background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg=="); } }
  select:disabled {
    background-color: #e6e6e6;
    cursor: default; }
  select::-ms-expand {
    display: none; }
  select[multiple] {
    height: auto;
    background-image: none; }

.is-invalid-input:not(:focus) {
  background-color: rgba(236, 88, 64, 0.1);
  border-color: #ec5840; }

.is-invalid-label {
  color: #ec5840; }

.form-error {
  display: none;
  margin-top: -0.5rem;
  margin-bottom: 1rem;
  font-size: 0.75rem;
  font-weight: bold;
  color: #ec5840; }
  .form-error.is-visible {
    display: block; }

input[type="range"] {
  -webkit-appearance: none;
  -moz-appearance: none;
  display: block;
  width: 100%;
  height: auto;
  cursor: pointer;
  margin-top: 0.45rem;
  margin-bottom: 0.45rem;
  border: 0;
  line-height: 1; }
  input[type="range"]:focus {
    outline: 0; }
  input[type="range"][disabled] {
    opacity: 0.25; }
  input[type="range"]::-webkit-slider-runnable-track {
    height: 0.5rem;
    background: #e6e6e6; }
  input[type="range"]::-webkit-slider-handle {
    -webkit-appearance: none;
    background: #92B631;
    width: 1.4rem;
    height: 1.4rem;
    margin-top: -0.45rem; }
  input[type="range"]::-moz-range-track {
    -moz-appearance: none;
    height: 0.5rem;
    background: #e6e6e6; }
  input[type="range"]::-moz-range-thumb {
    -moz-appearance: none;
    background: #92B631;
    width: 1.4rem;
    height: 1.4rem;
    margin-top: -0.45rem; }
  input[type="range"]::-ms-track {
    height: 0.5rem;
    background: #e6e6e6;
    color: transparent;
    border: 0;
    overflow: visible;
    border-top: 0.45rem solid #fefefe;
    border-bottom: 0.45rem solid #fefefe; }
  input[type="range"]::-ms-thumb {
    background: #92B631;
    width: 1.4rem;
    height: 1.4rem;
    border: 0; }
  input[type="range"]::-ms-fill-lower {
    background: #cacaca; }
  input[type="range"]::-ms-fill-upper {
    background: #e6e6e6; }
  output {
    line-height: 1.4rem;
    vertical-align: middle;
    margin-left: 0.5em; }

.accordion {
  list-style-type: none;
  background: #fefefe;
  margin-left: 0; }

.accordion-item:first-child > :first-child {
  border-radius: 0 0 0 0; }

.accordion-item:last-child > :last-child {
  border-radius: 0 0 0 0; }

.accordion-title {
  display: block;
  padding: 1.25rem 1rem;
  line-height: 1;
  font-size: 0.75rem;
  color: #92B631;
  position: relative;
  border: 1px solid #e6e6e6;
  border-bottom: 0; }
  :last-child:not(.is-active) > .accordion-title {
    border-radius: 0 0 0 0;
    border-bottom: 1px solid #e6e6e6; }
  .accordion-title:hover, .accordion-title:focus {
    background-color: #e6e6e6; }
  .accordion-title::before {
    content: '+';
    position: absolute;
    right: 1rem;
    top: 50%;
    margin-top: -0.5rem; }
  .is-active > .accordion-title::before {
    content: '–'; }

.accordion-content {
  padding: 1rem;
  display: none;
  border: 1px solid #e6e6e6;
  border-bottom: 0;
  background-color: #fefefe;
  color: #92B631; }
  :last-child > .accordion-content:last-child {
    border-bottom: 1px solid #e6e6e6; }

.is-accordion-submenu-parent > a {
  position: relative; }
  .is-accordion-submenu-parent > a::after {
    content: '';
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    border-color: #92B631 transparent transparent;
    border-top-style: solid;
    border-bottom-width: 0;
    position: absolute;
    top: 50%;
    margin-top: -4px;
    right: 1rem; }

.is-accordion-submenu-parent[aria-expanded='true'] > a::after {
  -ms-transform-origin: 50% 50%;
      transform-origin: 50% 50%;
  -ms-transform: scaleY(-1);
      transform: scaleY(-1); }

.badge {
  display: inline-block;
  padding: 0.3em;
  min-width: 2.1em;
  font-size: 0.6rem;
  text-align: center;
  border-radius: 50%;
  background: #92B631;
  color: #fefefe; }
  .badge.secondary {
    background: #777;
    color: #fefefe; }
  .badge.success {
    background: #3adb76;
    color: #fefefe; }
  .badge.warning {
    background: #ffae00;
    color: #fefefe; }
  .badge.alert {
    background: #ec5840;
    color: #fefefe; }

.breadcrumbs {
  list-style: none;
  margin: 0 0 1rem 0; }
  .breadcrumbs::before, .breadcrumbs::after {
    content: ' ';
    display: table; }
  .breadcrumbs::after {
    clear: both; }
  .breadcrumbs li {
    float: left;
    color: #0a0a0a;
    font-size: 0.6875rem;
    cursor: default;
    text-transform: uppercase; }
    .breadcrumbs li:not(:last-child)::after {
      color: #cacaca;
      content: "/";
      margin: 0 0.75rem;
      position: relative;
      top: 1px;
      opacity: 1; }
  .breadcrumbs a {
    color: #92B631; }
    .breadcrumbs a:hover {
      text-decoration: underline; }
  .breadcrumbs .disabled {
    color: #cacaca;
    cursor: not-allowed; }

.button-group {
  margin-bottom: 1rem;
  font-size: 0; }
  .button-group::before, .button-group::after {
    content: ' ';
    display: table; }
  .button-group::after {
    clear: both; }
  .button-group .button {
    margin: 0;
    margin-right: 1px;
    margin-bottom: 1px;
    font-size: 0.9rem; }
    .button-group .button:last-child {
      margin-right: 0; }
  .button-group.tiny .button {
    font-size: 0.6rem; }
  .button-group.small .button {
    font-size: 0.75rem; }
  .button-group.large .button {
    font-size: 1.25rem; }
  .button-group.expanded {
    margin-right: -1px; }
    .button-group.expanded::before, .button-group.expanded::after {
      display: none; }
    .button-group.expanded .button:first-child:nth-last-child(2), .button-group.expanded .button:first-child:nth-last-child(2):first-child:nth-last-child(2) ~ .button {
      display: inline-block;
      width: calc(50% - 1px);
      margin-right: 1px; }
      .button-group.expanded .button:first-child:nth-last-child(2):last-child, .button-group.expanded .button:first-child:nth-last-child(2):first-child:nth-last-child(2) ~ .button:last-child {
        margin-right: -6px; }
    .button-group.expanded .button:first-child:nth-last-child(3), .button-group.expanded .button:first-child:nth-last-child(3):first-child:nth-last-child(3) ~ .button {
      display: inline-block;
      width: calc(33.33333% - 1px);
      margin-right: 1px; }
      .button-group.expanded .button:first-child:nth-last-child(3):last-child, .button-group.expanded .button:first-child:nth-last-child(3):first-child:nth-last-child(3) ~ .button:last-child {
        margin-right: -6px; }
    .button-group.expanded .button:first-child:nth-last-child(4), .button-group.expanded .button:first-child:nth-last-child(4):first-child:nth-last-child(4) ~ .button {
      display: inline-block;
      width: calc(25% - 1px);
      margin-right: 1px; }
      .button-group.expanded .button:first-child:nth-last-child(4):last-child, .button-group.expanded .button:first-child:nth-last-child(4):first-child:nth-last-child(4) ~ .button:last-child {
        margin-right: -6px; }
    .button-group.expanded .button:first-child:nth-last-child(5), .button-group.expanded .button:first-child:nth-last-child(5):first-child:nth-last-child(5) ~ .button {
      display: inline-block;
      width: calc(20% - 1px);
      margin-right: 1px; }
      .button-group.expanded .button:first-child:nth-last-child(5):last-child, .button-group.expanded .button:first-child:nth-last-child(5):first-child:nth-last-child(5) ~ .button:last-child {
        margin-right: -6px; }
    .button-group.expanded .button:first-child:nth-last-child(6), .button-group.expanded .button:first-child:nth-last-child(6):first-child:nth-last-child(6) ~ .button {
      display: inline-block;
      width: calc(16.66667% - 1px);
      margin-right: 1px; }
      .button-group.expanded .button:first-child:nth-last-child(6):last-child, .button-group.expanded .button:first-child:nth-last-child(6):first-child:nth-last-child(6) ~ .button:last-child {
        margin-right: -6px; }
  .button-group.primary .button {
    background-color: #92B631;
    color: #fefefe; }
    .button-group.primary .button:hover, .button-group.primary .button:focus {
      background-color: #759227;
      color: #fefefe; }
  .button-group.secondary .button {
    background-color: #777;
    color: #fefefe; }
    .button-group.secondary .button:hover, .button-group.secondary .button:focus {
      background-color: #5f5f5f;
      color: #fefefe; }
  .button-group.success .button {
    background-color: #3adb76;
    color: #fefefe; }
    .button-group.success .button:hover, .button-group.success .button:focus {
      background-color: #22bb5b;
      color: #fefefe; }
  .button-group.warning .button {
    background-color: #ffae00;
    color: #fefefe; }
    .button-group.warning .button:hover, .button-group.warning .button:focus {
      background-color: #cc8b00;
      color: #fefefe; }
  .button-group.alert .button {
    background-color: #ec5840;
    color: #fefefe; }
    .button-group.alert .button:hover, .button-group.alert .button:focus {
      background-color: #da3116;
      color: #fefefe; }
  .button-group.stacked .button, .button-group.stacked-for-small .button, .button-group.stacked-for-medium .button {
    width: 100%; }
    .button-group.stacked .button:last-child, .button-group.stacked-for-small .button:last-child, .button-group.stacked-for-medium .button:last-child {
      margin-bottom: 0; }
  @media screen and (min-width: 40em) {
    .button-group.stacked-for-small .button {
      width: auto;
      margin-bottom: 0; } }
  @media screen and (min-width: 64em) {
    .button-group.stacked-for-medium .button {
      width: auto;
      margin-bottom: 0; } }
  @media screen and (max-width: 39.9375em) {
    .button-group.stacked-for-small.expanded {
      display: block; }
      .button-group.stacked-for-small.expanded .button {
        display: block;
        margin-right: 0; } }

.callout {
  margin: 0 0 1rem 0;
  padding: 1rem;
  border: 1px solid rgba(10, 10, 10, 0.25);
  border-radius: 0;
  position: relative;
  color: #0a0a0a;
  background-color: white; }
  .callout > :first-child {
    margin-top: 0; }
  .callout > :last-child {
    margin-bottom: 0; }
  .callout.primary {
    background-color: #f0f6de; }
  .callout.secondary {
    background-color: #ebebeb; }
  .callout.success {
    background-color: #e1faea; }
  .callout.warning {
    background-color: #fff3d9; }
  .callout.alert {
    background-color: #fce6e2; }
  .callout.small {
    padding-top: 0.5rem;
    padding-right: 0.5rem;
    padding-bottom: 0.5rem;
    padding-left: 0.5rem; }
  .callout.large {
    padding-top: 3rem;
    padding-right: 3rem;
    padding-bottom: 3rem;
    padding-left: 3rem; }

.close-button {
  position: absolute;
  color: #8a8a8a;
  right: 1rem;
  top: 0.5rem;
  font-size: 2em;
  line-height: 1;
  cursor: pointer; }
  [data-whatinput='mouse'] .close-button {
    outline: 0; }
  .close-button:hover, .close-button:focus {
    color: #0a0a0a; }

.menu {
  margin: 0;
  list-style-type: none; }
  .menu > li {
    display: table-cell;
    vertical-align: middle; }
    [data-whatinput='mouse'] .menu > li {
      outline: 0; }
  .menu > li > a {
    display: block;
    padding: 0.7rem 1rem;
    line-height: 1; }
  .menu input,
  .menu a,
  .menu button {
    margin-bottom: 0; }
  .menu > li > a img,
  .menu > li > a i,
  .menu > li > a svg {
    vertical-align: middle; }
    .menu > li > a img + span,
    .menu > li > a i + span,
    .menu > li > a svg + span {
      vertical-align: middle; }
  .menu > li > a img,
  .menu > li > a i,
  .menu > li > a svg {
    margin-right: 0.25rem;
    display: inline-block; }
  .menu > li {
    display: table-cell; }
  .menu.vertical > li {
    display: block; }
  @media screen and (min-width: 40em) {
    .menu.medium-horizontal > li {
      display: table-cell; }
    .menu.medium-vertical > li {
      display: block; } }
  @media screen and (min-width: 64em) {
    .menu.large-horizontal > li {
      display: table-cell; }
    .menu.large-vertical > li {
      display: block; } }
  .menu.simple li {
    line-height: 1;
    display: inline-block;
    margin-right: 1rem; }
  .menu.simple a {
    padding: 0; }
  .menu.align-right::before, .menu.align-right::after {
    content: ' ';
    display: table; }
  .menu.align-right::after {
    clear: both; }
  .menu.align-right > li {
    float: right; }
  .menu.expanded {
    width: 100%;
    display: table;
    table-layout: fixed; }
    .menu.expanded > li:first-child:last-child {
      width: 100%; }
  .menu.icon-top > li > a {
    text-align: center; }
    .menu.icon-top > li > a img,
    .menu.icon-top > li > a i,
    .menu.icon-top > li > a svg {
      display: block;
      margin: 0 auto 0.25rem; }
  .menu.nested {
    margin-left: 1rem; }
  .menu .active > a {
    color: #fefefe;
    background: #92B631; }

.menu-text {
  font-weight: bold;
  color: inherit;
  line-height: 1;
  padding-top: 0;
  padding-bottom: 0;
  padding: 0.7rem 1rem; }

.menu-centered {
  text-align: center; }
  .menu-centered > .menu {
    display: inline-block; }

.no-js [data-responsive-menu] ul {
  display: none; }

.menu-icon {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  cursor: pointer;
  width: 20px;
  height: 16px; }
  .menu-icon::after {
    content: '';
    position: absolute;
    display: block;
    width: 100%;
    height: 2px;
    background: #fefefe;
    top: 0;
    left: 0;
    box-shadow: 0 7px 0 #fefefe, 0 14px 0 #fefefe; }
  .menu-icon:hover::after {
    background: #cacaca;
    box-shadow: 0 7px 0 #cacaca, 0 14px 0 #cacaca; }

.menu-icon.dark {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  cursor: pointer;
  width: 20px;
  height: 16px; }
  .menu-icon.dark::after {
    content: '';
    position: absolute;
    display: block;
    width: 100%;
    height: 2px;
    background: #0a0a0a;
    top: 0;
    left: 0;
    box-shadow: 0 7px 0 #0a0a0a, 0 14px 0 #0a0a0a; }
  .menu-icon.dark:hover::after {
    background: #8a8a8a;
    box-shadow: 0 7px 0 #8a8a8a, 0 14px 0 #8a8a8a; }

.is-drilldown {
  position: relative;
  overflow: hidden; }
  .is-drilldown li {
    display: block !important; }

.is-drilldown-submenu {
  position: absolute;
  top: 0;
  left: 100%;
  z-index: -1;
  height: 100%;
  width: 100%;
  background: #fefefe;
  transition: transform 0.15s linear; }
  .is-drilldown-submenu.is-active {
    z-index: 1;
    display: block;
    -ms-transform: translateX(-100%);
        transform: translateX(-100%); }
  .is-drilldown-submenu.is-closing {
    -ms-transform: translateX(100%);
        transform: translateX(100%); }

.is-drilldown-submenu-parent > a {
  position: relative; }
  .is-drilldown-submenu-parent > a::after {
    content: '';
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    border-color: transparent transparent transparent #92B631;
    border-left-style: solid;
    border-right-width: 0;
    position: absolute;
    top: 50%;
    margin-top: -6px;
    right: 1rem; }

.js-drilldown-back > a::before {
  content: '';
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  border-color: transparent #92B631 transparent transparent;
  border-right-style: solid;
  border-left-width: 0;
  border-left-width: 0;
  display: inline-block;
  vertical-align: middle;
  margin-right: 0.75rem; }

.dropdown-pane {
  background-color: #fefefe;
  border: 1px solid #cacaca;
  border-radius: 0;
  display: block;
  font-size: 1rem;
  padding: 1rem;
  position: absolute;
  visibility: hidden;
  width: 300px;
  z-index: 10; }
  .dropdown-pane.is-open {
    visibility: visible; }

.dropdown-pane.tiny {
  width: 100px; }

.dropdown-pane.small {
  width: 200px; }

.dropdown-pane.large {
  width: 400px; }

.dropdown.menu > li.opens-left > .is-dropdown-submenu {
  left: auto;
  right: 0;
  top: 100%; }

.dropdown.menu > li.opens-right > .is-dropdown-submenu {
  right: auto;
  left: 0;
  top: 100%; }

.dropdown.menu > li.is-dropdown-submenu-parent > a {
  padding-right: 1.5rem;
  position: relative; }

.dropdown.menu > li.is-dropdown-submenu-parent > a::after {
  content: '';
  display: block;
  width: 0;
  height: 0;
  border: inset 5px;
  border-color: #92B631 transparent transparent;
  border-top-style: solid;
  border-bottom-width: 0;
  right: 5px;
  margin-top: -2px; }

[data-whatinput='mouse'] .dropdown.menu a {
  outline: 0; }

.no-js .dropdown.menu ul {
  display: none; }

.dropdown.menu.vertical > li .is-dropdown-submenu {
  top: 0; }

.dropdown.menu.vertical > li.opens-left > .is-dropdown-submenu {
  left: auto;
  right: 100%; }

.dropdown.menu.vertical > li.opens-right > .is-dropdown-submenu {
  right: auto;
  left: 100%; }

.dropdown.menu.vertical > li > a::after {
  right: 14px;
  margin-top: -3px; }

.dropdown.menu.vertical > li.opens-left > a::after {
  content: '';
  display: block;
  width: 0;
  height: 0;
  border: inset 5px;
  border-color: transparent #92B631 transparent transparent;
  border-right-style: solid;
  border-left-width: 0; }

.dropdown.menu.vertical > li.opens-right > a::after {
  content: '';
  display: block;
  width: 0;
  height: 0;
  border: inset 5px;
  border-color: transparent transparent transparent #92B631;
  border-left-style: solid;
  border-right-width: 0; }

@media screen and (min-width: 40em) {
  .dropdown.menu.medium-horizontal > li.opens-left > .is-dropdown-submenu {
    left: auto;
    right: 0;
    top: 100%; }
  .dropdown.menu.medium-horizontal > li.opens-right > .is-dropdown-submenu {
    right: auto;
    left: 0;
    top: 100%; }
  .dropdown.menu.medium-horizontal > li.is-dropdown-submenu-parent > a {
    padding-right: 1.5rem;
    position: relative; }
  .dropdown.menu.medium-horizontal > li.is-dropdown-submenu-parent > a::after {
    content: '';
    display: block;
    width: 0;
    height: 0;
    border: inset 5px;
    border-color: #92B631 transparent transparent;
    border-top-style: solid;
    border-bottom-width: 0;
    right: 5px;
    margin-top: -2px; }
  .dropdown.menu.medium-vertical > li .is-dropdown-submenu {
    top: 0; }
  .dropdown.menu.medium-vertical > li.opens-left > .is-dropdown-submenu {
    left: auto;
    right: 100%; }
  .dropdown.menu.medium-vertical > li.opens-right > .is-dropdown-submenu {
    right: auto;
    left: 100%; }
  .dropdown.menu.medium-vertical > li > a::after {
    right: 14px;
    margin-top: -3px; }
  .dropdown.menu.medium-vertical > li.opens-left > a::after {
    content: '';
    display: block;
    width: 0;
    height: 0;
    border: inset 5px;
    border-color: transparent #92B631 transparent transparent;
    border-right-style: solid;
    border-left-width: 0; }
  .dropdown.menu.medium-vertical > li.opens-right > a::after {
    content: '';
    display: block;
    width: 0;
    height: 0;
    border: inset 5px;
    border-color: transparent transparent transparent #92B631;
    border-left-style: solid;
    border-right-width: 0; } }

@media screen and (min-width: 64em) {
  .dropdown.menu.large-horizontal > li.opens-left > .is-dropdown-submenu {
    left: auto;
    right: 0;
    top: 100%; }
  .dropdown.menu.large-horizontal > li.opens-right > .is-dropdown-submenu {
    right: auto;
    left: 0;
    top: 100%; }
  .dropdown.menu.large-horizontal > li.is-dropdown-submenu-parent > a {
    padding-right: 1.5rem;
    position: relative; }
  .dropdown.menu.large-horizontal > li.is-dropdown-submenu-parent > a::after {
    content: '';
    display: block;
    width: 0;
    height: 0;
    border: inset 5px;
    border-color: #92B631 transparent transparent;
    border-top-style: solid;
    border-bottom-width: 0;
    right: 5px;
    margin-top: -2px; }
  .dropdown.menu.large-vertical > li .is-dropdown-submenu {
    top: 0; }
  .dropdown.menu.large-vertical > li.opens-left > .is-dropdown-submenu {
    left: auto;
    right: 100%; }
  .dropdown.menu.large-vertical > li.opens-right > .is-dropdown-submenu {
    right: auto;
    left: 100%; }
  .dropdown.menu.large-vertical > li > a::after {
    right: 14px;
    margin-top: -3px; }
  .dropdown.menu.large-vertical > li.opens-left > a::after {
    content: '';
    display: block;
    width: 0;
    height: 0;
    border: inset 5px;
    border-color: transparent #92B631 transparent transparent;
    border-right-style: solid;
    border-left-width: 0; }
  .dropdown.menu.large-vertical > li.opens-right > a::after {
    content: '';
    display: block;
    width: 0;
    height: 0;
    border: inset 5px;
    border-color: transparent transparent transparent #92B631;
    border-left-style: solid;
    border-right-width: 0; } }

.dropdown.menu.align-right .is-dropdown-submenu.first-sub {
  top: 100%;
  left: auto;
  right: 0; }

.is-dropdown-menu.vertical {
  width: 100px; }
  .is-dropdown-menu.vertical.align-right {
    float: right; }

.is-dropdown-submenu-parent {
  position: relative; }
  .is-dropdown-submenu-parent a::after {
    position: absolute;
    top: 50%;
    right: 5px;
    margin-top: -2px; }
  .is-dropdown-submenu-parent.opens-inner > .is-dropdown-submenu {
    top: 100%;
    left: auto; }
  .is-dropdown-submenu-parent.opens-left > .is-dropdown-submenu {
    left: auto;
    right: 100%; }
  .is-dropdown-submenu-parent.opens-right > .is-dropdown-submenu {
    right: auto;
    left: 100%; }

.is-dropdown-submenu {
  display: none;
  position: absolute;
  top: 0;
  left: 100%;
  min-width: 200px;
  z-index: 1;
  background: #cacaca;
  border: 1px solid #cacaca; }
  .is-dropdown-submenu .is-dropdown-submenu-parent > a::after {
    right: 14px;
    margin-top: -3px; }
  .is-dropdown-submenu .is-dropdown-submenu-parent.opens-left > a::after {
    content: '';
    display: block;
    width: 0;
    height: 0;
    border: inset 5px;
    border-color: transparent #92B631 transparent transparent;
    border-right-style: solid;
    border-left-width: 0; }
  .is-dropdown-submenu .is-dropdown-submenu-parent.opens-right > a::after {
    content: '';
    display: block;
    width: 0;
    height: 0;
    border: inset 5px;
    border-color: transparent transparent transparent #92B631;
    border-left-style: solid;
    border-right-width: 0; }
  .is-dropdown-submenu .is-dropdown-submenu {
    margin-top: -1px; }
  .is-dropdown-submenu > li {
    width: 100%; }
  .is-dropdown-submenu.js-dropdown-active {
    display: block; }

.flex-video {
  position: relative;
  height: 0;
  padding-bottom: 75%;
  margin-bottom: 1rem;
  overflow: hidden; }
  .flex-video iframe,
  .flex-video object,
  .flex-video embed,
  .flex-video video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%; }
  .flex-video.widescreen {
    padding-bottom: 56.25%; }
  .flex-video.vimeo {
    padding-top: 0; }

.label {
  display: inline-block;
  padding: 0.33333rem 0.5rem;
  font-size: 0.8rem;
  line-height: 1;
  white-space: nowrap;
  cursor: default;
  border-radius: 0;
  background: #92B631;
  color: #fefefe; }
  .label.secondary {
    background: #777;
    color: #fefefe; }
  .label.success {
    background: #3adb76;
    color: #fefefe; }
  .label.warning {
    background: #ffae00;
    color: #fefefe; }
  .label.alert {
    background: #ec5840;
    color: #fefefe; }

.media-object {
  margin-bottom: 1rem;
  display: block; }
  .media-object img {
    max-width: none; }
  @media screen and (max-width: 39.9375em) {
    .media-object.stack-for-small .media-object-section {
      padding: 0;
      padding-bottom: 1rem;
      display: block; }
      .media-object.stack-for-small .media-object-section img {
        width: 100%; } }

.media-object-section {
  display: table-cell;
  vertical-align: top; }
  .media-object-section:first-child {
    padding-right: 1rem; }
  .media-object-section:last-child:not(:nth-child(2)) {
    padding-left: 1rem; }
  .media-object-section > :last-child {
    margin-bottom: 0; }
  .media-object-section.middle {
    vertical-align: middle; }
  .media-object-section.bottom {
    vertical-align: bottom; }

html,
body {
  height: 100%; }

.off-canvas-wrapper {
  width: 100%;
  overflow-x: hidden;
  position: relative;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  -webkit-overflow-scrolling: auto; }

.off-canvas-wrapper-inner {
  position: relative;
  width: 100%;
  transition: transform 0.5s ease; }
  .off-canvas-wrapper-inner::before, .off-canvas-wrapper-inner::after {
    content: ' ';
    display: table; }
  .off-canvas-wrapper-inner::after {
    clear: both; }

.off-canvas-content,
.off-canvas-content {
  min-height: 100%;
  background: #fefefe;
  transition: transform 0.5s ease;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  z-index: 1;
  padding-bottom: 0.1px;
  box-shadow: 0 0 10px rgba(10, 10, 10, 0.5); }

.js-off-canvas-exit {
  display: none;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(254, 254, 254, 0.25);
  cursor: pointer;
  transition: background 0.5s ease; }

.off-canvas {
  position: absolute;
  background: #e6e6e6;
  z-index: -1;
  max-height: 100%;
  overflow-y: auto;
  -ms-transform: translateX(0);
      transform: translateX(0); }
  [data-whatinput='mouse'] .off-canvas {
    outline: 0; }
  .off-canvas.position-left {
    left: -250px;
    top: 0;
    width: 250px; }
    .is-open-left {
      -ms-transform: translateX(250px);
          transform: translateX(250px); }
  .off-canvas.position-right {
    right: -250px;
    top: 0;
    width: 250px; }
    .is-open-right {
      -ms-transform: translateX(-250px);
          transform: translateX(-250px); }

@media screen and (min-width: 40em) {
  .position-left.reveal-for-medium {
    left: 0;
    z-index: auto;
    position: fixed; }
    .position-left.reveal-for-medium ~ .off-canvas-content {
      margin-left: 250px; }
  .position-right.reveal-for-medium {
    right: 0;
    z-index: auto;
    position: fixed; }
    .position-right.reveal-for-medium ~ .off-canvas-content {
      margin-right: 250px; } }

@media screen and (min-width: 64em) {
  .position-left.reveal-for-large {
    left: 0;
    z-index: auto;
    position: fixed; }
    .position-left.reveal-for-large ~ .off-canvas-content {
      margin-left: 250px; }
  .position-right.reveal-for-large {
    right: 0;
    z-index: auto;
    position: fixed; }
    .position-right.reveal-for-large ~ .off-canvas-content {
      margin-right: 250px; } }

.orbit {
  position: relative; }

.orbit-container {
  position: relative;
  margin: 0;
  overflow: hidden;
  list-style: none; }

.orbit-slide {
  width: 100%;
  max-height: 100%; }
  .orbit-slide.no-motionui.is-active {
    top: 0;
    left: 0; }

.orbit-figure {
  margin: 0; }

.orbit-image {
  margin: 0;
  width: 100%;
  max-width: 100%; }

.orbit-caption {
  position: absolute;
  bottom: 0;
  width: 100%;
  padding: 1rem;
  margin-bottom: 0;
  color: #fefefe;
  background-color: rgba(10, 10, 10, 0.5); }

.orbit-previous, .orbit-next {
  position: absolute;
  top: 50%;
  -ms-transform: translateY(-50%);
      transform: translateY(-50%);
  z-index: 10;
  padding: 1rem;
  color: #fefefe; }
  [data-whatinput='mouse'] .orbit-previous, [data-whatinput='mouse'] .orbit-next {
    outline: 0; }
  .orbit-previous:hover, .orbit-next:hover, .orbit-previous:active, .orbit-next:active, .orbit-previous:focus, .orbit-next:focus {
    background-color: rgba(10, 10, 10, 0.5); }

.orbit-previous {
  left: 0; }

.orbit-next {
  left: auto;
  right: 0; }

.orbit-bullets {
  position: relative;
  margin-top: 0.8rem;
  margin-bottom: 0.8rem;
  text-align: center; }
  [data-whatinput='mouse'] .orbit-bullets {
    outline: 0; }
  .orbit-bullets button {
    width: 1.2rem;
    height: 1.2rem;
    margin: 0.1rem;
    background-color: #cacaca;
    border-radius: 50%; }
    .orbit-bullets button:hover {
      background-color: #8a8a8a; }
    .orbit-bullets button.is-active {
      background-color: #8a8a8a; }

.pagination {
  margin-left: 0;
  margin-bottom: 1rem; }
  .pagination::before, .pagination::after {
    content: ' ';
    display: table; }
  .pagination::after {
    clear: both; }
  .pagination li {
    font-size: 0.875rem;
    margin-right: 0.0625rem;
    border-radius: 0;
    display: none; }
    .pagination li:last-child, .pagination li:first-child {
      display: inline-block; }
    @media screen and (min-width: 40em) {
      .pagination li {
        display: inline-block; } }
  .pagination a,
  .pagination button {
    color: #0a0a0a;
    display: block;
    padding: 0.1875rem 0.625rem;
    border-radius: 0; }
    .pagination a:hover,
    .pagination button:hover {
      background: #e6e6e6; }
  .pagination .current {
    padding: 0.1875rem 0.625rem;
    background: #92B631;
    color: #fefefe;
    cursor: default; }
  .pagination .disabled {
    padding: 0.1875rem 0.625rem;
    color: #cacaca;
    cursor: not-allowed; }
    .pagination .disabled:hover {
      background: transparent; }
  .pagination .ellipsis::after {
    content: '\2026';
    padding: 0.1875rem 0.625rem;
    color: #0a0a0a; }

.pagination-previous a::before,
.pagination-previous.disabled::before {
  content: '\00ab';
  display: inline-block;
  margin-right: 0.5rem; }

.pagination-next a::after,
.pagination-next.disabled::after {
  content: '\00bb';
  display: inline-block;
  margin-left: 0.5rem; }

.progress {
  background-color: #cacaca;
  height: 1rem;
  margin-bottom: 1rem;
  border-radius: 0; }
  .progress.primary .progress-meter {
    background-color: #92B631; }
  .progress.secondary .progress-meter {
    background-color: #777; }
  .progress.success .progress-meter {
    background-color: #3adb76; }
  .progress.warning .progress-meter {
    background-color: #ffae00; }
  .progress.alert .progress-meter {
    background-color: #ec5840; }

.progress-meter {
  position: relative;
  display: block;
  width: 0%;
  height: 100%;
  background-color: #92B631; }

.progress-meter-text {
  position: absolute;
  top: 50%;
  left: 50%;
  -ms-transform: translate(-50%, -50%);
      transform: translate(-50%, -50%);
  position: absolute;
  margin: 0;
  font-size: 0.75rem;
  font-weight: bold;
  color: #fefefe;
  white-space: nowrap; }

.slider {
  position: relative;
  height: 0.5rem;
  margin-top: 1.25rem;
  margin-bottom: 2.25rem;
  background-color: #e6e6e6;
  cursor: pointer;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  -ms-touch-action: none;
      touch-action: none; }

.slider-fill {
  position: absolute;
  top: 0;
  left: 0;
  display: inline-block;
  max-width: 100%;
  height: 0.5rem;
  background-color: #cacaca;
  transition: all 0.2s ease-in-out; }
  .slider-fill.is-dragging {
    transition: all 0s linear; }

.slider-handle {
  position: absolute;
  top: 50%;
  -ms-transform: translateY(-50%);
      transform: translateY(-50%);
  position: absolute;
  left: 0;
  z-index: 1;
  display: inline-block;
  width: 1.4rem;
  height: 1.4rem;
  background-color: #92B631;
  transition: all 0.2s ease-in-out;
  -ms-touch-action: manipulation;
      touch-action: manipulation;
  border-radius: 0; }
  [data-whatinput='mouse'] .slider-handle {
    outline: 0; }
  .slider-handle:hover {
    background-color: #7c9b2a; }
  .slider-handle.is-dragging {
    transition: all 0s linear; }

.slider.disabled,
.slider[disabled] {
  opacity: 0.25;
  cursor: not-allowed; }

.slider.vertical {
  display: inline-block;
  width: 0.5rem;
  height: 12.5rem;
  margin: 0 1.25rem;
  -ms-transform: scale(1, -1);
      transform: scale(1, -1); }
  .slider.vertical .slider-fill {
    top: 0;
    width: 0.5rem;
    max-height: 100%; }
  .slider.vertical .slider-handle {
    position: absolute;
    top: 0;
    left: 50%;
    width: 1.4rem;
    height: 1.4rem;
    -ms-transform: translateX(-50%);
        transform: translateX(-50%); }

.sticky-container {
  position: relative; }

.sticky {
  position: absolute;
  z-index: 0;
  transform: translate3d(0, 0, 0); }

.sticky.is-stuck {
  position: fixed;
  z-index: 5; }
  .sticky.is-stuck.is-at-top {
    top: 0; }
  .sticky.is-stuck.is-at-bottom {
    bottom: 0; }

.sticky.is-anchored {
  position: absolute;
  left: auto;
  right: auto; }
  .sticky.is-anchored.is-at-bottom {
    bottom: 0; }

body.is-reveal-open {
  overflow: hidden; }

html.is-reveal-open,
html.is-reveal-open body {
  height: 100%;
  overflow: hidden;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none; }

.reveal-overlay {
  display: none;
  position: fixed;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 1005;
  background-color: rgba(10, 10, 10, 0.45);
  overflow-y: scroll; }

.reveal {
  display: none;
  z-index: 1006;
  padding: 1rem;
  border: 1px solid #cacaca;
  background-color: #fefefe;
  border-radius: 0;
  position: relative;
  top: 100px;
  margin-left: auto;
  margin-right: auto;
  overflow-y: auto; }
  [data-whatinput='mouse'] .reveal {
    outline: 0; }
  @media screen and (min-width: 40em) {
    .reveal {
      min-height: 0; } }
  .reveal .column, .reveal .columns,
  .reveal .columns {
    min-width: 0; }
  .reveal > :last-child {
    margin-bottom: 0; }
  @media screen and (min-width: 40em) {
    .reveal {
      width: 600px;
      max-width: 75rem; } }
  @media screen and (min-width: 40em) {
    .reveal .reveal {
      left: auto;
      right: auto;
      margin: 0 auto; } }
  .reveal.collapse {
    padding: 0; }
  @media screen and (min-width: 40em) {
    .reveal.tiny {
      width: 30%;
      max-width: 75rem; } }
  @media screen and (min-width: 40em) {
    .reveal.small {
      width: 50%;
      max-width: 75rem; } }
  @media screen and (min-width: 40em) {
    .reveal.large {
      width: 90%;
      max-width: 75rem; } }
  .reveal.full {
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    height: 100vh;
    min-height: 100vh;
    max-width: none;
    margin-left: 0;
    border: 0;
    border-radius: 0; }
  @media screen and (max-width: 39.9375em) {
    .reveal {
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      height: 100vh;
      min-height: 100vh;
      max-width: none;
      margin-left: 0;
      border: 0;
      border-radius: 0; } }
  .reveal.without-overlay {
    position: fixed; }

.switch {
  margin-bottom: 1rem;
  outline: 0;
  position: relative;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  color: #fefefe;
  font-weight: bold;
  font-size: 0.875rem; }

.switch-input {
  opacity: 0;
  position: absolute; }

.switch-paddle {
  background: #cacaca;
  cursor: pointer;
  display: block;
  position: relative;
  width: 4rem;
  height: 2rem;
  transition: all 0.25s ease-out;
  border-radius: 0;
  color: inherit;
  font-weight: inherit; }
  input + .switch-paddle {
    margin: 0; }
  .switch-paddle::after {
    background: #fefefe;
    content: '';
    display: block;
    position: absolute;
    height: 1.5rem;
    left: 0.25rem;
    top: 0.25rem;
    width: 1.5rem;
    transition: all 0.25s ease-out;
    transform: translate3d(0, 0, 0);
    border-radius: 0; }
  input:checked ~ .switch-paddle {
    background: #92B631; }
    input:checked ~ .switch-paddle::after {
      left: 2.25rem; }
  [data-whatinput='mouse'] input:focus ~ .switch-paddle {
    outline: 0; }

.switch-active, .switch-inactive {
  position: absolute;
  top: 50%;
  -ms-transform: translateY(-50%);
      transform: translateY(-50%); }

.switch-active {
  left: 8%;
  display: none; }
  input:checked + label > .switch-active {
    display: block; }

.switch-inactive {
  right: 15%; }
  input:checked + label > .switch-inactive {
    display: none; }

.switch.tiny .switch-paddle {
  width: 3rem;
  height: 1.5rem;
  font-size: 0.625rem; }

.switch.tiny .switch-paddle::after {
  width: 1rem;
  height: 1rem; }

.switch.tiny input:checked ~ .switch-paddle::after {
  left: 1.75rem; }

.switch.small .switch-paddle {
  width: 3.5rem;
  height: 1.75rem;
  font-size: 0.75rem; }

.switch.small .switch-paddle::after {
  width: 1.25rem;
  height: 1.25rem; }

.switch.small input:checked ~ .switch-paddle::after {
  left: 2rem; }

.switch.large .switch-paddle {
  width: 5rem;
  height: 2.5rem;
  font-size: 1rem; }

.switch.large .switch-paddle::after {
  width: 2rem;
  height: 2rem; }

.switch.large input:checked ~ .switch-paddle::after {
  left: 2.75rem; }

table {
  width: 100%;
  margin-bottom: 1rem;
  border-radius: 0; }
  table thead,
  table tbody,
  table tfoot {
    border: 1px solid #f1f1f1;
    background-color: #fefefe; }
  table caption {
    font-weight: bold;
    padding: 0.5rem 0.625rem 0.625rem; }
  table thead,
  table tfoot {
    background: #f8f8f8;
    color: #0a0a0a; }
    table thead tr,
    table tfoot tr {
      background: transparent; }
    table thead th,
    table thead td,
    table tfoot th,
    table tfoot td {
      padding: 0.5rem 0.625rem 0.625rem;
      font-weight: bold;
      text-align: left; }
  table tbody tr:nth-child(even) {
    background-color: #f1f1f1; }
  table tbody th,
  table tbody td {
    padding: 0.5rem 0.625rem 0.625rem; }

@media screen and (max-width: 63.9375em) {
  table.stack thead {
    display: none; }
  table.stack tfoot {
    display: none; }
  table.stack tr,
  table.stack th,
  table.stack td {
    display: block; }
  table.stack td {
    border-top: 0; } }

table.scroll {
  display: block;
  width: 100%;
  overflow-x: auto; }

table.hover tr:hover {
  background-color: #f9f9f9; }

table.hover tr:nth-of-type(even):hover {
  background-color: #ececec; }

.table-scroll {
  overflow-x: auto; }
  .table-scroll table {
    width: auto; }

.tabs {
  margin: 0;
  list-style-type: none;
  background: #fefefe;
  border: 1px solid #e6e6e6; }
  .tabs::before, .tabs::after {
    content: ' ';
    display: table; }
  .tabs::after {
    clear: both; }

.tabs.vertical > li {
  width: auto;
  float: none;
  display: block; }

.tabs.simple > li > a {
  padding: 0; }
  .tabs.simple > li > a:hover {
    background: transparent; }

.tabs.primary {
  background: #92B631; }
  .tabs.primary > li > a {
    color: #fefefe; }
    .tabs.primary > li > a:hover, .tabs.primary > li > a:focus {
      background: #8bad2f; }

.tabs-title {
  float: left; }
  .tabs-title > a {
    display: block;
    padding: 1.25rem 1.5rem;
    line-height: 1;
    font-size: 0.75rem; }
    .tabs-title > a:hover {
      background: #fefefe; }
    .tabs-title > a:focus, .tabs-title > a[aria-selected='true'] {
      background: #e6e6e6; }

.tabs-content {
  background: #fefefe;
  transition: all 0.5s ease;
  border: 1px solid #e6e6e6;
  border-top: 0; }

.tabs-content.vertical {
  border: 1px solid #e6e6e6;
  border-left: 0; }

.tabs-panel {
  display: none;
  padding: 1rem; }
  .tabs-panel.is-active {
    display: block; }

.thumbnail {
  border: solid 4px #fefefe;
  box-shadow: 0 0 0 1px rgba(10, 10, 10, 0.2);
  display: inline-block;
  line-height: 0;
  max-width: 100%;
  transition: box-shadow 200ms ease-out;
  border-radius: 0;
  margin-bottom: 1rem; }
  .thumbnail:hover, .thumbnail:focus {
    box-shadow: 0 0 6px 1px rgba(146, 182, 49, 0.5); }

.title-bar {
  background: #0a0a0a;
  color: #fefefe;
  padding: 0.5rem; }
  .title-bar::before, .title-bar::after {
    content: ' ';
    display: table; }
  .title-bar::after {
    clear: both; }
  .title-bar .menu-icon {
    margin-left: 0.25rem;
    margin-right: 0.25rem; }

.title-bar-left {
  float: left; }

.title-bar-right {
  float: right;
  text-align: right; }

.title-bar-title {
  font-weight: bold;
  vertical-align: middle;
  display: inline-block; }

.menu-icon.dark {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  cursor: pointer;
  width: 20px;
  height: 16px; }
  .menu-icon.dark::after {
    content: '';
    position: absolute;
    display: block;
    width: 100%;
    height: 2px;
    background: #0a0a0a;
    top: 0;
    left: 0;
    box-shadow: 0 7px 0 #0a0a0a, 0 14px 0 #0a0a0a; }
  .menu-icon.dark:hover::after {
    background: #8a8a8a;
    box-shadow: 0 7px 0 #8a8a8a, 0 14px 0 #8a8a8a; }

.has-tip {
  border-bottom: dotted 1px #8a8a8a;
  font-weight: bold;
  position: relative;
  display: inline-block;
  cursor: help; }

.tooltip {
  background-color: #0a0a0a;
  color: #fefefe;
  font-size: 80%;
  padding: 0.75rem;
  position: absolute;
  z-index: 10;
  top: calc(100% + 0.6495rem);
  max-width: 10rem !important;
  border-radius: 0; }
  .tooltip::before {
    content: '';
    display: block;
    width: 0;
    height: 0;
    border: inset 0.75rem;
    border-color: transparent transparent #0a0a0a;
    border-bottom-style: solid;
    border-top-width: 0;
    bottom: 100%;
    position: absolute;
    left: 50%;
    -ms-transform: translateX(-50%);
        transform: translateX(-50%); }
  .tooltip.top::before {
    content: '';
    display: block;
    width: 0;
    height: 0;
    border: inset 0.75rem;
    border-color: #0a0a0a transparent transparent;
    border-top-style: solid;
    border-bottom-width: 0;
    top: 100%;
    bottom: auto; }
  .tooltip.left::before {
    content: '';
    display: block;
    width: 0;
    height: 0;
    border: inset 0.75rem;
    border-color: transparent transparent transparent #0a0a0a;
    border-left-style: solid;
    border-right-width: 0;
    bottom: auto;
    left: 100%;
    top: 50%;
    -ms-transform: translateY(-50%);
        transform: translateY(-50%); }
  .tooltip.right::before {
    content: '';
    display: block;
    width: 0;
    height: 0;
    border: inset 0.75rem;
    border-color: transparent #0a0a0a transparent transparent;
    border-right-style: solid;
    border-left-width: 0;
    bottom: auto;
    left: auto;
    right: 100%;
    top: 50%;
    -ms-transform: translateY(-50%);
        transform: translateY(-50%); }

.top-bar {
  padding: 0.5rem; }
  .top-bar::before, .top-bar::after {
    content: ' ';
    display: table; }
  .top-bar::after {
    clear: both; }
  .top-bar,
  .top-bar ul {
    background-color: #e6e6e6; }
  .top-bar input {
    max-width: 200px;
    margin-right: 1rem; }
  .top-bar .input-group-field {
    width: 100%;
    margin-right: 0; }
  .top-bar input.button {
    width: auto; }
  .top-bar .top-bar-left,
  .top-bar .top-bar-right {
    width: 100%; }
  @media screen and (min-width: 40em) {
    .top-bar .top-bar-left,
    .top-bar .top-bar-right {
      width: auto; } }
  @media screen and (max-width: 63.9375em) {
    .top-bar.stacked-for-medium .top-bar-left,
    .top-bar.stacked-for-medium .top-bar-right {
      width: 100%; } }
  @media screen and (max-width: 74.9375em) {
    .top-bar.stacked-for-large .top-bar-left,
    .top-bar.stacked-for-large .top-bar-right {
      width: 100%; } }

.top-bar-title {
  float: left;
  margin-right: 1rem; }

.top-bar-left {
  float: left; }

.top-bar-right {
  float: right; }

.hide {
  display: none !important; }

.invisible {
  visibility: hidden; }

@media screen and (max-width: 39.9375em) {
  .hide-for-small-only {
    display: none !important; } }

@media screen and (max-width: 0em), screen and (min-width: 40em) {
  .show-for-small-only {
    display: none !important; } }

@media screen and (min-width: 40em) {
  .hide-for-medium {
    display: none !important; } }

@media screen and (max-width: 39.9375em) {
  .show-for-medium {
    display: none !important; } }

@media screen and (min-width: 40em) and (max-width: 63.9375em) {
  .hide-for-medium-only {
    display: none !important; } }

@media screen and (max-width: 39.9375em), screen and (min-width: 64em) {
  .show-for-medium-only {
    display: none !important; } }

@media screen and (min-width: 64em) {
  .hide-for-large {
    display: none !important; } }

@media screen and (max-width: 63.9375em) {
  .show-for-large {
    display: none !important; } }

@media screen and (min-width: 64em) and (max-width: 74.9375em) {
  .hide-for-large-only {
    display: none !important; } }

@media screen and (max-width: 63.9375em), screen and (min-width: 75em) {
  .show-for-large-only {
    display: none !important; } }

.show-for-sr,
.show-on-focus {
  position: absolute !important;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0); }

.show-on-focus:active, .show-on-focus:focus {
  position: static !important;
  height: auto;
  width: auto;
  overflow: visible;
  clip: auto; }

.show-for-landscape,
.hide-for-portrait {
  display: block !important; }
  @media screen and (orientation: landscape) {
    .show-for-landscape,
    .hide-for-portrait {
      display: block !important; } }
  @media screen and (orientation: portrait) {
    .show-for-landscape,
    .hide-for-portrait {
      display: none !important; } }

.hide-for-landscape,
.show-for-portrait {
  display: none !important; }
  @media screen and (orientation: landscape) {
    .hide-for-landscape,
    .show-for-portrait {
      display: none !important; } }
  @media screen and (orientation: portrait) {
    .hide-for-landscape,
    .show-for-portrait {
      display: block !important; } }

.float-left {
  float: left !important; }

.float-right {
  float: right !important; }

.float-center {
  display: block;
  margin-left: auto;
  margin-right: auto; }

.clearfix::before, .clearfix::after {
  content: ' ';
  display: table; }

.clearfix::after {
  clear: both; }

.slide-in-down.mui-enter {
  transition-duration: 500ms;
  transition-timing-function: linear;
  -ms-transform: translateY(-100%);
      transform: translateY(-100%);
  transition-property: transform, opacity;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden; }

.slide-in-down.mui-enter.mui-enter-active {
  -ms-transform: translateY(0);
      transform: translateY(0); }

.slide-in-left.mui-enter {
  transition-duration: 500ms;
  transition-timing-function: linear;
  -ms-transform: translateX(-100%);
      transform: translateX(-100%);
  transition-property: transform, opacity;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden; }

.slide-in-left.mui-enter.mui-enter-active {
  -ms-transform: translateX(0);
      transform: translateX(0); }

.slide-in-up.mui-enter {
  transition-duration: 500ms;
  transition-timing-function: linear;
  -ms-transform: translateY(100%);
      transform: translateY(100%);
  transition-property: transform, opacity;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden; }

.slide-in-up.mui-enter.mui-enter-active {
  -ms-transform: translateY(0);
      transform: translateY(0); }

.slide-in-right.mui-enter {
  transition-duration: 500ms;
  transition-timing-function: linear;
  -ms-transform: translateX(100%);
      transform: translateX(100%);
  transition-property: transform, opacity;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden; }

.slide-in-right.mui-enter.mui-enter-active {
  -ms-transform: translateX(0);
      transform: translateX(0); }

.slide-out-down.mui-leave {
  transition-duration: 500ms;
  transition-timing-function: linear;
  -ms-transform: translateY(0);
      transform: translateY(0);
  transition-property: transform, opacity;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden; }

.slide-out-down.mui-leave.mui-leave-active {
  -ms-transform: translateY(100%);
      transform: translateY(100%); }

.slide-out-right.mui-leave {
  transition-duration: 500ms;
  transition-timing-function: linear;
  -ms-transform: translateX(0);
      transform: translateX(0);
  transition-property: transform, opacity;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden; }

.slide-out-right.mui-leave.mui-leave-active {
  -ms-transform: translateX(100%);
      transform: translateX(100%); }

.slide-out-up.mui-leave {
  transition-duration: 500ms;
  transition-timing-function: linear;
  -ms-transform: translateY(0);
      transform: translateY(0);
  transition-property: transform, opacity;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden; }

.slide-out-up.mui-leave.mui-leave-active {
  -ms-transform: translateY(-100%);
      transform: translateY(-100%); }

.slide-out-left.mui-leave {
  transition-duration: 500ms;
  transition-timing-function: linear;
  -ms-transform: translateX(0);
      transform: translateX(0);
  transition-property: transform, opacity;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden; }

.slide-out-left.mui-leave.mui-leave-active {
  -ms-transform: translateX(-100%);
      transform: translateX(-100%); }

.fade-in.mui-enter {
  transition-duration: 500ms;
  transition-timing-function: linear;
  opacity: 0;
  transition-property: opacity; }

.fade-in.mui-enter.mui-enter-active {
  opacity: 1; }

.fade-out.mui-leave {
  transition-duration: 500ms;
  transition-timing-function: linear;
  opacity: 1;
  transition-property: opacity; }

.fade-out.mui-leave.mui-leave-active {
  opacity: 0; }

.hinge-in-from-top.mui-enter {
  transition-duration: 500ms;
  transition-timing-function: linear;
  transform: perspective(2000px) rotateX(-90deg);
  -ms-transform-origin: top;
      transform-origin: top;
  transition-property: transform, opacity;
  opacity: 0; }

.hinge-in-from-top.mui-enter.mui-enter-active {
  transform: perspective(2000px) rotate(0deg);
  opacity: 1; }

.hinge-in-from-right.mui-enter {
  transition-duration: 500ms;
  transition-timing-function: linear;
  transform: perspective(2000px) rotateY(-90deg);
  -ms-transform-origin: right;
      transform-origin: right;
  transition-property: transform, opacity;
  opacity: 0; }

.hinge-in-from-right.mui-enter.mui-enter-active {
  transform: perspective(2000px) rotate(0deg);
  opacity: 1; }

.hinge-in-from-bottom.mui-enter {
  transition-duration: 500ms;
  transition-timing-function: linear;
  transform: perspective(2000px) rotateX(90deg);
  -ms-transform-origin: bottom;
      transform-origin: bottom;
  transition-property: transform, opacity;
  opacity: 0; }

.hinge-in-from-bottom.mui-enter.mui-enter-active {
  transform: perspective(2000px) rotate(0deg);
  opacity: 1; }

.hinge-in-from-left.mui-enter {
  transition-duration: 500ms;
  transition-timing-function: linear;
  transform: perspective(2000px) rotateY(90deg);
  -ms-transform-origin: left;
      transform-origin: left;
  transition-property: transform, opacity;
  opacity: 0; }

.hinge-in-from-left.mui-enter.mui-enter-active {
  transform: perspective(2000px) rotate(0deg);
  opacity: 1; }

.hinge-in-from-middle-x.mui-enter {
  transition-duration: 500ms;
  transition-timing-function: linear;
  transform: perspective(2000px) rotateX(-90deg);
  -ms-transform-origin: center;
      transform-origin: center;
  transition-property: transform, opacity;
  opacity: 0; }

.hinge-in-from-middle-x.mui-enter.mui-enter-active {
  transform: perspective(2000px) rotate(0deg);
  opacity: 1; }

.hinge-in-from-middle-y.mui-enter {
  transition-duration: 500ms;
  transition-timing-function: linear;
  transform: perspective(2000px) rotateY(-90deg);
  -ms-transform-origin: center;
      transform-origin: center;
  transition-property: transform, opacity;
  opacity: 0; }

.hinge-in-from-middle-y.mui-enter.mui-enter-active {
  transform: perspective(2000px) rotate(0deg);
  opacity: 1; }

.hinge-out-from-top.mui-leave {
  transition-duration: 500ms;
  transition-timing-function: linear;
  transform: perspective(2000px) rotate(0deg);
  -ms-transform-origin: top;
      transform-origin: top;
  transition-property: transform, opacity;
  opacity: 1; }

.hinge-out-from-top.mui-leave.mui-leave-active {
  transform: perspective(2000px) rotateX(-90deg);
  opacity: 0; }

.hinge-out-from-right.mui-leave {
  transition-duration: 500ms;
  transition-timing-function: linear;
  transform: perspective(2000px) rotate(0deg);
  -ms-transform-origin: right;
      transform-origin: right;
  transition-property: transform, opacity;
  opacity: 1; }

.hinge-out-from-right.mui-leave.mui-leave-active {
  transform: perspective(2000px) rotateY(-90deg);
  opacity: 0; }

.hinge-out-from-bottom.mui-leave {
  transition-duration: 500ms;
  transition-timing-function: linear;
  transform: perspective(2000px) rotate(0deg);
  -ms-transform-origin: bottom;
      transform-origin: bottom;
  transition-property: transform, opacity;
  opacity: 1; }

.hinge-out-from-bottom.mui-leave.mui-leave-active {
  transform: perspective(2000px) rotateX(90deg);
  opacity: 0; }

.hinge-out-from-left.mui-leave {
  transition-duration: 500ms;
  transition-timing-function: linear;
  transform: perspective(2000px) rotate(0deg);
  -ms-transform-origin: left;
      transform-origin: left;
  transition-property: transform, opacity;
  opacity: 1; }

.hinge-out-from-left.mui-leave.mui-leave-active {
  transform: perspective(2000px) rotateY(90deg);
  opacity: 0; }

.hinge-out-from-middle-x.mui-leave {
  transition-duration: 500ms;
  transition-timing-function: linear;
  transform: perspective(2000px) rotate(0deg);
  -ms-transform-origin: center;
      transform-origin: center;
  transition-property: transform, opacity;
  opacity: 1; }

.hinge-out-from-middle-x.mui-leave.mui-leave-active {
  transform: perspective(2000px) rotateX(-90deg);
  opacity: 0; }

.hinge-out-from-middle-y.mui-leave {
  transition-duration: 500ms;
  transition-timing-function: linear;
  transform: perspective(2000px) rotate(0deg);
  -ms-transform-origin: center;
      transform-origin: center;
  transition-property: transform, opacity;
  opacity: 1; }

.hinge-out-from-middle-y.mui-leave.mui-leave-active {
  transform: perspective(2000px) rotateY(-90deg);
  opacity: 0; }

.scale-in-up.mui-enter {
  transition-duration: 500ms;
  transition-timing-function: linear;
  -ms-transform: scale(0.5);
      transform: scale(0.5);
  transition-property: transform, opacity;
  opacity: 0; }

.scale-in-up.mui-enter.mui-enter-active {
  -ms-transform: scale(1);
      transform: scale(1);
  opacity: 1; }

.scale-in-down.mui-enter {
  transition-duration: 500ms;
  transition-timing-function: linear;
  -ms-transform: scale(1.5);
      transform: scale(1.5);
  transition-property: transform, opacity;
  opacity: 0; }

.scale-in-down.mui-enter.mui-enter-active {
  -ms-transform: scale(1);
      transform: scale(1);
  opacity: 1; }

.scale-out-up.mui-leave {
  transition-duration: 500ms;
  transition-timing-function: linear;
  -ms-transform: scale(1);
      transform: scale(1);
  transition-property: transform, opacity;
  opacity: 1; }

.scale-out-up.mui-leave.mui-leave-active {
  -ms-transform: scale(1.5);
      transform: scale(1.5);
  opacity: 0; }

.scale-out-down.mui-leave {
  transition-duration: 500ms;
  transition-timing-function: linear;
  -ms-transform: scale(1);
      transform: scale(1);
  transition-property: transform, opacity;
  opacity: 1; }

.scale-out-down.mui-leave.mui-leave-active {
  -ms-transform: scale(0.5);
      transform: scale(0.5);
  opacity: 0; }

.spin-in.mui-enter {
  transition-duration: 500ms;
  transition-timing-function: linear;
  -ms-transform: rotate(-0.75turn);
      transform: rotate(-0.75turn);
  transition-property: transform, opacity;
  opacity: 0; }

.spin-in.mui-enter.mui-enter-active {
  -ms-transform: rotate(0);
      transform: rotate(0);
  opacity: 1; }

.spin-out.mui-leave {
  transition-duration: 500ms;
  transition-timing-function: linear;
  -ms-transform: rotate(0);
      transform: rotate(0);
  transition-property: transform, opacity;
  opacity: 1; }

.spin-out.mui-leave.mui-leave-active {
  -ms-transform: rotate(0.75turn);
      transform: rotate(0.75turn);
  opacity: 0; }

.spin-in-ccw.mui-enter {
  transition-duration: 500ms;
  transition-timing-function: linear;
  -ms-transform: rotate(0.75turn);
      transform: rotate(0.75turn);
  transition-property: transform, opacity;
  opacity: 0; }

.spin-in-ccw.mui-enter.mui-enter-active {
  -ms-transform: rotate(0);
      transform: rotate(0);
  opacity: 1; }

.spin-out-ccw.mui-leave {
  transition-duration: 500ms;
  transition-timing-function: linear;
  -ms-transform: rotate(0);
      transform: rotate(0);
  transition-property: transform, opacity;
  opacity: 1; }

.spin-out-ccw.mui-leave.mui-leave-active {
  -ms-transform: rotate(-0.75turn);
      transform: rotate(-0.75turn);
  opacity: 0; }

.slow {
  transition-duration: 750ms !important; }

.fast {
  transition-duration: 250ms !important; }

.linear {
  transition-timing-function: linear !important; }

.ease {
  transition-timing-function: ease !important; }

.ease-in {
  transition-timing-function: ease-in !important; }

.ease-out {
  transition-timing-function: ease-out !important; }

.ease-in-out {
  transition-timing-function: ease-in-out !important; }

.bounce-in {
  transition-timing-function: cubic-bezier(0.485, 0.155, 0.24, 1.245) !important; }

.bounce-out {
  transition-timing-function: cubic-bezier(0.485, 0.155, 0.515, 0.845) !important; }

.bounce-in-out {
  transition-timing-function: cubic-bezier(0.76, -0.245, 0.24, 1.245) !important; }

.short-delay {
  transition-delay: 300ms !important; }

.long-delay {
  transition-delay: 700ms !important; }

.shake {
  animation-name: shake-7; }

@keyframes shake-7 {
  0%, 10%, 20%, 30%, 40%, 50%, 60%, 70%, 80%, 90% {
    transform: translateX(7%); }
  5%, 15%, 25%, 35%, 45%, 55%, 65%, 75%, 85%, 95% {
    transform: translateX(-7%); } }

.spin-cw {
  animation-name: spin-cw-1turn; }

@keyframes spin-cw-1turn {
  0% {
    transform: rotate(-1turn); }
  100% {
    transform: rotate(0); } }

.spin-ccw {
  animation-name: spin-cw-1turn; }

@keyframes spin-cw-1turn {
  0% {
    transform: rotate(0); }
  100% {
    transform: rotate(1turn); } }

.wiggle {
  animation-name: wiggle-7deg; }

@keyframes wiggle-7deg {
  40%, 50%, 60% {
    transform: rotate(7deg); }
  35%, 45%, 55%, 65% {
    transform: rotate(-7deg); }
  0%, 30%, 70%, 100% {
    transform: rotate(0); } }

.shake,
.spin-cw,
.spin-ccw,
.wiggle {
  animation-duration: 500ms; }

.infinite {
  animation-iteration-count: infinite; }

.slow {
  animation-duration: 750ms !important; }

.fast {
  animation-duration: 250ms !important; }

.linear {
  animation-timing-function: linear !important; }

.ease {
  animation-timing-function: ease !important; }

.ease-in {
  animation-timing-function: ease-in !important; }

.ease-out {
  animation-timing-function: ease-out !important; }

.ease-in-out {
  animation-timing-function: ease-in-out !important; }

.bounce-in {
  animation-timing-function: cubic-bezier(0.485, 0.155, 0.24, 1.245) !important; }

.bounce-out {
  animation-timing-function: cubic-bezier(0.485, 0.155, 0.515, 0.845) !important; }

.bounce-in-out {
  animation-timing-function: cubic-bezier(0.76, -0.245, 0.24, 1.245) !important; }

.short-delay {
  animation-delay: 300ms !important; }

.long-delay {
  animation-delay: 700ms !important; }

.title-bar {
  padding: 15px;
  -ms-flex-line-pack: center;
      align-content: center;
  background: #E9B000; }

.top-bar {
  min-height: 45px;
  padding: 0;
  background-color: #E9B000; }
  .top-bar ul {
    background: #E9B000; }
    .top-bar ul li a {
      line-height: 45px;
      display: block;
      padding: 0 15px;
      font-size: 12px;
      color: #FFFFFF; }
    .top-bar ul li a:hover {
      background-color: #793E97;
      color: #fff; }

.top-bar-right {
  padding: 5px 15px; }
  .top-bar-right .search {
    max-width: 300px; }
    .top-bar-right .search input {
      margin: 0;
      height: 35px; }
    .top-bar-right .search .stext {
      width: 60%; }

.leftmenu {
  border: none;
  box-shadow: 0px 2px 10px 0px rgba(50, 50, 50, 0.5);
  margin-bottom: 1.5rem;
  background: #FFFFFF;
  position: relative; }
  .leftmenu .header {
    background: #92B631;
    height: 45px;
    font-size: 15px;
    color: #FFFFFF;
    padding: 10px 10px;
    overflow: hidden;
    position: relative; }
  .leftmenu ul {
    margin: 0;
    padding: 0; }
    .leftmenu ul li {
      list-style-type: none;
      border-bottom: 1px solid #EAEAEA;
      color: #464646; }
      .leftmenu ul li:last-child {
        border-bottom: none; }
      .leftmenu ul li a {
        padding: 0.5rem 1.9rem;
        color: #464646;
        display: block; }
      .leftmenu ul li a:hover {
        color: #FFFFFF;
        background-color: #8745A8;
        padding-left: 2.0rem; }

.dropdown.menu .submenu {
  border: none; }

.dropdown.menu .is-dropdown-submenu-parent.is-right-arrow > a::after {
  border-color: #fff transparent transparent; }

.is-drilldown-submenu-parent > a::after {
  border-color: transparent transparent transparent #fff; }

.js-drilldown-back::before {
  border-color: transparent #fff transparent transparent; }

.menu.dropdown .submenu {
  border: none;
  background: #fff;
  box-shadow: 0px 2px 10px 0px rgba(50, 50, 50, 0.5);
  transition: 0.4s ease; }
  .menu.dropdown .submenu li {
    background: #fff;
    list-style-type: none;
    border-bottom: 1px solid #EAEAEA;
    color: #464646; }
    .menu.dropdown .submenu li:last-child {
      border-bottom: none; }
    .menu.dropdown .submenu li a {
      line-height: 40px;
      color: #464646; }
    .menu.dropdown .submenu li a:hover {
      background-color: #793E97;
      color: #fff; }

@media screen and (max-width: 39.9375em) {
  .no-js .top-bar {
    display: none; } }

@media screen and (min-width: 40em) {
  .no-js .title-bar {
    display: none; } }

.content-tabs .tabs {
  border: none;
  border-bottom: 1px solid #EAEAEA; }

.content-tabs .tabs-title > a {
  background-color: #92B631;
  padding: 1.0rem 1.9rem;
  color: #FFFFFF;
  border-right: 1px solid #FFFFFF; }

.content-tabs a:hover {
  background-color: #793E97;
  color: #FFFFFF; }

.content-tabs .tabs-content {
  height: 200px; }

#header #cart {
  right: auto; }

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC5jc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3VuZGF0aW9uLnNjc3MiLCJzYXRoeWFtcy1uZXcuc2NzcyIsInNhdGh5YW1zLW1hbmFnZXIuc2NzcyIsInNhdGh5YW1zLWVwb3Muc2NzcyIsInNhdGh5YW1zLWxhcmdlLXNjcmVlbnMuc2NzcyIsInNhdGh5YW1zLXNtYWxsLXNjcmVlbnMuc2NzcyIsInNhdGh5YW1zLXB1cnBsZS5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvX2dsb2JhbC5zY3NzIiwiX3NldHRpbmdzLnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL19taXhpbnMuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2ZsZXguc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX2ZsZXguc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX2JyZWFrcG9pbnQuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2ZsZXgtZ3JpZC5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fdW5pdC5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fcm93LnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19ndXR0ZXIuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2NvbHVtbi5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fcG9zaXRpb24uc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX2Jhc2Uuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX2hlbHBlcnMuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX2FsaWdubWVudC5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9fcHJpbnQuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2J1dHRvbi5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX3RleHQuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19jaGVja2JveC5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2xhYmVsLnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9faGVscC10ZXh0LnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9faW5wdXQtZ3JvdXAuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19maWVsZHNldC5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX3NlbGVjdC5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2Vycm9yLnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fcmFuZ2Uuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2FjY29yZGlvbi5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fYWNjb3JkaW9uLW1lbnUuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2JhZGdlLnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19icmVhZGNydW1icy5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fYnV0dG9uLWdyb3VwLnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19jYWxsb3V0LnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19jbG9zZS1idXR0b24uc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX21lbnUuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX21lbnUtaWNvbi5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fZHJpbGxkb3duLnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19kcm9wZG93bi5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fZHJvcGRvd24tbWVudS5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fZmxleC12aWRlby5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fbGFiZWwuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX21lZGlhLW9iamVjdC5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fb2ZmLWNhbnZhcy5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fb3JiaXQuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3BhZ2luYXRpb24uc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3Byb2dyZXNzLWJhci5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fc2xpZGVyLnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19zdGlja3kuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3JldmVhbC5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fc3dpdGNoLnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL190YWJsZS5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fY29sb3Iuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3RhYnMuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3RodW1ibmFpbC5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdGl0bGUtYmFyLnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL190b29sdGlwLnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL190b3AtYmFyLnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL192aXNpYmlsaXR5LnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19mbG9hdC5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9tb3Rpb24tdWkvc3JjL19jbGFzc2VzLnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL21vdGlvbi11aS9zcmMvX3NldHRpbmdzLnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL21vdGlvbi11aS9zcmMvdXRpbC9fa2V5ZnJhbWUuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvbW90aW9uLXVpL3NyYy90cmFuc2l0aW9ucy9fc2xpZGUuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvbW90aW9uLXVpL3NyYy91dGlsL190cmFuc2l0aW9uLnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL21vdGlvbi11aS9zcmMvdHJhbnNpdGlvbnMvX2ZhZGUuc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvbW90aW9uLXVpL3NyYy9lZmZlY3RzL19oaW5nZS5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9tb3Rpb24tdWkvc3JjL3RyYW5zaXRpb25zL19oaW5nZS5zY3NzIiwiLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9tb3Rpb24tdWkvc3JjL3RyYW5zaXRpb25zL196b29tLnNjc3MiLCIuLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL21vdGlvbi11aS9zcmMvdHJhbnNpdGlvbnMvX3NwaW4uc2NzcyIsIi4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvbW90aW9uLXVpL3NyYy91dGlsL19hbmltYXRpb24uc2NzcyIsImFwcC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGlCQUFpQjtBQ0FqQjs7Ozs7R0FLRztBQ0xILHFCQUFxQjtBQVVyQjtFQUNFLG1CQUFtQjtFQUNuQixVQUFVO0VBQ1YsV0FBVyxFQUNaOztBQUVEO0VBQ0Usa0JBQWtCO0VBQ2xCLFlBQVk7RUFDWixhQUFhO0VBQ2IsZ0JBQWdCO0VBQ2hCLHNCQUFzQixFQUN2Qjs7QUFFRDtFQUNFLGdCQUFnQjtFQUNoQixzQkFBc0IsRUFDdkI7O0FBRUQ7RUFDRSxnQkFBZ0I7RUFDaEIsc0JBQXNCO0VBQ3RCLGdD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NENKLGtCRDdDZ0I7TUM2Q2hCLFNEN0NnQixFQUdYOztBQUZEO0VDNENKLGtCRDdDZ0I7TUM2Q2hCLFNEN0NnQixFQUdYOztBQUZEO0VDNENKLGtCRDdDZ0I7TUM2Q2hCLFNEN0NnQixFQUdYOztBQUZEO0VDNENKLGtCRDdDZ0I7TUM2Q2hCLFNEN0NnQixFQUdYOztBQUZEO0VDNENKLGtCRDdDZ0I7TUM2Q2hCLFNEN0NnQixFQUdYOztBRTJISDtFRjdIRTtJQzRDSixrQkQ3Q2dCO1FDNkNoQixTRDdDZ0IsRUFHWDtFQUZEO0lDNENKLGtCRDdDZ0I7UUM2Q2hCLFNEN0NnQixFQUdYO0VBRkQ7SUM0Q0osa0JEN0NnQjtRQzZDaEIsU0Q3Q2dCLEVBR1g7RUFGRDtJQzRDSixrQkQ3Q2dCO1FDNkNoQixTRDdDZ0IsRUFHWDtFQUZEO0lDNENKLGtCRDdDZ0I7UUM2Q2hCLFNEN0NnQixFQUdYO0VBRkQ7SUM0Q0osa0JEN0NnQjtRQzZDaEIsU0Q3Q2dCLEVBR1gsRUFBQTs7QUUySEg7RUY3SEU7SUM0Q0osa0JEN0NnQjtRQzZDaEIsU0Q3Q2dCLEVBR1g7RUFGRDtJQzRDSixrQkQ3Q2dCO1FDNkNoQixTRDdDZ0IsRUFHWDtFQUZEO0lDNENKLGtCRDdDZ0I7UUM2Q2hCLFNEN0NnQixFQUdYO0VBRkQ7SUM0Q0osa0JEN0NnQjtRQzZDaEIsU0Q3Q2dCLEVBR1g7RUFGRDtJQzRDSixrQkQ3Q2dCO1FDNkNoQixTRDdDZ0IsRUFHWDtFQUZEO0lDNENKLGtCRDdDZ0I7UUM2Q2hCLFNEN0NnQixFQUdYLEVBQUE7O0FHaUlMO0VBdkhFLGlCQzhDa0I7RUQ3Q2xCLGtCQUFrQjtFQUNsQixtQkFBbUI7RUFJbkIscUJBQWM7RUFBZCxjQUFjO0VBQ2Qsd0JBQW9CO01BQXBCLG9CQUFvQixFQWdJckI7RUFoQkQ7SUVyRUEsZ0JBQWdCO0lBTVosdUJBSGU7SUFJZix3QkFKZSxFRndFaEI7SURaRDtNQ01GO1FFL0RJLHdCQUhlO1FBSWYseUJBSmUsRUZ3RWhCLEVBQUE7RUFOSDtJQVVJLGdCQUFnQixFQUNqQjtFQVhIO0lHL0lBLGdCQUFnQjtJQUNoQixpQkFBaUIsRUg0SjZCOztBQUs5QztFQTdGQSxrQkFyQmM7TUFxQmQsY0FyQmM7RUE2QlIsdUJBSGdCO0VBSWhCLHdCQUpnQjtFQWlCcEIsbUJBQW1CLEVBeUVwQjtFRDNCQztJQ3lCRjtNQXJGTSx3QkFIZ0I7TUFJaEIseUJBSmdCLEVBMEZyQixFQUFBOztBQUlEO0VBQ0UsWUFBWTtFQUNaLGVBQWUsRUFTaEI7RUFYVTtJQU1QLGdCQUFnQjtJQUNoQixpQkFBaUI7SUFDakIsZUFBZTtJQUNmLGdCQUFnQixFQUNqQjs7QUFNQztFQUNFLHVCSXRLZ0I7TUpzS2hCLG1CSXRLZ0I7RUp1S2hCLG9CSXZLZ0IsRUp3S2pCOztBQUtEO0VLbktKLGdCRGJzQixFSmtMakI7O0FBVkQ7RUFDRSx3Qkl0S2dCO01Kc0toQixvQkl0S2dCO0VKdUtoQixxQkl2S2dCLEVKd0tqQjs7QUFLRDtFS25LSixzQkRWc0IsRUorS2pCOztBQVZEO0VBQ0Usa0JJdEtnQjtNSnNLaEIsY0l0S2dCO0VKdUtoQixlSXZLZ0IsRUp3S2pCOztBQUtEO0VLbktKLHVCRFZzQixFSitLakI7O0FBVkQ7RUFDRSx3Qkl0S2dCO01Kc0toQixvQkl0S2dCO0VKdUtoQixxQkl2S2dCLEVKd0tqQjs7QUFLRDtFS25LSixpQkRWc0IsRUorS2pCOztBQVZEO0VBQ0Usd0JJdEtnQjtNSnNLaEIsb0JJdEtnQjtFSnVLaEIscUJJdktnQixFSndLakI7O0FBS0Q7RUtuS0osdUJEVnNCLEVKK0tqQjs7QUFWRDtFQUNFLGtCSXRLZ0I7TUpzS2hCLGNJdEtnQjtFSnVLaEIsZUl2S2dCLEVKd0tqQjs7QUFLRDtFS25LSix1QkRWc0IsRUorS2pCOztBQVZEO0VBQ0Usd0JJdEtnQjtNSnNLaEIsb0JJdEtnQjtFSnVLaEIscUJJdktnQixFSndLakI7O0FBS0Q7RUtuS0osaUJEVnNCLEVKK0tqQjs7QUFWRDtFQUNFLHdCSXRLZ0I7TUpzS2hCLG9CSXRLZ0I7RUp1S2hCLHFCSXZLZ0IsRUp3S2pCOztBQUtEO0VLbktKLHVCRFZzQixFSitLakI7O0FB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RUFLRDtJS25LSix1QkRWc0IsRUorS2pCO0VBVkQ7SUFDRSx3Qkl0S2dCO1FKc0toQixvQkl0S2dCO0lKdUtoQixxQkl2S2dCLEVKd0tqQjtFQUtEO0lLbktKLGlCRFZzQixFSitLakI7RUFWRDtJQUNFLHdCSXRLZ0I7UUpzS2hCLG9CSXRLZ0I7SUp1S2hCLHFCSXZLZ0IsRUp3S2pCO0VBS0Q7SUtuS0osdUJEVnNCLEVKK0tqQjtFQVZEO0lBQ0Usa0JJdEtnQjtRSnNLaEIsY0l0S2dCO0lKdUtoQixlSXZLZ0IsRUp3S2pCO0VBS0Q7SUtuS0osdUJEVnNCLEVKK0tqQjtFQVZEO0lBQ0Usd0JJdEtnQjtRSnNLaEIsb0JJdEtnQjtJSnVLaEIscUJJdktnQixFSndLakI7RUFLRDtJS25LSixpQkRWc0IsRUorS2pCO0VBVkQ7SUFDRSx3Qkl0S2dCO1FKc0toQixvQkl0S2dCO0lKdUtoQixxQkl2S2dCLEVKd0tqQjtFQUtEO0lLbktKLHVCRFZzQixFSitLakI7RUFWRDtJQUNFLG1CSXRLZ0I7UUpzS2hCLGVJdEtnQjtJSnVLaEIsZ0JJdktnQixFSndLakI7RUFLRDtJS25LSix1QkRWc0IsRUorS2pCO0VBS0Q7SUYvSUosa0JFOElnQjtRRjlJaEIsU0U4SWdCLEVBR1g7RUFGRDtJRi9JSixrQkU4SWdCO1FGOUloQixTRThJZ0IsRUFHWDtFQUZEO0lGL0lKLGtCRThJZ0I7UUY5SWhCLFNFOElnQixFQUdYO0VBRkQ7SUYvSUosa0JFOElnQjtRRjlJaEIsU0U4SWdCLEVBR1g7RUFGRDtJRi9JSixrQkU4SWdCO1FGOUloQixTRThJZ0IsRUFHWDtFQUZEO0lGL0lKLGtCRThJZ0I7UUY5SWhCLFNFOElnQixFQUdYO0VBS0Q7SUFuR0osb0JBQWdCO1FBQWhCLGdCQUFnQixFQXFHWDtJQW5HSDtNQUdBLG1CQUZnQjtVQUVoQixlQUZnQjtNQUdoQixnQkFIZ0IsRUFJakI7RUE0Rkc7SUFuR0osb0JBQWdCO1FBQWhCLGdCQUFnQixFQXFHWDtJQW5HSDtNQUdBLGtCQUZnQjtVQUVoQixjQUZnQjtNQUdoQixlQUhnQixFQUlqQjtFQTRGRztJQW5HSixvQkFBZ0I7UUFBaEIsZ0JBQWdCLEVBcUdYO0lBbkdIO01BR0Esd0JBRmdCO1VBRWhCLG9CQUZnQjtNQUdoQixxQkFIZ0IsRUFJakI7RUE0Rkc7SUFuR0osb0JBQWdCO1FBQWhCLGdCQUFnQixFQXFHWDtJQW5HSDtNQUdBLGtCQUZnQjtVQUVoQixjQUZnQjtNQUdoQixlQUhnQixFQUlqQjtFQTRGRztJQW5HSixvQkFBZ0I7UUFBaEIsZ0JBQWdCLEVBcUdYO0lBbkdIO01BR0Esa0JBRmdCO1VBRWhCLGNBRmdCO01BR2hCLGVBSGdCLEVBSWpCO0VBNEZHO0lBbkdKLG9CQUFnQjtRQUFoQixnQkFBZ0IsRUFxR1g7SUFuR0g7TUFHQSx3QkFGZ0I7VUFFaEIsb0JBRmdCO01BR2hCLHFCQUhnQixFQUlqQjtFQTRGRztJQW5HSixvQkFBZ0I7UUFBaEIsZ0JBQWdCLEVBcUdYO0lBbkdIO01BR0Esd0JBRmdCO1VBRWhCLG9CQUZnQjtNQUdoQixxQkFIZ0IsRUFJakI7RUE0Rkc7SUFuR0osb0JBQWdCO1FBQWhCLGdCQUFnQixFQXFHWDtJQW5HSDtNQUdBLG9CQUZnQjtVQUVoQixnQkFGZ0I7TUFHaEIsaUJBSGdCLEVBSWpCLEVBQUE7O0FEdUJDO0VDNkVJO0lBQ0Usa0JBdktNO1FBdUtOLGNBdktNLEVBd0tQLEVBQUE7O0FBS0Q7RUFFSSxtQkFBMkI7TUFBM0IsZUFBMkIsRUFLNUI7RUQzRlA7SUNvRkk7TUFLTSxrQkFsTEU7VUFrTEYsY0FsTEUsRUFvTEwsRUFBQTs7QUQzRlA7RUNpR0E7SUcxT0YsZ0JBQWdCO0lBQ2hCLGlCQUFpQixFSDBPNkI7RUFHNUM7SUdyT0Ysd0JBRGlCO0lBRWpCLHlCQUZpQixFSHlPd0MsRUFBQTs7QUR4R3ZEO0VDK0NFO0lBQ0UsdUJJdEtnQjtRSnNLaEIsbUJJdEtnQjtJSnVLaEIsb0JJdktnQixFSndLakI7RUFLRDtJS25LSixnQkRic0IsRUprTGpCO0VBVkQ7SUFDRSx3Qkl0S2dCO1FKc0toQixvQkl0S2dCO0lKdUtoQixxQkl2S2dCLEVKd0tqQjtFQUtEO0lLbktKLHNCRFZzQixFSitLakI7RUFWRDtJQUNFLGtCSXRLZ0I7UUpzS2hCLGNJdEtnQjtJSnVLaEIsZUl2S2dCLEVKd0tqQjtFQUtEO0lLbktKLHVCRFZzQixFSitLakI7RUFWRDtJQUNFLHdCSXRLZ0I7UUpzS2hCLG9CSXRLZ0I7SUp1S2hCLHFCSXZLZ0IsRUp3S2pCO0VBS0Q7SUtuS0osaUJEVnNCLEVKK0tqQjtFQVZEO0lBQ0Usd0JJdEtnQjtRSnNLaEIsb0JJdEtnQjtJSnVLaEIscUJJdktnQixFSndLakI7RUFLRDtJS25LSix1QkRWc0IsRUorS2pCO0VBVkQ7SUFDRSxrQkl0S2dCO1FKc0toQixjSXRLZ0I7SUp1S2hCLGVJdktnQixFSndLakI7RUFLRDtJS25LSix1QkRWc0IsRUorS2pCO0VBVkQ7SUFDRSx3Qkl0S2dCO1FKc0toQixvQkl0S2dCO0lKdUtoQixxQkl2S2dCLEVKd0tqQjtFQUtEO0lLbktKLGlCRFZzQixFSitLakI7RUFWRDtJQUNFLHdCSXRLZ0I7UUpzS2hCLG9CSXRLZ0I7SUp1S2hCLHFCSXZLZ0IsRUp3S2pCO0VBS0Q7SUtuS0osdUJEVnNCLEVKK0tqQjtFQVZEO0lBQ0Usa0JJdEtnQjtRSnNLaEIsY0l0S2dCO0lKdUtoQixlSXZLZ0IsRUp3S2pCO0VBS0Q7SUtuS0osdUJEVnNCLEVKK0tqQjtFQVZEO0lBQ0Usd0JJdEtnQjtRSnNLaEIsb0JJdEtnQjtJSnVLaEIscUJJdktnQixFSndLakI7RUFLRDtJS25LSixpQkRWc0IsRUorS2pCO0VBVkQ7SUFDRSx3Qkl0S2dCO1FKc0toQixvQkl0S2dCO0lKdUtoQixxQkl2S2dCLEVKd0tqQjtFQUtEO0lLbktKLHVCRFZzQixFSitLakI7RUFWRDtJQUNFLG1CSXRLZ0I7UUpzS2hCLGVJdEtnQjtJSnVLaEIsZ0JJdktnQixFSndLakI7RUFLRDtJS25LSix1QkRWc0IsRUorS2pCO0VBS0Q7SUYvSUosa0JFOElnQjtRRjlJaEIsU0U4SWdCLEVBR1g7RUFGRDtJRi9JSixrQkU4SWdCO1FGOUloQixTRThJZ0IsRUFHWDtFQUZEO0lGL0lK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QixFREU1Qjs7QUpGSDtFRWdDRSxXRmhDcUMsRUljcEM7O0FKYkg7RUFuQkEsMkJDa0JjO0VEakJkLG1DQ2lDZTtFQ2dCYixXRi9Ca0M7RUtEbEMsNkJBQTZCLEVERTVCOztBSkRIO0VFK0JFLFdGL0JxQyxFSWFwQzs7QUpWSDtFQXRCQSwyQkNrQmM7RURqQmQsbUNDaUNlO0VDZ0JiLCtDSXJDWTtFSnFDWiwwQkFGaUI7TUFFakIsc0JBRmlCO0VLdkJmLHdDQUF3QztFQUN4QyxXQUEyQixFSE41Qjs7QUpFSDtFRTRCRSw0Q0lWc0M7RUNKcEMsV0FBMkIsRUhKNUI7O0FKVEg7RUF2QkEsMkJDa0JjO0VEakJkLG1DQ2lDZTtFQ2dCYiwrQ0lwQ2M7RUpvQ2QsNEJBRmlCO01BRWpCLHdCQUZpQjtFS3ZCZix3Q0FBd0M7RUFDeEMsV0FBMkIsRUhONUI7O0FKR0g7RUUyQkUsNENJVnNDO0VDSnBDLFdBQTJCLEVISjVCOztBSlJIO0VBeEJBLDJCQ2tCYztFRGpCZCxtQ0NpQ2U7RUNnQmIsOENJbkNlO0VKbUNmLDZCQUZpQjtNQUVqQix5QkFGaUI7RUt2QmYsd0NBQXdDO0VBQ3hDLFdBQTJCLEVITjVCOztBSklIO0VFMEJFLDRDSVZzQztFQ0pwQyxXQUEyQixFSEo1Qjs7QUpQSDtFQXpCQSwyQkNrQmM7RURqQmQsbUNDaUNlO0VDZ0JiLDhDSWxDYTtFSmtDYiwyQkFGaUI7TUFFakIsdUJBRmlCO0VLdkJmLHdDQUF3QztFQUN4QyxXQUEyQixFSE41Qjs7QUpLSDtFRXlCRSw0Q0lWc0M7RUNKcEMsV0FBMkIsRUhKNUI7O0FKTkg7RUExQkEsMkJDa0JjO0VEakJkLG1DQ2lDZTtFQ2dCYiwrQ0lyQ1k7RUpxQ1osNkJBRmlCO01BRWpCLHlCQUZpQjtFS3ZCZix3Q0FBd0M7RUFDeEMsV0FBMkIsRUhONUI7O0FKTUg7RUV3QkUsNENJVnNDO0VDSnBDLFdBQTJCLEVISjVCOztBSkxIO0VBM0JBLDJCQ2tCYztFRGpCZCxtQ0NpQ2U7RUNnQmIsK0NJcENjO0VKb0NkLDZCQUZpQjtNQUVqQix5QkFGaUI7RUt2QmYsd0NBQXdDO0VBQ3hDLFdBQTJCLEVITjVCOztBSk9IO0VFdUJFLDRDSVZzQztFQ0pwQyxXQUEyQixFSEo1Qjs7QUpKSDtFQTVCQSwyQkNrQmM7RURqQmQsbUNDaUNlO0VDZ0JiLDRDSVJ3QztFSlF4QywwQkFGaUI7TUFFakIsc0JBRmlCO0VLdkJmLHdDQUF3QztFQUN4QyxXQUE4QixFSE4vQjs7QUpRSDtFRXNCRSwrQ0lyQ1k7RUN1QlYsV0FBOEIsRUhKL0I7O0FKSEg7RUE3QkEsMkJDa0JjO0VEakJkLG1DQ2lDZTtFQ2dCYiw0Q0lSd0M7RUpReEMsNEJBRmlCO01BRWpCLHdCQUZpQjtFS3ZCZix3Q0FBd0M7RUFDeEMsV0FBOEIsRUhOL0I7O0FKU0g7RUVxQkUsK0NJcENjO0VDc0JaLFdBQThCLEVISi9COztBSkZIO0VBOUJBLDJCQ2tCYztFRGpCZCxtQ0NpQ2U7RUNnQmIsNENJUndDO0VKUXhDLDZCQUZpQjtNQUVqQix5QkFGaUI7RUt2QmYsd0NBQXdDO0VBQ3hDLFdBQThCLEVITi9COztBSlVIO0VFb0JFLDhDSW5DZTtFQ3FCYixXQUE4QixFSEovQjs7QUpESDtFQS9CQSwyQkNrQmM7RURqQmQsbUNDaUNlO0VDZ0JiLDRDSVJ3QztFSlF4QywyQkFGaUI7TUFFakIsdUJBRmlCO0VLdkJmLHdDQUF3QztFQUN4QyxXQUE4QixFSE4vQjs7QUpXSDtFRW1CRSw4Q0lsQ2E7RUNvQlgsV0FBOEIsRUhKL0I7O0FKQUg7RUFoQ0EsMkJDa0JjO0VEakJkLG1DQ2lDZTtFQ2dCYiw0Q0lSd0M7RUpReEMsNkJBRmlCO01BRWpCLHlCQUZpQjtFS3ZCZix3Q0FBd0M7RUFDeEMsV0FBOEIsRUhOL0I7O0FKWUg7RUVrQkUsK0NJckNZO0VDdUJWLFdBQThCLEVISi9COztBSkNIO0VBakNBLDJCQ2tCYztFRGpCZCxtQ0NpQ2U7RUNnQmIsNENJUndDO0VKUXhDLDZCQUZpQjtNQUVqQix5QkFGaUI7RUt2QmYsd0NBQXdDO0VBQ3hDLFdBQThCLEVITi9COztBSmFIO0VFaUJFLCtDSXBDYztFQ3NCWixXQUE4QixFSEovQjs7QUpJSDtFQXBDQSwyQkNrQmM7RURqQmQsbUNDaUNlO0VDZ0JiLDBCQUZpQjtNQUVqQixzQkFGaUI7RU0zQmYsd0NBQXdDO0VBQ3hDLFdBQTJCLEVKRjVCOztBSmdCSDtFRWNFLHdCQUZpQjtNQUVqQixvQkFGaUI7RU1oQmYsV0FBMkIsRUpBNUI7O0FKS0g7RUFyQ0EsMkJDa0JjO0VEakJkLG1DQ2lDZTtFQ2dCYiwwQkFGaUI7TUFFakIsc0JBRmlCO0VNM0JmLHdDQUF3QztFQUN4QyxXQUEyQixFSkY1Qjs7QUppQkg7RUVhRSx3QkFGaUI7TUFFakIsb0JBRmlCO0VNaEJmLFdBQTJCLEVKQTVCOztBSk1IO0VBdENBLDJCQ2tCYztFRGpCZCxtQ0NpQ2U7RUNnQmIsd0JBRmlCO01BRWpCLG9CQUZpQjtFTTNCZix3Q0FBd0M7RUFDeEMsV0FBOEIsRUpGL0I7O0FKa0JIO0VFWUUsMEJBRmlCO01BRWpCLHNCQUZpQjtFTWhCZixXQUE4QixFSkEvQjs7QUpPSDtFQXZDQSwyQkNrQmM7RURqQmQsbUNDaUNlO0VDZ0JiLHdCQUZpQjtNQUVqQixvQkFGaUI7RU0zQmYsd0NBQXdDO0VBQ3hDLFdBQThCLEVKRi9COztBSm1CSDtFRVdFLDBCQUZpQjtNQUVqQixzQkFGaUI7RU1oQmYsV0FBOEIsRUpBL0I7O0FKVUg7RUExQ0EsMkJDa0JjO0VEakJkLG1DQ2lDZTtFQ2dCYixpQ0FGaUI7TUFFakIsNkJBRmlCO0VPM0JmLHdDQUF3QztFQUN4QyxXQUEyQixFTEY1Qjs7QUpzQkg7RUVRRSx5QkFGaUI7TUFFakIscUJBRmlCO0VPaEJmLFdBQTJCLEVMQTVCOztBSldIO0VBM0NBLDJCQ2tCYztFRGpCZCxtQ0NpQ2U7RUNnQmIseUJBRmlCO01BRWpCLHFCQUZpQjtFTzNCZix3Q0FBd0M7RUFDeEMsV0FBOEIsRUxGL0I7O0FKdUJIO0VFT0UsZ0NBRmlCO01BRWpCLDRCQUZpQjtFT2hCZixXQUE4QixFTEEvQjs7QUpZSDtFQTVDQSwyQkNrQmM7RURqQmQsbUNDaUNlO0VDZ0JiLGdDQUZpQjtNQUVqQiw0QkFGaUI7RU8zQmYsd0NBQXdDO0VBQ3hD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RUFBRztNQTVCM0M7UUErQk8sdUJBQXVCO1FBQ3ZCLGVBakNpQjtRQWtDakIsZUFBZSxFQUNmO01BbENQO1FBb0NRLGVBQWU7UUFDZiwwQkF2Q21CO1FBd0NuQixxQkFBcUIsRUFDdEI7O0FBNEJQO0VBQ0UsYUFBYSxFQUNkOztBQUNEO0VBQ0UsMkNBQTJDLEVBQzVDOztBQUNEO0VBQ0UsdURBQXVELEVBQ3hEOztBQUNEO0VBQ0UsdURBQXVELEVBQ3hEOztBQUVEO0VBSVksYUFBWTtFQUNaLGlCQUFpQjtFQUNqQixtREFBaUM7RUFDakMsc0JBQXNCLEVBb0IxQjtFQTNCUjtJQVVjLGlCQUFpQjtJQUNqQixzQkFBc0I7SUFDdEIsaUNBQWlDO0lBQ2pDLGVBM0pPLEVBd0tSO0lBMUJiO01BZWtCLG9CQUFvQixFQUNyQjtJQWhCakI7TUFrQmtCLGtCQUFrQjtNQUNsQixlQWpLRyxFQWtLSjtJQXBCakI7TUFzQmtCLDBCQW5LSTtNQW9LSixZQUFXLEVBQ2Q7O0FoRWhHWDtFZ0V5R0o7SUFHTSxjQUFjLEVBQ2YsRUFBQTs7QWhFN0dEO0VnRXlHSjtJQVNNLGNBQWMsRUFDZixFQUFBOztBQU1MO0VBRVEsYUFBYTtFQUNiLGlDQUFpQyxFQUtwQzs7QUFSTDtFQVdNLDBCQUF5QjtFQUN6Qix1QkFBdUI7RUFDdkIsZUFBZTtFQUNmLGdDQUFnQyxFQUlqQzs7QUFsQkw7RUFvQlUsMEJBQXlCO0VBQ3pCLGVBQWUsRUFDcEI7O0FBdEJMO0VBeUJRLGNBQWMsRUFDakI7O0FBSUw7RUFFUSxZQUFXLEVBQ2QiLCJmaWxlIjoiYXBwLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIkBjaGFyc2V0IFwiVVRGLThcIjtcbi8qKlxyXG4gKiBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXHJcbiAqIFZlcnNpb24gNi4yLjNcclxuICogZm91bmRhdGlvbi56dXJiLmNvbVxyXG4gKiBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcclxuICovXG4vKiBOZXcgU3R5bGUgQmVnaW4gKi9cbmh0bWwge1xuICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDsgfVxuXG5ib2R5IHtcbiAgbGluZS1oZWlnaHQ6IDE4cHg7XG4gIG1hcmdpbjogMHB4O1xuICBwYWRkaW5nOiAwcHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG5cbnRkLCB0aCwgaW5wdXQsIHRleHRhcmVhLCBzZWxlY3Qge1xuICBmb250LXNpemU6IDEycHg7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuXG5hIHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4gMHM7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gIGE6dmlzaXRlZCB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gIGE6bGluazphZnRlciwgYTp2aXNpdGVkOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiOyB9XG5cbmgxLCBoMiwgaDMsIGg0LCBoNSwgaDYge1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgbGluZS1oZWlnaHQ6IDEuNTsgfVxuXG5oMSB7XG4gIGZvbnQtc2l6ZTogMzBweDsgfVxuXG5oMiB7XG4gIGZvbnQtc2l6ZTogMjJweDsgfVxuXG5oMyB7XG4gIGZvbnQtc2l6ZTogMTlweDsgfVxuXG5oNCB7XG4gIGZvbnQtc2l6ZTogMTRweDsgfVxuXG5oNSB7XG4gIGZvbnQtc2l6ZTogMTNweDsgfVxuXG5oNiB7XG4gIGZvbnQtc2l6ZTogMTJweDsgfVxuXG51bCB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsgfVxuXG4ud2VsY29tZSB7XG4gIG1hcmdpbi10b3A6IDBweDtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgZm9udC1zaXplOiAzMHB4O1xuICBmb250LXdlaWdodDogbm9ybWFsOyB9XG5cbmZvcm0ge1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIGRpc3BsYXk6IGlubGluZTsgfVxuXG5pbnB1dFt0eXBlPVwidGV4dFwiXSwgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdLCBpbnB1dFt0eXBlPVwiZGF0ZVwiXSwgaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdLCBpbnB1dFt0eXBlPVwiZW1haWxcIl0sIGlucHV0W3R5cGU9XCJudW1iZXJcIl0sIGlucHV0W3R5cGU9XCJzZWFyY2hcIl0sIGlucHV0W3R5cGU9XCJ0ZWxcIl0sIGlucHV0W3R5cGU9XCJ0aW1lXCJdLCBpbnB1dFt0eXBlPVwidXJsXCJdIHtcbiAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbiAgYm9yZGVyLWNvbG9yOiAjREZERkRGICNFRkVGRUYgI0VGRUZFRiAjREZERkRGO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDFweDtcbiAgcGFkZGluZzogOXB4O1xuICBtYXJnaW46IDVweCAwO1xuICB3aWR0aDogYXV0bztcbiAgaGVpZ2h0OiBhdXRvO1xuICBib3gtc2hhZG93OiBub25lO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgbGluZWFyIDBzOyB9XG5cbiNjb250ZW50IHRleHRhcmVhLCAjY29udGVudCBzZWxlY3Qge1xuICBib3JkZXItY29sb3I6ICNERkRGREYgI0VGRUZFRiAjRUZFRkVGICNERkRGREY7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogMXB4O1xuICBtYXJnaW46IDVweCAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xuICBib3gtc2hhZG93OiBub25lO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgbGluZWFyIDBzOyB9XG5cbmlucHV0W3R5cGU9XCJ0ZXh0XCJdOmZvY3VzLCBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl06Zm9jdXMsIGlucHV0W3R5cGU9XCJkYXRlXCJdOmZvY3VzLCBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl06Zm9jdXMsIGlucHV0W3R5cGU9XCJlbWFpbFwiXTpmb2N1cywgaW5wdXRbdHlwZT1cIm51bWJlclwiXTpmb2N1cywgaW5wdXRbdHlwZT1cInNlYXJjaFwiXTpmb2N1cywgaW5wdXRbdHlwZT1cInRlbFwiXTpmb2N1cywgaW5wdXRbdHlwZT1cInRpbWVcIl06Zm9jdXMsIGlucHV0W3R5cGU9XCJ1cmxcIl06Zm9jdXMge1xuICBib3JkZXI6IDFweCBzb2xpZCAjRTQyRDlGOyB9XG5cbiNjb250ZW50IHRleHRhcmVhOmZvY3VzLCAjY29udGVudCBzZWxlY3Q6Zm9jdXMge1xuICBib3JkZXI6IDFweCBzb2xpZCAjRTQyRDlGOyB9XG5cbmxhYmVsIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBpbmxpbmU7IH1cblxucHJlIHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGxpbmUtaGVpZ2h0OiAxOHB4OyB9XG5cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA5MCU7IH1cblxuLmhpZ2hsaWdodCB7XG4gIGJhY2tncm91bmQ6IG5vbmU7IH1cblxuLyogQnV0dG9ucyAqL1xuYS5idXR0b24sIGlucHV0LmJ1dHRvbiB7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgZm9udC1zaXplOiAxMnB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6IDEwcHggMTJweDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbiAwcztcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOyB9XG5cbmEuYnV0dG9uLWV4Y2x1c2l2ZSwgaW5wdXQuYnV0dG9uLWV4Y2x1c2l2ZSB7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgZm9udC1zaXplOiAxMnB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6IDEwcHggMTJweDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbiAwcztcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOyB9XG5cbi5idXR0b25zIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIHBhZGRpbmc6IDZweDtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDsgfVxuICAuYnV0dG9ucyAubGVmdCB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAuYnV0dG9ucyAucmlnaHQge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICB0ZXh0LWFsaWduOiByaWdodDsgfVxuICAuYnV0dG9ucyAuY2VudGVyIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvOyB9XG5cbi53cmFwcGVyIHtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHBhZGRpbmc6IDAgMTBweDtcbiAgbWFyZ2luLWJvdHRvbTogMjVweDtcbiAgd2lkdGg6IGF1dG87XG4gIG1heC13aWR0aDogOTgwcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDk4MHB4KSBhbmQgKG1heC13aWR0aDogMTA0MHB4KSB7XG4gIC53cmFwcGVyIHtcbiAgICBtYXJnaW46IDAgMzBweDsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6IDk3OXB4KSB7XG4gIC53cmFwcGVyIHtcbiAgICBtYXJnaW46IDAgMTBweDsgfSB9XG5cbiNtaWRzZWN0aW9uIHtcbiAgbWFyZ2luLXRvcDogMjVweDsgfVxuXG4jY29udGVudCB7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4taGVpZ2h0OiA0MDBweDtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDsgfVxuXG4jY29sdW1uLWxlZnQge1xuICBtYXJnaW4tYm90dG9tOiAzMHB4OyB9XG5cbiNjb2x1bW4tcmlnaHQge1xuICBmbG9hdDogcmlnaHQ7XG4gIG1hcmdpbi1ib3R0b206IDMwcHg7IH1cblxuI2NvbHVtbi1sZWZ0ICsgI2NvbHVtbi1yaWdodCArICNjb250ZW50IHtcbiAgd2lkdGg6IDUwJTsgfVxuXG4jY29sdW1uLXJpZ2h0ICsgI2NvbnRlbnQsICNjb2x1bW4tbGVmdCArICNjb250ZW50IHtcbiAgd2lkdGg6IDc1JTsgfVxuXG4ub3Age1xuICBmbG9hdDogbm9uZTsgfVxuXG4jY29sdW1uLWxlZnQgKyAub3AsICNjb2x1bW4tbGVmdCArICNjb2x1bW4tcmlnaHQgKyAub3Age1xuICBmbG9hdDogbGVmdDsgfVxuXG4vKiBTY3JvbGxlZCBUb3AgQmFyICovXG4uaXMtc3RpY2t5ICNoZWFkZXIge1xuICBib3gtc2hhZG93OiAwIDAgMTBweCAwIHJnYmEoMCwgMCwgMCwgMC4zNSk7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIHotaW5kZXg6IDEwMDAxO1xuICBvcGFjaXR5OiAwLjk3OyB9XG4gIC5pcy1zdGlja3kgI2hlYWRlciAjdC1oZWFkZXIge1xuICAgIG1pbi1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgcGFkZGluZzogMTBweCAwIDVweDsgfVxuICAuaXMtc3RpY2t5ICNoZWFkZXIgI2xvZ28gaW1nIHtcbiAgICBtYXgtaGVpZ2h0OiA0MHB4OyB9XG4gIC5pcy1zdGlja3kgI2hlYWRlciAjc2VhcmNoIHtcbiAgICBtYXJnaW4tdG9wOiA3cHg7IH1cbiAgLmlzLXN0aWNreSAjaGVhZGVyICNjYXJ0IHtcbiAgICB0b3A6IDNweDsgfVxuICAuaXMtc3RpY2t5ICNoZWFkZXIgI21lbnUge1xuICAgIG1pbi1oZWlnaHQ6IDQwcHg7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICBib3JkZXItYm90dG9tOiBub25lOyB9XG4gICAgLmlzLXN0aWNreSAjaGVhZGVyICNtZW51ICNob21lcGFnZSBhIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiA0MHB4OyB9XG4gIC5pcy1zdGlja3kgI2hlYWRlciAjbWVudV92ID4gdWwgPiBsaSA+IGEsIC5pcy1zdGlja3kgI2hlYWRlciAjbWVudV9oID4gdWwgPiBsaSA+IGEsIC5pcy1zdGlja3kgI2hlYWRlciAjbWVudV9vYyA+IHVsID4gbGkgPiBhLCAuaXMtc3RpY2t5ICNoZWFkZXIgI21lbnVfYnJhbmRzID4gdWwgPiBsaSA+IGEsIC5pcy1zdGlja3kgI2hlYWRlciAubWVudV9saW5rcyBhLCAuaXMtc3RpY2t5ICNoZWFkZXIgI21lbnVfY3VzdG9tX21lbnUgPiB1bCA+IGxpID4gYSwgLmlzLXN0aWNreSAjaGVhZGVyIC5tZW51X2N1c3RvbV9ibG9jayA+IHVsID4gbGkgPiBhLCAuaXMtc3RpY2t5ICNoZWFkZXIgI21lbnVfaW5mb3JtYXRpb25zID4gdWwgPiBsaSA+IGEsIC5pcy1zdGlja3kgI2hlYWRlciAjbWVudV9jb250YWN0cyA+IHVsID4gbGkgPiBhIHtcbiAgICBsaW5lLWhlaWdodDogNDBweDsgfVxuXG4vKiBUb3AgbGluZSAqL1xuI3RvcC1saW5lIHtcbiAgbWluLWhlaWdodDogMjhweDtcbiAgbGluZS1oZWlnaHQ6IDI4cHg7XG4gIHBhZGRpbmc6IDAgMTBweDtcbiAgbWFyZ2luLWxlZnQ6IC0xMHB4O1xuICBtYXJnaW4tcmlnaHQ6IC0xMHB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG5cbi8qIFRvcCBXZWxjb21lICovXG4jd2VsY29tZSB7XG4gIGZvbnQtc2l6ZTogMTBweDsgfVxuICAjd2VsY29tZSBhIHtcbiAgICBmb250LXNpemU6IDEwcHg7IH1cblxuLyogQ29udGVudCAqL1xuI2NvbnRlbnQgLmNvbnRlbnQge1xuICBwYWRkaW5nOiAyMHB4O1xuICBvdmVyZmxvdzogYXV0bztcbiAgbWFyZ2luLWJvdHRvbTogMjBweDsgfVxuICAjY29udGVudCAuY29udGVudCAubGVmdCB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDQ5JTsgfVxuICAjY29udGVudCAuY29udGVudCAucmlnaHQge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICB3aWR0aDogNDklOyB9XG4gICNjb250ZW50IC5jb250ZW50IGlucHV0W3R5cGU9XCJ0ZXh0XCJdLCAjY29udGVudCAuY29udGVudCBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0ge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICNjb250ZW50IC5jb250ZW50IHVsIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwcHg7IH1cbiAgICAjY29udGVudCAuY29udGVudCB1bCBsaSB7XG4gICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgbGluZS1oZWlnaHQ6IDI2cHg7IH1cblxuLyogIE5vdGlmaWNhdGlvbnMgICovXG4uc3VjY2VzcywgLndhcm5pbmcsIC5hdHRlbnRpb24sIC5pbmZvcm1hdGlvbiB7XG4gIHBhZGRpbmc6IDIxcHggNDBweCAyMXB4IDgwcHg7XG4gIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gIGJveC1zaGFkb3c6IDAgNXB4IDIwcHggcmdiYSgwLCAwLCAwLCAwLjMpO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMzdweDtcbiAgcmlnaHQ6IDIwcHg7XG4gIG1heC13aWR0aDogMzUwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDBweDtcbiAgei1pbmRleDogOTk5OTk5OyB9XG5cbi5zdWNjZXNzIHtcbiAgYmFja2dyb3VuZDogdXJsKFwiLi4vaW1hZ2Uvc3VjY2Vzcy5wbmdcIikgMjVweCBjZW50ZXIgbm8tcmVwZWF0OyB9XG5cbi53YXJuaW5nIHtcbiAgYmFja2dyb3VuZDogdXJsKFwiLi4vaW1hZ2Uvd2FybmluZy5wbmdcIikgMjVweCBjZW50ZXIgbm8tcmVwZWF0OyB9XG5cbi5hdHRlbnRpb24ge1xuICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi9pbWFnZS9hdHRlbnRpb24ucG5nXCIpIDI1cHggY2VudGVyIG5vLXJlcGVhdDsgfVxuXG4uc3VjY2VzcyAuY2xvc2UsIC53YXJuaW5nIC5jbG9zZSwgLmF0dGVudGlvbiAuY2xvc2UsIC5pbmZvcm1hdGlvbiAuY2xvc2Uge1xuICBmbG9hdDogcmlnaHQ7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA3cHg7XG4gIHJpZ2h0OiA3cHg7XG4gIHBhZGRpbmctdG9wOiA0cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDRweDtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG5cbi5yZXF1aXJlZCB7XG4gIGNvbG9yOiAjRkYwMDAwO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zaXplOiAxN3B4OyB9XG5cbi5lcnJvciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjb2xvcjogI0ZGMDAwMDsgfVxuXG4uaGVscCB7XG4gIGNvbG9yOiAjOTk5OTk5O1xuICBmb250LXNpemU6IDEwcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtZmFtaWx5OiBWZXJkYW5hLCBHZW5ldmEsIHNhbnMtc2VyaWY7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi8qIFRhYmxlcyAqL1xudGFibGUge1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIG1hcmdpbjogMDsgfVxuICB0YWJsZSB0Ym9keSB0ciB0ZCB7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxuXG50YWJsZS5mb3JtIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7IH1cbiAgdGFibGUuZm9ybSB0ciB0ZDpmaXJzdC1jaGlsZCB7XG4gICAgd2lkdGg6IDI1JTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG4gIHRhYmxlLmZvcm0gdGQge1xuICAgIHBhZGRpbmc6IDRweDsgfVxuICB0YWJsZS5mb3JtIHRoZWFkLCB0YWJsZS5mb3JtIHRib2R5LCB0YWJsZS5mb3JtIHRmb290LCB0YWJsZS5mb3JtIHRyOm50aC1jaGlsZChldmVuKSB7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBib3JkZXI6IG5vbmU7IH1cblxuaW5wdXQubGFyZ2UtZmllbGQsIHNlbGVjdC5sYXJnZS1maWVsZCB7XG4gIHdpZHRoOiAzMDBweDsgfVxuXG50YWJsZS5saXN0IHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7IH1cbiAgdGFibGUubGlzdCB0aGVhZCB0ZCB7XG4gICAgcGFkZGluZzogMCA1cHg7IH1cbiAgICB0YWJsZS5saXN0IHRoZWFkIHRkIGEge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cblxuLmxpc3QgdGhlYWQgdGQge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbnRhYmxlLmxpc3QgdGJvZHkgdGQge1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICBwYWRkaW5nOiAwIDVweDsgfVxuXG50YWJsZS5saXN0IC5sZWZ0IHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgcGFkZGluZzogN3B4O1xuICBmbG9hdDogbm9uZTsgfVxuXG50YWJsZS5saXN0IC5yaWdodCB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBwYWRkaW5nOiA3cHg7XG4gIGZsb2F0OiBub25lOyB9XG5cbnRhYmxlLmxpc3QgLmNlbnRlciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcGFkZGluZzogN3B4OyB9XG5cbnRhYmxlLnJhZGlvIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7IH1cbiAgdGFibGUucmFkaW8gdGQge1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG4gIHRhYmxlLnJhZGlvIHRyIHRkOmZpcnN0LWNoaWxkIHtcbiAgICB3aWR0aDogMXB4OyB9XG4gIHRhYmxlLnJhZGlvIHRyLmhpZ2hsaWdodDpob3ZlciB0ZCB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA1KTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgdGFibGUucmFkaW8gbGFiZWwge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTVweDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cblxuLyogQm94IExlZnQgQ29sdW1uICovXG4jY29sdW1uLWxlZnQgLmJveCwgI2NvbHVtbi1yaWdodCAuYm94IHtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDsgfVxuICAjY29sdW1uLWxlZnQgLmJveCAuYm94LWhlYWRpbmcsICNjb2x1bW4tcmlnaHQgLmJveCAuYm94LWhlYWRpbmcge1xuICAgIGZvbnQtc2l6ZTogMTVweDsgfVxuXG4jY29sdW1uLWxlZnQgLnByb2R1Y3QtYm94LXNsaWRlciAuYm94LWhlYWRpbmcsICNjb2x1bW4tcmlnaHQgLnByb2R1Y3QtYm94LXNsaWRlciAuYm94LWhlYWRpbmcge1xuICBmb250LXNpemU6IDE1cHg7IH1cblxuI2NvbHVtbi1sZWZ0IC5ib3ggLmJveC1jb250ZW50LCAjY29sdW1uLXJpZ2h0IC5ib3ggLmJveC1jb250ZW50IHtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgI2NvbHVtbi1sZWZ0IC5ib3ggLmJveC1jb250ZW50IHVsIGxpIGEsICNjb2x1bW4tcmlnaHQgLmJveCAuYm94LWNvbnRlbnQgdWwgbGkgYSB7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbiAgI2NvbHVtbi1sZWZ0IC5ib3ggLmJveC1jb250ZW50IGlucHV0IHRleHQsICNjb2x1bW4tcmlnaHQgLmJveCAuYm94LWNvbnRlbnQgaW5wdXQgdGV4dCB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgI2NvbHVtbi1sZWZ0IC5ib3ggLmJveC1jb250ZW50IHRhYmxlLCAjY29sdW1uLXJpZ2h0IC5ib3ggLmJveC1jb250ZW50IHRhYmxlIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAjY29sdW1uLWxlZnQgLmJveCAuYm94LWNvbnRlbnQgLmJ1dHRvbiwgI2NvbHVtbi1yaWdodCAuYm94IC5ib3gtY29udGVudCAuYnV0dG9uIHtcbiAgICB3aWR0aDogNDUlO1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgI2NvbHVtbi1sZWZ0IC5ib3ggLmJveC1jb250ZW50IC5idXR0b25zLCAjY29sdW1uLXJpZ2h0IC5ib3ggLmJveC1jb250ZW50IC5idXR0b25zIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi5sZWZ0YmFyIHtcbiAgd2lkdGg6IDIyMHB4OyB9XG5cbiNjb2x1bW4tbGVmdCB7XG4gIHBhZGRpbmctcmlnaHQ6IDI1cHg7IH1cbiAgI2NvbHVtbi1sZWZ0IC5ib3gge1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3gtc2hhZG93OiAwcHggMnB4IDEwcHggMHB4IHJnYmEoNTAsIDUwLCA1MCwgMC41KTsgfVxuICAjY29sdW1uLWxlZnQgLmRhdGEge1xuICAgIGhlaWdodDogMi4wcmVtO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGJhY2tncm91bmQ6ICNGOEY4Rjg7XG4gICAgY29sb3I6ICNFNDJEOUY7XG4gICAgcGFkZGluZzogMC41cmVtIDEuNXJlbTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIG1hcmdpbjogM3B4IDAgM3B4IDA7IH1cbiAgI2NvbHVtbi1sZWZ0IHRhYmxlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi5wYWdlLWhlYWRlciB7XG4gIGhlaWdodDogNDVweDtcbiAgZm9udC1zaXplOiAxOXB4O1xuICBmb250LXdlaWdodDogQk9MRDtcbiAgY29sb3I6ICNFNDJEOUY7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZzogN3B4IDEwcHg7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjRjZGNkY2OyB9XG5cbi5mb3JtLWhlYWRlciB7XG4gIGhlaWdodDogNDVweDtcbiAgZm9udC1zaXplOiAxOXB4O1xuICBmb250LXdlaWdodDogQk9MRDtcbiAgY29sb3I6ICM0NjQ2NDY7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZzogN3B4IDEwcHg7IH1cblxuLmZvcm0taW5mbyB7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAxNXB4IDIwcHg7XG4gIG1hcmdpbi1ib3R0b206IDE1cHg7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiAjNDY0NjQ2OyB9XG5cbnVsLmJyZWFkY3J1bWJzIHtcbiAgcGFkZGluZzogN3B4IDIwcHg7XG4gIG1hcmdpbi1ib3R0b206IDE1O1xuICBoZWlnaHQ6IDM1cHg7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjRjZGNkY2OyB9XG5cbnNwYW4uc2FsZS1pY29uIHtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgcGFkZGluZzogMTBweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDEwcHg7XG4gIGxlZnQ6IDEwcHg7XG4gIHRleHQtc2hhZG93OiAwIC0xcHggMCByZ2JhKDAsIDAsIDAsIDAuMDUpO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB6LWluZGV4OiA1OyB9XG5cbi5wcm9kdWN0IHtcbiAgcGFkZGluZzogMTBweCA1cHggIWltcG9ydGFudDsgfVxuXG4ucHJvZHVjdC1ib3gge1xuICBwYWRkaW5nOiAxMHB4IDEwcHggOHB4IDEwcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNFQUVBRUE7IH1cblxuLnByb2R1Y3QtYm94OmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjtcbiAgYm9yZGVyOiAxcHggc29saWQgI0U0MkQ5RjsgfVxuICAucHJvZHVjdC1ib3g6aG92ZXIgLmZseWJhciB7XG4gICAgb3BhY2l0eTogMTsgfVxuICAucHJvZHVjdC1ib3g6aG92ZXIgLndpc2hsaXN0LCAucHJvZHVjdC1ib3g6aG92ZXIgLmNvbXBhcmUge1xuICAgIGJvcmRlci1yYWRpdXM6IDBweDtcbiAgICBvcGFjaXR5OiAxOyB9XG5cbi5wcm9kdWN0LWJveCAuaW1hZ2Uge1xuICBtaW4taGVpZ2h0OiAyMjVweDtcbiAgbWF4LWhlaWdodDogMjI1cHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuXG4ucHJvZHVjdC1ib3ggLm5hbWUge1xuICBtYXJnaW46IDEwcHggMCAwO1xuICBoZWlnaHQ6IDM1cHg7IH1cbiAgLnByb2R1Y3QtYm94IC5uYW1lIGEge1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBsaW5lLWhlaWdodDogMTRweDtcbiAgICBjb2xvcjogI0U0MkQ5RjsgfVxuXG4ucHJvZHVjdC1ib3ggLmRlc2NyaXB0aW9uIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4ucHJvZHVjdC1ib3ggLnByaWNlIHtcbiAgbWFyZ2luOiA4cHggMCAxMHB4O1xuICBoZWlnaHQ6IDMwcHg7IH1cblxuLnByb2R1Y3QtYm94IC5wcmljZS1vbGQge1xuICBmb250LXNpemU6IDEycHg7XG4gIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5wcm9kdWN0LWJveCAuZmx5YmFyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAzNnB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRyYW5zaXRpb246IGFsbCAwLjFzIGVhc2UtaW4gMHM7XG4gIHotaW5kZXg6IDU7XG4gIG9wYWNpdHk6IDA7XG4gIGJvdHRvbTogNnB4OyB9XG5cbi5wcm9kdWN0LWJveCAud2lzaGxpc3Q6aG92ZXIsIC5wcm9kdWN0LWJveCAuY29tcGFyZTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7IH1cblxuLnByb2R1Y3QtYm94IC53aXNobGlzdCB7XG4gIHJpZ2h0OiAzOXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIzNSwgMjM1LCAyMzUsIDAuODUpICFpbXBvcnRhbnQ7IH1cblxuLnByb2R1Y3QtYm94IC53aXNobGlzdCwgLnByb2R1Y3QtYm94IC5jb21wYXJlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMzJweDtcbiAgaGVpZ2h0OiAzMnB4O1xuICB0ZXh0LWluZGVudDogLTk5OTlweDtcbiAgei1pbmRleDogNTtcbiAgb3BhY2l0eTogMDsgfVxuXG4ucHJvZHVjdC1ib3ggLnJhdGluZyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZS1pbiAwcztcbiAgbWFyZ2luLXRvcDogNXB4O1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5wcm9kdWN0LWJveCAuYnJhbmQge1xuICBtYXJnaW46IC0ycHggMCAwO1xuICBkaXNwbGF5OiBub25lOyB9XG4gIC5wcm9kdWN0LWJveCAuYnJhbmQgc3BhbiwgLnByb2R1Y3QtYm94IC5icmFuZCBhIHtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDsgfVxuXG4ucHJvZHVjdC1ib3ggLmRlc2NyaXB0aW9uIHtcbiAgbGluZS1oZWlnaHQ6IDE1cHg7XG4gIHBhZGRpbmc6IDEwcHggMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4ucHJvZHVjdC1ib3ggc2VsZWN0IHtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjA3KTtcbiAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGhlaWdodDogMjJweDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cblxuLnByb2R1Y3QtYm94IC5jYXJ0IHtcbiAgcGFkZGluZzogMDsgfVxuXG4ucHJvZHVjdC1ib3ggLmRlY2J0biwgLnByb2R1Y3QtYm94IC5pbmNidG4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMyk7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIHdpZHRoOiAxNSU7XG4gIHBhZGRpbmc6IDRweCAwO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgbGluZWFyIDBzOyB9XG5cbi5wcm9kdWN0LWJveCAuZGVjYnRuIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1nL3F1YW50aXR5LW1pbnVzLnBuZ1wiKTtcbiAgbWFyZ2luLWxlZnQ6IDA7IH1cblxuLnByb2R1Y3QtYm94IC5pbmNidG4ge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWcvcXVhbnRpdHktcGx1cy5wbmdcIik7IH1cblxuLnByb2R1Y3QtYm94IGlucHV0IHtcbiAgZGlzcGxheTogaW5saW5lO1xuICBtYXJnaW46IDVweCAwO1xuICBoZWlnaHQ6IDM1cHg7XG4gIG1hcmdpbi1sZWZ0OiAycHg7IH1cblxuLnByb2R1Y3QtYm94IGlucHV0LnF1YW50aXR5IHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTIsIDI1MiwgMjUyLCAwLjk1KTtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjA3KTtcbiAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICB3aWR0aDogMzAlO1xuICBmb250LXNpemU6IDEycHg7IH1cblxuLnByb2R1Y3QtYm94IC5idXR0b24tZXhjbHVzaXZlIHtcbiAgd2lkdGg6IDM1JTsgfVxuXG4ucHJvZHVjdC1ib3ggYS53aXNobGlzdC10aXAsIC5wcm9kdWN0LWJveCBhLmNvbXBhcmUtdGlwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ2NDY0NjtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtMzBweDtcbiAgcmlnaHQ6IC0xMDBweDtcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogYXV0bztcbiAgcGFkZGluZzogM3B4IDEwcHg7XG4gIHRleHQtaW5kZW50OiAwO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4xcyBlYXNlLWluIDBzO1xuICB6LWluZGV4OiA1O1xuICBvcGFjaXR5OiAwOyB9XG5cbi5wcm9kdWN0LWJveCAud2lzaGxpc3Q6aG92ZXIgKyBhLndpc2hsaXN0LXRpcCB7XG4gIHJpZ2h0OiAwO1xuICBvcGFjaXR5OiAwLjk7IH1cblxuLnByb2R1Y3QtYm94IC5jb21wYXJlOmhvdmVyICsgYS5jb21wYXJlLXRpcCB7XG4gIHJpZ2h0OiAwO1xuICBvcGFjaXR5OiAwLjk7IH1cblxuLnByb2R1Y3QtYm94IC5yYXRpbmcge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2UtaW4gMHM7XG4gIG1hcmdpbi10b3A6IDVweDsgfVxuXG4ucHJvZHVjdC1ib3ggc3Bhbi5zYWxlLWljb24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDsgfVxuXG4ucHJpY2UtdGF4IHtcbiAgZm9udC1zaXplOiAxMnB4OyB9XG5cbi5wcmljZS1uZXcge1xuICBmb250LXNpemU6IDE2cHg7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4OyB9XG5cbi5wcmljZS1uZXcyIHtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXNpemU6IDEycHg7IH1cblxuLnByb2R1Y3QtZmlsdGVyIHtcbiAgcGFkZGluZzogMnB4IDEwcHg7XG4gIG1hcmdpbi1ib3R0b206IDE1cHg7XG4gIG92ZXJmbG93OiBhdXRvOyB9XG5cbi5wcm9kdWN0LWZpbHRlciBzZWxlY3Qge1xuICBoZWlnaHQ6IDMwcHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbWFyZ2luLWJvdHRvbTogNXB4OyB9XG5cbi5wcm9kdWN0LWZpbHRlciBsYWJlbCB7XG4gIGZvbnQtc2l6ZTogMTJweDsgfVxuXG4vKiBDYXJ0ICovXG4uY2FydC1pbmZvIHRhYmxlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206IDE1cHg7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7IH1cblxuLmNhcnQtaW5mbyB0ZCB7XG4gIHBhZGRpbmc6IDhweCAxNXB4OyB9XG5cbi5jYXJ0LWluZm8gdGFibGUgdGhlYWQgdGgge1xuICBsaW5lLWhlaWdodDogMjVweDtcbiAgY29sb3I6ICNFNDJEOUY7IH1cblxuLmNhcnQtaW5mbyB0aGVhZCB0aCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG5cbi5jYXJ0LWluZm8gdGhlYWQgLm5hbWUsIC5jYXJ0LWluZm8gdGhlYWQgLmJyYW5kLCAuY2FydC1pbmZvIHRoZWFkIC51bml0LCAuY2FydC1pbmZvIHRoZWFkIC5xdWFudGl0eSB7XG4gIHRleHQtYWxpZ246IGxlZnQ7IH1cblxuLmNhcnQtaW5mbyB0aGVhZCAucHJpY2UsIC5jYXJ0LWluZm8gdGhlYWQgLnRvdGFsIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cblxuLmNhcnQtaW5mbyB0Ym9keSB0ZCB7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7IH1cblxuLmNhcnQtaW5mbyB0Ym9keSAubmFtZSwgLmNhcnQtaW5mbyB0Ym9keSAuYnJhbmQsIC5jYXJ0LWluZm8gdGJvZHkgLnVuaXQsIC5jYXJ0LWluZm8gdGJvZHkgLnF1YW50aXR5IHtcbiAgdGV4dC1hbGlnbjogbGVmdDsgfVxuXG4uY2FydC1pbmZvIHRib2R5IC5uYW1lIGEge1xuICBmb250LXNpemU6IDEycHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cblxuLmNhcnQtaW5mbyB0Ym9keSAucHJpY2UsIC5jYXJ0LWluZm8gdGJvZHkgLnRvdGFsIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc2l6ZTogMTNweDsgfVxuXG4uY2FydC1pbmZvIC5xdWFudGl0eSB7XG4gIHBhZGRpbmctcmlnaHQ6IDA7IH1cblxuLmNhcnQtaW5mbyAucHJpY2Uge1xuICBwYWRkaW5nLWxlZnQ6IDA7IH1cblxuLmNhcnQtaW5mbyAucXVhbnRpdHkgaW5wdXQge1xuICBkaXNwbGF5OiBpbmxpbmU7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgaGVpZ2h0OiAzMHB4O1xuICBtYXJnaW46IDA7IH1cblxuLmNhcnQtaW5mbyB0Ym9keSBzcGFuLnN0b2NrIHtcbiAgY29sb3I6ICNGMDA7XG4gIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbi5jYXJ0LXRvdGFsIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIG1hcmdpbi1ib3R0b206IDE1cHg7IH1cbiAgLmNhcnQtdG90YWwgdGFibGUge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBwYWRkaW5nOiAxNXB4IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyLXJhZGl1czogMDsgfVxuICAuY2FydC10b3RhbCB0ciB7XG4gICAgbGluZS1oZWlnaHQ6IDMwcHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI0VBRUFFQTsgfVxuICAuY2FydC10b3RhbCB0cjpudGgtY2hpbGQoMm4pIHtcbiAgICBiYWNrZ3JvdW5kOiBub25lOyB9XG4gIC5jYXJ0LXRvdGFsIHRkIHtcbiAgICBwYWRkaW5nOiAzcHg7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgICAuY2FydC10b3RhbCB0ZC5sZWZ0IHtcbiAgICAgIGZsb2F0OiBub25lO1xuICAgICAgd2lkdGg6IDkwJTsgfVxuICAuY2FydC10b3RhbCAudG90YWwtbCB7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LXNpemU6IDEycHg7IH1cbiAgLmNhcnQtdG90YWwgLnRvdGFsLXIge1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxNXB4OyB9XG4gIC5jYXJ0LXRvdGFsIHNlbGVjdCB7XG4gICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgaGVpZ2h0OiAzMHB4O1xuICAgIG1hcmdpbjogNXB4OyB9XG5cbiNwcm9kdWN0LXRvcCAucHJvZHVjdC10b3AtMSB7XG4gIHBhZGRpbmc6IDAgMCA1cHg7IH1cblxuI3Byb2R1Y3QtdG9wIC5wcmV2LW5leHQge1xuICB0ZXh0LWFsaWduOiByaWdodDsgfVxuXG4jcHJvZHVjdC10b3AgLnByb2R1Y3QtdGl0bGUge1xuICBmb250LXNpemU6IDI2cHg7XG4gIGxpbmUtaGVpZ2h0OiAyNnB4O1xuICBmb250LXdlaWdodDogYm9sZDsgfVxuXG4jcHJvZHVjdC10b3AgLnByb2R1Y3QtZGVzY3JpcHRpb24gLnByb2R1Y3QtZGVzY3JpcHRpb24tbCB7XG4gIGZsb2F0OiBsZWZ0O1xuICBwYWRkaW5nOiAwIDhweCAycHggMDsgfVxuICAjcHJvZHVjdC10b3AgLnByb2R1Y3QtZGVzY3JpcHRpb24gLnByb2R1Y3QtZGVzY3JpcHRpb24tbDpmaXJzdC1jaGlsZDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiIFwiOyB9XG4gICNwcm9kdWN0LXRvcCAucHJvZHVjdC1kZXNjcmlwdGlvbiAucHJvZHVjdC1kZXNjcmlwdGlvbi1sOmJlZm9yZSB7XG4gICAgY29udGVudDogXCItXCI7IH1cblxuLnByb2R1Y3QtZGVzY3JpcHRpb24tbCB7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDsgfVxuICAucHJvZHVjdC1kZXNjcmlwdGlvbi1sIHNwYW4sIC5wcm9kdWN0LWRlc2NyaXB0aW9uLWwgYSB7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7IH1cblxuI3Byb2R1Y3QtdG9wIC5wcm9kdWN0LWRlc2NyaXB0aW9uIC5wcm9kdWN0LWRlc2NyaXB0aW9uLWwgc3BhbiB7XG4gIHBhZGRpbmctbGVmdDogOHB4OyB9XG5cbiNwcm9kdWN0LXRvcCAucHJvZHVjdC1kZXNjcmlwdGlvbiAucHJvZHVjdC1kZXNjcmlwdGlvbi1sOmZpcnN0LWNoaWxkIHNwYW4sICNwcm9kdWN0LXRvcCAucHJvZHVjdC1kZXNjcmlwdGlvbiAucHJvZHVjdC1kZXNjcmlwdGlvbi1sIHNwYW4uc3RvY2sge1xuICBwYWRkaW5nLWxlZnQ6IDA7IH1cblxuLnByb2R1Y3QtZGVzY3JpcHRpb24tYiAucHJvZHVjdC1kZXNjcmlwdGlvbi1sIHtcbiAgY2xlYXI6IGJvdGg7IH1cblxuLnByZXYtbmV4dCB7XG4gIHBhZGRpbmctdG9wOiA1cHg7IH1cbiAgLnByZXYtbmV4dCBhIHtcbiAgICB3aWR0aDogMjhweDtcbiAgICBoZWlnaHQ6IDI4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogMHB4O1xuICAgIG1hcmdpbjogLTIwcHggMCAwO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZS9uYXZfYXJyb3dzX21lZGl1bS5wbmcpO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICB6LWluZGV4OiAxO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0ZXh0LWluZGVudDogLTk5OTlweDtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIC4zcyBlYXNlOyB9XG4gICAgLnByZXYtbmV4dCBhLnByb2R1Y3QtbmV4dCB7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAlIDEwMCU7XG4gICAgICB0b3A6IDMwcHg7XG4gICAgICByaWdodDogMTBweDsgfVxuICAgICAgLnByZXYtbmV4dCBhLnByb2R1Y3QtbmV4dDpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDEwMCUgMDsgfVxuICAgIC5wcmV2LW5leHQgYS5wcm9kdWN0LXByZXYge1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAxMDAlO1xuICAgICAgdG9wOiAzMHB4O1xuICAgICAgcmlnaHQ6IDM5cHg7IH1cbiAgICAgIC5wcmV2LW5leHQgYS5wcm9kdWN0LXByZXY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDA7IH1cbiAgICAucHJldi1uZXh0IGEucHJvZHVjdC1wcmV2LXRpcCwgLnByZXYtbmV4dCBhLnByb2R1Y3QtbmV4dC10aXAge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzQ2NDY0NjtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gICAgICBjb2xvcjogI0ZGRkZGRjtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogLTM2cHg7XG4gICAgICByaWdodDogLTEwMHB4O1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBwYWRkaW5nOiAzcHggMTBweDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDBweDtcbiAgICAgIHRleHQtaW5kZW50OiAwO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2UtaW4gMHM7XG4gICAgICB6LWluZGV4OiA1O1xuICAgICAgb3BhY2l0eTogMDsgfVxuICAucHJldi1uZXh0IC5wcm9kdWN0LW5leHQ6aG92ZXIgKyBhLnByb2R1Y3QtbmV4dC10aXAsIC5wcmV2LW5leHQgLnByb2R1Y3QtcHJldjpob3ZlciArIGEucHJvZHVjdC1wcmV2LXRpcCB7XG4gICAgcmlnaHQ6IDEwcHg7XG4gICAgb3BhY2l0eTogMTsgfVxuXG4ucHJvZHVjdC1pbmZvIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIG1hcmdpbi1ib3R0b206IDMwcHggIWltcG9ydGFudDsgfVxuICAucHJvZHVjdC1pbmZvIC5pbWFnZSB7XG4gICAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiA0NTBweDtcbiAgICBtaW4taGVpZ2h0OiA0NTBweDsgfVxuICAgIC5wcm9kdWN0LWluZm8gLmltYWdlIGltZyB7XG4gICAgICB3aWR0aDogOTkuOTk5OTklOyB9XG4gICAgLnByb2R1Y3QtaW5mbyAuaW1hZ2UgLnpvb20tYiB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHJpZ2h0OiAxMHB4O1xuICAgICAgYm90dG9tOiAxMHB4O1xuICAgICAgcGFkZGluZzogMCAxMHB4O1xuICAgICAgaGVpZ2h0OiAzMHB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDMwcHg7XG4gICAgICB6LWluZGV4OiA1OyB9XG4gICAgICAucHJvZHVjdC1pbmZvIC5pbWFnZSAuem9vbS1iIGEge1xuICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi9pbWFnZS9idXR0b24tc2VhcmNoLXNtYWxsLnBuZ1wiKSBuby1yZXBlYXQgc2Nyb2xsO1xuICAgICAgICBjb2xvcjogI0EzQTNBMztcbiAgICAgICAgZm9udC1zaXplOiAxMHB4O1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDE4cHg7IH1cbiAgLnByb2R1Y3QtaW5mbyAuaW1hZ2UtYWRkaXRpb25hbCB7XG4gICAgbWFyZ2luLWxlZnQ6IC01cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAtNXB4O1xuICAgIGNsZWFyOiBib3RoO1xuICAgIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgLnByb2R1Y3QtaW5mbyAuaW1hZ2UtYWRkaXRpb25hbC1sZWZ0IHtcbiAgICBtYXJnaW4tbGVmdDogLTEwcHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAtMTBweDtcbiAgICBjbGVhcjogYm90aDtcbiAgICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIC5wcm9kdWN0LWluZm8gLmltYWdlLWFkZGl0aW9uYWwgLmlhMSB7XG4gICAgd2lkdGg6IDE2LjY2NjY3JTsgfVxuICAucHJvZHVjdC1pbmZvIC5pbWFnZS1hZGRpdGlvbmFsIC5pYTIsIC5wcm9kdWN0LWluZm8gLmltYWdlLWFkZGl0aW9uYWwgLmlhNSB7XG4gICAgd2lkdGg6IDI1JTsgfVxuICAucHJvZHVjdC1pbmZvIC5pbWFnZS1hZGRpdGlvbmFsIC5pYTMge1xuICAgIHdpZHRoOiAxNC4yODU3MSU7IH1cbiAgLnByb2R1Y3QtaW5mbyAuaW1hZ2UtYWRkaXRpb25hbCAuaWE0IHtcbiAgICB3aWR0aDogOC4zMzMzMyU7IH1cbiAgLnByb2R1Y3QtaW5mbyAuaW1hZ2UtYWRkaXRpb25hbCAuaWE2IHtcbiAgICB3aWR0aDogMzMuMzMzMzMlOyB9XG4gIC5wcm9kdWN0LWluZm8gLmltYWdlLWFkZGl0aW9uYWwgLmlhNyB7XG4gICAgd2lkdGg6IDIwJTsgfVxuICAucHJvZHVjdC1pbmZvIC5pbWFnZS1hZGRpdGlvbmFsIGltZyB7XG4gICAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbiAgICBwYWRkaW5nOiA1cHg7IH1cbiAgLnByb2R1Y3QtaW5mbyAuaW1hZ2UtYWRkaXRpb25hbC1sZWZ0IGltZyB7XG4gICAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbiAgICBwYWRkaW5nOiA1cHg7IH1cbiAgLnByb2R1Y3QtaW5mbyAuaW1hZ2UtYWRkaXRpb25hbCBhIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAwIDVweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4OyB9XG4gIC5wcm9kdWN0LWluZm8gLmltYWdlLWFkZGl0aW9uYWwtbGVmdCBhIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7IH1cblxuI2NvbG9yYm94LCAjY2JveE92ZXJsYXksICNjYm94V3JhcHBlciB7XG4gIG92ZXJmbG93OiB2aXNpYmxlICFpbXBvcnRhbnQ7IH1cblxuLnByb2R1Y3QtaW5mbyAucHJpY2Uge1xuICBvdmVyZmxvdzogYXV0bztcbiAgcGFkZGluZzogMjBweCAwO1xuICBmb250LXNpemU6IDI4cHg7IH1cblxuLnByb2R1Y3QtaW5mbyAucHJpY2UtbmV3IHtcbiAgZm9udC1zaXplOiAyOHB4OyB9XG5cbi5wcm9kdWN0LWluZm8gLnByaWNlLW9sZCB7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7IH1cblxuLnByb2R1Y3QtaW5mbyAuc2F2ZWQge1xuICBwYWRkaW5nLXRvcDogMTBweDsgfVxuXG4ucHJvZHVjdC1pbmZvIC55b3Utc2F2ZSB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuXG4ucHJvZHVjdC1pbmZvIC5zYXZlLXBlcmNlbnQge1xuICBmb250LXNpemU6IDE3cHg7IH1cblxuLnByb2R1Y3QtaW5mbyAudGF4IHtcbiAgcGFkZGluZy10b3A6IDVweDsgfVxuXG4ucHJvZHVjdC1pbmZvIC5wcmljZS10YXgge1xuICBmb250LXNpemU6IDEzcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cblxuLnByb2R1Y3QtaW5mbyAucHJpY2UgLnJld2FyZCB7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDsgfVxuICAucHJvZHVjdC1pbmZvIC5wcmljZSAucmV3YXJkIHNtYWxsIHtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDsgfVxuXG4ucHJvZHVjdC1pbmZvIC5wcmljZSAuZGlzY291bnQge1xuICBmb250LXNpemU6IDEzcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7IH1cblxuLnByb2R1Y3QtaW5mbyBzcGFuLnN0b2NrIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cblxuLnByb2R1Y3QtaW5mbyAub3B0aW9ucyB7XG4gIHBhZGRpbmc6IDIwcHggMDsgfVxuICAucHJvZHVjdC1pbmZvIC5vcHRpb25zIGg1IHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICBjbGVhcjogYm90aDtcbiAgICBtYXJnaW46IDA7IH1cbiAgLnByb2R1Y3QtaW5mbyAub3B0aW9ucyBpbnB1dCwgLnByb2R1Y3QtaW5mbyAub3B0aW9ucyB0ZXh0YXJlYSwgLnByb2R1Y3QtaW5mbyAub3B0aW9ucyBzZWxlY3Qge1xuICAgIG1hcmdpbi1ib3R0b206IDE1cHg7IH1cbiAgLnByb2R1Y3QtaW5mbyAub3B0aW9ucyB0ZXh0YXJlYSwgLnByb2R1Y3QtaW5mbyAub3B0aW9ucyBzZWxlY3Qge1xuICAgIHdpZHRoOiAxMDAlOyB9XG5cbi5wcm9kdWN0LWluZm8gLm9wdGlvbi1pbWFnZSB7XG4gIG1hcmdpbi10b3A6IDNweDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDsgfVxuICAucHJvZHVjdC1pbmZvIC5vcHRpb24taW1hZ2UgbGFiZWwge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTsgfVxuICAucHJvZHVjdC1pbmZvIC5vcHRpb24taW1hZ2UgaW1nIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7IH1cblxuLnByb2R1Y3QtaW5mbyAuY2FydCB7XG4gIG92ZXJmbG93OiBhdXRvO1xuICBwYWRkaW5nOiAyNXB4IDA7IH1cblxuLnByb2R1Y3QtaW5mbyAuYWRkLXRvLWNhcnQge1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgLnByb2R1Y3QtaW5mbyAuYWRkLXRvLWNhcnQgaW5wdXQge1xuICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICBtYXJnaW46IDVweCAwOyB9XG4gICAgLnByb2R1Y3QtaW5mbyAuYWRkLXRvLWNhcnQgaW5wdXQuaS1kLXF1YW50aXR5IHtcbiAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjUyLCAyNTIsIDI1MiwgMC45NSk7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMDcpO1xuICAgICAgaGVpZ2h0OiAzNnB4O1xuICAgICAgcGFkZGluZy1sZWZ0OiAxMHB4OyB9XG5cbi5wcm9kdWN0LWluZm8gLmNhcnQgZGl2IHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cblxuLnByb2R1Y3QtaW5mbyAuY2FydCAuZGVjLCAucHJvZHVjdC1pbmZvIC5jYXJ0IC5pbmMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMyk7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIHdpZHRoOiAzMHB4O1xuICBoZWlnaHQ6IDM2cHg7XG4gIHBhZGRpbmc6IDRweCAwO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGxpbmUtaGVpZ2h0OiAxNHB4O1xuICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgbGluZWFyIDBzOyB9XG5cbi5wcm9kdWN0LWluZm8gLmNhcnQgLmFkZC10by1jYXJ0IGRpdiB7XG4gIG1hcmdpbi1yaWdodDogMXB4O1xuICBtYXJnaW4tbGVmdDogMXB4O1xuICBkaXNwbGF5OiBpbmxpbmU7IH1cblxuLnByb2R1Y3QtaW5mbyAuY2FydCAuZGVjIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2UvcXVhbnRpdHktbWludXMucG5nXCIpOyB9XG5cbi5wcm9kdWN0LWluZm8gLmNhcnQgLmluYyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlL3F1YW50aXR5LXBsdXMucG5nXCIpOyB9XG5cbi5wcm9kdWN0LWluZm8gLmNhcnQgI3F0eS10ZXh0IHtcbiAgcGFkZGluZy10b3A6IDE3cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDEwcHg7IH1cblxuLnByb2R1Y3QtaW5mbyAuY2FydCAjcXR5LCAucHJvZHVjdC1pbmZvIC5jYXJ0ICNxdHktZGVjLCAucHJvZHVjdC1pbmZvIC5jYXJ0ICNxdHktaW5jIHtcbiAgcGFkZGluZy10b3A6IDNweDsgfVxuXG4ucHJvZHVjdC1pbmZvIC5jYXJ0IC5saW5rcyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxuXG4ucHJvZHVjdC1pbmZvIC5jYXJ0IC5taW5pbXVtIHtcbiAgcGFkZGluZy10b3A6IDVweDtcbiAgZm9udC1zaXplOiAxMXB4OyB9XG5cbi5wcm9kdWN0LWluZm8gLndpc2hsaXN0LWNvbXBhcmUtZnJpZW5kIHtcbiAgbWFyZ2luLXRvcDogMTVweDtcbiAgd2lkdGg6IDEwMCU7IH1cblxuLnByb2Qtd2lzaGxpc3QsIC5wcm9kLWNvbXBhcmUsIC5wcm9kLWZyaWVuZCB7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW4tcmlnaHQ6IDExcHg7XG4gIHBhZGRpbmc6IDNweCAwOyB9XG5cbi5wcm9kLXdpc2hsaXN0IGEsIC5wcm9kLWNvbXBhcmUgYSwgLnByb2QtZnJpZW5kIGEge1xuICBmb250LXNpemU6IDEwcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cblxuc3Bhbi53aXNobGlzdCwgc3Bhbi5jb21wYXJlLCBzcGFuLmZyaWVuZCB7XG4gIGhlaWdodDogMTVweDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW4tdG9wOiAycHg7XG4gIHBhZGRpbmc6IDAgMTVweCAwIDdweDsgfVxuXG4ucHJvZHVjdC1zaGFyZSB7XG4gIG1hcmdpbi10b3A6IDEycHg7XG4gIHBhZGRpbmc6IDE1cHggMDtcbiAgd2lkdGg6IDEwMCU7IH1cblxuLnByb2R1Y3QtaW5mbyAucmV2aWV3IHtcbiAgcGFkZGluZzogMjBweCAwOyB9XG4gIC5wcm9kdWN0LWluZm8gLnJldmlldyA+IGRpdiB7XG4gICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgICBsaW5lLWhlaWdodDogMTZweDsgfVxuICAgIC5wcm9kdWN0LWluZm8gLnJldmlldyA+IGRpdiBhIHtcbiAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG4gIC5wcm9kdWN0LWluZm8gLnJldmlldyAucmV2aWV3LXN0YXJzIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW46IDAgMTVweCAwIDA7XG4gICAgbGluZS1oZWlnaHQ6IG5vcm1hbDsgfVxuICAucHJvZHVjdC1pbmZvIC5yZXZpZXcgLnNoYXJlIHtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICBsaW5lLWhlaWdodDogbm9ybWFsOyB9XG4gICAgLnByb2R1Y3QtaW5mbyAucmV2aWV3IC5zaGFyZSBhIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuXG4ucmV2aWV3LWxpc3Qge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGO1xuICBwYWRkaW5nOiAxMHB4O1xuICBvdmVyZmxvdzogYXV0bztcbiAgbWFyZ2luLWJvdHRvbTogMjBweDsgfVxuICAucmV2aWV3LWxpc3QgLnJldmlld3MtbGVmdCB7XG4gICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICBwYWRkaW5nOiA3MHB4IDEwcHggMTBweCAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjNDY0NjQ2O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi9pbWFnZS9td18xLnBuZ1wiKSBuby1yZXBlYXQgc2Nyb2xsIDAgMCAjRkZGRkZGO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciB0b3A7IH1cbiAgICAucmV2aWV3LWxpc3QgLnJldmlld3MtbGVmdCBzcGFuIHtcbiAgICAgIGNvbG9yOiAjQjZCNkI2O1xuICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBtYXJnaW4tdG9wOiA1cHg7IH1cbiAgLnJldmlldy1saXN0IC5yZXZpZXdzLXJpZ2h0IHtcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgcGFkZGluZzogMjBweCA0MHB4O1xuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI0YzRjNGMztcbiAgICBjb2xvcjogIzQ2NDY0NjtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgbWluLWhlaWdodDogMTMwcHg7IH1cbiAgLnJldmlldy1saXN0IC5yZXZpZXctYXJyb3cge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBtYXJnaW4tdG9wOiAtMThweDtcbiAgICBtYXJnaW4tbGVmdDogLTY2cHg7XG4gICAgd2lkdGg6IDI2cHg7XG4gICAgaGVpZ2h0OiA1NXB4O1xuICAgIGJhY2tncm91bmQ6IHVybChcIi4uL2ltYWdlL3Jldmlldy1hcnJvdy5wbmdcIikgbm8tcmVwZWF0OyB9XG4gIC5yZXZpZXctbGlzdCAuYXV0aG9yIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4OyB9XG4gIC5yZXZpZXctbGlzdCAucmF0aW5nIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDsgfVxuICAucmV2aWV3LWxpc3QgLnRleHQge1xuICAgIGNsZWFyOiBib3RoOyB9XG5cbi5jb250YWN0LWluZm8ge1xuICBvdmVyZmxvdzogYXV0bzsgfVxuICAuY29udGFjdC1pbmZvIC5sZWZ0IHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7IH1cbiAgLmNvbnRhY3QtaW5mbyAucmlnaHQge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH1cbiAgLmNvbnRhY3QtaW5mbyBzcGFuLm1tIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBjbGVhcjogbm9uZTtcbiAgICBwYWRkaW5nLWxlZnQ6IDUwcHg7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGNvbG9yOiAjNDY0NjQ2OyB9XG4gIC5jb250YWN0LWluZm8gLm1jIHtcbiAgICBjbGVhcjogbGVmdDtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgIG1pbi1oZWlnaHQ6IDM2cHg7IH1cbiAgLmNvbnRhY3QtaW5mbyBzcGFuLm1tX2ljb24ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM3OTNFOTc7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiAzOHB4O1xuICAgIGhlaWdodDogMzhweDtcbiAgICBib3JkZXItcmFkaXVzOiAzOHB4O1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4gMHM7IH1cblxuLmNvbnRhY3QtY3VzdG9tIHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBjb2xvcjogIzQ2NDY0NjsgfVxuXG4uY29udGFjdC1mb3JtIGlucHV0IHtcbiAgd2lkdGg6IDk5JTsgfVxuXG4uY29udGFjdC1mb3JtIGltZyB7XG4gIG1hcmdpbjogMTBweCAwIDVweDsgfVxuXG4uY29udGFjdC1mb3JtIHNlbGVjdCB7XG4gIGhlaWdodDogYXV0bzsgfVxuXG4ubG9naW4tZm9ybSB7XG4gIG1hcmdpbi10b3A6IDI1cHg7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87IH1cblxuLnBhZ2luYXRpb24ge1xuICBwYWRkaW5nLXRvcDogMTJweDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLXRvcDogMjBweDtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cblxuLnJlc3VsdHMge1xuICBmbG9hdDogcmlnaHQ7XG4gIHBhZGRpbmctdG9wOiAzcHg7IH1cblxuLnBhZ2luYXRpb24gYS5wYWdpbmdfbGluayB7XG4gIHdpZHRoOiAzMnB4O1xuICBoZWlnaHQ6IDMycHg7XG4gIGxpbmUtaGVpZ2h0OiAzMnB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3OTNFOTc7XG4gIGNvbG9yOiAjRkZGRkZGOyB9XG4gIC5wYWdpbmF0aW9uIGEucGFnaW5nX2xpbms6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM5MkI2MzE7IH1cblxuLnBhZ2luZ19jdXJyZW50X3BhZ2Uge1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDMycHg7XG4gIGhlaWdodDogMzJweDtcbiAgbGluZS1oZWlnaHQ6IDMycHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luLWxlZnQ6IDhweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzkyQjYzMTtcbiAgY29sb3I6ICNGRkZGRkY7IH1cblxuLnRleHQtYm94IHtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgcGFkZGluZzogMS4ycmVtOyB9XG4gIC50ZXh0LWJveCAudGV4dC1ib3gtY29udGVudCB7XG4gICAgcGFkZGluZzogMS4ycmVtO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNFQUVBRUE7IH1cbiAgLnRleHQtYm94IC5oaWdobGlnaHQge1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBmb250LXdlaWdodDogYm9sZDsgfVxuXG4uY29udGVudC1ib3gge1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBwYWRkaW5nOiAxLjJyZW07IH1cbiAgLmNvbnRlbnQtYm94IC5jb250ZW50LWJveC1jb250ZW50IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjRUFFQUVBO1xuICAgIHBhZGRpbmc6IDEuMnJlbTsgfVxuICAgIC5jb250ZW50LWJveCAuY29udGVudC1ib3gtY29udGVudCB0YWJsZSB7XG4gICAgICB3aWR0aDogMTAwJTsgfVxuXG4uZGF0YS1ib3gge1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBwYWRkaW5nOiAxLjJyZW07IH1cbiAgLmRhdGEtYm94IC50ZXh0YXJlYSB7XG4gICAgbWFyZ2luLXRvcDogMjBweDsgfVxuXG4uZGF0YS1ib3ggLmRhdGEtYm94LWNvbnRlbnQge1xuICB3aWR0aDogMTAwJTtcbiAgYm9yZGVyOiAxcHggc29saWQgI0VBRUFFQTtcbiAgcGFkZGluZzogMS4ycmVtOyB9XG4gIC5kYXRhLWJveCAuZGF0YS1ib3gtY29udGVudCB1bCBsaSBhIHtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuICAuZGF0YS1ib3ggLmRhdGEtYm94LWNvbnRlbnQgaW5wdXQgdGV4dCB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLmRhdGEtYm94IC5kYXRhLWJveC1jb250ZW50IHRhYmxlIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAuZGF0YS1ib3ggLmRhdGEtYm94LWNvbnRlbnQgLmJ1dHRvbiB7XG4gICAgd2lkdGg6IDQ1JTtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIC5kYXRhLWJveCAuZGF0YS1ib3gtY29udGVudCAuYnV0dG9ucyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4udGV4dC1ib3ggLnRleHQtYm94LWhlYWRpbmcsIC5kYXRhLWJveCAuZGF0YS1ib3gtaGVhZGluZywgLmNvbnRlbnQtYm94IC5jb250ZW50LWJveC1oZWFkaW5nLCAuY29udGVudC1oZWFkZXIge1xuICBiYWNrZ3JvdW5kOiAjRUFFQUVBO1xuICBoZWlnaHQ6IDM1cHg7XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiAjRTQyRDlGO1xuICBwYWRkaW5nOiAwLjVyZW0gMS4ycmVtO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiA1MCU7IH1cblxuLyogTmV3IFN0eWxlIEVuZCAqL1xuI2NvbnRlbnQgLmFkbWluLWNvbnRlbnQge1xuICBwYWRkaW5nOiAyMHB4O1xuICBvdmVyZmxvdzogYXV0bztcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgYm9yZGVyOiAxcHggc29saWQgI0VBRUFFQTsgfVxuICAjY29udGVudCAuYWRtaW4tY29udGVudCAubGVmdCB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDQ5JTsgfVxuICAjY29udGVudCAuYWRtaW4tY29udGVudCAucmlnaHQge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICB3aWR0aDogNDklOyB9XG4gICNjb250ZW50IC5hZG1pbi1jb250ZW50IGlucHV0W3R5cGU9XCJ0ZXh0XCJdLCAjY29udGVudCAuYWRtaW4tY29udGVudCBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0ge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICNjb250ZW50IC5hZG1pbi1jb250ZW50IHVsIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwcHg7IH1cbiAgICAjY29udGVudCAuYWRtaW4tY29udGVudCB1bCBsaSB7XG4gICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgbGluZS1oZWlnaHQ6IDI2cHg7IH1cblxuI2NvbnRlbnQgLmFkbWluLWJveCB7XG4gIG92ZXJmbG93OiBhdXRvO1xuICBtYXJnaW4tYm90dG9tOiAyMHB4OyB9XG4gICNjb250ZW50IC5hZG1pbi1ib3ggLmxlZnQge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiA0OSU7IH1cbiAgI2NvbnRlbnQgLmFkbWluLWJveCAucmlnaHQge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICB3aWR0aDogNDklOyB9XG4gICNjb250ZW50IC5hZG1pbi1ib3ggaW5wdXRbdHlwZT1cInRleHRcIl0sICNjb250ZW50IC5hZG1pbi1ib3ggaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAjY29udGVudCAuYWRtaW4tYm94IHVsIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwcHg7IH1cbiAgICAjY29udGVudCAuYWRtaW4tYm94IHVsIGxpIHtcbiAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICBsaW5lLWhlaWdodDogMjZweDsgfVxuXG4uYWRtaW4tbGlzdCB0YWJsZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOyB9XG5cbi5hZG1pbi1saXN0IHRkIHtcbiAgcGFkZGluZzogOHB4IDE1cHg7IH1cblxuLmFkbWluLWxpc3QgdGFibGUgdGhlYWQgdGgge1xuICBsaW5lLWhlaWdodDogMjVweDtcbiAgY29sb3I6ICNFNDJEOUY7IH1cblxuLmFkbWluLWxpc3QgdGhlYWQgdGgge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi5hZG1pbi1saXN0IHRib2R5IHRkIHtcbiAgdmVydGljYWwtYWxpZ246IHRvcDsgfVxuXG4uYWRtaW4tbGlzdCB0Ym9keSAudGV4dCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7IH1cblxuLmFkbWluLWxpc3QgdGJvZHkgLmlkIGEge1xuICBmb250LXNpemU6IDEzcHg7XG4gIGNvbG9yOiAjNzkzRTk3O1xuICBmb250LXdlaWdodDogYm9sZDsgfVxuICAuYWRtaW4tbGlzdCB0Ym9keSAuaWQgYTpob3ZlciB7XG4gICAgY29sb3I6ICNFNDJEOUY7IH1cblxuLmFkbWluLWxpc3QgdGJvZHkgLm5hbWUgYSB7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgY29sb3I6ICM3OTNFOTc7XG4gIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG4gIC5hZG1pbi1saXN0IHRib2R5IC5uYW1lIGE6aG92ZXIge1xuICAgIGNvbG9yOiAjRTQyRDlGOyB9XG5cbi5hZG1pbi1saXN0IHRib2R5IC5uYW1lIHtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBjb2xvcjogIzc5M0U5NztcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbi5hZG1pbi1saXN0IHRib2R5IC5udW1lcmljIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc2l6ZTogMTNweDsgfVxuXG4uYWRtaW4tbGlzdCAubnVtYmVyIHtcbiAgcGFkZGluZy1yaWdodDogMDsgfVxuXG4uYWRtaW4tbGlzdCAubnVtZXJpYyB7XG4gIHBhZGRpbmctbGVmdDogMDsgfVxuXG4uYWRtaW4tbGlzdCBpbnB1dCB7XG4gIGRpc3BsYXk6IGlubGluZTtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBoZWlnaHQ6IDMwcHg7XG4gIG1hcmdpbjogMDsgfVxuXG4uYWRtaW4tbGlzdCAuYnV0dG9uLWV4Y2x1c2l2ZSB7XG4gIHBhZGRpbmc6IDZweCA4cHg7IH1cblxuLnVzZXItbm90ZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBvdmVyZmxvdzogYXV0bztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nOiA3cHggMTBweDtcbiAgbWFyZ2luLWJvdHRvbTogMTVweDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6ICNFNDJEOUY7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjRjZGNkY2OyB9XG5cbi5hZG1pbi1mb3JtIHtcbiAgcGFkZGluZzogMjBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7IH1cbiAgLmFkbWluLWZvcm0gLmZvcm0tZmcge1xuICAgIG1hcmdpbi1ib3R0b206IDE1cHg7IH1cbiAgLmFkbWluLWZvcm0gLmZnLWNvbHVtbjIgLmxlZnQge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiA0OSU7IH1cbiAgLmFkbWluLWZvcm0gLmZnLWNvbHVtbjIgLnJpZ2h0IHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgd2lkdGg6IDQ5JTsgfVxuICAuYWRtaW4tZm9ybSAuZmctZmllbGQge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogNTklO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAuYWRtaW4tZm9ybSAuZmctZmllbGQtMiB7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHBhZGRpbmctcmlnaHQ6IDJweDtcbiAgICB3aWR0aDogMjklOyB9XG4gIC5hZG1pbi1mb3JtIC5mZy1maWVsZC0zIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgcGFkZGluZy1yaWdodDogMnB4O1xuICAgIHdpZHRoOiAyMCU7IH1cbiAgLmFkbWluLWZvcm0gLmZnLWZpZWxkLTQge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAycHg7XG4gICAgd2lkdGg6IDE1JTsgfVxuICAuYWRtaW4tZm9ybSAuZmctbGFiZWwge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAyOSU7XG4gICAgcGFkZGluZzogMDsgfVxuICAuYWRtaW4tZm9ybSAuZmctbGFiZWwtc21hbGwge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAyNSU7XG4gICAgcGFkZGluZzogMDsgfVxuICAuYWRtaW4tZm9ybSAuZmctbGFiZWwtbGFyZ2Uge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiA1OSU7XG4gICAgcGFkZGluZzogMDsgfVxuICAuYWRtaW4tZm9ybSAuZmctbGFiZWwgc3BhbiwgLmFkbWluLWZvcm0gLmZnLWxhYmVsLWxhcmdlIHNwYW4sIC5hZG1pbi1mb3JtIC5mZy1sYWJlbC1zbWFsbCBzcGFuIHtcbiAgICBjb2xvcjogI0U0MkQ5RjtcbiAgICBoZWlnaHQ6IDM1cHg7XG4gICAgcGFkZGluZzogN3B4IDEwcHg7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICM5MkI2MzE7IH1cbiAgLmFkbWluLWZvcm0gLmZnLW1pbmkge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgaGVpZ2h0OiAzNXB4O1xuICAgIHBhZGRpbmc6IDdweCA1cHg7XG4gICAgYmFja2dyb3VuZDogIzkyQjYzMTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXgtd2lkdGg6IDEycHg7IH1cbiAgLmFkbWluLWZvcm0gLmZnLXJlcXVpcmVkIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGhlaWdodDogMzVweDtcbiAgICBwYWRkaW5nOiA3cHggNXB4O1xuICAgIGJhY2tncm91bmQ6IHJlZDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXgtd2lkdGg6IDEycHg7IH1cbiAgLmFkbWluLWZvcm0gc2VsZWN0IHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMDcpO1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgaGVpZ2h0OiAzNXB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cbiAgLmFkbWluLWZvcm0gaW5wdXQge1xuICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICBtYXJnaW46IDVweCAwO1xuICAgIGhlaWdodDogMzVweDtcbiAgICBtYXJnaW4tbGVmdDogMDsgfVxuICAuYWRtaW4tZm9ybSBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICBtYXJnaW46IDVweCAwO1xuICAgIGhlaWdodDogMzVweDtcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjRTQyRDlGOyB9XG5cbiNjb250ZW50IC5lcG9zLWNvbnRlbnQge1xuICBwYWRkaW5nOiAyMHB4O1xuICBvdmVyZmxvdzogYXV0bztcbiAgbWFyZ2luLWJvdHRvbTogMjBweDsgfVxuICAjY29udGVudCAuZXBvcy1jb250ZW50IC5sZWZ0IHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogNDklOyB9XG4gICNjb250ZW50IC5lcG9zLWNvbnRlbnQgLnJpZ2h0IHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgd2lkdGg6IDQ5JTsgfVxuICAjY29udGVudCAuZXBvcy1jb250ZW50IC5wcm9kdWN0LWxpc3Qge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiA1OSU7XG4gICAgbWluLWhlaWdodDogMzAwcHg7IH1cbiAgI2NvbnRlbnQgLmVwb3MtY29udGVudCAudHJvbGx5IHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgd2lkdGg6IDM5JTtcbiAgICBtaW4taGVpZ2h0OiAzMDBweDtcbiAgICBwYWRkaW5nOiAxMHB4IDEwcHggOHB4IDEwcHg7IH1cbiAgI2NvbnRlbnQgLmVwb3MtY29udGVudCBpbnB1dFt0eXBlPVwidGV4dFwiXSwgI2NvbnRlbnQgLmVwb3MtY29udGVudCBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0ge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICNjb250ZW50IC5lcG9zLWNvbnRlbnQgdWwge1xuICAgIG1hcmdpbi1ib3R0b206IDBweDsgfVxuICAgICNjb250ZW50IC5lcG9zLWNvbnRlbnQgdWwgbGkge1xuICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAyNnB4OyB9XG4gICNjb250ZW50IC5lcG9zLWNvbnRlbnQgaW5wdXQge1xuICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICBtYXJnaW46IDVweCAwO1xuICAgIGhlaWdodDogMzVweDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cblxuLmVwb3Mtc2VsZWN0IHtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjA3KTtcbiAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICBmb250LXNpemU6IDEzcHg7XG4gIGhlaWdodDogMjVweDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbi5lcG9zLWxhYmVsIHtcbiAgY29sb3I6IHdoaXRlO1xuICBoZWlnaHQ6IDM1cHg7XG4gIHBhZGRpbmc6IDdweCA0cHg7XG4gIGJhY2tncm91bmQ6ICM5MkI2MzE7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cblxuLmVwb3MtcHJvZHVjdC12IHtcbiAgcGFkZGluZzogNXB4IDVweCAhaW1wb3J0YW50OyB9XG5cbi5lcG9zLXByb2R1Y3QtYm94LXYge1xuICBwYWRkaW5nOiAxMHB4IDEwcHggOHB4IDEwcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNFQUVBRUE7IH1cblxuLmVwb3MtcHJvZHVjdC1ib3gtdjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNFNDJEOUY7IH1cblxuLmVwb3MtcHJvZHVjdC1ib3gtdiAuZXBvcy1wcm9kdWN0LWltYWdlIHtcbiAgbWluLWhlaWdodDogMTM1cHg7XG4gIG1heC1oZWlnaHQ6IDEzNXB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLmVwb3MtcHJvZHVjdC1ib3gtdiAuZXBvcy1wcm9kdWN0LW5hbWUge1xuICBtYXJnaW46IDEwcHggMCAwO1xuICBoZWlnaHQ6IDMycHg7IH1cbiAgLmVwb3MtcHJvZHVjdC1ib3gtdiAuZXBvcy1wcm9kdWN0LW5hbWUgYSB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxMnB4O1xuICAgIGNvbG9yOiAjNzkzRTk3O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbi5lcG9zLXByb2R1Y3QtYm94LXYgLmVwb3MtcHJpY2Uge1xuICBtYXJnaW46IDRweCAwOyB9XG5cbi5lcG9zLXByb2R1Y3QtYm94LXYgLmVwb3MtcHJpY2UtbmV3IHtcbiAgaGVpZ2h0OiAzMHB4O1xuICBmb250LXNpemU6IDEwcHg7XG4gIGxpbmUtaGVpZ2h0OiAxMnB4OyB9XG5cbi5lcG9zLXByb2R1Y3QtYm94LXYgLmJyYW5kIHtcbiAgbWFyZ2luOiAtMnB4IDAgMDtcbiAgZGlzcGxheTogbm9uZTsgfVxuICAuZXBvcy1wcm9kdWN0LWJveC12IC5icmFuZCBzcGFuLCAuZXBvcy1wcm9kdWN0LWJveC12IC5icmFuZCBhIHtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDsgfVxuXG4uZXBvcy1wcm9kdWN0LWJveC12IC5kZXNjcmlwdGlvbiB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLmVwb3MtcHJvZHVjdC1ib3gtdiAuZGVzY3JpcHRpb24ge1xuICBsaW5lLWhlaWdodDogMTVweDtcbiAgcGFkZGluZzogMTBweCAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5lcG9zLXByb2R1Y3QtYm94LXYgc2VsZWN0IHtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjA3KTtcbiAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGhlaWdodDogMTVweDtcbiAgd2lkdGg6IDcwJSAhaW1wb3J0YW50O1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBmb250LXdlaWdodDogYm9sZDsgfVxuXG4uZXBvcy1wcm9kdWN0LWJveC12IC5lcGJveC1mZyB7XG4gIHBhZGRpbmc6IDA7IH1cblxuLmVwb3MtcHJvZHVjdC1ib3gtdiAuZXBib3gtbGFiZWwge1xuICBjb2xvcjogd2hpdGU7XG4gIG1hcmdpbjogNXB4IDA7XG4gIGhlaWdodDogMzVweDtcbiAgcGFkZGluZzogN3B4IDRweDtcbiAgYmFja2dyb3VuZDogI0VBRUFFQTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogYm9sZDsgfVxuXG4uZXBvcy1wcm9kdWN0LWJveC12IGlucHV0IHtcbiAgZGlzcGxheTogaW5saW5lO1xuICBtYXJnaW46IDVweCAwO1xuICBoZWlnaHQ6IDM1cHg7XG4gIG1hcmdpbi1sZWZ0OiAycHg7IH1cblxuLmVwb3MtcHJvZHVjdC1ib3gtdiBpbnB1dC5xdWFudGl0eSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjUyLCAyNTIsIDI1MiwgMC45NSk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4wNyk7XG4gIHBhZGRpbmctbGVmdDogMjBweDtcbiAgd2lkdGg6IDQzJSAhaW1wb3J0YW50O1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbi5lcG9zLXByb2R1Y3QtYm94LXYgaW5wdXQudkZpbmFsUHJpY2UsIC5lcG9zLXByb2R1Y3QtYm94LXYgaW5wdXQuZmluYWxQcmljZSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjUyLCAyNTIsIDI1MiwgMC45NSk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4wNyk7XG4gIHBhZGRpbmctbGVmdDogNXB4O1xuICB3aWR0aDogMjglICFpbXBvcnRhbnQ7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cblxuLmVwb3MtcHJvZHVjdC1ib3gtdiAuYnV0dG9uLWV4Y2x1c2l2ZSB7XG4gIHdpZHRoOiAzNSU7XG4gIGhlaWdodDogMzVweDsgfVxuXG4uZXBvcy1wcm9kdWN0LWgge1xuICBwYWRkaW5nOiA1cHggNXB4ICFpbXBvcnRhbnQ7IH1cbiAgLmVwb3MtcHJvZHVjdC1oIHRhYmxlIHRib2R5IHRkIHtcbiAgICBwYWRkaW5nOiAwcHggOHB4IDBweCA4cHg7IH1cbiAgLmVwb3MtcHJvZHVjdC1oIC5sYmx0ZCB7XG4gICAgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50OyB9XG4gIC5lcG9zLXByb2R1Y3QtaCAubGFiZWxkLWlucHV0LXRkIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDsgfVxuXG4uZXBvcy1wcm9kdWN0LWJveC1oIC5wYmgtbGFiZWwge1xuICBtYXgtd2lkdGg6IDYwcHg7XG4gIHBhZGRpbmc6IDA7IH1cbiAgLmVwb3MtcHJvZHVjdC1ib3gtaCAucGJoLWxhYmVsIHNwYW4ge1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBoZWlnaHQ6IDM1cHg7XG4gICAgcGFkZGluZzogN3B4IDRweDtcbiAgICBiYWNrZ3JvdW5kOiAjOWRiNTVhO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cblxuLmVwb3MtcHJvZHVjdC1ib3gtaCAucHJvZHVjdC1uYW1lIHtcbiAgbWFyZ2luOiAxMHB4IDAgMDtcbiAgaGVpZ2h0OiAzMnB4OyB9XG4gIC5lcG9zLXByb2R1Y3QtYm94LWggLnByb2R1Y3QtbmFtZSBhIHtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgbGluZS1oZWlnaHQ6IDEycHg7XG4gICAgY29sb3I6ICM3OTNFOTc7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cblxuLmVwb3MtcHJvZHVjdC1ib3gtaCBpbnB1dCB7XG4gIGRpc3BsYXk6IGlubGluZTtcbiAgbWFyZ2luOiA1cHggMDtcbiAgaGVpZ2h0OiAzNXB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbi5lcG9zLXByb2R1Y3QtYm94LWggc2VsZWN0IHtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjA3KTtcbiAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGhlaWdodDogMTVweDtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cblxuLmVwb3MtcHJvZHVjdCB7XG4gIHBhZGRpbmc6IDVweCA1cHggIWltcG9ydGFudDsgfVxuXG4uZXBvcy1wcm9kdWN0LWJveCB7XG4gIHBhZGRpbmc6IDEwcHggMTBweCA4cHggMTBweDtcbiAgYm9yZGVyOiAxcHggc29saWQgI0VBRUFFQTsgfVxuXG4uZXBvcy1wcm9kdWN0LWJveDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNFNDJEOUY7IH1cblxuLm9yZGVyLWhlYWRlciB7XG4gIG1hcmdpbjogNXB4IDAgMDtcbiAgaGVpZ2h0OiAxNXB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAxNXB4O1xuICBmb250LXdlaWdodDogYm9sZDsgfVxuXG4ub3JkZXItZGV0YWlsIHtcbiAgbWFyZ2luOiA1cHggMCAwO1xuICBoZWlnaHQ6IDE1cHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGluZS1oZWlnaHQ6IDE1cHg7IH1cblxuLmVwb3MtcHJvZHVjdC1ib3ggLmltYWdlIHtcbiAgbWluLWhlaWdodDogODVweDtcbiAgbWF4LWhlaWdodDogODVweDtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLmVwb3MtcHJvZHVjdC1ib3ggLmVwb3MtcHJvZHVjdC1uYW1lIHtcbiAgbWFyZ2luOiAxMHB4IDAgMDtcbiAgaGVpZ2h0OiAzMHB4OyB9XG4gIC5lcG9zLXByb2R1Y3QtYm94IC5lcG9zLXByb2R1Y3QtbmFtZSBhIHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgbGluZS1oZWlnaHQ6IDE0cHg7XG4gICAgY29sb3I6ICM3OTNFOTc7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cblxuLmVwb3MtcHJvZHVjdC1ib3ggLmVwb3MtcHJpY2UtbmV3IHtcbiAgbWFyZ2luOiAxMHB4IDAgMDtcbiAgaGVpZ2h0OiAzMHB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICBmb250LXdlaWdodDogYm9sZDsgfVxuXG4uZXBvcy1wcm9kdWN0LWJveCAuZmctZmllbGQge1xuICBwYWRkaW5nLWxlZnQ6IDA7IH1cblxuLmVwb3MtcHJvZHVjdC1ib3ggLmZnLWxhYmVsIHtcbiAgbWF4LXdpZHRoOiA2MHB4O1xuICBwYWRkaW5nOiAwOyB9XG4gIC5lcG9zLXByb2R1Y3QtYm94IC5mZy1sYWJlbCBzcGFuIHtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgaGVpZ2h0OiAzMHB4O1xuICAgIHBhZGRpbmc6IDdweCA0cHg7XG4gICAgYmFja2dyb3VuZDogIzkyQjYzMTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbi5lcG9zLXByb2R1Y3QtYm94IC5mZy1pbnB1dCB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBoZWlnaHQ6IDMwcHg7XG4gIGRpc3BsYXk6IGlubGluZTtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogYm9sZDsgfVxuXG4uZXBvcy1wcm9kdWN0LWJveCAuZGVzY3JpcHRpb24ge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5lcG9zLXByb2R1Y3QtYm94IC5icmFuZCB7XG4gIG1hcmdpbjogLTJweCAwIDA7XG4gIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmVwb3MtcHJvZHVjdC1ib3ggLmJyYW5kIHNwYW4sIC5lcG9zLXByb2R1Y3QtYm94IC5icmFuZCBhIHtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDsgfVxuXG4uZXBvcy1wcm9kdWN0LWJveCAuZGVzY3JpcHRpb24ge1xuICBsaW5lLWhlaWdodDogMTVweDtcbiAgcGFkZGluZzogMTBweCAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5lcG9zLXByb2R1Y3QtYm94IC5nLWxhYmVsIHtcbiAgd2lkaHQ6IDElO1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsOyB9XG5cbi5lcG9zLXByb2R1Y3QtYm94IHNlbGVjdCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4wNyk7XG4gIHBhZGRpbmctbGVmdDogMTBweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBoZWlnaHQ6IDMwcHg7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBmb250LXdlaWdodDogYm9sZDsgfVxuXG4uZXBvcy1wcm9kdWN0LWJveCBpbnB1dCB7XG4gIGRpc3BsYXk6IGlubGluZTtcbiAgbWFyZ2luOiA1cHggMDtcbiAgaGVpZ2h0OiAzMHB4O1xuICBtYXJnaW4tbGVmdDogMnB4OyB9XG5cbi5lcG9zLXByb2R1Y3QtYm94IGlucHV0LnF1YW50aXR5IHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTIsIDI1MiwgMjUyLCAwLjk1KTtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjA3KTtcbiAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zaXplOiAxMnB4OyB9XG5cbi5lcG9zLXRyb2xseS1kYXRhIHtcbiAgaGVpZ2h0OiAyLjByZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBiYWNrZ3JvdW5kOiAjRjhGOEY4O1xuICBjb2xvcjogI0U0MkQ5RjtcbiAgcGFkZGluZzogMC41cmVtIDEuNXJlbTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIG1hcmdpbjogM3B4IDAgM3B4IDA7IH1cblxuLmVwb3MtZm9ybSAuZm9ybS1mZyB7XG4gIG1hcmdpbi1ib3R0b206IDE1cHg7IH1cblxuLmVwb3MtZm9ybSAuZmctZmllbGQge1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIGZsb2F0OiBsZWZ0O1xuICB3aWR0aDogNTklO1xuICBwYWRkaW5nLXJpZ2h0OiAycHg7IH1cblxuLmVwb3MtZm9ybSAuZmctZmllbGQtMiB7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHBhZGRpbmctcmlnaHQ6IDJweDtcbiAgd2lkdGg6IDI5JTsgfVxuXG4uZXBvcy1mb3JtIC5mZy1maWVsZC0zIHtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBmbG9hdDogbGVmdDtcbiAgcGFkZGluZy1yaWdodDogMnB4O1xuICB3aWR0aDogMjAlOyB9XG5cbi5lcG9zLWZvcm0gLmZnLWZpZWxkLTQge1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIGZsb2F0OiBsZWZ0O1xuICBwYWRkaW5nLXJpZ2h0OiAycHg7XG4gIHdpZHRoOiAxNSU7IH1cblxuLmVwb3MtZm9ybSAuZmctbGFiZWwge1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDI5JTtcbiAgcGFkZGluZzogMDsgfVxuXG4uZXBvcy1mb3JtIC5mZy1sYWJlbC1sYXJnZSB7XG4gIGZsb2F0OiBsZWZ0O1xuICB3aWR0aDogNTklO1xuICBwYWRkaW5nOiAwOyB9XG5cbi5lcG9zLWZvcm0gLmZnLWxhYmVsIHNwYW4sIC5lcG9zLWZvcm0gLmZnLWxhYmVsLWxhcmdlIHNwYW4ge1xuICBjb2xvcjogI0U0MkQ5RjtcbiAgaGVpZ2h0OiAzNXB4O1xuICBwYWRkaW5nOiA3cHggMTBweDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBib3JkZXI6IDFweCBzb2xpZCAjOTJCNjMxOyB9XG5cbi5lcG9zLWZvcm0gLmZnLW1pbmkge1xuICBmbG9hdDogbGVmdDtcbiAgcGFkZGluZzogMDtcbiAgaGVpZ2h0OiAzNXB4O1xuICBwYWRkaW5nOiA3cHggNXB4O1xuICBiYWNrZ3JvdW5kOiAjOTJCNjMxO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWF4LXdpZHRoOiAxMnB4OyB9XG5cbi5lcG9zLWZvcm0gLmZnLXJlcXVpcmVkIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHBhZGRpbmc6IDA7XG4gIGhlaWdodDogMzVweDtcbiAgcGFkZGluZzogN3B4IDVweDtcbiAgYmFja2dyb3VuZDogcmVkO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWF4LXdpZHRoOiAxMnB4OyB9XG5cbi5lcG9zLWZvcm0gc2VsZWN0IHtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjA3KTtcbiAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGhlaWdodDogMzVweDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbi5lcG9zLWZvcm0gaW5wdXQge1xuICBkaXNwbGF5OiBpbmxpbmU7XG4gIG1hcmdpbjogNXB4IDA7XG4gIGhlaWdodDogMzVweDtcbiAgbWFyZ2luLWxlZnQ6IDA7IH1cblxuLmVwb3MtZm9ybSBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICBkaXNwbGF5OiBpbmxpbmU7XG4gIG1hcmdpbjogNXB4IDA7XG4gIGhlaWdodDogMzVweDtcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNFNDJEOUY7IH1cblxuI2ludm9pY2UtcGFnZSB7XG4gIGZvbnQtZmFtaWx5OiB2ZXJkYW5hLCBjYWxpYnJpLCBzYW5zLXNlcmlmO1xuICB3aWR0aDogNzA4cHg7XG4gIG1heC13aWR0aDogNzA4cHg7XG4gIG1hcmdpbi1sZWZ0OiAxNXB4O1xuICBtYXJnaW4tdG9wOiAwO1xuICBwYWRkaW5nLXRvcDogMDtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBjb2xvcjogYmxhY2s7IH1cblxuI2ludm9pY2UtcGFnZSAuaGVhZGVyIHtcbiAgd2lkdGg6IDcwNXB4O1xuICBoZWlnaHQ6IDE0MHB4O1xuICBtYXJnaW4tbGVmdDogMXB4OyB9XG4gICNpbnZvaWNlLXBhZ2UgLmhlYWRlciAuaGVhZGVyLWxlZnQge1xuICAgIHdpZHRoOiAyMDBweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cbiAgI2ludm9pY2UtcGFnZSAuaGVhZGVyIC5oZWFkZXItbWlkZGxlIHtcbiAgICB3aWR0aDogMjAwcHg7XG4gICAgcGFkZGluZy10b3A6IDgwcHg7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgI2ludm9pY2UtcGFnZSAuaGVhZGVyIC5oZWFkZXItcmlnaHQge1xuICAgIHdpZHRoOiAzMDVweDtcbiAgICBmbG9hdDogbGVmdDsgfVxuICAjaW52b2ljZS1wYWdlIC5oZWFkZXIgLmxvZ28ge1xuICAgIHBhZGRpbmctdG9wOiA4cHg7XG4gICAgbWF4LXdpZHRoOiAxMTJweDtcbiAgICBtYXgtaGVpZ2h0OiA3NXB4OyB9XG4gICNpbnZvaWNlLXBhZ2UgLmhlYWRlciAuY29tcGFueSB7XG4gICAgcGFkZGluZy1yaWdodDogMjBweDtcbiAgICBwYWRkaW5nLXRvcDogNHB4O1xuICAgIGZsb2F0OiByaWdodDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gICNpbnZvaWNlLXBhZ2UgLmhlYWRlciAuY29tcGFueS1uYW1lIHtcbiAgICBwYWRkaW5nLXRvcDogNnB4O1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG4gICNpbnZvaWNlLXBhZ2UgLmhlYWRlciAuaW52b2ljZS1oZWFkZXIge1xuICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgICBmb250LXdlaWdodDogYm9sZDsgfVxuICAjaW52b2ljZS1wYWdlIC5oZWFkZXIgLmNvbXBhbnktYWRkcmVzcyB7XG4gICAgcGFkZGluZy10b3A6IDFweDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIGZvbnQtc2l6ZTogMTFweDsgfVxuXG4jaW52b2ljZS1wYWdlIC50b3AtZGV0YWlscyB7XG4gIHdpZHRoOiA3MDVweDtcbiAgaGVpZ2h0OiAxNTVweDtcbiAgbWFyZ2luLWxlZnQ6IDFweDsgfVxuICAjaW52b2ljZS1wYWdlIC50b3AtZGV0YWlscyAudGQtbGVmdCB7XG4gICAgd2lkdGg6IDQwMHB4O1xuICAgIGZsb2F0OiBsZWZ0OyB9XG4gICNpbnZvaWNlLXBhZ2UgLnRvcC1kZXRhaWxzIC50ZC1yaWdodCB7XG4gICAgd2lkdGg6IDMwNXB4O1xuICAgIHBhZGRpbmctbGVmdDogMTZweDtcbiAgICBmbG9hdDogbGVmdDsgfVxuICAjaW52b2ljZS1wYWdlIC50b3AtZGV0YWlscyAuY3VzdG9tZXItZGV0YWlscyB7XG4gICAgbWluLWhlaWdodDogMTU1cHg7XG4gICAgcGFkZGluZzogMTJweCAyMnB4O1xuICAgIG1heC13aWR0aDogMzUwcHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4OyB9XG4gICNpbnZvaWNlLXBhZ2UgLnRvcC1kZXRhaWxzIC5pbnZvaWNlLWRldGFpbHMge1xuICAgIG1pbi1oZWlnaHQ6IDE1NXB4O1xuICAgIG1heC13aWR0aDogMjUwcHg7XG4gICAgcGFkZGluZzogMTJweCAyMnB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDsgfVxuICAjaW52b2ljZS1wYWdlIC50b3AtZGV0YWlscyAudGQtZ3JvdXAge1xuICAgIGhlaWdodDogMjVweDsgfVxuICAjaW52b2ljZS1wYWdlIC50b3AtZGV0YWlscyAudGQtbGFiZWwge1xuICAgIHdpZHRoOiAxMDBweDtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIGZvbnQtc2l6ZTogMTJweDsgfVxuICAjaW52b2ljZS1wYWdlIC50b3AtZGV0YWlscyAudGQtdGV4dCB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBmb250LXNpemU6IDEycHg7IH1cbiAgI2ludm9pY2UtcGFnZSAudG9wLWRldGFpbHMgLmNsaWVudC1sYWJlbCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cbiAgI2ludm9pY2UtcGFnZSAudG9wLWRldGFpbHMgLmNsaWVudC10ZXh0IHtcbiAgICBwYWRkaW5nLXRvcDogMnB4O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgZm9udC1zaXplOiAxMnB4OyB9XG4gICAgI2ludm9pY2UtcGFnZSAudG9wLWRldGFpbHMgLmNsaWVudC10ZXh0IHNwYW4ge1xuICAgICAgcGFkZGluZy1yaWdodDogMTZweDsgfVxuXG4jaW52b2ljZS1wYWdlIC5pbnZvaWNlLXRhYmxlIHtcbiAgd2lkdGg6IDcwNXB4O1xuICBtaW4taGVpZ2h0OiA1MDBweDtcbiAgbWFyZ2luLWxlZnQ6IDFweDtcbiAgbWFyZ2luLXRvcDogMjJweDtcbiAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7XG4gIGJvcmRlci1yYWRpdXM6IDhweDsgfVxuICAjaW52b2ljZS1wYWdlIC5pbnZvaWNlLXRhYmxlIC5oZWFkZXItcm93IHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgcGFkZGluZzogOHB4IDEwcHg7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgaGVpZ2h0OiAzMnB4O1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBibGFjazsgfVxuICAjaW52b2ljZS1wYWdlIC5pbnZvaWNlLXRhYmxlIC5kYXRhLXJvdyB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICAgIGNsZWFyOiBib3RoO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBmb250LXNpemU6IDEycHg7IH1cbiAgICAjaW52b2ljZS1wYWdlIC5pbnZvaWNlLXRhYmxlIC5kYXRhLXJvdyBkaXYge1xuICAgICAgaGVpZ2h0OiAyM3B4O1xuICAgICAgcGFkZGluZy10b3A6IDNweDtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cbiAgI2ludm9pY2UtcGFnZSAuaW52b2ljZS10YWJsZSAuaXRlbS1jb2RlIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogNzVweDsgfVxuICAjaW52b2ljZS1wYWdlIC5pbnZvaWNlLXRhYmxlIC5kZXNjcmlwdGlvbiB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDMwNXB4OyB9XG4gICNpbnZvaWNlLXBhZ2UgLmludm9pY2UtdGFibGUgLnBhY2stc2l6ZSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDgwcHg7IH1cbiAgI2ludm9pY2UtcGFnZSAuaW52b2ljZS10YWJsZSAucXR5IHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMzVweDtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgcGFkZGluZy1yaWdodDogMjBweDsgfVxuICAjaW52b2ljZS1wYWdlIC5pbnZvaWNlLXRhYmxlIC5pdC1wcmljZSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDc1cHg7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgcGFkZGluZy1yaWdodDogMTVweDsgfVxuICAjaW52b2ljZS1wYWdlIC5pbnZvaWNlLXRhYmxlIC52YXQge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAzNXB4O1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7IH1cbiAgI2ludm9pY2UtcGFnZSAuaW52b2ljZS10YWJsZSAuaXQtdG90YWwge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiA3NXB4O1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7IH1cblxuI2ludm9pY2UtcGFnZSAuaW52b2ljZS10b3RhbHMge1xuICB3aWR0aDogNzA1cHg7XG4gIG1hcmdpbi1sZWZ0OiAxcHg7XG4gIG1hcmdpbi10b3A6IDZweDtcbiAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgbWluLWhlaWdodDogMTIwcHg7XG4gIGZvbnQtc2l6ZTogMTFweDsgfVxuICAjaW52b2ljZS1wYWdlIC5pbnZvaWNlLXRvdGFscyAuaXQtbGVmdCB7XG4gICAgd2lkdGg6IDQwMHB4O1xuICAgIGZsb2F0OiBsZWZ0OyB9XG4gICNpbnZvaWNlLXBhZ2UgLmludm9pY2UtdG90YWxzIC5pdC1yaWdodCB7XG4gICAgd2lkdGg6IDMwMHB4O1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgbWFyZ2luLXJpZ2h0OiAzcHg7IH1cbiAgI2ludm9pY2UtcGFnZSAuaW52b2ljZS10b3RhbHMgLmN1c3RvbWVyLWNoZWNrIHtcbiAgICBwYWRkaW5nOiAxOHB4IDE2cHggNHB4IDE4cHg7IH1cbiAgI2ludm9pY2UtcGFnZSAuaW52b2ljZS10b3RhbHMgLmZpbmFsLXRvdGFscyB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgcGFkZGluZzogMThweCA2cHggNHB4IDZweDtcbiAgICBmbG9hdDogcmlnaHQ7IH1cbiAgI2ludm9pY2UtcGFnZSAuaW52b2ljZS10b3RhbHMgLml0LWdyb3VwIHtcbiAgICBoZWlnaHQ6IDMwcHg7IH1cbiAgI2ludm9pY2UtcGFnZSAuaW52b2ljZS10b3RhbHMgLml0LWxhYmVsIHtcbiAgICB3aWR0aDogMTMwcHg7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cbiAgI2ludm9pY2UtcGFnZSAuaW52b2ljZS10b3RhbHMgLml0LXRleHQge1xuICAgIHdpZHRoOiAxMjBweDtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyMnB4OyB9XG4gICNpbnZvaWNlLXBhZ2UgLmludm9pY2UtdG90YWxzIC5pdGMtbGFiZWwge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9XG5cbiNpbnZvaWNlLXBhZ2UgLmludm9pY2UtZm9vdGVyIHtcbiAgd2lkdGg6IDcwNXB4O1xuICBtYXJnaW4tbGVmdDogMXB4O1xuICBtYXJnaW4tdG9wOiAycHg7XG4gIG1pbi1oZWlnaHQ6IDIwcHg7IH1cbiAgI2ludm9pY2UtcGFnZSAuaW52b2ljZS1mb290ZXIgLmlmb290ZXIge1xuICAgIG1heC1oZWlnaHQ6IDEwMHB4O1xuICAgIHBhZGRpbmc6IDZweCAxMnB4IDRweCAxOHB4OyB9XG4gICNpbnZvaWNlLXBhZ2UgLmludm9pY2UtZm9vdGVyIC5kaXNjbGFpbWVyIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIGZvbnQtc2l6ZTogOHB4OyB9XG4gICNpbnZvaWNlLXBhZ2UgLmludm9pY2UtZm9vdGVyIC5wYWdlLW51bWJlciB7XG4gICAgcGFkZGluZzogNnB4IDE2cHggNHB4IDE4cHg7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgZm9udC1zaXplOiAxMHB4O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG4gICNpbnZvaWNlLXBhZ2UgLmludm9pY2UtZm9vdGVyIC5jb21wYW55LWRldGFpbHMge1xuICAgIHBhZGRpbmc6IDZweCAxNnB4IDRweCAxOHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDExcHg7IH1cbiAgICAjaW52b2ljZS1wYWdlIC5pbnZvaWNlLWZvb3RlciAuY29tcGFueS1kZXRhaWxzIHNwYW4ge1xuICAgICAgcGFkZGluZy1yaWdodDogMTZweDsgfVxuXG4ud3JhcHBlciB7XG4gIG1heC13aWR0aDogMTE3MHB4OyB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA5ODBweCkgYW5kIChtYXgtd2lkdGg6IDEyODBweCkge1xuICAud3JhcHBlciB7XG4gICAgbWFyZ2luOiAwIDMwcHg7IH0gfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC53cmFwcGVyIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDsgfVxuICAjaGVhZGVyLXN0aWNreS13cmFwcGVyIHtcbiAgICBiYWNrZ3JvdW5kOiBpbmhlcml0O1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgb3BhY2l0eTogMTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICB3aWR0aDogYXV0bztcbiAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICB6LWluZGV4OiBpbmhlcml0OyB9XG4gIC5pcy1zdGlja3kgI2hlYWRlciB7XG4gICAgYmFja2dyb3VuZDogaW5oZXJpdDtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luOiAwIDAgMzBweDtcbiAgICB3aWR0aDogYXV0bztcbiAgICB6LWluZGV4OiBpbmhlcml0OyB9XG4gICNoZWFkZXIge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmUgIWltcG9ydGFudDsgfVxuICAucHJvZHVjdCAuaW1hZ2Uge1xuICAgIG1pbi1oZWlnaHQ6IDE1MHB4OyB9XG4gIC5wcm9kdWN0IHtcbiAgICBwYWRkaW5nLXRvcDogMTBweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctYm90dG9tOiAxMHB4ICFpbXBvcnRhbnQ7IH1cbiAgLnByb2R1Y3QtYm94IC5pbmNidG4sIC5wcm9kdWN0LWJveCAuZGVjYnRuIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cbiAgLnByb2R1Y3QtYm94IGlucHV0IHtcbiAgICBoZWlnaHQ6IDMwcHg7IH1cbiAgLnByb2R1Y3QtYm94IHNlbGVjdCB7XG4gICAgaGVpZ2h0OiAzMHB4OyB9XG4gIC5wcm9kdWN0LWJveCAuYnV0dG9uLWV4Y2x1c2l2ZSB7XG4gICAgd2lkdGg6IDUwJTsgfVxuICAucHJvZHVjdC1ib3ggaW5wdXQucXVhbnRpdHkge1xuICAgIHdpZHRoOiA0NSU7XG4gICAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgLnByb2R1Y3QtbGlzdCAuaW1hZ2Uge1xuICAgIHdpZHRoOiA1MCU7IH1cbiAgLnByb2R1Y3QtbGlzdCAucHJpY2Uge1xuICAgIHBhZGRpbmc6IDEwcHggMCA1cHg7IH1cbiAgLnByb2R1Y3QtbGlzdCAuY2FydCBpbnB1dCB7XG4gICAgd2lkdGg6IDUwJTsgfVxuICAucm93IC5wcm9kdWN0LWxpc3QgLnNtYWxsLTIge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogMTBweDsgfVxuICAgIC5yb3cgLnByb2R1Y3QtbGlzdCAuc21hbGwtMiAudGhyZWUge1xuICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gICAgLnJvdyAucHJvZHVjdC1saXN0IC5zbWFsbC0yIC5maXZlIHtcbiAgICAgIHdpZHRoOiA0MS42NjY3JSAhaW1wb3J0YW50O1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgICAucm93IC5wcm9kdWN0LWxpc3QgLnNtYWxsLTIgLnNpeCB7XG4gICAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cbiAgLmJveC1jYXRlZ29yeS1ob21lID4gLmZpdmUtbm9jOm50aC1jaGlsZCg1bisxKSwgLmJveC1tYW51ZmFjdHVyZXJzLWhvbWUgPiAuZml2ZS1ub2M6bnRoLWNoaWxkKDVuKzEpIHtcbiAgICBjbGVhcjogbm9uZTsgfVxuICAjd2VsY29tZSwgI3QtaGVhZGVyID4gZGl2IHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgI2hlYWRlciAjbG9nbyB7XG4gICAgcGFkZGluZzogNXB4IDAgIWltcG9ydGFudDsgfVxuICAjaGVhZGVyICNzZWFyY2gge1xuICAgIGZsb2F0OiBub25lO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICB3aWR0aDogMTAwJTsgfVxuICAgICNoZWFkZXIgI3NlYXJjaCBpbnB1dCB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAjaGVhZGVyIC5idXR0b24tc2VhcmNoIHtcbiAgICByaWdodDogMTBweDsgfVxuICAjdC1oZWFkZXIgI2NhcnQge1xuICAgIGxlZnQ6IGF1dG87XG4gICAgbWFyZ2luOiAxNXB4IGF1dG8gMTBweDtcbiAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIHRvcDogYXV0bztcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDtcbiAgICBtaW4td2lkdGg6IDIzMHB4OyB9XG4gICNoZWFkZXIgI2NhcnQgLmhlYWRpbmcge1xuICAgIGZsb2F0OiBub25lO1xuICAgIG1hcmdpbi1yaWdodDogaW5oZXJpdDsgfVxuICAgICNoZWFkZXIgI2NhcnQgLmhlYWRpbmcgaDUge1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICAjaGVhZGVyICNjYXJ0IC5oZWFkaW5nIGEgZGl2I2NhcnQtdG90YWwge1xuICAgICAgYm9yZGVyLXJpZ2h0OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICBmbG9hdDogbm9uZTtcbiAgICAgIHBhZGRpbmc6IDEycHggMTVweCAwO1xuICAgICAgZm9udC1zaXplOiAyMHB4ICFpbXBvcnRhbnQ7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICAjaGVhZGVyICNjYXJ0IC5oZWFkaW5nIGEgZGl2I2NhcnQtaWNvbiB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICNoZWFkZXIgI2NhcnQgLmNvbnRlbnQge1xuICAgIG1pbi13aWR0aDogMjgwcHg7IH1cbiAgLnRvcC1iYXIge1xuICAgIHBhZGRpbmc6IDEwcHggIWltcG9ydGFudDsgfVxuICAudG9wLWJhciB1bCA+IGxpLm5hbWUgYSB7XG4gICAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbiAgICBib3JkZXItYm90dG9tOiBub25lOyB9XG4gIC50b3AtYmFyIHVsID4gbGkgYSB7XG4gICAgbGluZS1oZWlnaHQ6IDQwcHggIWltcG9ydGFudDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0Y0RjVGNDtcbiAgICBiYWNrZ3JvdW5kOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICM0NjQ2NDYgIWltcG9ydGFudDsgfVxuICAgIC50b3AtYmFyIHVsID4gbGkgYTpob3ZlciB7XG4gICAgICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xuICAgICAgYmFja2dyb3VuZDogIzc5M0U5NyAhaW1wb3J0YW50OyB9XG4gIC50b3AtYmFyIHVsID4gbGk6bm90KC5uYW1lKTpob3ZlciBhIHtcbiAgICBjb2xvcjogI0ZGRkZGRjsgfVxuICAudG9wLWJhciB1bCA+IGxpLnRvZ2dsZS10b3BiYXIgYSB7XG4gICAgYmFja2dyb3VuZDogbm9uZTsgfVxuICAgIC50b3AtYmFyIHVsID4gbGkudG9nZ2xlLXRvcGJhciBhOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6IG5vbmU7IH1cbiAgLnRvcC1iYXIgdWwgPiBsaTpub3QoLm5hbWUpOmhvdmVyLCAudG9wLWJhciB1bCA+IGxpOm5vdCgubmFtZSkuYWN0aXZlLCAudG9wLWJhciB1bCA+IGxpOm5vdCgubmFtZSk6Zm9jdXMge1xuICAgIGJhY2tncm91bmQ6IG5vbmU7IH1cbiAgLnRvcC1iYXIgdWwubGVmdCA+IGxpIGEge1xuICAgIHRyYW5zaXRpb246IG5vbmU7IH1cbiAgI2NvbnRlbnQgLmNvbnRlbnQgaW5wdXRbdHlwZT1cInRleHRcIl0sICNjb250ZW50IC5jb250ZW50IGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXSB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgdGV4dGFyZWEsIHNlbGVjdCB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLyogIENhdGVnb3J5IFBhZ2UgICovXG4gIC5wcm9kdWN0LWxpc3QgYS53aXNobGlzdC10aXAsIC5wcm9kdWN0LWxpc3QgYS5jb21wYXJlLXRpcCB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAucHJvZHVjdC1ncmlkIGEud2lzaGxpc3QtdGlwLCAucHJvZHVjdC1ncmlkIGEuY29tcGFyZS10aXAge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLnByb2R1Y3QtY29tcGFyZSB7XG4gICAgYm9yZGVyLWxlZnQ6IG5vbmUgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLXRvcDogMDsgfVxuICAucHJvZHVjdC1maWx0ZXIgLmxpbWl0LCAucHJvZHVjdC1maWx0ZXIgLnNvcnQge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgbWFyZ2luLXRvcDogMDsgfVxuICAucGFnaW5hdGlvbiAubGlua3Mge1xuICAgIGZsb2F0OiBub25lO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAucGFnaW5hdGlvbiAucmVzdWx0cyB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBhZGRpbmctdG9wOiAxMHB4OyB9XG4gIC5wcm9kdWN0LWdyaWQgLnJhdGluZyBpbWcge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLyogIFByb2R1Y3QgUGFnZSAgKi9cbiAgLnByZXYtbmV4dCBhLnByb2R1Y3QtcHJldi10aXAsIC5wcmV2LW5leHQgYS5wcm9kdWN0LW5leHQtdGlwIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5wcm9kdWN0LWluZm8gLnByb2R1Y3QtbGVmdCB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgICAucHJvZHVjdC1pbmZvIC5wcm9kdWN0LWxlZnQgLmltYWdlIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIGZsb2F0OiBub25lOyB9XG4gICAgLnByb2R1Y3QtaW5mbyAucHJvZHVjdC1sZWZ0IC5pbWFnZS1hZGRpdGlvbmFsIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIHdpZHRoOiBhdXRvOyB9XG4gICAgICAucHJvZHVjdC1pbmZvIC5wcm9kdWN0LWxlZnQgLmltYWdlLWFkZGl0aW9uYWwgYSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgZmxvYXQ6IG5vbmU7IH1cbiAgLnByb2R1Y3QtZGVzY3JpcHRpb24tYiAucHJvZHVjdC1kZXNjcmlwdGlvbi1sIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxNXB4OyB9XG4gIC5odGFicyBhIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAucmV2aWV3LWxpc3QgLnJldmlld3MtcmlnaHQge1xuICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgIG1pbi1oZWlnaHQ6IDFweDsgfVxuICAvKiAgRm9vdGVyICAqL1xuICAjZm9vdGVyX3Age1xuICAgIHBhZGRpbmc6IDIwcHggMTBweDtcbiAgICBoZWlnaHQ6IDEwMCU7IH1cbiAgICAjZm9vdGVyX3Agc3Bhbi5wX2ljb24ge1xuICAgICAgbWFyZ2luLWJvdHRvbTogNXB4OyB9XG4gICNmb290ZXJfZCAjcG93ZXJlZF9jb250ZW50IHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWFyZ2luLWJvdHRvbTogMTVweDsgfVxuICAjZm9vdGVyX2QgI3BheW1lbnRfbG9nb3Mge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAvKiAgU2hvcHBpbmcgQ2FydCAgKi9cbiAgLmNhcnQtaW5mbyAuaW1hZ2UsIC5jYXJ0LWluZm8gLm1vZGVsLCAuY2FydC1pbmZvIC5wcmljZSB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAuY2FydC1tb2R1bGUgI3NoaXBwaW5nIHNlbGVjdCB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLmJ1dHRvbnMgLmxlZnQsIC5idXR0b25zIC5yaWdodCB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLyogIENoZWNrb3V0ICAqL1xuICAuY2hlY2tvdXQtY29udGVudCAubGVmdCwgLmNoZWNrb3V0LWNvbnRlbnQgLnJpZ2h0IHtcbiAgICBjbGVhcjogYm90aDtcbiAgICBmbG9hdDogbm9uZTtcbiAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5sb2dpbi1jb250ZW50IC5sZWZ0LCAubG9naW4tY29udGVudCAucmlnaHQge1xuICAgIGNsZWFyOiBib3RoO1xuICAgIGZsb2F0OiBub25lO1xuICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLmNoZWNrb3V0LWNvbnRlbnQgLnJpZ2h0IHNlbGVjdCB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLmNoZWNrb3V0LWNvbnRlbnQgLnJpZ2h0IGlucHV0IHtcbiAgICBtYXJnaW4tdG9wOiAxNXB4OyB9XG4gIC5yZXR1cm4tcmVhc29uIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDBweDtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAucmV0dXJuLW9wZW5lZCB7XG4gICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICB3aWR0aDogMTAwJTsgfSB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiA5NDBweCkge1xuICAubXktYWNjb3VudCB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG4gIC5jdXJyZW5jeSwgLmxhbmd1YWdlIHtcbiAgICB3aWR0aDogNTAlICFpbXBvcnRhbnQ7IH1cbiAgLnByb2R1Y3QtZmlsdGVyIC5saW1pdCwgLnByb2R1Y3QtZmlsdGVyIC5zb3J0IHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIG1hcmdpbi10b3A6IDA7IH1cbiAgLnByb2R1Y3QtZ3JpZCAucmF0aW5nIGltZyB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAvKiAgRm9vdGVyICAqL1xuICAjZm9vdGVyX3Agc3Bhbi5wX3RpdGxlIHtcbiAgICBwYWRkaW5nLXRvcDogMDsgfSB9XG5cbi8qICovXG4vKiBHbG9iYWwgTWlzYyAtLS0gKi9cbi8qICAgICAgICAgICAgICAgICAqL1xuLyogQmxvY2sgR3JpZHMgLS0tICovXG4vKiAgICAgICAgICAgICAgICAgKi9cbi8qIEZvcm1zIC0tLSAqL1xuLyogICAgICAgICAgICovXG4vKiBFeHRlbmQgd2lkdGggb2YgYWxsIGlucHV0cyAqL1xuLyogVG9wYmFyIFNwZWNpZmljIEJyZWFrcG9pbnQgdGhhdCB5b3UgY2FuIGN1c3RvbWl6ZSAqL1xuLyogLnRvcC1iYXIgdWwgPiBsaS50b2dnbGUtdG9wYmFyIGEgeyBjb250ZW50OiBcIlwiOyBkaXNwbGF5OiBibG9jazsgd2lkdGg6IDA7IGhlaWdodDogMDsgYm9yZGVyOiBzb2xpZCA4cHg7IGJvcmRlci1jb2xvcjogd2hpdGUgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7IHBhZGRpbmc6IDA7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiA1MCU7IHJpZ2h0OiAyMi41cHg7IG1hcmdpbi10b3A6IC00cHg7IH0gKi9cbi8qIC50b3AtYmFyLmV4cGFuZGVkIHVsIGxpLnRvZ2dsZS10b3BiYXIgYSB7IGNvbnRlbnQ6IFwiXCI7IGRpc3BsYXk6IGJsb2NrOyB3aWR0aDogMDsgaGVpZ2h0OiAwOyBib3JkZXI6IHNvbGlkIDhweDsgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjZmZmZmZmIHRyYW5zcGFyZW50OyB0b3A6IGF1dG87IGJvdHRvbTogNTAlOyBtYXJnaW4tYm90dG9tOiAtNHB4OyB9ICovXG4vKiAgQm9keSBiYWNrZ3JvdW5kIGNvbG9yIGFuZCBwYXR0ZXJuICAqL1xuYm9keSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGNkY2RjY7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IHRvcCBjZW50ZXI7XG4gIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQ7XG4gIGJhY2tncm91bmQtYXR0YWNobWVudDogc2Nyb2xsOyB9XG5cbi8qICBIZWFkaW5ncyBjb2xvciAgKi9cbmgxLCBoMiwgaDMsIGg0LCBoNSwgaDYsICNjb250ZW50IC5ib3gtaGVhZGluZywgYm9keSwgLmNhcnQtaW5mbyB0aGVhZCB0ZCwgLmNoZWNrb3V0LXByb2R1Y3QgdGhlYWQgdGQsIHRhYmxlIHRib2R5IHRyIHRkLCAud2lzaGxpc3QtaW5mbyB0aGVhZCB0ZCB7XG4gIGNvbG9yOiAjNDY0NjQ2OyB9XG5cbi8qICBCb2R5IHRleHQgY29sb3IgICovXG4uc2l0ZW1hcC1pbmZvIHVsIGxpIHVsIGxpIHtcbiAgY29sb3I6ICM0NjQ2NDY7IH1cbiAgLnNpdGVtYXAtaW5mbyB1bCBsaSB1bCBsaSBhIHtcbiAgICBjb2xvcjogIzQ2NDY0NjsgfVxuXG5ib2R5LCAuY29udGVudCwgI2NvbnRlbnQgc2VsZWN0LCAjY29udGVudCB0ZXh0YXJlYSwgI2NvbnRlbnQgbGFiZWwge1xuICBjb2xvcjogIzQ2NDY0NjsgfVxuXG5pbnB1dFt0eXBlPVwidGV4dFwiXSwgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdLCBpbnB1dFt0eXBlPVwiZGF0ZVwiXSwgaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdLCBpbnB1dFt0eXBlPVwiZW1haWxcIl0sIGlucHV0W3R5cGU9XCJudW1iZXJcIl0sIGlucHV0W3R5cGU9XCJzZWFyY2hcIl0sIGlucHV0W3R5cGU9XCJ0ZWxcIl0sIGlucHV0W3R5cGU9XCJ0aW1lXCJdLCBpbnB1dFt0eXBlPVwidXJsXCJdIHtcbiAgY29sb3I6ICM0NjQ2NDY7IH1cblxuLnByb2R1Y3QtZ3JpZCAubmFtZSBhLCAjY29udGVudCAuYm94LXByb2R1Y3QgLm5hbWUgYSwgLnByb2R1Y3QtbGlzdCAubmFtZSBhLCAucHJvZHVjdC1pbmZvIC53aXNobGlzdC1jb21wYXJlLWZyaWVuZCBhLCAucHJvZHVjdC1ib3R0b20tcmVsYXRlZCAubmFtZSBhLCAucHJvZHVjdC1ib3gtc2xpZGVyIC5uYW1lIGEsIC5wcm9kdWN0LXJpZ2h0LXNtLWluZm8gc3Bhbi5wX3RpdGxlIGEsIC5ib3gtY2F0ZWdvcnktaG9tZSAuc3ViY2F0IGEsIC5wcm9kdWN0LWNvbXBhcmUgYSwgLnByb2R1Y3QtaW5mbyAucmV2aWV3ID4gZGl2IGEge1xuICBjb2xvcjogIzQ2NDY0NjsgfVxuXG4ubWluaS1jYXJ0LWluZm8gLm5hbWUgc21hbGwsIC5taW5pLWNhcnQtaW5mbyB0ZCB7XG4gIGNvbG9yOiAjNDY0NjQ2OyB9XG5cbi5taW5pLWNhcnQtdG90YWwgdGQge1xuICBjb2xvcjogIzQ2NDY0NjsgfVxuXG4vKiAgTGlnaHQgdGV4dCBjb2xvciAgKi9cbi5oZWFkaW5nIGg1IHtcbiAgY29sb3I6ICNCNkI2QjY7IH1cblxuLnByb2R1Y3RfYm94X2JyYW5kIHNwYW4sIC5wcm9kdWN0X2JveF9icmFuZCBhIHtcbiAgY29sb3I6ICNCNkI2QjY7IH1cblxuLnByb2R1Y3QtZGVzY3JpcHRpb24tbCB7XG4gIGNvbG9yOiAjQjZCNkI2OyB9XG4gIC5wcm9kdWN0LWRlc2NyaXB0aW9uLWwgc3BhbiwgLnByb2R1Y3QtZGVzY3JpcHRpb24tbCBhIHtcbiAgICBjb2xvcjogI0I2QjZCNjsgfVxuXG51bC5icmVhZGNydW1icyBsaTpiZWZvcmUge1xuICBjb2xvcjogI0I2QjZCNjsgfVxuXG4ucHJvZHVjdC1pbmZvIC5jYXJ0IC5taW5pbXVtLCAucHJvZHVjdC1pbmZvIC55b3Utc2F2ZSB7XG4gIGNvbG9yOiAjQjZCNkI2OyB9XG5cbi5wcm9kdWN0LXJpZ2h0LXNtLWluZm8gc3Bhbi5wX3N1YnRpdGxlIHtcbiAgY29sb3I6ICNCNkI2QjY7IH1cblxuLyogIExpbmtzIGNvbG9yICAqL1xuYSwgLmJveCB1bCBsaSwgLnByb2R1Y3QtaW5mbyAuc2F2ZS1wZXJjZW50LCAjcHJvZHVjdC10b3AgLnByb2R1Y3QtZGVzY3JpcHRpb24gLnByb2R1Y3QtZGVzY3JpcHRpb24tbCBzcGFuLnN0b2NrIHtcbiAgY29sb3I6ICM5MkI2MzE7IH1cblxuI21lbnVfY29udGFjdHMgLm1jOmhvdmVyIHNwYW4ubW1faWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5MkI2MzE7IH1cblxuLnByb2R1Y3QtaW5mbyAuY2FydCAuZGVjOmhvdmVyLCAucHJvZHVjdC1pbmZvIC5jYXJ0IC5pbmM6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTJCNjMxOyB9XG5cbi5jb250YWN0LWluZm8gLm1jOmhvdmVyIHNwYW4ubW1faWNvbiwgI2Zvb3Rlcl9hIC5tYzpob3ZlciBzcGFuLm1tX2ljb24sIC5lcy1uYXYgc3Bhbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5MkI2MzE7IH1cblxuLnByb2R1Y3QtcmVsYXRlZCAuYngtd3JhcHBlciBkaXYuYngtbmV4dDpob3ZlciwgLnByb2R1Y3QtcmVsYXRlZCAuYngtd3JhcHBlciBkaXYuYngtcHJldjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5MkI2MzE7IH1cblxuI3RvVG9wSG92ZXIsIC5wcm9kdWN0LXJpZ2h0LXNtLWluZm8gc3Bhbi5wX2ljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTJCNjMxOyB9XG5cbiNsaXZlc2VhcmNoX3NlYXJjaF9yZXN1bHRzIGxpOmhvdmVyLCAjbGl2ZXNlYXJjaF9zZWFyY2hfcmVzdWx0cyAuaGlnaGxpZ2h0ZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTJCNjMxOyB9XG5cbiNzd2lwZWJveC1hY3Rpb24sIC50b3AtYmFyIHVsID4gbGkgYTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5MkI2MzE7IH1cblxuLyogIExpbmtzIGhvdmVyIGNvbG9yICAqL1xuYTpob3ZlciwgLnByb2R1Y3QtaW5mbyAucmV2aWV3ID4gZGl2IGE6aG92ZXIge1xuICBjb2xvcjogIzc5M0U5NzsgfVxuXG4uc2l0ZW1hcC1pbmZvIHVsIGxpIHVsIGxpOmhvdmVyLCAuc2l0ZW1hcC1pbmZvIHVsIGxpIHVsIGxpIGE6aG92ZXIge1xuICBjb2xvcjogIzc5M0U5NzsgfVxuXG4uaHRhYnMgYTpob3ZlciwgI2hlYWRlciAjY2FydDpob3ZlciAuaGVhZGluZyBhIGRpdiNjYXJ0LXRvdGFsLCAucHJvZHVjdC1ncmlkIC5uYW1lIGE6aG92ZXIsICNjb250ZW50IC5ib3gtcHJvZHVjdCAubmFtZSBhOmhvdmVyLCAucHJvZHVjdC1saXN0IC5uYW1lIGE6aG92ZXIsIC5wcm9kdWN0LWluZm8gLndpc2hsaXN0LWNvbXBhcmUtZnJpZW5kIGE6aG92ZXIsIC5wcm9kdWN0LWJvdHRvbS1yZWxhdGVkIC5uYW1lIGE6aG92ZXIsIC5wcm9kdWN0LXJpZ2h0LXNtLWluZm8gc3Bhbi5wX3RpdGxlIGE6aG92ZXIsIC5ib3gtY2F0ZWdvcnktaG9tZSAuc3ViY2F0IGE6aG92ZXIge1xuICBjb2xvcjogIzc5M0U5NzsgfVxuXG4ucHJvZHVjdC1yaWdodC1zbS1pbmZvIC5wcm9kdWN0LXJpZ2h0LXNtLWluZm8tY29udGVudDpob3ZlciBzcGFuLnBfaWNvbiwgLmNhbWVyYV93cmFwIC5jYW1lcmFfcGFnIC5jYW1lcmFfcGFnX3VsIGxpOmhvdmVyID4gc3BhbiwgLmZsZXgtY29udHJvbC1wYWdpbmcgbGkgYTpob3ZlciwgI3N3aXBlYm94LWFjdGlvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3OTNFOTc7IH1cblxuLyogIEdlbmVyYWwgaWNvbnMgc3R5bGUgICovXG4ucHJvZHVjdC1saXN0IC53aXNobGlzdCwgLnByb2R1Y3QtZ3JpZCAud2lzaGxpc3Qge1xuICBiYWNrZ3JvdW5kOiB1cmwoXCJjYXRhbG9nL3ZpZXcvdGhlbWUvb3h5L2ltYWdlL294eS13aXNobGlzdC0xLnBuZ1wiKSBuby1yZXBlYXQgc2Nyb2xsIGNlbnRlciB0cmFuc3BhcmVudDsgfVxuXG4ucHJvZHVjdC1saXN0IC5jb21wYXJlLCAucHJvZHVjdC1ncmlkIC5jb21wYXJlIHtcbiAgYmFja2dyb3VuZDogdXJsKFwiY2F0YWxvZy92aWV3L3RoZW1lL294eS9pbWFnZS9veHktY29tcGFyZS0xLnBuZ1wiKSBuby1yZXBlYXQgc2Nyb2xsIGNlbnRlciB0cmFuc3BhcmVudDsgfVxuXG5zcGFuLndpc2hsaXN0IHtcbiAgYmFja2dyb3VuZDogdXJsKFwiY2F0YWxvZy92aWV3L3RoZW1lL294eS9pbWFnZS9veHktd2lzaGxpc3QtMS5wbmdcIikgbm8tcmVwZWF0IHNjcm9sbCBsZWZ0IGNlbnRlciB0cmFuc3BhcmVudDsgfVxuXG5zcGFuLmNvbXBhcmUge1xuICBiYWNrZ3JvdW5kOiB1cmwoXCJjYXRhbG9nL3ZpZXcvdGhlbWUvb3h5L2ltYWdlL294eS1jb21wYXJlLTEucG5nXCIpIG5vLXJlcGVhdCBzY3JvbGwgbGVmdCBjZW50ZXIgdHJhbnNwYXJlbnQ7IH1cblxuc3Bhbi5mcmllbmQge1xuICBiYWNrZ3JvdW5kOiB1cmwoXCJjYXRhbG9nL3ZpZXcvdGhlbWUvb3h5L2ltYWdlL294eS1zZW5kLTEucG5nXCIpIG5vLXJlcGVhdCBzY3JvbGwgbGVmdCBjZW50ZXIgdHJhbnNwYXJlbnQ7IH1cblxuLyoqKioqKiBBZGRlZCBOZXdseSAqKioqKioqKiovXG4vKioqKioqKioqKioqIEVuZCBvZiBuZXcgc3R1ZmYgKioqKioqKioqKiovXG4vKiAgTWFpbiBDb2x1bW4gICovXG4ud3JhcHBlciB7XG4gIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogdG9wIGNlbnRlcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdDtcbiAgYmFja2dyb3VuZC1hdHRhY2htZW50OiBzY3JvbGw7XG4gIGJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMik7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgLW1vei1ib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjIpOyB9XG5cbi8qICBDb250ZW50IENvbHVtbiAgKi9cbi5wcm9kdWN0LWZpbHRlciwgI2NvbnRlbnQgLmNvbnRlbnQsIC5mb3JtLWluZm8sIC5jYXJ0LWluZm8gdGhlYWQgdGQsIC5jaGVja291dC1oZWFkaW5nLCAuY2hlY2tvdXQtcHJvZHVjdCB0aGVhZCB0ZCwgdGFibGUubGlzdCB0aGVhZCB0ZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGNkY2RjY7IH1cblxuLmNvbXBhcmUtaW5mbyB0aGVhZCB0ZCwgLmNvbXBhcmUtaW5mbyB0aGVhZCB0ciB0ZDpmaXJzdC1jaGlsZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGNkY2RjY7IH1cblxuLmF0dHJpYnV0ZSB0aGVhZCB0ZCwgLmF0dHJpYnV0ZSB0aGVhZCB0ciB0ZDpmaXJzdC1jaGlsZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGNkY2RjY7IH1cblxuLm1hbnVmYWN0dXJlci1oZWFkaW5nLCAud2lzaGxpc3QtaW5mbyB0aGVhZCB0ZCwgI2hlYWRlciAjY2FydCAuY29udGVudCwgLnJldmVhbC1tb2RhbCwgLmN1c3RvbV9ib3gge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjZGNkY2OyB9XG5cbi5wYWdpbmF0aW9uIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgcGFkZGluZy10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cblxuLnByb2R1Y3QtaW5mbyAucHJpY2UsIC5wcm9kdWN0LWluZm8gLmNhcnQge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgICNFQUVBRUE7IH1cblxuLnByb2R1Y3QtcmlnaHQtc20tbG9nbywgLnByb2R1Y3QtcmlnaHQtc20tY3VzdG9tLCAucHJvZHVjdC1yaWdodC1zbS1pbmZvLCAucHJvZHVjdC1yaWdodC1zbS1yZWxhdGVkLCAucHJvZHVjdC1zaGFyZSwgLnByb2R1Y3QtcmlnaHQtc20tdGFncyB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAgI0VBRUFFQTsgfVxuXG4jY29udGVudCBoMSwgI2NvbnRlbnQgLmJveC1oZWFkaW5nIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICAjRUFFQUVBOyB9XG5cbi5wcm9kdWN0LWJvdHRvbS1yZWxhdGVkIGgyIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICAjRUFFQUVBOyB9XG5cbi5wcm9kdWN0LWNvbXBhcmUge1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkICAjRUFFQUVBOyB9XG5cbi5wcm9kdWN0LWluZm8gLmltYWdlLCAucHJvZHVjdC1pbmZvIC5pbWFnZS1hZGRpdGlvbmFsIGltZywgLnByb2R1Y3QtaW5mbyAuaW1hZ2UtYWRkaXRpb25hbC1sZWZ0IGltZyB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNFQUVBRUE7IH1cblxuLmNvbnRhY3QtbWFwLCAubWFudWZhY3R1cmVyLWxpc3QsIC5jaGVja291dC1oZWFkaW5nLCAucmV2aWV3LWxpc3Qge1xuICBib3JkZXI6IDFweCBzb2xpZCAjRUFFQUVBOyB9XG5cbi5wcm9kdWN0LWluZm8gLm9wdGlvbi1pbWFnZSBpbWcge1xuICBib3JkZXI6IDFweCBzb2xpZCAjRUFFQUVBOyB9XG5cbi5wcm9kdWN0LWluZm8gLmltYWdlLWFkZGl0aW9uYWwgaW1nOmhvdmVyLCAucHJvZHVjdC1pbmZvIC5pbWFnZS1hZGRpdGlvbmFsLWxlZnQgaW1nOmhvdmVyIHtcbiAgYm9yZGVyOiAxcHggc29saWQgIzkyQjYzMTsgfVxuXG4uY2FydC1pbmZvIHRhYmxlLCAuY2FydC10b3RhbCB0YWJsZSwgLmNoZWNrb3V0LXByb2R1Y3QgdGFibGUsIC53aXNobGlzdC1pbmZvIHRhYmxlLCAub3JkZXItbGlzdCAub3JkZXItY29udGVudCwgdGFibGUubGlzdCwgLmF0dHJpYnV0ZSwgLmNvbXBhcmUtaW5mbyB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjRUFFQUVBOyB9XG5cbi5jYXJ0LWluZm8gdGhlYWQgdGQsIC5jYXJ0LWluZm8gdGJvZHkgdGQge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0VBRUFFQTsgfVxuXG4uY2FydC10b3RhbCB0YWJsZSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjRUFFQUVBOyB9XG5cbi5jaGVja291dC1wcm9kdWN0IHRoZWFkIHRkLCAuY2hlY2tvdXQtcHJvZHVjdCB0Ym9keSB0ZCwgLmNoZWNrb3V0LXByb2R1Y3QgdGZvb3QgdGQge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0VBRUFFQTsgfVxuXG4ud2lzaGxpc3QtaW5mbyB0aGVhZCB0ZCwgLndpc2hsaXN0LWluZm8gdGJvZHkgdGQge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0VBRUFFQTsgfVxuXG4ub3JkZXItbGlzdCAub3JkZXItY29udGVudCwgdGFibGUubGlzdCB0ZCwgLmJveC1jYXRlZ29yeS1ob21lIC5zdWJjYXQgbGksIC5hdHRyaWJ1dGUgdGQsIC5jb21wYXJlLWluZm8gdGQsIC5taW5pLWNhcnQtaW5mbyB0ZCwgLm1pbmktY2FydC10b3RhbCB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjRUFFQUVBOyB9XG5cbi5jYXJ0LWluZm8gdGFibGUsIC5jaGVja291dC1wcm9kdWN0IHRhYmxlLCAud2lzaGxpc3QtaW5mbyB0YWJsZSwgdGFibGUubGlzdCwgLmF0dHJpYnV0ZSwgLmNvbXBhcmUtaW5mbyB7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI0VBRUFFQTsgfVxuXG4uY2FydC1pbmZvIHRhYmxlLCAuY2hlY2tvdXQtcHJvZHVjdCB0YWJsZSB7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNFQUVBRUE7IH1cblxudGFibGUgdGhlYWQgdHIgdGg6bGFzdC1jaGlsZCwgdGFibGUgdGZvb3QgdHIgdGQ6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNFQUVBRUE7IH1cblxuLndpc2hsaXN0LWluZm8gdGFibGUsIHRhYmxlLmxpc3QgdGQsIC5hdHRyaWJ1dGUgdGQsIC5jb21wYXJlLWluZm8gdGQge1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjRUFFQUVBOyB9XG5cbi8qICBMZWZ0IENvbHVtbiBIZWFkaW5nICAqL1xuLyogIExlZnQgQ29sdW1uIEJveCAgKi9cbiNjb2x1bW4tbGVmdCAuYm94IC5ib3gtaGVhZGluZywgI2NvbHVtbi1sZWZ0IC5wcm9kdWN0LWJveC1zbGlkZXIgLmJveC1oZWFkaW5nIHtcbiAgbWF4LWhlaWdodDogNDVweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzkyQjYzMTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTsgfVxuXG4jY29sdW1uLWxlZnQgLmJveCAuYm94LWhlYWRpbmcsICNjb2x1bW4tbGVmdCAucHJvZHVjdC1ib3gtc2xpZGVyIC5ib3gtaGVhZGluZyB7XG4gIGNvbG9yOiAjRkZGRkZGOyB9XG5cbiNjb2x1bW4tbGVmdCAuYm94IC5ib3gtaGVhZGluZywgI2NvbHVtbi1sZWZ0IC5wcm9kdWN0LWJveC1zbGlkZXIgLmJveC1oZWFkaW5nIHtcbiAgcGFkZGluZzogMTBweCAxNXB4OyB9XG5cbiNjb2x1bW4tbGVmdCAuYm94IC5ib3gtY29udGVudCwgI2NvbHVtbi1sZWZ0IC5wcm9kdWN0LWJveC1zbGlkZXIgLmJveC1jb250ZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjtcbiAgcGFkZGluZzogMjBweCAxNXB4OyB9XG5cbiNjb2x1bW4tbGVmdCAuYm94LXByb2R1Y3Qge1xuICBjb2xvcjogIzQ2NDY0NjsgfVxuICAjY29sdW1uLWxlZnQgLmJveC1wcm9kdWN0IGEge1xuICAgIGNvbG9yOiAjNDY0NjQ2OyB9XG5cbiNjb2x1bW4tbGVmdCAuYm94IC5ib3gtY29udGVudCB1bCBsaSBhLCAjY29sdW1uLWxlZnQgLnByb2R1Y3QtYm94LXNsaWRlciAubmFtZSBhIHtcbiAgY29sb3I6ICM0NjQ2NDY7IH1cblxuI2NvbHVtbi1sZWZ0IC5ib3gtcHJvZHVjdCBhOmhvdmVyLCAjY29sdW1uLWxlZnQgLmJveCAuYm94LWNvbnRlbnQgdWwgbGkgYTpob3ZlciwgI2NvbHVtbi1sZWZ0IC5wcm9kdWN0LWJveC1zbGlkZXIgLm5hbWUgYTpob3ZlciB7XG4gIGNvbG9yOiAjNzkzRTk3OyB9XG5cbiNjb2x1bW4tbGVmdCAuYm94LXByb2R1Y3QgPiBkaXYgKyBkaXYge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI0Y2RjZGNjsgfVxuXG4vKiAgUmlnaHQgQ29sdW1uIEhlYWRpbmcgICovXG4vKiAgUmlnaHQgQ29sdW1uIEJveCAgKi9cbiNjb2x1bW4tcmlnaHQgLmJveCAuYm94LWhlYWRpbmcsICNjb2x1bW4tcmlnaHQgLnByb2R1Y3QtYm94LXNsaWRlciAuYm94LWhlYWRpbmcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTJCNjMxO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lOyB9XG5cbiNjb2x1bW4tcmlnaHQgLmJveCAuYm94LWhlYWRpbmcsICNjb2x1bW4tcmlnaHQgLnByb2R1Y3QtYm94LXNsaWRlciAuYm94LWhlYWRpbmcge1xuICBjb2xvcjogI0ZGRkZGRjsgfVxuXG4jY29sdW1uLXJpZ2h0IC5ib3ggLmJveC1oZWFkaW5nLCAjY29sdW1uLXJpZ2h0IC5wcm9kdWN0LWJveC1zbGlkZXIgLmJveC1oZWFkaW5nIHtcbiAgcGFkZGluZzogMTJweCAxNXB4OyB9XG5cbiNjb2x1bW4tcmlnaHQgLmJveCAuYm94LWNvbnRlbnQsICNjb2x1bW4tcmlnaHQgLnByb2R1Y3QtYm94LXNsaWRlciAuYm94LWNvbnRlbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGO1xuICBwYWRkaW5nOiAyMHB4IDE1cHg7IH1cblxuI2NvbHVtbi1yaWdodCAuYm94LXByb2R1Y3Qge1xuICBjb2xvcjogIzQ2NDY0NjsgfVxuICAjY29sdW1uLXJpZ2h0IC5ib3gtcHJvZHVjdCBhIHtcbiAgICBjb2xvcjogIzQ2NDY0NjsgfVxuXG4jY29sdW1uLXJpZ2h0IC5ib3ggLmJveC1jb250ZW50IHVsIGxpIGEsICNjb2x1bW4tcmlnaHQgLnByb2R1Y3QtYm94LXNsaWRlciAubmFtZSBhIHtcbiAgY29sb3I6ICM0NjQ2NDY7IH1cblxuI2NvbHVtbi1yaWdodCAuYm94LXByb2R1Y3QgYTpob3ZlciwgI2NvbHVtbi1yaWdodCAuYm94IC5ib3gtY29udGVudCB1bCBsaSBhOmhvdmVyLCAjY29sdW1uLXJpZ2h0IC5wcm9kdWN0LWJveC1zbGlkZXIgLm5hbWUgYTpob3ZlciB7XG4gIGNvbG9yOiAjNzkzRTk3OyB9XG5cbiNjb2x1bW4tcmlnaHQgLmJveC1wcm9kdWN0ID4gZGl2ICsgZGl2IHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNGNkY2RjY7IH1cblxuLyogIENhdGVnb3J5IEJveCBIZWFkaW5nICAqL1xuLmJveC1jYXRlZ29yeSAuYm94LWhlYWRpbmctY2F0ZWdvcnkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzkzRTk3O1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICAjODc0NUE4O1xuICBwYWRkaW5nOiAxMnB4IDE1cHg7IH1cblxuLmJveC1jYXRlZ29yeSAuYm94LWNvbnRlbnQtY2F0ZWdvcnkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzkzRTk3OyB9XG4gIC5ib3gtY2F0ZWdvcnkgLmJveC1jb250ZW50LWNhdGVnb3J5IHVsID4gbGkgPiBhIHtcbiAgICBwYWRkaW5nOiAxMHB4IDI1cHggMTBweCAxNXB4OyB9XG4gICAgLmJveC1jYXRlZ29yeSAuYm94LWNvbnRlbnQtY2F0ZWdvcnkgdWwgPiBsaSA+IGE6aG92ZXIge1xuICAgICAgcGFkZGluZy1sZWZ0OiAxOHB4OyB9XG4gIC5ib3gtY2F0ZWdvcnkgLmJveC1jb250ZW50LWNhdGVnb3J5IHVsID4gbGkgPiB1bCA+IGxpID4gYSB7XG4gICAgcGFkZGluZzogMTBweCAyNXB4IDEwcHggMzBweDsgfVxuICAgIC5ib3gtY2F0ZWdvcnkgLmJveC1jb250ZW50LWNhdGVnb3J5IHVsID4gbGkgPiB1bCA+IGxpID4gYTpob3ZlciB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDMzcHg7IH1cbiAgLmJveC1jYXRlZ29yeSAuYm94LWNvbnRlbnQtY2F0ZWdvcnkgdWwgPiBsaSArIGxpLCAuYm94LWNhdGVnb3J5IC5ib3gtY29udGVudC1jYXRlZ29yeSB1bCA+IGxpIHVsIHtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgIzg3NDVBODsgfVxuICAuYm94LWNhdGVnb3J5IC5ib3gtY29udGVudC1jYXRlZ29yeSB1bCA+IGxpID4gYSB7XG4gICAgY29sb3I6ICNGNEU2RkY7IH1cbiAgICAuYm94LWNhdGVnb3J5IC5ib3gtY29udGVudC1jYXRlZ29yeSB1bCA+IGxpID4gYTpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjODc0NUE4O1xuICAgICAgY29sb3I6ICNGNEU2RkY7IH1cblxuLyogIENhdGVnb3J5IEJveCBDb250ZW50ICAqL1xuLyogIEZpbHRlciBCb3ggSGVhZGluZyAgKi9cbi5ib3gtZmlsdGVyIC5ib3gtaGVhZGluZyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0NjQ2NDY7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgICM1MjUyNTI7XG4gIHBhZGRpbmc6IDEycHggMTVweDsgfVxuXG4uYm94LWZpbHRlciAuYm94LWNvbnRlbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDY0NjQ2O1xuICBwYWRkaW5nOiAyMHB4IDE1cHg7IH1cbiAgLmJveC1maWx0ZXIgLmJveC1jb250ZW50IHNwYW4ge1xuICAgIGNvbG9yOiAjRThFOEU4OyB9XG5cbi5ib3gtZmlsdGVyIGxhYmVsIHtcbiAgY29sb3I6ICNFOEU4RTg7IH1cbiAgLmJveC1maWx0ZXIgbGFiZWw6aG92ZXIge1xuICAgIGNvbG9yOiAjNzkzRTk3OyB9XG5cbi8qICBGaWx0ZXIgQm94IENvbnRlbnQgICovXG4vKiAgUHJpY2VzICovXG4ucHJpY2UsIC50b3RhbCwgLnByb2R1Y3QtaW5mbyAucHJpY2UgLmRpc2NvdW50IHtcbiAgY29sb3I6ICM5MkI2MzE7IH1cblxuLnByaWNlLW9sZCwgLndpc2hsaXN0LWluZm8gdGJvZHkgLnByaWNlIHMge1xuICBjb2xvcjogI0I2QjZCNjsgfVxuXG4ucHJpY2UtbmV3LCAucHJpY2UtbmV3MiwgLmNhcnQtdG90YWwgLnRvdGFsLXIge1xuICBjb2xvcjogIzMzMzMzMzsgfVxuXG4ucHJpY2UtdGF4LCAucHJvZHVjdC1pbmZvIC5wcmljZSAucmV3YXJkIHtcbiAgY29sb3I6ICNCNkI2QjY7IH1cblxuLyogIEJ1dHRvbnMgKi9cbmEuYnV0dG9uLCBpbnB1dC5idXR0b24sIC5laS10aXRsZSBoNCBhLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3OTNFOTc7XG4gIGNvbG9yOiAjRkZGRkZGOyB9XG5cbmEuYnV0dG9uOmhvdmVyLCBpbnB1dC5idXR0b246aG92ZXIsIC5laS10aXRsZSBoNCBhLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5MkI2MzE7XG4gIGNvbG9yOiAjRkZGRkZGOyB9XG5cbmEuYnV0dG9uLWV4Y2x1c2l2ZSwgaW5wdXQuYnV0dG9uLWV4Y2x1c2l2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3OTNFOTc7XG4gIGNvbG9yOiAjRkZGRkZGOyB9XG5cbmEuYnV0dG9uLWV4Y2x1c2l2ZTpob3ZlciwgaW5wdXQuYnV0dG9uLWV4Y2x1c2l2ZTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5MkI2MzE7XG4gIGNvbG9yOiAjRkZGRkZGOyB9XG5cbi5wcm9kdWN0LWdyaWQgLmNhcnQgaW5wdXQuYnV0dG9uLCAucHJvZHVjdC1saXN0IC5jYXJ0IGlucHV0LmJ1dHRvbiwgI2NvbnRlbnQgLmJveC1wcm9kdWN0IC5jYXJ0IGlucHV0LmJ1dHRvbiwgLnByb2R1Y3QtcmlnaHQtc20tdGFncyBkaXYgYSwgLnByb2R1Y3QtYm94LXNsaWRlciAuY2FydCBpbnB1dC5idXR0b24sIC5wcm9kdWN0LWJvdHRvbS1yZWxhdGVkIC5jYXJ0IGlucHV0LmJ1dHRvbiwgI2hlYWRlciAjY2FydCAuY2hlY2tvdXQgLm1pbmktY2FydC1idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzkzRTk3O1xuICBjb2xvcjogI0ZGRkZGRjsgfVxuXG4ucHJvZHVjdC1ncmlkIC5jYXJ0IGlucHV0LmJ1dHRvbjpob3ZlciwgLnByb2R1Y3QtbGlzdCAuY2FydCBpbnB1dC5idXR0b246aG92ZXIsICNjb250ZW50IC5ib3gtcHJvZHVjdCAuY2FydCBpbnB1dC5idXR0b246aG92ZXIsIC5wcm9kdWN0LXJpZ2h0LXNtLXRhZ3MgZGl2IGE6aG92ZXIsIC5wcm9kdWN0LWJveC1zbGlkZXIgLmNhcnQgaW5wdXQuYnV0dG9uOmhvdmVyLCAucHJvZHVjdC1ib3R0b20tcmVsYXRlZCAuY2FydCBpbnB1dC5idXR0b246aG92ZXIsICNoZWFkZXIgI2NhcnQgLmNoZWNrb3V0IC5taW5pLWNhcnQtYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzkyQjYzMTtcbiAgY29sb3I6ICNGRkZGRkY7IH1cblxuLnByZXYtbmV4dCBhIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0VFRUVFRTsgfVxuXG4ucHJvZHVjdC1ib3R0b20tcmVsYXRlZCAuZmxleC1kaXJlY3Rpb24tbmF2IGEsIC5wcm9kdWN0LWJvdHRvbS1yZWxhdGVkIC5mbGV4LWRpcmVjdGlvbi1uYXYgLmZsZXgtZGlzYWJsZWQ6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUVFRUVFOyB9XG5cbi5wcm9kdWN0LXJpZ2h0LXNtLXJlbGF0ZWQgLmZsZXgtZGlyZWN0aW9uLW5hdiBhLCAucHJvZHVjdC1yaWdodC1zbS1yZWxhdGVkIC5mbGV4LWRpcmVjdGlvbi1uYXYgLmZsZXgtZGlzYWJsZWQ6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUVFRUVFOyB9XG5cbi5wcm9kdWN0LWJveC1zbGlkZXIgLmZsZXgtZGlyZWN0aW9uLW5hdiBhLCAucHJvZHVjdC1ib3gtc2xpZGVyIC5mbGV4LWRpcmVjdGlvbi1uYXYgLmZsZXgtZGlzYWJsZWQ6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUVFRUVFOyB9XG5cbi5wYWdpbmF0aW9uIC5saW5rcyBhLCAuZmxleC1kaXJlY3Rpb24tbmF2IGEsIC5mbGV4LWNvbnRyb2wtcGFnaW5nIGxpIGEsIC5jYW1lcmFfcHJldlRodW1icywgLmNhbWVyYV9uZXh0VGh1bWJzLCAuY2FtZXJhX3ByZXYsIC5jYW1lcmFfbmV4dCwgLmNhbWVyYV9jb21tYW5kcywgLmNhbWVyYV90aHVtYnNfY29udCwgLmNhbWVyYV93cmFwIC5jYW1lcmFfcGFnIC5jYW1lcmFfcGFnX3VsIGxpLCAuc2xpZGVzaG93IC5uaXZvLWRpcmVjdGlvbk5hdiBhIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0VFRUVFRTsgfVxuXG4ucHJldi1uZXh0IGE6aG92ZXIsIC5wcm9kdWN0LXJpZ2h0LXNtLXJlbGF0ZWQgLmZsZXgtZGlyZWN0aW9uLW5hdiBhOmhvdmVyLCAucHJvZHVjdC1ib3R0b20tcmVsYXRlZCAuZmxleC1kaXJlY3Rpb24tbmF2IGE6aG92ZXIsIC5wcm9kdWN0LWJveC1zbGlkZXIgLmZsZXgtZGlyZWN0aW9uLW5hdiBhOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzkyQjYzMTsgfVxuXG4ucGFnaW5hdGlvbiAubGlua3MgYiwgLnBhZ2luYXRpb24gLmxpbmtzIGE6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTJCNjMxOyB9XG5cbi5mbGV4c2xpZGVyOmhvdmVyIC5mbGV4LW5leHQ6aG92ZXIsIC5mbGV4c2xpZGVyOmhvdmVyIC5mbGV4LXByZXY6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTJCNjMxOyB9XG5cbi5jYW1lcmFfcHJldlRodW1iczpob3ZlciwgLmNhbWVyYV9uZXh0VGh1bWJzOmhvdmVyLCAuY2FtZXJhX3ByZXY6aG92ZXIsIC5jYW1lcmFfbmV4dDpob3ZlciwgLmNhbWVyYV9jb21tYW5kczpob3ZlciwgLmNhbWVyYV90aHVtYnNfY29udDpob3ZlciwgLmNhbWVyYV93cmFwIC5jYW1lcmFfcGFnIC5jYW1lcmFfcGFnX3VsIGxpLmNhbWVyYWN1cnJlbnQgPiBzcGFuLCAuZmxleC1jb250cm9sLXBhZ2luZyBsaSBhLmZsZXgtYWN0aXZlLCAuc2xpZGVzaG93IC5uaXZvLWRpcmVjdGlvbk5hdiBhOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzkyQjYzMTsgfVxuXG5hLmJ1dHRvbiwgaW5wdXQuYnV0dG9uLCBhLmJ1dHRvbi1leGNsdXNpdmUsIGlucHV0LmJ1dHRvbi1leGNsdXNpdmUge1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDBweDtcbiAgLW1vei1ib3JkZXItcmFkaXVzOiAwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDBweDsgfVxuXG4vKiAgVG9wIEFyZWEgKi9cbiNoZWFkZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJjYXRhbG9nL3ZpZXcvdGhlbWUvb3h5L2ltYWdlL3BhdHRlcm5zL3AyMjYucG5nXCIpO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiB0b3AgY2VudGVyO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0O1xuICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IHNjcm9sbDsgfVxuXG4uaXMtc3RpY2t5ICNoZWFkZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzMzMzO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lOyB9XG5cbi8qICBUb3AgQmFyICAqL1xuI3RvcC1saW5lIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ2NDY0NjtcbiAgY29sb3I6ICNDQ0NDQ0M7IH1cbiAgI3RvcC1saW5lIGEge1xuICAgIGNvbG9yOiAjOTJCNjMxOyB9XG4gICAgI3RvcC1saW5lIGE6aG92ZXIge1xuICAgICAgY29sb3I6ICM3OTNFOTc7IH1cblxuLmN1cnJlbmN5LCAubGFuZ3VhZ2UsIC5teS1hY2NvdW50IHtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjNTQ1NDU0OyB9XG5cbi5jdXJyZW5jeSB7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICM1NDU0NTQ7IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAuY3VycmVuY3ksIC5sYW5ndWFnZSB7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICM1NDU0NTQ7IH0gfVxuXG4uZHJvcGRvd25fbCB1bCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7IH1cblxuLmRyb3Bkb3duX2wgbGkgYSB7XG4gIGNvbG9yOiAjNDY0NjQ2ICFpbXBvcnRhbnQ7IH1cbiAgLmRyb3Bkb3duX2wgbGkgYTpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzc5M0U5NztcbiAgICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50OyB9XG5cbiNoZWFkZXIgI3NlYXJjaCBpbnB1dCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3OTNFOTc7XG4gIGJvcmRlci1jb2xvcjogIzUyNTI1MjtcbiAgY29sb3I6ICNGRkZGRkY7IH1cbiAgI2hlYWRlciAjc2VhcmNoIGlucHV0OmZvY3VzIHtcbiAgICBib3JkZXItY29sb3I6ICM1RTVFNUU7IH1cblxuI2hlYWRlciAjY2FydCBoNSB7XG4gIGNvbG9yOiAjNzkzRTk3OyB9XG5cbiNoZWFkZXIgI2NhcnQgLmhlYWRpbmcgYSBkaXYjY2FydC10b3RhbCwgI2hlYWRlciAjY2FydC5hY3RpdmUgLmhlYWRpbmcgYSBkaXYjY2FydC10b3RhbCB7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjNjk2OTY5OyB9XG5cbiNoZWFkZXIgI2NhcnQgLmhlYWRpbmcgYSBkaXYjY2FydC10b3RhbDpob3ZlciB7XG4gIGNvbG9yOiAjOTJCNjMxOyB9XG5cbiNoZWFkZXIgI2NhcnQgLmhlYWRpbmcgYSBkaXYjY2FydC1pY29uIHtcbiAgYmFja2dyb3VuZDogdXJsKFwiYXNzZXRzL2ltZy9pY29uX2NhcnQucG5nXCIpIG5vLXJlcGVhdCBzY3JvbGwgNjUlIDUwJTsgfVxuXG4jaGVhZGVyICNsb2dvIHtcbiAgcGFkZGluZzogNXB4IDE1cHggNXB4IDIwcHg7IH1cblxuI2hlYWRlciAjc2VhcmNoIHtcbiAgbWFyZ2luLXRvcDogMjJweDsgfVxuXG4vKiAgTWFpbiBNZW51ICAqL1xuLyogIE1haW4gTWVudSBCYXIgICovXG4jbWVudSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0NjQ2NDY7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQ7IH1cbiAgI21lbnUgI2hvbWVwYWdlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTJCNjMxOyB9XG4gICAgI21lbnUgI2hvbWVwYWdlOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM3OTNFOTc7IH1cbiAgICAjbWVudSAjaG9tZXBhZ2UgYSwgI21lbnUgI2hvbWVwYWdlOmhvdmVyIGEge1xuICAgICAgY29sb3I6ICNGRkZGRkY7IH1cblxuLyogIEhvbWUgUGFnZSBMaW5rICAqL1xuLyogIENhdGVnb3JpZXMgU2VjdGlvbiAgKi9cbiNtZW51X29jID4gdWwgPiBsaTpob3ZlciwgI21lbnVfdiA+IHVsID4gbGk6aG92ZXIsICNtZW51X2ggPiB1bCA+IGxpOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzc5M0U5NzsgfVxuXG4jbWVudV9vYyA+IHVsID4gbGkgPiBhLCAjbWVudV92ID4gdWwgPiBsaSA+IGEsICNtZW51X2ggPiB1bCA+IGxpID4gYSwgI21lbnVfb2MgPiB1bCA+IGxpOmhvdmVyID4gYSwgI21lbnVfdiA+IHVsID4gbGk6aG92ZXIgPiBhLCAjbWVudV9oID4gdWwgPiBsaTpob3ZlciA+IGEge1xuICBjb2xvcjogI0ZGRkZGRjsgfVxuXG4vKiAgQnJhbmRzIFNlY3Rpb24gICovXG4jbWVudV9icmFuZHMgPiB1bCA+IGxpOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzc5M0U5NzsgfVxuICAjbWVudV9icmFuZHMgPiB1bCA+IGxpOmhvdmVyID4gYSB7XG4gICAgY29sb3I6ICNGRkZGRkY7IH1cblxuI21lbnVfYnJhbmRzID4gdWwgPiBsaSA+IGEge1xuICBjb2xvcjogI0ZGRkZGRjsgfVxuXG4vKiAgQ3VzdG9tIExpbmtzIFNlY3Rpb24gICovXG4ubWVudV9saW5rczpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3OTNFOTc7IH1cblxuLm1lbnVfbGlua3MgYSwgLm1lbnVfbGlua3M6aG92ZXIgYSB7XG4gIGNvbG9yOiAjRkZGRkZGOyB9XG5cbi8qICBJbmZvcm1hdGlvbiBTZWN0aW9uICAqL1xuI21lbnVfaW5mb3JtYXRpb25zID4gdWwgPiBsaTpob3ZlciwgI21lbnVfY3VzdG9tX21lbnUgPiB1bCA+IGxpOmhvdmVyLCAubWVudV9jdXN0b21fYmxvY2sgPiB1bCA+IGxpOmhvdmVyLCAjbWVudV9jb250YWN0cyA+IHVsID4gbGk6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzkzRTk3OyB9XG4gICNtZW51X2luZm9ybWF0aW9ucyA+IHVsID4gbGk6aG92ZXIgPiBhLCAjbWVudV9jdXN0b21fbWVudSA+IHVsID4gbGk6aG92ZXIgPiBhLCAubWVudV9jdXN0b21fYmxvY2sgPiB1bCA+IGxpOmhvdmVyID4gYSwgI21lbnVfY29udGFjdHMgPiB1bCA+IGxpOmhvdmVyID4gYSB7XG4gICAgY29sb3I6ICNGRkZGRkY7IH1cblxuI21lbnVfaW5mb3JtYXRpb25zID4gdWwgPiBsaSA+IGEsICNtZW51X2N1c3RvbV9tZW51ID4gdWwgPiBsaSA+IGEsIC5tZW51X2N1c3RvbV9ibG9jayA+IHVsID4gbGkgPiBhLCAjbWVudV9jb250YWN0cyA+IHVsID4gbGkgPiBhIHtcbiAgY29sb3I6ICNGRkZGRkY7IH1cblxuLyogIEN1c3RvbSBNZW51IFNlY3Rpb24gICovXG4vKiAgQ3VzdG9tIEJsb2NrcyBTZWN0aW9uICAqL1xuLyogIENvbnRhY3QgU2VjdGlvbiAgKi9cbi8qICBTdWItTWVudSAgKi9cbiNtZW51X29jID4gdWwgPiBsaSA+IGRpdiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7IH1cbiAgI21lbnVfb2MgPiB1bCA+IGxpID4gZGl2ID4gdWwgPiBsaSA+IGRpdiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjsgfVxuXG4jbWVudV92ID4gdWwgPiBsaSA+IGRpdiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7IH1cbiAgI21lbnVfdiA+IHVsID4gbGkgPiBkaXYgPiB1bCA+IGxpID4gZGl2IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGOyB9XG4gICAgI21lbnVfdiA+IHVsID4gbGkgPiBkaXYgPiB1bCA+IGxpID4gZGl2ID4gdWwgPiBsaSA+IGRpdiB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGOyB9XG5cbiNtZW51X2ggPiB1bCA+IGxpID4gZGl2LCAjbWVudV9icmFuZHMgPiB1bCA+IGxpID4gZGl2LCAjbWVudV9jdXN0b21fbWVudSA+IHVsID4gbGkgPiBkaXYsIC5tZW51X2N1c3RvbV9ibG9jayA+IHVsID4gbGkgPiBkaXYsICNtZW51X2luZm9ybWF0aW9ucyA+IHVsID4gbGkgPiBkaXYsICNtZW51X2NvbnRhY3RzID4gdWwgPiBsaSA+IGRpdiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7IH1cblxuI21lbnUsICNtZW51X2luZm9ybWF0aW9ucyBzcGFuLCAubWVudV9jdXN0b21fYmxvY2sgaDEge1xuICBjb2xvcjogIzQ2NDY0NjsgfVxuXG4jbWVudV9jb250YWN0cyA+IHVsID4gbGkgPiBkaXYgPiB1bCA+IGxpID4gLm5ndywgI21lbnVfY29udGFjdHMgc3Bhbi5tbSB7XG4gIGNvbG9yOiAjNDY0NjQ2OyB9XG5cbiNtZW51X29jID4gdWwgPiBsaSB1bCA+IGxpID4gYSwgI21lbnVfdiA+IHVsID4gbGkgdWwgPiBsaSA+IGEge1xuICBjb2xvcjogIzQ2NDY0NjsgfVxuXG4jbWVudV9oIHNwYW4gYSwgI21lbnVfaCA+IHVsID4gbGkgdWwgPiBsaSA+IGEge1xuICBjb2xvcjogIzQ2NDY0NjsgfVxuXG4jbWVudV9icmFuZHMgPiB1bCA+IGxpID4gZGl2ID4gZGl2IGEsICNtZW51X2N1c3RvbV9tZW51ID4gdWwgPiBsaSB1bCA+IGxpID4gYSwgLm1lbnVfY3VzdG9tX2Jsb2NrID4gdWwgPiBsaSA+IGRpdiBhLCAjbWVudV9pbmZvcm1hdGlvbnMgPiB1bCA+IGxpIHVsID4gbGkgPiBhIHtcbiAgY29sb3I6ICM0NjQ2NDY7IH1cblxuI21lbnVfb2MgPiB1bCA+IGxpIHVsID4gbGkgPiBhOmhvdmVyIHtcbiAgY29sb3I6ICNGRkZGRkY7IH1cblxuI21lbnVfdiA+IHVsID4gbGkgdWwgPiBsaSA+IGE6aG92ZXIsICNtZW51X3YgPiB1bCA+IGxpID4gZGl2ID4gdWwgPiBsaSB1bCA+IGxpID4gYTpob3ZlciB7XG4gIGNvbG9yOiAjRkZGRkZGOyB9XG5cbiNtZW51X2ggc3BhbiBhOmhvdmVyLCAjbWVudV9oID4gdWwgPiBsaSB1bCA+IGxpID4gYTpob3ZlciB7XG4gIGNvbG9yOiAjRkZGRkZGOyB9XG5cbiNtZW51X2JyYW5kcyA+IHVsID4gbGkgPiBkaXYgPiBkaXY6aG92ZXIgYSwgI21lbnVfY3VzdG9tX21lbnUgPiB1bCA+IGxpIHVsID4gbGkgPiBhOmhvdmVyLCAubWVudV9jdXN0b21fYmxvY2sgPiB1bCA+IGxpID4gZGl2IGE6aG92ZXIsICNtZW51X2luZm9ybWF0aW9ucyA+IHVsID4gbGkgdWwgPiBsaSA+IGE6aG92ZXIge1xuICBjb2xvcjogI0ZGRkZGRjsgfVxuXG4jbWVudV9oID4gdWwgPiBsaSB1bCA+IGxpIHVsID4gbGk6Zmlyc3QtY2hpbGQge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI0YxRjFGMTsgfVxuXG4jbWVudV9vYyA+IHVsID4gbGkgdWwgPiBsaSwgI21lbnVfdiA+IHVsID4gbGkgdWwgPiBsaSwgI21lbnVfaCA+IHVsID4gbGkgdWwgPiBsaSwgI21lbnVfYnJhbmRzID4gdWwgPiBsaSA+IGRpdiA+IGRpdiwgI21lbnVfY3VzdG9tX21lbnUgPiB1bCA+IGxpIHVsID4gbGksICNtZW51X2luZm9ybWF0aW9ucyA+IHVsID4gbGkgdWwgPiBsaSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjRjFGMUYxOyB9XG5cbiNtZW51X29jID4gdWwgPiBsaSB1bCA+IGxpID4gYTpob3ZlciwgI21lbnVfdiA+IHVsID4gbGkgdWwgPiBsaSA+IGE6aG92ZXIsICNtZW51X2ggPiB1bCA+IGxpIHVsID4gbGkgPiBhOmhvdmVyLCAjbWVudV92ID4gdWwgPiBsaSA+IGRpdiA+IHVsID4gbGkgdWwgPiBsaSA+IGE6aG92ZXIsICNtZW51X2ggc3BhbiBhOmhvdmVyLCAjbWVudV9icmFuZHMgPiB1bCA+IGxpID4gZGl2ID4gZGl2OmhvdmVyLCAjbWVudV9jdXN0b21fbWVudSA+IHVsID4gbGkgdWwgPiBsaSA+IGE6aG92ZXIsICNtZW51X2luZm9ybWF0aW9ucyA+IHVsID4gbGkgdWwgPiBsaSA+IGE6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzkzRTk3OyB9XG5cbiNtZW51X2ggc3BhbiBhLCAjbWVudV9pbmZvcm1hdGlvbnMgc3BhbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGNUY1RjU7IH1cblxuI21lbnVfY29udGFjdHMgPiB1bCA+IGxpID4gZGl2ID4gdWwgPiBsaSA+IC5uZ3csICNtZW51X2NvbnRhY3RzID4gdWwgPiBsaSA+IGRpdiA+IHVsID4gbGkgPiAuc29jaWFsX3dpZGdldCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGNUY1RjU7IH1cblxuI21lbnVfb2MgPiB1bCA+IGxpID4gZGl2IHtcbiAgYm94LXNoYWRvdzogMCA1cHggMjBweCByZ2JhKDAsIDAsIDAsIDAuMyk7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCA1cHggMjBweCByZ2JhKDAsIDAsIDAsIDAuMyk7XG4gIC1tb3otYm94LXNoYWRvdzogMCA1cHggMjBweCByZ2JhKDAsIDAsIDAsIDAuMyk7IH1cbiAgI21lbnVfb2MgPiB1bCA+IGxpID4gZGl2ID4gdWwgPiBsaSA+IGRpdiB7XG4gICAgYm94LXNoYWRvdzogMCA1cHggMjBweCByZ2JhKDAsIDAsIDAsIDAuMyk7XG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDVweCAyMHB4IHJnYmEoMCwgMCwgMCwgMC4zKTtcbiAgICAtbW96LWJveC1zaGFkb3c6IDAgNXB4IDIwcHggcmdiYSgwLCAwLCAwLCAwLjMpOyB9XG5cbiNtZW51X3YgPiB1bCA+IGxpID4gZGl2IHtcbiAgYm94LXNoYWRvdzogMCA1cHggMjBweCByZ2JhKDAsIDAsIDAsIDAuMyk7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCA1cHggMjBweCByZ2JhKDAsIDAsIDAsIDAuMyk7XG4gIC1tb3otYm94LXNoYWRvdzogMCA1cHggMjBweCByZ2JhKDAsIDAsIDAsIDAuMyk7IH1cbiAgI21lbnVfdiA+IHVsID4gbGkgPiBkaXYgPiB1bCA+IGxpID4gZGl2IHtcbiAgICBib3gtc2hhZG93OiAwIDVweCAyMHB4IHJnYmEoMCwgMCwgMCwgMC4zKTtcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgNXB4IDIwcHggcmdiYSgwLCAwLCAwLCAwLjMpO1xuICAgIC1tb3otYm94LXNoYWRvdzogMCA1cHggMjBweCByZ2JhKDAsIDAsIDAsIDAuMyk7IH1cbiAgICAjbWVudV92ID4gdWwgPiBsaSA+IGRpdiA+IHVsID4gbGkgPiBkaXYgPiB1bCA+IGxpID4gZGl2IHtcbiAgICAgIGJveC1zaGFkb3c6IDAgNXB4IDIwcHggcmdiYSgwLCAwLCAwLCAwLjMpO1xuICAgICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDVweCAyMHB4IHJnYmEoMCwgMCwgMCwgMC4zKTtcbiAgICAgIC1tb3otYm94LXNoYWRvdzogMCA1cHggMjBweCByZ2JhKDAsIDAsIDAsIDAuMyk7IH1cblxuI21lbnVfaCA+IHVsID4gbGkgPiBkaXYsICNtZW51X2JyYW5kcyA+IHVsID4gbGkgPiBkaXYsICNtZW51X2N1c3RvbV9tZW51ID4gdWwgPiBsaSA+IGRpdiwgLm1lbnVfY3VzdG9tX2Jsb2NrID4gdWwgPiBsaSA+IGRpdiwgI21lbnVfaW5mb3JtYXRpb25zID4gdWwgPiBsaSA+IGRpdiwgI21lbnVfY29udGFjdHMgPiB1bCA+IGxpID4gZGl2IHtcbiAgYm94LXNoYWRvdzogMCA1cHggMjBweCByZ2JhKDAsIDAsIDAsIDAuMyk7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCA1cHggMjBweCByZ2JhKDAsIDAsIDAsIDAuMyk7XG4gIC1tb3otYm94LXNoYWRvdzogMCA1cHggMjBweCByZ2JhKDAsIDAsIDAsIDAuMyk7IH1cblxuLyogIExheW91dCAgKi9cbi53cmFwcGVyIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDAgMTBweDsgfVxuXG4vKiAgUHJvZHVjdCBCb3ggICovXG4ucHJvZHVjdC1ncmlkID4gZGl2IHtcbiAgcGFkZGluZzogMDsgfVxuXG4vKi5wcm9kdWN0LWdyaWQgPiBkaXY6aG92ZXIge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0VERURFRDtcclxufSovXG5zcGFuLnNhbGUtaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5MkI2MzE7IH1cblxuLnByb2R1Y3QtZ3JpZCAucHJvZHVjdF9ib3hfYnJhbmQsIC5wcm9kdWN0LWxpc3QgLnByb2R1Y3RfYm94X2JyYW5kLCAjY29udGVudCAuYm94LXByb2R1Y3QgLmNhcnQsIC5wcm9kdWN0LWxpc3QgLmNhcnQsIC5wcm9kdWN0LWJveC1zbGlkZXIgLmNhcnQsIC5wcm9kdWN0LWxpc3QgLnJhdGluZywgI2NvbnRlbnQgLmJveC1wcm9kdWN0IC5yYXRpbmcsIC5wcm9kdWN0LWdyaWQgLnJhdGluZywgI2NvbHVtbi1sZWZ0IC5ib3gtcHJvZHVjdCAucmF0aW5nLCAjY29sdW1uLXJpZ2h0IC5ib3gtcHJvZHVjdCAucmF0aW5nLCAucHJvZHVjdC1ib3gtc2xpZGVyIC5yYXRpbmcge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi8qLnByb2R1Y3QtZ3JpZCAuY2FydCwgIHtcclxuICAgIGRpc3BsYXk6bm9uZTtcclxufSovXG4ucHJvZHVjdC1ncmlkIC5uYW1lLCAjY29udGVudCAuYm94LXByb2R1Y3QgLm5hbWUsIC5wcm9kdWN0LWJvdHRvbS1yZWxhdGVkIC5uYW1lLCAucHJvZHVjdC1ib3gtc2xpZGVyIC5uYW1lIHtcbiAgdGV4dC1hbGlnbjogbGVmdDsgfVxuXG4ucHJvZHVjdC1ncmlkIC5wcm9kdWN0X2JveF9icmFuZCwgLnByb2R1Y3QtZ3JpZCAucHJpY2Uge1xuICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG5cbiNjb250ZW50IC5ib3gtcHJvZHVjdCAucHJpY2UsIC5wcm9kdWN0LWJveC1zbGlkZXIgLnByaWNlLCAucHJvZHVjdC1ib3R0b20tcmVsYXRlZCAucHJpY2UsIC5wcm9kdWN0LWdyaWQgLnJhdGluZywgI2NvbnRlbnQgLmJveC1wcm9kdWN0IC5yYXRpbmcsIC5wcm9kdWN0LWJveC1zbGlkZXIgLnJhdGluZywgLnByb2R1Y3QtZ3JpZCAuY2FydCwgI2NvbnRlbnQgLmJveC1wcm9kdWN0IC5jYXJ0LCAucHJvZHVjdC1ib3gtc2xpZGVyIC5jYXJ0LCAucHJvZHVjdC1ib3R0b20tcmVsYXRlZCAuY2FydCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7IH1cblxuLyogIFRhYnMgICovXG4uaHRhYnMgYSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0MjQyNDI7XG4gIGNvbG9yOiAjRkZGRkZGOyB9XG4gIC5odGFicyBhLnNlbGVjdGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTJCNjMxO1xuICAgIGNvbG9yOiAjRkZGRkZGOyB9XG5cbi8qICBQcm9kdWN0IFNsaWRlciBvbiBIb21lIFBhZ2UgICovXG4uZWktc2xpZGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0Y3RjdGNztcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiY2F0YWxvZy92aWV3L3RoZW1lL294eS9pbWFnZS9iZ19wcm9kX3NsaWRlcl8xLnBuZ1wiKTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogdG9wIGNlbnRlcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdDsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAuZWktc2xpZGVyIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7IH0gfVxuXG4uZWktdGl0bGUgaDIgYSB7XG4gIGNvbG9yOiAjNDY0NjQ2OyB9XG5cbi5laS10aXRsZSBoMyBhIHtcbiAgY29sb3I6ICNBM0EzQTM7IH1cblxuLmVpLXRpdGxlIGg0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzc5M0U5NzsgfVxuXG4uZWktdGl0bGUgaDIgYTpob3ZlciwgLmVpLXRpdGxlIGgzIGE6aG92ZXIge1xuICBjb2xvcjogIzkyQjYzMTsgfVxuXG4uZWktc2xpZGVyLXRodW1icyBsaSBhIHtcbiAgYmFja2dyb3VuZDogI0U4RThFODsgfVxuICAuZWktc2xpZGVyLXRodW1icyBsaSBhOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjNzkzRTk3OyB9XG5cbi5laS1zbGlkZXItdGh1bWJzIGxpLmVpLXNsaWRlci1lbGVtZW50IHtcbiAgYmFja2dyb3VuZDogIzkyQjYzMTsgfVxuXG4vKiAgVmlkZW8gQm94ICAqL1xuLnZpZGVvX2JveF9sZWZ0ICN2aWRlb19ib3hfaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5MkI2MzE7IH1cblxuLnZpZGVvX2JveF9yaWdodCAjdmlkZW9fYm94X2ljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTJCNjMxOyB9XG5cbi52aWRlb19ib3hfcmlnaHQgLnZpZGVvX2JveCB7XG4gIGJvcmRlcjogNHB4IHNvbGlkICM5MkI2MzE7IH1cblxuLnZpZGVvX2JveF9sZWZ0IC52aWRlb19ib3gge1xuICBib3JkZXI6IDRweCBzb2xpZCAjOTJCNjMxOyB9XG5cbi8qICBDdXN0b20gQm94ICAqL1xuLmN1c3RvbV9ib3hfbGVmdCAjY3VzdG9tX2JveF9pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzc5M0U5NzsgfVxuXG4uY3VzdG9tX2JveF9yaWdodCAjY3VzdG9tX2JveF9pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzc5M0U5NzsgfVxuXG4uY3VzdG9tX2JveF9yaWdodCAuY3VzdG9tX2JveCB7XG4gIGJvcmRlcjogNHB4IHNvbGlkICM3OTNFOTc7IH1cblxuLmN1c3RvbV9ib3hfbGVmdCAuY3VzdG9tX2JveCB7XG4gIGJvcmRlcjogNHB4IHNvbGlkICM3OTNFOTc7IH1cblxuLyogIEJvdHRvbSBBcmVhICAqL1xuLyogIEZlYXR1cmUgQmxvY2sgICovXG4jZm9vdGVyX3Age1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjZGNkY2OyB9XG4gICNmb290ZXJfcCBzcGFuLnBfdGl0bGUgYSB7XG4gICAgY29sb3I6ICM0NjQ2NDY7IH1cbiAgICAjZm9vdGVyX3Agc3Bhbi5wX3RpdGxlIGE6aG92ZXIge1xuICAgICAgY29sb3I6ICM3OTNFOTc7IH1cbiAgI2Zvb3Rlcl9wIHNwYW4ucF9zdWJ0aXRsZSB7XG4gICAgY29sb3I6ICNCNkI2QjY7IH1cbiAgI2Zvb3Rlcl9wIHNwYW4ucGkxIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRDFEMUQxOyB9XG4gICNmb290ZXJfcCAucF9jb250ZW50OmhvdmVyIHNwYW4ucGkxIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTJCNjMxOyB9XG4gICNmb290ZXJfcCBzcGFuLnBpMiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0QxRDFEMTsgfVxuICAjZm9vdGVyX3AgLnBfY29udGVudDpob3ZlciBzcGFuLnBpMiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzkyQjYzMTsgfVxuICAjZm9vdGVyX3Agc3Bhbi5waTMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNEMUQxRDE7IH1cbiAgI2Zvb3Rlcl9wIC5wX2NvbnRlbnQ6aG92ZXIgc3Bhbi5waTMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM5MkI2MzE7IH1cbiAgI2Zvb3Rlcl9wIHNwYW4ucGk0IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRDFEMUQxOyB9XG4gICNmb290ZXJfcCAucF9jb250ZW50OmhvdmVyIHNwYW4ucGk0IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTJCNjMxOyB9XG5cbi8qICBBYm91dCBVcywgQ3VzdG9tIENvbHVtbiwgRm9sbG93IFVzLCBDb250YWN0IFVzICAqL1xuI2Zvb3Rlcl9hIHtcbiAgY29sb3I6ICM0NjQ2NDY7XG4gIGJhY2tncm91bmQtY29sb3I6ICNFNkU2RTY7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImNhdGFsb2cvdmlldy90aGVtZS9veHkvaW1hZ2UvcGF0dGVybnMvcDMwMi5wbmdcIik7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IHRvcCBjZW50ZXI7XG4gIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQ7IH1cbiAgI2Zvb3Rlcl9hIGgzIHtcbiAgICBjb2xvcjogIzQ2NDY0NjtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0Y1RjVGNTsgfVxuICAjZm9vdGVyX2EgYSB7XG4gICAgY29sb3I6ICM5MkI2MzE7IH1cbiAgICAjZm9vdGVyX2EgYTpob3ZlciB7XG4gICAgICBjb2xvcjogIzc5M0U5NzsgfVxuICAjZm9vdGVyX2Egc3Bhbi5tbV9pY29uLCAjZm9vdGVyX2EgLnNvY2lhbF93aWRnZXQgdWwgbGkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNCNkI2QjY7IH1cblxuLyogIEluZm9ybWF0aW9uLCBDdXN0b21lciBTZXJ2aWNlLCBFeHRyYXMsIE15IEFjY291bnQgICovXG4jZm9vdGVyX2Mge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMkYyRjJGO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJjYXRhbG9nL3ZpZXcvdGhlbWUvb3h5L2ltYWdlL3BhdHRlcm5zL3AyMjYucG5nXCIpO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiB0b3AgY2VudGVyO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0OyB9XG4gICNmb290ZXJfYyBoMyB7XG4gICAgY29sb3I6ICNGRkZGRkY7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM0NjQ2NDY7IH1cbiAgI2Zvb3Rlcl9jIGEge1xuICAgIGNvbG9yOiAjOEM4QzhDOyB9XG4gICAgI2Zvb3Rlcl9jIGE6aG92ZXIge1xuICAgICAgY29sb3I6ICNGRkZGRkY7IH1cbiAgI2Zvb3Rlcl9jIHVsIGxpIHtcbiAgICBjb2xvcjogIzQ2NDY0NjsgfVxuXG4vKiAgUG93ZXJlZCBieSwgUGF5bWVudCBJbWFnZXMgICovXG4jZm9vdGVyX2QsICNmb290ZXJfZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyRjJGMkY7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImNhdGFsb2cvdmlldy90aGVtZS9veHkvaW1hZ2UvcGF0dGVybnMvcDIyNi5wbmdcIik7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IHRvcCBjZW50ZXI7XG4gIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQ7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjNDY0NjQ2O1xuICBjb2xvcjogIzhDOEM4QzsgfVxuICAjZm9vdGVyX2QgYSwgI2Zvb3Rlcl9lIGEge1xuICAgIGNvbG9yOiAjOTJCNjMxOyB9XG4gICAgI2Zvb3Rlcl9kIGE6aG92ZXIsICNmb290ZXJfZSBhOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAjRkZGRkZGOyB9XG5cbi8qICBCb3R0b20gQ3VzdG9tIEJsb2NrICAqL1xuLyogIEZvbnRzICAqL1xuYm9keSwgcCwgLmVpLXRpdGxlIGgzIGEge1xuICBmb250LWZhbWlseTogJ09wZW4gU2FucycsQXJpYWwsSGVsdmV0aWNhLHNhbnMtc2VyaWY7IH1cblxuLmNhcnQtaW5mbyB0aGVhZCAucHJpY2UsIC5jYXJ0LWluZm8gdGJvZHkgLnByaWNlIHtcbiAgZm9udC1mYW1pbHk6ICdPcGVuIFNhbnMnLEFyaWFsLEhlbHZldGljYSxzYW5zLXNlcmlmOyB9XG5cbi5ib3gtY2F0ZWdvcnktaG9tZSAuc3ViY2F0IGEsIC5ib3gtY2F0ZWdvcnktaG9tZSAuYWxsIGEge1xuICBmb250LWZhbWlseTogJ09wZW4gU2FucycsQXJpYWwsSGVsdmV0aWNhLHNhbnMtc2VyaWY7IH1cblxuaDEsIGgyLCBoMywgaDQsIGg1LCBoNiwgI2NvbnRlbnQgLmJveC1oZWFkaW5nLCAuYm94LWNhdGVnb3J5IC5ib3gtaGVhZGluZy1jYXRlZ29yeSwgLmJveC1maWx0ZXIgLmJveC1oZWFkaW5nLCAjY29sdW1uLWxlZnQgLmJveCAuYm94LWhlYWRpbmcsICNjb2x1bW4tcmlnaHQgLmJveCAuYm94LWhlYWRpbmcsICNjb2x1bW4tbGVmdCAucHJvZHVjdC1ib3gtc2xpZGVyIC5ib3gtaGVhZGluZywgI2NvbHVtbi1yaWdodCAucHJvZHVjdC1ib3gtc2xpZGVyIC5ib3gtaGVhZGluZywgLnByb2R1Y3QtZ3JpZCAubmFtZSBhLCAucHJvZHVjdC1saXN0IC5uYW1lIGEsICNjb250ZW50IC5ib3gtcHJvZHVjdCAubmFtZSBhLCAucHJvZHVjdC1yaWdodC1zbS1yZWxhdGVkIC5uYW1lIGEsIC5wcm9kdWN0LWJvdHRvbS1yZWxhdGVkIC5uYW1lIGEsICNjb2x1bW4tbGVmdCAuYm94LXByb2R1Y3QgLm5hbWUgYSwgI2NvbHVtbi1yaWdodCAuYm94LXByb2R1Y3QgLm5hbWUgYSwgLnByb2R1Y3QtYm94LXNsaWRlciAubmFtZSBhLCAuYm94LWNhdGVnb3J5LWhvbWUgYSB7XG4gIGZvbnQtZmFtaWx5OiBCaXR0ZXIsQXJpYWwsSGVsdmV0aWNhLHNhbnMtc2VyaWY7IH1cblxuaDEsIGgyLCBoMywgaDQsIGg1LCBoNiwgI2NvbnRlbnQgLmJveC1oZWFkaW5nLCAuYm94LWNhdGVnb3J5IC5ib3gtaGVhZGluZy1jYXRlZ29yeSwgLmJveC1maWx0ZXIgLmJveC1oZWFkaW5nLCAjY29sdW1uLWxlZnQgLmJveCAuYm94LWhlYWRpbmcsICNjb2x1bW4tcmlnaHQgLmJveCAuYm94LWhlYWRpbmcsICNjb2x1bW4tbGVmdCAucHJvZHVjdC1ib3gtc2xpZGVyIC5ib3gtaGVhZGluZywgI2NvbHVtbi1yaWdodCAucHJvZHVjdC1ib3gtc2xpZGVyIC5ib3gtaGVhZGluZywgLnByb2R1Y3QtZ3JpZCAubmFtZSBhLCAucHJvZHVjdC1saXN0IC5uYW1lIGEsICNjb250ZW50IC5ib3gtcHJvZHVjdCAubmFtZSBhLCAucHJvZHVjdC1yaWdodC1zbS1yZWxhdGVkIC5uYW1lIGEsIC5wcm9kdWN0LWJvdHRvbS1yZWxhdGVkIC5uYW1lIGEsICNjb2x1bW4tbGVmdCAuYm94LXByb2R1Y3QgLm5hbWUgYSwgI2NvbHVtbi1yaWdodCAuYm94LXByb2R1Y3QgLm5hbWUgYSwgLnByb2R1Y3QtYm94LXNsaWRlciAubmFtZSBhLCAuYm94LWNhdGVnb3J5LWhvbWUgYSB7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7IH1cblxuaDEsIGgyLCBoMywgaDQsIGg1LCBoNiwgI2NvbnRlbnQgLmJveC1oZWFkaW5nLCAuYm94LWNhdGVnb3J5IC5ib3gtaGVhZGluZy1jYXRlZ29yeSwgLmJveC1maWx0ZXIgLmJveC1oZWFkaW5nLCAjY29sdW1uLWxlZnQgLmJveCAuYm94LWhlYWRpbmcsICNjb2x1bW4tcmlnaHQgLmJveCAuYm94LWhlYWRpbmcsICNjb2x1bW4tbGVmdCAucHJvZHVjdC1ib3gtc2xpZGVyIC5ib3gtaGVhZGluZywgI2NvbHVtbi1yaWdodCAucHJvZHVjdC1ib3gtc2xpZGVyIC5ib3gtaGVhZGluZywgLnByb2R1Y3QtZ3JpZCAubmFtZSBhLCAucHJvZHVjdC1saXN0IC5uYW1lIGEsICNjb250ZW50IC5ib3gtcHJvZHVjdCAubmFtZSBhLCAucHJvZHVjdC1yaWdodC1zbS1yZWxhdGVkIC5uYW1lIGEsIC5wcm9kdWN0LWJvdHRvbS1yZWxhdGVkIC5uYW1lIGEsICNjb2x1bW4tbGVmdCAuYm94LXByb2R1Y3QgLm5hbWUgYSwgI2NvbHVtbi1yaWdodCAuYm94LXByb2R1Y3QgLm5hbWUgYSwgLnByb2R1Y3QtYm94LXNsaWRlciAubmFtZSBhLCAuYm94LWNhdGVnb3J5LWhvbWUgYSB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cblxuLnByaWNlLCAucHJpY2UtbmV3LCAucHJpY2UtbmV3MiwgLnByaWNlLW9sZCwgLmVpLXRpdGxlIGg0IGEge1xuICBmb250LWZhbWlseTogQXJpYWwsSGVsdmV0aWNhLHNhbnMtc2VyaWY7IH1cblxuLnByaWNlLCAucHJpY2UtbmV3LCAucHJpY2UtbmV3MiwgLnByaWNlLW9sZCwgLmVpLXRpdGxlIGg0IGEge1xuICBmb250LXdlaWdodDogYm9sZDsgfVxuXG5hLmJ1dHRvbiwgaW5wdXQuYnV0dG9uLCBhLmJ1dHRvbi1leGNsdXNpdmUsIGlucHV0LmJ1dHRvbi1leGNsdXNpdmUsIC5laS10aXRsZSBoNCBhLmJ1dHRvbiB7XG4gIGZvbnQtZmFtaWx5OiAnT3BlbiBTYW5zJyxBcmlhbCxIZWx2ZXRpY2Esc2Fucy1zZXJpZjsgfVxuXG5hLmJ1dHRvbiwgaW5wdXQuYnV0dG9uLCBhLmJ1dHRvbi1leGNsdXNpdmUsIGlucHV0LmJ1dHRvbi1leGNsdXNpdmUsIC5laS10aXRsZSBoNCBhLmJ1dHRvbiB7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7IH1cblxuYS5idXR0b24sIGlucHV0LmJ1dHRvbiwgYS5idXR0b24tZXhjbHVzaXZlLCBpbnB1dC5idXR0b24tZXhjbHVzaXZlLCAuZWktdGl0bGUgaDQgYS5idXR0b24ge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG5cbiN0LWhlYWRlciAjc2VhcmNoIGlucHV0IHtcbiAgZm9udC1mYW1pbHk6ICdPcGVuIFNhbnMnLEFyaWFsLEhlbHZldGljYSxzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cblxuI2hlYWRlciAjY2FydCAuaGVhZGluZyBhIGRpdiNjYXJ0LXRvdGFsIHtcbiAgZm9udC1mYW1pbHk6IEJpdHRlcixBcmlhbCxIZWx2ZXRpY2Esc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXdlaWdodDogbm9ybWFsOyB9XG5cbiNtZW51ICNob21lcGFnZSBhLCAjbWVudV9vYyA+IHVsID4gbGkgPiBhLCAjbWVudV92ID4gdWwgPiBsaSA+IGEsICNtZW51X2ggPiB1bCA+IGxpID4gYSwgI21lbnVfYnJhbmRzID4gdWwgPiBsaSA+IGEsIC5tZW51X2xpbmtzIGEsICNtZW51X2N1c3RvbV9tZW51ID4gdWwgPiBsaSA+IGEsIC5tZW51X2N1c3RvbV9ibG9jayA+IHVsID4gbGkgPiBhLCAjbWVudV9pbmZvcm1hdGlvbnMgPiB1bCA+IGxpID4gYSwgI21lbnVfY29udGFjdHMgPiB1bCA+IGxpID4gYSwgLnRvcC1iYXIgPiB1bCAubmFtZSBoMSBhIHtcbiAgZm9udC1mYW1pbHk6IEJpdHRlcixBcmlhbCxIZWx2ZXRpY2Esc2Fucy1zZXJpZjsgfVxuXG4jbWVudSB7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuICAjbWVudSAjaG9tZXBhZ2UgYSB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuXG4jbWVudV9vYyA+IHVsID4gbGkgPiBhLCAjbWVudV92ID4gdWwgPiBsaSA+IGEsICNtZW51X2ggPiB1bCA+IGxpID4gYSwgI21lbnVfYnJhbmRzID4gdWwgPiBsaSA+IGEsIC5tZW51X2xpbmtzIGEsICNtZW51X2N1c3RvbV9tZW51ID4gdWwgPiBsaSA+IGEsIC5tZW51X2N1c3RvbV9ibG9jayA+IHVsID4gbGkgPiBhLCAjbWVudV9pbmZvcm1hdGlvbnMgPiB1bCA+IGxpID4gYSwgI21lbnVfY29udGFjdHMgPiB1bCA+IGxpID4gYSwgLnRvcC1iYXIgPiB1bCAubmFtZSBoMSBhIHtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG5cbi8qISBub3JtYWxpemUuY3NzIHYzLjAuMyB8IE1JVCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MgKi9cbi8qKlxyXG4gICAqIDEuIFNldCBkZWZhdWx0IGZvbnQgZmFtaWx5IHRvIHNhbnMtc2VyaWYuXHJcbiAgICogMi4gUHJldmVudCBpT1MgYW5kIElFIHRleHQgc2l6ZSBhZGp1c3QgYWZ0ZXIgZGV2aWNlIG9yaWVudGF0aW9uIGNoYW5nZSxcclxuICAgKiAgICB3aXRob3V0IGRpc2FibGluZyB1c2VyIHpvb20uXHJcbiAgICovXG5odG1sIHtcbiAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7XG4gIC8qIDEgKi9cbiAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIC8qIDIgKi9cbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICAvKiAyICovIH1cblxuLyoqXHJcbiAgICogUmVtb3ZlIGRlZmF1bHQgbWFyZ2luLlxyXG4gICAqL1xuYm9keSB7XG4gIG1hcmdpbjogMDsgfVxuXG4vKiBIVE1MNSBkaXNwbGF5IGRlZmluaXRpb25zXHJcbiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxyXG4gICAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBhbnkgSFRNTDUgZWxlbWVudCBpbiBJRSA4LzkuXHJcbiAgICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGBkZXRhaWxzYCBvciBgc3VtbWFyeWAgaW4gSUUgMTAvMTFcclxuICAgKiBhbmQgRmlyZWZveC5cclxuICAgKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYG1haW5gIGluIElFIDExLlxyXG4gICAqL1xuYXJ0aWNsZSxcbmFzaWRlLFxuZGV0YWlscyxcbmZpZ2NhcHRpb24sXG5maWd1cmUsXG5mb290ZXIsXG5oZWFkZXIsXG5oZ3JvdXAsXG5tYWluLFxubWVudSxcbm5hdixcbnNlY3Rpb24sXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLyoqXHJcbiAgICogMS4gQ29ycmVjdCBgaW5saW5lLWJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGluIElFIDgvOS5cclxuICAgKiAyLiBOb3JtYWxpemUgdmVydGljYWwgYWxpZ25tZW50IG9mIGBwcm9ncmVzc2AgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXHJcbiAgICovXG5hdWRpbyxcbmNhbnZhcyxcbnByb2dyZXNzLFxudmlkZW8ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIC8qIDEgKi9cbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAvKiAyICovIH1cblxuLyoqXHJcbiAgICogUHJldmVudCBtb2Rlcm4gYnJvd3NlcnMgZnJvbSBkaXNwbGF5aW5nIGBhdWRpb2Agd2l0aG91dCBjb250cm9scy5cclxuICAgKiBSZW1vdmUgZXhjZXNzIGhlaWdodCBpbiBpT1MgNSBkZXZpY2VzLlxyXG4gICAqL1xuYXVkaW86bm90KFtjb250cm9sc10pIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgaGVpZ2h0OiAwOyB9XG5cbi8qKlxyXG4gICAqIEFkZHJlc3MgYFtoaWRkZW5dYCBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS8xMC5cclxuICAgKiBIaWRlIHRoZSBgdGVtcGxhdGVgIGVsZW1lbnQgaW4gSUUgOC85LzEwLzExLCBTYWZhcmksIGFuZCBGaXJlZm94IDwgMjIuXHJcbiAgICovXG5baGlkZGVuXSxcbnRlbXBsYXRlIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4vKiBMaW5rc1xyXG4gICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcclxuICAgKiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBjb2xvciBmcm9tIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cclxuICAgKi9cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuXG4vKipcclxuICAgKiBJbXByb3ZlIHJlYWRhYmlsaXR5IG9mIGZvY3VzZWQgZWxlbWVudHMgd2hlbiB0aGV5IGFyZSBhbHNvIGluIGFuXHJcbiAgICogYWN0aXZlL2hvdmVyIHN0YXRlLlxyXG4gICAqL1xuYTphY3RpdmUsXG5hOmhvdmVyIHtcbiAgb3V0bGluZTogMDsgfVxuXG4vKiBUZXh0LWxldmVsIHNlbWFudGljc1xyXG4gICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcclxuICAgKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LzEwLzExLCBTYWZhcmksIGFuZCBDaHJvbWUuXHJcbiAgICovXG5hYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQ7IH1cblxuLyoqXHJcbiAgICogQWRkcmVzcyBzdHlsZSBzZXQgdG8gYGJvbGRlcmAgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxyXG4gICAqL1xuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbi8qKlxyXG4gICAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBTYWZhcmkgYW5kIENocm9tZS5cclxuICAgKi9cbmRmbiB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYzsgfVxuXG4vKipcclxuICAgKiBBZGRyZXNzIHZhcmlhYmxlIGBoMWAgZm9udC1zaXplIGFuZCBtYXJnaW4gd2l0aGluIGBzZWN0aW9uYCBhbmQgYGFydGljbGVgXHJcbiAgICogY29udGV4dHMgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxyXG4gICAqL1xuaDEge1xuICBmb250LXNpemU6IDJlbTtcbiAgbWFyZ2luOiAwLjY3ZW0gMDsgfVxuXG4vKipcclxuICAgKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LlxyXG4gICAqL1xubWFyayB7XG4gIGJhY2tncm91bmQ6ICNmZjA7XG4gIGNvbG9yOiAjMDAwOyB9XG5cbi8qKlxyXG4gICAqIEFkZHJlc3MgaW5jb25zaXN0ZW50IGFuZCB2YXJpYWJsZSBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxyXG4gICAqL1xuc21hbGwge1xuICBmb250LXNpemU6IDgwJTsgfVxuXG4vKipcclxuICAgKiBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBhZmZlY3RpbmcgYGxpbmUtaGVpZ2h0YCBpbiBhbGwgYnJvd3NlcnMuXHJcbiAgICovXG5zdWIsXG5zdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyB9XG5cbnN1cCB7XG4gIHRvcDogLTAuNWVtOyB9XG5cbnN1YiB7XG4gIGJvdHRvbTogLTAuMjVlbTsgfVxuXG4vKiBFbWJlZGRlZCBjb250ZW50XHJcbiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxyXG4gICAqIFJlbW92ZSBib3JkZXIgd2hlbiBpbnNpZGUgYGFgIGVsZW1lbnQgaW4gSUUgOC85LzEwLlxyXG4gICAqL1xuaW1nIHtcbiAgYm9yZGVyOiAwOyB9XG5cbi8qKlxyXG4gICAqIENvcnJlY3Qgb3ZlcmZsb3cgbm90IGhpZGRlbiBpbiBJRSA5LzEwLzExLlxyXG4gICAqL1xuc3ZnOm5vdCg6cm9vdCkge1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbi8qIEdyb3VwaW5nIGNvbnRlbnRcclxuICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXHJcbiAgICogQWRkcmVzcyBtYXJnaW4gbm90IHByZXNlbnQgaW4gSUUgOC85IGFuZCBTYWZhcmkuXHJcbiAgICovXG5maWd1cmUge1xuICBtYXJnaW46IDFlbSA0MHB4OyB9XG5cbi8qKlxyXG4gICAqIEFkZHJlc3MgZGlmZmVyZW5jZXMgYmV0d2VlbiBGaXJlZm94IGFuZCBvdGhlciBicm93c2Vycy5cclxuICAgKi9cbmhyIHtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIGhlaWdodDogMDsgfVxuXG4vKipcclxuICAgKiBDb250YWluIG92ZXJmbG93IGluIGFsbCBicm93c2Vycy5cclxuICAgKi9cbnByZSB7XG4gIG92ZXJmbG93OiBhdXRvOyB9XG5cbi8qKlxyXG4gICAqIEFkZHJlc3Mgb2RkIGBlbWAtdW5pdCBmb250IHNpemUgcmVuZGVyaW5nIGluIGFsbCBicm93c2Vycy5cclxuICAgKi9cbmNvZGUsXG5rYmQsXG5wcmUsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICBmb250LXNpemU6IDFlbTsgfVxuXG4vKiBGb3Jtc1xyXG4gICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcclxuICAgKiBLbm93biBsaW1pdGF0aW9uOiBieSBkZWZhdWx0LCBDaHJvbWUgYW5kIFNhZmFyaSBvbiBPUyBYIGFsbG93IHZlcnkgbGltaXRlZFxyXG4gICAqIHN0eWxpbmcgb2YgYHNlbGVjdGAsIHVubGVzcyBhIGBib3JkZXJgIHByb3BlcnR5IGlzIHNldC5cclxuICAgKi9cbi8qKlxyXG4gICAqIDEuIENvcnJlY3QgY29sb3Igbm90IGJlaW5nIGluaGVyaXRlZC5cclxuICAgKiAgICBLbm93biBpc3N1ZTogYWZmZWN0cyBjb2xvciBvZiBkaXNhYmxlZCBlbGVtZW50cy5cclxuICAgKiAyLiBDb3JyZWN0IGZvbnQgcHJvcGVydGllcyBub3QgYmVpbmcgaW5oZXJpdGVkLlxyXG4gICAqIDMuIEFkZHJlc3MgbWFyZ2lucyBzZXQgZGlmZmVyZW50bHkgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxyXG4gICAqL1xuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIC8qIDEgKi9cbiAgZm9udDogaW5oZXJpdDtcbiAgLyogMiAqL1xuICBtYXJnaW46IDA7XG4gIC8qIDMgKi8gfVxuXG4vKipcclxuICAgKiBBZGRyZXNzIGBvdmVyZmxvd2Agc2V0IHRvIGBoaWRkZW5gIGluIElFIDgvOS8xMC8xMS5cclxuICAgKi9cbmJ1dHRvbiB7XG4gIG92ZXJmbG93OiB2aXNpYmxlOyB9XG5cbi8qKlxyXG4gICAqIEFkZHJlc3MgaW5jb25zaXN0ZW50IGB0ZXh0LXRyYW5zZm9ybWAgaW5oZXJpdGFuY2UgZm9yIGBidXR0b25gIGFuZCBgc2VsZWN0YC5cclxuICAgKiBBbGwgb3RoZXIgZm9ybSBjb250cm9sIGVsZW1lbnRzIGRvIG5vdCBpbmhlcml0IGB0ZXh0LXRyYW5zZm9ybWAgdmFsdWVzLlxyXG4gICAqIENvcnJlY3QgYGJ1dHRvbmAgc3R5bGUgaW5oZXJpdGFuY2UgaW4gRmlyZWZveCwgSUUgOC85LzEwLzExLCBhbmQgT3BlcmEuXHJcbiAgICogQ29ycmVjdCBgc2VsZWN0YCBzdHlsZSBpbmhlcml0YW5jZSBpbiBGaXJlZm94LlxyXG4gICAqL1xuYnV0dG9uLFxuc2VsZWN0IHtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7IH1cblxuLyoqXHJcbiAgICogMS4gQXZvaWQgdGhlIFdlYktpdCBidWcgaW4gQW5kcm9pZCA0LjAuKiB3aGVyZSAoMikgZGVzdHJveXMgbmF0aXZlIGBhdWRpb2BcclxuICAgKiAgICBhbmQgYHZpZGVvYCBjb250cm9scy5cclxuICAgKiAyLiBDb3JyZWN0IGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgYGlucHV0YCB0eXBlcyBpbiBpT1MuXHJcbiAgICogMy4gSW1wcm92ZSB1c2FiaWxpdHkgYW5kIGNvbnNpc3RlbmN5IG9mIGN1cnNvciBzdHlsZSBiZXR3ZWVuIGltYWdlLXR5cGVcclxuICAgKiAgICBgaW5wdXRgIGFuZCBvdGhlcnMuXHJcbiAgICovXG5idXR0b24sXG5odG1sIGlucHV0W3R5cGU9XCJidXR0b25cIl0sXG5pbnB1dFt0eXBlPVwicmVzZXRcIl0sXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG4gIC8qIDIgKi9cbiAgY3Vyc29yOiBwb2ludGVyO1xuICAvKiAzICovIH1cblxuLyoqXHJcbiAgICogUmUtc2V0IGRlZmF1bHQgY3Vyc29yIGZvciBkaXNhYmxlZCBlbGVtZW50cy5cclxuICAgKi9cbmJ1dHRvbltkaXNhYmxlZF0sXG5odG1sIGlucHV0W2Rpc2FibGVkXSB7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7IH1cblxuLyoqXHJcbiAgICogUmVtb3ZlIGlubmVyIHBhZGRpbmcgYW5kIGJvcmRlciBpbiBGaXJlZm94IDQrLlxyXG4gICAqL1xuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuaW5wdXQ6Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDA7IH1cblxuLyoqXHJcbiAgICogQWRkcmVzcyBGaXJlZm94IDQrIHNldHRpbmcgYGxpbmUtaGVpZ2h0YCBvbiBgaW5wdXRgIHVzaW5nIGAhaW1wb3J0YW50YCBpblxyXG4gICAqIHRoZSBVQSBzdHlsZXNoZWV0LlxyXG4gICAqL1xuaW5wdXQge1xuICBsaW5lLWhlaWdodDogbm9ybWFsOyB9XG5cbi8qKlxyXG4gICAqIEl0J3MgcmVjb21tZW5kZWQgdGhhdCB5b3UgZG9uJ3QgYXR0ZW1wdCB0byBzdHlsZSB0aGVzZSBlbGVtZW50cy5cclxuICAgKiBGaXJlZm94J3MgaW1wbGVtZW50YXRpb24gZG9lc24ndCByZXNwZWN0IGJveC1zaXppbmcsIHBhZGRpbmcsIG9yIHdpZHRoLlxyXG4gICAqXHJcbiAgICogMS4gQWRkcmVzcyBib3ggc2l6aW5nIHNldCB0byBgY29udGVudC1ib3hgIGluIElFIDgvOS8xMC5cclxuICAgKiAyLiBSZW1vdmUgZXhjZXNzIHBhZGRpbmcgaW4gSUUgOC85LzEwLlxyXG4gICAqL1xuaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLFxuaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLyogMSAqL1xuICBwYWRkaW5nOiAwO1xuICAvKiAyICovIH1cblxuLyoqXHJcbiAgICogRml4IHRoZSBjdXJzb3Igc3R5bGUgZm9yIENocm9tZSdzIGluY3JlbWVudC9kZWNyZW1lbnQgYnV0dG9ucy4gRm9yIGNlcnRhaW5cclxuICAgKiBgZm9udC1zaXplYCB2YWx1ZXMgb2YgdGhlIGBpbnB1dGAsIGl0IGNhdXNlcyB0aGUgY3Vyc29yIHN0eWxlIG9mIHRoZVxyXG4gICAqIGRlY3JlbWVudCBidXR0b24gdG8gY2hhbmdlIGZyb20gYGRlZmF1bHRgIHRvIGB0ZXh0YC5cclxuICAgKi9cbmlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiBhdXRvOyB9XG5cbi8qKlxyXG4gICAqIDEuIEFkZHJlc3MgYGFwcGVhcmFuY2VgIHNldCB0byBgc2VhcmNoZmllbGRgIGluIFNhZmFyaSBhbmQgQ2hyb21lLlxyXG4gICAqIDIuIEFkZHJlc3MgYGJveC1zaXppbmdgIHNldCB0byBgYm9yZGVyLWJveGAgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXHJcbiAgICovXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XG4gIC8qIDEgKi9cbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIC8qIDIgKi8gfVxuXG4vKipcclxuICAgKiBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgc2VhcmNoIGNhbmNlbCBidXR0b24gaW4gU2FmYXJpIGFuZCBDaHJvbWUgb24gT1MgWC5cclxuICAgKiBTYWZhcmkgKGJ1dCBub3QgQ2hyb21lKSBjbGlwcyB0aGUgY2FuY2VsIGJ1dHRvbiB3aGVuIHRoZSBzZWFyY2ggaW5wdXQgaGFzXHJcbiAgICogcGFkZGluZyAoYW5kIGB0ZXh0ZmllbGRgIGFwcGVhcmFuY2UpLlxyXG4gICAqL1xuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IH1cblxuLyoqXHJcbiAgICogRGVmaW5lIGNvbnNpc3RlbnQgYm9yZGVyLCBtYXJnaW4sIGFuZCBwYWRkaW5nLlxyXG4gICAqIFtOT1RFXSBXZSBkb24ndCBlbmFibGUgdGhpcyBydWxlc2V0IGluIEZvdW5kYXRpb24sIGJlY2F1c2Ugd2Ugd2FudCB0aGUgPGZpZWxkc2V0PiBlbGVtZW50IHRvIGhhdmUgcGxhaW4gc3R5bGluZy5cclxuICAgKi9cbi8qIGZpZWxkc2V0IHtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjMGMwYzA7XHJcbiAgICBtYXJnaW46IDAgMnB4O1xyXG4gICAgcGFkZGluZzogMC4zNWVtIDAuNjI1ZW0gMC43NWVtO1xyXG4gIH0gKi9cbi8qKlxyXG4gICAqIDEuIENvcnJlY3QgYGNvbG9yYCBub3QgYmVpbmcgaW5oZXJpdGVkIGluIElFIDgvOS8xMC8xMS5cclxuICAgKiAyLiBSZW1vdmUgcGFkZGluZyBzbyBwZW9wbGUgYXJlbid0IGNhdWdodCBvdXQgaWYgdGhleSB6ZXJvIG91dCBmaWVsZHNldHMuXHJcbiAgICovXG5sZWdlbmQge1xuICBib3JkZXI6IDA7XG4gIC8qIDEgKi9cbiAgcGFkZGluZzogMDtcbiAgLyogMiAqLyB9XG5cbi8qKlxyXG4gICAqIFJlbW92ZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSA4LzkvMTAvMTEuXHJcbiAgICovXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvOyB9XG5cbi8qKlxyXG4gICAqIERvbid0IGluaGVyaXQgdGhlIGBmb250LXdlaWdodGAgKGFwcGxpZWQgYnkgYSBydWxlIGFib3ZlKS5cclxuICAgKiBOT1RFOiB0aGUgZGVmYXVsdCBjYW5ub3Qgc2FmZWx5IGJlIGNoYW5nZWQgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gT1MgWC5cclxuICAgKi9cbm9wdGdyb3VwIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cblxuLyogVGFibGVzXHJcbiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxyXG4gICAqIFJlbW92ZSBtb3N0IHNwYWNpbmcgYmV0d2VlbiB0YWJsZSBjZWxscy5cclxuICAgKi9cbnRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgYm9yZGVyLXNwYWNpbmc6IDA7IH1cblxudGQsXG50aCB7XG4gIHBhZGRpbmc6IDA7IH1cblxuLmZvdW5kYXRpb24tbXEge1xuICBmb250LWZhbWlseTogXCJzbWFsbD0wZW0mbWVkaXVtPTQwZW0mbGFyZ2U9NjRlbSZ4bGFyZ2U9NzVlbSZ4eGxhcmdlPTkwZW1cIjsgfVxuXG5odG1sIHtcbiAgZm9udC1zaXplOiAxMDAlO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG5cbiosXG4qOjpiZWZvcmUsXG4qOjphZnRlciB7XG4gIGJveC1zaXppbmc6IGluaGVyaXQ7IH1cblxuYm9keSB7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBSb2JvdG8sIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMS41O1xuICBjb2xvcjogIzBhMGEwYTtcbiAgYmFja2dyb3VuZDogI2ZlZmVmZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7IH1cblxuaW1nIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG4gIC1tcy1pbnRlcnBvbGF0aW9uLW1vZGU6IGJpY3ViaWM7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxuXG50ZXh0YXJlYSB7XG4gIGhlaWdodDogYXV0bztcbiAgbWluLWhlaWdodDogNTBweDtcbiAgYm9yZGVyLXJhZGl1czogMDsgfVxuXG5zZWxlY3Qge1xuICB3aWR0aDogMTAwJTtcbiAgYm9yZGVyLXJhZGl1czogMDsgfVxuXG4jbWFwX2NhbnZhcyBpbWcsXG4jbWFwX2NhbnZhcyBlbWJlZCxcbiNtYXBfY2FudmFzIG9iamVjdCxcbi5tYXBfY2FudmFzIGltZyxcbi5tYXBfY2FudmFzIGVtYmVkLFxuLm1hcF9jYW52YXMgb2JqZWN0LFxuLm1xYS1kaXNwbGF5IGltZyxcbi5tcWEtZGlzcGxheSBlbWJlZCxcbi5tcWEtZGlzcGxheSBvYmplY3Qge1xuICBtYXgtd2lkdGg6IG5vbmUgIWltcG9ydGFudDsgfVxuXG5idXR0b24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgbGluZS1oZWlnaHQ6IDE7IH1cbiAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIGJ1dHRvbiB7XG4gICAgb3V0bGluZTogMDsgfVxuXG4uaXMtdmlzaWJsZSB7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH1cblxuLmlzLWhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4uYWxpZ24tcmlnaHQge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyB9XG5cbi5hbGlnbi1jZW50ZXIge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuXG4uYWxpZ24tanVzdGlmeSB7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgfVxuXG4uYWxpZ24tc3BhY2VkIHtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7IH1cblxuLmFsaWduLXRvcCB7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OyB9XG5cbi5hbGlnbi1zZWxmLXRvcCB7XG4gIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7IH1cblxuLmFsaWduLWJvdHRvbSB7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsgfVxuXG4uYWxpZ24tc2VsZi1ib3R0b20ge1xuICBhbGlnbi1zZWxmOiBmbGV4LWVuZDsgfVxuXG4uYWxpZ24tbWlkZGxlIHtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuXG4uYWxpZ24tc2VsZi1taWRkbGUge1xuICBhbGlnbi1zZWxmOiBjZW50ZXI7IH1cblxuLmFsaWduLXN0cmV0Y2gge1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDsgfVxuXG4uYWxpZ24tc2VsZi1zdHJldGNoIHtcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDsgfVxuXG4uc21hbGwtb3JkZXItMSB7XG4gIG9yZGVyOiAxOyB9XG5cbi5zbWFsbC1vcmRlci0yIHtcbiAgb3JkZXI6IDI7IH1cblxuLnNtYWxsLW9yZGVyLTMge1xuICBvcmRlcjogMzsgfVxuXG4uc21hbGwtb3JkZXItNCB7XG4gIG9yZGVyOiA0OyB9XG5cbi5zbWFsbC1vcmRlci01IHtcbiAgb3JkZXI6IDU7IH1cblxuLnNtYWxsLW9yZGVyLTYge1xuICBvcmRlcjogNjsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5tZWRpdW0tb3JkZXItMSB7XG4gICAgb3JkZXI6IDE7IH1cbiAgLm1lZGl1bS1vcmRlci0yIHtcbiAgICBvcmRlcjogMjsgfVxuICAubWVkaXVtLW9yZGVyLTMge1xuICAgIG9yZGVyOiAzOyB9XG4gIC5tZWRpdW0tb3JkZXItNCB7XG4gICAgb3JkZXI6IDQ7IH1cbiAgLm1lZGl1bS1vcmRlci01IHtcbiAgICBvcmRlcjogNTsgfVxuICAubWVkaXVtLW9yZGVyLTYge1xuICAgIG9yZGVyOiA2OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAubGFyZ2Utb3JkZXItMSB7XG4gICAgb3JkZXI6IDE7IH1cbiAgLmxhcmdlLW9yZGVyLTIge1xuICAgIG9yZGVyOiAyOyB9XG4gIC5sYXJnZS1vcmRlci0zIHtcbiAgICBvcmRlcjogMzsgfVxuICAubGFyZ2Utb3JkZXItNCB7XG4gICAgb3JkZXI6IDQ7IH1cbiAgLmxhcmdlLW9yZGVyLTUge1xuICAgIG9yZGVyOiA1OyB9XG4gIC5sYXJnZS1vcmRlci02IHtcbiAgICBvcmRlcjogNjsgfSB9XG5cbi5yb3cge1xuICBtYXgtd2lkdGg6IDc1cmVtO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IHJvdyB3cmFwOyB9XG4gIC5yb3cgLnJvdyB7XG4gICAgbWF4LXdpZHRoOiBub25lO1xuICAgIG1hcmdpbi1sZWZ0OiAtMC42MjVyZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAtMC42MjVyZW07IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAucm93IC5yb3cge1xuICAgICAgICBtYXJnaW4tbGVmdDogLTAuOTM3NXJlbTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtMC45Mzc1cmVtOyB9IH1cbiAgLnJvdy5leHBhbmRlZCB7XG4gICAgbWF4LXdpZHRoOiBub25lOyB9XG4gIC5yb3cuY29sbGFwc2UgPiAuY29sdW1uLCAucm93LmNvbGxhcHNlID4gLmNvbHVtbnMge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwOyB9XG5cbi5jb2x1bW4sIC5jb2x1bW5zIHtcbiAgZmxleDogMSAxIDBweDtcbiAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbiAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gIG1pbi13aWR0aDogaW5pdGlhbDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLmNvbHVtbiwgLmNvbHVtbnMge1xuICAgICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07IH0gfVxuXG4uY29sdW1uLnJvdy5yb3csIC5yb3cucm93LmNvbHVtbnMge1xuICBmbG9hdDogbm9uZTtcbiAgZGlzcGxheTogYmxvY2s7IH1cbiAgLnJvdyAuY29sdW1uLnJvdy5yb3csIC5yb3cgLnJvdy5yb3cuY29sdW1ucyB7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG5cbi5zbWFsbC0xIHtcbiAgZmxleDogMCAwIDguMzMzMzMlO1xuICBtYXgtd2lkdGg6IDguMzMzMzMlOyB9XG5cbi5zbWFsbC1vZmZzZXQtMCB7XG4gIG1hcmdpbi1sZWZ0OiAwJTsgfVxuXG4uc21hbGwtMiB7XG4gIGZsZXg6IDAgMCAxNi42NjY2NyU7XG4gIG1heC13aWR0aDogMTYuNjY2NjclOyB9XG5cbi5zbWFsbC1vZmZzZXQtMSB7XG4gIG1hcmdpbi1sZWZ0OiA4LjMzMzMzJTsgfVxuXG4uc21hbGwtMyB7XG4gIGZsZXg6IDAgMCAyNSU7XG4gIG1heC13aWR0aDogMjUlOyB9XG5cbi5zbWFsbC1vZmZzZXQtMiB7XG4gIG1hcmdpbi1sZWZ0OiAxNi42NjY2NyU7IH1cblxuLnNtYWxsLTQge1xuICBmbGV4OiAwIDAgMzMuMzMzMzMlO1xuICBtYXgtd2lkdGg6IDMzLjMzMzMzJTsgfVxuXG4uc21hbGwtb2Zmc2V0LTMge1xuICBtYXJnaW4tbGVmdDogMjUlOyB9XG5cbi5zbWFsbC01IHtcbiAgZmxleDogMCAwIDQxLjY2NjY3JTtcbiAgbWF4LXdpZHRoOiA0MS42NjY2NyU7IH1cblxuLnNtYWxsLW9mZnNldC00IHtcbiAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMzJTsgfVxuXG4uc21hbGwtNiB7XG4gIGZsZXg6IDAgMCA1MCU7XG4gIG1heC13aWR0aDogNTAlOyB9XG5cbi5zbWFsbC1vZmZzZXQtNSB7XG4gIG1hcmdpbi1sZWZ0OiA0MS42NjY2NyU7IH1cblxuLnNtYWxsLTcge1xuICBmbGV4OiAwIDAgNTguMzMzMzMlO1xuICBtYXgtd2lkdGg6IDU4LjMzMzMzJTsgfVxuXG4uc21hbGwtb2Zmc2V0LTYge1xuICBtYXJnaW4tbGVmdDogNTAlOyB9XG5cbi5zbWFsbC04IHtcbiAgZmxleDogMCAwIDY2LjY2NjY3JTtcbiAgbWF4LXdpZHRoOiA2Ni42NjY2NyU7IH1cblxuLnNtYWxsLW9mZnNldC03IHtcbiAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMzJTsgfVxuXG4uc21hbGwtOSB7XG4gIGZsZXg6IDAgMCA3NSU7XG4gIG1heC13aWR0aDogNzUlOyB9XG5cbi5zbWFsbC1vZmZzZXQtOCB7XG4gIG1hcmdpbi1sZWZ0OiA2Ni42NjY2NyU7IH1cblxuLnNtYWxsLTEwIHtcbiAgZmxleDogMCAwIDgzLjMzMzMzJTtcbiAgbWF4LXdpZHRoOiA4My4zMzMzMyU7IH1cblxuLnNtYWxsLW9mZnNldC05IHtcbiAgbWFyZ2luLWxlZnQ6IDc1JTsgfVxuXG4uc21hbGwtMTEge1xuICBmbGV4OiAwIDAgOTEuNjY2NjclO1xuICBtYXgtd2lkdGg6IDkxLjY2NjY3JTsgfVxuXG4uc21hbGwtb2Zmc2V0LTEwIHtcbiAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzJTsgfVxuXG4uc21hbGwtMTIge1xuICBmbGV4OiAwIDAgMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAlOyB9XG5cbi5zbWFsbC1vZmZzZXQtMTEge1xuICBtYXJnaW4tbGVmdDogOTEuNjY2NjclOyB9XG5cbi5zbWFsbC1vcmRlci0xIHtcbiAgb3JkZXI6IDE7IH1cblxuLnNtYWxsLW9yZGVyLTIge1xuICBvcmRlcjogMjsgfVxuXG4uc21hbGwtb3JkZXItMyB7XG4gIG9yZGVyOiAzOyB9XG5cbi5zbWFsbC1vcmRlci00IHtcbiAgb3JkZXI6IDQ7IH1cblxuLnNtYWxsLW9yZGVyLTUge1xuICBvcmRlcjogNTsgfVxuXG4uc21hbGwtb3JkZXItNiB7XG4gIG9yZGVyOiA2OyB9XG5cbi5zbWFsbC11cC0xIHtcbiAgZmxleC13cmFwOiB3cmFwOyB9XG4gIC5zbWFsbC11cC0xID4gLmNvbHVtbiwgLnNtYWxsLXVwLTEgPiAuY29sdW1ucyB7XG4gICAgZmxleDogMCAwIDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlOyB9XG5cbi5zbWFsbC11cC0yIHtcbiAgZmxleC13cmFwOiB3cmFwOyB9XG4gIC5zbWFsbC11cC0yID4gLmNvbHVtbiwgLnNtYWxsLXVwLTIgPiAuY29sdW1ucyB7XG4gICAgZmxleDogMCAwIDUwJTtcbiAgICBtYXgtd2lkdGg6IDUwJTsgfVxuXG4uc21hbGwtdXAtMyB7XG4gIGZsZXgtd3JhcDogd3JhcDsgfVxuICAuc21hbGwtdXAtMyA+IC5jb2x1bW4sIC5zbWFsbC11cC0zID4gLmNvbHVtbnMge1xuICAgIGZsZXg6IDAgMCAzMy4zMzMzMyU7XG4gICAgbWF4LXdpZHRoOiAzMy4zMzMzMyU7IH1cblxuLnNtYWxsLXVwLTQge1xuICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgLnNtYWxsLXVwLTQgPiAuY29sdW1uLCAuc21hbGwtdXAtNCA+IC5jb2x1bW5zIHtcbiAgICBmbGV4OiAwIDAgMjUlO1xuICAgIG1heC13aWR0aDogMjUlOyB9XG5cbi5zbWFsbC11cC01IHtcbiAgZmxleC13cmFwOiB3cmFwOyB9XG4gIC5zbWFsbC11cC01ID4gLmNvbHVtbiwgLnNtYWxsLXVwLTUgPiAuY29sdW1ucyB7XG4gICAgZmxleDogMCAwIDIwJTtcbiAgICBtYXgtd2lkdGg6IDIwJTsgfVxuXG4uc21hbGwtdXAtNiB7XG4gIGZsZXgtd3JhcDogd3JhcDsgfVxuICAuc21hbGwtdXAtNiA+IC5jb2x1bW4sIC5zbWFsbC11cC02ID4gLmNvbHVtbnMge1xuICAgIGZsZXg6IDAgMCAxNi42NjY2NyU7XG4gICAgbWF4LXdpZHRoOiAxNi42NjY2NyU7IH1cblxuLnNtYWxsLXVwLTcge1xuICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgLnNtYWxsLXVwLTcgPiAuY29sdW1uLCAuc21hbGwtdXAtNyA+IC5jb2x1bW5zIHtcbiAgICBmbGV4OiAwIDAgMTQuMjg1NzElO1xuICAgIG1heC13aWR0aDogMTQuMjg1NzElOyB9XG5cbi5zbWFsbC11cC04IHtcbiAgZmxleC13cmFwOiB3cmFwOyB9XG4gIC5zbWFsbC11cC04ID4gLmNvbHVtbiwgLnNtYWxsLXVwLTggPiAuY29sdW1ucyB7XG4gICAgZmxleDogMCAwIDEyLjUlO1xuICAgIG1heC13aWR0aDogMTIuNSU7IH1cblxuLnNtYWxsLWNvbGxhcHNlID4gLmNvbHVtbiwgLnNtYWxsLWNvbGxhcHNlID4gLmNvbHVtbnMge1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIHBhZGRpbmctcmlnaHQ6IDA7IH1cblxuLnNtYWxsLXVuY29sbGFwc2UgPiAuY29sdW1uLCAuc21hbGwtdW5jb2xsYXBzZSA+IC5jb2x1bW5zIHtcbiAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTtcbiAgcGFkZGluZy1yaWdodDogMC42MjVyZW07IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAubWVkaXVtLTEge1xuICAgIGZsZXg6IDAgMCA4LjMzMzMzJTtcbiAgICBtYXgtd2lkdGg6IDguMzMzMzMlOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTAge1xuICAgIG1hcmdpbi1sZWZ0OiAwJTsgfVxuICAubWVkaXVtLTIge1xuICAgIGZsZXg6IDAgMCAxNi42NjY2NyU7XG4gICAgbWF4LXdpZHRoOiAxNi42NjY2NyU7IH1cbiAgLm1lZGl1bS1vZmZzZXQtMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDguMzMzMzMlOyB9XG4gIC5tZWRpdW0tMyB7XG4gICAgZmxleDogMCAwIDI1JTtcbiAgICBtYXgtd2lkdGg6IDI1JTsgfVxuICAubWVkaXVtLW9mZnNldC0yIHtcbiAgICBtYXJnaW4tbGVmdDogMTYuNjY2NjclOyB9XG4gIC5tZWRpdW0tNCB7XG4gICAgZmxleDogMCAwIDMzLjMzMzMzJTtcbiAgICBtYXgtd2lkdGg6IDMzLjMzMzMzJTsgfVxuICAubWVkaXVtLW9mZnNldC0zIHtcbiAgICBtYXJnaW4tbGVmdDogMjUlOyB9XG4gIC5tZWRpdW0tNSB7XG4gICAgZmxleDogMCAwIDQxLjY2NjY3JTtcbiAgICBtYXgtd2lkdGg6IDQxLjY2NjY3JTsgfVxuICAubWVkaXVtLW9mZnNldC00IHtcbiAgICBtYXJnaW4tbGVmdDogMzMuMzMzMzMlOyB9XG4gIC5tZWRpdW0tNiB7XG4gICAgZmxleDogMCAwIDUwJTtcbiAgICBtYXgtd2lkdGg6IDUwJTsgfVxuICAubWVkaXVtLW9mZnNldC01IHtcbiAgICBtYXJnaW4tbGVmdDogNDEuNjY2NjclOyB9XG4gIC5tZWRpdW0tNyB7XG4gICAgZmxleDogMCAwIDU4LjMzMzMzJTtcbiAgICBtYXgtd2lkdGg6IDU4LjMzMzMzJTsgfVxuICAubWVkaXVtLW9mZnNldC02IHtcbiAgICBtYXJnaW4tbGVmdDogNTAlOyB9XG4gIC5tZWRpdW0tOCB7XG4gICAgZmxleDogMCAwIDY2LjY2NjY3JTtcbiAgICBtYXgtd2lkdGg6IDY2LjY2NjY3JTsgfVxuICAubWVkaXVtLW9mZnNldC03IHtcbiAgICBtYXJnaW4tbGVmdDogNTguMzMzMzMlOyB9XG4gIC5tZWRpdW0tOSB7XG4gICAgZmxleDogMCAwIDc1JTtcbiAgICBtYXgtd2lkdGg6IDc1JTsgfVxuICAubWVkaXVtLW9mZnNldC04IHtcbiAgICBtYXJnaW4tbGVmdDogNjYuNjY2NjclOyB9XG4gIC5tZWRpdW0tMTAge1xuICAgIGZsZXg6IDAgMCA4My4zMzMzMyU7XG4gICAgbWF4LXdpZHRoOiA4My4zMzMzMyU7IH1cbiAgLm1lZGl1bS1vZmZzZXQtOSB7XG4gICAgbWFyZ2luLWxlZnQ6IDc1JTsgfVxuICAubWVkaXVtLTExIHtcbiAgICBmbGV4OiAwIDAgOTEuNjY2NjclO1xuICAgIG1heC13aWR0aDogOTEuNjY2NjclOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTEwIHtcbiAgICBtYXJnaW4tbGVmdDogODMuMzMzMzMlOyB9XG4gIC5tZWRpdW0tMTIge1xuICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgIG1heC13aWR0aDogMTAwJTsgfVxuICAubWVkaXVtLW9mZnNldC0xMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDkxLjY2NjY3JTsgfVxuICAubWVkaXVtLW9yZGVyLTEge1xuICAgIG9yZGVyOiAxOyB9XG4gIC5tZWRpdW0tb3JkZXItMiB7XG4gICAgb3JkZXI6IDI7IH1cbiAgLm1lZGl1bS1vcmRlci0zIHtcbiAgICBvcmRlcjogMzsgfVxuICAubWVkaXVtLW9yZGVyLTQge1xuICAgIG9yZGVyOiA0OyB9XG4gIC5tZWRpdW0tb3JkZXItNSB7XG4gICAgb3JkZXI6IDU7IH1cbiAgLm1lZGl1bS1vcmRlci02IHtcbiAgICBvcmRlcjogNjsgfVxuICAubWVkaXVtLXVwLTEge1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIC5tZWRpdW0tdXAtMSA+IC5jb2x1bW4sIC5tZWRpdW0tdXAtMSA+IC5jb2x1bW5zIHtcbiAgICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgICAgbWF4LXdpZHRoOiAxMDAlOyB9XG4gIC5tZWRpdW0tdXAtMiB7XG4gICAgZmxleC13cmFwOiB3cmFwOyB9XG4gICAgLm1lZGl1bS11cC0yID4gLmNvbHVtbiwgLm1lZGl1bS11cC0yID4gLmNvbHVtbnMge1xuICAgICAgZmxleDogMCAwIDUwJTtcbiAgICAgIG1heC13aWR0aDogNTAlOyB9XG4gIC5tZWRpdW0tdXAtMyB7XG4gICAgZmxleC13cmFwOiB3cmFwOyB9XG4gICAgLm1lZGl1bS11cC0zID4gLmNvbHVtbiwgLm1lZGl1bS11cC0zID4gLmNvbHVtbnMge1xuICAgICAgZmxleDogMCAwIDMzLjMzMzMzJTtcbiAgICAgIG1heC13aWR0aDogMzMuMzMzMzMlOyB9XG4gIC5tZWRpdW0tdXAtNCB7XG4gICAgZmxleC13cmFwOiB3cmFwOyB9XG4gICAgLm1lZGl1bS11cC00ID4gLmNvbHVtbiwgLm1lZGl1bS11cC00ID4gLmNvbHVtbnMge1xuICAgICAgZmxleDogMCAwIDI1JTtcbiAgICAgIG1heC13aWR0aDogMjUlOyB9XG4gIC5tZWRpdW0tdXAtNSB7XG4gICAgZmxleC13cmFwOiB3cmFwOyB9XG4gICAgLm1lZGl1bS11cC01ID4gLmNvbHVtbiwgLm1lZGl1bS11cC01ID4gLmNvbHVtbnMge1xuICAgICAgZmxleDogMCAwIDIwJTtcbiAgICAgIG1heC13aWR0aDogMjAlOyB9XG4gIC5tZWRpdW0tdXAtNiB7XG4gICAgZmxleC13cmFwOiB3cmFwOyB9XG4gICAgLm1lZGl1bS11cC02ID4gLmNvbHVtbiwgLm1lZGl1bS11cC02ID4gLmNvbHVtbnMge1xuICAgICAgZmxleDogMCAwIDE2LjY2NjY3JTtcbiAgICAgIG1heC13aWR0aDogMTYuNjY2NjclOyB9XG4gIC5tZWRpdW0tdXAtNyB7XG4gICAgZmxleC13cmFwOiB3cmFwOyB9XG4gICAgLm1lZGl1bS11cC03ID4gLmNvbHVtbiwgLm1lZGl1bS11cC03ID4gLmNvbHVtbnMge1xuICAgICAgZmxleDogMCAwIDE0LjI4NTcxJTtcbiAgICAgIG1heC13aWR0aDogMTQuMjg1NzElOyB9XG4gIC5tZWRpdW0tdXAtOCB7XG4gICAgZmxleC13cmFwOiB3cmFwOyB9XG4gICAgLm1lZGl1bS11cC04ID4gLmNvbHVtbiwgLm1lZGl1bS11cC04ID4gLmNvbHVtbnMge1xuICAgICAgZmxleDogMCAwIDEyLjUlO1xuICAgICAgbWF4LXdpZHRoOiAxMi41JTsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5tZWRpdW0tZXhwYW5kIHtcbiAgICBmbGV4OiAxIDEgMHB4OyB9IH1cblxuLnJvdy5tZWRpdW0tdW5zdGFjayA+IC5jb2x1bW4sIC5yb3cubWVkaXVtLXVuc3RhY2sgPiAuY29sdW1ucyB7XG4gIGZsZXg6IDAgMCAxMDAlOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAucm93Lm1lZGl1bS11bnN0YWNrID4gLmNvbHVtbiwgLnJvdy5tZWRpdW0tdW5zdGFjayA+IC5jb2x1bW5zIHtcbiAgICAgIGZsZXg6IDEgMSAwcHg7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5tZWRpdW0tY29sbGFwc2UgPiAuY29sdW1uLCAubWVkaXVtLWNvbGxhcHNlID4gLmNvbHVtbnMge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwOyB9XG4gIC5tZWRpdW0tdW5jb2xsYXBzZSA+IC5jb2x1bW4sIC5tZWRpdW0tdW5jb2xsYXBzZSA+IC5jb2x1bW5zIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5sYXJnZS0xIHtcbiAgICBmbGV4OiAwIDAgOC4zMzMzMyU7XG4gICAgbWF4LXdpZHRoOiA4LjMzMzMzJTsgfVxuICAubGFyZ2Utb2Zmc2V0LTAge1xuICAgIG1hcmdpbi1sZWZ0OiAwJTsgfVxuICAubGFyZ2UtMiB7XG4gICAgZmxleDogMCAwIDE2LjY2NjY3JTtcbiAgICBtYXgtd2lkdGg6IDE2LjY2NjY3JTsgfVxuICAubGFyZ2Utb2Zmc2V0LTEge1xuICAgIG1hcmdpbi1sZWZ0OiA4LjMzMzMzJTsgfVxuICAubGFyZ2UtMyB7XG4gICAgZmxleDogMCAwIDI1JTtcbiAgICBtYXgtd2lkdGg6IDI1JTsgfVxuICAubGFyZ2Utb2Zmc2V0LTIge1xuICAgIG1hcmdpbi1sZWZ0OiAxNi42NjY2NyU7IH1cbiAgLmxhcmdlLTQge1xuICAgIGZsZXg6IDAgMCAzMy4zMzMzMyU7XG4gICAgbWF4LXdpZHRoOiAzMy4zMzMzMyU7IH1cbiAgLmxhcmdlLW9mZnNldC0zIHtcbiAgICBtYXJnaW4tbGVmdDogMjUlOyB9XG4gIC5sYXJnZS01IHtcbiAgICBmbGV4OiAwIDAgNDEuNjY2NjclO1xuICAgIG1heC13aWR0aDogNDEuNjY2NjclOyB9XG4gIC5sYXJnZS1vZmZzZXQtNCB7XG4gICAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMzJTsgfVxuICAubGFyZ2UtNiB7XG4gICAgZmxleDogMCAwIDUwJTtcbiAgICBtYXgtd2lkdGg6IDUwJTsgfVxuICAubGFyZ2Utb2Zmc2V0LTUge1xuICAgIG1hcmdpbi1sZWZ0OiA0MS42NjY2NyU7IH1cbiAgLmxhcmdlLTcge1xuICAgIGZsZXg6IDAgMCA1OC4zMzMzMyU7XG4gICAgbWF4LXdpZHRoOiA1OC4zMzMzMyU7IH1cbiAgLmxhcmdlLW9mZnNldC02IHtcbiAgICBtYXJnaW4tbGVmdDogNTAlOyB9XG4gIC5sYXJnZS04IHtcbiAgICBmbGV4OiAwIDAgNjYuNjY2NjclO1xuICAgIG1heC13aWR0aDogNjYuNjY2NjclOyB9XG4gIC5sYXJnZS1vZmZzZXQtNyB7XG4gICAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMzJTsgfVxuICAubGFyZ2UtOSB7XG4gICAgZmxleDogMCAwIDc1JTtcbiAgICBtYXgtd2lkdGg6IDc1JTsgfVxuICAubGFyZ2Utb2Zmc2V0LTgge1xuICAgIG1hcmdpbi1sZWZ0OiA2Ni42NjY2NyU7IH1cbiAgLmxhcmdlLTEwIHtcbiAgICBmbGV4OiAwIDAgODMuMzMzMzMlO1xuICAgIG1heC13aWR0aDogODMuMzMzMzMlOyB9XG4gIC5sYXJnZS1vZmZzZXQtOSB7XG4gICAgbWFyZ2luLWxlZnQ6IDc1JTsgfVxuICAubGFyZ2UtMTEge1xuICAgIGZsZXg6IDAgMCA5MS42NjY2NyU7XG4gICAgbWF4LXdpZHRoOiA5MS42NjY2NyU7IH1cbiAgLmxhcmdlLW9mZnNldC0xMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzJTsgfVxuICAubGFyZ2UtMTIge1xuICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgIG1heC13aWR0aDogMTAwJTsgfVxuICAubGFyZ2Utb2Zmc2V0LTExIHtcbiAgICBtYXJnaW4tbGVmdDogOTEuNjY2NjclOyB9XG4gIC5sYXJnZS1vcmRlci0xIHtcbiAgICBvcmRlcjogMTsgfVxuICAubGFyZ2Utb3JkZXItMiB7XG4gICAgb3JkZXI6IDI7IH1cbiAgLmxhcmdlLW9yZGVyLTMge1xuICAgIG9yZGVyOiAzOyB9XG4gIC5sYXJnZS1vcmRlci00IHtcbiAgICBvcmRlcjogNDsgfVxuICAubGFyZ2Utb3JkZXItNSB7XG4gICAgb3JkZXI6IDU7IH1cbiAgLmxhcmdlLW9yZGVyLTYge1xuICAgIG9yZGVyOiA2OyB9XG4gIC5sYXJnZS11cC0xIHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAubGFyZ2UtdXAtMSA+IC5jb2x1bW4sIC5sYXJnZS11cC0xID4gLmNvbHVtbnMge1xuICAgICAgZmxleDogMCAwIDEwMCU7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7IH1cbiAgLmxhcmdlLXVwLTIge1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIC5sYXJnZS11cC0yID4gLmNvbHVtbiwgLmxhcmdlLXVwLTIgPiAuY29sdW1ucyB7XG4gICAgICBmbGV4OiAwIDAgNTAlO1xuICAgICAgbWF4LXdpZHRoOiA1MCU7IH1cbiAgLmxhcmdlLXVwLTMge1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIC5sYXJnZS11cC0zID4gLmNvbHVtbiwgLmxhcmdlLXVwLTMgPiAuY29sdW1ucyB7XG4gICAgICBmbGV4OiAwIDAgMzMuMzMzMzMlO1xuICAgICAgbWF4LXdpZHRoOiAzMy4zMzMzMyU7IH1cbiAgLmxhcmdlLXVwLTQge1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIC5sYXJnZS11cC00ID4gLmNvbHVtbiwgLmxhcmdlLXVwLTQgPiAuY29sdW1ucyB7XG4gICAgICBmbGV4OiAwIDAgMjUlO1xuICAgICAgbWF4LXdpZHRoOiAyNSU7IH1cbiAgLmxhcmdlLXVwLTUge1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIC5sYXJnZS11cC01ID4gLmNvbHVtbiwgLmxhcmdlLXVwLTUgPiAuY29sdW1ucyB7XG4gICAgICBmbGV4OiAwIDAgMjAlO1xuICAgICAgbWF4LXdpZHRoOiAyMCU7IH1cbiAgLmxhcmdlLXVwLTYge1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIC5sYXJnZS11cC02ID4gLmNvbHVtbiwgLmxhcmdlLXVwLTYgPiAuY29sdW1ucyB7XG4gICAgICBmbGV4OiAwIDAgMTYuNjY2NjclO1xuICAgICAgbWF4LXdpZHRoOiAxNi42NjY2NyU7IH1cbiAgLmxhcmdlLXVwLTcge1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIC5sYXJnZS11cC03ID4gLmNvbHVtbiwgLmxhcmdlLXVwLTcgPiAuY29sdW1ucyB7XG4gICAgICBmbGV4OiAwIDAgMTQuMjg1NzElO1xuICAgICAgbWF4LXdpZHRoOiAxNC4yODU3MSU7IH1cbiAgLmxhcmdlLXVwLTgge1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIC5sYXJnZS11cC04ID4gLmNvbHVtbiwgLmxhcmdlLXVwLTggPiAuY29sdW1ucyB7XG4gICAgICBmbGV4OiAwIDAgMTIuNSU7XG4gICAgICBtYXgtd2lkdGg6IDEyLjUlOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkgYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmxhcmdlLWV4cGFuZCB7XG4gICAgZmxleDogMSAxIDBweDsgfSB9XG5cbi5yb3cubGFyZ2UtdW5zdGFjayA+IC5jb2x1bW4sIC5yb3cubGFyZ2UtdW5zdGFjayA+IC5jb2x1bW5zIHtcbiAgZmxleDogMCAwIDEwMCU7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5yb3cubGFyZ2UtdW5zdGFjayA+IC5jb2x1bW4sIC5yb3cubGFyZ2UtdW5zdGFjayA+IC5jb2x1bW5zIHtcbiAgICAgIGZsZXg6IDEgMSAwcHg7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5sYXJnZS1jb2xsYXBzZSA+IC5jb2x1bW4sIC5sYXJnZS1jb2xsYXBzZSA+IC5jb2x1bW5zIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgcGFkZGluZy1yaWdodDogMDsgfVxuICAubGFyZ2UtdW5jb2xsYXBzZSA+IC5jb2x1bW4sIC5sYXJnZS11bmNvbGxhcHNlID4gLmNvbHVtbnMge1xuICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTsgfSB9XG5cbi5zaHJpbmsge1xuICBmbGV4OiAwIDAgYXV0bztcbiAgbWF4LXdpZHRoOiAxMDAlOyB9XG5cbi5jb2x1bW4uYWxpZ24tdG9wLCAuYWxpZ24tdG9wLmNvbHVtbnMge1xuICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0OyB9XG5cbi5jb2x1bW4uYWxpZ24tYm90dG9tLCAuYWxpZ24tYm90dG9tLmNvbHVtbnMge1xuICBhbGlnbi1zZWxmOiBmbGV4LWVuZDsgfVxuXG4uY29sdW1uLmFsaWduLW1pZGRsZSwgLmFsaWduLW1pZGRsZS5jb2x1bW5zIHtcbiAgYWxpZ24tc2VsZjogY2VudGVyOyB9XG5cbi5jb2x1bW4uYWxpZ24tc3RyZXRjaCwgLmFsaWduLXN0cmV0Y2guY29sdW1ucyB7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7IH1cblxuZGl2LFxuZGwsXG5kdCxcbmRkLFxudWwsXG5vbCxcbmxpLFxuaDEsXG5oMixcbmgzLFxuaDQsXG5oNSxcbmg2LFxucHJlLFxuZm9ybSxcbnAsXG5ibG9ja3F1b3RlLFxudGgsXG50ZCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDsgfVxuXG5wIHtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBsaW5lLWhlaWdodDogMS42O1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5OyB9XG5cbmVtLFxuaSB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7IH1cblxuc3Ryb25nLFxuYiB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDsgfVxuXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlO1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDsgfVxuXG5oMSxcbmgyLFxuaDMsXG5oNCxcbmg1LFxuaDYge1xuICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIFJvYm90bywgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDsgfVxuICBoMSBzbWFsbCxcbiAgaDIgc21hbGwsXG4gIGgzIHNtYWxsLFxuICBoNCBzbWFsbCxcbiAgaDUgc21hbGwsXG4gIGg2IHNtYWxsIHtcbiAgICBjb2xvcjogI2NhY2FjYTtcbiAgICBsaW5lLWhlaWdodDogMDsgfVxuXG5oMSB7XG4gIGZvbnQtc2l6ZTogMS41cmVtOyB9XG5cbmgyIHtcbiAgZm9udC1zaXplOiAxLjI1cmVtOyB9XG5cbmgzIHtcbiAgZm9udC1zaXplOiAxLjE4NzVyZW07IH1cblxuaDQge1xuICBmb250LXNpemU6IDEuMTI1cmVtOyB9XG5cbmg1IHtcbiAgZm9udC1zaXplOiAxLjA2MjVyZW07IH1cblxuaDYge1xuICBmb250LXNpemU6IDFyZW07IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICBoMSB7XG4gICAgZm9udC1zaXplOiAzcmVtOyB9XG4gIGgyIHtcbiAgICBmb250LXNpemU6IDIuNXJlbTsgfVxuICBoMyB7XG4gICAgZm9udC1zaXplOiAxLjkzNzVyZW07IH1cbiAgaDQge1xuICAgIGZvbnQtc2l6ZTogMS41NjI1cmVtOyB9XG4gIGg1IHtcbiAgICBmb250LXNpemU6IDEuMjVyZW07IH1cbiAgaDYge1xuICAgIGZvbnQtc2l6ZTogMXJlbTsgfSB9XG5cbmEge1xuICBjb2xvcjogIzkyQjYzMTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIGE6aG92ZXIsIGE6Zm9jdXMge1xuICAgIGNvbG9yOiAjN2U5ZDJhOyB9XG4gIGEgaW1nIHtcbiAgICBib3JkZXI6IDA7IH1cblxuaHIge1xuICBtYXgtd2lkdGg6IDc1cmVtO1xuICBoZWlnaHQ6IDA7XG4gIGJvcmRlci1yaWdodDogMDtcbiAgYm9yZGVyLXRvcDogMDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjYWNhY2E7XG4gIGJvcmRlci1sZWZ0OiAwO1xuICBtYXJnaW46IDEuMjVyZW0gYXV0bztcbiAgY2xlYXI6IGJvdGg7IH1cblxudWwsXG5vbCxcbmRsIHtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgbGlzdC1zdHlsZS1wb3NpdGlvbjogb3V0c2lkZTsgfVxuXG5saSB7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDsgfVxuXG51bCB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogZGlzYztcbiAgbWFyZ2luLWxlZnQ6IDEuMjVyZW07IH1cblxub2wge1xuICBtYXJnaW4tbGVmdDogMS4yNXJlbTsgfVxuXG51bCB1bCwgb2wgdWwsIHVsIG9sLCBvbCBvbCB7XG4gIG1hcmdpbi1sZWZ0OiAxLjI1cmVtO1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbmRsIHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTsgfVxuICBkbCBkdCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMC4zcmVtO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbmJsb2NrcXVvdGUge1xuICBtYXJnaW46IDAgMCAxcmVtO1xuICBwYWRkaW5nOiAwLjU2MjVyZW0gMS4yNXJlbSAwIDEuMTg3NXJlbTtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2FjYWNhOyB9XG4gIGJsb2NrcXVvdGUsIGJsb2NrcXVvdGUgcCB7XG4gICAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgICBjb2xvcjogIzhhOGE4YTsgfVxuXG5jaXRlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMC44MTI1cmVtO1xuICBjb2xvcjogIzhhOGE4YTsgfVxuICBjaXRlOmJlZm9yZSB7XG4gICAgY29udGVudDogJ1xcMjAxNCBcXDAwMjAnOyB9XG5cbmFiYnIge1xuICBjb2xvcjogIzBhMGEwYTtcbiAgY3Vyc29yOiBoZWxwO1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICMwYTBhMGE7IH1cblxuY29kZSB7XG4gIGZvbnQtZmFtaWx5OiBDb25zb2xhcywgXCJMaWJlcmF0aW9uIE1vbm9cIiwgQ291cmllciwgbW9ub3NwYWNlO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBjb2xvcjogIzBhMGEwYTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNjtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NhY2FjYTtcbiAgcGFkZGluZzogMC4xMjVyZW0gMC4zMTI1cmVtIDAuMDYyNXJlbTsgfVxuXG5rYmQge1xuICBwYWRkaW5nOiAwLjEyNXJlbSAwLjI1cmVtIDA7XG4gIG1hcmdpbjogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNjtcbiAgY29sb3I6ICMwYTBhMGE7XG4gIGZvbnQtZmFtaWx5OiBDb25zb2xhcywgXCJMaWJlcmF0aW9uIE1vbm9cIiwgQ291cmllciwgbW9ub3NwYWNlOyB9XG5cbi5zdWJoZWFkZXIge1xuICBtYXJnaW4tdG9wOiAwLjJyZW07XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgY29sb3I6ICM4YThhOGE7IH1cblxuLmxlYWQge1xuICBmb250LXNpemU6IDEyNSU7XG4gIGxpbmUtaGVpZ2h0OiAxLjY7IH1cblxuLnN0YXQge1xuICBmb250LXNpemU6IDIuNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDE7IH1cbiAgcCArIC5zdGF0IHtcbiAgICBtYXJnaW4tdG9wOiAtMXJlbTsgfVxuXG4ubm8tYnVsbGV0IHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7IH1cblxuLnRleHQtbGVmdCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7IH1cblxuLnRleHQtcmlnaHQge1xuICB0ZXh0LWFsaWduOiByaWdodDsgfVxuXG4udGV4dC1jZW50ZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuLnRleHQtanVzdGlmeSB7XG4gIHRleHQtYWxpZ246IGp1c3RpZnk7IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAubWVkaXVtLXRleHQtbGVmdCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAubWVkaXVtLXRleHQtcmlnaHQge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9XG4gIC5tZWRpdW0tdGV4dC1jZW50ZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAubWVkaXVtLXRleHQtanVzdGlmeSB7XG4gICAgdGV4dC1hbGlnbjoganVzdGlmeTsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmxhcmdlLXRleHQtbGVmdCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAubGFyZ2UtdGV4dC1yaWdodCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgLmxhcmdlLXRleHQtY2VudGVyIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLmxhcmdlLXRleHQtanVzdGlmeSB7XG4gICAgdGV4dC1hbGlnbjoganVzdGlmeTsgfSB9XG5cbi5zaG93LWZvci1wcmludCB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG5AbWVkaWEgcHJpbnQge1xuICAqIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiBibGFjayAhaW1wb3J0YW50O1xuICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICB0ZXh0LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50OyB9XG4gIC5zaG93LWZvci1wcmludCB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfVxuICAuaGlkZS1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuICB0YWJsZS5zaG93LWZvci1wcmludCB7XG4gICAgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDsgfVxuICB0aGVhZC5zaG93LWZvci1wcmludCB7XG4gICAgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgdGJvZHkuc2hvdy1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IHRhYmxlLXJvdy1ncm91cCAhaW1wb3J0YW50OyB9XG4gIHRyLnNob3ctZm9yLXByaW50IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1yb3cgIWltcG9ydGFudDsgfVxuICB0ZC5zaG93LWZvci1wcmludCB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG4gIHRoLnNob3ctZm9yLXByaW50IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cbiAgYSxcbiAgYTp2aXNpdGVkIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuICBhW2hyZWZdOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIiAoXCIgYXR0cihocmVmKSBcIilcIjsgfVxuICAuaXIgYTphZnRlcixcbiAgYVtocmVmXj0namF2YXNjcmlwdDonXTphZnRlcixcbiAgYVtocmVmXj0nIyddOmFmdGVyIHtcbiAgICBjb250ZW50OiAnJzsgfVxuICBhYmJyW3RpdGxlXTphZnRlciB7XG4gICAgY29udGVudDogXCIgKFwiIGF0dHIodGl0bGUpIFwiKVwiOyB9XG4gIHByZSxcbiAgYmxvY2txdW90ZSB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzhhOGE4YTtcbiAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7IH1cbiAgdGhlYWQge1xuICAgIGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cDsgfVxuICB0cixcbiAgaW1nIHtcbiAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7IH1cbiAgaW1nIHtcbiAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfVxuICBAcGFnZSB7XG4gICAgbWFyZ2luOiAwLjVjbTsgfVxuICBwLFxuICBoMixcbiAgaDMge1xuICAgIG9ycGhhbnM6IDM7XG4gICAgd2lkb3dzOiAzOyB9XG4gIGgyLFxuICBoMyB7XG4gICAgcGFnZS1icmVhay1hZnRlcjogYXZvaWQ7IH0gfVxuXG4uYnV0dG9uIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjI1cyBlYXNlLW91dCwgY29sb3IgMC4yNXMgZWFzZS1vdXQ7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBwYWRkaW5nOiAwLjg1ZW0gMWVtO1xuICBtYXJnaW46IDAgMCAxcmVtIDA7XG4gIGZvbnQtc2l6ZTogMC45cmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTJCNjMxO1xuICBjb2xvcjogI2ZlZmVmZTsgfVxuICBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gLmJ1dHRvbiB7XG4gICAgb3V0bGluZTogMDsgfVxuICAuYnV0dG9uOmhvdmVyLCAuYnV0dG9uOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjN2M5YjJhO1xuICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gIC5idXR0b24udGlueSB7XG4gICAgZm9udC1zaXplOiAwLjZyZW07IH1cbiAgLmJ1dHRvbi5zbWFsbCB7XG4gICAgZm9udC1zaXplOiAwLjc1cmVtOyB9XG4gIC5idXR0b24ubGFyZ2Uge1xuICAgIGZvbnQtc2l6ZTogMS4yNXJlbTsgfVxuICAuYnV0dG9uLmV4cGFuZGVkIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgLmJ1dHRvbi5wcmltYXJ5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTJCNjMxO1xuICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gICAgLmJ1dHRvbi5wcmltYXJ5OmhvdmVyLCAuYnV0dG9uLnByaW1hcnk6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzc1OTIyNztcbiAgICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gIC5idXR0b24uc2Vjb25kYXJ5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzc3O1xuICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gICAgLmJ1dHRvbi5zZWNvbmRhcnk6aG92ZXIsIC5idXR0b24uc2Vjb25kYXJ5OmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM1ZjVmNWY7XG4gICAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAuYnV0dG9uLnN1Y2Nlc3Mge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMzYWRiNzY7XG4gICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgICAuYnV0dG9uLnN1Y2Nlc3M6aG92ZXIsIC5idXR0b24uc3VjY2Vzczpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjJiYjViO1xuICAgICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgLmJ1dHRvbi53YXJuaW5nIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZhZTAwO1xuICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gICAgLmJ1dHRvbi53YXJuaW5nOmhvdmVyLCAuYnV0dG9uLndhcm5pbmc6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2NjOGIwMDtcbiAgICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gIC5idXR0b24uYWxlcnQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlYzU4NDA7XG4gICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgICAuYnV0dG9uLmFsZXJ0OmhvdmVyLCAuYnV0dG9uLmFsZXJ0OmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNkYTMxMTY7XG4gICAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAuYnV0dG9uLmhvbGxvdyB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzkyQjYzMTtcbiAgICBjb2xvcjogIzkyQjYzMTsgfVxuICAgIC5idXR0b24uaG9sbG93LCAuYnV0dG9uLmhvbGxvdzpob3ZlciwgLmJ1dHRvbi5ob2xsb3c6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgICAuYnV0dG9uLmhvbGxvdzpob3ZlciwgLmJ1dHRvbi5ob2xsb3c6Zm9jdXMge1xuICAgICAgYm9yZGVyLWNvbG9yOiAjNDk1YjE5O1xuICAgICAgY29sb3I6ICM0OTViMTk7IH1cbiAgICAuYnV0dG9uLmhvbGxvdy5wcmltYXJ5IHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICM5MkI2MzE7XG4gICAgICBjb2xvcjogIzkyQjYzMTsgfVxuICAgICAgLmJ1dHRvbi5ob2xsb3cucHJpbWFyeTpob3ZlciwgLmJ1dHRvbi5ob2xsb3cucHJpbWFyeTpmb2N1cyB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogIzQ5NWIxOTtcbiAgICAgICAgY29sb3I6ICM0OTViMTk7IH1cbiAgICAuYnV0dG9uLmhvbGxvdy5zZWNvbmRhcnkge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgIzc3NztcbiAgICAgIGNvbG9yOiAjNzc3OyB9XG4gICAgICAuYnV0dG9uLmhvbGxvdy5zZWNvbmRhcnk6aG92ZXIsIC5idXR0b24uaG9sbG93LnNlY29uZGFyeTpmb2N1cyB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogIzNjM2MzYztcbiAgICAgICAgY29sb3I6ICMzYzNjM2M7IH1cbiAgICAuYnV0dG9uLmhvbGxvdy5zdWNjZXNzIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMzYWRiNzY7XG4gICAgICBjb2xvcjogIzNhZGI3NjsgfVxuICAgICAgLmJ1dHRvbi5ob2xsb3cuc3VjY2Vzczpob3ZlciwgLmJ1dHRvbi5ob2xsb3cuc3VjY2Vzczpmb2N1cyB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogIzE1NzUzOTtcbiAgICAgICAgY29sb3I6ICMxNTc1Mzk7IH1cbiAgICAuYnV0dG9uLmhvbGxvdy53YXJuaW5nIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNmZmFlMDA7XG4gICAgICBjb2xvcjogI2ZmYWUwMDsgfVxuICAgICAgLmJ1dHRvbi5ob2xsb3cud2FybmluZzpob3ZlciwgLmJ1dHRvbi5ob2xsb3cud2FybmluZzpmb2N1cyB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogIzgwNTcwMDtcbiAgICAgICAgY29sb3I6ICM4MDU3MDA7IH1cbiAgICAuYnV0dG9uLmhvbGxvdy5hbGVydCB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjZWM1ODQwO1xuICAgICAgY29sb3I6ICNlYzU4NDA7IH1cbiAgICAgIC5idXR0b24uaG9sbG93LmFsZXJ0OmhvdmVyLCAuYnV0dG9uLmhvbGxvdy5hbGVydDpmb2N1cyB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogIzg4MWYwZTtcbiAgICAgICAgY29sb3I6ICM4ODFmMGU7IH1cbiAgLmJ1dHRvbi5kaXNhYmxlZCwgLmJ1dHRvbltkaXNhYmxlZF0ge1xuICAgIG9wYWNpdHk6IDAuMjU7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDsgfVxuICAgIC5idXR0b24uZGlzYWJsZWQ6aG92ZXIsIC5idXR0b24uZGlzYWJsZWQ6Zm9jdXMsIC5idXR0b25bZGlzYWJsZWRdOmhvdmVyLCAuYnV0dG9uW2Rpc2FibGVkXTpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTJCNjMxO1xuICAgICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgLmJ1dHRvbi5kcm9wZG93bjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXI6IGluc2V0IDAuNGVtO1xuICAgIGJvcmRlci1jb2xvcjogI2ZlZmVmZSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDAuNGVtO1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBtYXJnaW4tbGVmdDogMWVtO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuICAuYnV0dG9uLmFycm93LW9ubHk6OmFmdGVyIHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBmbG9hdDogbm9uZTtcbiAgICB0b3A6IC0wLjFlbTsgfVxuXG5bdHlwZT0ndGV4dCddLCBbdHlwZT0ncGFzc3dvcmQnXSwgW3R5cGU9J2RhdGUnXSwgW3R5cGU9J2RhdGV0aW1lJ10sIFt0eXBlPSdkYXRldGltZS1sb2NhbCddLCBbdHlwZT0nbW9udGgnXSwgW3R5cGU9J3dlZWsnXSwgW3R5cGU9J2VtYWlsJ10sIFt0eXBlPSdudW1iZXInXSwgW3R5cGU9J3NlYXJjaCddLCBbdHlwZT0ndGVsJ10sIFt0eXBlPSd0aW1lJ10sIFt0eXBlPSd1cmwnXSwgW3R5cGU9J2NvbG9yJ10sXG50ZXh0YXJlYSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAyLjQzNzVyZW07XG4gIHBhZGRpbmc6IDAuNXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NhY2FjYTtcbiAgbWFyZ2luOiAwIDAgMXJlbTtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgY29sb3I6ICMwYTBhMGE7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDJweCByZ2JhKDEwLCAxMCwgMTAsIDAuMSk7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC41cywgYm9yZGVyLWNvbG9yIDAuMjVzIGVhc2UtaW4tb3V0O1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC1tb3otYXBwZWFyYW5jZTogbm9uZTsgfVxuICBbdHlwZT0ndGV4dCddOmZvY3VzLCBbdHlwZT0ncGFzc3dvcmQnXTpmb2N1cywgW3R5cGU9J2RhdGUnXTpmb2N1cywgW3R5cGU9J2RhdGV0aW1lJ106Zm9jdXMsIFt0eXBlPSdkYXRldGltZS1sb2NhbCddOmZvY3VzLCBbdHlwZT0nbW9udGgnXTpmb2N1cywgW3R5cGU9J3dlZWsnXTpmb2N1cywgW3R5cGU9J2VtYWlsJ106Zm9jdXMsIFt0eXBlPSdudW1iZXInXTpmb2N1cywgW3R5cGU9J3NlYXJjaCddOmZvY3VzLCBbdHlwZT0ndGVsJ106Zm9jdXMsIFt0eXBlPSd0aW1lJ106Zm9jdXMsIFt0eXBlPSd1cmwnXTpmb2N1cywgW3R5cGU9J2NvbG9yJ106Zm9jdXMsXG4gIHRleHRhcmVhOmZvY3VzIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjOGE4YThhO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBib3gtc2hhZG93OiAwIDAgNXB4ICNjYWNhY2E7XG4gICAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjVzLCBib3JkZXItY29sb3IgMC4yNXMgZWFzZS1pbi1vdXQ7IH1cblxudGV4dGFyZWEge1xuICBtYXgtd2lkdGg6IDEwMCU7IH1cbiAgdGV4dGFyZWFbcm93c10ge1xuICAgIGhlaWdodDogYXV0bzsgfVxuXG5pbnB1dDo6cGxhY2Vob2xkZXIsXG50ZXh0YXJlYTo6cGxhY2Vob2xkZXIge1xuICBjb2xvcjogI2NhY2FjYTsgfVxuXG5pbnB1dDpkaXNhYmxlZCwgaW5wdXRbcmVhZG9ubHldLFxudGV4dGFyZWE6ZGlzYWJsZWQsXG50ZXh0YXJlYVtyZWFkb25seV0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlNmU2O1xuICBjdXJzb3I6IGRlZmF1bHQ7IH1cblxuW3R5cGU9J3N1Ym1pdCddLFxuW3R5cGU9J2J1dHRvbiddIHtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7IH1cblxuaW5wdXRbdHlwZT0nc2VhcmNoJ10ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG5cblt0eXBlPSdmaWxlJ10sXG5bdHlwZT0nY2hlY2tib3gnXSxcblt0eXBlPSdyYWRpbyddIHtcbiAgbWFyZ2luOiAwIDAgMXJlbTsgfVxuXG5bdHlwZT0nY2hlY2tib3gnXSArIGxhYmVsLFxuW3R5cGU9J3JhZGlvJ10gKyBsYWJlbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IH1cbiAgW3R5cGU9J2NoZWNrYm94J10gKyBsYWJlbFtmb3JdLFxuICBbdHlwZT0ncmFkaW8nXSArIGxhYmVsW2Zvcl0ge1xuICAgIGN1cnNvcjogcG9pbnRlcjsgfVxuXG5sYWJlbCA+IFt0eXBlPSdjaGVja2JveCddLFxubGFiZWwgPiBbdHlwZT0ncmFkaW8nXSB7XG4gIG1hcmdpbi1yaWdodDogMC41cmVtOyB9XG5cblt0eXBlPSdmaWxlJ10ge1xuICB3aWR0aDogMTAwJTsgfVxuXG5sYWJlbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDA7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxLjg7XG4gIGNvbG9yOiAjMGEwYTBhOyB9XG4gIGxhYmVsLm1pZGRsZSB7XG4gICAgbWFyZ2luOiAwIDAgMXJlbTtcbiAgICBwYWRkaW5nOiAwLjU2MjVyZW0gMDsgfVxuXG4uaGVscC10ZXh0IHtcbiAgbWFyZ2luLXRvcDogLTAuNXJlbTtcbiAgZm9udC1zaXplOiAwLjgxMjVyZW07XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgY29sb3I6ICMwYTBhMGE7IH1cblxuLmlucHV0LWdyb3VwIHtcbiAgZGlzcGxheTogdGFibGU7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtOyB9XG4gIC5pbnB1dC1ncm91cCA+IDpmaXJzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXJhZGl1czogMCAwIDAgMDsgfVxuICAuaW5wdXQtZ3JvdXAgPiA6bGFzdC1jaGlsZCA+ICoge1xuICAgIGJvcmRlci1yYWRpdXM6IDAgMCAwIDA7IH1cblxuLmlucHV0LWdyb3VwLWxhYmVsLCAuaW5wdXQtZ3JvdXAtZmllbGQsIC5pbnB1dC1ncm91cC1idXR0b24ge1xuICBtYXJnaW46IDA7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cblxuLmlucHV0LWdyb3VwLWxhYmVsIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nOiAwIDFyZW07XG4gIGJhY2tncm91bmQ6ICNlNmU2ZTY7XG4gIGNvbG9yOiAjMGEwYTBhO1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2FjYWNhO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB3aWR0aDogMSU7XG4gIGhlaWdodDogMTAwJTsgfVxuICAuaW5wdXQtZ3JvdXAtbGFiZWw6Zmlyc3QtY2hpbGQge1xuICAgIGJvcmRlci1yaWdodDogMDsgfVxuICAuaW5wdXQtZ3JvdXAtbGFiZWw6bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLWxlZnQ6IDA7IH1cblxuLmlucHV0LWdyb3VwLWZpZWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgaGVpZ2h0OiAyLjVyZW07IH1cblxuLmlucHV0LWdyb3VwLWJ1dHRvbiB7XG4gIHBhZGRpbmctdG9wOiAwO1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiAxJTsgfVxuICAuaW5wdXQtZ3JvdXAtYnV0dG9uIGEsXG4gIC5pbnB1dC1ncm91cC1idXR0b24gaW5wdXQsXG4gIC5pbnB1dC1ncm91cC1idXR0b24gYnV0dG9uIHtcbiAgICBtYXJnaW46IDA7IH1cblxuLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1idXR0b24ge1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsOyB9XG5cbmZpZWxkc2V0IHtcbiAgYm9yZGVyOiAwO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7IH1cblxubGVnZW5kIHtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICBtYXgtd2lkdGg6IDEwMCU7IH1cblxuLmZpZWxkc2V0IHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NhY2FjYTtcbiAgcGFkZGluZzogMS4yNXJlbTtcbiAgbWFyZ2luOiAxLjEyNXJlbSAwOyB9XG4gIC5maWVsZHNldCBsZWdlbmQge1xuICAgIGJhY2tncm91bmQ6ICNmZWZlZmU7XG4gICAgcGFkZGluZzogMCAwLjE4NzVyZW07XG4gICAgbWFyZ2luOiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAtMC4xODc1cmVtOyB9XG5cbnNlbGVjdCB7XG4gIGhlaWdodDogMi40Mzc1cmVtO1xuICBwYWRkaW5nOiAwLjVyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjYWNhY2E7XG4gIG1hcmdpbjogMCAwIDFyZW07XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gIGNvbG9yOiAjMGEwYTBhO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmZWZlO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZlcnNpb249JzEuMScgd2lkdGg9JzMyJyBoZWlnaHQ9JzI0JyB2aWV3Qm94PScwIDAgMzIgMjQnPjxwb2x5Z29uIHBvaW50cz0nMCwwIDMyLDAgMTYsMjQnIHN0eWxlPSdmaWxsOiByZ2IlMjgxMzgsIDEzOCwgMTM4JTI5Jz48L3BvbHlnb24+PC9zdmc+XCIpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDlweCA2cHg7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IC0xcmVtIGNlbnRlcjtcbiAgYmFja2dyb3VuZC1vcmlnaW46IGNvbnRlbnQtYm94O1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMFxcMCkge1xuICAgIHNlbGVjdCB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUNBQUFBQVlDQVlBQUFDYlUvODBBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQUlwSlJFRlVlTnJFa2NrTmdEQU1CQmZSa0V0ME9iUkJCZHNHWFVEZ21RZks0WGhIMm04Y3pRQUF5MjdSM3RzdzRRZmUyeDh1T082b1lMYjZHbE9vcjNHRitzd1VSQU9tVUorUnd0RUpzOVd2VEdFWXhCWHFJMU1RQVpoQ2ZVUUtSekRNVmorVHdyQUlWNmp2U1VFa1lBcjFMU2tjeVRCYi9WK0tZZlg3eEFldXNxM3NMRHRHSDNrRUdBQ1BXSWZsTlpmaFJRQUFBQUJKUlU1RXJrSmdnZz09XCIpOyB9IH1cbiAgc2VsZWN0OmRpc2FibGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlNmU2O1xuICAgIGN1cnNvcjogZGVmYXVsdDsgfVxuICBzZWxlY3Q6Oi1tcy1leHBhbmQge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgc2VsZWN0W211bHRpcGxlXSB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7IH1cblxuLmlzLWludmFsaWQtaW5wdXQ6bm90KDpmb2N1cykge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIzNiwgODgsIDY0LCAwLjEpO1xuICBib3JkZXItY29sb3I6ICNlYzU4NDA7IH1cblxuLmlzLWludmFsaWQtbGFiZWwge1xuICBjb2xvcjogI2VjNTg0MDsgfVxuXG4uZm9ybS1lcnJvciB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIG1hcmdpbi10b3A6IC0wLjVyZW07XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiAjZWM1ODQwOyB9XG4gIC5mb3JtLWVycm9yLmlzLXZpc2libGUge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG5cbmlucHV0W3R5cGU9XCJyYW5nZVwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBtYXJnaW4tdG9wOiAwLjQ1cmVtO1xuICBtYXJnaW4tYm90dG9tOiAwLjQ1cmVtO1xuICBib3JkZXI6IDA7XG4gIGxpbmUtaGVpZ2h0OiAxOyB9XG4gIGlucHV0W3R5cGU9XCJyYW5nZVwiXTpmb2N1cyB7XG4gICAgb3V0bGluZTogMDsgfVxuICBpbnB1dFt0eXBlPVwicmFuZ2VcIl1bZGlzYWJsZWRdIHtcbiAgICBvcGFjaXR5OiAwLjI1OyB9XG4gIGlucHV0W3R5cGU9XCJyYW5nZVwiXTo6LXdlYmtpdC1zbGlkZXItcnVubmFibGUtdHJhY2sge1xuICAgIGhlaWdodDogMC41cmVtO1xuICAgIGJhY2tncm91bmQ6ICNlNmU2ZTY7IH1cbiAgaW5wdXRbdHlwZT1cInJhbmdlXCJdOjotd2Via2l0LXNsaWRlci1oYW5kbGUge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiAjOTJCNjMxO1xuICAgIHdpZHRoOiAxLjRyZW07XG4gICAgaGVpZ2h0OiAxLjRyZW07XG4gICAgbWFyZ2luLXRvcDogLTAuNDVyZW07IH1cbiAgaW5wdXRbdHlwZT1cInJhbmdlXCJdOjotbW96LXJhbmdlLXRyYWNrIHtcbiAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgYmFja2dyb3VuZDogI2U2ZTZlNjsgfVxuICBpbnB1dFt0eXBlPVwicmFuZ2VcIl06Oi1tb3otcmFuZ2UtdGh1bWIge1xuICAgIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiAjOTJCNjMxO1xuICAgIHdpZHRoOiAxLjRyZW07XG4gICAgaGVpZ2h0OiAxLjRyZW07XG4gICAgbWFyZ2luLXRvcDogLTAuNDVyZW07IH1cbiAgaW5wdXRbdHlwZT1cInJhbmdlXCJdOjotbXMtdHJhY2sge1xuICAgIGhlaWdodDogMC41cmVtO1xuICAgIGJhY2tncm91bmQ6ICNlNmU2ZTY7XG4gICAgY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlcjogMDtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICBib3JkZXItdG9wOiAwLjQ1cmVtIHNvbGlkICNmZWZlZmU7XG4gICAgYm9yZGVyLWJvdHRvbTogMC40NXJlbSBzb2xpZCAjZmVmZWZlOyB9XG4gIGlucHV0W3R5cGU9XCJyYW5nZVwiXTo6LW1zLXRodW1iIHtcbiAgICBiYWNrZ3JvdW5kOiAjOTJCNjMxO1xuICAgIHdpZHRoOiAxLjRyZW07XG4gICAgaGVpZ2h0OiAxLjRyZW07XG4gICAgYm9yZGVyOiAwOyB9XG4gIGlucHV0W3R5cGU9XCJyYW5nZVwiXTo6LW1zLWZpbGwtbG93ZXIge1xuICAgIGJhY2tncm91bmQ6ICNjYWNhY2E7IH1cbiAgaW5wdXRbdHlwZT1cInJhbmdlXCJdOjotbXMtZmlsbC11cHBlciB7XG4gICAgYmFja2dyb3VuZDogI2U2ZTZlNjsgfVxuICBvdXRwdXQge1xuICAgIGxpbmUtaGVpZ2h0OiAxLjRyZW07XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBtYXJnaW4tbGVmdDogMC41ZW07IH1cblxuLmFjY29yZGlvbiB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgYmFja2dyb3VuZDogI2ZlZmVmZTtcbiAgbWFyZ2luLWxlZnQ6IDA7IH1cblxuLmFjY29yZGlvbi1pdGVtOmZpcnN0LWNoaWxkID4gOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMCAwIDAgMDsgfVxuXG4uYWNjb3JkaW9uLWl0ZW06bGFzdC1jaGlsZCA+IDpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMCAwIDAgMDsgfVxuXG4uYWNjb3JkaW9uLXRpdGxlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDEuMjVyZW0gMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgY29sb3I6ICM5MkI2MzE7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2U2ZTZlNjtcbiAgYm9yZGVyLWJvdHRvbTogMDsgfVxuICA6bGFzdC1jaGlsZDpub3QoLmlzLWFjdGl2ZSkgPiAuYWNjb3JkaW9uLXRpdGxlIHtcbiAgICBib3JkZXItcmFkaXVzOiAwIDAgMCAwO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTZlNmU2OyB9XG4gIC5hY2NvcmRpb24tdGl0bGU6aG92ZXIsIC5hY2NvcmRpb24tdGl0bGU6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlNmU2ZTY7IH1cbiAgLmFjY29yZGlvbi10aXRsZTo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnKyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAxcmVtO1xuICAgIHRvcDogNTAlO1xuICAgIG1hcmdpbi10b3A6IC0wLjVyZW07IH1cbiAgLmlzLWFjdGl2ZSA+IC5hY2NvcmRpb24tdGl0bGU6OmJlZm9yZSB7XG4gICAgY29udGVudDogJ+KAkyc7IH1cblxuLmFjY29yZGlvbi1jb250ZW50IHtcbiAgcGFkZGluZzogMXJlbTtcbiAgZGlzcGxheTogbm9uZTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2U2ZTZlNjtcbiAgYm9yZGVyLWJvdHRvbTogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTtcbiAgY29sb3I6ICM5MkI2MzE7IH1cbiAgOmxhc3QtY2hpbGQgPiAuYWNjb3JkaW9uLWNvbnRlbnQ6bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlNmU2ZTY7IH1cblxuLmlzLWFjY29yZGlvbi1zdWJtZW51LXBhcmVudCA+IGEge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLmlzLWFjY29yZGlvbi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiBpbnNldCA2cHg7XG4gICAgYm9yZGVyLWNvbG9yOiAjOTJCNjMxIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci10b3Atc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIG1hcmdpbi10b3A6IC00cHg7XG4gICAgcmlnaHQ6IDFyZW07IH1cblxuLmlzLWFjY29yZGlvbi1zdWJtZW51LXBhcmVudFthcmlhLWV4cGFuZGVkPSd0cnVlJ10gPiBhOjphZnRlciB7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCU7XG4gIHRyYW5zZm9ybTogc2NhbGVZKC0xKTsgfVxuXG4uYmFkZ2Uge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDAuM2VtO1xuICBtaW4td2lkdGg6IDIuMWVtO1xuICBmb250LXNpemU6IDAuNnJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJhY2tncm91bmQ6ICM5MkI2MzE7XG4gIGNvbG9yOiAjZmVmZWZlOyB9XG4gIC5iYWRnZS5zZWNvbmRhcnkge1xuICAgIGJhY2tncm91bmQ6ICM3Nzc7XG4gICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgLmJhZGdlLnN1Y2Nlc3Mge1xuICAgIGJhY2tncm91bmQ6ICMzYWRiNzY7XG4gICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgLmJhZGdlLndhcm5pbmcge1xuICAgIGJhY2tncm91bmQ6ICNmZmFlMDA7XG4gICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgLmJhZGdlLmFsZXJ0IHtcbiAgICBiYWNrZ3JvdW5kOiAjZWM1ODQwO1xuICAgIGNvbG9yOiAjZmVmZWZlOyB9XG5cbi5icmVhZGNydW1icyB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbjogMCAwIDFyZW0gMDsgfVxuICAuYnJlYWRjcnVtYnM6OmJlZm9yZSwgLmJyZWFkY3J1bWJzOjphZnRlciB7XG4gICAgY29udGVudDogJyAnO1xuICAgIGRpc3BsYXk6IHRhYmxlOyB9XG4gIC5icmVhZGNydW1iczo6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC5icmVhZGNydW1icyBsaSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgY29sb3I6ICMwYTBhMGE7XG4gICAgZm9udC1zaXplOiAwLjY4NzVyZW07XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbiAgICAuYnJlYWRjcnVtYnMgbGk6bm90KDpsYXN0LWNoaWxkKTo6YWZ0ZXIge1xuICAgICAgY29sb3I6ICNjYWNhY2E7XG4gICAgICBjb250ZW50OiBcIi9cIjtcbiAgICAgIG1hcmdpbjogMCAwLjc1cmVtO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgdG9wOiAxcHg7XG4gICAgICBvcGFjaXR5OiAxOyB9XG4gIC5icmVhZGNydW1icyBhIHtcbiAgICBjb2xvcjogIzkyQjYzMTsgfVxuICAgIC5icmVhZGNydW1icyBhOmhvdmVyIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG4gIC5icmVhZGNydW1icyAuZGlzYWJsZWQge1xuICAgIGNvbG9yOiAjY2FjYWNhO1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7IH1cblxuLmJ1dHRvbi1ncm91cCB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGZvbnQtc2l6ZTogMDsgfVxuICAuYnV0dG9uLWdyb3VwOjpiZWZvcmUsIC5idXR0b24tZ3JvdXA6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnICc7XG4gICAgZGlzcGxheTogdGFibGU7IH1cbiAgLmJ1dHRvbi1ncm91cDo6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC5idXR0b24tZ3JvdXAgLmJ1dHRvbiB7XG4gICAgbWFyZ2luOiAwO1xuICAgIG1hcmdpbi1yaWdodDogMXB4O1xuICAgIG1hcmdpbi1ib3R0b206IDFweDtcbiAgICBmb250LXNpemU6IDAuOXJlbTsgfVxuICAgIC5idXR0b24tZ3JvdXAgLmJ1dHRvbjpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDsgfVxuICAuYnV0dG9uLWdyb3VwLnRpbnkgLmJ1dHRvbiB7XG4gICAgZm9udC1zaXplOiAwLjZyZW07IH1cbiAgLmJ1dHRvbi1ncm91cC5zbWFsbCAuYnV0dG9uIHtcbiAgICBmb250LXNpemU6IDAuNzVyZW07IH1cbiAgLmJ1dHRvbi1ncm91cC5sYXJnZSAuYnV0dG9uIHtcbiAgICBmb250LXNpemU6IDEuMjVyZW07IH1cbiAgLmJ1dHRvbi1ncm91cC5leHBhbmRlZCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAtMXB4OyB9XG4gICAgLmJ1dHRvbi1ncm91cC5leHBhbmRlZDo6YmVmb3JlLCAuYnV0dG9uLWdyb3VwLmV4cGFuZGVkOjphZnRlciB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLmJ1dHRvbi1ncm91cC5leHBhbmRlZCAuYnV0dG9uOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKDIpLCAuYnV0dG9uLWdyb3VwLmV4cGFuZGVkIC5idXR0b246Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoMik6Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoMikgfiAuYnV0dG9uIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHdpZHRoOiBjYWxjKDUwJSAtIDFweCk7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDFweDsgfVxuICAgICAgLmJ1dHRvbi1ncm91cC5leHBhbmRlZCAuYnV0dG9uOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKDIpOmxhc3QtY2hpbGQsIC5idXR0b24tZ3JvdXAuZXhwYW5kZWQgLmJ1dHRvbjpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCgyKTpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCgyKSB+IC5idXR0b246bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogLTZweDsgfVxuICAgIC5idXR0b24tZ3JvdXAuZXhwYW5kZWQgLmJ1dHRvbjpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCgzKSwgLmJ1dHRvbi1ncm91cC5leHBhbmRlZCAuYnV0dG9uOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKDMpOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKDMpIH4gLmJ1dHRvbiB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB3aWR0aDogY2FsYygzMy4zMzMzMyUgLSAxcHgpO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxcHg7IH1cbiAgICAgIC5idXR0b24tZ3JvdXAuZXhwYW5kZWQgLmJ1dHRvbjpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCgzKTpsYXN0LWNoaWxkLCAuYnV0dG9uLWdyb3VwLmV4cGFuZGVkIC5idXR0b246Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoMyk6Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoMykgfiAuYnV0dG9uOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IC02cHg7IH1cbiAgICAuYnV0dG9uLWdyb3VwLmV4cGFuZGVkIC5idXR0b246Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoNCksIC5idXR0b24tZ3JvdXAuZXhwYW5kZWQgLmJ1dHRvbjpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCg0KTpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCg0KSB+IC5idXR0b24ge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgd2lkdGg6IGNhbGMoMjUlIC0gMXB4KTtcbiAgICAgIG1hcmdpbi1yaWdodDogMXB4OyB9XG4gICAgICAuYnV0dG9uLWdyb3VwLmV4cGFuZGVkIC5idXR0b246Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoNCk6bGFzdC1jaGlsZCwgLmJ1dHRvbi1ncm91cC5leHBhbmRlZCAuYnV0dG9uOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKDQpOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKDQpIH4gLmJ1dHRvbjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtNnB4OyB9XG4gICAgLmJ1dHRvbi1ncm91cC5leHBhbmRlZCAuYnV0dG9uOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKDUpLCAuYnV0dG9uLWdyb3VwLmV4cGFuZGVkIC5idXR0b246Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoNSk6Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoNSkgfiAuYnV0dG9uIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHdpZHRoOiBjYWxjKDIwJSAtIDFweCk7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDFweDsgfVxuICAgICAgLmJ1dHRvbi1ncm91cC5leHBhbmRlZCAuYnV0dG9uOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKDUpOmxhc3QtY2hpbGQsIC5idXR0b24tZ3JvdXAuZXhwYW5kZWQgLmJ1dHRvbjpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCg1KTpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCg1KSB+IC5idXR0b246bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogLTZweDsgfVxuICAgIC5idXR0b24tZ3JvdXAuZXhwYW5kZWQgLmJ1dHRvbjpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCg2KSwgLmJ1dHRvbi1ncm91cC5leHBhbmRlZCAuYnV0dG9uOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKDYpOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKDYpIH4gLmJ1dHRvbiB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB3aWR0aDogY2FsYygxNi42NjY2NyUgLSAxcHgpO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxcHg7IH1cbiAgICAgIC5idXR0b24tZ3JvdXAuZXhwYW5kZWQgLmJ1dHRvbjpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCg2KTpsYXN0LWNoaWxkLCAuYnV0dG9uLWdyb3VwLmV4cGFuZGVkIC5idXR0b246Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoNik6Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoNikgfiAuYnV0dG9uOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IC02cHg7IH1cbiAgLmJ1dHRvbi1ncm91cC5wcmltYXJ5IC5idXR0b24ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM5MkI2MzE7XG4gICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgICAuYnV0dG9uLWdyb3VwLnByaW1hcnkgLmJ1dHRvbjpob3ZlciwgLmJ1dHRvbi1ncm91cC5wcmltYXJ5IC5idXR0b246Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzc1OTIyNztcbiAgICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gIC5idXR0b24tZ3JvdXAuc2Vjb25kYXJ5IC5idXR0b24ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM3Nzc7XG4gICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgICAuYnV0dG9uLWdyb3VwLnNlY29uZGFyeSAuYnV0dG9uOmhvdmVyLCAuYnV0dG9uLWdyb3VwLnNlY29uZGFyeSAuYnV0dG9uOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM1ZjVmNWY7XG4gICAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAuYnV0dG9uLWdyb3VwLnN1Y2Nlc3MgLmJ1dHRvbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzNhZGI3NjtcbiAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAgIC5idXR0b24tZ3JvdXAuc3VjY2VzcyAuYnV0dG9uOmhvdmVyLCAuYnV0dG9uLWdyb3VwLnN1Y2Nlc3MgLmJ1dHRvbjpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjJiYjViO1xuICAgICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgLmJ1dHRvbi1ncm91cC53YXJuaW5nIC5idXR0b24ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmFlMDA7XG4gICAgY29sb3I6ICNmZWZlZmU7IH1cbiAgICAuYnV0dG9uLWdyb3VwLndhcm5pbmcgLmJ1dHRvbjpob3ZlciwgLmJ1dHRvbi1ncm91cC53YXJuaW5nIC5idXR0b246Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2NjOGIwMDtcbiAgICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gIC5idXR0b24tZ3JvdXAuYWxlcnQgLmJ1dHRvbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2VjNTg0MDtcbiAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAgIC5idXR0b24tZ3JvdXAuYWxlcnQgLmJ1dHRvbjpob3ZlciwgLmJ1dHRvbi1ncm91cC5hbGVydCAuYnV0dG9uOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNkYTMxMTY7XG4gICAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAuYnV0dG9uLWdyb3VwLnN0YWNrZWQgLmJ1dHRvbiwgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1zbWFsbCAuYnV0dG9uLCAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLW1lZGl1bSAuYnV0dG9uIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAgIC5idXR0b24tZ3JvdXAuc3RhY2tlZCAuYnV0dG9uOmxhc3QtY2hpbGQsIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3Itc21hbGwgLmJ1dHRvbjpsYXN0LWNoaWxkLCAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLW1lZGl1bSAuYnV0dG9uOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1zbWFsbCAuYnV0dG9uIHtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLW1lZGl1bSAuYnV0dG9uIHtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3Itc21hbGwuZXhwYW5kZWQge1xuICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAgIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3Itc21hbGwuZXhwYW5kZWQgLmJ1dHRvbiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7IH0gfVxuXG4uY2FsbG91dCB7XG4gIG1hcmdpbjogMCAwIDFyZW0gMDtcbiAgcGFkZGluZzogMXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxMCwgMTAsIDEwLCAwLjI1KTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBjb2xvcjogIzBhMGEwYTtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7IH1cbiAgLmNhbGxvdXQgPiA6Zmlyc3QtY2hpbGQge1xuICAgIG1hcmdpbi10b3A6IDA7IH1cbiAgLmNhbGxvdXQgPiA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAuY2FsbG91dC5wcmltYXJ5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBmNmRlOyB9XG4gIC5jYWxsb3V0LnNlY29uZGFyeSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ViZWJlYjsgfVxuICAuY2FsbG91dC5zdWNjZXNzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTFmYWVhOyB9XG4gIC5jYWxsb3V0Lndhcm5pbmcge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmYzZDk7IH1cbiAgLmNhbGxvdXQuYWxlcnQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmY2U2ZTI7IH1cbiAgLmNhbGxvdXQuc21hbGwge1xuICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjVyZW07IH1cbiAgLmNhbGxvdXQubGFyZ2Uge1xuICAgIHBhZGRpbmctdG9wOiAzcmVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDNyZW07XG4gICAgcGFkZGluZy1ib3R0b206IDNyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAzcmVtOyB9XG5cbi5jbG9zZS1idXR0b24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbG9yOiAjOGE4YThhO1xuICByaWdodDogMXJlbTtcbiAgdG9wOiAwLjVyZW07XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAuY2xvc2UtYnV0dG9uIHtcbiAgICBvdXRsaW5lOiAwOyB9XG4gIC5jbG9zZS1idXR0b246aG92ZXIsIC5jbG9zZS1idXR0b246Zm9jdXMge1xuICAgIGNvbG9yOiAjMGEwYTBhOyB9XG5cbi5tZW51IHtcbiAgbWFyZ2luOiAwO1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7IH1cbiAgLm1lbnUgPiBsaSB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG4gICAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIC5tZW51ID4gbGkge1xuICAgICAgb3V0bGluZTogMDsgfVxuICAubWVudSA+IGxpID4gYSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogMC43cmVtIDFyZW07XG4gICAgbGluZS1oZWlnaHQ6IDE7IH1cbiAgLm1lbnUgaW5wdXQsXG4gIC5tZW51IGEsXG4gIC5tZW51IGJ1dHRvbiB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAubWVudSA+IGxpID4gYSBpbWcsXG4gIC5tZW51ID4gbGkgPiBhIGksXG4gIC5tZW51ID4gbGkgPiBhIHN2ZyB7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxuICAgIC5tZW51ID4gbGkgPiBhIGltZyArIHNwYW4sXG4gICAgLm1lbnUgPiBsaSA+IGEgaSArIHNwYW4sXG4gICAgLm1lbnUgPiBsaSA+IGEgc3ZnICsgc3BhbiB7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG4gIC5tZW51ID4gbGkgPiBhIGltZyxcbiAgLm1lbnUgPiBsaSA+IGEgaSxcbiAgLm1lbnUgPiBsaSA+IGEgc3ZnIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gIC5tZW51ID4gbGkge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7IH1cbiAgLm1lbnUudmVydGljYWwgPiBsaSB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5tZW51Lm1lZGl1bS1ob3Jpem9udGFsID4gbGkge1xuICAgICAgZGlzcGxheTogdGFibGUtY2VsbDsgfVxuICAgIC5tZW51Lm1lZGl1bS12ZXJ0aWNhbCA+IGxpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5tZW51LmxhcmdlLWhvcml6b250YWwgPiBsaSB7XG4gICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsOyB9XG4gICAgLm1lbnUubGFyZ2UtdmVydGljYWwgPiBsaSB7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfSB9XG4gIC5tZW51LnNpbXBsZSBsaSB7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbi1yaWdodDogMXJlbTsgfVxuICAubWVudS5zaW1wbGUgYSB7XG4gICAgcGFkZGluZzogMDsgfVxuICAubWVudS5hbGlnbi1yaWdodDo6YmVmb3JlLCAubWVudS5hbGlnbi1yaWdodDo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcgJztcbiAgICBkaXNwbGF5OiB0YWJsZTsgfVxuICAubWVudS5hbGlnbi1yaWdodDo6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC5tZW51LmFsaWduLXJpZ2h0ID4gbGkge1xuICAgIGZsb2F0OiByaWdodDsgfVxuICAubWVudS5leHBhbmRlZCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgdGFibGUtbGF5b3V0OiBmaXhlZDsgfVxuICAgIC5tZW51LmV4cGFuZGVkID4gbGk6Zmlyc3QtY2hpbGQ6bGFzdC1jaGlsZCB7XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAubWVudS5pY29uLXRvcCA+IGxpID4gYSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgLm1lbnUuaWNvbi10b3AgPiBsaSA+IGEgaW1nLFxuICAgIC5tZW51Lmljb24tdG9wID4gbGkgPiBhIGksXG4gICAgLm1lbnUuaWNvbi10b3AgPiBsaSA+IGEgc3ZnIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgbWFyZ2luOiAwIGF1dG8gMC4yNXJlbTsgfVxuICAubWVudS5uZXN0ZWQge1xuICAgIG1hcmdpbi1sZWZ0OiAxcmVtOyB9XG4gIC5tZW51IC5hY3RpdmUgPiBhIHtcbiAgICBjb2xvcjogI2ZlZmVmZTtcbiAgICBiYWNrZ3JvdW5kOiAjOTJCNjMxOyB9XG5cbi5tZW51LXRleHQge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBwYWRkaW5nLXRvcDogMDtcbiAgcGFkZGluZy1ib3R0b206IDA7XG4gIHBhZGRpbmc6IDAuN3JlbSAxcmVtOyB9XG5cbi5tZW51LWNlbnRlcmVkIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIC5tZW51LWNlbnRlcmVkID4gLm1lbnUge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuXG4ubm8tanMgW2RhdGEtcmVzcG9uc2l2ZS1tZW51XSB1bCB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLm1lbnUtaWNvbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDE2cHg7IH1cbiAgLm1lbnUtaWNvbjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDJweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmVmZWZlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGJveC1zaGFkb3c6IDAgN3B4IDAgI2ZlZmVmZSwgMCAxNHB4IDAgI2ZlZmVmZTsgfVxuICAubWVudS1pY29uOmhvdmVyOjphZnRlciB7XG4gICAgYmFja2dyb3VuZDogI2NhY2FjYTtcbiAgICBib3gtc2hhZG93OiAwIDdweCAwICNjYWNhY2EsIDAgMTRweCAwICNjYWNhY2E7IH1cblxuLm1lbnUtaWNvbi5kYXJrIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMTZweDsgfVxuICAubWVudS1pY29uLmRhcms6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAycHg7XG4gICAgYmFja2dyb3VuZDogIzBhMGEwYTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBib3gtc2hhZG93OiAwIDdweCAwICMwYTBhMGEsIDAgMTRweCAwICMwYTBhMGE7IH1cbiAgLm1lbnUtaWNvbi5kYXJrOmhvdmVyOjphZnRlciB7XG4gICAgYmFja2dyb3VuZDogIzhhOGE4YTtcbiAgICBib3gtc2hhZG93OiAwIDdweCAwICM4YThhOGEsIDAgMTRweCAwICM4YThhOGE7IH1cblxuLmlzLWRyaWxsZG93biB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAuaXMtZHJpbGxkb3duIGxpIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9XG5cbi5pcy1kcmlsbGRvd24tc3VibWVudSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAxMDAlO1xuICB6LWluZGV4OiAtMTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZDogI2ZlZmVmZTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzIGxpbmVhcjsgfVxuICAuaXMtZHJpbGxkb3duLXN1Ym1lbnUuaXMtYWN0aXZlIHtcbiAgICB6LWluZGV4OiAxO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7IH1cbiAgLmlzLWRyaWxsZG93bi1zdWJtZW51LmlzLWNsb3Npbmcge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTsgfVxuXG4uaXMtZHJpbGxkb3duLXN1Ym1lbnUtcGFyZW50ID4gYSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAuaXMtZHJpbGxkb3duLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXI6IGluc2V0IDZweDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICM5MkI2MzE7XG4gICAgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgbWFyZ2luLXRvcDogLTZweDtcbiAgICByaWdodDogMXJlbTsgfVxuXG4uanMtZHJpbGxkb3duLWJhY2sgPiBhOjpiZWZvcmUge1xuICBjb250ZW50OiAnJztcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGJvcmRlcjogaW5zZXQgNnB4O1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICM5MkI2MzEgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07IH1cblxuLmRyb3Bkb3duLXBhbmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmZWZlO1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2FjYWNhO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAxcmVtO1xuICBwYWRkaW5nOiAxcmVtO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgd2lkdGg6IDMwMHB4O1xuICB6LWluZGV4OiAxMDsgfVxuICAuZHJvcGRvd24tcGFuZS5pcy1vcGVuIHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9XG5cbi5kcm9wZG93bi1wYW5lLnRpbnkge1xuICB3aWR0aDogMTAwcHg7IH1cblxuLmRyb3Bkb3duLXBhbmUuc21hbGwge1xuICB3aWR0aDogMjAwcHg7IH1cblxuLmRyb3Bkb3duLXBhbmUubGFyZ2Uge1xuICB3aWR0aDogNDAwcHg7IH1cblxuLmRyb3Bkb3duLm1lbnUgPiBsaS5vcGVucy1sZWZ0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogMDtcbiAgdG9wOiAxMDAlOyB9XG5cbi5kcm9wZG93bi5tZW51ID4gbGkub3BlbnMtcmlnaHQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAwO1xuICB0b3A6IDEwMCU7IH1cblxuLmRyb3Bkb3duLm1lbnUgPiBsaS5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCA+IGEge1xuICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuXG4uZHJvcGRvd24ubWVudSA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGJvcmRlcjogaW5zZXQgNXB4O1xuICBib3JkZXItY29sb3I6ICM5MkI2MzEgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci10b3Atc3R5bGU6IHNvbGlkO1xuICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICByaWdodDogNXB4O1xuICBtYXJnaW4tdG9wOiAtMnB4OyB9XG5cbltkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAuZHJvcGRvd24ubWVudSBhIHtcbiAgb3V0bGluZTogMDsgfVxuXG4ubm8tanMgLmRyb3Bkb3duLm1lbnUgdWwge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5kcm9wZG93bi5tZW51LnZlcnRpY2FsID4gbGkgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICB0b3A6IDA7IH1cblxuLmRyb3Bkb3duLm1lbnUudmVydGljYWwgPiBsaS5vcGVucy1sZWZ0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogMTAwJTsgfVxuXG4uZHJvcGRvd24ubWVudS52ZXJ0aWNhbCA+IGxpLm9wZW5zLXJpZ2h0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogMTAwJTsgfVxuXG4uZHJvcGRvd24ubWVudS52ZXJ0aWNhbCA+IGxpID4gYTo6YWZ0ZXIge1xuICByaWdodDogMTRweDtcbiAgbWFyZ2luLXRvcDogLTNweDsgfVxuXG4uZHJvcGRvd24ubWVudS52ZXJ0aWNhbCA+IGxpLm9wZW5zLWxlZnQgPiBhOjphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyOiBpbnNldCA1cHg7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgIzkyQjYzMSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJpZ2h0LXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7IH1cblxuLmRyb3Bkb3duLm1lbnUudmVydGljYWwgPiBsaS5vcGVucy1yaWdodCA+IGE6OmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXI6IGluc2V0IDVweDtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjOTJCNjMxO1xuICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1yaWdodC13aWR0aDogMDsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5kcm9wZG93bi5tZW51Lm1lZGl1bS1ob3Jpem9udGFsID4gbGkub3BlbnMtbGVmdCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICBsZWZ0OiBhdXRvO1xuICAgIHJpZ2h0OiAwO1xuICAgIHRvcDogMTAwJTsgfVxuICAuZHJvcGRvd24ubWVudS5tZWRpdW0taG9yaXpvbnRhbCA+IGxpLm9wZW5zLXJpZ2h0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiAxMDAlOyB9XG4gIC5kcm9wZG93bi5tZW51Lm1lZGl1bS1ob3Jpem9udGFsID4gbGkuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5kcm9wZG93bi5tZW51Lm1lZGl1bS1ob3Jpem9udGFsID4gbGkuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgNXB4O1xuICAgIGJvcmRlci1jb2xvcjogIzkyQjYzMSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICAgIHJpZ2h0OiA1cHg7XG4gICAgbWFyZ2luLXRvcDogLTJweDsgfVxuICAuZHJvcGRvd24ubWVudS5tZWRpdW0tdmVydGljYWwgPiBsaSAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgdG9wOiAwOyB9XG4gIC5kcm9wZG93bi5tZW51Lm1lZGl1bS12ZXJ0aWNhbCA+IGxpLm9wZW5zLWxlZnQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogMTAwJTsgfVxuICAuZHJvcGRvd24ubWVudS5tZWRpdW0tdmVydGljYWwgPiBsaS5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiAxMDAlOyB9XG4gIC5kcm9wZG93bi5tZW51Lm1lZGl1bS12ZXJ0aWNhbCA+IGxpID4gYTo6YWZ0ZXIge1xuICAgIHJpZ2h0OiAxNHB4O1xuICAgIG1hcmdpbi10b3A6IC0zcHg7IH1cbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLXZlcnRpY2FsID4gbGkub3BlbnMtbGVmdCA+IGE6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiBpbnNldCA1cHg7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjOTJCNjMxIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7IH1cbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLXZlcnRpY2FsID4gbGkub3BlbnMtcmlnaHQgPiBhOjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgNXB4O1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzkyQjYzMTtcbiAgICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAuZHJvcGRvd24ubWVudS5sYXJnZS1ob3Jpem9udGFsID4gbGkub3BlbnMtbGVmdCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICBsZWZ0OiBhdXRvO1xuICAgIHJpZ2h0OiAwO1xuICAgIHRvcDogMTAwJTsgfVxuICAuZHJvcGRvd24ubWVudS5sYXJnZS1ob3Jpem9udGFsID4gbGkub3BlbnMtcmlnaHQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogMDtcbiAgICB0b3A6IDEwMCU7IH1cbiAgLmRyb3Bkb3duLm1lbnUubGFyZ2UtaG9yaXpvbnRhbCA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYSB7XG4gICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAuZHJvcGRvd24ubWVudS5sYXJnZS1ob3Jpem9udGFsID4gbGkuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgNXB4O1xuICAgIGJvcmRlci1jb2xvcjogIzkyQjYzMSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICAgIHJpZ2h0OiA1cHg7XG4gICAgbWFyZ2luLXRvcDogLTJweDsgfVxuICAuZHJvcGRvd24ubWVudS5sYXJnZS12ZXJ0aWNhbCA+IGxpIC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICB0b3A6IDA7IH1cbiAgLmRyb3Bkb3duLm1lbnUubGFyZ2UtdmVydGljYWwgPiBsaS5vcGVucy1sZWZ0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IDEwMCU7IH1cbiAgLmRyb3Bkb3duLm1lbnUubGFyZ2UtdmVydGljYWwgPiBsaS5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiAxMDAlOyB9XG4gIC5kcm9wZG93bi5tZW51LmxhcmdlLXZlcnRpY2FsID4gbGkgPiBhOjphZnRlciB7XG4gICAgcmlnaHQ6IDE0cHg7XG4gICAgbWFyZ2luLXRvcDogLTNweDsgfVxuICAuZHJvcGRvd24ubWVudS5sYXJnZS12ZXJ0aWNhbCA+IGxpLm9wZW5zLWxlZnQgPiBhOjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgNXB4O1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgIzkyQjYzMSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAwOyB9XG4gIC5kcm9wZG93bi5tZW51LmxhcmdlLXZlcnRpY2FsID4gbGkub3BlbnMtcmlnaHQgPiBhOjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgNXB4O1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzkyQjYzMTtcbiAgICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwOyB9IH1cblxuLmRyb3Bkb3duLm1lbnUuYWxpZ24tcmlnaHQgLmlzLWRyb3Bkb3duLXN1Ym1lbnUuZmlyc3Qtc3ViIHtcbiAgdG9wOiAxMDAlO1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogMDsgfVxuXG4uaXMtZHJvcGRvd24tbWVudS52ZXJ0aWNhbCB7XG4gIHdpZHRoOiAxMDBweDsgfVxuICAuaXMtZHJvcGRvd24tbWVudS52ZXJ0aWNhbC5hbGlnbi1yaWdodCB7XG4gICAgZmxvYXQ6IHJpZ2h0OyB9XG5cbi5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgYTo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICByaWdodDogNXB4O1xuICAgIG1hcmdpbi10b3A6IC0ycHg7IH1cbiAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50Lm9wZW5zLWlubmVyID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHRvcDogMTAwJTtcbiAgICBsZWZ0OiBhdXRvOyB9XG4gIC5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudC5vcGVucy1sZWZ0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IDEwMCU7IH1cbiAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50Lm9wZW5zLXJpZ2h0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IDEwMCU7IH1cblxuLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMTAwJTtcbiAgbWluLXdpZHRoOiAyMDBweDtcbiAgei1pbmRleDogMTtcbiAgYmFja2dyb3VuZDogI2NhY2FjYTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NhY2FjYTsgfVxuICAuaXMtZHJvcGRvd24tc3VibWVudSAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gICAgcmlnaHQ6IDE0cHg7XG4gICAgbWFyZ2luLXRvcDogLTNweDsgfVxuICAuaXMtZHJvcGRvd24tc3VibWVudSAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQub3BlbnMtbGVmdCA+IGE6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiBpbnNldCA1cHg7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjOTJCNjMxIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7IH1cbiAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUgLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50Lm9wZW5zLXJpZ2h0ID4gYTo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXI6IGluc2V0IDVweDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICM5MkI2MzE7XG4gICAgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1yaWdodC13aWR0aDogMDsgfVxuICAuaXMtZHJvcGRvd24tc3VibWVudSAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgbWFyZ2luLXRvcDogLTFweDsgfVxuICAuaXMtZHJvcGRvd24tc3VibWVudSA+IGxpIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAuaXMtZHJvcGRvd24tc3VibWVudS5qcy1kcm9wZG93bi1hY3RpdmUge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi5mbGV4LXZpZGVvIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDA7XG4gIHBhZGRpbmctYm90dG9tOiA3NSU7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgLmZsZXgtdmlkZW8gaWZyYW1lLFxuICAuZmxleC12aWRlbyBvYmplY3QsXG4gIC5mbGV4LXZpZGVvIGVtYmVkLFxuICAuZmxleC12aWRlbyB2aWRlbyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTsgfVxuICAuZmxleC12aWRlby53aWRlc2NyZWVuIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogNTYuMjUlOyB9XG4gIC5mbGV4LXZpZGVvLnZpbWVvIHtcbiAgICBwYWRkaW5nLXRvcDogMDsgfVxuXG4ubGFiZWwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDAuMzMzMzNyZW0gMC41cmVtO1xuICBmb250LXNpemU6IDAuOHJlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYmFja2dyb3VuZDogIzkyQjYzMTtcbiAgY29sb3I6ICNmZWZlZmU7IH1cbiAgLmxhYmVsLnNlY29uZGFyeSB7XG4gICAgYmFja2dyb3VuZDogIzc3NztcbiAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAubGFiZWwuc3VjY2VzcyB7XG4gICAgYmFja2dyb3VuZDogIzNhZGI3NjtcbiAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAubGFiZWwud2FybmluZyB7XG4gICAgYmFja2dyb3VuZDogI2ZmYWUwMDtcbiAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAubGFiZWwuYWxlcnQge1xuICAgIGJhY2tncm91bmQ6ICNlYzU4NDA7XG4gICAgY29sb3I6ICNmZWZlZmU7IH1cblxuLm1lZGlhLW9iamVjdCB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5tZWRpYS1vYmplY3QgaW1nIHtcbiAgICBtYXgtd2lkdGg6IG5vbmU7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gICAgLm1lZGlhLW9iamVjdC5zdGFjay1mb3Itc21hbGwgLm1lZGlhLW9iamVjdC1zZWN0aW9uIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMXJlbTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgICAubWVkaWEtb2JqZWN0LnN0YWNrLWZvci1zbWFsbCAubWVkaWEtb2JqZWN0LXNlY3Rpb24gaW1nIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuXG4ubWVkaWEtb2JqZWN0LXNlY3Rpb24ge1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB9XG4gIC5tZWRpYS1vYmplY3Qtc2VjdGlvbjpmaXJzdC1jaGlsZCB7XG4gICAgcGFkZGluZy1yaWdodDogMXJlbTsgfVxuICAubWVkaWEtb2JqZWN0LXNlY3Rpb246bGFzdC1jaGlsZDpub3QoOm50aC1jaGlsZCgyKSkge1xuICAgIHBhZGRpbmctbGVmdDogMXJlbTsgfVxuICAubWVkaWEtb2JqZWN0LXNlY3Rpb24gPiA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAubWVkaWEtb2JqZWN0LXNlY3Rpb24ubWlkZGxlIHtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG4gIC5tZWRpYS1vYmplY3Qtc2VjdGlvbi5ib3R0b20ge1xuICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207IH1cblxuaHRtbCxcbmJvZHkge1xuICBoZWlnaHQ6IDEwMCU7IH1cblxuLm9mZi1jYW52YXMtd3JhcHBlciB7XG4gIHdpZHRoOiAxMDAlO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogYXV0bzsgfVxuXG4ub2ZmLWNhbnZhcy13cmFwcGVyLWlubmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNXMgZWFzZTsgfVxuICAub2ZmLWNhbnZhcy13cmFwcGVyLWlubmVyOjpiZWZvcmUsIC5vZmYtY2FudmFzLXdyYXBwZXItaW5uZXI6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnICc7XG4gICAgZGlzcGxheTogdGFibGU7IH1cbiAgLm9mZi1jYW52YXMtd3JhcHBlci1pbm5lcjo6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoOyB9XG5cbi5vZmYtY2FudmFzLWNvbnRlbnQsXG4ub2ZmLWNhbnZhcy1jb250ZW50IHtcbiAgbWluLWhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZDogI2ZlZmVmZTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNXMgZWFzZTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICB6LWluZGV4OiAxO1xuICBwYWRkaW5nLWJvdHRvbTogMC4xcHg7XG4gIGJveC1zaGFkb3c6IDAgMCAxMHB4IHJnYmEoMTAsIDEwLCAxMCwgMC41KTsgfVxuXG4uanMtb2ZmLWNhbnZhcy1leGl0IHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU0LCAyNTQsIDI1NCwgMC4yNSk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjVzIGVhc2U7IH1cblxuLm9mZi1jYW52YXMge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJhY2tncm91bmQ6ICNlNmU2ZTY7XG4gIHotaW5kZXg6IC0xO1xuICBtYXgtaGVpZ2h0OiAxMDAlO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IH1cbiAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIC5vZmYtY2FudmFzIHtcbiAgICBvdXRsaW5lOiAwOyB9XG4gIC5vZmYtY2FudmFzLnBvc2l0aW9uLWxlZnQge1xuICAgIGxlZnQ6IC0yNTBweDtcbiAgICB0b3A6IDA7XG4gICAgd2lkdGg6IDI1MHB4OyB9XG4gICAgLmlzLW9wZW4tbGVmdCB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjUwcHgpOyB9XG4gIC5vZmYtY2FudmFzLnBvc2l0aW9uLXJpZ2h0IHtcbiAgICByaWdodDogLTI1MHB4O1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogMjUwcHg7IH1cbiAgICAuaXMtb3Blbi1yaWdodCB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTI1MHB4KTsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC5wb3NpdGlvbi1sZWZ0LnJldmVhbC1mb3ItbWVkaXVtIHtcbiAgICBsZWZ0OiAwO1xuICAgIHotaW5kZXg6IGF1dG87XG4gICAgcG9zaXRpb246IGZpeGVkOyB9XG4gICAgLnBvc2l0aW9uLWxlZnQucmV2ZWFsLWZvci1tZWRpdW0gfiAub2ZmLWNhbnZhcy1jb250ZW50IHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAyNTBweDsgfVxuICAucG9zaXRpb24tcmlnaHQucmV2ZWFsLWZvci1tZWRpdW0ge1xuICAgIHJpZ2h0OiAwO1xuICAgIHotaW5kZXg6IGF1dG87XG4gICAgcG9zaXRpb246IGZpeGVkOyB9XG4gICAgLnBvc2l0aW9uLXJpZ2h0LnJldmVhbC1mb3ItbWVkaXVtIH4gLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDI1MHB4OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAucG9zaXRpb24tbGVmdC5yZXZlYWwtZm9yLWxhcmdlIHtcbiAgICBsZWZ0OiAwO1xuICAgIHotaW5kZXg6IGF1dG87XG4gICAgcG9zaXRpb246IGZpeGVkOyB9XG4gICAgLnBvc2l0aW9uLWxlZnQucmV2ZWFsLWZvci1sYXJnZSB+IC5vZmYtY2FudmFzLWNvbnRlbnQge1xuICAgICAgbWFyZ2luLWxlZnQ6IDI1MHB4OyB9XG4gIC5wb3NpdGlvbi1yaWdodC5yZXZlYWwtZm9yLWxhcmdlIHtcbiAgICByaWdodDogMDtcbiAgICB6LWluZGV4OiBhdXRvO1xuICAgIHBvc2l0aW9uOiBmaXhlZDsgfVxuICAgIC5wb3NpdGlvbi1yaWdodC5yZXZlYWwtZm9yLWxhcmdlIH4gLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDI1MHB4OyB9IH1cblxuLm9yYml0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG5cbi5vcmJpdC1jb250YWluZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbjogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgbGlzdC1zdHlsZTogbm9uZTsgfVxuXG4ub3JiaXQtc2xpZGUge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LWhlaWdodDogMTAwJTsgfVxuICAub3JiaXQtc2xpZGUubm8tbW90aW9udWkuaXMtYWN0aXZlIHtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDsgfVxuXG4ub3JiaXQtZmlndXJlIHtcbiAgbWFyZ2luOiAwOyB9XG5cbi5vcmJpdC1pbWFnZSB7XG4gIG1hcmdpbjogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTsgfVxuXG4ub3JiaXQtY2FwdGlvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgY29sb3I6ICNmZWZlZmU7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTAsIDEwLCAxMCwgMC41KTsgfVxuXG4ub3JiaXQtcHJldmlvdXMsIC5vcmJpdC1uZXh0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICB6LWluZGV4OiAxMDtcbiAgcGFkZGluZzogMXJlbTtcbiAgY29sb3I6ICNmZWZlZmU7IH1cbiAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIC5vcmJpdC1wcmV2aW91cywgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIC5vcmJpdC1uZXh0IHtcbiAgICBvdXRsaW5lOiAwOyB9XG4gIC5vcmJpdC1wcmV2aW91czpob3ZlciwgLm9yYml0LW5leHQ6aG92ZXIsIC5vcmJpdC1wcmV2aW91czphY3RpdmUsIC5vcmJpdC1uZXh0OmFjdGl2ZSwgLm9yYml0LXByZXZpb3VzOmZvY3VzLCAub3JiaXQtbmV4dDpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMCwgMTAsIDEwLCAwLjUpOyB9XG5cbi5vcmJpdC1wcmV2aW91cyB7XG4gIGxlZnQ6IDA7IH1cblxuLm9yYml0LW5leHQge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogMDsgfVxuXG4ub3JiaXQtYnVsbGV0cyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLXRvcDogMC44cmVtO1xuICBtYXJnaW4tYm90dG9tOiAwLjhyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gLm9yYml0LWJ1bGxldHMge1xuICAgIG91dGxpbmU6IDA7IH1cbiAgLm9yYml0LWJ1bGxldHMgYnV0dG9uIHtcbiAgICB3aWR0aDogMS4ycmVtO1xuICAgIGhlaWdodDogMS4ycmVtO1xuICAgIG1hcmdpbjogMC4xcmVtO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNjYWNhY2E7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlOyB9XG4gICAgLm9yYml0LWJ1bGxldHMgYnV0dG9uOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM4YThhOGE7IH1cbiAgICAub3JiaXQtYnVsbGV0cyBidXR0b24uaXMtYWN0aXZlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM4YThhOGE7IH1cblxuLnBhZ2luYXRpb24ge1xuICBtYXJnaW4tbGVmdDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTsgfVxuICAucGFnaW5hdGlvbjo6YmVmb3JlLCAucGFnaW5hdGlvbjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcgJztcbiAgICBkaXNwbGF5OiB0YWJsZTsgfVxuICAucGFnaW5hdGlvbjo6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC5wYWdpbmF0aW9uIGxpIHtcbiAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgIG1hcmdpbi1yaWdodDogMC4wNjI1cmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5wYWdpbmF0aW9uIGxpOmxhc3QtY2hpbGQsIC5wYWdpbmF0aW9uIGxpOmZpcnN0LWNoaWxkIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAgIC5wYWdpbmF0aW9uIGxpIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9IH1cbiAgLnBhZ2luYXRpb24gYSxcbiAgLnBhZ2luYXRpb24gYnV0dG9uIHtcbiAgICBjb2xvcjogIzBhMGEwYTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAwLjE4NzVyZW0gMC42MjVyZW07XG4gICAgYm9yZGVyLXJhZGl1czogMDsgfVxuICAgIC5wYWdpbmF0aW9uIGE6aG92ZXIsXG4gICAgLnBhZ2luYXRpb24gYnV0dG9uOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICNlNmU2ZTY7IH1cbiAgLnBhZ2luYXRpb24gLmN1cnJlbnQge1xuICAgIHBhZGRpbmc6IDAuMTg3NXJlbSAwLjYyNXJlbTtcbiAgICBiYWNrZ3JvdW5kOiAjOTJCNjMxO1xuICAgIGNvbG9yOiAjZmVmZWZlO1xuICAgIGN1cnNvcjogZGVmYXVsdDsgfVxuICAucGFnaW5hdGlvbiAuZGlzYWJsZWQge1xuICAgIHBhZGRpbmc6IDAuMTg3NXJlbSAwLjYyNXJlbTtcbiAgICBjb2xvcjogI2NhY2FjYTtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOyB9XG4gICAgLnBhZ2luYXRpb24gLmRpc2FibGVkOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9XG4gIC5wYWdpbmF0aW9uIC5lbGxpcHNpczo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICdcXDIwMjYnO1xuICAgIHBhZGRpbmc6IDAuMTg3NXJlbSAwLjYyNXJlbTtcbiAgICBjb2xvcjogIzBhMGEwYTsgfVxuXG4ucGFnaW5hdGlvbi1wcmV2aW91cyBhOjpiZWZvcmUsXG4ucGFnaW5hdGlvbi1wcmV2aW91cy5kaXNhYmxlZDo6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcMDBhYic7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07IH1cblxuLnBhZ2luYXRpb24tbmV4dCBhOjphZnRlcixcbi5wYWdpbmF0aW9uLW5leHQuZGlzYWJsZWQ6OmFmdGVyIHtcbiAgY29udGVudDogJ1xcMDBiYic7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLWxlZnQ6IDAuNXJlbTsgfVxuXG4ucHJvZ3Jlc3Mge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2FjYWNhO1xuICBoZWlnaHQ6IDFyZW07XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGJvcmRlci1yYWRpdXM6IDA7IH1cbiAgLnByb2dyZXNzLnByaW1hcnkgLnByb2dyZXNzLW1ldGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTJCNjMxOyB9XG4gIC5wcm9ncmVzcy5zZWNvbmRhcnkgLnByb2dyZXNzLW1ldGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzc3OyB9XG4gIC5wcm9ncmVzcy5zdWNjZXNzIC5wcm9ncmVzcy1tZXRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzNhZGI3NjsgfVxuICAucHJvZ3Jlc3Mud2FybmluZyAucHJvZ3Jlc3MtbWV0ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmFlMDA7IH1cbiAgLnByb2dyZXNzLmFsZXJ0IC5wcm9ncmVzcy1tZXRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2VjNTg0MDsgfVxuXG4ucHJvZ3Jlc3MtbWV0ZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzkyQjYzMTsgfVxuXG4ucHJvZ3Jlc3MtbWV0ZXItdGV4dCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbWFyZ2luOiAwO1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogI2ZlZmVmZTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuXG4uc2xpZGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDAuNXJlbTtcbiAgbWFyZ2luLXRvcDogMS4yNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMi4yNXJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgdG91Y2gtYWN0aW9uOiBub25lOyB9XG5cbi5zbGlkZXItZmlsbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAwLjVyZW07XG4gIGJhY2tncm91bmQtY29sb3I6ICNjYWNhY2E7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0OyB9XG4gIC5zbGlkZXItZmlsbC5pcy1kcmFnZ2luZyB7XG4gICAgdHJhbnNpdGlvbjogYWxsIDBzIGxpbmVhcjsgfVxuXG4uc2xpZGVyLWhhbmRsZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAxO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAxLjRyZW07XG4gIGhlaWdodDogMS40cmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTJCNjMxO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcbiAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG4gIGJvcmRlci1yYWRpdXM6IDA7IH1cbiAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIC5zbGlkZXItaGFuZGxlIHtcbiAgICBvdXRsaW5lOiAwOyB9XG4gIC5zbGlkZXItaGFuZGxlOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjN2M5YjJhOyB9XG4gIC5zbGlkZXItaGFuZGxlLmlzLWRyYWdnaW5nIHtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMHMgbGluZWFyOyB9XG5cbi5zbGlkZXIuZGlzYWJsZWQsXG4uc2xpZGVyW2Rpc2FibGVkXSB7XG4gIG9wYWNpdHk6IDAuMjU7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7IH1cblxuLnNsaWRlci52ZXJ0aWNhbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDAuNXJlbTtcbiAgaGVpZ2h0OiAxMi41cmVtO1xuICBtYXJnaW46IDAgMS4yNXJlbTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLCAtMSk7IH1cbiAgLnNsaWRlci52ZXJ0aWNhbCAuc2xpZGVyLWZpbGwge1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogMC41cmVtO1xuICAgIG1heC1oZWlnaHQ6IDEwMCU7IH1cbiAgLnNsaWRlci52ZXJ0aWNhbCAuc2xpZGVyLWhhbmRsZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiA1MCU7XG4gICAgd2lkdGg6IDEuNHJlbTtcbiAgICBoZWlnaHQ6IDEuNHJlbTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7IH1cblxuLnN0aWNreS1jb250YWluZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cblxuLnN0aWNreSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTsgfVxuXG4uc3RpY2t5LmlzLXN0dWNrIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB6LWluZGV4OiA1OyB9XG4gIC5zdGlja3kuaXMtc3R1Y2suaXMtYXQtdG9wIHtcbiAgICB0b3A6IDA7IH1cbiAgLnN0aWNreS5pcy1zdHVjay5pcy1hdC1ib3R0b20ge1xuICAgIGJvdHRvbTogMDsgfVxuXG4uc3RpY2t5LmlzLWFuY2hvcmVkIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogYXV0bzsgfVxuICAuc3RpY2t5LmlzLWFuY2hvcmVkLmlzLWF0LWJvdHRvbSB7XG4gICAgYm90dG9tOiAwOyB9XG5cbmJvZHkuaXMtcmV2ZWFsLW9wZW4ge1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbmh0bWwuaXMtcmV2ZWFsLW9wZW4sXG5odG1sLmlzLXJldmVhbC1vcGVuIGJvZHkge1xuICBoZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHVzZXItc2VsZWN0OiBub25lOyB9XG5cbi5yZXZlYWwtb3ZlcmxheSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICB6LWluZGV4OiAxMDA1O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDEwLCAxMCwgMTAsIDAuNDUpO1xuICBvdmVyZmxvdy15OiBzY3JvbGw7IH1cblxuLnJldmVhbCB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHotaW5kZXg6IDEwMDY7XG4gIHBhZGRpbmc6IDFyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjYWNhY2E7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAxMDBweDtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgb3ZlcmZsb3cteTogYXV0bzsgfVxuICBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gLnJldmVhbCB7XG4gICAgb3V0bGluZTogMDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLnJldmVhbCB7XG4gICAgICBtaW4taGVpZ2h0OiAwOyB9IH1cbiAgLnJldmVhbCAuY29sdW1uLCAucmV2ZWFsIC5jb2x1bW5zLFxuICAucmV2ZWFsIC5jb2x1bW5zIHtcbiAgICBtaW4td2lkdGg6IDA7IH1cbiAgLnJldmVhbCA+IDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAucmV2ZWFsIHtcbiAgICAgIHdpZHRoOiA2MDBweDtcbiAgICAgIG1heC13aWR0aDogNzVyZW07IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLnJldmVhbCAucmV2ZWFsIHtcbiAgICAgIGxlZnQ6IGF1dG87XG4gICAgICByaWdodDogYXV0bztcbiAgICAgIG1hcmdpbjogMCBhdXRvOyB9IH1cbiAgLnJldmVhbC5jb2xsYXBzZSB7XG4gICAgcGFkZGluZzogMDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLnJldmVhbC50aW55IHtcbiAgICAgIHdpZHRoOiAzMCU7XG4gICAgICBtYXgtd2lkdGg6IDc1cmVtOyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC5yZXZlYWwuc21hbGwge1xuICAgICAgd2lkdGg6IDUwJTtcbiAgICAgIG1heC13aWR0aDogNzVyZW07IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLnJldmVhbC5sYXJnZSB7XG4gICAgICB3aWR0aDogOTAlO1xuICAgICAgbWF4LXdpZHRoOiA3NXJlbTsgfSB9XG4gIC5yZXZlYWwuZnVsbCB7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGhlaWdodDogMTAwdmg7XG4gICAgbWluLWhlaWdodDogMTAwdmg7XG4gICAgbWF4LXdpZHRoOiBub25lO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiAwOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSkge1xuICAgIC5yZXZlYWwge1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxMDB2aDtcbiAgICAgIG1pbi1oZWlnaHQ6IDEwMHZoO1xuICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBib3JkZXItcmFkaXVzOiAwOyB9IH1cbiAgLnJldmVhbC53aXRob3V0LW92ZXJsYXkge1xuICAgIHBvc2l0aW9uOiBmaXhlZDsgfVxuXG4uc3dpdGNoIHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgb3V0bGluZTogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgY29sb3I6ICNmZWZlZmU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXNpemU6IDAuODc1cmVtOyB9XG5cbi5zd2l0Y2gtaW5wdXQge1xuICBvcGFjaXR5OiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7IH1cblxuLnN3aXRjaC1wYWRkbGUge1xuICBiYWNrZ3JvdW5kOiAjY2FjYWNhO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiA0cmVtO1xuICBoZWlnaHQ6IDJyZW07XG4gIHRyYW5zaXRpb246IGFsbCAwLjI1cyBlYXNlLW91dDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGZvbnQtd2VpZ2h0OiBpbmhlcml0OyB9XG4gIGlucHV0ICsgLnN3aXRjaC1wYWRkbGUge1xuICAgIG1hcmdpbjogMDsgfVxuICAuc3dpdGNoLXBhZGRsZTo6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQ6ICNmZWZlZmU7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGhlaWdodDogMS41cmVtO1xuICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgdG9wOiAwLjI1cmVtO1xuICAgIHdpZHRoOiAxLjVyZW07XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMjVzIGVhc2Utb3V0O1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgYm9yZGVyLXJhZGl1czogMDsgfVxuICBpbnB1dDpjaGVja2VkIH4gLnN3aXRjaC1wYWRkbGUge1xuICAgIGJhY2tncm91bmQ6ICM5MkI2MzE7IH1cbiAgICBpbnB1dDpjaGVja2VkIH4gLnN3aXRjaC1wYWRkbGU6OmFmdGVyIHtcbiAgICAgIGxlZnQ6IDIuMjVyZW07IH1cbiAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIGlucHV0OmZvY3VzIH4gLnN3aXRjaC1wYWRkbGUge1xuICAgIG91dGxpbmU6IDA7IH1cblxuLnN3aXRjaC1hY3RpdmUsIC5zd2l0Y2gtaW5hY3RpdmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7IH1cblxuLnN3aXRjaC1hY3RpdmUge1xuICBsZWZ0OiA4JTtcbiAgZGlzcGxheTogbm9uZTsgfVxuICBpbnB1dDpjaGVja2VkICsgbGFiZWwgPiAuc3dpdGNoLWFjdGl2ZSB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cblxuLnN3aXRjaC1pbmFjdGl2ZSB7XG4gIHJpZ2h0OiAxNSU7IH1cbiAgaW5wdXQ6Y2hlY2tlZCArIGxhYmVsID4gLnN3aXRjaC1pbmFjdGl2ZSB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuXG4uc3dpdGNoLnRpbnkgLnN3aXRjaC1wYWRkbGUge1xuICB3aWR0aDogM3JlbTtcbiAgaGVpZ2h0OiAxLjVyZW07XG4gIGZvbnQtc2l6ZTogMC42MjVyZW07IH1cblxuLnN3aXRjaC50aW55IC5zd2l0Y2gtcGFkZGxlOjphZnRlciB7XG4gIHdpZHRoOiAxcmVtO1xuICBoZWlnaHQ6IDFyZW07IH1cblxuLnN3aXRjaC50aW55IGlucHV0OmNoZWNrZWQgfiAuc3dpdGNoLXBhZGRsZTo6YWZ0ZXIge1xuICBsZWZ0OiAxLjc1cmVtOyB9XG5cbi5zd2l0Y2guc21hbGwgLnN3aXRjaC1wYWRkbGUge1xuICB3aWR0aDogMy41cmVtO1xuICBoZWlnaHQ6IDEuNzVyZW07XG4gIGZvbnQtc2l6ZTogMC43NXJlbTsgfVxuXG4uc3dpdGNoLnNtYWxsIC5zd2l0Y2gtcGFkZGxlOjphZnRlciB7XG4gIHdpZHRoOiAxLjI1cmVtO1xuICBoZWlnaHQ6IDEuMjVyZW07IH1cblxuLnN3aXRjaC5zbWFsbCBpbnB1dDpjaGVja2VkIH4gLnN3aXRjaC1wYWRkbGU6OmFmdGVyIHtcbiAgbGVmdDogMnJlbTsgfVxuXG4uc3dpdGNoLmxhcmdlIC5zd2l0Y2gtcGFkZGxlIHtcbiAgd2lkdGg6IDVyZW07XG4gIGhlaWdodDogMi41cmVtO1xuICBmb250LXNpemU6IDFyZW07IH1cblxuLnN3aXRjaC5sYXJnZSAuc3dpdGNoLXBhZGRsZTo6YWZ0ZXIge1xuICB3aWR0aDogMnJlbTtcbiAgaGVpZ2h0OiAycmVtOyB9XG5cbi5zd2l0Y2gubGFyZ2UgaW5wdXQ6Y2hlY2tlZCB+IC5zd2l0Y2gtcGFkZGxlOjphZnRlciB7XG4gIGxlZnQ6IDIuNzVyZW07IH1cblxudGFibGUge1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgYm9yZGVyLXJhZGl1czogMDsgfVxuICB0YWJsZSB0aGVhZCxcbiAgdGFibGUgdGJvZHksXG4gIHRhYmxlIHRmb290IHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZjFmMWYxO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7IH1cbiAgdGFibGUgY2FwdGlvbiB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgcGFkZGluZzogMC41cmVtIDAuNjI1cmVtIDAuNjI1cmVtOyB9XG4gIHRhYmxlIHRoZWFkLFxuICB0YWJsZSB0Zm9vdCB7XG4gICAgYmFja2dyb3VuZDogI2Y4ZjhmODtcbiAgICBjb2xvcjogIzBhMGEwYTsgfVxuICAgIHRhYmxlIHRoZWFkIHRyLFxuICAgIHRhYmxlIHRmb290IHRyIHtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9XG4gICAgdGFibGUgdGhlYWQgdGgsXG4gICAgdGFibGUgdGhlYWQgdGQsXG4gICAgdGFibGUgdGZvb3QgdGgsXG4gICAgdGFibGUgdGZvb3QgdGQge1xuICAgICAgcGFkZGluZzogMC41cmVtIDAuNjI1cmVtIDAuNjI1cmVtO1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gIHRhYmxlIHRib2R5IHRyOm50aC1jaGlsZChldmVuKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjFmMTsgfVxuICB0YWJsZSB0Ym9keSB0aCxcbiAgdGFibGUgdGJvZHkgdGQge1xuICAgIHBhZGRpbmc6IDAuNXJlbSAwLjYyNXJlbSAwLjYyNXJlbTsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1ZW0pIHtcbiAgdGFibGUuc3RhY2sgdGhlYWQge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgdGFibGUuc3RhY2sgdGZvb3Qge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgdGFibGUuc3RhY2sgdHIsXG4gIHRhYmxlLnN0YWNrIHRoLFxuICB0YWJsZS5zdGFjayB0ZCB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgdGFibGUuc3RhY2sgdGQge1xuICAgIGJvcmRlci10b3A6IDA7IH0gfVxuXG50YWJsZS5zY3JvbGwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIG92ZXJmbG93LXg6IGF1dG87IH1cblxudGFibGUuaG92ZXIgdHI6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjlmOWY5OyB9XG5cbnRhYmxlLmhvdmVyIHRyOm50aC1vZi10eXBlKGV2ZW4pOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VjZWNlYzsgfVxuXG4udGFibGUtc2Nyb2xsIHtcbiAgb3ZlcmZsb3cteDogYXV0bzsgfVxuICAudGFibGUtc2Nyb2xsIHRhYmxlIHtcbiAgICB3aWR0aDogYXV0bzsgfVxuXG4udGFicyB7XG4gIG1hcmdpbjogMDtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICBiYWNrZ3JvdW5kOiAjZmVmZWZlO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTZlNmU2OyB9XG4gIC50YWJzOjpiZWZvcmUsIC50YWJzOjphZnRlciB7XG4gICAgY29udGVudDogJyAnO1xuICAgIGRpc3BsYXk6IHRhYmxlOyB9XG4gIC50YWJzOjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7IH1cblxuLnRhYnMudmVydGljYWwgPiBsaSB7XG4gIHdpZHRoOiBhdXRvO1xuICBmbG9hdDogbm9uZTtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLnRhYnMuc2ltcGxlID4gbGkgPiBhIHtcbiAgcGFkZGluZzogMDsgfVxuICAudGFicy5zaW1wbGUgPiBsaSA+IGE6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9XG5cbi50YWJzLnByaW1hcnkge1xuICBiYWNrZ3JvdW5kOiAjOTJCNjMxOyB9XG4gIC50YWJzLnByaW1hcnkgPiBsaSA+IGEge1xuICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gICAgLnRhYnMucHJpbWFyeSA+IGxpID4gYTpob3ZlciwgLnRhYnMucHJpbWFyeSA+IGxpID4gYTpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kOiAjOGJhZDJmOyB9XG5cbi50YWJzLXRpdGxlIHtcbiAgZmxvYXQ6IGxlZnQ7IH1cbiAgLnRhYnMtdGl0bGUgPiBhIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAxLjI1cmVtIDEuNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBmb250LXNpemU6IDAuNzVyZW07IH1cbiAgICAudGFicy10aXRsZSA+IGE6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogI2ZlZmVmZTsgfVxuICAgIC50YWJzLXRpdGxlID4gYTpmb2N1cywgLnRhYnMtdGl0bGUgPiBhW2FyaWEtc2VsZWN0ZWQ9J3RydWUnXSB7XG4gICAgICBiYWNrZ3JvdW5kOiAjZTZlNmU2OyB9XG5cbi50YWJzLWNvbnRlbnQge1xuICBiYWNrZ3JvdW5kOiAjZmVmZWZlO1xuICB0cmFuc2l0aW9uOiBhbGwgMC41cyBlYXNlO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTZlNmU2O1xuICBib3JkZXItdG9wOiAwOyB9XG5cbi50YWJzLWNvbnRlbnQudmVydGljYWwge1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTZlNmU2O1xuICBib3JkZXItbGVmdDogMDsgfVxuXG4udGFicy1wYW5lbCB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBhZGRpbmc6IDFyZW07IH1cbiAgLnRhYnMtcGFuZWwuaXMtYWN0aXZlIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuXG4udGh1bWJuYWlsIHtcbiAgYm9yZGVyOiBzb2xpZCA0cHggI2ZlZmVmZTtcbiAgYm94LXNoYWRvdzogMCAwIDAgMXB4IHJnYmEoMTAsIDEwLCAxMCwgMC4yKTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBsaW5lLWhlaWdodDogMDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDIwMG1zIGVhc2Utb3V0O1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtOyB9XG4gIC50aHVtYm5haWw6aG92ZXIsIC50aHVtYm5haWw6Zm9jdXMge1xuICAgIGJveC1zaGFkb3c6IDAgMCA2cHggMXB4IHJnYmEoMTQ2LCAxODIsIDQ5LCAwLjUpOyB9XG5cbi50aXRsZS1iYXIge1xuICBiYWNrZ3JvdW5kOiAjMGEwYTBhO1xuICBjb2xvcjogI2ZlZmVmZTtcbiAgcGFkZGluZzogMC41cmVtOyB9XG4gIC50aXRsZS1iYXI6OmJlZm9yZSwgLnRpdGxlLWJhcjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcgJztcbiAgICBkaXNwbGF5OiB0YWJsZTsgfVxuICAudGl0bGUtYmFyOjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgLnRpdGxlLWJhciAubWVudS1pY29uIHtcbiAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07IH1cblxuLnRpdGxlLWJhci1sZWZ0IHtcbiAgZmxvYXQ6IGxlZnQ7IH1cblxuLnRpdGxlLWJhci1yaWdodCB7XG4gIGZsb2F0OiByaWdodDtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cblxuLnRpdGxlLWJhci10aXRsZSB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cblxuLm1lbnUtaWNvbi5kYXJrIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMTZweDsgfVxuICAubWVudS1pY29uLmRhcms6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAycHg7XG4gICAgYmFja2dyb3VuZDogIzBhMGEwYTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBib3gtc2hhZG93OiAwIDdweCAwICMwYTBhMGEsIDAgMTRweCAwICMwYTBhMGE7IH1cbiAgLm1lbnUtaWNvbi5kYXJrOmhvdmVyOjphZnRlciB7XG4gICAgYmFja2dyb3VuZDogIzhhOGE4YTtcbiAgICBib3gtc2hhZG93OiAwIDdweCAwICM4YThhOGEsIDAgMTRweCAwICM4YThhOGE7IH1cblxuLmhhcy10aXAge1xuICBib3JkZXItYm90dG9tOiBkb3R0ZWQgMXB4ICM4YThhOGE7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgY3Vyc29yOiBoZWxwOyB9XG5cbi50b29sdGlwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzBhMGEwYTtcbiAgY29sb3I6ICNmZWZlZmU7XG4gIGZvbnQtc2l6ZTogODAlO1xuICBwYWRkaW5nOiAwLjc1cmVtO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDEwO1xuICB0b3A6IGNhbGMoMTAwJSArIDAuNjQ5NXJlbSk7XG4gIG1heC13aWR0aDogMTByZW0gIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogMDsgfVxuICAudG9vbHRpcDo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiBpbnNldCAwLjc1cmVtO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzBhMGEwYTtcbiAgICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItdG9wLXdpZHRoOiAwO1xuICAgIGJvdHRvbTogMTAwJTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTsgfVxuICAudG9vbHRpcC50b3A6OmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgMC43NXJlbTtcbiAgICBib3JkZXItY29sb3I6ICMwYTBhMGEgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgICB0b3A6IDEwMCU7XG4gICAgYm90dG9tOiBhdXRvOyB9XG4gIC50b29sdGlwLmxlZnQ6OmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgMC43NXJlbTtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICMwYTBhMGE7XG4gICAgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgICBib3R0b206IGF1dG87XG4gICAgbGVmdDogMTAwJTtcbiAgICB0b3A6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7IH1cbiAgLnRvb2x0aXAucmlnaHQ6OmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgMC43NXJlbTtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICMwYTBhMGEgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXJpZ2h0LXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgICBib3R0b206IGF1dG87XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogMTAwJTtcbiAgICB0b3A6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7IH1cblxuLnRvcC1iYXIge1xuICBwYWRkaW5nOiAwLjVyZW07IH1cbiAgLnRvcC1iYXI6OmJlZm9yZSwgLnRvcC1iYXI6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnICc7XG4gICAgZGlzcGxheTogdGFibGU7IH1cbiAgLnRvcC1iYXI6OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDsgfVxuICAudG9wLWJhcixcbiAgLnRvcC1iYXIgdWwge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlNmU2ZTY7IH1cbiAgLnRvcC1iYXIgaW5wdXQge1xuICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAxcmVtOyB9XG4gIC50b3AtYmFyIC5pbnB1dC1ncm91cC1maWVsZCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gIC50b3AtYmFyIGlucHV0LmJ1dHRvbiB7XG4gICAgd2lkdGg6IGF1dG87IH1cbiAgLnRvcC1iYXIgLnRvcC1iYXItbGVmdCxcbiAgLnRvcC1iYXIgLnRvcC1iYXItcmlnaHQge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAudG9wLWJhciAudG9wLWJhci1sZWZ0LFxuICAgIC50b3AtYmFyIC50b3AtYmFyLXJpZ2h0IHtcbiAgICAgIHdpZHRoOiBhdXRvOyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTM3NWVtKSB7XG4gICAgLnRvcC1iYXIuc3RhY2tlZC1mb3ItbWVkaXVtIC50b3AtYmFyLWxlZnQsXG4gICAgLnRvcC1iYXIuc3RhY2tlZC1mb3ItbWVkaXVtIC50b3AtYmFyLXJpZ2h0IHtcbiAgICAgIHdpZHRoOiAxMDAlOyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzQuOTM3NWVtKSB7XG4gICAgLnRvcC1iYXIuc3RhY2tlZC1mb3ItbGFyZ2UgLnRvcC1iYXItbGVmdCxcbiAgICAudG9wLWJhci5zdGFja2VkLWZvci1sYXJnZSAudG9wLWJhci1yaWdodCB7XG4gICAgICB3aWR0aDogMTAwJTsgfSB9XG5cbi50b3AtYmFyLXRpdGxlIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbi1yaWdodDogMXJlbTsgfVxuXG4udG9wLWJhci1sZWZ0IHtcbiAgZmxvYXQ6IGxlZnQ7IH1cblxuLnRvcC1iYXItcmlnaHQge1xuICBmbG9hdDogcmlnaHQ7IH1cblxuLmhpZGUge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuLmludmlzaWJsZSB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgLmhpZGUtZm9yLXNtYWxsLW9ubHkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDBlbSksIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuc2hvdy1mb3Itc21hbGwtb25seSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAuaGlkZS1mb3ItbWVkaXVtIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45Mzc1ZW0pIHtcbiAgLnNob3ctZm9yLW1lZGl1bSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkgYW5kIChtYXgtd2lkdGg6IDYzLjkzNzVlbSkge1xuICAuaGlkZS1mb3ItbWVkaXVtLW9ubHkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5LjkzNzVlbSksIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAuc2hvdy1mb3ItbWVkaXVtLW9ubHkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmhpZGUtZm9yLWxhcmdlIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1ZW0pIHtcbiAgLnNob3ctZm9yLWxhcmdlIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSBhbmQgKG1heC13aWR0aDogNzQuOTM3NWVtKSB7XG4gIC5oaWRlLWZvci1sYXJnZS1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2My45Mzc1ZW0pLCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgLnNob3ctZm9yLWxhcmdlLW9ubHkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbi5zaG93LWZvci1zcixcbi5zaG93LW9uLWZvY3VzIHtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxcHg7XG4gIGhlaWdodDogMXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjbGlwOiByZWN0KDAsIDAsIDAsIDApOyB9XG5cbi5zaG93LW9uLWZvY3VzOmFjdGl2ZSwgLnNob3ctb24tZm9jdXM6Zm9jdXMge1xuICBwb3NpdGlvbjogc3RhdGljICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogYXV0bztcbiAgd2lkdGg6IGF1dG87XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICBjbGlwOiBhdXRvOyB9XG5cbi5zaG93LWZvci1sYW5kc2NhcGUsXG4uaGlkZS1mb3ItcG9ydHJhaXQge1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKSB7XG4gICAgLnNob3ctZm9yLWxhbmRzY2FwZSxcbiAgICAuaGlkZS1mb3ItcG9ydHJhaXQge1xuICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpIHtcbiAgICAuc2hvdy1mb3ItbGFuZHNjYXBlLFxuICAgIC5oaWRlLWZvci1wb3J0cmFpdCB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG4uaGlkZS1mb3ItbGFuZHNjYXBlLFxuLnNob3ctZm9yLXBvcnRyYWl0IHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKSB7XG4gICAgLmhpZGUtZm9yLWxhbmRzY2FwZSxcbiAgICAuc2hvdy1mb3ItcG9ydHJhaXQge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG9yaWVudGF0aW9uOiBwb3J0cmFpdCkge1xuICAgIC5oaWRlLWZvci1sYW5kc2NhcGUsXG4gICAgLnNob3ctZm9yLXBvcnRyYWl0IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH0gfVxuXG4uZmxvYXQtbGVmdCB7XG4gIGZsb2F0OiBsZWZ0ICFpbXBvcnRhbnQ7IH1cblxuLmZsb2F0LXJpZ2h0IHtcbiAgZmxvYXQ6IHJpZ2h0ICFpbXBvcnRhbnQ7IH1cblxuLmZsb2F0LWNlbnRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvOyB9XG5cbi5jbGVhcmZpeDo6YmVmb3JlLCAuY2xlYXJmaXg6OmFmdGVyIHtcbiAgY29udGVudDogJyAnO1xuICBkaXNwbGF5OiB0YWJsZTsgfVxuXG4uY2xlYXJmaXg6OmFmdGVyIHtcbiAgY2xlYXI6IGJvdGg7IH1cblxuLnNsaWRlLWluLWRvd24ubXVpLWVudGVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi5zbGlkZS1pbi1kb3duLm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9XG5cbi5zbGlkZS1pbi1sZWZ0Lm11aS1lbnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG4uc2xpZGUtaW4tbGVmdC5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgfVxuXG4uc2xpZGUtaW4tdXAubXVpLWVudGVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDAlKTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuLnNsaWRlLWluLXVwLm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9XG5cbi5zbGlkZS1pbi1yaWdodC5tdWktZW50ZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG4uc2xpZGUtaW4tcmlnaHQubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IH1cblxuLnNsaWRlLW91dC1kb3duLm11aS1sZWF2ZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi5zbGlkZS1vdXQtZG93bi5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDAlKTsgfVxuXG4uc2xpZGUtb3V0LXJpZ2h0Lm11aS1sZWF2ZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi5zbGlkZS1vdXQtcmlnaHQubXVpLWxlYXZlLm11aS1sZWF2ZS1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7IH1cblxuLnNsaWRlLW91dC11cC5tdWktbGVhdmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG4uc2xpZGUtb3V0LXVwLm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTsgfVxuXG4uc2xpZGUtb3V0LWxlZnQubXVpLWxlYXZlIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuLnNsaWRlLW91dC1sZWZ0Lm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTsgfVxuXG4uZmFkZS1pbi5tdWktZW50ZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eTsgfVxuXG4uZmFkZS1pbi5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIG9wYWNpdHk6IDE7IH1cblxuLmZhZGUtb3V0Lm11aS1sZWF2ZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICBvcGFjaXR5OiAxO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5OyB9XG5cbi5mYWRlLW91dC5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIG9wYWNpdHk6IDA7IH1cblxuLmhpbmdlLWluLWZyb20tdG9wLm11aS1lbnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWCgtOTBkZWcpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3A7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uaGluZ2UtaW4tZnJvbS10b3AubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICBvcGFjaXR5OiAxOyB9XG5cbi5oaW5nZS1pbi1mcm9tLXJpZ2h0Lm11aS1lbnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWSgtOTBkZWcpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAwOyB9XG5cbi5oaW5nZS1pbi1mcm9tLXJpZ2h0Lm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uaGluZ2UtaW4tZnJvbS1ib3R0b20ubXVpLWVudGVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVYKDkwZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogYm90dG9tO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLmhpbmdlLWluLWZyb20tYm90dG9tLm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uaGluZ2UtaW4tZnJvbS1sZWZ0Lm11aS1lbnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWSg5MGRlZyk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQ7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uaGluZ2UtaW4tZnJvbS1sZWZ0Lm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uaGluZ2UtaW4tZnJvbS1taWRkbGUteC5tdWktZW50ZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVgoLTkwZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLmhpbmdlLWluLWZyb20tbWlkZGxlLXgubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICBvcGFjaXR5OiAxOyB9XG5cbi5oaW5nZS1pbi1mcm9tLW1pZGRsZS15Lm11aS1lbnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWSgtOTBkZWcpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uaGluZ2UtaW4tZnJvbS1taWRkbGUteS5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGUoMGRlZyk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLmhpbmdlLW91dC1mcm9tLXRvcC5tdWktbGVhdmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogdG9wO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLmhpbmdlLW91dC1mcm9tLXRvcC5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVYKC05MGRlZyk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLmhpbmdlLW91dC1mcm9tLXJpZ2h0Lm11aS1sZWF2ZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAxOyB9XG5cbi5oaW5nZS1vdXQtZnJvbS1yaWdodC5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVZKC05MGRlZyk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLmhpbmdlLW91dC1mcm9tLWJvdHRvbS5tdWktbGVhdmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogYm90dG9tO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLmhpbmdlLW91dC1mcm9tLWJvdHRvbS5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVYKDkwZGVnKTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uaGluZ2Utb3V0LWZyb20tbGVmdC5tdWktbGVhdmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAxOyB9XG5cbi5oaW5nZS1vdXQtZnJvbS1sZWZ0Lm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVkoOTBkZWcpO1xuICBvcGFjaXR5OiAwOyB9XG5cbi5oaW5nZS1vdXQtZnJvbS1taWRkbGUteC5tdWktbGVhdmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLmhpbmdlLW91dC1mcm9tLW1pZGRsZS14Lm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVgoLTkwZGVnKTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uaGluZ2Utb3V0LWZyb20tbWlkZGxlLXkubXVpLWxlYXZlIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGUoMGRlZyk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAxOyB9XG5cbi5oaW5nZS1vdXQtZnJvbS1taWRkbGUteS5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVZKC05MGRlZyk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLnNjYWxlLWluLXVwLm11aS1lbnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuNSk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uc2NhbGUtaW4tdXAubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICBvcGFjaXR5OiAxOyB9XG5cbi5zY2FsZS1pbi1kb3duLm11aS1lbnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEuNSk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uc2NhbGUtaW4tZG93bi5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLnNjYWxlLW91dC11cC5tdWktbGVhdmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAxOyB9XG5cbi5zY2FsZS1vdXQtdXAubXVpLWxlYXZlLm11aS1sZWF2ZS1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHNjYWxlKDEuNSk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLnNjYWxlLW91dC1kb3duLm11aS1sZWF2ZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLnNjYWxlLW91dC1kb3duLm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjUpO1xuICBvcGFjaXR5OiAwOyB9XG5cbi5zcGluLWluLm11aS1lbnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtMC43NXR1cm4pO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLnNwaW4taW4ubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgwKTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uc3Bpbi1vdXQubXVpLWxlYXZlIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogcm90YXRlKDApO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLnNwaW4tb3V0Lm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMC43NXR1cm4pO1xuICBvcGFjaXR5OiAwOyB9XG5cbi5zcGluLWluLWNjdy5tdWktZW50ZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMC43NXR1cm4pO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLnNwaW4taW4tY2N3Lm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLnNwaW4tb3V0LWNjdy5tdWktbGVhdmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uc3Bpbi1vdXQtY2N3Lm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTAuNzV0dXJuKTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uc2xvdyB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDc1MG1zICFpbXBvcnRhbnQ7IH1cblxuLmZhc3Qge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAyNTBtcyAhaW1wb3J0YW50OyB9XG5cbi5saW5lYXIge1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyICFpbXBvcnRhbnQ7IH1cblxuLmVhc2Uge1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZSAhaW1wb3J0YW50OyB9XG5cbi5lYXNlLWluIHtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4gIWltcG9ydGFudDsgfVxuXG4uZWFzZS1vdXQge1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQgIWltcG9ydGFudDsgfVxuXG4uZWFzZS1pbi1vdXQge1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQgIWltcG9ydGFudDsgfVxuXG4uYm91bmNlLWluIHtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQ4NSwgMC4xNTUsIDAuMjQsIDEuMjQ1KSAhaW1wb3J0YW50OyB9XG5cbi5ib3VuY2Utb3V0IHtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQ4NSwgMC4xNTUsIDAuNTE1LCAwLjg0NSkgIWltcG9ydGFudDsgfVxuXG4uYm91bmNlLWluLW91dCB7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC43NiwgLTAuMjQ1LCAwLjI0LCAxLjI0NSkgIWltcG9ydGFudDsgfVxuXG4uc2hvcnQtZGVsYXkge1xuICB0cmFuc2l0aW9uLWRlbGF5OiAzMDBtcyAhaW1wb3J0YW50OyB9XG5cbi5sb25nLWRlbGF5IHtcbiAgdHJhbnNpdGlvbi1kZWxheTogNzAwbXMgIWltcG9ydGFudDsgfVxuXG4uc2hha2Uge1xuICBhbmltYXRpb24tbmFtZTogc2hha2UtNzsgfVxuXG5Aa2V5ZnJhbWVzIHNoYWtlLTcge1xuICAwJSwgMTAlLCAyMCUsIDMwJSwgNDAlLCA1MCUsIDYwJSwgNzAlLCA4MCUsIDkwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDclKTsgfVxuICA1JSwgMTUlLCAyNSUsIDM1JSwgNDUlLCA1NSUsIDY1JSwgNzUlLCA4NSUsIDk1JSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC03JSk7IH0gfVxuXG4uc3Bpbi1jdyB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzcGluLWN3LTF0dXJuOyB9XG5cbkBrZXlmcmFtZXMgc3Bpbi1jdy0xdHVybiB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMXR1cm4pOyB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDApOyB9IH1cblxuLnNwaW4tY2N3IHtcbiAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tY3ctMXR1cm47IH1cblxuQGtleWZyYW1lcyBzcGluLWN3LTF0dXJuIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDApOyB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDF0dXJuKTsgfSB9XG5cbi53aWdnbGUge1xuICBhbmltYXRpb24tbmFtZTogd2lnZ2xlLTdkZWc7IH1cblxuQGtleWZyYW1lcyB3aWdnbGUtN2RlZyB7XG4gIDQwJSwgNTAlLCA2MCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDdkZWcpOyB9XG4gIDM1JSwgNDUlLCA1NSUsIDY1JSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTdkZWcpOyB9XG4gIDAlLCAzMCUsIDcwJSwgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMCk7IH0gfVxuXG4uc2hha2UsXG4uc3Bpbi1jdyxcbi5zcGluLWNjdyxcbi53aWdnbGUge1xuICBhbmltYXRpb24tZHVyYXRpb246IDUwMG1zOyB9XG5cbi5pbmZpbml0ZSB7XG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlOyB9XG5cbi5zbG93IHtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiA3NTBtcyAhaW1wb3J0YW50OyB9XG5cbi5mYXN0IHtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAyNTBtcyAhaW1wb3J0YW50OyB9XG5cbi5saW5lYXIge1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXIgIWltcG9ydGFudDsgfVxuXG4uZWFzZSB7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UgIWltcG9ydGFudDsgfVxuXG4uZWFzZS1pbiB7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4gIWltcG9ydGFudDsgfVxuXG4uZWFzZS1vdXQge1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dCAhaW1wb3J0YW50OyB9XG5cbi5lYXNlLWluLW91dCB7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0ICFpbXBvcnRhbnQ7IH1cblxuLmJvdW5jZS1pbiB7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQ4NSwgMC4xNTUsIDAuMjQsIDEuMjQ1KSAhaW1wb3J0YW50OyB9XG5cbi5ib3VuY2Utb3V0IHtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNDg1LCAwLjE1NSwgMC41MTUsIDAuODQ1KSAhaW1wb3J0YW50OyB9XG5cbi5ib3VuY2UtaW4tb3V0IHtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNzYsIC0wLjI0NSwgMC4yNCwgMS4yNDUpICFpbXBvcnRhbnQ7IH1cblxuLnNob3J0LWRlbGF5IHtcbiAgYW5pbWF0aW9uLWRlbGF5OiAzMDBtcyAhaW1wb3J0YW50OyB9XG5cbi5sb25nLWRlbGF5IHtcbiAgYW5pbWF0aW9uLWRlbGF5OiA3MDBtcyAhaW1wb3J0YW50OyB9XG5cbi50aXRsZS1iYXIge1xuICBwYWRkaW5nOiAxNXB4O1xuICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XG4gIGJhY2tncm91bmQ6ICNFOUIwMDA7IH1cblxuLnRvcC1iYXIge1xuICBtaW4taGVpZ2h0OiA0NXB4O1xuICBwYWRkaW5nOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRTlCMDAwOyB9XG4gIC50b3AtYmFyIHVsIHtcbiAgICBiYWNrZ3JvdW5kOiAjRTlCMDAwOyB9XG4gICAgLnRvcC1iYXIgdWwgbGkgYSB7XG4gICAgICBsaW5lLWhlaWdodDogNDVweDtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcGFkZGluZzogMCAxNXB4O1xuICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgY29sb3I6ICNGRkZGRkY7IH1cbiAgICAudG9wLWJhciB1bCBsaSBhOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM3OTNFOTc7XG4gICAgICBjb2xvcjogI2ZmZjsgfVxuXG4udG9wLWJhci1yaWdodCB7XG4gIHBhZGRpbmc6IDVweCAxNXB4OyB9XG4gIC50b3AtYmFyLXJpZ2h0IC5zZWFyY2gge1xuICAgIG1heC13aWR0aDogMzAwcHg7IH1cbiAgICAudG9wLWJhci1yaWdodCAuc2VhcmNoIGlucHV0IHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIGhlaWdodDogMzVweDsgfVxuICAgIC50b3AtYmFyLXJpZ2h0IC5zZWFyY2ggLnN0ZXh0IHtcbiAgICAgIHdpZHRoOiA2MCU7IH1cblxuLmxlZnRtZW51IHtcbiAgYm9yZGVyOiBub25lO1xuICBib3gtc2hhZG93OiAwcHggMnB4IDEwcHggMHB4IHJnYmEoNTAsIDUwLCA1MCwgMC41KTtcbiAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLmxlZnRtZW51IC5oZWFkZXIge1xuICAgIGJhY2tncm91bmQ6ICM5MkI2MzE7XG4gICAgaGVpZ2h0OiA0NXB4O1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBjb2xvcjogI0ZGRkZGRjtcbiAgICBwYWRkaW5nOiAxMHB4IDEwcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLmxlZnRtZW51IHVsIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDsgfVxuICAgIC5sZWZ0bWVudSB1bCBsaSB7XG4gICAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0VBRUFFQTtcbiAgICAgIGNvbG9yOiAjNDY0NjQ2OyB9XG4gICAgICAubGVmdG1lbnUgdWwgbGk6bGFzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7IH1cbiAgICAgIC5sZWZ0bWVudSB1bCBsaSBhIHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtIDEuOXJlbTtcbiAgICAgICAgY29sb3I6ICM0NjQ2NDY7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgICAubGVmdG1lbnUgdWwgbGkgYTpob3ZlciB7XG4gICAgICAgIGNvbG9yOiAjRkZGRkZGO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjODc0NUE4O1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDIuMHJlbTsgfVxuXG4uZHJvcGRvd24ubWVudSAuc3VibWVudSB7XG4gIGJvcmRlcjogbm9uZTsgfVxuXG4uZHJvcGRvd24ubWVudSAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQuaXMtcmlnaHQtYXJyb3cgPiBhOjphZnRlciB7XG4gIGJvcmRlci1jb2xvcjogI2ZmZiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDsgfVxuXG4uaXMtZHJpbGxkb3duLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIge1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICNmZmY7IH1cblxuLmpzLWRyaWxsZG93bi1iYWNrOjpiZWZvcmUge1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICNmZmYgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7IH1cblxuLm1lbnUuZHJvcGRvd24gLnN1Ym1lbnUge1xuICBib3JkZXI6IG5vbmU7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIGJveC1zaGFkb3c6IDBweCAycHggMTBweCAwcHggcmdiYSg1MCwgNTAsIDUwLCAwLjUpO1xuICB0cmFuc2l0aW9uOiAwLjRzIGVhc2U7IH1cbiAgLm1lbnUuZHJvcGRvd24gLnN1Ym1lbnUgbGkge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjRUFFQUVBO1xuICAgIGNvbG9yOiAjNDY0NjQ2OyB9XG4gICAgLm1lbnUuZHJvcGRvd24gLnN1Ym1lbnUgbGk6bGFzdC1jaGlsZCB7XG4gICAgICBib3JkZXItYm90dG9tOiBub25lOyB9XG4gICAgLm1lbnUuZHJvcGRvd24gLnN1Ym1lbnUgbGkgYSB7XG4gICAgICBsaW5lLWhlaWdodDogNDBweDtcbiAgICAgIGNvbG9yOiAjNDY0NjQ2OyB9XG4gICAgLm1lbnUuZHJvcGRvd24gLnN1Ym1lbnUgbGkgYTpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzkzRTk3O1xuICAgICAgY29sb3I6ICNmZmY7IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTM3NWVtKSB7XG4gIC5uby1qcyAudG9wLWJhciB7XG4gICAgZGlzcGxheTogbm9uZTsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLm5vLWpzIC50aXRsZS1iYXIge1xuICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG4uY29udGVudC10YWJzIC50YWJzIHtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0VBRUFFQTsgfVxuXG4uY29udGVudC10YWJzIC50YWJzLXRpdGxlID4gYSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5MkI2MzE7XG4gIHBhZGRpbmc6IDEuMHJlbSAxLjlyZW07XG4gIGNvbG9yOiAjRkZGRkZGO1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjRkZGRkZGOyB9XG5cbi5jb250ZW50LXRhYnMgYTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3OTNFOTc7XG4gIGNvbG9yOiAjRkZGRkZGOyB9XG5cbi5jb250ZW50LXRhYnMgLnRhYnMtY29udGVudCB7XG4gIGhlaWdodDogMjAwcHg7IH1cblxuI2hlYWRlciAjY2FydCB7XG4gIHJpZ2h0OiBhdXRvOyB9XG4iLCIvKipcclxuICogRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxyXG4gKiBWZXJzaW9uIDYuMi4zXHJcbiAqIGZvdW5kYXRpb24uenVyYi5jb21cclxuICogTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXHJcbiAqL1xyXG5cclxuLy8gU2FzcyB1dGlsaXRpZXNcclxuQGltcG9ydCAndXRpbC91dGlsJztcclxuXHJcbi8vIEdsb2JhbCB2YXJpYWJsZXMgYW5kIHN0eWxlc1xyXG5AaW1wb3J0ICdnbG9iYWwnO1xyXG5cclxuLy8gQ29tcG9uZW50c1xyXG5AaW1wb3J0ICdncmlkL2dyaWQnO1xyXG5AaW1wb3J0ICd0eXBvZ3JhcGh5L3R5cG9ncmFwaHknO1xyXG5AaW1wb3J0ICdmb3Jtcy9mb3Jtcyc7XHJcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdmlzaWJpbGl0eSc7XHJcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZmxvYXQnO1xyXG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbic7XHJcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnV0dG9uLWdyb3VwJztcclxuQGltcG9ydCAnY29tcG9uZW50cy9hY2NvcmRpb24tbWVudSc7XHJcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYWNjb3JkaW9uJztcclxuQGltcG9ydCAnY29tcG9uZW50cy9iYWRnZSc7XHJcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnJlYWRjcnVtYnMnO1xyXG5AaW1wb3J0ICdjb21wb25lbnRzL2NhbGxvdXQnO1xyXG5AaW1wb3J0ICdjb21wb25lbnRzL2Nsb3NlLWJ1dHRvbic7XHJcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZHJpbGxkb3duJztcclxuQGltcG9ydCAnY29tcG9uZW50cy9kcm9wZG93bi1tZW51JztcclxuQGltcG9ydCAnY29tcG9uZW50cy9kcm9wZG93bic7XHJcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZmxleCc7XHJcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZmxleC12aWRlbyc7XHJcbkBpbXBvcnQgJ2NvbXBvbmVudHMvbGFiZWwnO1xyXG5AaW1wb3J0ICdjb21wb25lbnRzL21lZGlhLW9iamVjdCc7XHJcbkBpbXBvcnQgJ2NvbXBvbmVudHMvbWVudSc7XHJcbkBpbXBvcnQgJ2NvbXBvbmVudHMvbWVudS1pY29uJztcclxuQGltcG9ydCAnY29tcG9uZW50cy9vZmYtY2FudmFzJztcclxuQGltcG9ydCAnY29tcG9uZW50cy9vcmJpdCc7XHJcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcGFnaW5hdGlvbic7XHJcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcHJvZ3Jlc3MtYmFyJztcclxuQGltcG9ydCAnY29tcG9uZW50cy9yZXZlYWwnO1xyXG5AaW1wb3J0ICdjb21wb25lbnRzL3NsaWRlcic7XHJcbkBpbXBvcnQgJ2NvbXBvbmVudHMvc3RpY2t5JztcclxuQGltcG9ydCAnY29tcG9uZW50cy9zd2l0Y2gnO1xyXG5AaW1wb3J0ICdjb21wb25lbnRzL3RhYmxlJztcclxuQGltcG9ydCAnY29tcG9uZW50cy90YWJzJztcclxuQGltcG9ydCAnY29tcG9uZW50cy90aXRsZS1iYXInO1xyXG5AaW1wb3J0ICdjb21wb25lbnRzL3RvcC1iYXInO1xyXG5AaW1wb3J0ICdjb21wb25lbnRzL3RodW1ibmFpbCc7XHJcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdG9vbHRpcCc7XHJcblxyXG5AbWl4aW4gZm91bmRhdGlvbi1ldmVyeXRoaW5nKCRmbGV4OiBmYWxzZSkge1xyXG4gIEBpZiAkZmxleCB7XHJcbiAgICAkZ2xvYmFsLWZsZXhib3g6IHRydWUgIWdsb2JhbDtcclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZ2xvYmFsLXN0eWxlcztcclxuICBAaWYgbm90ICRmbGV4IHtcclxuICAgIEBpbmNsdWRlIGZvdW5kYXRpb24tZ3JpZDtcclxuICB9XHJcbiAgQGVsc2Uge1xyXG4gICAgQGluY2x1ZGUgZm91bmRhdGlvbi1mbGV4LWdyaWQ7XHJcbiAgfVxyXG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdHlwb2dyYXBoeTtcclxuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZvcm1zO1xyXG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYnV0dG9uO1xyXG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYWNjb3JkaW9uO1xyXG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYWNjb3JkaW9uLW1lbnU7XHJcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1iYWRnZTtcclxuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWJyZWFkY3J1bWJzO1xyXG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYnV0dG9uLWdyb3VwO1xyXG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tY2FsbG91dDtcclxuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWNsb3NlLWJ1dHRvbjtcclxuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW1lbnU7XHJcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1tZW51LWljb247XHJcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1kcmlsbGRvd24tbWVudTtcclxuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWRyb3Bkb3duO1xyXG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZHJvcGRvd24tbWVudTtcclxuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZsZXgtdmlkZW87XHJcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1sYWJlbDtcclxuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW1lZGlhLW9iamVjdDtcclxuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW9mZi1jYW52YXM7XHJcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1vcmJpdDtcclxuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXBhZ2luYXRpb247XHJcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1wcm9ncmVzcy1iYXI7XHJcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1zbGlkZXI7XHJcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1zdGlja3k7XHJcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1yZXZlYWw7XHJcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1zd2l0Y2g7XHJcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10YWJsZTtcclxuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRhYnM7XHJcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10aHVtYm5haWw7XHJcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10aXRsZS1iYXI7XHJcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10b29sdGlwO1xyXG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdG9wLWJhcjtcclxuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXZpc2liaWxpdHktY2xhc3NlcztcclxuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZsb2F0LWNsYXNzZXM7XHJcblxyXG4gIEBpZiAkZmxleCB7XHJcbiAgICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZsZXgtY2xhc3NlcztcclxuICB9XHJcbn1cclxuIiwiLyogTmV3IFN0eWxlIEJlZ2luICovXHJcblxyXG4vLy5pZC1iYXIge1xyXG4vLyAgICBiYWNrZ3JvdW5kOiM4NzQ1QTg7XHJcbi8vICAgIC8vbWFyZ2luOjAgMzBweDtcclxuLy99XHJcblxyXG5cclxuXHJcblxyXG5odG1sIHtcclxuICBvdmVyZmxvdy15OiBzY3JvbGw7XHJcbiAgbWFyZ2luOiAwO1xyXG4gIHBhZGRpbmc6IDA7XHJcbn1cclxuXHJcbmJvZHkge1xyXG4gIGxpbmUtaGVpZ2h0OiAxOHB4O1xyXG4gIG1hcmdpbjogMHB4O1xyXG4gIHBhZGRpbmc6IDBweDtcclxuICBmb250LXNpemU6IDEycHg7XHJcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG59XHJcblxyXG50ZCwgdGgsIGlucHV0LCB0ZXh0YXJlYSwgc2VsZWN0IHtcclxuICBmb250LXNpemU6IDEycHg7XHJcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG59XHJcblxyXG5hIHtcclxuICBmb250LXNpemU6IDEycHg7XHJcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4gMHM7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAmOnZpc2l0ZWQge1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gIH1cclxuICAmOmxpbms6YWZ0ZXIsICY6dmlzaXRlZDphZnRlciB7XHJcbiAgICBjb250ZW50OiBcIlwiO1xyXG4gIH1cclxufVxyXG5cclxuaDEsIGgyLCBoMywgaDQsIGg1LCBoNiB7XHJcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XHJcbiAgbGluZS1oZWlnaHQ6IDEuNTtcclxufVxyXG5cclxuaDEge1xyXG4gIGZvbnQtc2l6ZTogMzBweDtcclxufVxyXG5cclxuaDIge1xyXG4gIGZvbnQtc2l6ZTogMjJweDtcclxufVxyXG5cclxuaDMge1xyXG4gIGZvbnQtc2l6ZTogMTlweDtcclxufVxyXG5cclxuaDQge1xyXG4gIGZvbnQtc2l6ZTogMTRweDtcclxufVxyXG5cclxuaDUge1xyXG4gIGZvbnQtc2l6ZTogMTNweDtcclxufVxyXG5cclxuaDYge1xyXG4gIGZvbnQtc2l6ZTogMTJweDtcclxufVxyXG5cclxudWwge1xyXG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcclxufVxyXG5cclxuLndlbGNvbWUge1xyXG4gIG1hcmdpbi10b3A6IDBweDtcclxuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG4gIGZvbnQtc2l6ZTogMzBweDtcclxuICBmb250LXdlaWdodDogbm9ybWFsO1xyXG59XHJcblxyXG5mb3JtIHtcclxuICBwYWRkaW5nOiAwO1xyXG4gIG1hcmdpbjogMDtcclxuICBkaXNwbGF5OiBpbmxpbmU7XHJcbn1cclxuXHJcbmlucHV0IHtcclxuICAmW3R5cGU9XCJ0ZXh0XCJdLCAmW3R5cGU9XCJwYXNzd29yZFwiXSwgJlt0eXBlPVwiZGF0ZVwiXSwgJlt0eXBlPVwiZGF0ZXRpbWVcIl0sICZbdHlwZT1cImVtYWlsXCJdLCAmW3R5cGU9XCJudW1iZXJcIl0sICZbdHlwZT1cInNlYXJjaFwiXSwgJlt0eXBlPVwidGVsXCJdLCAmW3R5cGU9XCJ0aW1lXCJdLCAmW3R5cGU9XCJ1cmxcIl0ge1xyXG4gICAgYmFja2dyb3VuZDogI0ZGRkZGRjtcclxuICAgIGJvcmRlci1jb2xvcjogI0RGREZERiAjRUZFRkVGICNFRkVGRUYgI0RGREZERjtcclxuICAgIGJvcmRlci1yYWRpdXM6IDA7XHJcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xyXG4gICAgYm9yZGVyLXdpZHRoOiAxcHg7XHJcbiAgICBwYWRkaW5nOiA5cHg7XHJcbiAgICBtYXJnaW46IDVweCAwO1xyXG4gICAgd2lkdGg6IGF1dG87XHJcbiAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICBib3gtc2hhZG93OiBub25lO1xyXG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGxpbmVhciAwcztcclxuICB9XHJcbiAgIFxyXG59XHJcblxyXG5cclxuI2NvbnRlbnQgdGV4dGFyZWEsICNjb250ZW50IHNlbGVjdCB7XHJcbiAgLy9iYWNrZ3JvdW5kOiAjRkZGRkZGO1xyXG4gIGJvcmRlci1jb2xvcjogI0RGREZERiAjRUZFRkVGICNFRkVGRUYgI0RGREZERjtcclxuICBib3JkZXItcmFkaXVzOiAwO1xyXG4gIGJvcmRlci1zdHlsZTogc29saWQ7XHJcbiAgYm9yZGVyLXdpZHRoOiAxcHg7XHJcbiAgLy9wYWRkaW5nOiA5cHg7IFBBRERJTkcgV0lMTCBISURFIFRIRSBBUlJPVyBPRiBTRUxFQ1QgQk9YICBcclxuICBtYXJnaW46IDVweCAwO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogYXV0bztcclxuICBib3gtc2hhZG93OiBub25lO1xyXG4gIHRyYW5zaXRpb246IGFsbCAwLjE1cyBsaW5lYXIgMHM7XHJcbn1cclxuXHJcbmlucHV0IHtcclxuICAmW3R5cGU9XCJ0ZXh0XCJdOmZvY3VzLCAmW3R5cGU9XCJwYXNzd29yZFwiXTpmb2N1cywgJlt0eXBlPVwiZGF0ZVwiXTpmb2N1cywgJlt0eXBlPVwiZGF0ZXRpbWVcIl06Zm9jdXMsICZbdHlwZT1cImVtYWlsXCJdOmZvY3VzLCAmW3R5cGU9XCJudW1iZXJcIl06Zm9jdXMsICZbdHlwZT1cInNlYXJjaFwiXTpmb2N1cywgJlt0eXBlPVwidGVsXCJdOmZvY3VzLCAmW3R5cGU9XCJ0aW1lXCJdOmZvY3VzLCAmW3R5cGU9XCJ1cmxcIl06Zm9jdXMge1xyXG4gICAgXHJcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNFNDJEOUY7XHJcbiAgICAgIC8vIGJveC1zaGFkb3c6IDAgMCA4cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xyXG4gICAgICAvLyBib3gtc2hhZG93OiAwcHggMnB4IDEwcHggMHB4IHJnYmEoMTQ2LCAxODIsIDQ5LCAwLjk4KTtcclxuICAgICAgLy8gYm94LXNoYWRvdzogMCAwIDhweCByZ2IoMjI4LCA0NywgMTU5KTtcclxuICB9XHJcbn1cclxuXHJcbiNjb250ZW50IHRleHRhcmVhOmZvY3VzLCAjY29udGVudCBzZWxlY3Q6Zm9jdXMge1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkICNFNDJEOUY7XHJcbiAgLy9ib3gtc2hhZG93OiAwIDAgOHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcclxufVxyXG5cclxubGFiZWwge1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxuICBkaXNwbGF5OiBpbmxpbmU7XHJcbn1cclxuXHJcbnByZSB7XHJcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XHJcbiAgbGluZS1oZWlnaHQ6IDE4cHg7XHJcbn1cclxuXHJcbnNtYWxsIHtcclxuICBmb250LXNpemU6IDkwJTtcclxufVxyXG5cclxuLmhpZ2hsaWdodCB7XHJcbiAgYmFja2dyb3VuZDogbm9uZTtcclxufVxyXG5cclxuLyogQnV0dG9ucyAqL1xyXG5cclxuYS5idXR0b24sIGlucHV0LmJ1dHRvbiB7XHJcbiAgYm9yZGVyOiBub25lO1xyXG4gIGJveC1zaGFkb3c6IG5vbmU7XHJcbiAgZm9udC1zaXplOiAxMnB4O1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBwYWRkaW5nOiAxMHB4IDEycHg7XHJcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbiAwcztcclxuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XHJcbn1cclxuXHJcbmEuYnV0dG9uLWV4Y2x1c2l2ZSwgaW5wdXQuYnV0dG9uLWV4Y2x1c2l2ZSB7XHJcbiAgYm9yZGVyOiBub25lO1xyXG4gIGJveC1zaGFkb3c6IG5vbmU7XHJcbiAgZm9udC1zaXplOiAxMnB4O1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBwYWRkaW5nOiAxMHB4IDEycHg7XHJcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbiAwcztcclxuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XHJcbn1cclxuXHJcbi5idXR0b25zIHtcclxuICBvdmVyZmxvdzogYXV0bztcclxuICBwYWRkaW5nOiA2cHg7XHJcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxuICAubGVmdCB7XHJcbiAgICBmbG9hdDogbGVmdDtcclxuICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgfVxyXG4gIC5yaWdodCB7XHJcbiAgICBmbG9hdDogcmlnaHQ7XHJcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcclxuICB9XHJcbiAgLmNlbnRlciB7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcclxuICAgIG1hcmdpbi1yaWdodDogYXV0bztcclxuICB9XHJcbn1cclxuXHJcbi8vIExBWU9VVFxyXG5cclxuLndyYXBwZXIge1xyXG4gIG1hcmdpbjogMCBhdXRvO1xyXG4gIHBhZGRpbmc6IDAgMTBweDtcclxuICBtYXJnaW4tYm90dG9tOiAyNXB4O1xyXG4gIHdpZHRoOiBhdXRvO1xyXG4gIG1heC13aWR0aDogOTgwcHg7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxufVxyXG5cclxuLy8ucm93IHsgICBcclxuLy8gIG1pbi13aWR0aDogaW5oZXJpdDtcclxuLy8gIHdpZHRoOiA5NjBweDtcclxuLy99XHJcblxyXG5AbWVkaWEgKG1pbi13aWR0aDogOTgwcHgpIGFuZCAobWF4LXdpZHRoOiAxMDQwcHgpIHtcclxuICAud3JhcHBlciB7XHJcbiAgICBtYXJnaW46IDAgMzBweDtcclxuICB9XHJcbn1cclxuXHJcbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6IDk3OXB4KSB7XHJcbiAgLndyYXBwZXIge1xyXG4gICAgbWFyZ2luOiAwIDEwcHg7XHJcbiAgfVxyXG59XHJcblxyXG4jbWlkc2VjdGlvbiB7XHJcbiAgbWFyZ2luLXRvcDogMjVweDtcclxuICAgIFxyXG59XHJcblxyXG4jY29udGVudCB7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgbWluLWhlaWdodDogNDAwcHg7XHJcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxuIFxyXG59XHJcblxyXG4jY29sdW1uLWxlZnQge1xyXG4gIG1hcmdpbi1ib3R0b206IDMwcHg7ICAgIFxyXG59XHJcblxyXG4jY29sdW1uLXJpZ2h0IHtcclxuICBmbG9hdDogcmlnaHQ7XHJcbiAgbWFyZ2luLWJvdHRvbTogMzBweDtcclxufVxyXG5cclxuI2NvbHVtbi1sZWZ0ICsgI2NvbHVtbi1yaWdodCArICNjb250ZW50IHtcclxuICB3aWR0aDogNTAlO1xyXG59XHJcblxyXG4jY29sdW1uLXJpZ2h0ICsgI2NvbnRlbnQsICNjb2x1bW4tbGVmdCArICNjb250ZW50IHtcclxuICB3aWR0aDogNzUlO1xyXG59XHJcblxyXG4ub3Age1xyXG4gIGZsb2F0OiBub25lO1xyXG59XHJcblxyXG4jY29sdW1uLWxlZnQgKyB7XHJcbiAgLm9wLCAjY29sdW1uLXJpZ2h0ICsgLm9wIHtcclxuICAgIGZsb2F0OiBsZWZ0O1xyXG4gIH1cclxufVxyXG5cclxuLyogU2Nyb2xsZWQgVG9wIEJhciAqL1xyXG5cclxuLmlzLXN0aWNreSAjaGVhZGVyIHtcclxuICBib3gtc2hhZG93OiAwIDAgMTBweCAwIHJnYmEoMCwgMCwgMCwgMC4zNSk7XHJcbiAgcG9zaXRpb246IGZpeGVkO1xyXG4gIHRvcDogMDtcclxuICBsZWZ0OiAwO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIHBhZGRpbmc6IDA7XHJcbiAgbWFyZ2luLWxlZnQ6IDA7XHJcbiAgei1pbmRleDogMTAwMDE7XHJcbiAgb3BhY2l0eTogMC45NztcclxuICAjdC1oZWFkZXIge1xyXG4gICAgbWluLWhlaWdodDogaW5oZXJpdDtcclxuICAgIHBhZGRpbmc6IDEwcHggMCA1cHg7XHJcbiAgfVxyXG4gICNsb2dvIGltZyB7XHJcbiAgICBtYXgtaGVpZ2h0OiA0MHB4O1xyXG4gIH1cclxuICAjc2VhcmNoIHtcclxuICAgIG1hcmdpbi10b3A6IDdweDtcclxuICB9XHJcbiAgI2NhcnQge1xyXG4gICAgdG9wOiAzcHg7XHJcbiAgfVxyXG4gICNtZW51IHtcclxuICAgIG1pbi1oZWlnaHQ6IDQwcHg7XHJcbiAgICBoZWlnaHQ6IDQwcHg7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgYm9yZGVyLXRvcDogbm9uZTtcclxuICAgIGJvcmRlci1ib3R0b206IG5vbmU7XHJcbiAgICAjaG9tZXBhZ2UgYSB7XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiA0MHB4O1xyXG4gICAgfVxyXG4gIH1cclxuICAjbWVudV92ID4gdWwgPiBsaSA+IGEsICNtZW51X2ggPiB1bCA+IGxpID4gYSwgI21lbnVfb2MgPiB1bCA+IGxpID4gYSwgI21lbnVfYnJhbmRzID4gdWwgPiBsaSA+IGEsIC5tZW51X2xpbmtzIGEsICNtZW51X2N1c3RvbV9tZW51ID4gdWwgPiBsaSA+IGEsIC5tZW51X2N1c3RvbV9ibG9jayA+IHVsID4gbGkgPiBhLCAjbWVudV9pbmZvcm1hdGlvbnMgPiB1bCA+IGxpID4gYSwgI21lbnVfY29udGFjdHMgPiB1bCA+IGxpID4gYSB7XHJcbiAgICBsaW5lLWhlaWdodDogNDBweDtcclxuICB9XHJcbn1cclxuXHJcbi8qIFRvcCBsaW5lICovXHJcblxyXG4jdG9wLWxpbmUge1xyXG4gIG1pbi1oZWlnaHQ6IDI4cHg7XHJcbiAgbGluZS1oZWlnaHQ6IDI4cHg7XHJcbiAgcGFkZGluZzogMCAxMHB4O1xyXG4gIG1hcmdpbi1sZWZ0OiAtMTBweDtcclxuICBtYXJnaW4tcmlnaHQ6IC0xMHB4O1xyXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbn1cclxuXHJcbi8qIFRvcCBXZWxjb21lICovXHJcblxyXG4jd2VsY29tZSB7XHJcbiAgZm9udC1zaXplOiAxMHB4O1xyXG4gIGEge1xyXG4gICAgZm9udC1zaXplOiAxMHB4O1xyXG4gIH1cclxufVxyXG5cclxuXHJcblxyXG4vKiBDb250ZW50ICovXHJcblxyXG4jY29udGVudCAuY29udGVudCB7XHJcbiAgcGFkZGluZzogMjBweDtcclxuICBvdmVyZmxvdzogYXV0bztcclxuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG4gIC5sZWZ0IHtcclxuICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgd2lkdGg6IDQ5JTtcclxuICB9XHJcbiAgLnJpZ2h0IHtcclxuICAgIGZsb2F0OiByaWdodDtcclxuICAgIHdpZHRoOiA0OSU7XHJcbiAgfVxyXG4gIGlucHV0IHtcclxuICAgICZbdHlwZT1cInRleHRcIl0sICZbdHlwZT1cInBhc3N3b3JkXCJdIHtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHVsIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDBweDtcclxuICAgIGxpIHtcclxuICAgICAgbGlzdC1zdHlsZTogbm9uZTtcclxuICAgICAgbGluZS1oZWlnaHQ6IDI2cHg7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vKiAgTm90aWZpY2F0aW9ucyAgKi9cclxuXHJcbi5zdWNjZXNzLCAud2FybmluZywgLmF0dGVudGlvbiwgLmluZm9ybWF0aW9uIHtcclxuICBwYWRkaW5nOiAyMXB4IDQwcHggMjFweCA4MHB4O1xyXG4gIG1hcmdpbi1sZWZ0OiAxMHB4O1xyXG4gIG1hcmdpbi1yaWdodDogMTBweDtcclxuICBib3gtc2hhZG93OiAwIDVweCAyMHB4IHJnYmEoMCwgMCwgMCwgMC4zKTtcclxuICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgdG9wOiAzN3B4O1xyXG4gIHJpZ2h0OiAyMHB4O1xyXG4gIG1heC13aWR0aDogMzUwcHg7XHJcbiAgYm9yZGVyLXJhZGl1czogMHB4O1xyXG4gIHotaW5kZXg6IDk5OTk5OTtcclxufVxyXG5cclxuLnN1Y2Nlc3Mge1xyXG4gIGJhY2tncm91bmQ6IHVybCgnLi4vaW1hZ2Uvc3VjY2Vzcy5wbmcnKSAyNXB4IGNlbnRlciBuby1yZXBlYXQ7XHJcbn1cclxuXHJcbi53YXJuaW5nIHtcclxuICBiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltYWdlL3dhcm5pbmcucG5nJykgMjVweCBjZW50ZXIgbm8tcmVwZWF0O1xyXG59XHJcblxyXG4uYXR0ZW50aW9uIHtcclxuICBiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltYWdlL2F0dGVudGlvbi5wbmcnKSAyNXB4IGNlbnRlciBuby1yZXBlYXQ7XHJcbn1cclxuXHJcbi5zdWNjZXNzIC5jbG9zZSwgLndhcm5pbmcgLmNsb3NlLCAuYXR0ZW50aW9uIC5jbG9zZSwgLmluZm9ybWF0aW9uIC5jbG9zZSB7XHJcbiAgZmxvYXQ6IHJpZ2h0O1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB0b3A6IDdweDtcclxuICByaWdodDogN3B4O1xyXG4gIHBhZGRpbmctdG9wOiA0cHg7XHJcbiAgcGFkZGluZy1yaWdodDogNHB4O1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxufVxyXG5cclxuLnJlcXVpcmVkIHtcclxuICBjb2xvcjogI0ZGMDAwMDtcclxuICBmb250LXdlaWdodDogYm9sZDtcclxuICBmb250LXNpemU6IDE3cHg7ICAgIFxyXG59XHJcblxyXG4uZXJyb3Ige1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIGNvbG9yOiAjRkYwMDAwO1xyXG59XHJcblxyXG4uaGVscCB7XHJcbiAgY29sb3I6ICM5OTk5OTk7XHJcbiAgZm9udC1zaXplOiAxMHB4O1xyXG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgZm9udC1mYW1pbHk6IFZlcmRhbmEsIEdlbmV2YSwgc2Fucy1zZXJpZjtcclxuICBkaXNwbGF5OiBibG9jaztcclxufVxyXG5cclxuXHJcblxyXG4vKiBUYWJsZXMgKi9cclxuXHJcbnRhYmxlIHtcclxuICBiYWNrZ3JvdW5kOiBub25lO1xyXG4gIGJvcmRlcjogbm9uZTtcclxuICBtYXJnaW46IDA7XHJcbiAgXHJcblxyXG4gIHRib2R5IHRyIHRkIHtcclxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuXHJcbnRhYmxlIHsgICAgIFxyXG4gICAmLmZvcm0ge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOyAgICAgICAgXHJcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4OyAgIFxyXG4gICAgICAgXHJcbiAgICB0ciB0ZDpmaXJzdC1jaGlsZCB7XHJcbiAgICAgIHdpZHRoOiAyNSU7XHJcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgICB9XHJcbiAgICB0ZCB7XHJcbiAgICAgIHBhZGRpbmc6IDRweDtcclxuICAgIH0gICAgICAgXHJcbiAgICAgICBcclxuICAgdGhlYWQsIHRib2R5LCB0Zm9vdCwgdHI6bnRoLWNoaWxkKGV2ZW4pIHtcclxuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xyXG4gICAgICAgIGJvcmRlcjogbm9uZTtcclxuICAgIH0gXHJcbiAgICAgICBcclxuICB9XHJcbn1cclxuXHJcblxyXG5cclxuaW5wdXQubGFyZ2UtZmllbGQsIHNlbGVjdC5sYXJnZS1maWVsZCB7XHJcbiAgd2lkdGg6IDMwMHB4O1xyXG59XHJcblxyXG50YWJsZS5saXN0IHtcclxuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XHJcbiAgdGhlYWQgdGQge1xyXG4gICAgcGFkZGluZzogMCA1cHg7XHJcbiAgICBhIHtcclxuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5saXN0IHRoZWFkIHRkIHtcclxuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbn1cclxuXHJcbnRhYmxlIHtcclxuICAmLmxpc3Qge1xyXG4gICAgdGJvZHkgdGQge1xyXG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xyXG4gICAgICBwYWRkaW5nOiAwIDVweDtcclxuICAgIH1cclxuICAgIC5sZWZ0IHtcclxuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgICAgcGFkZGluZzogN3B4O1xyXG4gICAgICBmbG9hdDogbm9uZTtcclxuICAgIH1cclxuICAgIC5yaWdodCB7XHJcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG4gICAgICBwYWRkaW5nOiA3cHg7XHJcbiAgICAgIGZsb2F0OiBub25lO1xyXG4gICAgfVxyXG4gICAgLmNlbnRlciB7XHJcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgcGFkZGluZzogN3B4O1xyXG4gICAgfVxyXG4gIH1cclxuICAmLnJhZGlvIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcclxuICAgIHRkIHtcclxuICAgICAgcGFkZGluZzogNXB4O1xyXG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gICAgfVxyXG4gICAgdHIge1xyXG4gICAgICB0ZDpmaXJzdC1jaGlsZCB7XHJcbiAgICAgICAgd2lkdGg6IDFweDtcclxuICAgICAgfVxyXG4gICAgICAmLmhpZ2hsaWdodDpob3ZlciB0ZCB7XHJcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA1KTtcclxuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGxhYmVsIHtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIGhlaWdodDogMTVweDtcclxuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuXHJcbiBcclxuXHJcblxyXG4vKiBCb3ggTGVmdCBDb2x1bW4gKi9cclxuXHJcbiNjb2x1bW4tbGVmdCwgI2NvbHVtbi1yaWdodCB7XHJcbiAgLmJveCB7ICAgICAgXHJcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG4gICAgLmJveC1oZWFkaW5nIHtcclxuICAgICAgZm9udC1zaXplOiAxNXB4OyAgICAgICAgICBcclxuICAgIH1cclxuICB9XHJcbiAgLnByb2R1Y3QtYm94LXNsaWRlciAuYm94LWhlYWRpbmcge1xyXG4gICAgZm9udC1zaXplOiAxNXB4O1xyXG4gIH1cclxuICAuYm94IC5ib3gtY29udGVudCB7XHJcbiAgICAvL2Rpc3BsYXk6IHRhYmxlO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICB1bCBsaSBhIHtcclxuICAgICAgZm9udC1zaXplOiAxM3B4O1xyXG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgfVxyXG4gICAgICBcclxuICAgIGlucHV0IHRleHQge1xyXG4gICAgICAgICAgd2lkdGg6MTAwJTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgdGFibGUgICAge1xyXG4gICAgICAgICB3aWR0aDogMTAwJTsgXHJcbiAgICB9XHJcbiAgICAgIFxyXG4gICAgLmJ1dHRvbiB7XHJcbiAgICAgICAgICB3aWR0aDogNDUlOyBcclxuICAgICAgICAgIG1hcmdpbi1ib3R0b206MDtcclxuICAgICAgICAgIFxyXG4gICAgICB9ICBcclxuICAgIC5idXR0b25zIHtcclxuICAgICAgICAgIG1hcmdpbi1ib3R0b206MDtcclxuICAgICAgfVxyXG4gIH1cclxufVxyXG5cclxuLy9MZWZ0IEJhclxyXG4ubGVmdGJhcntcclxuICAgIHdpZHRoOiAyMjBweDtcclxufVxyXG5cclxuXHJcblxyXG5cclxuXHJcbiNjb2x1bW4tbGVmdCB7XHJcbiAgICBcclxuICAgIHBhZGRpbmctcmlnaHQ6IDI1cHg7XHJcbiAgICBcclxuICAgIC5ib3ggeyAgICAgICAgIFxyXG4gICAgIGJvcmRlcjpub25lOyAgICBcclxuICAgICBib3gtc2hhZG93OiAwcHggMnB4IDEwcHggMHB4IHJnYmEoNTAsIDUwLCA1MCwgMC41KTsgICBcclxuICAgIH1cclxuICAgIFxyXG4gICAgLmRhdGEgeyAgXHJcbiAgICAgICAgLy9ib3JkZXI6IDFweCBzb2xpZCAjRUFFQUVBOyAgICAgXHJcbiAgICAgICAgaGVpZ2h0OiAyLjByZW07ICAgXHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICAgICAgYmFja2dyb3VuZDogI0Y4RjhGODsgICBcclxuICAgICAgICBjb2xvcjogI0U0MkQ5RjsgICBcclxuICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMS41cmVtOyAgICAgXHJcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcclxuICAgICAgICBtYXJnaW46IDNweCAwIDNweCAwO1xyXG4gICAgfVxyXG4gICAgdGFibGUgeyAgICAgIFxyXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwOyAgICAgICAgXHJcbiAgICB9ICBcclxufVxyXG5cclxuXHJcblxyXG5cclxuLy8gTEVNT04gI0Q3REQzNTtcclxuLy8gR1JBUEUgIzU3NURBOTtcclxuLy8gRlVTQ0hJQSAjRTQyRDlGOyBBTFNPIFBJTktcclxuLy8gQkxVRSAjMDI1NThCO1xyXG5cclxuLnBhZ2UtaGVhZGVyIHtcclxuICAgIGhlaWdodDogNDVweDtcclxuICAgIGZvbnQtc2l6ZTogMTlweDtcclxuICAgIGZvbnQtd2VpZ2h0OiBCT0xEO1xyXG4gICAvLyBiYWNrZ3JvdW5kLWNvbG9yOiAjRTQyRDlGO1xyXG4gICAgY29sb3I6ICNFNDJEOUY7ICAgXHJcbiAgICBtYXJnaW4tYm90dG9tOiAwOyAgICBcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBwYWRkaW5nOjdweCAxMHB4O1xyXG4gICAvLyBib3JkZXItdG9wOiAxcHggc29saWQgI0Q3REQzNTtcclxuICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNGNkY2RjY7ICBcclxuICAgICBcclxufVxyXG5cclxuLmZvcm0taGVhZGVyIHtcclxuICAgIGhlaWdodDogNDVweDtcclxuICAgIGZvbnQtc2l6ZTogMTlweDsgXHJcbiAgICBmb250LXdlaWdodDogQk9MRDsgICBcclxuICAgIGNvbG9yOiAjNDY0NjQ2OyAgXHJcbiAgICBtYXJnaW4tYm90dG9tOiAwOyAgICBcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBwYWRkaW5nOjdweCAxMHB4OyAgIFxyXG59XHJcblxyXG4uZm9ybS1pbmZvIHtcclxuICAgIHdpZHRoOjEwMCU7XHJcbiAgICAvL2Zsb2F0OmxlZnQ7XHJcbiAgICBwYWRkaW5nOiAxNXB4IDIwcHg7XHJcbiAgICAvL292ZXJmbG93OiBhdXRvO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMTVweDtcclxuICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgY29sb3I6ICM0NjQ2NDY7XHJcbiAgICBcclxufVxyXG5cclxudWwuYnJlYWRjcnVtYnMge1xyXG4gICAgcGFkZGluZzo3cHggMjBweDtcclxuICAgIG1hcmdpbi1ib3R0b206MTU7XHJcbiAgICBoZWlnaHQ6IDM1cHg7XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0Y2RjZGNjsgIFxyXG4gICAgXHJcbiAgICBcclxufVxyXG5cclxuLy8gUHJvZHVjdCBMaXN0aW5nXHJcbnNwYW4uc2FsZS1pY29uIHtcclxuICBjb2xvcjogI0ZGRkZGRjtcclxuICBmb250LXNpemU6IDEycHg7XHJcbiAgcGFkZGluZzogMTBweDtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiAxMHB4O1xyXG4gIGxlZnQ6IDEwcHg7XHJcbiAgdGV4dC1zaGFkb3c6IDAgLTFweCAwIHJnYmEoMCwgMCwgMCwgMC4wNSk7XHJcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICB6LWluZGV4OiA1O1xyXG59XHJcblxyXG4vLyBQcm9kdWN0IEJveFxyXG4ucHJvZHVjdCB7ICAgIFxyXG4gICAgcGFkZGluZzogMTBweCA1cHggIWltcG9ydGFudDtcclxufVxyXG5cclxuXHJcblxyXG4ucHJvZHVjdC1ib3gge1xyXG4gICAgXHJcbiAgICBwYWRkaW5nOiAxMHB4IDEwcHggOHB4IDEwcHg7XHJcbiAgICBcclxuICAgIGJvcmRlcjoxcHggc29saWQgI0VBRUFFQTtcclxuICAgIC8vbWFyZ2luOjVweDsgICAgXHJcbn1cclxuLnByb2R1Y3QtYm94OmhvdmVyIHtcclxuICAgIFxyXG4gICAgIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7IFxyXG4gICAgIGJvcmRlcjogMXB4IHNvbGlkICNFNDJEOUY7XHJcbiAgICAvLyBib3gtc2hhZG93OiAwcHggMnB4IDEwcHggMHB4IHJnYmEoMTQ2LCAxODIsIDQ5LCAwLjk4KTsgICBcclxuICAgICAvL3RyYW5zaXRpb246IGFsbCAuMnMgZWFzZS1vdXQ7XHJcbiAgXHJcbiAgICAuZmx5YmFyIHtcclxuICAgICAgICBvcGFjaXR5OiAxO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICAud2lzaGxpc3QsIC5jb21wYXJlIHtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiAwcHg7XHJcbiAgICAgICAgb3BhY2l0eTogMTtcclxuICAgIH1cclxufVxyXG5cclxuXHJcbi5wcm9kdWN0LWJveCB7XHJcbiAgICBcclxuICAgICAgICBcclxuICAgIC5pbWFnZSB7ICAgIFxyXG4gICAgICAgbWluLWhlaWdodDoyMjVweDsgXHJcbiAgICAgICBtYXgtaGVpZ2h0OiAyMjVweDsgICAgXHJcbiAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICBvdmVyZmxvdzogaGlkZGVuOyAgICAgICAgICBcclxuXHJcbiAgICB9ICAgIFxyXG4gICAgXHJcbiAgICAubmFtZSB7XHJcbiAgICAgICAgbWFyZ2luOiAxMHB4IDAgMDtcclxuICAgICAgICBoZWlnaHQ6IDM1cHg7XHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICBhIHtcclxuICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDE0cHg7XHJcbiAgICAgICAgICBjb2xvcjogI0U0MkQ5RjsgLy8jNzkzRTk3OyAvLyM4NzQ1QTg7Ly8gICM5MkI2MzEgOyAvLyM0NjQ2NDY7ICAgIFxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIFxyXG4gICAgLmRlc2NyaXB0aW9uIHtcclxuICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICAucHJpY2Uge1xyXG4gICAgICAgIG1hcmdpbjogOHB4IDAgMTBweDtcclxuICAgICAgICBoZWlnaHQ6IDMwcHg7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIC5wcmljZS1vbGQge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcclxuICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcclxuICAgICAgICBkaXNwbGF5Om5vbmU7XHJcbiAgICB9XHJcblxyXG4gICAgXHJcbiAgICAuZmx5YmFyIHsgICAgICAgIFxyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICBoZWlnaHQ6IDM2cHg7XHJcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMXMgZWFzZS1pbiAwcztcclxuICAgICAgei1pbmRleDogNTtcclxuICAgICAgb3BhY2l0eTogMDtcclxuICAgICAgYm90dG9tOiA2cHg7ICAgIFxyXG4gICAgfVxyXG4gICAgXHJcbiAgICAud2lzaGxpc3Q6aG92ZXIsIC5jb21wYXJlOmhvdmVyIHtcclxuICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMSkgIWltcG9ydGFudDtcclxuICAgIH0gIFxyXG4gICAgXHJcbiAgICAud2lzaGxpc3Qge1xyXG4gICAgICAgIHJpZ2h0OiAzOXB4O1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjM1LCAyMzUsIDIzNSwgMC44NSkgIWltcG9ydGFudDtcclxuICAgICAgfVxyXG4gICAgXHJcbiAgICAud2lzaGxpc3QsIC5jb21wYXJlIHtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgd2lkdGg6IDMycHg7XHJcbiAgICAgICAgaGVpZ2h0OiAzMnB4O1xyXG4gICAgICAgIHRleHQtaW5kZW50OiAtOTk5OXB4O1xyXG4gICAgICAgIHotaW5kZXg6IDU7XHJcbiAgICAgICAgb3BhY2l0eTogMDtcclxuICAgICAgICBcclxuICAgICAgfVxyXG4gICAgIFxyXG4gICAgICAucmF0aW5nIHtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZS1pbiAwcztcclxuICAgICAgICBtYXJnaW4tdG9wOiA1cHg7XHJcbiAgICAgICAgZGlzcGxheTpub25lOyAgXHJcbiAgICAgIH1cclxuICAgIFxyXG4gICAgICAuYnJhbmQge1xyXG4gICAgICAgICAgbWFyZ2luOiAtMnB4IDAgMDtcclxuICAgICAgICAgIHNwYW4sIGEge1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDExcHg7XHJcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBkaXNwbGF5IDogbm9uZTtcclxuICAgICAgfVxyXG4gICAgXHJcbiAgICAgIC5kZXNjcmlwdGlvbiB7XHJcbiAgICAgICAgICBsaW5lLWhlaWdodDogMTVweDtcclxuICAgICAgICAgIHBhZGRpbmc6IDEwcHggMDtcclxuICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgfVxyXG4gICAgXHJcbiAgICAgICBzZWxlY3Qge1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjA3KTsgICAgICAgIFxyXG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7ICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4OyAgXHJcbiAgICAgICAgICAgIGhlaWdodDogMjJweDtcclxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7ICAgICAgICAgICBcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICAgICAgICAgICBcclxuICAgICAgICB9XHJcbiAgICBcclxufVxyXG5cclxuLnByb2R1Y3QtYm94IHtcclxuICAgIFxyXG4gICAgLmNhcnQge1xyXG4gICAgICAgICBwYWRkaW5nOiAwOyAgICAgICAgIFxyXG4gICAgfVxyXG4gICAgXHJcbiAgICAuZGVjYnRuLCAuaW5jYnRuIHtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEpO1xyXG4gICAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjMpO1xyXG4gICAgICBib3JkZXItcmFkaXVzOiAwO1xyXG4gICAgICBib3gtc2hhZG93OiBub25lO1xyXG4gICAgICB3aWR0aDogMTUlOyAgICAgICAgICAgICAgICBcclxuICAgICAgcGFkZGluZzogNHB4IDA7XHJcbiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBsaW5lYXIgMHM7ICAgICAgICAgICAgICBcclxuICAgIH1cclxuICAgIFxyXG4gICAgLmRlY2J0biB7XHJcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltZy9xdWFudGl0eS1taW51cy5wbmdcIik7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OjA7ICAgIFxyXG4gICAgfVxyXG4gICAgLmluY2J0biB7XHJcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltZy9xdWFudGl0eS1wbHVzLnBuZ1wiKTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgIGlucHV0IHtcclxuICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XHJcbiAgICAgICAgbWFyZ2luOiA1cHggMDsgXHJcbiAgICAgICAgaGVpZ2h0OiAzNXB4OyBcclxuICAgICAgICBtYXJnaW4tbGVmdDoycHg7IFxyXG4gICAgIH1cclxuICAgICBpbnB1dC5xdWFudGl0eSB7ICAgICAgICAgICAgIFxyXG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjUyLCAyNTIsIDI1MiwgMC45NSk7XHJcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjA3KTsgICAgICAgIFxyXG4gICAgICAgIHBhZGRpbmctbGVmdDogMjBweDtcclxuICAgICAgICB3aWR0aDogMzAlOyAgXHJcbiAgICAgICAgZm9udC1zaXplOiAxMnB4OyAgICAgICAgIFxyXG4gICAgIH0gXHJcbiAgICAuYnV0dG9uLWV4Y2x1c2l2ZSB7XHJcbiAgICAgICAgd2lkdGg6MzUlO1xyXG4gICAgfVxyXG4gICAgXHJcbn1cclxuXHJcbiAucHJvZHVjdC1ib3ggYSB7XHJcbiAgICAgICAgICAmLndpc2hsaXN0LXRpcCwgJi5jb21wYXJlLXRpcCB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM0NjQ2NDY7XHJcbiAgICAgICAgICAgIGNvbG9yOiAjRkZGRkZGO1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgIHRvcDogLTMwcHg7XHJcbiAgICAgICAgICAgIHJpZ2h0OiAtMTAwcHg7XHJcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xyXG4gICAgICAgICAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDNweCAxMHB4O1xyXG4gICAgICAgICAgICB0ZXh0LWluZGVudDogMDtcclxuICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMXMgZWFzZS1pbiAwcztcclxuICAgICAgICAgICAgei1pbmRleDogNTtcclxuICAgICAgICAgICAgb3BhY2l0eTogMDtcclxuICAgICAgICAgIH1cclxuIH1cclxuXHJcbi5wcm9kdWN0LWJveCAud2lzaGxpc3Q6aG92ZXIgKyBhLndpc2hsaXN0LXRpcCB7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgb3BhY2l0eTogMC45O1xyXG59XHJcblxyXG4ucHJvZHVjdC1ib3gge1xyXG4gIC5jb21wYXJlOmhvdmVyICsgYS5jb21wYXJlLXRpcCB7XHJcbiAgICByaWdodDogMDtcclxuICAgIG9wYWNpdHk6IDAuOTtcclxuICB9XHJcbiAgLnJhdGluZyB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLWluIDBzO1xyXG4gICAgbWFyZ2luLXRvcDogNXB4O1xyXG4gIH1cclxufVxyXG5cclxuXHJcblxyXG4ucHJvZHVjdC1ib3ggc3Bhbi5zYWxlLWljb24ge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB6LWluZGV4OiA1O1xyXG4gIHRvcDogMDtcclxuICBsZWZ0OiAwO1xyXG59XHJcblxyXG4ucHJpY2UtdGF4IHtcclxuICBmb250LXNpemU6IDEycHg7XHJcbn1cclxuXHJcbi5wcmljZS1uZXcgeyAgXHJcbiAgZm9udC1zaXplOiAxNnB4O1xyXG4gIGxpbmUtaGVpZ2h0OiAyMHB4OyAgICBcclxufVxyXG5cclxuLnByaWNlLW5ldzIge1xyXG4gIGxpbmUtaGVpZ2h0OiAyMHB4OyAgICAgXHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgZm9udC1zaXplOiAxMnB4O1xyXG59XHJcblxyXG4vLyBVc2VkIGluIFByb2R1Y3QgTGlzdCBQYWdlXHJcbi5wcm9kdWN0LWZpbHRlciB7XHJcbiAgcGFkZGluZzogMnB4IDEwcHg7XHJcbiAgbWFyZ2luLWJvdHRvbTogMTVweDtcclxuICBvdmVyZmxvdzogYXV0bztcclxuICBcclxufVxyXG5cclxuLnByb2R1Y3QtZmlsdGVyIHtcclxuICAgIFxyXG4gICAgc2VsZWN0IHtcclxuICAgICAgICBoZWlnaHQ6IDMwcHg7XHJcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206NXB4O1xyXG4gICAgfVxyXG4gICAgbGFiZWwge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcclxuICAgIH1cclxufVxyXG5cclxuXHJcblxyXG5cclxuXHJcbi8qIENhcnQgKi9cclxuXHJcbi5jYXJ0LWluZm8ge1xyXG4gIHRhYmxlIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMTVweDtcclxuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XHJcbiAgfVxyXG4gIHRkIHtcclxuICAgIHBhZGRpbmc6IDhweCAxNXB4O1xyXG4gIH1cclxuICAgIFxyXG4gIHRhYmxlIHRoZWFkIHRoIHsgICAgICAgIFxyXG4gICAgICBsaW5lLWhlaWdodDogMjVweDtcclxuICAgICAgY29sb3I6I0U0MkQ5RjsgLy8jNzkzRTk3O1xyXG4gICAgICBcclxuICB9ICAgIFxyXG4gICAgXHJcbiAgdGhlYWQgeyAgIFxyXG4gICAgdGggeyAgICAgICAgICBcclxuICAgICAgICAgICAgXHJcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgfSAgIFxyXG4gICAgLm5hbWUsIC5icmFuZCwgLnVuaXQsIC5xdWFudGl0eSB7XHJcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICB9XHJcbiAgICAucHJpY2UsIC50b3RhbCB7XHJcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG4gICAgfVxyXG4gIH1cclxuICB0Ym9keSB7XHJcbiAgICB0ZCB7XHJcbiAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XHJcbiAgICB9XHJcbiAgIFxyXG4gICAgLm5hbWUsIC5icmFuZCwgLnVuaXQsIC5xdWFudGl0eSB7XHJcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICB9XHJcbiAgICAubmFtZSBhIHtcclxuICAgICAgZm9udC1zaXplOiAxMnB4O1xyXG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgfVxyXG5cclxuICAgIC5wcmljZSwgLnRvdGFsIHtcclxuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XHJcbiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgICAgIGZvbnQtc2l6ZTogMTNweDsgICAgXHJcbiAgICB9XHJcbiAgfVxyXG4gIC5xdWFudGl0eSB7XHJcbiAgICAgICAgcGFkZGluZy1yaWdodDowO1xyXG4gICAgICAgIC8vbWFyZ2luLXJpZ2h0OiAwO1xyXG4gIH0gXHJcbiAgLnByaWNlIHtcclxuICAgICAgICBwYWRkaW5nLWxlZnQ6MDtcclxuICAgICAgICBcclxuICB9ICAgIFxyXG4gIC5xdWFudGl0eSBpbnB1dCB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmU7XHJcbiAgICBmb250LXNpemU6IDEycHg7XHJcbiAgICBoZWlnaHQ6IDMwcHg7IFxyXG4gICAgbWFyZ2luOjA7ICAgIFxyXG4gIH1cclxuICB0Ym9keSBzcGFuLnN0b2NrIHtcclxuICAgIGNvbG9yOiAjRjAwO1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuXHJcbi5jYXJ0LXRvdGFsIHtcclxuICBvdmVyZmxvdzogYXV0bztcclxuICBtYXJnaW4tYm90dG9tOiAxNXB4O1xyXG4gIHRhYmxlIHtcclxuICAgIGZsb2F0OiByaWdodDtcclxuICAgIHBhZGRpbmc6IDE1cHggMDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgYm9yZGVyLXJhZGl1czogMDsgICBcclxuICAgICAgXHJcbiAgfVxyXG4gIHRyIHtcclxuICAgICAgICBsaW5lLWhlaWdodDogMzBweDsgXHJcbiAgICAgICAgYm9yZGVyOjFweCBzb2xpZCAjRUFFQUVBOyBcclxuICB9XHJcbiAgdHI6bnRoLWNoaWxkKDJuKSB7XHJcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xyXG4gIH1cclxuICB0ZCB7XHJcbiAgICBwYWRkaW5nOiAzcHg7XHJcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcclxuICAgICYubGVmdCB7XHJcbiAgICAgIGZsb2F0OiBub25lO1xyXG4gICAgICB3aWR0aDogOTAlO1xyXG4gICAgfVxyXG4gIH1cclxuICAudG90YWwtbCB7XHJcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgZm9udC1zaXplOiAxMnB4O1xyXG4gIH1cclxuICAudG90YWwtciB7XHJcbiAgICBmb250LXNpemU6IDEzcHg7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiAxNXB4OyAgXHJcbiAgfVxyXG4gICAgICBcclxuICAgIFxyXG4gIHNlbGVjdCB7XHJcbiAgICAgICAgbWF4LXdpZHRoOjIwMHB4O1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcclxuICAgICAgICBoZWlnaHQ6IDMwcHg7IFxyXG4gICAgICAgIG1hcmdpbjo1cHg7ICAgICAgICBcclxuICAgICB9ICBcclxufVxyXG5cclxuLy8gUFJPRFVDVCBERVRBSUxTXHJcblxyXG4jcHJvZHVjdC10b3Age1xyXG4gIC5wcm9kdWN0LXRvcC0xIHtcclxuICAgIHBhZGRpbmc6IDAgMCA1cHg7XHJcbiAgfVxyXG4gIC5wcmV2LW5leHQge1xyXG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XHJcbiAgfVxyXG4gIC5wcm9kdWN0LXRpdGxlIHtcclxuICAgIGZvbnQtc2l6ZTogMjZweDtcclxuICAgIGxpbmUtaGVpZ2h0OiAyNnB4O1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgfVxyXG4gIC5wcm9kdWN0LWRlc2NyaXB0aW9uIC5wcm9kdWN0LWRlc2NyaXB0aW9uLWwge1xyXG4gICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICBwYWRkaW5nOiAwIDhweCAycHggMDtcclxuICAgICY6Zmlyc3QtY2hpbGQ6YmVmb3JlIHtcclxuICAgICAgY29udGVudDogXCIgXCI7XHJcbiAgICB9XHJcbiAgICAmOmJlZm9yZSB7XHJcbiAgICAgIGNvbnRlbnQ6IFwiLVwiO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLnByb2R1Y3QtZGVzY3JpcHRpb24tbCB7XHJcbiAgZm9udC1zaXplOiAxMXB4O1xyXG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgc3BhbiwgYSB7XHJcbiAgICBmb250LXNpemU6IDExcHg7XHJcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gIH1cclxufVxyXG5cclxuI3Byb2R1Y3QtdG9wIC5wcm9kdWN0LWRlc2NyaXB0aW9uIC5wcm9kdWN0LWRlc2NyaXB0aW9uLWwge1xyXG4gIHNwYW4ge1xyXG4gICAgcGFkZGluZy1sZWZ0OiA4cHg7XHJcbiAgfVxyXG4gICY6Zmlyc3QtY2hpbGQgc3Bhbiwgc3Bhbi5zdG9jayB7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XHJcbiAgfVxyXG59XHJcblxyXG4ucHJvZHVjdC1kZXNjcmlwdGlvbi1iIC5wcm9kdWN0LWRlc2NyaXB0aW9uLWwge1xyXG4gIGNsZWFyOiBib3RoO1xyXG59XHJcblxyXG4ucHJldi1uZXh0IHtcclxuICBwYWRkaW5nLXRvcDogNXB4O1xyXG4gIGEge1xyXG4gICAgd2lkdGg6IDI4cHg7XHJcbiAgICBoZWlnaHQ6IDI4cHg7XHJcbiAgICBib3JkZXItcmFkaXVzOiAwcHg7XHJcbiAgICBtYXJnaW46IC0yMHB4IDAgMDtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlL25hdl9hcnJvd3NfbWVkaXVtLnBuZyk7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IDUwJTtcclxuICAgIHotaW5kZXg6IDE7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICB0ZXh0LWluZGVudDogLTk5OTlweDtcclxuICAgIG9wYWNpdHk6IDE7XHJcbiAgICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAuM3MgZWFzZTtcclxuICAgICYucHJvZHVjdC1uZXh0IHtcclxuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwJSAxMDAlO1xyXG4gICAgICB0b3A6IDMwcHg7XHJcbiAgICAgIHJpZ2h0OiAxMHB4O1xyXG4gICAgICAmOmhvdmVyIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAlIDA7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgICYucHJvZHVjdC1wcmV2IHtcclxuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAxMDAlO1xyXG4gICAgICB0b3A6IDMwcHg7XHJcbiAgICAgIHJpZ2h0OiAzOXB4O1xyXG4gICAgICAmOmhvdmVyIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDA7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgICYucHJvZHVjdC1wcmV2LXRpcCwgJi5wcm9kdWN0LW5leHQtdGlwIHtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzQ2NDY0NjtcclxuICAgICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcclxuICAgICAgY29sb3I6ICNGRkZGRkY7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgdG9wOiAtMzZweDtcclxuICAgICAgcmlnaHQ6IC0xMDBweDtcclxuICAgICAgd2lkdGg6IGF1dG87XHJcbiAgICAgIGhlaWdodDogYXV0bztcclxuICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICBwYWRkaW5nOiAzcHggMTBweDtcclxuICAgICAgYm9yZGVyLXJhZGl1czogMHB4O1xyXG4gICAgICB0ZXh0LWluZGVudDogMDtcclxuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZS1pbiAwcztcclxuICAgICAgei1pbmRleDogNTtcclxuICAgICAgb3BhY2l0eTogMDtcclxuICAgIH1cclxuICB9XHJcbiAgLnByb2R1Y3QtbmV4dDpob3ZlciArIGEucHJvZHVjdC1uZXh0LXRpcCwgLnByb2R1Y3QtcHJldjpob3ZlciArIGEucHJvZHVjdC1wcmV2LXRpcCB7XHJcbiAgICByaWdodDogMTBweDtcclxuICAgIG9wYWNpdHk6IDE7XHJcbiAgfVxyXG59XHJcblxyXG4ucHJvZHVjdC1pbmZvIHtcclxuICBvdmVyZmxvdzogYXV0bztcclxuICBtYXJnaW4tYm90dG9tOiAzMHB4ICFpbXBvcnRhbnQ7XHJcbiAgLmltYWdlIHtcclxuICAgIGJhY2tncm91bmQ6ICNGRkZGRkY7XHJcbiAgICBmbG9hdDogbGVmdDtcclxuICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XHJcbiAgICBwYWRkaW5nOiAxMHB4O1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICBtaW4taGVpZ2h0OjQ1MHB4O1xyXG4gICAgbWluLWhlaWdodDo0NTBweDsgIFxyXG4gICAgaW1nIHtcclxuICAgICAgd2lkdGg6IDk5Ljk5OTk5JTtcclxuICAgIH1cclxuICAgIC56b29tLWIge1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDEpO1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIHJpZ2h0OiAxMHB4O1xyXG4gICAgICBib3R0b206IDEwcHg7XHJcbiAgICAgIHBhZGRpbmc6IDAgMTBweDtcclxuICAgICAgaGVpZ2h0OiAzMHB4O1xyXG4gICAgICBsaW5lLWhlaWdodDogMzBweDtcclxuICAgICAgei1pbmRleDogNTtcclxuICAgICAgYSB7XHJcbiAgICAgICAgYmFja2dyb3VuZDogdXJsKFwiLi4vaW1hZ2UvYnV0dG9uLXNlYXJjaC1zbWFsbC5wbmdcIikgbm8tcmVwZWF0IHNjcm9sbDtcclxuICAgICAgICBjb2xvcjogI0EzQTNBMztcclxuICAgICAgICBmb250LXNpemU6IDEwcHg7XHJcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgICAgICBwYWRkaW5nLWxlZnQ6IDE4cHg7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgLmltYWdlLWFkZGl0aW9uYWwge1xyXG4gICAgbWFyZ2luLWxlZnQ6IC01cHg7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IC01cHg7XHJcbiAgICBjbGVhcjogYm90aDtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgfVxyXG4gIC5pbWFnZS1hZGRpdGlvbmFsLWxlZnQge1xyXG4gICAgbWFyZ2luLWxlZnQ6IC0xMHB4O1xyXG4gICAgbWFyZ2luLXJpZ2h0OiAtMTBweDtcclxuICAgIGNsZWFyOiBib3RoO1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICB9XHJcbiAgLmltYWdlLWFkZGl0aW9uYWwge1xyXG4gICAgLmlhMSB7XHJcbiAgICAgIHdpZHRoOiAxNi42NjY2NyU7XHJcbiAgICB9XHJcbiAgICAuaWEyLCAuaWE1IHtcclxuICAgICAgd2lkdGg6IDI1JTtcclxuICAgIH1cclxuICAgIC5pYTMge1xyXG4gICAgICB3aWR0aDogMTQuMjg1NzElO1xyXG4gICAgfVxyXG4gICAgLmlhNCB7XHJcbiAgICAgIHdpZHRoOiA4LjMzMzMzJTtcclxuICAgIH1cclxuICAgIC5pYTYge1xyXG4gICAgICB3aWR0aDogMzMuMzMzMzMlO1xyXG4gICAgfVxyXG4gICAgLmlhNyB7XHJcbiAgICAgIHdpZHRoOiAyMCU7XHJcbiAgICB9XHJcbiAgICBpbWcge1xyXG4gICAgICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xyXG4gICAgICBwYWRkaW5nOiA1cHg7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC5pbWFnZS1hZGRpdGlvbmFsLWxlZnQgaW1nIHtcclxuICAgIGJhY2tncm91bmQ6ICNGRkZGRkY7XHJcbiAgICBwYWRkaW5nOiA1cHg7XHJcbiAgfVxyXG4gIC5pbWFnZS1hZGRpdGlvbmFsIGEge1xyXG4gICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIHBhZGRpbmc6IDAgNXB4O1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxuICB9XHJcbiAgLmltYWdlLWFkZGl0aW9uYWwtbGVmdCBhIHtcclxuICAgIGZsb2F0OiBub25lO1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcclxuICAgIG1hcmdpbi1ib3R0b206IDVweDtcclxuICB9XHJcbn1cclxuXHJcbiNjb2xvcmJveCwgI2Nib3hPdmVybGF5LCAjY2JveFdyYXBwZXIge1xyXG4gIG92ZXJmbG93OiB2aXNpYmxlICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5wcm9kdWN0LWluZm8ge1xyXG4gIC5wcmljZSB7XHJcbiAgICBvdmVyZmxvdzogYXV0bztcclxuICAgIHBhZGRpbmc6IDIwcHggMDtcclxuICAgIGZvbnQtc2l6ZTogMjhweDtcclxuICB9XHJcbiAgLnByaWNlLW5ldyB7XHJcbiAgICBmb250LXNpemU6IDI4cHg7XHJcbiAgfVxyXG4gIC5wcmljZS1vbGQge1xyXG4gICAgZm9udC1zaXplOiAxOHB4O1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XHJcbiAgfVxyXG4gIC5zYXZlZCB7XHJcbiAgICBwYWRkaW5nLXRvcDogMTBweDtcclxuICB9XHJcbiAgLnlvdS1zYXZlIHtcclxuICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgfVxyXG4gIC5zYXZlLXBlcmNlbnQge1xyXG4gICAgZm9udC1zaXplOiAxN3B4O1xyXG4gIH1cclxuICAudGF4IHtcclxuICAgIHBhZGRpbmctdG9wOiA1cHg7XHJcbiAgfVxyXG4gIC5wcmljZS10YXgge1xyXG4gICAgZm9udC1zaXplOiAxM3B4O1xyXG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgfVxyXG4gIC5wcmljZSB7XHJcbiAgICAucmV3YXJkIHtcclxuICAgICAgZm9udC1zaXplOiAxM3B4O1xyXG4gICAgICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gICAgICBzbWFsbCB7XHJcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIC5kaXNjb3VudCB7XHJcbiAgICAgIGZvbnQtc2l6ZTogMTNweDtcclxuICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICAgIH1cclxuICB9XHJcbiAgc3Bhbi5zdG9jayB7XHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxuICB9XHJcbiAgLm9wdGlvbnMge1xyXG4gICAgcGFkZGluZzogMjBweCAwO1xyXG4gICAgaDUge1xyXG4gICAgICBmbG9hdDogbm9uZTtcclxuICAgICAgY2xlYXI6IGJvdGg7XHJcbiAgICAgIG1hcmdpbjogMDtcclxuICAgIH1cclxuICAgIGlucHV0LCB0ZXh0YXJlYSwgc2VsZWN0IHtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogMTVweDtcclxuICAgIH1cclxuICAgIHRleHRhcmVhLCBzZWxlY3Qge1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgIH1cclxuICB9XHJcbiAgLm9wdGlvbi1pbWFnZSB7XHJcbiAgICBtYXJnaW4tdG9wOiAzcHg7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG4gICAgbGFiZWwge1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIGhlaWdodDogMTAwJTtcclxuICAgIH1cclxuICAgIGltZyB7XHJcbiAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xyXG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC5jYXJ0IHtcclxuICAgIG92ZXJmbG93OiBhdXRvO1xyXG4gICAgcGFkZGluZzogMjVweCAwO1xyXG4gIH1cclxuICAuYWRkLXRvLWNhcnQge1xyXG4gICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGlucHV0IHtcclxuICAgICAgZGlzcGxheTogaW5saW5lO1xyXG4gICAgICBtYXJnaW46IDVweCAwO1xyXG4gICAgICAmLmktZC1xdWFudGl0eSB7XHJcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTIsIDI1MiwgMjUyLCAwLjk1KTtcclxuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMDcpO1xyXG4gICAgICAgIGhlaWdodDogMzZweDtcclxuICAgICAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgLmNhcnQge1xyXG4gICAgZGl2IHtcclxuICAgICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgICB9XHJcbiAgICAuZGVjLCAuaW5jIHtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEpO1xyXG4gICAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjMpO1xyXG4gICAgICBib3JkZXItcmFkaXVzOiAwO1xyXG4gICAgICBib3gtc2hhZG93OiBub25lO1xyXG4gICAgICB3aWR0aDogMzBweDtcclxuICAgICAgaGVpZ2h0OiAzNnB4O1xyXG4gICAgICBwYWRkaW5nOiA0cHggMDtcclxuICAgICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgICBsaW5lLWhlaWdodDogMTRweDtcclxuICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGxpbmVhciAwcztcclxuICAgIH1cclxuICAgIC5hZGQtdG8tY2FydCBkaXYge1xyXG4gICAgICBtYXJnaW4tcmlnaHQ6IDFweDtcclxuICAgICAgbWFyZ2luLWxlZnQ6IDFweDtcclxuICAgICAgZGlzcGxheTogaW5saW5lO1xyXG4gICAgfVxyXG4gICAgLmRlYyB7XHJcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlL3F1YW50aXR5LW1pbnVzLnBuZ1wiKTtcclxuICAgIH1cclxuICAgIC5pbmMge1xyXG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZS9xdWFudGl0eS1wbHVzLnBuZ1wiKTtcclxuICAgIH1cclxuICAgICNxdHktdGV4dCB7XHJcbiAgICAgIHBhZGRpbmctdG9wOiAxN3B4O1xyXG4gICAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xyXG4gICAgfVxyXG4gICAgI3F0eSwgI3F0eS1kZWMsICNxdHktaW5jIHtcclxuICAgICAgcGFkZGluZy10b3A6IDNweDtcclxuICAgIH1cclxuICAgIC5saW5rcyB7XHJcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICAgIH1cclxuICAgIC5taW5pbXVtIHtcclxuICAgICAgcGFkZGluZy10b3A6IDVweDtcclxuICAgICAgZm9udC1zaXplOiAxMXB4O1xyXG4gICAgfVxyXG4gIH1cclxuICAud2lzaGxpc3QtY29tcGFyZS1mcmllbmQge1xyXG4gICAgbWFyZ2luLXRvcDogMTVweDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gIH1cclxufVxyXG5cclxuLnByb2Qtd2lzaGxpc3QsIC5wcm9kLWNvbXBhcmUsIC5wcm9kLWZyaWVuZCB7XHJcbiAgZmxvYXQ6IGxlZnQ7XHJcbiAgbWFyZ2luLXJpZ2h0OiAxMXB4O1xyXG4gIHBhZGRpbmc6IDNweCAwO1xyXG59XHJcblxyXG4ucHJvZC13aXNobGlzdCBhLCAucHJvZC1jb21wYXJlIGEsIC5wcm9kLWZyaWVuZCBhIHtcclxuICBmb250LXNpemU6IDEwcHg7XHJcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG59XHJcblxyXG5zcGFuIHtcclxuICAmLndpc2hsaXN0LCAmLmNvbXBhcmUsICYuZnJpZW5kIHtcclxuICAgIGhlaWdodDogMTVweDtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICBtYXJnaW4tdG9wOiAycHg7XHJcbiAgICBwYWRkaW5nOiAwIDE1cHggMCA3cHg7XHJcbiAgfVxyXG59XHJcblxyXG4ucHJvZHVjdC1zaGFyZSB7XHJcbiAgbWFyZ2luLXRvcDogMTJweDtcclxuICBwYWRkaW5nOiAxNXB4IDA7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbn1cclxuXHJcbi5wcm9kdWN0LWluZm8gLnJldmlldyB7XHJcbiAgcGFkZGluZzogMjBweCAwO1xyXG4gID4gZGl2IHtcclxuICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMik7XHJcbiAgICBsaW5lLWhlaWdodDogMTZweDtcclxuICAgIGEge1xyXG4gICAgICBmb250LXNpemU6IDExcHg7XHJcbiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC5yZXZpZXctc3RhcnMge1xyXG4gICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICBtYXJnaW46IDAgMTVweCAwIDA7XHJcbiAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xyXG4gIH1cclxuICAuc2hhcmUge1xyXG4gICAgb3ZlcmZsb3c6IGF1dG87XHJcbiAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xyXG4gICAgYSB7XHJcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5yZXZpZXctbGlzdCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjtcclxuICBwYWRkaW5nOiAxMHB4O1xyXG4gIG92ZXJmbG93OiBhdXRvO1xyXG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XHJcbiAgLnJldmlld3MtbGVmdCB7XHJcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xyXG4gICAgcGFkZGluZzogNzBweCAxMHB4IDEwcHggIWltcG9ydGFudDtcclxuICAgIGNvbG9yOiAjNDY0NjQ2O1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgYmFja2dyb3VuZDogdXJsKFwiLi4vaW1hZ2UvbXdfMS5wbmdcIikgbm8tcmVwZWF0IHNjcm9sbCAwIDAgI0ZGRkZGRjtcclxuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciB0b3A7XHJcbiAgICBzcGFuIHtcclxuICAgICAgY29sb3I6ICNCNkI2QjY7XHJcbiAgICAgIGZvbnQtc2l6ZTogMTFweDtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIG1hcmdpbi10b3A6IDVweDtcclxuICAgIH1cclxuICB9XHJcbiAgLnJldmlld3MtcmlnaHQge1xyXG4gICAgbWFyZ2luLXRvcDogMTBweDtcclxuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XHJcbiAgICBwYWRkaW5nOiAyMHB4IDQwcHg7XHJcbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNGM0YzRjM7XHJcbiAgICBjb2xvcjogIzQ2NDY0NjtcclxuICAgIGZvbnQtc2l6ZTogMTNweDtcclxuICAgIG1pbi1oZWlnaHQ6IDEzMHB4O1xyXG4gIH1cclxuICAucmV2aWV3LWFycm93IHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIG1hcmdpbi10b3A6IC0xOHB4O1xyXG4gICAgbWFyZ2luLWxlZnQ6IC02NnB4O1xyXG4gICAgd2lkdGg6IDI2cHg7XHJcbiAgICBoZWlnaHQ6IDU1cHg7XHJcbiAgICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi9pbWFnZS9yZXZpZXctYXJyb3cucG5nXCIpIG5vLXJlcGVhdDtcclxuICB9XHJcbiAgLmF1dGhvciB7XHJcbiAgICBmbG9hdDogbGVmdDtcclxuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XHJcbiAgfVxyXG4gIC5yYXRpbmcge1xyXG4gICAgZmxvYXQ6IHJpZ2h0O1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxuICB9XHJcbiAgLnRleHQge1xyXG4gICAgY2xlYXI6IGJvdGg7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuXHJcbi8vQ09OVEFDVCBVUyBcclxuXHJcbi5jb250YWN0LWluZm8ge1xyXG4gIG92ZXJmbG93OiBhdXRvO1xyXG4gIC5sZWZ0IHtcclxuICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcclxuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XHJcbiAgfVxyXG4gIC5yaWdodCB7XHJcbiAgICBmbG9hdDogbGVmdDtcclxuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG4gIHNwYW4ubW0ge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBjbGVhcjogbm9uZTtcclxuICAgIHBhZGRpbmctbGVmdDogNTBweDtcclxuICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgIGNvbG9yOiAgIzQ2NDY0NjtcclxuICAgIFxyXG4gIH1cclxuICAubWMge1xyXG4gICAgY2xlYXI6IGxlZnQ7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG4gICAgbWluLWhlaWdodDogMzZweDtcclxuICAgICAgXHJcbiAgfVxyXG4gIHNwYW4ubW1faWNvbiB7XHJcbiAgICAvL2JhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICM3OTNFOTc7ICAvLyNFNDJEOUY7ICAgXHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgd2lkdGg6IDM4cHg7XHJcbiAgICBoZWlnaHQ6IDM4cHg7XHJcbiAgICBib3JkZXItcmFkaXVzOiAzOHB4O1xyXG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbiAwcztcclxuICB9XHJcbn1cclxuXHJcbi5jb250YWN0LWN1c3RvbSB7XHJcbiAgICBmb250LXNpemU6IDEycHg7XHJcbiAgICBjb2xvcjogICM0NjQ2NDY7XHJcbn1cclxuXHJcbi5jb250YWN0LWZvcm0ge1xyXG4gIFxyXG4gICAgXHJcbiAgaW5wdXQge1xyXG4gICAgd2lkdGg6IDk5JTtcclxuICB9XHJcbiAgaW1nIHtcclxuICAgIG1hcmdpbjogMTBweCAwIDVweDtcclxuICB9XHJcbiAgICBzZWxlY3Qge1xyXG4gICAgICAgIGhlaWdodDogYXV0bztcclxuICAgIH0gICAgXHJcbn1cclxuXHJcbi8vIExPR0lOXHJcblxyXG4ubG9naW4tZm9ybSB7XHJcbiAgICBcclxuICAgIG1hcmdpbi10b3A6IDI1cHg7ICBcclxuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xyXG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xyXG4gICAgXHJcbn1cclxuXHJcblxyXG4vLyBQQUdJTkFUSU9OXHJcblxyXG4ucGFnaW5hdGlvbiB7XHJcbiAgcGFkZGluZy10b3A6IDEycHg7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIG1hcmdpbi10b3A6IDIwcHg7XHJcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxuICBmb250LXdlaWdodDogYm9sZDsgICAgXHJcbiAgICAgXHJcbn1cclxuXHJcbi5yZXN1bHRzIHtcclxuICAgIGZsb2F0OiByaWdodDtcclxuICAgIHBhZGRpbmctdG9wOiAzcHg7XHJcbn1cclxuXHJcbi5wYWdpbmF0aW9uIGEucGFnaW5nX2xpbmsge1xyXG4gICAgXHJcbiAgICB3aWR0aDogMzJweDtcclxuICAgIGhlaWdodDogMzJweDtcclxuICAgIGxpbmUtaGVpZ2h0OiAzMnB4O1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzc5M0U5Nzs7XHJcbiAgICBjb2xvcjogI0ZGRkZGRjsgICAgXHJcbiAgICAmOmhvdmVyIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTJCNjMxO1xyXG4gICAgfSAgICBcclxufVxyXG5cclxuLnBhZ2luZ19jdXJyZW50X3BhZ2Uge1xyXG4gICAgZmxvYXQ6bGVmdDsgICAgIFxyXG4gICAgd2lkdGg6IDMycHg7XHJcbiAgICBoZWlnaHQ6IDMycHg7XHJcbiAgICBsaW5lLWhlaWdodDogMzJweDtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIG1hcmdpbi1sZWZ0OiA4cHg7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTJCNjMxO1xyXG4gICAgY29sb3I6ICNGRkZGRkY7XHJcbn1cclxuXHJcbi8vIFRFWFQgQk9YXHJcbi50ZXh0LWJveCB7XHJcbiAgICBcclxuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7ICAgIFxyXG4gICAgcGFkZGluZzogMS4ycmVtO1xyXG4gICBcclxuICAgIC50ZXh0LWJveC1jb250ZW50IHtcclxuICAgICAgICBwYWRkaW5nOiAxLjJyZW07XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI0VBRUFFQTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgLmhpZ2hsaWdodCB7XHJcbiAgICAgICAgZm9udC1zaXplOiAxNXB4OyBcclxuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgIH1cclxufVxyXG5cclxuLmNvbnRlbnQtYm94IHtcclxuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7ICAgIFxyXG4gICAgcGFkZGluZzogMS4ycmVtOyBcclxuICAgICBcclxuICAgIC5jb250ZW50LWJveC1jb250ZW50IHtcclxuICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNFQUVBRUE7XHJcbiAgICAgICAgIHBhZGRpbmc6IDEuMnJlbTtcclxuICAgICAgICBcclxuICAgICAgICAgdGFibGUge1xyXG4gICAgICAgICAvL21hcmdpbi10b3A6IDI1cHg7XHJcbiAgICAgICAgIHdpZHRoOiAxMDAlOyBcclxuICAgICAgICBcclxuICAgICAgICAgfVxyXG4gICAgIH1cclxuICB9XHJcblxyXG5cclxuXHJcbi8vIERBVEEgQk9YXHJcbi5kYXRhLWJveCB7ICAgICAgICAgIFxyXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDsgICAgXHJcbiAgICBwYWRkaW5nOiAxLjJyZW07IFxyXG4gICAgXHJcbiAgICAudGV4dGFyZWEge1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDIwcHg7XHJcbiAgICB9XHJcbiAgIFxyXG4gIH1cclxuICBcclxuLmRhdGEtYm94IC5kYXRhLWJveC1jb250ZW50IHtcclxuICAgIFxyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjRUFFQUVBO1xyXG4gICAgcGFkZGluZzogMS4ycmVtO1xyXG4gICAgXHJcbiAgICB1bCBsaSBhIHtcclxuICAgICAgZm9udC1zaXplOiAxM3B4O1xyXG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgfVxyXG4gICAgICBcclxuICAgIGlucHV0IHRleHQge1xyXG4gICAgICAgICAgd2lkdGg6MTAwJTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgdGFibGUgICAge1xyXG4gICAgICAgICB3aWR0aDogMTAwJTsgXHJcbiAgICB9XHJcbiAgICAgIFxyXG4gICAgLmJ1dHRvbiB7XHJcbiAgICAgICAgICB3aWR0aDogNDUlOyBcclxuICAgICAgICAgIG1hcmdpbi1ib3R0b206MDtcclxuICAgICAgICAgIFxyXG4gICAgICB9ICBcclxuICAgIC5idXR0b25zIHtcclxuICAgICAgICAgIG1hcmdpbi1ib3R0b206MDtcclxuICAgICAgfVxyXG4gIH1cclxuXHJcbi50ZXh0LWJveCAudGV4dC1ib3gtaGVhZGluZywgLmRhdGEtYm94IC5kYXRhLWJveC1oZWFkaW5nLCAuY29udGVudC1ib3ggLmNvbnRlbnQtYm94LWhlYWRpbmcsIC5jb250ZW50LWhlYWRlciB7XHJcbiAgICAgICAgXHJcbiAgICAgICAgYmFja2dyb3VuZDogI0VBRUFFQTsgIC8vIExJR0hUIFBVUlBMRVxyXG4gICAgICAgIC8vYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNFQUVBRUE7ICBcclxuICAgICAgICBcclxuICAgICAgICBoZWlnaHQ6IDM1cHg7XHJcbiAgICAgICAgZm9udC1zaXplOiAxNXB4OyBcclxuICAgICAgICBmb250LXdlaWdodDogYm9sZDsgICBcclxuICAgICAgICBjb2xvcjogI0U0MkQ5RjsgICBcclxuICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMS4ycmVtOyAgICAgXHJcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgd2lkdGg6NTAlO1xyXG4gICAgfVxyXG5cclxuLy8ucGFnaW5hdGlvbiB7XHJcbi8vICAgIFxyXG4vLyAgICBhIHtcclxuLy8gICAgICB3aWR0aDogMzJweDtcclxuLy8gICAgICBoZWlnaHQ6IDMycHg7XHJcbi8vICAgICAgbGluZS1oZWlnaHQ6IDMycHg7XHJcbi8vICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4vLyAgICAgIGNvbG9yOiAjNDY0NjQ2O1xyXG4vLyAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuLy8gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbi8vICAgICAgbWFyZ2luLXJpZ2h0OiAtMnB4O1xyXG4vLyAgICAgIFxyXG4vLyAgICB9XHJcbi8vICAgIGE6aG92ZXIge1xyXG4vLyAgICAgICAgY29sb3I6ICNGRkZGRkY7XHJcbi8vICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTJCNjMxO1xyXG4vLyAgICAgIH1cclxuLy99XHJcblxyXG4vLy5wYWdpbmF0aW9uIHtcclxuLy8gIHBhZGRpbmctdG9wOiAxMnB4O1xyXG4vLyAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4vLyAgd2lkdGg6IDEwMCU7XHJcbi8vICBtYXJnaW4tdG9wOiAyMHB4O1xyXG4vLyAgbWFyZ2luLWJvdHRvbTogMzBweDtcclxuLy8gIC5saW5rcyB7XHJcbi8vICAgIGZsb2F0OiBsZWZ0O1xyXG4vLyAgICBhIHtcclxuLy8gICAgICB3aWR0aDogMzJweDtcclxuLy8gICAgICBoZWlnaHQ6IDMycHg7XHJcbi8vICAgICAgbGluZS1oZWlnaHQ6IDMycHg7XHJcbi8vICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4vLyAgICAgIGNvbG9yOiAjNDY0NjQ2O1xyXG4vLyAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuLy8gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbi8vICAgICAgbWFyZ2luLXJpZ2h0OiAtMnB4O1xyXG4vLyAgICAgICY6aG92ZXIge1xyXG4vLyAgICAgICAgY29sb3I6ICNGRkZGRkY7XHJcbi8vICAgICAgfVxyXG4vLyAgICB9XHJcbi8vICAgIGIge1xyXG4vLyAgICAgIGNvbG9yOiAjRkZGRkZGO1xyXG4vLyAgICAgIHdpZHRoOiAzMnB4O1xyXG4vLyAgICAgIGhlaWdodDogMzJweDtcclxuLy8gICAgICBsaW5lLWhlaWdodDogMzJweDtcclxuLy8gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbi8vICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4vLyAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbi8vICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4vLyAgICAgIG1hcmdpbi1yaWdodDogLTJweDtcclxuLy8gICAgfVxyXG4vLyAgfVxyXG4vLyAgLnJlc3VsdHMge1xyXG4vLyAgICBmbG9hdDogcmlnaHQ7XHJcbi8vICAgIHBhZGRpbmctdG9wOiAzcHg7XHJcbi8vICB9XHJcbi8vfVxyXG4vL1xyXG4vLyNyZXZpZXcgLnBhZ2luYXRpb24ge1xyXG4vLyAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxuLy99XHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG4vKiBOZXcgU3R5bGUgRW5kICovIiwiLy8gTEFZT1VUXHJcblxyXG4jY29udGVudCAuYWRtaW4tY29udGVudCB7XHJcbiAgcGFkZGluZzogMjBweDtcclxuICBvdmVyZmxvdzogYXV0bztcclxuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkICNFQUVBRUE7ICAgIFxyXG4gIC8vYmFja2dyb3VuZC1jb2xvcjogI2Y2ZjZmNjsgIFxyXG4gICAgXHJcbiAgLmxlZnQge1xyXG4gICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICB3aWR0aDogNDklO1xyXG4gIH1cclxuICAucmlnaHQge1xyXG4gICAgZmxvYXQ6IHJpZ2h0O1xyXG4gICAgd2lkdGg6IDQ5JTtcclxuICB9XHJcbiAgaW5wdXQge1xyXG4gICAgJlt0eXBlPVwidGV4dFwiXSwgJlt0eXBlPVwicGFzc3dvcmRcIl0ge1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgIH1cclxuICB9XHJcbiAgdWwge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMHB4O1xyXG4gICAgbGkge1xyXG4gICAgICBsaXN0LXN0eWxlOiBub25lO1xyXG4gICAgICBsaW5lLWhlaWdodDogMjZweDtcclxuICAgIH1cclxuICB9XHJcbn0gICAgXHJcblxyXG4vLyBKdXN0IHRoZSBhZG1pbi1jb250ZW50IGJveCB3aXRob3V0IGJhY2tncm91bmQgY29sb3VyICBhbmQgbm8gcGFkZGluZ1xyXG4jY29udGVudCAuYWRtaW4tYm94IHsgIFxyXG4gIC8vcGFkZGluZzogMjBweDsgICAgXHJcbiAgb3ZlcmZsb3c6IGF1dG87XHJcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxuICAgIFxyXG4gICAgICBcclxuICAubGVmdCB7XHJcbiAgICBmbG9hdDogbGVmdDtcclxuICAgIHdpZHRoOiA0OSU7XHJcbiAgfVxyXG4gIC5yaWdodCB7XHJcbiAgICBmbG9hdDogcmlnaHQ7XHJcbiAgICB3aWR0aDogNDklO1xyXG4gIH1cclxuICAgXHJcbiAgaW5wdXQge1xyXG4gICAgJlt0eXBlPVwidGV4dFwiXSwgJlt0eXBlPVwicGFzc3dvcmRcIl0ge1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgIH1cclxuICB9XHJcbiAgdWwge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMHB4O1xyXG4gICAgbGkge1xyXG4gICAgICBsaXN0LXN0eWxlOiBub25lO1xyXG4gICAgICBsaW5lLWhlaWdodDogMjZweDtcclxuICAgIH1cclxuICB9ICAgIFxyXG4gIFxyXG59XHJcbiAgICBcclxuXHJcbi5hZG1pbi1saXN0IHtcclxuICB0YWJsZSB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XHJcbiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xyXG4gICAgXHJcbiAgfVxyXG4gIHRkIHtcclxuICAgIHBhZGRpbmc6IDhweCAxNXB4O1xyXG4gIH1cclxuICAgIFxyXG4gIHRhYmxlIHRoZWFkIHRoIHsgICAgICAgIFxyXG4gICAgICBsaW5lLWhlaWdodDogMjVweDtcclxuICAgICAgY29sb3I6I0U0MkQ5RjsgLy8jNzkzRTk3O1xyXG4gICAgICAvL2JvcmRlciA6MC41cHggc29saWQgIzkyQjYzMTtcclxuICAgICAgXHJcbiAgfSAgICBcclxuIFxyXG4gICAgXHJcbiAgdGhlYWQgeyAgIFxyXG4gICAgdGggeyAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7ICAgICAgICAgXHJcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIH0gIFxyXG4gICAgIFxyXG4gIFxyXG4gIH1cclxuICB0Ym9keSB7XHJcbiAgICAgIFxyXG4gICAgLy9ib3JkZXIgOjAuNXB4IHNvbGlkICM5MkI2MzE7ICBcclxuICAgICAgICBcclxuICAgIHRkIHtcclxuICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcclxuICAgIH1cclxuICAgXHJcbiAgICAudGV4dCB7XHJcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICB9XHJcbiAgICAgIFxyXG4gICAgLmlkIGEge1xyXG4gICAgICBmb250LXNpemU6IDEzcHg7ICAgICAgXHJcbiAgICAgIGNvbG9yOiAjNzkzRTk3O1xyXG4gICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgY29sb3I6ICNFNDJEOUY7XHJcbiAgICAgIH0gICAgXHJcbiAgICB9XHJcbiAgICAgIFxyXG4gICAgLm5hbWUgYSB7XHJcbiAgICAgIGZvbnQtc2l6ZTogMTNweDsgICAgICBcclxuICAgICAgY29sb3I6ICM3OTNFOTc7XHJcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgICAmOmhvdmVyIHtcclxuICAgICAgICBjb2xvcjogI0U0MkQ5RjtcclxuICAgICAgfSAgICBcclxuICAgIH1cclxuICAgIC5uYW1lIHtcclxuICAgICAgICBmb250LXNpemU6IDEzcHg7ICAgICAgXHJcbiAgICAgICAgY29sb3I6ICM3OTNFOTc7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICB9ICBcclxuXHJcbiAgICAubnVtZXJpYyB7XHJcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG4gICAgICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gICAgICBmb250LXNpemU6IDEzcHg7ICAgIFxyXG4gICAgfVxyXG4gIH1cclxuICAubnVtYmVyIHtcclxuICAgICAgICBwYWRkaW5nLXJpZ2h0OjA7XHJcbiAgICAgICAgLy9tYXJnaW4tcmlnaHQ6IDA7XHJcbiAgfSBcclxuICAubnVtZXJpYyB7XHJcbiAgICAgICAgcGFkZGluZy1sZWZ0OjA7XHJcbiAgICAgICAgXHJcbiAgfSAgICBcclxuICBpbnB1dCB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmU7XHJcbiAgICBmb250LXNpemU6IDEycHg7XHJcbiAgICBoZWlnaHQ6IDMwcHg7IFxyXG4gICAgbWFyZ2luOjA7ICAgIFxyXG4gIH1cclxuICAgIFxyXG4gICAgLmJ1dHRvbi1leGNsdXNpdmUge1xyXG4gICAgICAgIFxyXG4gICAgICAgIHBhZGRpbmc6IDZweCA4cHg7XHJcbiAgICB9XHJcblxyXG4gICAgXHJcbn1cclxuXHJcblxyXG5cclxuXHJcbi8vIFVTRVIgTk9URVxyXG5cclxuLnVzZXItbm90ZSB7XHJcbiAgICB3aWR0aDoxMDAlOyAgICAgICAgXHJcbiAgICBvdmVyZmxvdzogYXV0bztcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHBhZGRpbmc6N3B4IDEwcHg7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xyXG4gICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICBjb2xvcjogI0U0MkQ5RjtcclxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjRjZGNkY2OyBcclxuICAgIFxyXG59XHJcblxyXG5cclxuXHJcbi8vIEFETUlOIEZPUk1cclxuXHJcbi5hZG1pbi1mb3JtIHtcclxuICAgIFxyXG4gICAgcGFkZGluZzoyMHB4O1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XHJcbiAgICBcclxuICAgIC5mb3JtLWZnIHsgICAgICAgIFxyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7IFxyXG4gICAgICAgIFxyXG4gICAgfVxyXG4gICAgXHJcbiAgICAuZmctY29sdW1uIHtcclxuICAgICAgIC8vIGJhY2tncm91bmQ6IGdyZXk7XHJcbiAgICAgICAgXHJcbiAgICB9XHJcbiAgICBcclxuICAgIC5mZy1jb2x1bW4yIHtcclxuICAgICAgICAubGVmdCB7XHJcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgICAgICAgICB3aWR0aDogNDklO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgLnJpZ2h0IHtcclxuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xyXG4gICAgICAgICAgICB3aWR0aDogNDklO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgfVxyXG4gXHJcbiAgICAuZmctZmllbGQgeyAgICAgICAgXHJcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwOyAgXHJcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICAgICAgd2lkdGg6IDU5JTsgICAgIFxyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgICAgICAgXHJcbiAgICAgfVxyXG4gICAgXHJcbiAgICAgLmZnLWZpZWxkLTIgeyAgICAgICAgXHJcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwOyAgXHJcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICAgICAgcGFkZGluZy1yaWdodDogMnB4O1xyXG4gICAgICAgIHdpZHRoOiAyOSU7XHJcbiAgICAgICAgIFxyXG4gICAgfVxyXG4gICAgXHJcbiAgICAuZmctZmllbGQtMyB7ICAgICAgICBcclxuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7ICBcclxuICAgICAgICBmbG9hdDogbGVmdDtcclxuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAycHg7XHJcbiAgICAgICAgd2lkdGg6IDIwJTtcclxuICAgICAgICAgIFxyXG4gICAgfVxyXG4gICAgIC5mZy1maWVsZC00IHsgICAgICAgIFxyXG4gICAgICAgIHBhZGRpbmctbGVmdDogMDsgIFxyXG4gICAgICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDJweDtcclxuICAgICAgICB3aWR0aDogMTUlO1xyXG4gICAgICAgXHJcbiAgICB9XHJcbiAgICBcclxuICAgIFxyXG4gICAgIC5mZy1sYWJlbCB7ICAgICBcclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgICAgIHdpZHRoOiAyOSU7XHJcbiAgICAgICAgcGFkZGluZzowO1xyXG4gICAgIH1cclxuICAgIFxyXG4gICAgIC5mZy1sYWJlbC1zbWFsbCB7ICAgICBcclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgICAgIHdpZHRoOiAyNSU7XHJcbiAgICAgICAgcGFkZGluZzowO1xyXG4gICAgIH1cclxuICAgIFxyXG4gICAgLmZnLWxhYmVsLWxhcmdlIHsgICAgIFxyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICAgICAgd2lkdGg6IDU5JTtcclxuICAgICAgICBwYWRkaW5nOjA7XHJcbiAgICAgfVxyXG4gICAgXHJcbiAgICAuZmctbGFiZWwsIC5mZy1sYWJlbC1sYXJnZSwgLmZnLWxhYmVsLXNtYWxsICB7XHJcbiAgICAgICAgXHJcbiAgICAgICAgIHNwYW4geyAgICAgICAgICAgIFxyXG4gICAgICAgICAgICBjb2xvcjojRTQyRDlGO1xyXG4gICAgICAgICAgICBoZWlnaHQ6IDM1cHg7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6N3B4IDEwcHg7XHJcbiAgICAgICAgICAgIC8vYmFja2dyb3VuZDogIzkyQjYzMTtcclxuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgIHRleHQtYWxpZ246cmlnaHQ7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDtcclxuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7ICBcclxuICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICM5MkI2MzE7IC8vI0U0MkQ5RjtcclxuICAgICAgICB9ICBcclxuICAgICAgICBcclxuICAgIH0gXHJcbiAgICBcclxuICAgIC5mZy1taW5pIHsgICAgICAgXHJcbiAgICAgICAgICAgXHJcbiAgICAgICAgZmxvYXQ6bGVmdDtcclxuICAgICAgICBwYWRkaW5nOjA7XHJcbiAgICAgICAgXHJcbiAgICAgICAgaGVpZ2h0OiAzNXB4O1xyXG4gICAgICAgIHBhZGRpbmc6N3B4IDVweDsgIFxyXG4gICAgICAgIGJhY2tncm91bmQ6ICM5MkI2MzE7ICAgICAgXHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgbWF4LXdpZHRoOiAxMnB4O1xyXG4gICAgICAgIFxyXG4gICAgfVxyXG4gICAgXHJcbiAgICAuZmctcmVxdWlyZWQge1xyXG4gICAgICAgIFxyXG4gICAgICAgIGZsb2F0OmxlZnQ7XHJcbiAgICAgICAgcGFkZGluZzowO1xyXG4gICAgICAgIFxyXG4gICAgICAgIGhlaWdodDogMzVweDtcclxuICAgICAgICBwYWRkaW5nOjdweCA1cHg7ICBcclxuICAgICAgICBiYWNrZ3JvdW5kOiByZWQ7ICAgICAgICAgXHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgbWF4LXdpZHRoOiAxMnB4O1xyXG4gICAgICAgICAgICAgIFxyXG4gICAgfVxyXG4gICAgXHJcbiAgICBcclxuICAgICBzZWxlY3Qge1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjA3KTsgICAgICAgIFxyXG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7ICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4OyAgXHJcbiAgICAgICAgICAgIGhlaWdodDogMzVweDtcclxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7ICAgICAgICAgICBcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsgIFxyXG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgICAgICB9XHJcbiAgICBcclxuICAgICBpbnB1dCB7XHJcbiAgICAgICAgZGlzcGxheTogaW5saW5lO1xyXG4gICAgICAgIG1hcmdpbjogNXB4IDA7IFxyXG4gICAgICAgIGhlaWdodDogMzVweDsgXHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6MDsgXHJcbiAgICAgfVxyXG4gICAgXHJcbiAgICAgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdICB7XHJcbiAgICAgICAgZGlzcGxheTogaW5saW5lO1xyXG4gICAgICAgIG1hcmdpbjogNXB4IDA7IFxyXG4gICAgICAgIGhlaWdodDogMzVweDsgXHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6MTBweDsgXHJcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI0U0MkQ5RjsgICAgICAgICAgXHJcbiAgICAgICBcclxuICAgICB9XHJcbiAgICBcclxufVxyXG5cclxuXHJcblxyXG4iLCIvLyBMQVlPVVRcclxuXHJcbiNjb250ZW50IC5lcG9zLWNvbnRlbnQge1xyXG4gICAgXHJcbiAgcGFkZGluZzogMjBweDtcclxuICBvdmVyZmxvdzogYXV0bztcclxuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG4gIC8vYmFja2dyb3VuZC1jb2xvcjogI2Y2ZjZmNjsgICAgXHJcbiAgLmxlZnQge1xyXG4gICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICB3aWR0aDogNDklO1xyXG4gIH1cclxuICAucmlnaHQge1xyXG4gICAgZmxvYXQ6IHJpZ2h0O1xyXG4gICAgd2lkdGg6IDQ5JTtcclxuICB9XHJcbiAgICBcclxuICAucHJvZHVjdC1saXN0IHtcclxuICAgLy8gYm9yZGVyOiAxcHggc29saWQgIzc5M0U5NzsgIFxyXG4gICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICB3aWR0aDogNTklO1xyXG4gICAgbWluLWhlaWdodDogMzAwcHg7ICBcclxuICB9XHJcbiAgICBcclxuICAudHJvbGx5IHtcclxuICAgLy8gYm9yZGVyOiAxcHggc29saWQgIzc5M0U5NzsgIFxyXG4gICAgZmxvYXQ6IHJpZ2h0O1xyXG4gICAgd2lkdGg6IDM5JTtcclxuICAgIG1pbi1oZWlnaHQ6IDMwMHB4O1xyXG4gICAgcGFkZGluZzogMTBweCAxMHB4IDhweCAxMHB4OyAgXHJcbiAgfSAgICBcclxuICAgIFxyXG4gICAgXHJcbiAgaW5wdXQge1xyXG4gICAgJlt0eXBlPVwidGV4dFwiXSwgJlt0eXBlPVwicGFzc3dvcmRcIl0ge1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgIH1cclxuICB9XHJcbiAgdWwge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMHB4O1xyXG4gICAgbGkge1xyXG4gICAgICBsaXN0LXN0eWxlOiBub25lO1xyXG4gICAgICBsaW5lLWhlaWdodDogMjZweDtcclxuICAgIH1cclxuICB9XHJcbiAgICBcclxuIGlucHV0IHtcclxuICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XHJcbiAgICAgICAgbWFyZ2luOiA1cHggMDsgXHJcbiAgICAgICAgaGVpZ2h0OiAzNXB4OyBcclxuICAgICAgICAvL21hcmdpbi1sZWZ0OjJweDsgXHJcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgICAgICBcclxuICAgICB9XHJcbiAgXHJcbiAgICBcclxuICBcclxuICAgIFxyXG4gIFxyXG5cclxufSAgXHJcblxyXG4uZXBvcy1zZWxlY3Qge1xyXG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4wNyk7ICAgICAgICBcclxuICAgICAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7ICAgICAgICAgICAgICBcclxuICAgICAgICBmb250LXNpemU6IDEzcHg7ICBcclxuICAgICAgICBoZWlnaHQ6IDI1cHg7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7ICAgICAgICAgICBcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAwOyAgXHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICB9ICBcclxuLmVwb3MtbGFiZWwge1xyXG4gICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgY29sb3I6d2hpdGU7XHJcbiAgICAgICAgaGVpZ2h0OjM1cHg7XHJcbiAgICAgICAgcGFkZGluZzo3cHggNHB4O1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICM5MkI2MzE7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgdGV4dC1hbGlnbjpjZW50ZXI7XHJcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOyAgXHJcbiAgICAgICBcclxuICAgICAgIFxyXG59XHJcblxyXG4vLyBQUk9EVUNUIEJPWCBWRVJUSUNBTCBMQVlPVVRcclxuXHJcblxyXG4uZXBvcy1wcm9kdWN0LXYgeyAgICBcclxuICAgIHBhZGRpbmc6IDVweCA1cHggIWltcG9ydGFudDtcclxufVxyXG5cclxuLmVwb3MtcHJvZHVjdC1ib3gtdiB7ICAgIFxyXG4gICAgcGFkZGluZzogMTBweCAxMHB4IDhweCAxMHB4OyAgICBcclxuICAgIGJvcmRlcjoxcHggc29saWQgI0VBRUFFQTsgICAgICBcclxufVxyXG5cclxuLmVwb3MtcHJvZHVjdC1ib3gtdjpob3ZlciB7ICAgIFxyXG4gICAgIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7IFxyXG4gICAgIGJvcmRlcjogMXB4IHNvbGlkICNFNDJEOUY7ICBcclxufVxyXG5cclxuLmVwb3MtcHJvZHVjdC1ib3gtdiB7XHJcbiAgICAgICAgICAgIFxyXG4gICAgLmVwb3MtcHJvZHVjdC1pbWFnZSB7ICAgIFxyXG4gICAgICAgbWluLWhlaWdodDoxMzVweDsgXHJcbiAgICAgICBtYXgtaGVpZ2h0OiAxMzVweDsgICAgXHJcbiAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG5cclxuICAgIH0gICAgXHJcbiAgICBcclxuICAgIC5lcG9zLXByb2R1Y3QtbmFtZSB7XHJcbiAgICAgICAgbWFyZ2luOiAxMHB4IDAgMDtcclxuICAgICAgICBoZWlnaHQ6IDMycHg7ICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICBhIHtcclxuICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDsgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDEycHg7XHJcbiAgICAgICAgICBjb2xvcjogIzc5M0U5NzsgLy8jRTQyRDlGOyAvLyM3OTNFOTc7IC8vIzg3NDVBODsvLyAgIzkyQjYzMSA7IC8vIzQ2NDY0NjsgICBcclxuICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOyAgICBcclxuICAgICAgICB9IFxyXG4gICAgfSBcclxuICAgIFxyXG4gICAuZXBvcy1wcmljZSB7XHJcbiAgICAgICAgbWFyZ2luOiA0cHggMDtcclxuICAgICAgIFxyXG4gICAgfVxyXG4gICAgICAgIFxyXG4gICAuZXBvcy1wcmljZS1uZXcgeyAgXHJcbiAgICAgIC8vbWFyZ2luOiAxMHB4IDAgMDtcclxuICAgICAgaGVpZ2h0OiAzMHB4OyAgICAgICAgXHJcbiAgICAgIGZvbnQtc2l6ZTogMTBweDtcclxuICAgICAgbGluZS1oZWlnaHQ6IDEycHg7ICAgIFxyXG4gICAgICAvL2ZvbnQtd2VpZ2h0OiBib2xkOyAgIFxyXG4gICAgfVxyXG4gICAgXHJcbiAgXHJcbiAgICAuYnJhbmQge1xyXG4gICAgICAgICAgbWFyZ2luOiAtMnB4IDAgMDtcclxuICAgICAgICAgIHNwYW4sIGEge1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDExcHg7XHJcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBkaXNwbGF5IDogbm9uZTtcclxuICAgICAgfSAgICBcclxuICAgICAgICAgICAgICBcclxuICAgICAgICAuZGVzY3JpcHRpb24ge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgIH0gICAgXHJcbiAgIFxyXG4gICAgXHJcbiAgICAgIC5kZXNjcmlwdGlvbiB7XHJcbiAgICAgICAgICBsaW5lLWhlaWdodDogMTVweDtcclxuICAgICAgICAgIHBhZGRpbmc6IDEwcHggMDtcclxuICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgfVxyXG4gICAgXHJcbiAgICAgICBzZWxlY3Qge1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjA3KTsgICAgICAgIFxyXG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7ICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4OyAgXHJcbiAgICAgICAgICAgIGhlaWdodDogMTVweDtcclxuICAgICAgICAgICAgd2lkdGg6IDcwJSAhaW1wb3J0YW50OyAgICAgICAgICAgXHJcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7ICBcclxuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICAgICAgICAgXHJcbiAgICAgICAgfSAgXHJcbiAgICBcclxuICAgIFxyXG59XHJcblxyXG5cclxuXHJcbi5lcG9zLXByb2R1Y3QtYm94LXYge1xyXG4gICAgXHJcbiAgICAuZXBib3gtZmcge1xyXG4gICAgICAgICBwYWRkaW5nOiAwOyAgICAgICAgIFxyXG4gICAgfVxyXG4gICAgXHJcbiAgICAuZXBib3gtbGFiZWwgeyAgICAgICAgICAgIFxyXG4gICAgICAgICAgICBjb2xvcjp3aGl0ZTtcclxuICAgICAgICAgICAgbWFyZ2luOiA1cHggMDsgXHJcbiAgICAgICAgICAgIGhlaWdodDozNXB4O1xyXG4gICAgICAgICAgICBwYWRkaW5nOjdweCA0cHg7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNFQUVBRUE7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICB0ZXh0LWFsaWduOmNlbnRlcjtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4O1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDsgICAgICAgICAgICBcclxuICAgIH0gIFxyXG4gICAgXHJcbiAgICBpbnB1dCB7XHJcbiAgICAgICAgZGlzcGxheTogaW5saW5lO1xyXG4gICAgICAgIG1hcmdpbjogNXB4IDA7IFxyXG4gICAgICAgIGhlaWdodDogMzVweDsgXHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6MnB4OyBcclxuICAgICAgICAgXHJcbiAgICAgfVxyXG4gICAgXHJcbiAgICAgaW5wdXQucXVhbnRpdHkgeyAgICAgICAgICAgICBcclxuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1MiwgMjUyLCAyNTIsIDAuOTUpO1xyXG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4wNyk7ICAgICAgICBcclxuICAgICAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7XHJcbiAgICAgICAgd2lkdGg6IDQzJSAhaW1wb3J0YW50OyBcclxuICAgICAgICBmb250LXNpemU6IDEycHg7ICAgXHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICAgfSBcclxuICAgIFxyXG4gICAgICBpbnB1dC52RmluYWxQcmljZSwgaW5wdXQuZmluYWxQcmljZSB7ICAgICAgICAgICAgIFxyXG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjUyLCAyNTIsIDI1MiwgMC45NSk7XHJcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjA3KTsgICAgICAgIFxyXG4gICAgICAgIHBhZGRpbmctbGVmdDogNXB4O1xyXG4gICAgICAgIHdpZHRoOiAyOCUgIWltcG9ydGFudDsgXHJcbiAgICAgICAgZm9udC1zaXplOiAxMnB4OyAgIFxyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgIH0gXHJcbiAgICBcclxuICAgIC5idXR0b24tZXhjbHVzaXZlIHtcclxuICAgICAgICB3aWR0aDozNSU7XHJcbiAgICAgICAgaGVpZ2h0OiAzNXB4OyBcclxuICAgIH1cclxuICAgIFxyXG59XHJcblxyXG4vLyBFTkQgT0YgVkVSVElDQUwgTEFZT1VUXHJcblxyXG4vLyBIT1JJWk9OVEFMIFBST0RVQ1QgQk9YXHJcbi5lcG9zLXByb2R1Y3QtaCB7ICAgIFxyXG4gICAgcGFkZGluZzogNXB4IDVweCAhaW1wb3J0YW50O1xyXG4gICAgXHJcbiAgICB0YWJsZSB0Ym9keSB0ZCB7XHJcbiAgICAgICAgcGFkZGluZyA6IDBweCA4cHggMHB4IDhweDtcclxuICAgICAgICBcclxuICAgICAgICAgIFxyXG4gICAgfVxyXG4gICAgXHJcbiAgICAubGJsdGQge1xyXG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OjAgIWltcG9ydGFudDtcclxuICAgIH1cclxuICAgIFxyXG4gICAgLmxhYmVsZC1pbnB1dC10ZCB7XHJcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDowICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIFxyXG4gICAgXHJcbn1cclxuLmVwb3MtcHJvZHVjdC1ib3gtaCB7XHJcbiAgICBcclxuICAgIC5wYmgtbGFiZWwgeyAgICAgICBcclxuICAgICAgICAgICBcclxuICAgICAgICBtYXgtd2lkdGg6IDYwcHg7XHJcbiAgICAgICAgcGFkZGluZzowO1xyXG4gICAgICAgIFxyXG4gICAgICAgIHNwYW4geyAgICAgICAgICAgIFxyXG4gICAgICAgICAgICBjb2xvcjp3aGl0ZTtcclxuICAgICAgICAgICAgaGVpZ2h0OjM1cHg7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6N3B4IDRweDtcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogIzlkYjU1YTtcclxuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgIHRleHQtYWxpZ246Y2VudGVyO1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDEycHg7XHJcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOyAgICAgICAgICAgIFxyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgIH1cclxuICAgIFxyXG4gICAgXHJcbiAgICAgLnByb2R1Y3QtbmFtZSB7XHJcbiAgICAgICAgbWFyZ2luOiAxMHB4IDAgMDtcclxuICAgICAgICBoZWlnaHQ6IDMycHg7ICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICBhIHtcclxuICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDEycHg7XHJcbiAgICAgICAgICBjb2xvcjogIzc5M0U5NzsgLy8jRTQyRDlGOyAvLyM3OTNFOTc7IC8vIzg3NDVBODsvLyAgIzkyQjYzMSA7IC8vIzQ2NDY0NjsgICBcclxuICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOyAgICBcclxuICAgICAgICB9IFxyXG4gICAgfSBcclxuICAgIFxyXG4gICAgaW5wdXQge1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZTtcclxuICAgICAgICBtYXJnaW46IDVweCAwOyBcclxuICAgICAgICBoZWlnaHQ6IDM1cHg7IFxyXG4gICAgICAgIC8vbWFyZ2luLWxlZnQ6MnB4OyBcclxuICAgICAgICBmb250LXNpemU6IDEycHg7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICAgICAgIFxyXG4gICAgIH1cclxuICBcclxuICAgIFxyXG4gICAgICBzZWxlY3Qge1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjA3KTsgICAgICAgIFxyXG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7ICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4OyAgXHJcbiAgICAgICAgICAgIGhlaWdodDogMTVweDtcclxuICAgICAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgICAgICAgICAgIFxyXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwOyAgXHJcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgICAgICAgIFxyXG4gICAgICAgIH0gIFxyXG4gICAgXHJcbiAgICBcclxufVxyXG5cclxuXHJcblxyXG5cclxuLy8gRU5EIE9GIEhPUklaT05UQUwgUFJPRFVDVCBCT1hcclxuXHJcblxyXG5cclxuXHJcbi8vIFByb2R1Y3QgQm94IEhPUklaT05UQUwgTEFZT1VUIC0gb2xkXHJcbi5lcG9zLXByb2R1Y3QgeyAgICBcclxuICAgIHBhZGRpbmc6IDVweCA1cHggIWltcG9ydGFudDtcclxufVxyXG5cclxuXHJcbi5lcG9zLXByb2R1Y3QtYm94IHtcclxuICAgIFxyXG4gICAgcGFkZGluZzogMTBweCAxMHB4IDhweCAxMHB4OyAgICBcclxuICAgIGJvcmRlcjoxcHggc29saWQgI0VBRUFFQTtcclxuICAgIC8vbWFyZ2luOjVweDsgICAgXHJcbn1cclxuLmVwb3MtcHJvZHVjdC1ib3g6aG92ZXIge1xyXG4gICAgXHJcbiAgICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjsgXHJcbiAgICAgYm9yZGVyOiAxcHggc29saWQgI0U0MkQ5RjtcclxuICAgICBcclxufVxyXG5cclxuLm9yZGVyLWhlYWRlciB7XHJcbiAgbWFyZ2luOiA1cHggMCAwO1xyXG4gIGhlaWdodDogMTVweDsgICAgICAgIFxyXG4gIGZvbnQtc2l6ZTogMTJweDtcclxuICBsaW5lLWhlaWdodDogMTVweDsgICAgXHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7ICAgXHJcbn1cclxuXHJcbi5vcmRlci1kZXRhaWwge1xyXG4gIG1hcmdpbjogNXB4IDAgMDtcclxuICBoZWlnaHQ6IDE1cHg7ICAgICAgICBcclxuICBmb250LXNpemU6IDEycHg7XHJcbiAgbGluZS1oZWlnaHQ6IDE1cHg7ICAgICAgIFxyXG59XHJcblxyXG5cclxuLmVwb3MtcHJvZHVjdC1ib3gge1xyXG4gICAgXHJcbiAgXHJcbiAgIFxyXG4gICAgLmltYWdlIHsgICAgXHJcbiAgICAgICBtaW4taGVpZ2h0Ojg1cHg7IFxyXG4gICAgICAgbWF4LWhlaWdodDogODVweDsgICAgXHJcbiAgICAgICBmbG9hdDpsZWZ0OyAgICAgICAgICBcclxuICAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgICB9IFxyXG4gICAgICAgIFxyXG4gICAgLmVwb3MtcHJvZHVjdC1uYW1lIHtcclxuICAgIG1hcmdpbjogMTBweCAwIDA7XHJcbiAgICBoZWlnaHQ6IDMwcHg7ICAgICAgICAgICAgICAgIFxyXG4gICAgICAgIGEge1xyXG4gICAgICAgICAgZm9udC1zaXplOiAxNHB4OyAgICAgICAgICAgICAgXHJcbiAgICAgICAgICBsaW5lLWhlaWdodDogMTRweDtcclxuICAgICAgICAgIGNvbG9yOiAjNzkzRTk3OyAvLyNFNDJEOUY7IC8vIzc5M0U5NzsgLy8jODc0NUE4Oy8vICAjOTJCNjMxIDsgLy8jNDY0NjQ2OyAgIFxyXG4gICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7ICAgIFxyXG4gICAgICAgIH1cclxuICAgIH0gXHJcbiAgICAgICAgXHJcbiAgIC5lcG9zLXByaWNlLW5ldyB7ICBcclxuICAgICAgbWFyZ2luOiAxMHB4IDAgMDtcclxuICAgICAgaGVpZ2h0OiAzMHB4OyAgICAgICAgXHJcbiAgICAgIGZvbnQtc2l6ZTogMTJweDtcclxuICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7ICAgIFxyXG4gICAgICBmb250LXdlaWdodDogYm9sZDsgICBcclxuICAgIH1cclxuICAgIFxyXG4gICAgLmZnLWNvbHVtbiB7XHJcbiAgICAgICAgICAgICAgIFxyXG4gICAgfVxyXG4gICAgXHJcbiAgICBcclxuICAgIC5mZy1maWVsZCB7ICAgICAgICBcclxuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7ICAgICAgICBcclxuICAgIH1cclxuICAgIFxyXG4gICAgLmZnLWxhYmVsIHsgICAgICAgXHJcbiAgICAgICAgICAgXHJcbiAgICAgICAgbWF4LXdpZHRoOiA2MHB4O1xyXG4gICAgICAgIHBhZGRpbmc6MDtcclxuICAgICAgICBcclxuICAgICAgICBzcGFuIHsgICAgICAgICAgICBcclxuICAgICAgICAgICAgY29sb3I6d2hpdGU7XHJcbiAgICAgICAgICAgIGhlaWdodDozMHB4O1xyXG4gICAgICAgICAgICBwYWRkaW5nOjdweCA0cHg7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICM5MkI2MzE7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICB0ZXh0LWFsaWduOmNlbnRlcjtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4O1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDsgICAgICAgICAgICBcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICB9XHJcbiAgICBcclxuICAgIC5mZy1pbnB1dCB7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XHJcbiAgICAgICAgaGVpZ2h0OiAzMHB4O1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZTtcclxuICAgICAgICBmb250LXNpemU6IDEycHg7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICAgICAgXHJcbiAgICB9XHJcbiAgICBcclxuICAgXHJcbiAgICBcclxuICAgIC5kZXNjcmlwdGlvbiB7XHJcbiAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIH1cclxuICAgIFxyXG4gICBcclxuICAgIFxyXG4gICAgLmJyYW5kIHtcclxuICAgICAgICAgIG1hcmdpbjogLTJweCAwIDA7XHJcbiAgICAgICAgICBzcGFuLCBhIHtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxMXB4O1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZGlzcGxheSA6IG5vbmU7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIC5kZXNjcmlwdGlvbiB7XHJcbiAgICAgICAgICBsaW5lLWhlaWdodDogMTVweDtcclxuICAgICAgICAgIHBhZGRpbmc6IDEwcHggMDtcclxuICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgfVxyXG4gICAgXHJcbiAgICAuZy1sYWJlbCB7XHJcbiAgICAgICAgd2lkaHQ6MSU7XHJcbiAgICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcclxuICAgIH1cclxuICAgIFxyXG4gICAgc2VsZWN0IHtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4wNyk7ICAgICAgICBcclxuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAxMHB4OyAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDsgIFxyXG4gICAgICAgICAgICBoZWlnaHQ6IDMwcHg7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlOyAgICAgICAgICAgXHJcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7ICBcclxuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICAgICAgfVxyXG4gICAgXHJcbiAgICAgaW5wdXQge1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZTtcclxuICAgICAgICBtYXJnaW46IDVweCAwOyBcclxuICAgICAgICBoZWlnaHQ6IDMwcHg7IFxyXG4gICAgICAgIG1hcmdpbi1sZWZ0OjJweDsgXHJcbiAgICAgfVxyXG4gICAgIGlucHV0LnF1YW50aXR5IHsgICAgICAgICAgICAgXHJcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTIsIDI1MiwgMjUyLCAwLjk1KTtcclxuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMDcpOyAgICAgICAgXHJcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAyMHB4O1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOyBcclxuICAgICAgICBmb250LXNpemU6IDEycHg7ICAgICAgICAgXHJcbiAgICAgfSBcclxuICAgIFxyXG4gICAgXHJcbiAgICBcclxufVxyXG5cclxuXHJcbiAuZXBvcy10cm9sbHktZGF0YSB7ICBcclxuICAgICAgICAvL2JvcmRlcjogMXB4IHNvbGlkICNFQUVBRUE7ICAgICBcclxuICAgICAgICBoZWlnaHQ6IDIuMHJlbTsgICBcclxuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAjRjhGOEY4OyAgIFxyXG4gICAgICAgIGNvbG9yOiAjRTQyRDlGOyAgIFxyXG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxLjVyZW07ICAgICBcclxuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG4gICAgICAgIG1hcmdpbjogM3B4IDAgM3B4IDA7XHJcbiAgICB9XHJcblxyXG5cclxuLmVwb3MtZm9ybSB7XHJcbiAgICBcclxuICAgIC5mb3JtLWZnIHsgICAgICAgIFxyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7IFxyXG4gICAgfVxyXG4gICAgXHJcbiAgICAuZmctY29sdW1uIHtcclxuICAgICAgIC8vIGJhY2tncm91bmQ6IGdyZXk7XHJcbiAgICAgICAgXHJcbiAgICB9XHJcbiBcclxuICAgIC5mZy1maWVsZCB7ICAgICAgICBcclxuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7ICBcclxuICAgICAgICBmbG9hdDogbGVmdDtcclxuICAgICAgICB3aWR0aDogNTklO1xyXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDJweDtcclxuICAgICAgICBcclxuICAgIH1cclxuICAgIFxyXG4gICAgLmZnLWZpZWxkLTIgeyAgICAgICAgXHJcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwOyAgXHJcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICAgICAgcGFkZGluZy1yaWdodDogMnB4O1xyXG4gICAgICAgIHdpZHRoOiAyOSU7XHJcbiAgICAgICAgIFxyXG4gICAgfVxyXG4gICAgXHJcbiAgICAuZmctZmllbGQtMyB7ICAgICAgICBcclxuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7ICBcclxuICAgICAgICBmbG9hdDogbGVmdDtcclxuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAycHg7XHJcbiAgICAgICAgd2lkdGg6IDIwJTtcclxuICAgICAgICAgIFxyXG4gICAgfVxyXG4gICAgIC5mZy1maWVsZC00IHsgICAgICAgIFxyXG4gICAgICAgIHBhZGRpbmctbGVmdDogMDsgIFxyXG4gICAgICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDJweDtcclxuICAgICAgICB3aWR0aDogMTUlO1xyXG4gICAgICAgXHJcbiAgICB9XHJcbiAgICBcclxuICAgIC5mZy1sYWJlbCB7ICAgICBcclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgICAgIHdpZHRoOiAyOSU7XHJcbiAgICAgICAgcGFkZGluZzowO1xyXG4gICAgIH1cclxuICAgIFxyXG4gICAgLmZnLWxhYmVsLWxhcmdlIHsgICAgIFxyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICAgICAgd2lkdGg6IDU5JTtcclxuICAgICAgICBwYWRkaW5nOjA7XHJcbiAgICAgfVxyXG4gICAgXHJcbiAgICAuZmctbGFiZWwsIC5mZy1sYWJlbC1sYXJnZSB7XHJcbiAgICAgICAgXHJcbiAgICAgICAgIHNwYW4geyAgICAgICAgICAgIFxyXG4gICAgICAgICAgICBjb2xvcjojRTQyRDlGO1xyXG4gICAgICAgICAgICBoZWlnaHQ6IDM1cHg7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6N3B4IDEwcHg7XHJcbiAgICAgICAgICAgIC8vYmFja2dyb3VuZDogIzkyQjYzMTtcclxuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgIHRleHQtYWxpZ246cmlnaHQ7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDtcclxuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7ICBcclxuICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICM5MkI2MzE7IC8vI0U0MkQ5RjtcclxuICAgICAgICB9ICBcclxuICAgICAgICBcclxuICAgIH0gXHJcbiAgICBcclxuICAgIC5mZy1taW5pIHsgICAgICAgXHJcbiAgICAgICAgICAgXHJcbiAgICAgICAgZmxvYXQ6bGVmdDtcclxuICAgICAgICBwYWRkaW5nOjA7XHJcbiAgICAgICAgXHJcbiAgICAgICAgaGVpZ2h0OiAzNXB4O1xyXG4gICAgICAgIHBhZGRpbmc6N3B4IDVweDsgIFxyXG4gICAgICAgIGJhY2tncm91bmQ6ICM5MkI2MzE7ICAgICAgXHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgbWF4LXdpZHRoOiAxMnB4O1xyXG4gICAgICAgIFxyXG4gICAgfVxyXG4gICAgXHJcbiAgICAuZmctcmVxdWlyZWQge1xyXG4gICAgICAgIFxyXG4gICAgICAgIGZsb2F0OmxlZnQ7XHJcbiAgICAgICAgcGFkZGluZzowO1xyXG4gICAgICAgIFxyXG4gICAgICAgIGhlaWdodDogMzVweDtcclxuICAgICAgICBwYWRkaW5nOjdweCA1cHg7ICBcclxuICAgICAgICBiYWNrZ3JvdW5kOiByZWQ7ICAgICAgICAgXHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgbWF4LXdpZHRoOiAxMnB4O1xyXG4gICAgICAgICAgICAgIFxyXG4gICAgfVxyXG4gICAgXHJcbiAgICBcclxuICAgICBzZWxlY3Qge1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjA3KTsgICAgICAgIFxyXG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7ICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4OyAgXHJcbiAgICAgICAgICAgIGhlaWdodDogMzVweDtcclxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7ICAgICAgICAgICBcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsgIFxyXG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgICAgICB9XHJcbiAgICBcclxuICAgICBpbnB1dCB7XHJcbiAgICAgICAgZGlzcGxheTogaW5saW5lO1xyXG4gICAgICAgIG1hcmdpbjogNXB4IDA7IFxyXG4gICAgICAgIGhlaWdodDogMzVweDsgXHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6MDsgXHJcbiAgICAgfVxyXG4gICAgXHJcbiAgICAgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdICB7XHJcbiAgICAgICAgZGlzcGxheTogaW5saW5lO1xyXG4gICAgICAgIG1hcmdpbjogNXB4IDA7IFxyXG4gICAgICAgIGhlaWdodDogMzVweDsgXHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6MTBweDsgXHJcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI0U0MkQ5RjsgICAgICAgICAgXHJcbiAgICAgICBcclxuICAgICB9XHJcbiAgICBcclxufVxyXG5cclxuI2ludm9pY2UtcGFnZSB7XHJcbiAgICBcclxuICAgLy8gc2l6ZSBvZiBBNCBQQUdFIGlzIDc5NHB4IHggMTEwNHB4ICAgIFxyXG4gICAvLyAzNy4zcHggaXMgMSBjbVxyXG4gICAvLyBMRUZUIEJPUkRFUiAtIDEuM0NNIC0gNDguNFBYXHJcbiAgIC8vIFJJR0hUIEJPUkRFUiAtIDEuM0NNIC0gNDguNFBYXHJcbiAgIC8vIFRPUCBCT1JERVIgLSAxLjNDTSBcclxuICAgIC8vIEJPVFRPTSBCT1JERVIgLSAxLjNDTVxyXG4gICAvLyBBVkFJTEFCTEUgV0lEVEggRk9SIFBSSU5USU5HIC0gV0lEVEggNjg3UFggICAgSEVJR0hUIC0gXHJcbiAgICBcclxuXHJcbiAgIGZvbnQtZmFtaWx5OnZlcmRhbmEsIGNhbGlicmksIHNhbnMtc2VyaWY7ICAgIFxyXG4gICB3aWR0aDogIDcwOHB4Oy8vNjg3cHg7ICAvLyA3ODRweDtcclxuICAgbWF4LXdpZHRoOiA3MDhweDsgXHJcbiAgLy8gaGVpZ2h0OiAxMDA3cHg7Ly8xMTA1cHg7XHJcbiAgICBcclxuICAgbWFyZ2luLWxlZnQ6IDE1cHg7XHJcbiAgIG1hcmdpbi10b3A6IDA7ICBcclxuICAgcGFkZGluZy10b3A6MDtcclxuICAgcGFkZGluZy1sZWZ0OjA7IFxyXG4gICAgIFxyXG4gICAgXHJcbiAvLyAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7ICBcclxuICAgY29sb3I6IGJsYWNrOyAgICAgXHJcbiBcclxuICAgICAgICBcclxufVxyXG5cclxuI2ludm9pY2UtcGFnZSAuaGVhZGVyIHtcclxuICAgIFxyXG4gICAgLy8gNGNtIGhlaWdodFxyXG4gICAgLy8gNmNtIGxvZ28gcGFydCAsIDdjbSBtaWRkbGUgcGFydCwgOGNtIHJpZ2h0IHBhcnRcclxuICAgIC8vIGxvZ28gM2NtIHggMmNtICh3IHggaClcclxuICAgIFxyXG4gICAgd2lkdGg6NzA1cHg7XHJcbiAgICBoZWlnaHQ6MTQwcHg7ICAgIFxyXG4gICAgbWFyZ2luLWxlZnQ6IDFweDtcclxuICAgIFxyXG4gICAgXHJcbiAgICAuaGVhZGVyLWxlZnQgeyAgICAgICAgXHJcbiAgICAgICAgd2lkdGg6MjAwcHg7ICAgICAgXHJcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xyXG4gICAgICAgIGZsb2F0OmxlZnQ7XHJcbiAgICAgICAgLy9iYWNrZ3JvdW5kOmJsdWU7XHJcbiAgICAgICAgXHJcbiAgICB9IFxyXG4gICAgLmhlYWRlci1taWRkbGUgeyAgICAgICAgXHJcbiAgICAgICAgd2lkdGg6MjAwcHg7ICAgICAgIFxyXG4gICAgICAgIHBhZGRpbmctdG9wOiA4MHB4OyAgICAgICBcclxuICAgICAgICBmbG9hdDpsZWZ0O1xyXG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG4gICAgICAgLy8gYmFja2dyb3VuZDogZ3JlZW47XHJcbiAgICAgICAgXHJcbiAgICB9XHJcbiAgICAuaGVhZGVyLXJpZ2h0IHtcclxuICAgICAgICB3aWR0aDozMDVweDsgICAgICAgXHJcbiAgICAgICAgZmxvYXQ6bGVmdDsgICAgICAgIFxyXG4gICAgICAgIC8vYmFja2dyb3VuZDogYXF1YTtcclxuICAgICAgICBcclxuICAgIH1cclxuICAgIC5sb2dvIHtcclxuICAgICAgICAgICBwYWRkaW5nLXRvcDo4cHg7ICAgIFxyXG4gICAgICAgICAgIG1heC13aWR0aDoxMTJweDtcclxuICAgICAgICAgICBtYXgtaGVpZ2h0OiA3NXB4O1xyXG4gICAgICAgIFxyXG4gICAgfVxyXG4gICAgLmNvbXBhbnkgeyAgICAgICBcclxuICAgICAgIFxyXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7XHJcbiAgICAgICAgcGFkZGluZy10b3A6NHB4O1xyXG4gICAgICAgIGZsb2F0OnJpZ2h0O1xyXG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICAgICAgXHJcbiAgICB9XHJcbiAgICBcclxuICAgLmNvbXBhbnktbmFtZSB7XHJcbiAgICAgICAgcGFkZGluZy10b3A6NnB4O1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMTZweDtcclxuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOyBcclxuICAgIH1cclxuICAgIFxyXG4gICAgLmludm9pY2UtaGVhZGVyIHsgICAgICAgIFxyXG4gICAgICAgIGZvbnQtc2l6ZTogMjJweDtcclxuICAgICAgICBmb250LXdlaWdodDogYm9sZDsgICAgICAgIFxyXG4gICAgfSBcclxuICAgIFxyXG4gICAgLmNvbXBhbnktYWRkcmVzcyB7XHJcbiAgICAgICAgcGFkZGluZy10b3A6MXB4OyAgICAgICBcclxuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMTFweDsgXHJcbiAgICAgICAgXHJcbiAgICB9XHJcbiAgICBcclxuICAgXHJcbiAgICBcclxuICAgXHJcbiAgICBcclxufVxyXG5cclxuI2ludm9pY2UtcGFnZSAudG9wLWRldGFpbHMge1xyXG4gICAgXHJcbiAgICB3aWR0aDo3MDVweDtcclxuICAgIGhlaWdodDoxNTVweDsgICAgXHJcbiAgICBtYXJnaW4tbGVmdDogMXB4O1xyXG4gICAgXHJcbiAgICAgXHJcbiAgICAudGQtbGVmdCB7ICAgICAgIFxyXG4gICAgICAgd2lkdGg6NDAwcHg7XHJcbiAgICAgICBmbG9hdDpsZWZ0OyAgICAgICAgICAgICBcclxuICAgIH1cclxuICAgIFxyXG4gICAgLnRkLXJpZ2h0IHsgICAgICAgIFxyXG4gICAgICAgIHdpZHRoOjMwNXB4OyAgICAgICBcclxuICAgICAgICBwYWRkaW5nLWxlZnQ6IDE2cHg7XHJcbiAgICAgICAgZmxvYXQ6bGVmdDtcclxuICAgIH1cclxuICAgIFxyXG4gICAgLmN1c3RvbWVyLWRldGFpbHMge1xyXG4gICAgICAgIG1pbi1oZWlnaHQ6MTU1cHg7XHJcbiAgICAgICAgcGFkZGluZzogMTJweCAyMnB4O1xyXG4gICAgICAgIG1heC13aWR0aDogMzUwcHg7ICAgICAgICBcclxuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsgIFxyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcclxuICAgIH1cclxuICAgIFxyXG4gICAgLmludm9pY2UtZGV0YWlscyB7XHJcbiAgICAgICAgXHJcbiAgICAgICAgbWluLWhlaWdodDoxNTVweDtcclxuICAgICAgICBtYXgtd2lkdGg6IDI1MHB4OyAgICAgICBcclxuICAgICAgICBwYWRkaW5nOiAxMnB4IDIycHg7ICAgICAgICBcclxuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsgIFxyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcclxuICAgICAgIFxyXG4gICAgfVxyXG4gICAgXHJcbiAgICAudGQtZ3JvdXAgeyAgICAgICAgXHJcbiAgICAgICAgaGVpZ2h0OiAyNXB4OyAgICAgICAgIFxyXG4gICAgfSBcclxuICAgIFxyXG4gICAgLnRkLWxhYmVsIHtcclxuICAgICAgICB3aWR0aDogMTAwcHg7XHJcbiAgICAgICAgZmxvYXQ6bGVmdDtcclxuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcclxuICAgICAgLy8gIGZvbnQtd2VpZ2h0OiBib2xkOyAgXHJcbiAgICAgICBcclxuICAgICAgICBcclxuICAgIH1cclxuICAgIC50ZC10ZXh0IHtcclxuICAgICAgICBmbG9hdDpsZWZ0O1xyXG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xyXG4gICAgICAgIFxyXG4gICAgfVxyXG4gICAgXHJcbiAgICAuY2xpZW50LWxhYmVsIHtcclxuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcclxuICAgICAgICBmb250LXdlaWdodDogYm9sZDsgICBcclxuICAgIH1cclxuICAgIC5jbGllbnQtdGV4dCB7XHJcbiAgICAgICAgcGFkZGluZy10b3A6MnB4OyAgICAgICBcclxuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDsgXHJcbiAgICAgICAgIHNwYW4ge1xyXG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxNnB4O1xyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgIH1cclxuICAgIFxyXG59XHJcblxyXG5cclxuXHJcblxyXG4jaW52b2ljZS1wYWdlIC5pbnZvaWNlLXRhYmxlIHtcclxuICAgIFxyXG4gICAgIHdpZHRoOjcwNXB4OyAgICAgIFxyXG4gICAgIG1pbi1oZWlnaHQ6IDUwMHB4O1xyXG4gICAgIG1hcmdpbi1sZWZ0OiAxcHg7XHJcbiAgXHJcbiAgICAgbWFyZ2luLXRvcDogMjJweDsgICAgIFxyXG4gICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOyAgXHJcbiAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xyXG4gICAgXHJcbiAgICBcclxuICAgIC5oZWFkZXItcm93IHtcclxuICAgICAgICBmb250LXNpemU6IDEycHg7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7ICAgICAgIFxyXG4gICAgICAgIHBhZGRpbmc6OHB4IDEwcHg7XHJcbiAgICAgICAgY2xlYXI6Ym90aDtcclxuICAgICAgICBoZWlnaHQ6IDMycHg7XHJcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGJsYWNrOyBcclxuICAgICAgICBcclxuICAgIH1cclxuICAgIFxyXG4gICAgLmRhdGEtcm93IHtcclxuICAgICAgICBwYWRkaW5nLWxlZnQ6MTBweDsgICAgICAgIFxyXG4gICAgICAgIGNsZWFyOmJvdGg7ICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gICAgICAvLyAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGJsYWNrOyAgICAgICAgIFxyXG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDsgXHJcbiAgICAgICAgXHJcbiAgICAgICAgZGl2IHtcclxuICAgICAgICAgICAgaGVpZ2h0OiAyM3B4O1xyXG4gICAgICAgICAgICBwYWRkaW5nLXRvcDozcHg7ICAgICAgICAgICAgXHJcbiAgICAgICAgICAgLy8gYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgYmxhY2s7IFxyXG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyAgICAgICAgICAgIFxyXG4gICAgICAgIH1cclxuICAgIH0gICAgICBcclxuICAgIFxyXG4gICAgLml0ZW0tY29kZSB7XHJcbiAgICAgICAgZmxvYXQ6bGVmdDtcclxuICAgICAgICB3aWR0aDogNzVweDsgICAgICAgICAgICAgXHJcbiAgICB9IFxyXG4gICAgXHJcbiAgICAuZGVzY3JpcHRpb24geyAgICAgICAgXHJcbiAgICAgICAgZmxvYXQ6bGVmdDtcclxuICAgICAgICB3aWR0aDogMzA1cHg7ICAgICAgIFxyXG4gICAgfSAgXHJcbiAgXHJcbiAgICBcclxuICAgIC5wYWNrLXNpemUge1xyXG4gICAgICAgIGZsb2F0OmxlZnQ7XHJcbiAgICAgICAgd2lkdGg6IDgwcHg7ICAgICAgICAgICAgIFxyXG4gICAgfVxyXG4gICAgXHJcbiAgICAucXR5IHtcclxuICAgICAgICBmbG9hdDpsZWZ0O1xyXG4gICAgICAgIHdpZHRoOjM1cHg7ICAgICAgXHJcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XHJcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xyXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6MjBweDsgICAgICAgXHJcbiAgICB9XHJcbiAgICBcclxuICAgIC5pdC1wcmljZSB7XHJcbiAgICAgICAgZmxvYXQ6bGVmdDtcclxuICAgICAgICB3aWR0aDogNzVweDsgICAgICAgXHJcbiAgICAgICAgdGV4dC1hbGlnbjpyaWdodDsgXHJcbiAgICAgICAgcGFkZGluZy1yaWdodDoxNXB4O1xyXG4gICAgICAgXHJcbiAgICB9XHJcbiAgICBcclxuICAgIC52YXQge1xyXG4gICAgICAgIGZsb2F0OmxlZnQ7XHJcbiAgICAgICAgd2lkdGg6IDM1cHg7ICAgICAgXHJcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7IFxyXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6MTBweDsgXHJcbiAgICB9XHJcbiAgICBcclxuICAgIC5pdC10b3RhbCB7XHJcbiAgICAgICAgZmxvYXQ6bGVmdDtcclxuICAgICAgICB3aWR0aDo3NXB4OyAgICAgXHJcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7IFxyXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7XHJcbiAgICAgICBcclxuICAgIH1cclxuICAgIFxyXG4gICAgXHJcbiAgIFxyXG4gICAgXHJcbiAgICBcclxufVxyXG5cclxuI2ludm9pY2UtcGFnZSAuaW52b2ljZS10b3RhbHMge1xyXG4gICAgXHJcbiAgICB3aWR0aDo3MDVweDsgICAgICBcclxuICAgIG1hcmdpbi1sZWZ0OiAxcHg7XHJcbiAgICBtYXJnaW4tdG9wOiA2cHg7ICAgICBcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOyAgXHJcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XHJcbiAgICBtaW4taGVpZ2h0OjEyMHB4O1xyXG4gICAgIGZvbnQtc2l6ZTogMTFweDtcclxuICAgICAgXHJcbiAgICAuaXQtbGVmdCB7ICAgICAgIFxyXG4gICAgICAgd2lkdGg6NDAwcHg7IFxyXG4gICAgICAgZmxvYXQ6bGVmdDsgXHJcbiAgICAgLy8gICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICAuaXQtcmlnaHQgeyAgICAgICAgXHJcbiAgICAgICAgd2lkdGg6MzAwcHg7ICAgICAgICAgIFxyXG4gICAgICAgIGZsb2F0OmxlZnQ7ICAgICAgIFxyXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XHJcbiAgICAgICAgbWFyZ2luLXJpZ2h0OjNweDtcclxuICAgICAgIC8vIGJhY2tncm91bmQtY29sb3I6IGdyZWVuO1xyXG4gICAgICBcclxuICAgIH1cclxuICAgIFxyXG4gICAgLmN1c3RvbWVyLWNoZWNrIHtcclxuICAgICAgICBwYWRkaW5nOiAxOHB4IDE2cHggNHB4IDE4cHg7ICAgICAgXHJcbiAgICAgICAgICAgXHJcbiAgICB9XHJcbiAgICBcclxuICAgIC5maW5hbC10b3RhbHMgeyAgICAgICBcclxuICAgICAgICBtYXJnaW4tbGVmdDogMDtcclxuICAgICAgICBwYWRkaW5nOiAxOHB4IDZweCA0cHggNnB4OyAgXHJcbiAgICAgICAgZmxvYXQ6cmlnaHQ7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIC5pdC1ncm91cCB7ICAgICAgIFxyXG4gICAgICAgIGhlaWdodDogMzBweDsgXHJcbiAgICAgICAgLy9ib3JkZXI6IDFweCBzb2xpZCBibGFjazsgXHJcbiAgICB9XHJcbiAgICBcclxuICAgIC5pdC1sYWJlbCB7XHJcbiAgICAgICAgd2lkdGg6IDEzMHB4O1xyXG4gICAgICAgIGZsb2F0OmxlZnQ7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XHJcbiAgICAgICBcclxuICAgICAgICBmb250LXdlaWdodDogYm9sZDsgXHJcbiAgICAgICAvLyAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7IFxyXG4gICAgICAgLy8gYmFja2dyb3VuZC1jb2xvcjogcmVkO1xyXG4gICAgICAgIFxyXG4gICAgfVxyXG4gICAgLml0LXRleHQge1xyXG4gICAgICAgIHdpZHRoOiAxMjBweDtcclxuICAgICAgICBmbG9hdDpsZWZ0O1xyXG4gICAgICAgIHRleHQtYWxpZ246cmlnaHQ7XHJcbiAgICAgICAgcGFkZGluZy1yaWdodDogMjJweDtcclxuICAgICAgLy8gIGZvbnQtc2l6ZTogMTFweDtcclxuICAgICAgIC8vICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsgXHJcbiAgICAgICAvLyBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjtcclxuICAgICAgICBcclxuICAgIH1cclxuICAgIFxyXG4gICAgLml0Yy1sYWJlbCB7XHJcbiAgICAgICBcclxuICAgICAgICBmbG9hdDpsZWZ0O1xyXG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG4gICAgICAgLy8gZm9udC1zaXplOiAxMXB4O1xyXG4gICAgICAgLy8gZm9udC13ZWlnaHQ6IGJvbGQ7ICAgICAgICAgXHJcbiAgICAgICAgXHJcbiAgICB9XHJcbiAgICBcclxuICAgIFxyXG4gICAgXHJcbn1cclxuXHJcbiNpbnZvaWNlLXBhZ2UgLmludm9pY2UtZm9vdGVyIHtcclxuICAgIFxyXG4gICAgd2lkdGg6NzA1cHg7ICAgICAgXHJcbiAgICBtYXJnaW4tbGVmdDogMXB4OyAgIFxyXG4gICAgbWFyZ2luLXRvcDogMnB4OyAgICBcclxuICAgIG1pbi1oZWlnaHQ6MjBweDtcclxuICBcclxuICAgIC5pZm9vdGVyIHtcclxuICAgICAgICBtYXgtaGVpZ2h0OjEwMHB4O1xyXG4gICAgICAgIHBhZGRpbmc6IDZweCAxMnB4IDRweCAxOHB4OyAgICAgICAgXHJcbiAgICB9ICAgIFxyXG4gICAgXHJcbiAgICAuZGlzY2xhaW1lciB7XHJcbiAgICAgICAgICBcclxuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgICAgIGZvbnQtc2l6ZTogOHB4OyAgICAgIFxyXG4gICAgfVxyXG4gICAgLnBhZ2UtbnVtYmVyIHtcclxuICAgICAgICBwYWRkaW5nOiA2cHggMTZweCA0cHggMThweDtcclxuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcclxuICAgICAgICBmb250LXNpemU6IDEwcHg7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7IFxyXG4gICAgfVxyXG4gICAgXHJcbiAgICAuY29tcGFueS1kZXRhaWxzIHtcclxuICAgICAgICBwYWRkaW5nOiA2cHggMTZweCA0cHggMThweDtcclxuICAgICAgICB0ZXh0LWFsaWduOmNlbnRlcjtcclxuICAgICAgICBmb250LXNpemU6IDExcHg7XHJcbiAgICAgICAgLy9mb250LXdlaWdodDogYm9sZDsgXHJcbiAgICAgICAgXHJcbiAgICAgICAgc3BhbiB7XHJcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDE2cHg7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgXHJcbn1cclxuICAgIFxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG4iLCIud3JhcHBlciB7XHJcblx0bWF4LXdpZHRoOiAxMTcwcHg7XHJcbn1cclxuLy8ucm93IHtcclxuLy9cdHdpZHRoOiAxMTUwcHg7XHJcbi8vfVxyXG5AbWVkaWEgKG1pbi13aWR0aDogOTgwcHgpIGFuZCAobWF4LXdpZHRoOiAxMjgwcHgpIHtcclxuXHQud3JhcHBlciB7XHJcblx0XHRtYXJnaW46IDAgMzBweDtcclxuXHR9XHJcbn1cclxuIiwiXHJcblxyXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XHJcbiAgLndyYXBwZXIge1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgcGFkZGluZzogMDtcclxuICB9XHJcbiAgI2hlYWRlci1zdGlja3ktd3JhcHBlciB7XHJcbiAgICBiYWNrZ3JvdW5kOiBpbmhlcml0O1xyXG4gICAgYm94LXNoYWRvdzogbm9uZTtcclxuICAgIG9wYWNpdHk6IDE7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcclxuICAgIHdpZHRoOiBhdXRvO1xyXG4gICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XHJcbiAgICB6LWluZGV4OiBpbmhlcml0O1xyXG4gIH1cclxuICAuaXMtc3RpY2t5ICNoZWFkZXIge1xyXG4gICAgYmFja2dyb3VuZDogaW5oZXJpdDtcclxuICAgIGJveC1zaGFkb3c6IG5vbmU7XHJcbiAgICBvcGFjaXR5OiAxO1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XHJcbiAgICBtYXJnaW46IDAgMCAzMHB4O1xyXG4gICAgd2lkdGg6IGF1dG87XHJcbiAgICB6LWluZGV4OiBpbmhlcml0O1xyXG4gIH1cclxuICAjaGVhZGVyIHtcclxuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmUgIWltcG9ydGFudDtcclxuICB9XHJcbiAgIFxyXG4gIC5wcm9kdWN0IC5pbWFnZSB7ICAgIFxyXG4gICAgbWluLWhlaWdodDoxNTBweDsgICAgXHJcbiAgfSAgXHJcbiAgICBcclxuICAucHJvZHVjdCB7XHJcbiAgICBwYWRkaW5nLXRvcDogMTBweCAhaW1wb3J0YW50O1xyXG4gICAgcGFkZGluZy1ib3R0b206IDEwcHggIWltcG9ydGFudDtcclxuICB9IFxyXG4gICBcclxuICAucHJvZHVjdC1ib3ggLmluY2J0biwgLnByb2R1Y3QtYm94IC5kZWNidG4ge1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmUhaW1wb3J0YW50O1xyXG4gIH0gICAgXHJcbiAgXHJcbiAgLnByb2R1Y3QtYm94IGlucHV0IHsgICAgICBcclxuICAgIGhlaWdodDozMHB4OyAgICAgICAgIFxyXG4gIH1cclxuICBcclxuICAucHJvZHVjdC1ib3ggc2VsZWN0IHtcclxuICAgICAgICAgaGVpZ2h0OjMwcHg7XHJcbiAgfSBcclxuICBcclxuXHJcbiAgLnByb2R1Y3QtYm94IC5idXR0b24tZXhjbHVzaXZlIHsgICAgICAgIFxyXG4gICAgICB3aWR0aDo1MCU7ICAgICAgXHJcbiAgfSAgIFxyXG4gIFxyXG4gLnByb2R1Y3QtYm94IGlucHV0LnF1YW50aXR5IHtcclxuICAgICAgICB3aWR0aDogNDUlO1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xyXG4gfSAgICBcclxuICAgIFxyXG5cclxuICAgICBcclxuICAgIFxyXG4gICAgXHJcbi8vICAucHJvZHVjdC1ncmlkID4gLnNtYWxsLTIsIC5ib3gtcHJvZHVjdCA+IC5zbWFsbC0yIHtcclxuLy8gICAgcGFkZGluZy10b3A6IDEwcHggIWltcG9ydGFudDtcclxuLy8gICAgcGFkZGluZy1ib3R0b206IDEwcHggIWltcG9ydGFudDtcclxuLy8gIH1cclxuLy8gIC5wcm9kdWN0LWdyaWQgPiAuc21hbGwtMjpudGgtY2hpbGQobiksIC5ib3gtcHJvZHVjdCA+IC5zbWFsbC0yOm50aC1jaGlsZChuKSwgLm94eS1iYW5uZXIgPiAuc21hbGwtMjpudGgtY2hpbGQobikge1xyXG4vLyAgICBjbGVhcjogbGVmdCAhaW1wb3J0YW50O1xyXG4vLyAgfVxyXG4vLyAgLnByb2R1Y3QtZ3JpZCA+IC5zbWFsbC0yOm50aC1jaGlsZCgybiksIC5ib3gtcHJvZHVjdCA+IC5zbWFsbC0yOm50aC1jaGlsZCgybiksIC5veHktYmFubmVyID4gLnNtYWxsLTI6bnRoLWNoaWxkKDJuKSB7XHJcbi8vICAgIGNsZWFyOiBub25lICFpbXBvcnRhbnQ7XHJcbi8vICB9XHJcbi8vICAucHJvZHVjdC1ncmlkID4gLnNtYWxsLTI6bGFzdC1jaGlsZCwgLmJveC1wcm9kdWN0ID4gLnNtYWxsLTI6bGFzdC1jaGlsZCwgLm94eS1iYW5uZXIgPiAuc21hbGwtMjpsYXN0LWNoaWxkIHtcclxuLy8gICAgZmxvYXQ6IGxlZnQgIWltcG9ydGFudDtcclxuLy8gIH1cclxuICAucHJvZHVjdC1saXN0IHtcclxuICAgIC5pbWFnZSB7XHJcbiAgICAgIHdpZHRoOiA1MCU7XHJcbiAgICB9XHJcbiAgICAucHJpY2Uge1xyXG4gICAgICBwYWRkaW5nOiAxMHB4IDAgNXB4O1xyXG4gICAgfVxyXG4gICAgLmNhcnQgaW5wdXQge1xyXG4gICAgICB3aWR0aDogNTAlO1xyXG4gICAgfVxyXG4gIH1cclxuICAucm93IC5wcm9kdWN0LWxpc3QgLnNtYWxsLTIge1xyXG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcclxuICAgIHBhZGRpbmc6IDEwcHg7XHJcbiAgICAudGhyZWUge1xyXG4gICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xyXG4gICAgICBmbG9hdDogbGVmdDtcclxuICAgIH1cclxuICAgIC5maXZlIHtcclxuICAgICAgd2lkdGg6IDQxLjY2NjclICFpbXBvcnRhbnQ7XHJcbiAgICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgfVxyXG4gICAgLnNpeCB7XHJcbiAgICAgIGJvcmRlci1yaWdodDogbm9uZTtcclxuICAgICAgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG4gIH1cclxuICAuYm94LWNhdGVnb3J5LWhvbWUgPiAuZml2ZS1ub2M6bnRoLWNoaWxkKDVuKzEpLCAuYm94LW1hbnVmYWN0dXJlcnMtaG9tZSA+IC5maXZlLW5vYzpudGgtY2hpbGQoNW4rMSkge1xyXG4gICAgY2xlYXI6IG5vbmU7XHJcbiAgfVxyXG4gICN3ZWxjb21lLCAjdC1oZWFkZXIgPiBkaXYge1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIH1cclxuICAjaGVhZGVyIHtcclxuICAgICNsb2dvIHtcclxuICAgICAgcGFkZGluZzogNXB4IDAgIWltcG9ydGFudDtcclxuICAgIH1cclxuICAgICNzZWFyY2gge1xyXG4gICAgICBmbG9hdDogbm9uZTtcclxuICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XHJcbiAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIGlucHV0IHtcclxuICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIC5idXR0b24tc2VhcmNoIHtcclxuICAgICAgcmlnaHQ6IDEwcHg7XHJcbiAgICB9XHJcbiAgfVxyXG4gICN0LWhlYWRlciAjY2FydCB7XHJcbiAgICBsZWZ0OiBhdXRvO1xyXG4gICAgbWFyZ2luOiAxNXB4IGF1dG8gMTBweDtcclxuICAgIG1pbi13aWR0aDogaW5oZXJpdDtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHJpZ2h0OiBhdXRvO1xyXG4gICAgdG9wOiBhdXRvO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7XHJcbiAgICBtaW4td2lkdGg6IDIzMHB4O1xyXG4gIH1cclxuICAjaGVhZGVyICNjYXJ0IHtcclxuICAgIC5oZWFkaW5nIHtcclxuICAgICAgZmxvYXQ6IG5vbmU7XHJcbiAgICAgIG1hcmdpbi1yaWdodDogaW5oZXJpdDtcclxuICAgICAgaDUge1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDA7XHJcbiAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgIH1cclxuICAgICAgYSBkaXYge1xyXG4gICAgICAgICYjY2FydC10b3RhbCB7XHJcbiAgICAgICAgICBib3JkZXItcmlnaHQ6IG5vbmUgIWltcG9ydGFudDtcclxuICAgICAgICAgIGZsb2F0OiBub25lO1xyXG4gICAgICAgICAgcGFkZGluZzogMTJweCAxNXB4IDA7XHJcbiAgICAgICAgICBmb250LXNpemU6IDIwcHggIWltcG9ydGFudDtcclxuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICB9XHJcbiAgICAgICAgJiNjYXJ0LWljb24ge1xyXG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIC5jb250ZW50IHtcclxuICAgICAgbWluLXdpZHRoOiAyODBweDtcclxuICAgIH1cclxuICB9XHJcbiAgICBcclxuICAudG9wLWJhciB7XHJcbiAgICAgICAgcGFkZGluZzoxMHB4IWltcG9ydGFudDtcclxuICB9ICAgIFxyXG4gIC50b3AtYmFyIHVsIHtcclxuICAgID4gbGkge1xyXG4gICAgICAmLm5hbWUgYSB7XHJcbiAgICAgICAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcclxuICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xyXG4gICAgICB9XHJcbiAgICAgIGEge1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiA0MHB4IWltcG9ydGFudDsgIFxyXG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjRjRGNUY0O1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICNGRkZGRkYgIWltcG9ydGFudDsgXHJcbiAgICAgICAgY29sb3I6ICAjNDY0NjQ2ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICBjb2xvcjogI0ZGRkZGRiFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAjNzkzRTk3ICFpbXBvcnRhbnQ7ICAgIFxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICAmOm5vdCgubmFtZSk6aG92ZXIgYSB7XHJcbiAgICAgICAgY29sb3I6ICNGRkZGRkY7XHJcbiAgICAgIH1cclxuICAgICAgJi50b2dnbGUtdG9wYmFyIGEge1xyXG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XHJcbiAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICAmOm5vdCgubmFtZSkge1xyXG4gICAgICAgICY6aG92ZXIsICYuYWN0aXZlLCAmOmZvY3VzIHtcclxuICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAmLmxlZnQgPiBsaSBhIHtcclxuICAgICAgdHJhbnNpdGlvbjogbm9uZTtcclxuICAgIH1cclxuICB9XHJcbiAgICBcclxuICAjY29udGVudCAuY29udGVudCBpbnB1dCB7XHJcbiAgICAmW3R5cGU9XCJ0ZXh0XCJdLCAmW3R5cGU9XCJwYXNzd29yZFwiXSB7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgfVxyXG4gIH1cclxuICB0ZXh0YXJlYSwgc2VsZWN0IHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gIH1cclxuICAvKiAgQ2F0ZWdvcnkgUGFnZSAgKi9cclxuICAucHJvZHVjdC1saXN0IGEge1xyXG4gICAgJi53aXNobGlzdC10aXAsICYuY29tcGFyZS10aXAge1xyXG4gICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG4gIH1cclxuICAucHJvZHVjdC1ncmlkIGEge1xyXG4gICAgJi53aXNobGlzdC10aXAsICYuY29tcGFyZS10aXAge1xyXG4gICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG4gIH1cclxuICAucHJvZHVjdC1jb21wYXJlIHtcclxuICAgIGJvcmRlci1sZWZ0OiBub25lICFpbXBvcnRhbnQ7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XHJcbiAgICBmbG9hdDogbGVmdDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgbWFyZ2luLXRvcDogMDtcclxuICB9XHJcbiAgLnByb2R1Y3QtZmlsdGVyIHtcclxuICAgIC5saW1pdCwgLnNvcnQge1xyXG4gICAgICBmbG9hdDogbGVmdDtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xyXG4gICAgICBtYXJnaW4tdG9wOiAwO1xyXG4gICAgfVxyXG4gIH1cclxuICAucGFnaW5hdGlvbiB7XHJcbiAgICAubGlua3Mge1xyXG4gICAgICBmbG9hdDogbm9uZTtcclxuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgfVxyXG4gICAgLnJlc3VsdHMge1xyXG4gICAgICBmbG9hdDogbm9uZTtcclxuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICBwYWRkaW5nLXRvcDogMTBweDtcclxuICAgIH1cclxuICB9XHJcbiAgLnByb2R1Y3QtZ3JpZCAucmF0aW5nIGltZyB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gIH1cclxuICAvKiAgUHJvZHVjdCBQYWdlICAqL1xyXG4gIC5wcmV2LW5leHQgYSB7XHJcbiAgICAmLnByb2R1Y3QtcHJldi10aXAsICYucHJvZHVjdC1uZXh0LXRpcCB7XHJcbiAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC5wcm9kdWN0LWluZm8gLnByb2R1Y3QtbGVmdCB7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgLmltYWdlIHtcclxuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICBmbG9hdDogbm9uZTtcclxuICAgIH1cclxuICAgIC5pbWFnZS1hZGRpdGlvbmFsIHtcclxuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICB3aWR0aDogYXV0bztcclxuICAgICAgYSB7XHJcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgIGZsb2F0OiBub25lO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIC5wcm9kdWN0LWRlc2NyaXB0aW9uLWIgLnByb2R1Y3QtZGVzY3JpcHRpb24tbCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xyXG4gIH1cclxuICAuaHRhYnMgYSB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICB9XHJcbiAgLnJldmlldy1saXN0IC5yZXZpZXdzLXJpZ2h0IHtcclxuICAgIGJvcmRlci1sZWZ0OiBub25lO1xyXG4gICAgbWluLWhlaWdodDogMXB4O1xyXG4gIH1cclxuICAvKiAgRm9vdGVyICAqL1xyXG4gICNmb290ZXJfcCB7XHJcbiAgICBwYWRkaW5nOiAyMHB4IDEwcHg7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICBzcGFuLnBfaWNvbiB7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDVweDtcclxuICAgIH1cclxuICB9XHJcbiAgI2Zvb3Rlcl9kIHtcclxuICAgICNwb3dlcmVkX2NvbnRlbnQge1xyXG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XHJcbiAgICB9XHJcbiAgICAjcGF5bWVudF9sb2dvcyB7XHJcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIH1cclxuICB9XHJcbiAgLyogIFNob3BwaW5nIENhcnQgICovXHJcbiAgLmNhcnQtaW5mbyB7XHJcbiAgICAuaW1hZ2UsIC5tb2RlbCwgLnByaWNlIHtcclxuICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIH1cclxuICB9XHJcbiAgLmNhcnQtbW9kdWxlICNzaGlwcGluZyBzZWxlY3Qge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgfVxyXG4gIC5idXR0b25zIHtcclxuICAgIC5sZWZ0LCAucmlnaHQge1xyXG4gICAgICBmbG9hdDogbm9uZTtcclxuICAgICAgbWFyZ2luLXRvcDogMTBweDtcclxuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgfVxyXG4gIH1cclxuICAvKiAgQ2hlY2tvdXQgICovXHJcbiAgLmNoZWNrb3V0LWNvbnRlbnQge1xyXG4gICAgLmxlZnQsIC5yaWdodCB7XHJcbiAgICAgIGNsZWFyOiBib3RoO1xyXG4gICAgICBmbG9hdDogbm9uZTtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogMTVweDtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC5sb2dpbi1jb250ZW50IHtcclxuICAgIC5sZWZ0LCAucmlnaHQge1xyXG4gICAgICBjbGVhcjogYm90aDtcclxuICAgICAgZmxvYXQ6IG5vbmU7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgfVxyXG4gIH1cclxuICAuY2hlY2tvdXQtY29udGVudCAucmlnaHQge1xyXG4gICAgc2VsZWN0IHtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICB9XHJcbiAgICBpbnB1dCB7XHJcbiAgICAgIG1hcmdpbi10b3A6IDE1cHg7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC5yZXR1cm4tcmVhc29uIHtcclxuICAgIG1hcmdpbi1yaWdodDogMHB4O1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgfVxyXG4gIC5yZXR1cm4tb3BlbmVkIHtcclxuICAgIG1hcmdpbi10b3A6IDIwcHg7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICB9XHJcbn1cclxuXHJcbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiA5NDBweCkge1xyXG4gIC5teS1hY2NvdW50IHtcclxuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcclxuICB9XHJcbiAgLmN1cnJlbmN5LCAubGFuZ3VhZ2Uge1xyXG4gICAgd2lkdGg6IDUwJSAhaW1wb3J0YW50O1xyXG4gIH1cclxuICAucHJvZHVjdC1maWx0ZXIge1xyXG4gICAgLmxpbWl0LCAuc29ydCB7XHJcbiAgICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgICAgbWFyZ2luLWxlZnQ6IDA7XHJcbiAgICAgIG1hcmdpbi10b3A6IDA7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC5wcm9kdWN0LWdyaWQgLnJhdGluZyBpbWcge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICB9XHJcbiAgLyogIEZvb3RlciAgKi9cclxuICAjZm9vdGVyX3Agc3Bhbi5wX3RpdGxlIHtcclxuICAgIHBhZGRpbmctdG9wOiAwO1xyXG4gIH1cclxufVxyXG5cclxuLy8vKiBGcmFtZXdvcmsgKi9cclxuLy9cclxuLy8vKiBTbWFsbCBEZXZpY2VzIC0tLS0tLS0tLS0tLSAqL1xyXG4vL0BtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcclxuICAgIFxyXG4gICAgIC8qICovXHJcbi8vICAuc2hvdy1mb3Itc21hbGwsIC5oaWRlLWZvci1tZWRpdW0sIC5zaG93LWZvci1tZWRpdW0tZG93biwgLmhpZGUtZm9yLWxhcmdlLCAuaGlkZS1mb3ItbGFyZ2UtdXAsIC5oaWRlLWZvci14bGFyZ2Uge1xyXG4vLyAgICBkaXNwbGF5OiBpbmhlcml0ICFpbXBvcnRhbnQ7XHJcbi8vICB9XHJcbi8vICAuaGlkZS1mb3Itc21hbGwsIC5zaG93LWZvci1tZWRpdW0sIC5oaWRlLWZvci1tZWRpdW0tZG93biwgLnNob3ctZm9yLWxhcmdlLCAuc2hvdy1mb3ItbGFyZ2UtdXAsIC5zaG93LWZvci14bGFyZ2Uge1xyXG4vLyAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XHJcbi8vICB9XHJcbiAgICBcclxuICAgIFxyXG4gIC8qIEdsb2JhbCBNaXNjIC0tLSAqL1xyXG4gIC8qICAgICAgICAgICAgICAgICAqL1xyXG4vLyAgLmxlZnQsIC5yaWdodCB7XHJcbi8vICAgIGZsb2F0OiBub25lO1xyXG4vLyAgfVxyXG4vLyAgYm9keSB7XHJcbi8vICAgIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogbm9uZTtcclxuLy8gICAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IG5vbmU7XHJcbi8vICAgIHdpZHRoOiAxMDAlO1xyXG4vLyAgICBtaW4td2lkdGg6IDA7XHJcbi8vICAgIG1hcmdpbi1sZWZ0OiAwO1xyXG4vLyAgICBtYXJnaW4tcmlnaHQ6IDA7XHJcbi8vICAgIHBhZGRpbmctbGVmdDogMDtcclxuLy8gICAgcGFkZGluZy1yaWdodDogMDtcclxuLy8gIH1cclxuLy8gIC8qIFRoZSBHcmlkIC0tLSAqL1xyXG4vLyAgLyogICAgICAgICAgICAgICovXHJcbi8vICAucm93IHtcclxuLy8gICAgd2lkdGg6IGF1dG87XHJcbi8vICAgIG1pbi13aWR0aDogMDtcclxuLy8gICAgbWFyZ2luLWxlZnQ6IDA7XHJcbi8vICAgIG1hcmdpbi1yaWdodDogMDtcclxuLy8gIH1cclxuLy8gIC5jb2x1bW4sIC5jb2x1bW5zIHtcclxuLy8gICAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcclxuLy8gICAgZmxvYXQ6IG5vbmU7XHJcbi8vICB9XHJcbi8vICAuY29sdW1uOmxhc3QtY2hpbGQsIC5jb2x1bW5zOmxhc3QtY2hpbGQsIFtjbGFzcyo9XCJjb2x1bW5cIl0gKyBbY2xhc3MqPVwiY29sdW1uXCJdOmxhc3QtY2hpbGQge1xyXG4vLyAgICBmbG9hdDogbm9uZTtcclxuLy8gIH1cclxuLy8gIC5jb2x1bW46YmVmb3JlLCAuY29sdW1uczpiZWZvcmUsIC5jb2x1bW46YWZ0ZXIsIC5jb2x1bW5zOmFmdGVyIHtcclxuLy8gICAgY29udGVudDogXCJcIjtcclxuLy8gICAgZGlzcGxheTogdGFibGU7XHJcbi8vICB9XHJcbi8vICAuY29sdW1uOmFmdGVyLCAuY29sdW1uczphZnRlciB7XHJcbi8vICAgIGNsZWFyOiBib3RoO1xyXG4vLyAgfVxyXG4vLyAgLm9mZnNldC1ieS1vbmUsIC5vZmZzZXQtYnktdHdvLCAub2Zmc2V0LWJ5LXRocmVlLCAub2Zmc2V0LWJ5LWZvdXIsIC5vZmZzZXQtYnktZml2ZSwgLm9mZnNldC1ieS1zaXgsIC5vZmZzZXQtYnktc2V2ZW4sIC5vZmZzZXQtYnktZWlnaHQsIC5vZmZzZXQtYnktbmluZSwgLm9mZnNldC1ieS10ZW4ge1xyXG4vLyAgICBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50O1xyXG4vLyAgfVxyXG4vLyAgLnB1c2gtdHdvLCAucHVzaC10aHJlZSwgLnB1c2gtZm91ciwgLnB1c2gtZml2ZSwgLnB1c2gtc2l4LCAucHVzaC1zZXZlbiwgLnB1c2gtZWlnaHQsIC5wdXNoLW5pbmUsIC5wdXNoLXRlbiB7XHJcbi8vICAgIGxlZnQ6IGF1dG87XHJcbi8vICB9XHJcbi8vICAucHVsbC10d28sIC5wdWxsLXRocmVlLCAucHVsbC1mb3VyLCAucHVsbC1maXZlLCAucHVsbC1zaXgsIC5wdWxsLXNldmVuLCAucHVsbC1laWdodCwgLnB1bGwtbmluZSwgLnB1bGwtdGVuIHtcclxuLy8gICAgcmlnaHQ6IGF1dG87XHJcbi8vICB9XHJcbi8vICAvKiBNb2JpbGUgNC1jb2x1bW4gR3JpZCAqL1xyXG4vLyAgLnJvdyB7XHJcbi8vICAgIC5zbWFsbC0xIHtcclxuLy8gICAgICB3aWR0aDogMjUlICFpbXBvcnRhbnQ7XHJcbi8vICAgICAgZmxvYXQ6IGxlZnQ7XHJcbi8vICAgICAgcGFkZGluZzogMCAxMHB4O1xyXG4vLyAgICAgICY6bGFzdC1jaGlsZCB7XHJcbi8vICAgICAgICBmbG9hdDogcmlnaHQ7XHJcbi8vICAgICAgfVxyXG4vLyAgICAgICYuZW5kIHtcclxuLy8gICAgICAgIGZsb2F0OiBsZWZ0O1xyXG4vLyAgICAgIH1cclxuLy8gICAgfVxyXG4vLyAgICAmLmNvbGxhcHNlIC5zbWFsbC0xIHtcclxuLy8gICAgICBwYWRkaW5nOiAwO1xyXG4vLyAgICB9XHJcbi8vICAgIC5zbWFsbC0yIHtcclxuLy8gICAgICB3aWR0aDogNTAlICFpbXBvcnRhbnQ7XHJcbi8vICAgICAgZmxvYXQ6IGxlZnQ7XHJcbi8vICAgICAgcGFkZGluZzogMCAxMHB4O1xyXG4vLyAgICAgICY6bGFzdC1jaGlsZCB7XHJcbi8vICAgICAgICBmbG9hdDogcmlnaHQ7XHJcbi8vICAgICAgfVxyXG4vLyAgICAgICYuZW5kIHtcclxuLy8gICAgICAgIGZsb2F0OiBsZWZ0O1xyXG4vLyAgICAgIH1cclxuLy8gICAgfVxyXG4vLyAgICAmLmNvbGxhcHNlIC5zbWFsbC0yIHtcclxuLy8gICAgICBwYWRkaW5nOiAwO1xyXG4vLyAgICB9XHJcbi8vICAgIC5zbWFsbC0zIHtcclxuLy8gICAgICB3aWR0aDogNzUlICFpbXBvcnRhbnQ7XHJcbi8vICAgICAgZmxvYXQ6IGxlZnQ7XHJcbi8vICAgICAgcGFkZGluZzogMCAxMHB4O1xyXG4vLyAgICAgICY6bGFzdC1jaGlsZCB7XHJcbi8vICAgICAgICBmbG9hdDogcmlnaHQ7XHJcbi8vICAgICAgfVxyXG4vLyAgICAgICYuZW5kIHtcclxuLy8gICAgICAgIGZsb2F0OiBsZWZ0O1xyXG4vLyAgICAgIH1cclxuLy8gICAgfVxyXG4vLyAgICAmLmNvbGxhcHNlIC5zbWFsbC0zIHtcclxuLy8gICAgICBwYWRkaW5nOiAwO1xyXG4vLyAgICB9XHJcbi8vICAgIC5zbWFsbC00IHtcclxuLy8gICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xyXG4vLyAgICAgIGZsb2F0OiBsZWZ0O1xyXG4vLyAgICAgIHBhZGRpbmc6IDAgMTBweDtcclxuLy8gICAgICAmOmxhc3QtY2hpbGQge1xyXG4vLyAgICAgICAgZmxvYXQ6IHJpZ2h0O1xyXG4vLyAgICAgIH1cclxuLy8gICAgICAmLmVuZCB7XHJcbi8vICAgICAgICBmbG9hdDogbGVmdDtcclxuLy8gICAgICB9XHJcbi8vICAgIH1cclxuLy8gICAgJi5jb2xsYXBzZSAuc21hbGwtNCB7XHJcbi8vICAgICAgcGFkZGluZzogMDtcclxuLy8gICAgfVxyXG4vLyAgfVxyXG4vLyAgLnB1c2gtb25lLW1vYmlsZSB7XHJcbi8vICAgIGxlZnQ6IDI1JTtcclxuLy8gIH1cclxuLy8gIC5wdWxsLW9uZS1tb2JpbGUge1xyXG4vLyAgICByaWdodDogMjUlO1xyXG4vLyAgfVxyXG4vLyAgLnB1c2gtdHdvLW1vYmlsZSB7XHJcbi8vICAgIGxlZnQ6IDUwJTtcclxuLy8gIH1cclxuLy8gIC5wdWxsLXR3by1tb2JpbGUge1xyXG4vLyAgICByaWdodDogNTAlO1xyXG4vLyAgfVxyXG4vLyAgLnB1c2gtdGhyZWUtbW9iaWxlIHtcclxuLy8gICAgbGVmdDogNzUlO1xyXG4vLyAgfVxyXG4vLyAgLnB1bGwtdGhyZWUtbW9iaWxlIHtcclxuLy8gICAgcmlnaHQ6IDc1JTtcclxuLy8gIH1cclxuICAvKiBCbG9jayBHcmlkcyAtLS0gKi9cclxuICAvKiAgICAgICAgICAgICAgICAgKi9cclxuLy8gIC5ibG9jay1ncmlkIHtcclxuLy8gICAgJi5tb2JpbGUgPiBsaSB7XHJcbi8vICAgICAgZmxvYXQ6IG5vbmU7XHJcbi8vICAgICAgd2lkdGg6IDEwMCU7XHJcbi8vICAgICAgbWFyZ2luLWxlZnQ6IDA7XHJcbi8vICAgIH1cclxuLy8gICAgPiBsaSB7XHJcbi8vICAgICAgY2xlYXI6IG5vbmU7XHJcbi8vICAgIH1cclxuLy8gICAgJi5zbWFsbC11cC0xID4gbGkge1xyXG4vLyAgICAgIHdpZHRoOiAxMDAlO1xyXG4vLyAgICB9XHJcbi8vICAgICYuc21hbGwtdXAtMiA+IGxpIHtcclxuLy8gICAgICB3aWR0aDogNTAlO1xyXG4vLyAgICAgICY6bnRoLWNoaWxkKDJuKzEpIHtcclxuLy8gICAgICAgIGNsZWFyOiBib3RoO1xyXG4vLyAgICAgIH1cclxuLy8gICAgfVxyXG4vLyAgICAmLnNtYWxsLXVwLTMgPiBsaSB7XHJcbi8vICAgICAgd2lkdGg6IDMzLjMzMzMzJTtcclxuLy8gICAgICAmOm50aC1jaGlsZCgzbisxKSB7XHJcbi8vICAgICAgICBjbGVhcjogYm90aDtcclxuLy8gICAgICB9XHJcbi8vICAgIH1cclxuLy8gICAgJi5zbWFsbC11cC00ID4gbGkge1xyXG4vLyAgICAgIHdpZHRoOiAyNSU7XHJcbi8vICAgICAgJjpudGgtY2hpbGQoNG4rMSkge1xyXG4vLyAgICAgICAgY2xlYXI6IGJvdGg7XHJcbi8vICAgICAgfVxyXG4vLyAgICB9XHJcbi8vICAgICYuc21hbGwtdXAtNSA+IGxpIHtcclxuLy8gICAgICB3aWR0aDogMjAlO1xyXG4vLyAgICAgICY6bnRoLWNoaWxkKDVuKzEpIHtcclxuLy8gICAgICAgIGNsZWFyOiBib3RoO1xyXG4vLyAgICAgIH1cclxuLy8gICAgfVxyXG4vLyAgICAmLnNtYWxsLXVwLTYgPiBsaSB7XHJcbi8vICAgICAgd2lkdGg6IDE2LjY2NjY3JTtcclxuLy8gICAgICAmOm50aC1jaGlsZCg2bisxKSB7XHJcbi8vICAgICAgICBjbGVhcjogYm90aDtcclxuLy8gICAgICB9XHJcbi8vICAgIH1cclxuLy8gICAgJi5zbWFsbC11cC03ID4gbGkge1xyXG4vLyAgICAgIHdpZHRoOiAxNC4yODU3MSU7XHJcbi8vICAgICAgJjpudGgtY2hpbGQoN24rMSkge1xyXG4vLyAgICAgICAgY2xlYXI6IGJvdGg7XHJcbi8vICAgICAgfVxyXG4vLyAgICB9XHJcbi8vICAgICYuc21hbGwtdXAtOCA+IGxpIHtcclxuLy8gICAgICB3aWR0aDogMTIuNSU7XHJcbi8vICAgICAgJjpudGgtY2hpbGQoOG4rMSkge1xyXG4vLyAgICAgICAgY2xlYXI6IGJvdGg7XHJcbi8vICAgICAgfVxyXG4vLyAgICB9XHJcbi8vICAgICYuc21hbGwtdXAtOSA+IGxpIHtcclxuLy8gICAgICB3aWR0aDogMTEuMTExMTElO1xyXG4vLyAgICAgICY6bnRoLWNoaWxkKDluKzEpIHtcclxuLy8gICAgICAgIGNsZWFyOiBib3RoO1xyXG4vLyAgICAgIH1cclxuLy8gICAgfVxyXG4vLyAgICAmLnNtYWxsLXVwLTEwID4gbGkge1xyXG4vLyAgICAgIHdpZHRoOiAxMCU7XHJcbi8vICAgICAgJjpudGgtY2hpbGQoMTBuKzEpIHtcclxuLy8gICAgICAgIGNsZWFyOiBib3RoO1xyXG4vLyAgICAgIH1cclxuLy8gICAgfVxyXG4vLyAgICAmLnNtYWxsLXVwLTExID4gbGkge1xyXG4vLyAgICAgIHdpZHRoOiA5LjA5MDkxJTtcclxuLy8gICAgICAmOm50aC1jaGlsZCgxMW4rMSkge1xyXG4vLyAgICAgICAgY2xlYXI6IGJvdGg7XHJcbi8vICAgICAgfVxyXG4vLyAgICB9XHJcbi8vICAgICYuc21hbGwtdXAtMTIgPiBsaSB7XHJcbi8vICAgICAgd2lkdGg6IDguMzMzMzMlO1xyXG4vLyAgICAgICY6bnRoLWNoaWxkKDEybisxKSB7XHJcbi8vICAgICAgICBjbGVhcjogYm90aDtcclxuLy8gICAgICB9XHJcbi8vICAgIH1cclxuLy8gIH1cclxuICAvKiBGb3JtcyAtLS0gKi9cclxuICAvKiAgICAgICAgICAgKi9cclxuLy8gIC8qIExhYmVsIGFsaWdubWVudCAqL1xyXG4vLyAgbGFiZWwucmlnaHQge1xyXG4vLyAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4vLyAgfVxyXG4gIC8qIEV4dGVuZCB3aWR0aCBvZiBhbGwgaW5wdXRzICovXHJcbi8vICBpbnB1dFt0eXBlPVwidGV4dFwiXS5vbmUsIC5yb3cgaW5wdXRbdHlwZT1cInRleHRcIl0ub25lLCBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0ub25lLCAucm93IGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXS5vbmUsIGlucHV0W3R5cGU9XCJkYXRlXCJdLm9uZSwgLnJvdyBpbnB1dFt0eXBlPVwiZGF0ZVwiXS5vbmUsIGlucHV0W3R5cGU9XCJkYXRldGltZVwiXS5vbmUsIC5yb3cgaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdLm9uZSwgaW5wdXRbdHlwZT1cImVtYWlsXCJdLm9uZSwgLnJvdyBpbnB1dFt0eXBlPVwiZW1haWxcIl0ub25lLCBpbnB1dFt0eXBlPVwibnVtYmVyXCJdLm9uZSwgLnJvdyBpbnB1dFt0eXBlPVwibnVtYmVyXCJdLm9uZSwgaW5wdXRbdHlwZT1cInNlYXJjaFwiXS5vbmUsIC5yb3cgaW5wdXRbdHlwZT1cInNlYXJjaFwiXS5vbmUsIGlucHV0W3R5cGU9XCJ0ZWxcIl0ub25lLCAucm93IGlucHV0W3R5cGU9XCJ0ZWxcIl0ub25lLCBpbnB1dFt0eXBlPVwidGltZVwiXS5vbmUsIC5yb3cgaW5wdXRbdHlwZT1cInRpbWVcIl0ub25lLCBpbnB1dFt0eXBlPVwidXJsXCJdLm9uZSwgLnJvdyBpbnB1dFt0eXBlPVwidXJsXCJdLm9uZSwgdGV4dGFyZWEub25lLCAucm93IHRleHRhcmVhLm9uZSwgaW5wdXRbdHlwZT1cInRleHRcIl0udHdvLCAucm93IGlucHV0W3R5cGU9XCJ0ZXh0XCJdLnR3bywgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdLnR3bywgLnJvdyBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0udHdvLCBpbnB1dFt0eXBlPVwiZGF0ZVwiXS50d28sIC5yb3cgaW5wdXRbdHlwZT1cImRhdGVcIl0udHdvLCBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl0udHdvLCAucm93IGlucHV0W3R5cGU9XCJkYXRldGltZVwiXS50d28sIGlucHV0W3R5cGU9XCJlbWFpbFwiXS50d28sIC5yb3cgaW5wdXRbdHlwZT1cImVtYWlsXCJdLnR3bywgaW5wdXRbdHlwZT1cIm51bWJlclwiXS50d28sIC5yb3cgaW5wdXRbdHlwZT1cIm51bWJlclwiXS50d28sIGlucHV0W3R5cGU9XCJzZWFyY2hcIl0udHdvLCAucm93IGlucHV0W3R5cGU9XCJzZWFyY2hcIl0udHdvLCBpbnB1dFt0eXBlPVwidGVsXCJdLnR3bywgLnJvdyBpbnB1dFt0eXBlPVwidGVsXCJdLnR3bywgaW5wdXRbdHlwZT1cInRpbWVcIl0udHdvLCAucm93IGlucHV0W3R5cGU9XCJ0aW1lXCJdLnR3bywgaW5wdXRbdHlwZT1cInVybFwiXS50d28sIC5yb3cgaW5wdXRbdHlwZT1cInVybFwiXS50d28sIHRleHRhcmVhLnR3bywgLnJvdyB0ZXh0YXJlYS50d28sIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLnRocmVlLCAucm93IGlucHV0W3R5cGU9XCJ0ZXh0XCJdLnRocmVlLCBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0udGhyZWUsIC5yb3cgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdLnRocmVlLCBpbnB1dFt0eXBlPVwiZGF0ZVwiXS50aHJlZSwgLnJvdyBpbnB1dFt0eXBlPVwiZGF0ZVwiXS50aHJlZSwgaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdLnRocmVlLCAucm93IGlucHV0W3R5cGU9XCJkYXRldGltZVwiXS50aHJlZSwgaW5wdXRbdHlwZT1cImVtYWlsXCJdLnRocmVlLCAucm93IGlucHV0W3R5cGU9XCJlbWFpbFwiXS50aHJlZSwgaW5wdXRbdHlwZT1cIm51bWJlclwiXS50aHJlZSwgLnJvdyBpbnB1dFt0eXBlPVwibnVtYmVyXCJdLnRocmVlLCBpbnB1dFt0eXBlPVwic2VhcmNoXCJdLnRocmVlLCAucm93IGlucHV0W3R5cGU9XCJzZWFyY2hcIl0udGhyZWUsIGlucHV0W3R5cGU9XCJ0ZWxcIl0udGhyZWUsIC5yb3cgaW5wdXRbdHlwZT1cInRlbFwiXS50aHJlZSwgaW5wdXRbdHlwZT1cInRpbWVcIl0udGhyZWUsIC5yb3cgaW5wdXRbdHlwZT1cInRpbWVcIl0udGhyZWUsIGlucHV0W3R5cGU9XCJ1cmxcIl0udGhyZWUsIC5yb3cgaW5wdXRbdHlwZT1cInVybFwiXS50aHJlZSwgdGV4dGFyZWEudGhyZWUsIC5yb3cgdGV4dGFyZWEudGhyZWUsIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLmZvdXIsIC5yb3cgaW5wdXRbdHlwZT1cInRleHRcIl0uZm91ciwgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdLmZvdXIsIC5yb3cgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdLmZvdXIsIGlucHV0W3R5cGU9XCJkYXRlXCJdLmZvdXIsIC5yb3cgaW5wdXRbdHlwZT1cImRhdGVcIl0uZm91ciwgaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdLmZvdXIsIC5yb3cgaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdLmZvdXIsIGlucHV0W3R5cGU9XCJlbWFpbFwiXS5mb3VyLCAucm93IGlucHV0W3R5cGU9XCJlbWFpbFwiXS5mb3VyLCBpbnB1dFt0eXBlPVwibnVtYmVyXCJdLmZvdXIsIC5yb3cgaW5wdXRbdHlwZT1cIm51bWJlclwiXS5mb3VyLCBpbnB1dFt0eXBlPVwic2VhcmNoXCJdLmZvdXIsIC5yb3cgaW5wdXRbdHlwZT1cInNlYXJjaFwiXS5mb3VyLCBpbnB1dFt0eXBlPVwidGVsXCJdLmZvdXIsIC5yb3cgaW5wdXRbdHlwZT1cInRlbFwiXS5mb3VyLCBpbnB1dFt0eXBlPVwidGltZVwiXS5mb3VyLCAucm93IGlucHV0W3R5cGU9XCJ0aW1lXCJdLmZvdXIsIGlucHV0W3R5cGU9XCJ1cmxcIl0uZm91ciwgLnJvdyBpbnB1dFt0eXBlPVwidXJsXCJdLmZvdXIsIHRleHRhcmVhLmZvdXIsIC5yb3cgdGV4dGFyZWEuZm91ciwgaW5wdXRbdHlwZT1cInRleHRcIl0uZml2ZSwgLnJvdyBpbnB1dFt0eXBlPVwidGV4dFwiXS5maXZlLCBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0uZml2ZSwgLnJvdyBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0uZml2ZSwgaW5wdXRbdHlwZT1cImRhdGVcIl0uZml2ZSwgLnJvdyBpbnB1dFt0eXBlPVwiZGF0ZVwiXS5maXZlLCBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl0uZml2ZSwgLnJvdyBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl0uZml2ZSwgaW5wdXRbdHlwZT1cImVtYWlsXCJdLmZpdmUsIC5yb3cgaW5wdXRbdHlwZT1cImVtYWlsXCJdLmZpdmUsIGlucHV0W3R5cGU9XCJudW1iZXJcIl0uZml2ZSwgLnJvdyBpbnB1dFt0eXBlPVwibnVtYmVyXCJdLmZpdmUsIGlucHV0W3R5cGU9XCJzZWFyY2hcIl0uZml2ZSwgLnJvdyBpbnB1dFt0eXBlPVwic2VhcmNoXCJdLmZpdmUsIGlucHV0W3R5cGU9XCJ0ZWxcIl0uZml2ZSwgLnJvdyBpbnB1dFt0eXBlPVwidGVsXCJdLmZpdmUsIGlucHV0W3R5cGU9XCJ0aW1lXCJdLmZpdmUsIC5yb3cgaW5wdXRbdHlwZT1cInRpbWVcIl0uZml2ZSwgaW5wdXRbdHlwZT1cInVybFwiXS5maXZlLCAucm93IGlucHV0W3R5cGU9XCJ1cmxcIl0uZml2ZSwgdGV4dGFyZWEuZml2ZSwgLnJvdyB0ZXh0YXJlYS5maXZlLCBpbnB1dFt0eXBlPVwidGV4dFwiXS5zaXgsIC5yb3cgaW5wdXRbdHlwZT1cInRleHRcIl0uc2l4LCBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0uc2l4LCAucm93IGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXS5zaXgsIGlucHV0W3R5cGU9XCJkYXRlXCJdLnNpeCwgLnJvdyBpbnB1dFt0eXBlPVwiZGF0ZVwiXS5zaXgsIGlucHV0W3R5cGU9XCJkYXRldGltZVwiXS5zaXgsIC5yb3cgaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdLnNpeCwgaW5wdXRbdHlwZT1cImVtYWlsXCJdLnNpeCwgLnJvdyBpbnB1dFt0eXBlPVwiZW1haWxcIl0uc2l4LCBpbnB1dFt0eXBlPVwibnVtYmVyXCJdLnNpeCwgLnJvdyBpbnB1dFt0eXBlPVwibnVtYmVyXCJdLnNpeCwgaW5wdXRbdHlwZT1cInNlYXJjaFwiXS5zaXgsIC5yb3cgaW5wdXRbdHlwZT1cInNlYXJjaFwiXS5zaXgsIGlucHV0W3R5cGU9XCJ0ZWxcIl0uc2l4LCAucm93IGlucHV0W3R5cGU9XCJ0ZWxcIl0uc2l4LCBpbnB1dFt0eXBlPVwidGltZVwiXS5zaXgsIC5yb3cgaW5wdXRbdHlwZT1cInRpbWVcIl0uc2l4LCBpbnB1dFt0eXBlPVwidXJsXCJdLnNpeCwgLnJvdyBpbnB1dFt0eXBlPVwidXJsXCJdLnNpeCwgdGV4dGFyZWEuc2l4LCAucm93IHRleHRhcmVhLnNpeCwgaW5wdXRbdHlwZT1cInRleHRcIl0uc2V2ZW4sIC5yb3cgaW5wdXRbdHlwZT1cInRleHRcIl0uc2V2ZW4sIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXS5zZXZlbiwgLnJvdyBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0uc2V2ZW4sIGlucHV0W3R5cGU9XCJkYXRlXCJdLnNldmVuLCAucm93IGlucHV0W3R5cGU9XCJkYXRlXCJdLnNldmVuLCBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl0uc2V2ZW4sIC5yb3cgaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdLnNldmVuLCBpbnB1dFt0eXBlPVwiZW1haWxcIl0uc2V2ZW4sIC5yb3cgaW5wdXRbdHlwZT1cImVtYWlsXCJdLnNldmVuLCBpbnB1dFt0eXBlPVwibnVtYmVyXCJdLnNldmVuLCAucm93IGlucHV0W3R5cGU9XCJudW1iZXJcIl0uc2V2ZW4sIGlucHV0W3R5cGU9XCJzZWFyY2hcIl0uc2V2ZW4sIC5yb3cgaW5wdXRbdHlwZT1cInNlYXJjaFwiXS5zZXZlbiwgaW5wdXRbdHlwZT1cInRlbFwiXS5zZXZlbiwgLnJvdyBpbnB1dFt0eXBlPVwidGVsXCJdLnNldmVuLCBpbnB1dFt0eXBlPVwidGltZVwiXS5zZXZlbiwgLnJvdyBpbnB1dFt0eXBlPVwidGltZVwiXS5zZXZlbiwgaW5wdXRbdHlwZT1cInVybFwiXS5zZXZlbiwgLnJvdyBpbnB1dFt0eXBlPVwidXJsXCJdLnNldmVuLCB0ZXh0YXJlYS5zZXZlbiwgLnJvdyB0ZXh0YXJlYS5zZXZlbiwgaW5wdXRbdHlwZT1cInRleHRcIl0uZWlnaHQsIC5yb3cgaW5wdXRbdHlwZT1cInRleHRcIl0uZWlnaHQsIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXS5laWdodCwgLnJvdyBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0uZWlnaHQsIGlucHV0W3R5cGU9XCJkYXRlXCJdLmVpZ2h0LCAucm93IGlucHV0W3R5cGU9XCJkYXRlXCJdLmVpZ2h0LCBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl0uZWlnaHQsIC5yb3cgaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdLmVpZ2h0LCBpbnB1dFt0eXBlPVwiZW1haWxcIl0uZWlnaHQsIC5yb3cgaW5wdXRbdHlwZT1cImVtYWlsXCJdLmVpZ2h0LCBpbnB1dFt0eXBlPVwibnVtYmVyXCJdLmVpZ2h0LCAucm93IGlucHV0W3R5cGU9XCJudW1iZXJcIl0uZWlnaHQsIGlucHV0W3R5cGU9XCJzZWFyY2hcIl0uZWlnaHQsIC5yb3cgaW5wdXRbdHlwZT1cInNlYXJjaFwiXS5laWdodCwgaW5wdXRbdHlwZT1cInRlbFwiXS5laWdodCwgLnJvdyBpbnB1dFt0eXBlPVwidGVsXCJdLmVpZ2h0LCBpbnB1dFt0eXBlPVwidGltZVwiXS5laWdodCwgLnJvdyBpbnB1dFt0eXBlPVwidGltZVwiXS5laWdodCwgaW5wdXRbdHlwZT1cInVybFwiXS5laWdodCwgLnJvdyBpbnB1dFt0eXBlPVwidXJsXCJdLmVpZ2h0LCB0ZXh0YXJlYS5laWdodCwgLnJvdyB0ZXh0YXJlYS5laWdodCwgaW5wdXRbdHlwZT1cInRleHRcIl0ubmluZSwgLnJvdyBpbnB1dFt0eXBlPVwidGV4dFwiXS5uaW5lLCBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0ubmluZSwgLnJvdyBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0ubmluZSwgaW5wdXRbdHlwZT1cImRhdGVcIl0ubmluZSwgLnJvdyBpbnB1dFt0eXBlPVwiZGF0ZVwiXS5uaW5lLCBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl0ubmluZSwgLnJvdyBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl0ubmluZSwgaW5wdXRbdHlwZT1cImVtYWlsXCJdLm5pbmUsIC5yb3cgaW5wdXRbdHlwZT1cImVtYWlsXCJdLm5pbmUsIGlucHV0W3R5cGU9XCJudW1iZXJcIl0ubmluZSwgLnJvdyBpbnB1dFt0eXBlPVwibnVtYmVyXCJdLm5pbmUsIGlucHV0W3R5cGU9XCJzZWFyY2hcIl0ubmluZSwgLnJvdyBpbnB1dFt0eXBlPVwic2VhcmNoXCJdLm5pbmUsIGlucHV0W3R5cGU9XCJ0ZWxcIl0ubmluZSwgLnJvdyBpbnB1dFt0eXBlPVwidGVsXCJdLm5pbmUsIGlucHV0W3R5cGU9XCJ0aW1lXCJdLm5pbmUsIC5yb3cgaW5wdXRbdHlwZT1cInRpbWVcIl0ubmluZSwgaW5wdXRbdHlwZT1cInVybFwiXS5uaW5lLCAucm93IGlucHV0W3R5cGU9XCJ1cmxcIl0ubmluZSwgdGV4dGFyZWEubmluZSwgLnJvdyB0ZXh0YXJlYS5uaW5lLCBpbnB1dFt0eXBlPVwidGV4dFwiXS50ZW4sIC5yb3cgaW5wdXRbdHlwZT1cInRleHRcIl0udGVuLCBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0udGVuLCAucm93IGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXS50ZW4sIGlucHV0W3R5cGU9XCJkYXRlXCJdLnRlbiwgLnJvdyBpbnB1dFt0eXBlPVwiZGF0ZVwiXS50ZW4sIGlucHV0W3R5cGU9XCJkYXRldGltZVwiXS50ZW4sIC5yb3cgaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdLnRlbiwgaW5wdXRbdHlwZT1cImVtYWlsXCJdLnRlbiwgLnJvdyBpbnB1dFt0eXBlPVwiZW1haWxcIl0udGVuLCBpbnB1dFt0eXBlPVwibnVtYmVyXCJdLnRlbiwgLnJvdyBpbnB1dFt0eXBlPVwibnVtYmVyXCJdLnRlbiwgaW5wdXRbdHlwZT1cInNlYXJjaFwiXS50ZW4sIC5yb3cgaW5wdXRbdHlwZT1cInNlYXJjaFwiXS50ZW4sIGlucHV0W3R5cGU9XCJ0ZWxcIl0udGVuLCAucm93IGlucHV0W3R5cGU9XCJ0ZWxcIl0udGVuLCBpbnB1dFt0eXBlPVwidGltZVwiXS50ZW4sIC5yb3cgaW5wdXRbdHlwZT1cInRpbWVcIl0udGVuLCBpbnB1dFt0eXBlPVwidXJsXCJdLnRlbiwgLnJvdyBpbnB1dFt0eXBlPVwidXJsXCJdLnRlbiwgdGV4dGFyZWEudGVuLCAucm93IHRleHRhcmVhLnRlbiwgaW5wdXRbdHlwZT1cInRleHRcIl0uZWxldmVuLCAucm93IGlucHV0W3R5cGU9XCJ0ZXh0XCJdLmVsZXZlbiwgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdLmVsZXZlbiwgLnJvdyBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0uZWxldmVuLCBpbnB1dFt0eXBlPVwiZGF0ZVwiXS5lbGV2ZW4sIC5yb3cgaW5wdXRbdHlwZT1cImRhdGVcIl0uZWxldmVuLCBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl0uZWxldmVuLCAucm93IGlucHV0W3R5cGU9XCJkYXRldGltZVwiXS5lbGV2ZW4sIGlucHV0W3R5cGU9XCJlbWFpbFwiXS5lbGV2ZW4sIC5yb3cgaW5wdXRbdHlwZT1cImVtYWlsXCJdLmVsZXZlbiwgaW5wdXRbdHlwZT1cIm51bWJlclwiXS5lbGV2ZW4sIC5yb3cgaW5wdXRbdHlwZT1cIm51bWJlclwiXS5lbGV2ZW4sIGlucHV0W3R5cGU9XCJzZWFyY2hcIl0uZWxldmVuLCAucm93IGlucHV0W3R5cGU9XCJzZWFyY2hcIl0uZWxldmVuLCBpbnB1dFt0eXBlPVwidGVsXCJdLmVsZXZlbiwgLnJvdyBpbnB1dFt0eXBlPVwidGVsXCJdLmVsZXZlbiwgaW5wdXRbdHlwZT1cInRpbWVcIl0uZWxldmVuLCAucm93IGlucHV0W3R5cGU9XCJ0aW1lXCJdLmVsZXZlbiwgaW5wdXRbdHlwZT1cInVybFwiXS5lbGV2ZW4sIC5yb3cgaW5wdXRbdHlwZT1cInVybFwiXS5lbGV2ZW4sIHRleHRhcmVhLmVsZXZlbiwgLnJvdyB0ZXh0YXJlYS5lbGV2ZW4sIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLnR3ZWx2ZSwgLnJvdyBpbnB1dFt0eXBlPVwidGV4dFwiXS50d2VsdmUsIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXS50d2VsdmUsIC5yb3cgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdLnR3ZWx2ZSwgaW5wdXRbdHlwZT1cImRhdGVcIl0udHdlbHZlLCAucm93IGlucHV0W3R5cGU9XCJkYXRlXCJdLnR3ZWx2ZSwgaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdLnR3ZWx2ZSwgLnJvdyBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl0udHdlbHZlLCBpbnB1dFt0eXBlPVwiZW1haWxcIl0udHdlbHZlLCAucm93IGlucHV0W3R5cGU9XCJlbWFpbFwiXS50d2VsdmUsIGlucHV0W3R5cGU9XCJudW1iZXJcIl0udHdlbHZlLCAucm93IGlucHV0W3R5cGU9XCJudW1iZXJcIl0udHdlbHZlLCBpbnB1dFt0eXBlPVwic2VhcmNoXCJdLnR3ZWx2ZSwgLnJvdyBpbnB1dFt0eXBlPVwic2VhcmNoXCJdLnR3ZWx2ZSwgaW5wdXRbdHlwZT1cInRlbFwiXS50d2VsdmUsIC5yb3cgaW5wdXRbdHlwZT1cInRlbFwiXS50d2VsdmUsIGlucHV0W3R5cGU9XCJ0aW1lXCJdLnR3ZWx2ZSwgLnJvdyBpbnB1dFt0eXBlPVwidGltZVwiXS50d2VsdmUsIGlucHV0W3R5cGU9XCJ1cmxcIl0udHdlbHZlLCAucm93IGlucHV0W3R5cGU9XCJ1cmxcIl0udHdlbHZlLCB0ZXh0YXJlYS50d2VsdmUsIC5yb3cgdGV4dGFyZWEudHdlbHZlIHtcclxuLy8gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcclxuLy8gIH1cclxuLy8gIC8qIEJ1dHRvbnMgLS0tICovXHJcbi8vICAvKiAgICAgICAgICAgICAqL1xyXG4vLyAgLyogQmFzaWMgb3ZlcnJpZGVzICovXHJcbi8vICAuYnV0dG9uIHtcclxuLy8gICAgZGlzcGxheTogYmxvY2s7XHJcbi8vICB9XHJcbi8vICAvKiBCdXR0b24gR3JvdXBzICovXHJcbi8vICAuYnV0dG9uLWdyb3VwIHtcclxuLy8gICAgYnV0dG9uLmJ1dHRvbiwgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXS5idXR0b24ge1xyXG4vLyAgICAgIHdpZHRoOiBhdXRvO1xyXG4vLyAgICAgIHBhZGRpbmc6IDEwcHggMjBweCAxMXB4O1xyXG4vLyAgICB9XHJcbi8vICAgIGJ1dHRvbi5idXR0b24ubGFyZ2UsIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0uYnV0dG9uLmxhcmdlIHtcclxuLy8gICAgICBwYWRkaW5nOiAxNXB4IDMwcHggMTZweDtcclxuLy8gICAgfVxyXG4vLyAgICBidXR0b24uYnV0dG9uLm1lZGl1bSwgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXS5idXR0b24ubWVkaXVtIHtcclxuLy8gICAgICBwYWRkaW5nOiAxMHB4IDIwcHggMTFweDtcclxuLy8gICAgfVxyXG4vLyAgICBidXR0b24uYnV0dG9uLnNtYWxsLCBpbnB1dFt0eXBlPVwic3VibWl0XCJdLmJ1dHRvbi5zbWFsbCB7XHJcbi8vICAgICAgcGFkZGluZzogN3B4IDE0cHggOHB4O1xyXG4vLyAgICB9XHJcbi8vICAgIGJ1dHRvbi5idXR0b24udGlueSwgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXS5idXR0b24udGlueSB7XHJcbi8vICAgICAgcGFkZGluZzogNXB4IDEwcHggNnB4O1xyXG4vLyAgICB9XHJcbi8vICAgICYuZXZlbiB7XHJcbi8vICAgICAgYnV0dG9uLmJ1dHRvbiwgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXS5idXR0b24ge1xyXG4vLyAgICAgICAgd2lkdGg6IDEwMCU7XHJcbi8vICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XHJcbi8vICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xyXG4vLyAgICAgIH1cclxuLy8gICAgfVxyXG4vLyAgfVxyXG4vLyAgLyogTmF2YmFyIC0tLSAqL1xyXG4vLyAgLyogICAgICAgICAgICAqL1xyXG4vLyAgLm5hdi1iYXIge1xyXG4vLyAgICBoZWlnaHQ6IGF1dG87XHJcbi8vICAgID4gbGkge1xyXG4vLyAgICAgIGZsb2F0OiBub25lO1xyXG4vLyAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4vLyAgICAgIGJvcmRlci1yaWdodDogbm9uZTtcclxuLy8gICAgICA+IGEubWFpbiB7XHJcbi8vICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4vLyAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkZGRkZGQ7XHJcbi8vICAgICAgICBib3JkZXItcmlnaHQ6IG5vbmU7XHJcbi8vICAgICAgfVxyXG4vLyAgICAgICY6Zmlyc3QtY2hpbGQgPiBhLm1haW4ge1xyXG4vLyAgICAgICAgYm9yZGVyLXRvcDogbm9uZTtcclxuLy8gICAgICB9XHJcbi8vICAgICAgJi5oYXMtZmx5b3V0IHtcclxuLy8gICAgICAgID4gYS5mbHlvdXQtdG9nZ2xlIHtcclxuLy8gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4vLyAgICAgICAgICByaWdodDogMDtcclxuLy8gICAgICAgICAgdG9wOiAwO1xyXG4vLyAgICAgICAgICBwYWRkaW5nOiAyMnB4O1xyXG4vLyAgICAgICAgICB6LWluZGV4OiAyO1xyXG4vLyAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuLy8gICAgICAgIH1cclxuLy8gICAgICAgICYuaXMtdG91Y2ggPiBhLmZseW91dC10b2dnbGUgc3BhbiB7XHJcbi8vICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbi8vICAgICAgICAgIHdpZHRoOiAwO1xyXG4vLyAgICAgICAgICBoZWlnaHQ6IDA7XHJcbi8vICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4vLyAgICAgICAgfVxyXG4vLyAgICAgICAgPiBhLmZseW91dC10b2dnbGU6aG92ZXIgc3BhbiB7XHJcbi8vICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6ICMxNDE0MTQ7XHJcbi8vICAgICAgICB9XHJcbi8vICAgICAgfVxyXG4vLyAgICB9XHJcbi8vICAgICYudmVydGljYWwgPiBsaS5oYXMtZmx5b3V0ID4gLmZseW91dCB7XHJcbi8vICAgICAgbGVmdDogMDtcclxuLy8gICAgfVxyXG4vLyAgfVxyXG4vLyAgLmZseW91dCB7XHJcbi8vICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuLy8gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcclxuLy8gICAgdG9wOiBhdXRvO1xyXG4vLyAgICBtYXJnaW4tcmlnaHQ6IC0ycHg7XHJcbi8vICAgIGJvcmRlci13aWR0aDogMXB4IDFweCAwIDFweDtcclxuLy8gICAgJi5yaWdodCB7XHJcbi8vICAgICAgZmxvYXQ6IG5vbmU7XHJcbi8vICAgICAgcmlnaHQ6IGF1dG87XHJcbi8vICAgICAgbGVmdDogLTFweDtcclxuLy8gICAgfVxyXG4vLyAgICAmLnNtYWxsLCAmLmxhcmdlIHtcclxuLy8gICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xyXG4vLyAgICB9XHJcbi8vICAgIHA6bGFzdC1jaGlsZCB7XHJcbi8vICAgICAgbWFyZ2luLWJvdHRvbTogMThweDtcclxuLy8gICAgfVxyXG4vLyAgfVxyXG4vLyAgLyogUmV2ZWFsIC0tLSAqL1xyXG4vLyAgLyogICAgICAgICAgICAqL1xyXG4vLyAgLnJldmVhbC1tb2RhbC1iZyB7XHJcbi8vICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuLy8gIH1cclxuLy8gIC5yZXZlYWwtbW9kYWwge1xyXG4vLyAgICB3aWR0aDogODAlO1xyXG4vLyAgICB0b3A6IDE1cHg7XHJcbi8vICAgIGxlZnQ6IDUwJTtcclxuLy8gICAgbWFyZ2luLWxlZnQ6IC00MCU7XHJcbi8vICAgIHBhZGRpbmc6IDIwcHg7XHJcbi8vICAgIGhlaWdodDogYXV0bztcclxuLy8gICAgJi5zbWFsbCwgJi5tZWRpdW0sICYubGFyZ2UsICYueGxhcmdlIHtcclxuLy8gICAgICB3aWR0aDogODAlO1xyXG4vLyAgICAgIHRvcDogMTVweDtcclxuLy8gICAgICBsZWZ0OiA1MCU7XHJcbi8vICAgICAgbWFyZ2luLWxlZnQ6IC00MCU7XHJcbi8vICAgICAgcGFkZGluZzogMjBweDtcclxuLy8gICAgICBoZWlnaHQ6IGF1dG87XHJcbi8vICAgIH1cclxuLy8gIH1cclxuLy8gIC8qIENsZWFyaW5nIC0tLSAqL1xyXG4vLyAgLyogICAgICAgICAgICAgICovXHJcbi8vICAuY2xlYXJpbmctY29udGFpbmVyIHtcclxuLy8gICAgbWFyZ2luOiAwO1xyXG4vLyAgfVxyXG4vLyAgLmNsZWFyaW5nLWNsb3NlIHtcclxuLy8gICAgei1pbmRleDogOTk7XHJcbi8vICAgIGZvbnQtc2l6ZTogMzFweDtcclxuLy8gICAgdG9wOiAwcHg7XHJcbi8vICAgIHJpZ2h0OiA1cHg7XHJcbi8vICB9XHJcbi8vICAuY2xlYXJpbmctY2FwdGlvbiB7XHJcbi8vICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuLy8gICAgYm90dG9tOiAwO1xyXG4vLyAgICBsZWZ0OiAwO1xyXG4vLyAgICBwYWRkaW5nOiAxMHB4ICFpbXBvcnRhbnQ7XHJcbi8vICAgIGxpbmUtaGVpZ2h0OiAxLjM7XHJcbi8vICB9XHJcbi8vICAuY2xlYXJpbmctbWFpbi1yaWdodCwgLmNsZWFyaW5nLW1haW4tbGVmdCB7XHJcbi8vICAgIGRpc3BsYXk6IG5vbmU7XHJcbi8vICB9XHJcbi8vICAuY2xlYXJpbmctYmxhY2tvdXQuY2xlYXJpbmctYXNzZW1ibGVkIHtcclxuLy8gICAgLnZpc2libGUtaW1nLCAuY2xlYXJpbmctY29udGFpbmVyIHtcclxuLy8gICAgICBoZWlnaHQ6IDEwMCU7XHJcbi8vICAgIH1cclxuLy8gICAgdWxbZGF0YS1jbGVhcmluZ10ge1xyXG4vLyAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbi8vICAgIH1cclxuLy8gIH1cclxuLy8gIC8qIEpveXJpZGUgLS0tICovXHJcbi8vICAvKiAgICAgICAgICAgICAqL1xyXG4vLyAgLmpveXJpZGUtdGlwLWd1aWRlIHtcclxuLy8gICAgd2lkdGg6IDk1JSAhaW1wb3J0YW50O1xyXG4vLyAgICBsZWZ0OiAyLjUlICFpbXBvcnRhbnQ7XHJcbi8vICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogNHB4O1xyXG4vLyAgICAtbW96LWJvcmRlci1yYWRpdXM6IDRweDtcclxuLy8gICAgLW1zLWJvcmRlci1yYWRpdXM6IDRweDtcclxuLy8gICAgLW8tYm9yZGVyLXJhZGl1czogNHB4O1xyXG4vLyAgICBib3JkZXItcmFkaXVzOiA0cHg7XHJcbi8vICB9XHJcbi8vICAuam95cmlkZS10aXAtZ3VpZGUtd3JhcHBlciB7XHJcbi8vICAgIHdpZHRoOiAxMDAlO1xyXG4vLyAgfVxyXG4vLyAgLyogVGFicyAtLS0gKi9cclxuLy8gIC8qICAgICAgICAgICovXHJcbi8vICAudGFicy5tb2JpbGUge1xyXG4vLyAgICB3aWR0aDogYXV0bztcclxuLy8gICAgbWFyZ2luOiAyMHB4IC0yMHB4IDQwcHg7XHJcbi8vICAgIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCAjY2NjY2NjO1xyXG4vLyAgICBoZWlnaHQ6IGF1dG87XHJcbi8vICAgIG1hcmdpbjogMjBweCAtMTVweCAwcHggLTE1cHg7XHJcbi8vICAgIGR0LCBsaSB7XHJcbi8vICAgICAgZmxvYXQ6IG5vbmU7XHJcbi8vICAgICAgaGVpZ2h0OiBhdXRvO1xyXG4vLyAgICB9XHJcbi8vICAgIGRkIHtcclxuLy8gICAgICBmbG9hdDogbm9uZTtcclxuLy8gICAgICBoZWlnaHQ6IGF1dG87XHJcbi8vICAgICAgYSB7XHJcbi8vICAgICAgICBmb250LXNpemU6IDEzcHg7XHJcbi8vICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuLy8gICAgICAgIHdpZHRoOiBhdXRvO1xyXG4vLyAgICAgICAgaGVpZ2h0OiBhdXRvO1xyXG4vLyAgICAgICAgcGFkZGluZzogMThweCAyMHB4O1xyXG4vLyAgICAgICAgbWFyZ2luOiAwO1xyXG4vLyAgICAgICAgY29sb3I6ICM1NTU7XHJcbi8vICAgICAgICBsaW5lLWhlaWdodDogMTtcclxuLy8gICAgICAgIGJvcmRlcjogbm9uZTtcclxuLy8gICAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xyXG4vLyAgICAgICAgYm9yZGVyLXJpZ2h0OiBub25lO1xyXG4vLyAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2NjY2M7XHJcbi8vICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xyXG4vLyAgICAgIH1cclxuLy8gICAgfVxyXG4vLyAgICBsaSBhIHtcclxuLy8gICAgICBmb250LXNpemU6IDEzcHg7XHJcbi8vICAgICAgZGlzcGxheTogYmxvY2s7XHJcbi8vICAgICAgd2lkdGg6IGF1dG87XHJcbi8vICAgICAgaGVpZ2h0OiBhdXRvO1xyXG4vLyAgICAgIHBhZGRpbmc6IDE4cHggMjBweDtcclxuLy8gICAgICBtYXJnaW46IDA7XHJcbi8vICAgICAgY29sb3I6ICM1NTU7XHJcbi8vICAgICAgbGluZS1oZWlnaHQ6IDE7XHJcbi8vICAgICAgYm9yZGVyOiBub25lO1xyXG4vLyAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xyXG4vLyAgICAgIGJvcmRlci1yaWdodDogbm9uZTtcclxuLy8gICAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2NjY2NjYztcclxuLy8gICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xyXG4vLyAgICB9XHJcbi8vICAgIGRkIGEuYWN0aXZlLCBsaSBhLmFjdGl2ZSB7XHJcbi8vICAgICAgYm9yZGVyOiBub25lO1xyXG4vLyAgICAgIGJhY2tncm91bmQ6ICMyYmE2Y2I7XHJcbi8vICAgICAgY29sb3I6ICNmZmY7XHJcbi8vICAgICAgbWFyZ2luOiAwO1xyXG4vLyAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XHJcbi8vICAgICAgdG9wOiAwO1xyXG4vLyAgICAgIGhlaWdodDogYXV0bztcclxuLy8gICAgfVxyXG4vLyAgICBkZDpmaXJzdC1jaGlsZCBhLmFjdGl2ZSwgbGk6Zmlyc3QtY2hpbGQgYS5hY3RpdmUge1xyXG4vLyAgICAgIG1hcmdpbjogMDtcclxuLy8gICAgfVxyXG4vLyAgICArIC50YWJzLWNvbnRlbnQuY29udGFpbmVkIHtcclxuLy8gICAgICBtYXJnaW4tbGVmdDogLTE1cHg7XHJcbi8vICAgICAgbWFyZ2luLXJpZ2h0OiAtMTVweDtcclxuLy8gICAgfVxyXG4vLyAgICAuc2VjdGlvbi10aXRsZSB7XHJcbi8vICAgICAgcGFkZGluZy1sZWZ0OiAyMHB4ICFpbXBvcnRhbnQ7XHJcbi8vICAgIH1cclxuLy8gIH1cclxuLy8gIC5jb250YWluZWQge1xyXG4vLyAgICAmLm1vYmlsZSB7XHJcbi8vICAgICAgbWFyZ2luLWJvdHRvbTogMDtcclxuLy8gICAgfVxyXG4vLyAgICAmLnRhYnMubW9iaWxlIHtcclxuLy8gICAgICBkZCBhLCBsaSBhIHtcclxuLy8gICAgICAgIHBhZGRpbmc6IDE4cHggMjBweDtcclxuLy8gICAgICB9XHJcbi8vICAgIH1cclxuLy8gIH1cclxuLy8gIC50YWJzLm1vYmlsZSArIHVsLmNvbnRhaW5lZCB7XHJcbi8vICAgIG1hcmdpbi1sZWZ0OiAtMjBweDtcclxuLy8gICAgbWFyZ2luLXJpZ2h0OiAtMjBweDtcclxuLy8gICAgYm9yZGVyLXdpZHRoOiAwIDAgMXB4IDA7XHJcbi8vICB9XHJcbi8vICAvKiBVSSBFbGVtZW50cyAtLS0gKi9cclxuLy8gIC8qICAgICAgICAgICAgICAgICAqL1xyXG4vLyAgLyogVG9vbHRpcHMgKi9cclxuLy8gIC50b29sdGlwIHtcclxuLy8gICAgZm9udC1zaXplOiAxNHB4O1xyXG4vLyAgICBsaW5lLWhlaWdodDogMS40O1xyXG4vLyAgICBwYWRkaW5nOiA3cHggMTBweCA5cHggMTBweDtcclxuLy8gICAgbGVmdDogNTAlICFpbXBvcnRhbnQ7XHJcbi8vICAgIG1heC13aWR0aDogODAlICFpbXBvcnRhbnQ7XHJcbi8vICAgIG1hcmdpbi1sZWZ0OiAtNDAlO1xyXG4vLyAgICBmb250LXNpemU6IDExMCU7XHJcbi8vICAgID4gLm51YiwgJi50b3AgPiAubnViLCAmLmxlZnQgPiAubnViLCAmLnJpZ2h0ID4gLm51YiB7XHJcbi8vICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCBibGFjayB0cmFuc3BhcmVudDtcclxuLy8gICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHJnYmEoMCwgMCwgMCwgMC44NSkgdHJhbnNwYXJlbnQ7XHJcbi8vICAgICAgdG9wOiAtMTJweDtcclxuLy8gICAgICBsZWZ0OiAxMHB4O1xyXG4vLyAgICB9XHJcbi8vICB9XHJcbiBcclxuLy99XHJcblxyXG4vKiBUb3BiYXIgU3BlY2lmaWMgQnJlYWtwb2ludCB0aGF0IHlvdSBjYW4gY3VzdG9taXplICovXHJcbi8vQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5NDBweCkge1xyXG4gICAgXHJcbiAgXHJcbi8vICAudG9wLWJhciB7XHJcbi8vICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbi8vICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbi8vICAgIGhlaWdodDogNDVweDtcclxuLy8gICAgYmFja2dyb3VuZDogIzQyNDI0MjtcclxuLy8gICAgLyogT3ZlcnJpZGUgY29udGFpbiB0byBncmlkIHN0dWZmIGZvciBicmVha3BvaW50ICovXHJcbi8vICAgIC8qIFNldHRpbmcgdXAgdGhlIHNsaWRpbmcgYXJlYSAqL1xyXG4vLyAgICAvKiBXaGVuIHRoZSBTbWFsbCBOYXYgaXMgU2hvd2luZyAqL1xyXG4vLyAgICAuanMtZ2VuZXJhdGVkIHtcclxuLy8gICAgICBkaXNwbGF5OiBibG9jaztcclxuLy8gICAgfVxyXG4vLyAgfVxyXG4vLyAgLmNvbnRhaW4tdG8tZ3JpZCAudG9wLWJhciB7XHJcbi8vICAgIHdpZHRoOiBhdXRvO1xyXG4vLyAgfVxyXG4vLyAgLnRvcC1iYXIge1xyXG4vLyAgICBzZWN0aW9uIHtcclxuLy8gICAgICBsZWZ0OiAwO1xyXG4vLyAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuLy8gICAgICB3aWR0aDogYXV0bztcclxuLy8gICAgICAtd2Via2l0LXRyYW5zaXRpb246IGxlZnQgMzAwbXMgMDtcclxuLy8gICAgICAtbW96LXRyYW5zaXRpb246IGxlZnQgMzAwbXMgMDtcclxuLy8gICAgICAtby10cmFuc2l0aW9uOiBsZWZ0IDMwMG1zIDA7XHJcbi8vICAgICAgdHJhbnNpdGlvbjogbGVmdCAzMDBtcyAwO1xyXG4vLyAgICB9XHJcbi8vICAgIHVsIHtcclxuLy8gICAgICB3aWR0aDogMTAwJTtcclxuLy8gICAgICBoZWlnaHQ6IDEwMCU7XHJcbi8vICAgICAgbWFyZ2luLWJvdHRvbTogMDtcclxuLy8gICAgICBkaXNwbGF5OiBibG9jaztcclxuLy8gICAgICA+IGxpIHtcclxuLy8gICAgICAgIGZsb2F0OiBub25lO1xyXG4vLyAgICAgICAgLyogQnJhbmRpbmcgYW5kIG5hbWUgKi9cclxuLy8gICAgICAgIC8qIERyb3Bkb3duIFRvZ2dsZSAqL1xyXG4vLyAgICAgICAgLyogRGl2aWRlciBmb3IgYnJlYWtwb2ludCAqL1xyXG4vLyAgICAgICAgLyogU2VhcmNoIE92ZXJyaWRlcyBmb3IgYnJlYWtwb2ludCBzaXplICovXHJcbi8vICAgICAgICAvKiBEcm9wZG93biBMZXZlbCAxICovXHJcbi8vICAgICAgICAvKiBEcm9wZG93biBMZXZlbCAyICovXHJcbi8vICAgICAgICAmLm5hbWUge1xyXG4vLyAgICAgICAgICBoZWlnaHQ6IDQ1cHg7XHJcbi8vICAgICAgICAgIGgxIHtcclxuLy8gICAgICAgICAgICBsaW5lLWhlaWdodDogMTtcclxuLy8gICAgICAgICAgICBhIHtcclxuLy8gICAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcclxuLy8gICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4vLyAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDQ1cHggIWltcG9ydGFudDtcclxuLy8gICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMTVweDtcclxuLy8gICAgICAgICAgICAgIGhlaWdodDogNDVweDtcclxuLy8gICAgICAgICAgICB9XHJcbi8vICAgICAgICAgIH1cclxuLy8gICAgICAgIH1cclxuLy8gICAgICAgIGE6bm90KC5idXR0b24pIHtcclxuLy8gICAgICAgICAgY29sb3I6IHdoaXRlO1xyXG4vLyAgICAgICAgICBmb250LXNpemU6IDE0cHg7XHJcbi8vICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbi8vICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbi8vICAgICAgICAgIHBhZGRpbmctbGVmdDogMTVweDtcclxuLy8gICAgICAgIH1cclxuLy8gICAgICAgICYudG9nZ2xlLXRvcGJhciB7XHJcbi8vICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuLy8gICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbi8vICAgICAgICAgIGhlaWdodDogNDVweDtcclxuLy8gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4vLyAgICAgICAgICByaWdodDogMDtcclxuLy8gICAgICAgICAgdG9wOiAwO1xyXG4vLyAgICAgICAgICB3aWR0aDogMTAwJTtcclxuLy8gICAgICAgICAgc3BhbiB7XHJcbi8vICAgICAgICAgICAgJi5tbDEsICYubWwyLCAmLm1sMyB7XHJcbi8vICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuLy8gICAgICAgICAgICAgIHdpZHRoOiAzMHB4O1xyXG4vLyAgICAgICAgICAgICAgaGVpZ2h0OiAzcHg7XHJcbi8vICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbi8vICAgICAgICAgICAgICByaWdodDogMjBweDtcclxuLy8gICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7XHJcbi8vICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluIDBzO1xyXG4vLyAgICAgICAgICAgIH1cclxuLy8gICAgICAgICAgICAmLm1sMSB7XHJcbi8vICAgICAgICAgICAgICB0b3A6IDE1cHg7XHJcbi8vICAgICAgICAgICAgfVxyXG4vLyAgICAgICAgICAgICYubWwyIHtcclxuLy8gICAgICAgICAgICAgIHRvcDogMjBweDtcclxuLy8gICAgICAgICAgICB9XHJcbi8vICAgICAgICAgICAgJi5tbDMge1xyXG4vLyAgICAgICAgICAgICAgdG9wOiAyNXB4O1xyXG4vLyAgICAgICAgICAgIH1cclxuLy8gICAgICAgICAgfVxyXG4vLyAgICAgICAgfVxyXG4vLyAgICAgIH1cclxuLy8gICAgfVxyXG4vLyAgICAmLmV4cGFuZGVkIHVsIGxpLnRvZ2dsZS10b3BiYXIgc3BhbiB7XHJcbi8vICAgICAgJi5tbDEsICYubWwyLCAmLm1sMyB7XHJcbi8vICAgICAgICB3aWR0aDogMzZweDtcclxuLy8gICAgICAgIHJpZ2h0OiAxN3B4O1xyXG4vLyAgICAgIH1cclxuLy8gICAgfVxyXG4vLyAgICB1bCB7XHJcbi8vICAgICAgPiBsaSB7XHJcbi8vICAgICAgICAmLnRvZ2dsZS10b3BiYXIge1xyXG4vLyAgICAgICAgICAmOmhvdmVyIHtcclxuLy8gICAgICAgICAgICBiYWNrZ3JvdW5kOiBpbmhlcml0O1xyXG4vLyAgICAgICAgICB9XHJcbi8vICAgICAgICAgIGEge1xyXG4vLyAgICAgICAgICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcclxuLy8gICAgICAgICAgfVxyXG4vLyAgICAgICAgfVxyXG4vLyAgICAgICAgJi5kaXZpZGVyIHtcclxuLy8gICAgICAgICAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4ICMzYzNjM2M7XHJcbi8vICAgICAgICAgIGJvcmRlci10b3A6IHNvbGlkIDFweCBibGFjaztcclxuLy8gICAgICAgICAgY2xlYXI6IGJvdGg7XHJcbi8vICAgICAgICAgIGhlaWdodDogMXB4ICFpbXBvcnRhbnQ7XHJcbi8vICAgICAgICAgIG1hcmdpbjogOHB4IDAgIWltcG9ydGFudDtcclxuLy8gICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbi8vICAgICAgICB9XHJcbi8vICAgICAgICAmLnNlYXJjaCB7XHJcbi8vICAgICAgICAgIHBhZGRpbmc6IDAgMjIuNXB4O1xyXG4vLyAgICAgICAgICBmb3JtIHtcclxuLy8gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuLy8gICAgICAgICAgICBpbnB1dFt0eXBlPXRleHRdIHtcclxuLy8gICAgICAgICAgICAgIHdpZHRoOiA3NSU7XHJcbi8vICAgICAgICAgICAgfVxyXG4vLyAgICAgICAgICAgIC5idXR0b24ge1xyXG4vLyAgICAgICAgICAgICAgdG9wOiAtMXB4O1xyXG4vLyAgICAgICAgICAgICAgd2lkdGg6IDI1JTtcclxuLy8gICAgICAgICAgICB9XHJcbi8vICAgICAgICAgIH1cclxuLy8gICAgICAgIH1cclxuLy8gICAgICAgICYuaGFzLWRyb3Bkb3duIHtcclxuLy8gICAgICAgICAgYSB7XHJcbi8vICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMzMuNzVweDtcclxuLy8gICAgICAgICAgICAmOmFmdGVyIHtcclxuLy8gICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbi8vICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuLy8gICAgICAgICAgICAgIHdpZHRoOiAwO1xyXG4vLyAgICAgICAgICAgICAgaGVpZ2h0OiAwO1xyXG4vLyAgICAgICAgICAgICAgYm9yZGVyOiBzb2xpZCA1cHg7XHJcbi8vICAgICAgICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcclxuLy8gICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMTVweDtcclxuLy8gICAgICAgICAgICAgIG1hcmdpbi10b3A6IC00LjVweDtcclxuLy8gICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuLy8gICAgICAgICAgICAgIHRvcDogNTAlO1xyXG4vLyAgICAgICAgICAgIH1cclxuLy8gICAgICAgICAgfVxyXG4vLyAgICAgICAgICAmOmhvdmVyID4gLmRyb3Bkb3duIHtcclxuLy8gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuLy8gICAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XHJcbi8vICAgICAgICAgIH1cclxuLy8gICAgICAgICAgLmRyb3Bkb3duIHtcclxuLy8gICAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XHJcbi8vICAgICAgICAgICAgei1pbmRleDogMCAhaW1wb3J0YW50O1xyXG4vLyAgICAgICAgICB9XHJcbi8vICAgICAgICAgICYubW92ZWQge1xyXG4vLyAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XHJcbi8vICAgICAgICAgICAgPiAuZHJvcGRvd24ge1xyXG4vLyAgICAgICAgICAgICAgdG9wOiAwO1xyXG4vLyAgICAgICAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcclxuLy8gICAgICAgICAgICAgIGxpIHtcclxuLy8gICAgICAgICAgICAgICAgbGFiZWwge1xyXG4vLyAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDZweDtcclxuLy8gICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogNnB4ICFpbXBvcnRhbnQ7XHJcbi8vICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiA5cHg7XHJcbi8vICAgICAgICAgICAgICAgIH1cclxuLy8gICAgICAgICAgICAgICAgJjpub3QoLnRpdGxlKSB7XHJcbi8vICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XHJcbi8vICAgICAgICAgICAgICAgICAgYSB7XHJcbi8vICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiA4cHggMTVweCA4cHggMzBweDtcclxuLy8gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTVweDtcclxuLy8gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4vLyAgICAgICAgICAgICAgICAgIH1cclxuLy8gICAgICAgICAgICAgICAgfVxyXG4vLyAgICAgICAgICAgICAgICBhLCBsYWJlbCB7XHJcbi8vICAgICAgICAgICAgICAgICAgcGFkZGluZzogMCAyMi41cHg7XHJcbi8vICAgICAgICAgICAgICAgIH1cclxuLy8gICAgICAgICAgICAgICAgYTpob3ZlciB7XHJcbi8vICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogIzNjM2MzYztcclxuLy8gICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuLy8gICAgICAgICAgICAgICAgfVxyXG4vLyAgICAgICAgICAgICAgICAmLmRpdmlkZXIge1xyXG4vLyAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XHJcbi8vICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogOHB4ICFpbXBvcnRhbnQ7XHJcbi8vICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4ICFpbXBvcnRhbnQ7XHJcbi8vICAgICAgICAgICAgICAgIH1cclxuLy8gICAgICAgICAgICAgIH1cclxuLy8gICAgICAgICAgICB9XHJcbi8vICAgICAgICAgICAgLmJhY2sudGl0bGUge1xyXG4vLyAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XHJcbi8vICAgICAgICAgICAgICBhOmJlZm9yZSB7XHJcbi8vICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuLy8gICAgICAgICAgICAgICAgdG9wOiA1MCU7XHJcbi8vICAgICAgICAgICAgICAgIGxlZnQ6IDE3LjVweDtcclxuLy8gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogLTVweDtcclxuLy8gICAgICAgICAgICAgICAgd2lkdGg6IDA7XHJcbi8vICAgICAgICAgICAgICAgIGhlaWdodDogMDtcclxuLy8gICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcclxuLy8gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbi8vICAgICAgICAgICAgICAgIHdpZHRoOiAwO1xyXG4vLyAgICAgICAgICAgICAgICBoZWlnaHQ6IDA7XHJcbi8vICAgICAgICAgICAgICAgIGJvcmRlcjogc29saWQgNXB4O1xyXG4vLyAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHdoaXRlIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xyXG4vLyAgICAgICAgICAgICAgfVxyXG4vLyAgICAgICAgICAgICAgaDUge1xyXG4vLyAgICAgICAgICAgICAgICBtYXJnaW46IDA7XHJcbi8vICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMTVweDtcclxuLy8gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4vLyAgICAgICAgICAgICAgICBhIHtcclxuLy8gICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuLy8gICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogOHB4O1xyXG4vLyAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiA4cHg7XHJcbi8vICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxOXB4O1xyXG4vLyAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4vLyAgICAgICAgICAgICAgICB9XHJcbi8vICAgICAgICAgICAgICB9XHJcbi8vICAgICAgICAgICAgfVxyXG4vLyAgICAgICAgICB9XHJcbi8vICAgICAgICAgIC5kcm9wZG93biBsaSB7XHJcbi8vICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbi8vICAgICAgICAgICAgJi5oYXMtZHJvcGRvd24ge1xyXG4vLyAgICAgICAgICAgICAgLmRyb3Bkb3duIHtcclxuLy8gICAgICAgICAgICAgICAgbGVmdDogMTAwJSAhaW1wb3J0YW50O1xyXG4vLyAgICAgICAgICAgICAgICB0b3A6IDA7XHJcbi8vICAgICAgICAgICAgICAgIHJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XHJcbi8vICAgICAgICAgICAgICB9XHJcbi8vICAgICAgICAgICAgICA+IGEge1xyXG4vLyAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAzMy43NXB4O1xyXG4vLyAgICAgICAgICAgICAgICAmOmFmdGVyIHtcclxuLy8gICAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xyXG4vLyAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMTVweDtcclxuLy8gICAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xyXG4vLyAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4vLyAgICAgICAgICAgICAgICAgIHdpZHRoOiAwO1xyXG4vLyAgICAgICAgICAgICAgICAgIGhlaWdodDogMDtcclxuLy8gICAgICAgICAgICAgICAgICBib3JkZXI6IHNvbGlkIDVweDtcclxuLy8gICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcclxuLy8gICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbi8vICAgICAgICAgICAgICAgICAgdG9wOiA1MCU7XHJcbi8vICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogLTQuNXB4O1xyXG4vLyAgICAgICAgICAgICAgICB9XHJcbi8vICAgICAgICAgICAgICAgIGxpIGE6aG92ZXIge1xyXG4vLyAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICMzYzNjM2M7XHJcbi8vICAgICAgICAgICAgICAgIH1cclxuLy8gICAgICAgICAgICAgIH1cclxuLy8gICAgICAgICAgICAgICYubW92ZWQge1xyXG4vLyAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xyXG4vLyAgICAgICAgICAgICAgICAuZHJvcGRvd24ge1xyXG4vLyAgICAgICAgICAgICAgICAgIHRvcDogMDtcclxuLy8gICAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xyXG4vLyAgICAgICAgICAgICAgICB9XHJcbi8vICAgICAgICAgICAgICB9XHJcbi8vICAgICAgICAgICAgICAmOmhvdmVyIHtcclxuLy8gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbi8vICAgICAgICAgICAgICB9XHJcbi8vICAgICAgICAgICAgfVxyXG4vLyAgICAgICAgICB9XHJcbi8vICAgICAgICB9XHJcbi8vICAgICAgfVxyXG4vLyAgICAgICYubGVmdCwgJi5yaWdodCB7XHJcbi8vICAgICAgICBmbG9hdDogbm9uZTtcclxuLy8gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4vLyAgICAgIH1cclxuLy8gICAgICAmLmxlZnQgPiBsaSwgJi5yaWdodCA+IGxpIHtcclxuLy8gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4vLyAgICAgICAgZmxvYXQ6IG5vbmU7XHJcbi8vICAgICAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcclxuLy8gICAgICB9XHJcbi8vICAgICAgJi5sZWZ0ID4gbGkuaGFzLWRyb3Bkb3duIC5kcm9wZG93biwgJi5yaWdodCA+IGxpLmhhcy1kcm9wZG93biAuZHJvcGRvd24ge1xyXG4vLyAgICAgICAgbGVmdDogMTAwJSAhaW1wb3J0YW50O1xyXG4vLyAgICAgICAgdG9wOiAwO1xyXG4vLyAgICAgICAgcmlnaHQ6IGF1dG8gIWltcG9ydGFudDtcclxuLy8gICAgICB9XHJcbi8vICAgIH1cclxuLy8gICAgc2VjdGlvbiA+IHVsIGxpIHtcclxuLy8gICAgICBhOm5vdCguYnV0dG9uKSB7XHJcbi8vICAgICAgICBwYWRkaW5nLWxlZnQ6IDE1cHg7XHJcbi8vICAgICAgfVxyXG4vLyAgICAgIHVsIGxpIHtcclxuLy8gICAgICAgIGE6bm90KC5idXR0b24pIHtcclxuLy8gICAgICAgICAgcGFkZGluZy1sZWZ0OiAzMHB4ICFpbXBvcnRhbnQ7XHJcbi8vICAgICAgICB9XHJcbi8vICAgICAgICB1bCBsaSBhOm5vdCguYnV0dG9uKSB7XHJcbi8vICAgICAgICAgIHBhZGRpbmctbGVmdDogNDVweCAhaW1wb3J0YW50O1xyXG4vLyAgICAgICAgfVxyXG4vLyAgICAgIH1cclxuLy8gICAgfVxyXG4vLyAgICAmLmV4cGFuZGVkIHtcclxuLy8gICAgICBoZWlnaHQ6IDEwMCU7XHJcbi8vICAgIH1cclxuLy8gICAgdWwge1xyXG4vLyAgICAgIGxpIHtcclxuLy8gICAgICAgICYuaGFzLWJ1dHRvbiB7XHJcbi8vICAgICAgICAgIHBhZGRpbmc6IDVweCAxNXB4O1xyXG4vLyAgICAgICAgfVxyXG4vLyAgICAgICAgLmJ1dHRvbi5zbWFsbCB7XHJcbi8vICAgICAgICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xyXG4vLyAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbi8vICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4vLyAgICAgICAgfVxyXG4vLyAgICAgIH1cclxuLy8gICAgICA+IGxpLmhhcy1idXR0b24gYS5idXR0b24ge1xyXG4vLyAgICAgICAgbWFyZ2luOiAwO1xyXG4vLyAgICAgIH1cclxuLy8gICAgfVxyXG4vLyAgfVxyXG4gIC8qIC50b3AtYmFyIHVsID4gbGkudG9nZ2xlLXRvcGJhciBhIHsgY29udGVudDogXCJcIjsgZGlzcGxheTogYmxvY2s7IHdpZHRoOiAwOyBoZWlnaHQ6IDA7IGJvcmRlcjogc29saWQgOHB4OyBib3JkZXItY29sb3I6IHdoaXRlIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50OyBwYWRkaW5nOiAwOyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogNTAlOyByaWdodDogMjIuNXB4OyBtYXJnaW4tdG9wOiAtNHB4OyB9ICovXHJcbiAgLyogLnRvcC1iYXIuZXhwYW5kZWQgdWwgbGkudG9nZ2xlLXRvcGJhciBhIHsgY29udGVudDogXCJcIjsgZGlzcGxheTogYmxvY2s7IHdpZHRoOiAwOyBoZWlnaHQ6IDA7IGJvcmRlcjogc29saWQgOHB4OyBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICNmZmZmZmYgdHJhbnNwYXJlbnQ7IHRvcDogYXV0bzsgYm90dG9tOiA1MCU7IG1hcmdpbi1ib3R0b206IC00cHg7IH0gKi9cclxuLy99IiwiXHJcblxyXG4vLyBUaGlzIGdpdmVzIHRoZSBjb2xvdXIgY3VzdG9taXphdGlvbiBvZiB0aGUgc2l0ZVxyXG5cclxuLyogIEJvZHkgYmFja2dyb3VuZCBjb2xvciBhbmQgcGF0dGVybiAgKi9cclxuXHJcbmJvZHkge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNGNkY2RjY7XHJcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcclxuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiB0b3AgY2VudGVyO1xyXG4gIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQ7XHJcbiAgYmFja2dyb3VuZC1hdHRhY2htZW50OiBzY3JvbGw7XHJcbn1cclxuXHJcbi8qICBIZWFkaW5ncyBjb2xvciAgKi9cclxuXHJcbmgxLCBoMiwgaDMsICBoNCwgaDUsIGg2LCAjY29udGVudCAuYm94LWhlYWRpbmcsIGJvZHksIC5jYXJ0LWluZm8gdGhlYWQgdGQsIC5jaGVja291dC1wcm9kdWN0IHRoZWFkIHRkLCB0YWJsZSB0Ym9keSB0ciB0ZCwgLndpc2hsaXN0LWluZm8gdGhlYWQgdGQge1xyXG4gIGNvbG9yOiAjNDY0NjQ2O1xyXG59XHJcblxyXG4vKiAgQm9keSB0ZXh0IGNvbG9yICAqL1xyXG5cclxuLnNpdGVtYXAtaW5mbyB1bCBsaSB1bCBsaSB7XHJcbiAgY29sb3I6ICM0NjQ2NDY7XHJcbiAgYSB7XHJcbiAgICBjb2xvcjogIzQ2NDY0NjtcclxuICB9XHJcbn1cclxuXHJcbmJvZHksIC5jb250ZW50LCAjY29udGVudCBzZWxlY3QsICNjb250ZW50IHRleHRhcmVhLCAjY29udGVudCBsYWJlbCB7XHJcbiAgICBcclxuICAgIGNvbG9yOiAjNDY0NjQ2O1xyXG59XHJcblxyXG5cclxuXHJcbmlucHV0IHtcclxuICAmW3R5cGU9XCJ0ZXh0XCJdLCAmW3R5cGU9XCJwYXNzd29yZFwiXSwgJlt0eXBlPVwiZGF0ZVwiXSwgJlt0eXBlPVwiZGF0ZXRpbWVcIl0sICZbdHlwZT1cImVtYWlsXCJdLCAmW3R5cGU9XCJudW1iZXJcIl0sICZbdHlwZT1cInNlYXJjaFwiXSwgJlt0eXBlPVwidGVsXCJdLCAmW3R5cGU9XCJ0aW1lXCJdLCAmW3R5cGU9XCJ1cmxcIl0sICB7XHJcbiAgIFxyXG4gICAgICBjb2xvcjogIzQ2NDY0NjtcclxuICB9XHJcbiAgIFxyXG59XHJcblxyXG5cclxuXHJcbi5wcm9kdWN0LWdyaWQgLm5hbWUgYSwgI2NvbnRlbnQgLmJveC1wcm9kdWN0IC5uYW1lIGEsIC5wcm9kdWN0LWxpc3QgLm5hbWUgYSwgLnByb2R1Y3QtaW5mbyAud2lzaGxpc3QtY29tcGFyZS1mcmllbmQgYSwgLnByb2R1Y3QtYm90dG9tLXJlbGF0ZWQgLm5hbWUgYSwgLnByb2R1Y3QtYm94LXNsaWRlciAubmFtZSBhLCAucHJvZHVjdC1yaWdodC1zbS1pbmZvIHNwYW4ucF90aXRsZSBhLCAuYm94LWNhdGVnb3J5LWhvbWUgLnN1YmNhdCBhLCAucHJvZHVjdC1jb21wYXJlIGEsIC5wcm9kdWN0LWluZm8gLnJldmlldyA+IGRpdiBhIHtcclxuICBjb2xvcjogIzQ2NDY0NjtcclxufVxyXG5cclxuLm1pbmktY2FydC1pbmZvIHtcclxuICAubmFtZSBzbWFsbCwgdGQge1xyXG4gICAgY29sb3I6ICM0NjQ2NDY7XHJcbiAgfVxyXG59XHJcblxyXG4ubWluaS1jYXJ0LXRvdGFsIHRkIHtcclxuICBjb2xvcjogIzQ2NDY0NjtcclxufVxyXG5cclxuLyogIExpZ2h0IHRleHQgY29sb3IgICovXHJcblxyXG4uaGVhZGluZyBoNSB7XHJcbiAgY29sb3I6ICNCNkI2QjY7XHJcbn1cclxuXHJcbi5wcm9kdWN0X2JveF9icmFuZCB7XHJcbiAgc3BhbiwgYSB7XHJcbiAgICBjb2xvcjogI0I2QjZCNjtcclxuICB9XHJcbn1cclxuXHJcbi5wcm9kdWN0LWRlc2NyaXB0aW9uLWwge1xyXG4gIGNvbG9yOiAjQjZCNkI2O1xyXG4gIHNwYW4sIGEge1xyXG4gICAgY29sb3I6ICNCNkI2QjY7XHJcbiAgfVxyXG59XHJcblxyXG51bC5icmVhZGNydW1icyBsaTpiZWZvcmUge1xyXG4gIGNvbG9yOiAjQjZCNkI2O1xyXG59XHJcblxyXG4ucHJvZHVjdC1pbmZvIHtcclxuICAuY2FydCAubWluaW11bSwgLnlvdS1zYXZlIHtcclxuICAgIGNvbG9yOiAjQjZCNkI2O1xyXG4gIH1cclxufVxyXG5cclxuLnByb2R1Y3QtcmlnaHQtc20taW5mbyBzcGFuLnBfc3VidGl0bGUge1xyXG4gIGNvbG9yOiAjQjZCNkI2O1xyXG59XHJcblxyXG4vKiAgTGlua3MgY29sb3IgICovXHJcblxyXG5hLCAuYm94IHVsIGxpLCAucHJvZHVjdC1pbmZvIC5zYXZlLXBlcmNlbnQsICNwcm9kdWN0LXRvcCAucHJvZHVjdC1kZXNjcmlwdGlvbiAucHJvZHVjdC1kZXNjcmlwdGlvbi1sIHNwYW4uc3RvY2sge1xyXG4gIGNvbG9yOiAjOTJCNjMxO1xyXG59XHJcblxyXG4jbWVudV9jb250YWN0cyAubWM6aG92ZXIgc3Bhbi5tbV9pY29uIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTJCNjMxO1xyXG59XHJcblxyXG4ucHJvZHVjdC1pbmZvIC5jYXJ0IHtcclxuICAuZGVjOmhvdmVyLCAuaW5jOmhvdmVyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICM5MkI2MzE7XHJcbiAgfVxyXG59XHJcblxyXG4uY29udGFjdC1pbmZvIC5tYzpob3ZlciBzcGFuLm1tX2ljb24sICNmb290ZXJfYSAubWM6aG92ZXIgc3Bhbi5tbV9pY29uLCAuZXMtbmF2IHNwYW46aG92ZXIge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICM5MkI2MzE7XHJcbn1cclxuXHJcbi5wcm9kdWN0LXJlbGF0ZWQgLmJ4LXdyYXBwZXIgZGl2IHtcclxuICAmLmJ4LW5leHQ6aG92ZXIsICYuYngtcHJldjpob3ZlciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTJCNjMxO1xyXG4gIH1cclxufVxyXG5cclxuI3RvVG9wSG92ZXIsIC5wcm9kdWN0LXJpZ2h0LXNtLWluZm8gc3Bhbi5wX2ljb24ge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICM5MkI2MzE7XHJcbn1cclxuXHJcbiNsaXZlc2VhcmNoX3NlYXJjaF9yZXN1bHRzIHtcclxuICBsaTpob3ZlciwgLmhpZ2hsaWdodGVkIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICM5MkI2MzE7XHJcbiAgfVxyXG59XHJcblxyXG4jc3dpcGVib3gtYWN0aW9uLCAudG9wLWJhciB1bCA+IGxpIGE6aG92ZXIge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICM5MkI2MzE7XHJcbn1cclxuXHJcbi8qICBMaW5rcyBob3ZlciBjb2xvciAgKi9cclxuXHJcbmE6aG92ZXIsIC5wcm9kdWN0LWluZm8gLnJldmlldyA+IGRpdiBhOmhvdmVyIHtcclxuICBjb2xvcjogIzc5M0U5NztcclxufVxyXG5cclxuLnNpdGVtYXAtaW5mbyB1bCBsaSB1bCBsaSB7XHJcbiAgJjpob3ZlciwgYTpob3ZlciB7XHJcbiAgICBjb2xvcjogIzc5M0U5NztcclxuICB9XHJcbn1cclxuXHJcbi5odGFicyBhOmhvdmVyLCAjaGVhZGVyICNjYXJ0OmhvdmVyIC5oZWFkaW5nIGEgZGl2I2NhcnQtdG90YWwsIC5wcm9kdWN0LWdyaWQgLm5hbWUgYTpob3ZlciwgI2NvbnRlbnQgLmJveC1wcm9kdWN0IC5uYW1lIGE6aG92ZXIsIC5wcm9kdWN0LWxpc3QgLm5hbWUgYTpob3ZlciwgLnByb2R1Y3QtaW5mbyAud2lzaGxpc3QtY29tcGFyZS1mcmllbmQgYTpob3ZlciwgLnByb2R1Y3QtYm90dG9tLXJlbGF0ZWQgLm5hbWUgYTpob3ZlciwgLnByb2R1Y3QtcmlnaHQtc20taW5mbyBzcGFuLnBfdGl0bGUgYTpob3ZlciwgLmJveC1jYXRlZ29yeS1ob21lIC5zdWJjYXQgYTpob3ZlciB7XHJcbiAgY29sb3I6ICM3OTNFOTc7XHJcbn1cclxuXHJcbi5wcm9kdWN0LXJpZ2h0LXNtLWluZm8gLnByb2R1Y3QtcmlnaHQtc20taW5mby1jb250ZW50OmhvdmVyIHNwYW4ucF9pY29uLCAuY2FtZXJhX3dyYXAgLmNhbWVyYV9wYWcgLmNhbWVyYV9wYWdfdWwgbGk6aG92ZXIgPiBzcGFuLCAuZmxleC1jb250cm9sLXBhZ2luZyBsaSBhOmhvdmVyLCAjc3dpcGVib3gtYWN0aW9uOmhvdmVyIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzkzRTk3O1xyXG59XHJcblxyXG4vKiAgR2VuZXJhbCBpY29ucyBzdHlsZSAgKi9cclxuXHJcbi5wcm9kdWN0LWxpc3QgLndpc2hsaXN0LCAucHJvZHVjdC1ncmlkIC53aXNobGlzdCB7XHJcbiAgYmFja2dyb3VuZDogdXJsKFwiY2F0YWxvZy92aWV3L3RoZW1lL294eS9pbWFnZS9veHktd2lzaGxpc3QtMS5wbmdcIikgbm8tcmVwZWF0IHNjcm9sbCBjZW50ZXIgdHJhbnNwYXJlbnQ7XHJcbn1cclxuXHJcbi5wcm9kdWN0LWxpc3QgLmNvbXBhcmUsIC5wcm9kdWN0LWdyaWQgLmNvbXBhcmUge1xyXG4gIGJhY2tncm91bmQ6IHVybChcImNhdGFsb2cvdmlldy90aGVtZS9veHkvaW1hZ2Uvb3h5LWNvbXBhcmUtMS5wbmdcIikgbm8tcmVwZWF0IHNjcm9sbCBjZW50ZXIgdHJhbnNwYXJlbnQ7XHJcbn1cclxuXHJcbnNwYW4ge1xyXG4gICYud2lzaGxpc3Qge1xyXG4gICAgYmFja2dyb3VuZDogdXJsKFwiY2F0YWxvZy92aWV3L3RoZW1lL294eS9pbWFnZS9veHktd2lzaGxpc3QtMS5wbmdcIikgbm8tcmVwZWF0IHNjcm9sbCBsZWZ0IGNlbnRlciB0cmFuc3BhcmVudDtcclxuICB9XHJcbiAgJi5jb21wYXJlIHtcclxuICAgIGJhY2tncm91bmQ6IHVybChcImNhdGFsb2cvdmlldy90aGVtZS9veHkvaW1hZ2Uvb3h5LWNvbXBhcmUtMS5wbmdcIikgbm8tcmVwZWF0IHNjcm9sbCBsZWZ0IGNlbnRlciB0cmFuc3BhcmVudDtcclxuICB9XHJcbiAgJi5mcmllbmQge1xyXG4gICAgYmFja2dyb3VuZDogdXJsKFwiY2F0YWxvZy92aWV3L3RoZW1lL294eS9pbWFnZS9veHktc2VuZC0xLnBuZ1wiKSBuby1yZXBlYXQgc2Nyb2xsIGxlZnQgY2VudGVyIHRyYW5zcGFyZW50O1xyXG4gIH1cclxufVxyXG5cclxuXHJcblxyXG5cclxuLyoqKioqKiBBZGRlZCBOZXdseSAqKioqKioqKiovXHJcblxyXG4vLyBUaGlzIGlzIHJlcXVpcmVkIHRvIGtlZXAgdGhlIGxlZnQgY29sdW1uIGFsbCB0aGUgcGFnZXMgaW5zdGVhZCBvZiBqdXN0IGZvciB0aGUgaG9tZSBwYWdlLiBcclxuXHJcblxyXG5cclxuXHJcblxyXG4vKioqKioqKioqKioqIEVuZCBvZiBuZXcgc3R1ZmYgKioqKioqKioqKiovXHJcblxyXG5cclxuLyogIE1haW4gQ29sdW1uICAqL1xyXG5cclxuLndyYXBwZXIgeyAgICAgICAgXHJcbiAgICBcclxuICAgIGFsaWduLWNvbnRlbnQ6Y2VudGVyO1xyXG5cdGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7XHJcblx0YmFja2dyb3VuZC1pbWFnZTogbm9uZTtcclxuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiB0b3AgY2VudGVyO1xyXG5cdGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQ7XHJcblx0YmFja2dyb3VuZC1hdHRhY2htZW50OiBzY3JvbGw7XHJcblx0Ym94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwwLDAsMC4yKTsgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLDAsMCwwLjIpOyAtbW96LWJveC1zaGFkb3c6MCAxcHggM3B4IHJnYmEoMCwwLDAsMC4yKTtcclxuICAgIFxyXG59XHJcblxyXG5cclxuLyogIENvbnRlbnQgQ29sdW1uICAqL1xyXG5cclxuLnByb2R1Y3QtZmlsdGVyLCAjY29udGVudCAuY29udGVudCwgLmZvcm0taW5mbywgLmNhcnQtaW5mbyB0aGVhZCB0ZCwgLmNoZWNrb3V0LWhlYWRpbmcsIC5jaGVja291dC1wcm9kdWN0IHRoZWFkIHRkLCB0YWJsZS5saXN0IHRoZWFkIHRkIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjZGNkY2O1xyXG59XHJcblxyXG4uY29tcGFyZS1pbmZvIHRoZWFkIHtcclxuICB0ZCwgdHIgdGQ6Zmlyc3QtY2hpbGQge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0Y2RjZGNjtcclxuICB9XHJcbn1cclxuXHJcbi5hdHRyaWJ1dGUgdGhlYWQge1xyXG4gIHRkLCB0ciB0ZDpmaXJzdC1jaGlsZCB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjZGNkY2O1xyXG4gIH1cclxufVxyXG5cclxuIC5tYW51ZmFjdHVyZXItaGVhZGluZywgLndpc2hsaXN0LWluZm8gdGhlYWQgdGQsICNoZWFkZXIgI2NhcnQgLmNvbnRlbnQsIC5yZXZlYWwtbW9kYWwsIC5jdXN0b21fYm94IHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjZGNkY2O1xyXG59XHJcblxyXG4ucGFnaW5hdGlvbiB7XHJcbiAvLyBib3JkZXItdG9wOiAxcHggc29saWQgICNFQUVBRUE7XHJcbiAgICBtYXJnaW4tdG9wOiAwO1xyXG4gICAgcGFkZGluZy10b3A6MDtcclxuICAgIG1hcmdpbi1ib3R0b206MDtcclxufVxyXG5cclxuLy8ucHJvZHVjdC1pbmZvIHtcclxuLy8gIC5wcmljZSwgLnJldmlldywgLm9wdGlvbnMsIC5jYXJ0IHtcclxuLy8gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICAjRUFFQUVBO1xyXG4vLyAgfVxyXG4vL31cclxuXHJcbi5wcm9kdWN0LWluZm8ge1xyXG4gIC5wcmljZSwgIC5jYXJ0IHtcclxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAgI0VBRUFFQTtcclxuICB9XHJcbn1cclxuXHJcbi5wcm9kdWN0LXJpZ2h0LXNtLWxvZ28sIC5wcm9kdWN0LXJpZ2h0LXNtLWN1c3RvbSwgLnByb2R1Y3QtcmlnaHQtc20taW5mbywgLnByb2R1Y3QtcmlnaHQtc20tcmVsYXRlZCwgLnByb2R1Y3Qtc2hhcmUsIC5wcm9kdWN0LXJpZ2h0LXNtLXRhZ3Mge1xyXG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAgI0VBRUFFQTtcclxufVxyXG5cclxuI2NvbnRlbnQge1xyXG4gIGgxLCAuYm94LWhlYWRpbmcge1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICAjRUFFQUVBO1xyXG4gIH1cclxufVxyXG5cclxuLnByb2R1Y3QtYm90dG9tLXJlbGF0ZWQgaDIge1xyXG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAgI0VBRUFFQTtcclxufVxyXG5cclxuLnByb2R1Y3QtY29tcGFyZSB7XHJcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAgI0VBRUFFQTtcclxufVxyXG5cclxuLnByb2R1Y3QtaW5mbyB7XHJcbiAgLmltYWdlLCAuaW1hZ2UtYWRkaXRpb25hbCBpbWcsIC5pbWFnZS1hZGRpdGlvbmFsLWxlZnQgaW1nIHtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkICNFQUVBRUE7XHJcbiAgfVxyXG59XHJcblxyXG4uY29udGFjdC1tYXAsIC5tYW51ZmFjdHVyZXItbGlzdCwgLmNoZWNrb3V0LWhlYWRpbmcsIC5yZXZpZXctbGlzdCB7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgI0VBRUFFQTtcclxufVxyXG5cclxuLnByb2R1Y3QtaW5mbyB7XHJcbiAgLm9wdGlvbi1pbWFnZSBpbWcge1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgI0VBRUFFQTtcclxuICB9XHJcbiAgLmltYWdlLWFkZGl0aW9uYWwgaW1nOmhvdmVyLCAuaW1hZ2UtYWRkaXRpb25hbC1sZWZ0IGltZzpob3ZlciB7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjOTJCNjMxO1xyXG4gIH1cclxufVxyXG5cclxuLmNhcnQtaW5mbyB0YWJsZSwgLmNhcnQtdG90YWwgdGFibGUsIC5jaGVja291dC1wcm9kdWN0IHRhYmxlLCAud2lzaGxpc3QtaW5mbyB0YWJsZSwgLm9yZGVyLWxpc3QgLm9yZGVyLWNvbnRlbnQsIHRhYmxlLmxpc3QsIC5hdHRyaWJ1dGUsIC5jb21wYXJlLWluZm8ge1xyXG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjRUFFQUVBO1xyXG59XHJcblxyXG4uY2FydC1pbmZvIHtcclxuICB0aGVhZCB0ZCwgdGJvZHkgdGQge1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNFQUVBRUE7XHJcbiAgfVxyXG59XHJcblxyXG4uY2FydC10b3RhbCB0YWJsZSB7XHJcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNFQUVBRUE7XHJcbn1cclxuXHJcbi5jaGVja291dC1wcm9kdWN0IHtcclxuICB0aGVhZCB0ZCwgdGJvZHkgdGQsIHRmb290IHRkIHtcclxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjRUFFQUVBO1xyXG4gIH1cclxufVxyXG5cclxuLndpc2hsaXN0LWluZm8ge1xyXG4gIHRoZWFkIHRkLCB0Ym9keSB0ZCB7XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0VBRUFFQTtcclxuICB9XHJcbn1cclxuXHJcbi5vcmRlci1saXN0IC5vcmRlci1jb250ZW50LCB0YWJsZS5saXN0IHRkLCAuYm94LWNhdGVnb3J5LWhvbWUgLnN1YmNhdCBsaSwgLmF0dHJpYnV0ZSB0ZCwgLmNvbXBhcmUtaW5mbyB0ZCwgLm1pbmktY2FydC1pbmZvIHRkLCAubWluaS1jYXJ0LXRvdGFsIHtcclxuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0VBRUFFQTtcclxufVxyXG5cclxuLmNhcnQtaW5mbyB0YWJsZSwgLmNoZWNrb3V0LXByb2R1Y3QgdGFibGUsIC53aXNobGlzdC1pbmZvIHRhYmxlLCB0YWJsZS5saXN0LCAuYXR0cmlidXRlLCAuY29tcGFyZS1pbmZvIHtcclxuICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNFQUVBRUE7XHJcbn1cclxuXHJcbi5jYXJ0LWluZm8gdGFibGUsIC5jaGVja291dC1wcm9kdWN0IHRhYmxlIHtcclxuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjRUFFQUVBO1xyXG59XHJcblxyXG50YWJsZSB7XHJcbiAgdGhlYWQgdHIgdGg6bGFzdC1jaGlsZCwgdGZvb3QgdHIgdGQ6bGFzdC1jaGlsZCB7XHJcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjRUFFQUVBO1xyXG4gIH1cclxufVxyXG5cclxuLndpc2hsaXN0LWluZm8gdGFibGUsIHRhYmxlLmxpc3QgdGQsIC5hdHRyaWJ1dGUgdGQsIC5jb21wYXJlLWluZm8gdGQge1xyXG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNFQUVBRUE7XHJcbn1cclxuXHJcbi8qICBMZWZ0IENvbHVtbiBIZWFkaW5nICAqL1xyXG4vKiAgTGVmdCBDb2x1bW4gQm94ICAqL1xyXG5cclxuI2NvbHVtbi1sZWZ0IHtcclxuICAgIFxyXG4gICBcclxuICAuYm94IC5ib3gtaGVhZGluZywgLnByb2R1Y3QtYm94LXNsaWRlciAuYm94LWhlYWRpbmcge1xyXG4gICAgbWF4LWhlaWdodDogNDVweDsgIFxyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzkyQjYzMTtcclxuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XHJcbiAgfVxyXG4gIC5ib3ggLmJveC1oZWFkaW5nLCAucHJvZHVjdC1ib3gtc2xpZGVyIC5ib3gtaGVhZGluZyB7XHJcbiAgICBjb2xvcjogI0ZGRkZGRjtcclxuICB9XHJcbiAgLmJveCAuYm94LWhlYWRpbmcsIC5wcm9kdWN0LWJveC1zbGlkZXIgLmJveC1oZWFkaW5nIHtcclxuICAgIHBhZGRpbmc6IDEwcHggMTVweDtcclxuICB9XHJcbiAgLmJveCAuYm94LWNvbnRlbnQsIC5wcm9kdWN0LWJveC1zbGlkZXIgLmJveC1jb250ZW50IHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7IC8vI0Y2RjZGNjsgLy8gZWRpdGVkXHJcbiAgICBwYWRkaW5nOiAyMHB4IDE1cHg7XHJcbiAgfVxyXG4gIC5ib3gtcHJvZHVjdCB7XHJcbiAgICBjb2xvcjogIzQ2NDY0NjtcclxuICAgIGEge1xyXG4gICAgICBjb2xvcjogIzQ2NDY0NjtcclxuICAgIH1cclxuICB9XHJcbiAgLmJveCAuYm94LWNvbnRlbnQgdWwgbGkgYSwgLnByb2R1Y3QtYm94LXNsaWRlciAubmFtZSBhIHtcclxuICAgIGNvbG9yOiAjNDY0NjQ2O1xyXG4gIH1cclxuICAuYm94LXByb2R1Y3QgYTpob3ZlciwgLmJveCAuYm94LWNvbnRlbnQgdWwgbGkgYTpob3ZlciwgLnByb2R1Y3QtYm94LXNsaWRlciAubmFtZSBhOmhvdmVyIHtcclxuICAgIGNvbG9yOiAjNzkzRTk3O1xyXG4gIH1cclxuICAuYm94LXByb2R1Y3QgPiBkaXYgKyBkaXYge1xyXG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNGNkY2RjY7XHJcbiAgfVxyXG4gXHJcbiAgICAgXHJcbn1cclxuXHJcbi8qICBSaWdodCBDb2x1bW4gSGVhZGluZyAgKi9cclxuLyogIFJpZ2h0IENvbHVtbiBCb3ggICovXHJcblxyXG4jY29sdW1uLXJpZ2h0IHsgIFxyXG4gICAgICAgXHJcbiAgLmJveCAuYm94LWhlYWRpbmcsIC5wcm9kdWN0LWJveC1zbGlkZXIgLmJveC1oZWFkaW5nIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICM5MkI2MzE7XHJcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xyXG4gIH1cclxuICAuYm94IC5ib3gtaGVhZGluZywgLnByb2R1Y3QtYm94LXNsaWRlciAuYm94LWhlYWRpbmcge1xyXG4gICAgY29sb3I6ICNGRkZGRkY7XHJcbiAgfVxyXG4gIC5ib3ggLmJveC1oZWFkaW5nLCAucHJvZHVjdC1ib3gtc2xpZGVyIC5ib3gtaGVhZGluZyB7XHJcbiAgICBwYWRkaW5nOiAxMnB4IDE1cHg7XHJcbiAgfVxyXG4gIC5ib3ggLmJveC1jb250ZW50LCAucHJvZHVjdC1ib3gtc2xpZGVyIC5ib3gtY29udGVudCB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGOy8vICNGNkY2RjY7IFxyXG4gICAgcGFkZGluZzogMjBweCAxNXB4O1xyXG4gIH1cclxuICAuYm94LXByb2R1Y3Qge1xyXG4gICAgY29sb3I6ICM0NjQ2NDY7XHJcbiAgICBhIHtcclxuICAgICAgY29sb3I6ICM0NjQ2NDY7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC5ib3ggLmJveC1jb250ZW50IHVsIGxpIGEsIC5wcm9kdWN0LWJveC1zbGlkZXIgLm5hbWUgYSB7XHJcbiAgICBjb2xvcjogIzQ2NDY0NjtcclxuICB9XHJcbiAgLmJveC1wcm9kdWN0IGE6aG92ZXIsIC5ib3ggLmJveC1jb250ZW50IHVsIGxpIGE6aG92ZXIsIC5wcm9kdWN0LWJveC1zbGlkZXIgLm5hbWUgYTpob3ZlciB7XHJcbiAgICBjb2xvcjogIzc5M0U5NztcclxuICB9XHJcbiAgLmJveC1wcm9kdWN0ID4gZGl2ICsgZGl2IHtcclxuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjRjZGNkY2O1xyXG4gIH1cclxufVxyXG5cclxuXHJcblxyXG4vKiAgQ2F0ZWdvcnkgQm94IEhlYWRpbmcgICovXHJcblxyXG4uYm94LWNhdGVnb3J5IHtcclxuICAuYm94LWhlYWRpbmctY2F0ZWdvcnkge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzc5M0U5NztcclxuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XHJcbiAgICBjb2xvcjogI0ZGRkZGRjtcclxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAgIzg3NDVBODtcclxuICAgIHBhZGRpbmc6IDEycHggMTVweDtcclxuICB9XHJcbiAgLmJveC1jb250ZW50LWNhdGVnb3J5IHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICM3OTNFOTc7XHJcbiAgICB1bCA+IGxpIHtcclxuICAgICAgPiB7XHJcbiAgICAgICAgYSB7XHJcbiAgICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAxOHB4O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcGFkZGluZzogMTBweCAyNXB4IDEwcHggMTVweDtcclxuICAgICAgICB9XHJcbiAgICAgICAgdWwgPiBsaSA+IGEge1xyXG4gICAgICAgICAgcGFkZGluZzogMTBweCAyNXB4IDEwcHggMzBweDtcclxuICAgICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDMzcHg7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgICsgbGksIHVsIHtcclxuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgIzg3NDVBODtcclxuICAgICAgfVxyXG4gICAgICA+IGEge1xyXG4gICAgICAgIGNvbG9yOiAjRjRFNkZGO1xyXG4gICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzg3NDVBODtcclxuICAgICAgICAgIGNvbG9yOiAjRjRFNkZGO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLyogIENhdGVnb3J5IEJveCBDb250ZW50ICAqL1xyXG5cclxuLyogIEZpbHRlciBCb3ggSGVhZGluZyAgKi9cclxuXHJcbi5ib3gtZmlsdGVyIHtcclxuICAuYm94LWhlYWRpbmcge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzQ2NDY0NjtcclxuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XHJcbiAgICBjb2xvcjogI0ZGRkZGRjtcclxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAgIzUyNTI1MjtcclxuICAgIHBhZGRpbmc6IDEycHggMTVweDtcclxuICB9XHJcbiAgLmJveC1jb250ZW50IHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICM0NjQ2NDY7XHJcbiAgICBwYWRkaW5nOiAyMHB4IDE1cHg7XHJcbiAgICBzcGFuIHtcclxuICAgICAgY29sb3I6ICNFOEU4RTg7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGxhYmVsIHtcclxuICAgIGNvbG9yOiAjRThFOEU4O1xyXG4gICAgJjpob3ZlciB7XHJcbiAgICAgIGNvbG9yOiAjNzkzRTk3O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLyogIEZpbHRlciBCb3ggQ29udGVudCAgKi9cclxuXHJcbi8qICBQcmljZXMgKi9cclxuXHJcbi5wcmljZSwgLnRvdGFsLCAucHJvZHVjdC1pbmZvIC5wcmljZSAuZGlzY291bnQge1xyXG4gIGNvbG9yOiAjOTJCNjMxO1xyXG59XHJcblxyXG4ucHJpY2Utb2xkLCAud2lzaGxpc3QtaW5mbyB0Ym9keSAucHJpY2UgcyB7XHJcbiAgY29sb3I6ICNCNkI2QjY7XHJcbn1cclxuXHJcbi5wcmljZS1uZXcsIC5wcmljZS1uZXcyLCAuY2FydC10b3RhbCAudG90YWwtciB7XHJcbiAgLy9jb2xvcjogIzc5M0U5NztcclxuICBjb2xvcjpyZ2IoNTEsNTEsNTEpOyAgIFxyXG59XHJcblxyXG4ucHJpY2UtdGF4LCAucHJvZHVjdC1pbmZvIC5wcmljZSAucmV3YXJkIHtcclxuICBjb2xvcjogI0I2QjZCNjtcclxufVxyXG5cclxuLyogIEJ1dHRvbnMgKi9cclxuXHJcbmEuYnV0dG9uLCBpbnB1dC5idXR0b24sIC5laS10aXRsZSBoNCBhLmJ1dHRvbiB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzc5M0U5NztcclxuICBjb2xvcjogI0ZGRkZGRjtcclxufVxyXG5cclxuYS5idXR0b246aG92ZXIsIGlucHV0LmJ1dHRvbjpob3ZlciwgLmVpLXRpdGxlIGg0IGEuYnV0dG9uOmhvdmVyIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTJCNjMxO1xyXG4gIGNvbG9yOiAjRkZGRkZGO1xyXG59XHJcblxyXG5hLmJ1dHRvbi1leGNsdXNpdmUsIGlucHV0LmJ1dHRvbi1leGNsdXNpdmUge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICM3OTNFOTc7XHJcbiAgY29sb3I6ICNGRkZGRkY7XHJcbn1cclxuXHJcbmEuYnV0dG9uLWV4Y2x1c2l2ZTpob3ZlciwgaW5wdXQuYnV0dG9uLWV4Y2x1c2l2ZTpob3ZlciAge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICM5MkI2MzE7XHJcbiAgY29sb3I6ICNGRkZGRkY7XHJcbn1cclxuXHJcbi5wcm9kdWN0LWdyaWQgLmNhcnQgaW5wdXQuYnV0dG9uLCAucHJvZHVjdC1saXN0IC5jYXJ0IGlucHV0LmJ1dHRvbiwgI2NvbnRlbnQgLmJveC1wcm9kdWN0IC5jYXJ0IGlucHV0LmJ1dHRvbiwgLnByb2R1Y3QtcmlnaHQtc20tdGFncyBkaXYgYSwgLnByb2R1Y3QtYm94LXNsaWRlciAuY2FydCBpbnB1dC5idXR0b24sIC5wcm9kdWN0LWJvdHRvbS1yZWxhdGVkIC5jYXJ0IGlucHV0LmJ1dHRvbiwgI2hlYWRlciAjY2FydCAuY2hlY2tvdXQgLm1pbmktY2FydC1idXR0b24ge1xyXG4gIC8vYmFja2dyb3VuZC1jb2xvcjogI0VGRUZFRjtcclxuICAvL2NvbG9yOiAjNDY0NjQ2O1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICM3OTNFOTc7XHJcbiAgY29sb3I6ICNGRkZGRkY7ICAgIFxyXG59XHJcblxyXG4ucHJvZHVjdC1ncmlkIC5jYXJ0IGlucHV0LmJ1dHRvbjpob3ZlciwgLnByb2R1Y3QtbGlzdCAuY2FydCBpbnB1dC5idXR0b246aG92ZXIsICNjb250ZW50IC5ib3gtcHJvZHVjdCAuY2FydCBpbnB1dC5idXR0b246aG92ZXIsIC5wcm9kdWN0LXJpZ2h0LXNtLXRhZ3MgZGl2IGE6aG92ZXIsIC5wcm9kdWN0LWJveC1zbGlkZXIgLmNhcnQgaW5wdXQuYnV0dG9uOmhvdmVyLCAucHJvZHVjdC1ib3R0b20tcmVsYXRlZCAuY2FydCBpbnB1dC5idXR0b246aG92ZXIsICNoZWFkZXIgI2NhcnQgLmNoZWNrb3V0IC5taW5pLWNhcnQtYnV0dG9uOmhvdmVyIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTJCNjMxO1xyXG4gIGNvbG9yOiAjRkZGRkZGO1xyXG59XHJcblxyXG4ucHJldi1uZXh0IGEge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNFRUVFRUU7XHJcbn1cclxuXHJcbi5wcm9kdWN0LWJvdHRvbS1yZWxhdGVkIC5mbGV4LWRpcmVjdGlvbi1uYXYge1xyXG4gIGEsIC5mbGV4LWRpc2FibGVkOmhvdmVyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNFRUVFRUU7XHJcbiAgfVxyXG59XHJcblxyXG4ucHJvZHVjdC1yaWdodC1zbS1yZWxhdGVkIC5mbGV4LWRpcmVjdGlvbi1uYXYge1xyXG4gIGEsIC5mbGV4LWRpc2FibGVkOmhvdmVyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNFRUVFRUU7XHJcbiAgfVxyXG59XHJcblxyXG4ucHJvZHVjdC1ib3gtc2xpZGVyIC5mbGV4LWRpcmVjdGlvbi1uYXYge1xyXG4gIGEsIC5mbGV4LWRpc2FibGVkOmhvdmVyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNFRUVFRUU7XHJcbiAgfVxyXG59XHJcblxyXG4ucGFnaW5hdGlvbiAubGlua3MgYSwgLmZsZXgtZGlyZWN0aW9uLW5hdiBhLCAuZmxleC1jb250cm9sLXBhZ2luZyBsaSBhLCAuY2FtZXJhX3ByZXZUaHVtYnMsIC5jYW1lcmFfbmV4dFRodW1icywgLmNhbWVyYV9wcmV2LCAuY2FtZXJhX25leHQsIC5jYW1lcmFfY29tbWFuZHMsIC5jYW1lcmFfdGh1bWJzX2NvbnQsIC5jYW1lcmFfd3JhcCAuY2FtZXJhX3BhZyAuY2FtZXJhX3BhZ191bCBsaSwgLnNsaWRlc2hvdyAubml2by1kaXJlY3Rpb25OYXYgYSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI0VFRUVFRTtcclxufVxyXG5cclxuLnByZXYtbmV4dCBhOmhvdmVyLCAucHJvZHVjdC1yaWdodC1zbS1yZWxhdGVkIC5mbGV4LWRpcmVjdGlvbi1uYXYgYTpob3ZlciwgLnByb2R1Y3QtYm90dG9tLXJlbGF0ZWQgLmZsZXgtZGlyZWN0aW9uLW5hdiBhOmhvdmVyLCAucHJvZHVjdC1ib3gtc2xpZGVyIC5mbGV4LWRpcmVjdGlvbi1uYXYgYTpob3ZlciB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzkyQjYzMTtcclxufVxyXG5cclxuLnBhZ2luYXRpb24gLmxpbmtzIHtcclxuICBiLCBhOmhvdmVyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICM5MkI2MzE7XHJcbiAgfVxyXG59XHJcblxyXG4uZmxleHNsaWRlcjpob3ZlciB7XHJcbiAgLmZsZXgtbmV4dDpob3ZlciwgLmZsZXgtcHJldjpob3ZlciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTJCNjMxO1xyXG4gIH1cclxufVxyXG5cclxuLmNhbWVyYV9wcmV2VGh1bWJzOmhvdmVyLCAuY2FtZXJhX25leHRUaHVtYnM6aG92ZXIsIC5jYW1lcmFfcHJldjpob3ZlciwgLmNhbWVyYV9uZXh0OmhvdmVyLCAuY2FtZXJhX2NvbW1hbmRzOmhvdmVyLCAuY2FtZXJhX3RodW1ic19jb250OmhvdmVyLCAuY2FtZXJhX3dyYXAgLmNhbWVyYV9wYWcgLmNhbWVyYV9wYWdfdWwgbGkuY2FtZXJhY3VycmVudCA+IHNwYW4sIC5mbGV4LWNvbnRyb2wtcGFnaW5nIGxpIGEuZmxleC1hY3RpdmUsIC5zbGlkZXNob3cgLm5pdm8tZGlyZWN0aW9uTmF2IGE6aG92ZXIge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICM5MkI2MzE7XHJcbn1cclxuXHJcbmEuYnV0dG9uLCBpbnB1dC5idXR0b24sIGEuYnV0dG9uLWV4Y2x1c2l2ZSwgaW5wdXQuYnV0dG9uLWV4Y2x1c2l2ZSB7XHJcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAwcHg7XHJcbiAgLW1vei1ib3JkZXItcmFkaXVzOiAwcHg7XHJcbiAgYm9yZGVyLXJhZGl1czogMHB4O1xyXG59XHJcblxyXG4vKiAgVG9wIEFyZWEgKi9cclxuXHJcbiNoZWFkZXIge1xyXG4gIGJhY2tncm91bmQtY29sb3I6I0ZGRkZGRjsvLyAjNDY0NjQ2OyAvL2VkaXRcclxuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJjYXRhbG9nL3ZpZXcvdGhlbWUvb3h5L2ltYWdlL3BhdHRlcm5zL3AyMjYucG5nXCIpO1xyXG4gIGJhY2tncm91bmQtcG9zaXRpb246IHRvcCBjZW50ZXI7XHJcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdDtcclxuICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IHNjcm9sbDtcclxufVxyXG5cclxuLmlzLXN0aWNreSAjaGVhZGVyIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzMzMzO1xyXG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XHJcbn1cclxuXHJcbi8qICBUb3AgQmFyICAqL1xyXG5cclxuI3RvcC1saW5lIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDY0NjQ2O1xyXG4gIGNvbG9yOiAjQ0NDQ0NDO1xyXG4gIGEge1xyXG4gICAgY29sb3I6ICM5MkI2MzE7XHJcbiAgICAmOmhvdmVyIHtcclxuICAgICAgY29sb3I6ICM3OTNFOTc7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4uY3VycmVuY3ksIC5sYW5ndWFnZSwgLm15LWFjY291bnQge1xyXG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgIzU0NTQ1NDtcclxufVxyXG5cclxuLmN1cnJlbmN5IHtcclxuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjNTQ1NDU0O1xyXG59XHJcblxyXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XHJcbiAgLmN1cnJlbmN5LCAubGFuZ3VhZ2Uge1xyXG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICM1NDU0NTQ7XHJcbiAgfVxyXG59XHJcblxyXG4uZHJvcGRvd25fbCB7XHJcbiAgdWwge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjtcclxuICB9XHJcbiAgbGkgYSB7XHJcbiAgICBjb2xvcjogIzQ2NDY0NiAhaW1wb3J0YW50O1xyXG4gICAgJjpob3ZlciB7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM3OTNFOTc7XHJcbiAgICAgIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4jaGVhZGVyIHtcclxuICAjc2VhcmNoIGlucHV0IHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICM3OTNFOTc7XHJcbiAgICBib3JkZXItY29sb3I6ICM1MjUyNTI7XHJcbiAgICBjb2xvcjogI0ZGRkZGRjtcclxuICAgICY6Zm9jdXMge1xyXG4gICAgICBib3JkZXItY29sb3I6ICM1RTVFNUU7XHJcbiAgICB9XHJcbiAgfVxyXG4gICNjYXJ0IHtcclxuICAgIGg1IHtcclxuICAgICAgY29sb3I6ICM3OTNFOTc7XHJcbiAgICB9XHJcbiAgICAuaGVhZGluZyBhIGRpdiNjYXJ0LXRvdGFsLCAmLmFjdGl2ZSAuaGVhZGluZyBhIGRpdiNjYXJ0LXRvdGFsIHtcclxuICAgICAgY29sb3I6ICNGRkZGRkY7XHJcbiAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICM2OTY5Njk7XHJcbiAgICB9XHJcbiAgICAuaGVhZGluZyBhIGRpdiB7XHJcbiAgICAgICYjY2FydC10b3RhbDpob3ZlciB7XHJcbiAgICAgICAgY29sb3I6ICM5MkI2MzE7XHJcbiAgICAgIH1cclxuICAgICAgJiNjYXJ0LWljb24ge1xyXG4gICAgICAgIGJhY2tncm91bmQ6IHVybCgnYXNzZXRzL2ltZy9pY29uX2NhcnQucG5nJykgbm8tcmVwZWF0IHNjcm9sbCA2NSUgNTAlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gICNsb2dvIHtcclxuICAgIHBhZGRpbmc6IDVweCAxNXB4IDVweCAyMHB4O1xyXG4gIH1cclxuICAjc2VhcmNoIHtcclxuICAgIG1hcmdpbi10b3A6IDIycHg7XHJcbiAgfVxyXG59XHJcblxyXG4vKiAgTWFpbiBNZW51ICAqL1xyXG5cclxuLyogIE1haW4gTWVudSBCYXIgICovXHJcblxyXG4jbWVudSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ2NDY0NjtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xyXG4gIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQ7XHJcbiAgI2hvbWVwYWdlIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICM5MkI2MzE7XHJcbiAgICAmOmhvdmVyIHtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzc5M0U5NztcclxuICAgIH1cclxuICAgIGEsICY6aG92ZXIgYSB7XHJcbiAgICAgIGNvbG9yOiAjRkZGRkZGO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLyogIEhvbWUgUGFnZSBMaW5rICAqL1xyXG5cclxuLyogIENhdGVnb3JpZXMgU2VjdGlvbiAgKi9cclxuXHJcbiNtZW51X29jID4gdWwgPiBsaTpob3ZlciwgI21lbnVfdiA+IHVsID4gbGk6aG92ZXIsICNtZW51X2ggPiB1bCA+IGxpOmhvdmVyIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzkzRTk3O1xyXG59XHJcblxyXG4jbWVudV9vYyA+IHVsID4gbGkgPiBhLCAjbWVudV92ID4gdWwgPiBsaSA+IGEsICNtZW51X2ggPiB1bCA+IGxpID4gYSwgI21lbnVfb2MgPiB1bCA+IGxpOmhvdmVyID4gYSwgI21lbnVfdiA+IHVsID4gbGk6aG92ZXIgPiBhLCAjbWVudV9oID4gdWwgPiBsaTpob3ZlciA+IGEge1xyXG4gIGNvbG9yOiAjRkZGRkZGO1xyXG59XHJcblxyXG4vKiAgQnJhbmRzIFNlY3Rpb24gICovXHJcblxyXG4jbWVudV9icmFuZHMgPiB1bCA+IGxpIHtcclxuICAmOmhvdmVyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICM3OTNFOTc7XHJcbiAgICA+IGEge1xyXG4gICAgICBjb2xvcjogI0ZGRkZGRjtcclxuICAgIH1cclxuICB9XHJcbiAgPiBhIHtcclxuICAgIGNvbG9yOiAjRkZGRkZGO1xyXG4gIH1cclxufVxyXG5cclxuLyogIEN1c3RvbSBMaW5rcyBTZWN0aW9uICAqL1xyXG5cclxuLm1lbnVfbGlua3Mge1xyXG4gICY6aG92ZXIge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzc5M0U5NztcclxuICB9XHJcbiAgYSwgJjpob3ZlciBhIHtcclxuICAgIGNvbG9yOiAjRkZGRkZGO1xyXG4gIH1cclxufVxyXG5cclxuLyogIEluZm9ybWF0aW9uIFNlY3Rpb24gICovXHJcblxyXG4jbWVudV9pbmZvcm1hdGlvbnMgPiB1bCA+IGxpLCAjbWVudV9jdXN0b21fbWVudSA+IHVsID4gbGksIC5tZW51X2N1c3RvbV9ibG9jayA+IHVsID4gbGksICNtZW51X2NvbnRhY3RzID4gdWwgPiBsaSB7XHJcbiAgJjpob3ZlciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzkzRTk3O1xyXG4gICAgPiBhIHtcclxuICAgICAgY29sb3I6ICNGRkZGRkY7XHJcbiAgICB9XHJcbiAgfVxyXG4gID4gYSB7XHJcbiAgICBjb2xvcjogI0ZGRkZGRjtcclxuICB9XHJcbn1cclxuXHJcbi8qICBDdXN0b20gTWVudSBTZWN0aW9uICAqL1xyXG5cclxuLyogIEN1c3RvbSBCbG9ja3MgU2VjdGlvbiAgKi9cclxuXHJcbi8qICBDb250YWN0IFNlY3Rpb24gICovXHJcblxyXG4vKiAgU3ViLU1lbnUgICovXHJcblxyXG4jbWVudV9vYyA+IHVsID4gbGkgPiBkaXYge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7XHJcbiAgPiB1bCA+IGxpID4gZGl2IHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7XHJcbiAgfVxyXG59XHJcblxyXG4jbWVudV92ID4gdWwgPiBsaSA+IGRpdiB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjtcclxuICA+IHVsID4gbGkgPiBkaXYge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjtcclxuICAgID4gdWwgPiBsaSA+IGRpdiB7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4jbWVudV9oID4gdWwgPiBsaSA+IGRpdiwgI21lbnVfYnJhbmRzID4gdWwgPiBsaSA+IGRpdiwgI21lbnVfY3VzdG9tX21lbnUgPiB1bCA+IGxpID4gZGl2LCAubWVudV9jdXN0b21fYmxvY2sgPiB1bCA+IGxpID4gZGl2LCAjbWVudV9pbmZvcm1hdGlvbnMgPiB1bCA+IGxpID4gZGl2LCAjbWVudV9jb250YWN0cyA+IHVsID4gbGkgPiBkaXYge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7XHJcbn1cclxuXHJcbiNtZW51LCAjbWVudV9pbmZvcm1hdGlvbnMgc3BhbiwgLm1lbnVfY3VzdG9tX2Jsb2NrIGgxIHtcclxuICBjb2xvcjogIzQ2NDY0NjtcclxufVxyXG5cclxuI21lbnVfY29udGFjdHMge1xyXG4gID4gdWwgPiBsaSA+IGRpdiA+IHVsID4gbGkgPiAubmd3LCBzcGFuLm1tIHtcclxuICAgIGNvbG9yOiAjNDY0NjQ2O1xyXG4gIH1cclxufVxyXG5cclxuI21lbnVfb2MgPiB1bCA+IGxpIHVsID4gbGkgPiBhLCAjbWVudV92ID4gdWwgPiBsaSB1bCA+IGxpID4gYSB7XHJcbiAgY29sb3I6ICM0NjQ2NDY7XHJcbn1cclxuXHJcbiNtZW51X2gge1xyXG4gIHNwYW4gYSwgPiB1bCA+IGxpIHVsID4gbGkgPiBhIHtcclxuICAgIGNvbG9yOiAjNDY0NjQ2O1xyXG4gIH1cclxufVxyXG5cclxuI21lbnVfYnJhbmRzID4gdWwgPiBsaSA+IGRpdiA+IGRpdiBhLCAjbWVudV9jdXN0b21fbWVudSA+IHVsID4gbGkgdWwgPiBsaSA+IGEsIC5tZW51X2N1c3RvbV9ibG9jayA+IHVsID4gbGkgPiBkaXYgYSwgI21lbnVfaW5mb3JtYXRpb25zID4gdWwgPiBsaSB1bCA+IGxpID4gYSB7XHJcbiAgY29sb3I6ICM0NjQ2NDY7XHJcbn1cclxuXHJcbiNtZW51X29jID4gdWwgPiBsaSB1bCA+IGxpID4gYTpob3ZlciB7XHJcbiAgY29sb3I6ICNGRkZGRkY7XHJcbn1cclxuXHJcbiNtZW51X3YgPiB1bCA+IGxpIHtcclxuICB1bCA+IGxpID4gYTpob3ZlciwgPiBkaXYgPiB1bCA+IGxpIHVsID4gbGkgPiBhOmhvdmVyIHtcclxuICAgIGNvbG9yOiAjRkZGRkZGO1xyXG4gIH1cclxufVxyXG5cclxuI21lbnVfaCB7XHJcbiAgc3BhbiBhOmhvdmVyLCA+IHVsID4gbGkgdWwgPiBsaSA+IGE6aG92ZXIge1xyXG4gICAgY29sb3I6ICNGRkZGRkY7XHJcbiAgfVxyXG59XHJcblxyXG4jbWVudV9icmFuZHMgPiB1bCA+IGxpID4gZGl2ID4gZGl2OmhvdmVyIGEsICNtZW51X2N1c3RvbV9tZW51ID4gdWwgPiBsaSB1bCA+IGxpID4gYTpob3ZlciwgLm1lbnVfY3VzdG9tX2Jsb2NrID4gdWwgPiBsaSA+IGRpdiBhOmhvdmVyLCAjbWVudV9pbmZvcm1hdGlvbnMgPiB1bCA+IGxpIHVsID4gbGkgPiBhOmhvdmVyIHtcclxuICBjb2xvcjogI0ZGRkZGRjtcclxufVxyXG5cclxuI21lbnVfaCA+IHVsID4gbGkgdWwgPiBsaSB1bCA+IGxpOmZpcnN0LWNoaWxkIHtcclxuICBib3JkZXItdG9wOiAxcHggc29saWQgI0YxRjFGMTtcclxufVxyXG5cclxuI21lbnVfb2MgPiB1bCA+IGxpIHVsID4gbGksICNtZW51X3YgPiB1bCA+IGxpIHVsID4gbGksICNtZW51X2ggPiB1bCA+IGxpIHVsID4gbGksICNtZW51X2JyYW5kcyA+IHVsID4gbGkgPiBkaXYgPiBkaXYsICNtZW51X2N1c3RvbV9tZW51ID4gdWwgPiBsaSB1bCA+IGxpLCAjbWVudV9pbmZvcm1hdGlvbnMgPiB1bCA+IGxpIHVsID4gbGkge1xyXG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjRjFGMUYxO1xyXG59XHJcblxyXG4jbWVudV9vYyA+IHVsID4gbGkgdWwgPiBsaSA+IGE6aG92ZXIsICNtZW51X3YgPiB1bCA+IGxpIHVsID4gbGkgPiBhOmhvdmVyLCAjbWVudV9oID4gdWwgPiBsaSB1bCA+IGxpID4gYTpob3ZlciwgI21lbnVfdiA+IHVsID4gbGkgPiBkaXYgPiB1bCA+IGxpIHVsID4gbGkgPiBhOmhvdmVyLCAjbWVudV9oIHNwYW4gYTpob3ZlciwgI21lbnVfYnJhbmRzID4gdWwgPiBsaSA+IGRpdiA+IGRpdjpob3ZlciwgI21lbnVfY3VzdG9tX21lbnUgPiB1bCA+IGxpIHVsID4gbGkgPiBhOmhvdmVyLCAjbWVudV9pbmZvcm1hdGlvbnMgPiB1bCA+IGxpIHVsID4gbGkgPiBhOmhvdmVyIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzkzRTk3O1xyXG59XHJcblxyXG4jbWVudV9oIHNwYW4gYSwgI21lbnVfaW5mb3JtYXRpb25zIHNwYW4ge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNGNUY1RjU7XHJcbn1cclxuXHJcbiNtZW51X2NvbnRhY3RzID4gdWwgPiBsaSA+IGRpdiA+IHVsID4gbGkgPiB7XHJcbiAgLm5ndywgLnNvY2lhbF93aWRnZXQge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0Y1RjVGNTtcclxuICB9XHJcbn1cclxuXHJcbiNtZW51X29jID4gdWwgPiBsaSA+IGRpdiB7XHJcbiAgYm94LXNoYWRvdzogMCA1cHggMjBweCByZ2JhKDAsIDAsIDAsIDAuMyk7XHJcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDVweCAyMHB4IHJnYmEoMCwgMCwgMCwgMC4zKTtcclxuICAtbW96LWJveC1zaGFkb3c6IDAgNXB4IDIwcHggcmdiYSgwLCAwLCAwLCAwLjMpO1xyXG4gID4gdWwgPiBsaSA+IGRpdiB7XHJcbiAgICBib3gtc2hhZG93OiAwIDVweCAyMHB4IHJnYmEoMCwgMCwgMCwgMC4zKTtcclxuICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCA1cHggMjBweCByZ2JhKDAsIDAsIDAsIDAuMyk7XHJcbiAgICAtbW96LWJveC1zaGFkb3c6IDAgNXB4IDIwcHggcmdiYSgwLCAwLCAwLCAwLjMpO1xyXG4gIH1cclxufVxyXG5cclxuI21lbnVfdiA+IHVsID4gbGkgPiBkaXYge1xyXG4gIGJveC1zaGFkb3c6IDAgNXB4IDIwcHggcmdiYSgwLCAwLCAwLCAwLjMpO1xyXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCA1cHggMjBweCByZ2JhKDAsIDAsIDAsIDAuMyk7XHJcbiAgLW1vei1ib3gtc2hhZG93OiAwIDVweCAyMHB4IHJnYmEoMCwgMCwgMCwgMC4zKTtcclxuICA+IHVsID4gbGkgPiBkaXYge1xyXG4gICAgYm94LXNoYWRvdzogMCA1cHggMjBweCByZ2JhKDAsIDAsIDAsIDAuMyk7XHJcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgNXB4IDIwcHggcmdiYSgwLCAwLCAwLCAwLjMpO1xyXG4gICAgLW1vei1ib3gtc2hhZG93OiAwIDVweCAyMHB4IHJnYmEoMCwgMCwgMCwgMC4zKTtcclxuICAgID4gdWwgPiBsaSA+IGRpdiB7XHJcbiAgICAgIGJveC1zaGFkb3c6IDAgNXB4IDIwcHggcmdiYSgwLCAwLCAwLCAwLjMpO1xyXG4gICAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgNXB4IDIwcHggcmdiYSgwLCAwLCAwLCAwLjMpO1xyXG4gICAgICAtbW96LWJveC1zaGFkb3c6IDAgNXB4IDIwcHggcmdiYSgwLCAwLCAwLCAwLjMpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuI21lbnVfaCA+IHVsID4gbGkgPiBkaXYsICNtZW51X2JyYW5kcyA+IHVsID4gbGkgPiBkaXYsICNtZW51X2N1c3RvbV9tZW51ID4gdWwgPiBsaSA+IGRpdiwgLm1lbnVfY3VzdG9tX2Jsb2NrID4gdWwgPiBsaSA+IGRpdiwgI21lbnVfaW5mb3JtYXRpb25zID4gdWwgPiBsaSA+IGRpdiwgI21lbnVfY29udGFjdHMgPiB1bCA+IGxpID4gZGl2IHtcclxuICBib3gtc2hhZG93OiAwIDVweCAyMHB4IHJnYmEoMCwgMCwgMCwgMC4zKTtcclxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgNXB4IDIwcHggcmdiYSgwLCAwLCAwLCAwLjMpO1xyXG4gIC1tb3otYm94LXNoYWRvdzogMCA1cHggMjBweCByZ2JhKDAsIDAsIDAsIDAuMyk7XHJcbn1cclxuXHJcblxyXG5cclxuLyogIExheW91dCAgKi9cclxuXHJcbi53cmFwcGVyIHtcclxuICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgbWFyZ2luOiAwO1xyXG4gIHBhZGRpbmc6IDAgMTBweDtcclxufVxyXG5cclxuLyogIFByb2R1Y3QgQm94ICAqL1xyXG5cclxuXHJcblxyXG5cclxuXHJcbi5wcm9kdWN0LWdyaWQgPmRpdiB7ICAgIFxyXG4gICAgIHBhZGRpbmc6MDsgICAgIFxyXG59XHJcbi8qLnByb2R1Y3QtZ3JpZCA+IGRpdjpob3ZlciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRURFREVEO1xyXG59Ki9cclxuXHJcblxyXG4vLyAucHJvZHVjdC1saXN0ID4gZGl2OmhvdmVyLCAjY29udGVudCAuYm94LXByb2R1Y3QgPiBkaXY6aG92ZXIge1xyXG4gLy8gYmFja2dyb3VuZC1jb2xvcjogI0VERURFRDtcclxuICAgICBcclxuLy99XHJcblxyXG5zcGFuLnNhbGUtaWNvbiB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzkyQjYzMTtcclxufVxyXG5cclxuLnByb2R1Y3QtZ3JpZCAucHJvZHVjdF9ib3hfYnJhbmQsIC5wcm9kdWN0LWxpc3QgLnByb2R1Y3RfYm94X2JyYW5kLCAgI2NvbnRlbnQgLmJveC1wcm9kdWN0IC5jYXJ0LCAucHJvZHVjdC1saXN0IC5jYXJ0LCAucHJvZHVjdC1ib3gtc2xpZGVyIC5jYXJ0LCAgLnByb2R1Y3QtbGlzdCAucmF0aW5nLCAjY29udGVudCAuYm94LXByb2R1Y3QgLnJhdGluZywucHJvZHVjdC1ncmlkIC5yYXRpbmcsICNjb2x1bW4tbGVmdCAuYm94LXByb2R1Y3QgLnJhdGluZywgI2NvbHVtbi1yaWdodCAuYm94LXByb2R1Y3QgLnJhdGluZywgLnByb2R1Y3QtYm94LXNsaWRlciAucmF0aW5nIHtcclxuICBkaXNwbGF5OiBub25lO1xyXG59XHJcblxyXG4vLyBkaXNwbGF5IHRoZSBmb2xsb3dpbmcgZm9yIG91ciBzaXRlXHJcbi8qLnByb2R1Y3QtZ3JpZCAuY2FydCwgIHtcclxuICAgIGRpc3BsYXk6bm9uZTtcclxufSovXHJcblxyXG5cclxuXHJcbi5wcm9kdWN0LWdyaWQgLm5hbWUsICNjb250ZW50IC5ib3gtcHJvZHVjdCAubmFtZSwgLnByb2R1Y3QtYm90dG9tLXJlbGF0ZWQgLm5hbWUsIC5wcm9kdWN0LWJveC1zbGlkZXIgLm5hbWUge1xyXG4gIHRleHQtYWxpZ246IGxlZnQ7XHJcbn1cclxuXHJcbi5wcm9kdWN0LWdyaWQge1xyXG4gIC5wcm9kdWN0X2JveF9icmFuZCwgLnByaWNlIHtcclxuICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgfVxyXG59XHJcblxyXG4jY29udGVudCAuYm94LXByb2R1Y3QgLnByaWNlLCAucHJvZHVjdC1ib3gtc2xpZGVyIC5wcmljZSwgLnByb2R1Y3QtYm90dG9tLXJlbGF0ZWQgLnByaWNlLCAucHJvZHVjdC1ncmlkIC5yYXRpbmcsICNjb250ZW50IC5ib3gtcHJvZHVjdCAucmF0aW5nLCAucHJvZHVjdC1ib3gtc2xpZGVyIC5yYXRpbmcsIC5wcm9kdWN0LWdyaWQgLmNhcnQsICNjb250ZW50IC5ib3gtcHJvZHVjdCAuY2FydCwgLnByb2R1Y3QtYm94LXNsaWRlciAuY2FydCwgLnByb2R1Y3QtYm90dG9tLXJlbGF0ZWQgLmNhcnQge1xyXG4gIHRleHQtYWxpZ246IGxlZnQ7XHJcbn1cclxuXHJcbi8qICBUYWJzICAqL1xyXG5cclxuLmh0YWJzIGEge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICM0MjQyNDI7XHJcbiAgJi5zZWxlY3RlZCB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTJCNjMxO1xyXG4gICAgY29sb3I6ICNGRkZGRkY7XHJcbiAgfVxyXG4gIGNvbG9yOiAjRkZGRkZGO1xyXG59XHJcblxyXG4vKiAgUHJvZHVjdCBTbGlkZXIgb24gSG9tZSBQYWdlICAqL1xyXG5cclxuLmVpLXNsaWRlciB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI0Y3RjdGNztcclxuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJjYXRhbG9nL3ZpZXcvdGhlbWUvb3h5L2ltYWdlL2JnX3Byb2Rfc2xpZGVyXzEucG5nXCIpO1xyXG4gIGJhY2tncm91bmQtcG9zaXRpb246IHRvcCBjZW50ZXI7XHJcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdDtcclxufVxyXG5cclxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcclxuICAuZWktc2xpZGVyIHtcclxuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGO1xyXG4gIH1cclxufVxyXG5cclxuLmVpLXRpdGxlIHtcclxuICBoMiBhIHtcclxuICAgIGNvbG9yOiAjNDY0NjQ2O1xyXG4gIH1cclxuICBoMyBhIHtcclxuICAgIGNvbG9yOiAjQTNBM0EzO1xyXG4gIH1cclxuICBoNCB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzkzRTk3O1xyXG4gIH1cclxuICBoMiBhOmhvdmVyLCBoMyBhOmhvdmVyIHtcclxuICAgIGNvbG9yOiAjOTJCNjMxO1xyXG4gIH1cclxufVxyXG5cclxuLmVpLXNsaWRlci10aHVtYnMgbGkge1xyXG4gIGEge1xyXG4gICAgYmFja2dyb3VuZDogI0U4RThFODtcclxuICAgICY6aG92ZXIge1xyXG4gICAgICBiYWNrZ3JvdW5kOiAjNzkzRTk3O1xyXG4gICAgfVxyXG4gIH1cclxuICAmLmVpLXNsaWRlci1lbGVtZW50IHtcclxuICAgIGJhY2tncm91bmQ6ICM5MkI2MzE7XHJcbiAgfVxyXG59XHJcblxyXG4vKiAgVmlkZW8gQm94ICAqL1xyXG5cclxuLnZpZGVvX2JveF9sZWZ0ICN2aWRlb19ib3hfaWNvbiB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzkyQjYzMTtcclxufVxyXG5cclxuLnZpZGVvX2JveF9yaWdodCB7XHJcbiAgI3ZpZGVvX2JveF9pY29uIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICM5MkI2MzE7XHJcbiAgfVxyXG4gIC52aWRlb19ib3gge1xyXG4gICAgYm9yZGVyOiA0cHggc29saWQgIzkyQjYzMTtcclxuICB9XHJcbn1cclxuXHJcbi52aWRlb19ib3hfbGVmdCAudmlkZW9fYm94IHtcclxuICBib3JkZXI6IDRweCBzb2xpZCAjOTJCNjMxO1xyXG59XHJcblxyXG4vKiAgQ3VzdG9tIEJveCAgKi9cclxuXHJcbi5jdXN0b21fYm94X2xlZnQgI2N1c3RvbV9ib3hfaWNvbiB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzc5M0U5NztcclxufVxyXG5cclxuLmN1c3RvbV9ib3hfcmlnaHQge1xyXG4gICNjdXN0b21fYm94X2ljb24ge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzc5M0U5NztcclxuICB9XHJcbiAgLmN1c3RvbV9ib3gge1xyXG4gICAgYm9yZGVyOiA0cHggc29saWQgIzc5M0U5NztcclxuICB9XHJcbn1cclxuXHJcbi5jdXN0b21fYm94X2xlZnQgLmN1c3RvbV9ib3gge1xyXG4gIGJvcmRlcjogNHB4IHNvbGlkICM3OTNFOTc7XHJcbn1cclxuXHJcbi8qICBCb3R0b20gQXJlYSAgKi9cclxuXHJcbi8qICBGZWF0dXJlIEJsb2NrICAqL1xyXG5cclxuI2Zvb3Rlcl9wIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjZGNkY2O1xyXG4gIHNwYW4ge1xyXG4gICAgJi5wX3RpdGxlIGEge1xyXG4gICAgICBjb2xvcjogIzQ2NDY0NjtcclxuICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgY29sb3I6ICM3OTNFOTc7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgICYucF9zdWJ0aXRsZSB7XHJcbiAgICAgIGNvbG9yOiAjQjZCNkI2O1xyXG4gICAgfVxyXG4gICAgJi5waTEge1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRDFEMUQxO1xyXG4gICAgfVxyXG4gIH1cclxuICAucF9jb250ZW50OmhvdmVyIHNwYW4ucGkxIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICM5MkI2MzE7XHJcbiAgfVxyXG4gIHNwYW4ucGkyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNEMUQxRDE7XHJcbiAgfVxyXG4gIC5wX2NvbnRlbnQ6aG92ZXIgc3Bhbi5waTIge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzkyQjYzMTtcclxuICB9XHJcbiAgc3Bhbi5waTMge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0QxRDFEMTtcclxuICB9XHJcbiAgLnBfY29udGVudDpob3ZlciBzcGFuLnBpMyB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTJCNjMxO1xyXG4gIH1cclxuICBzcGFuLnBpNCB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRDFEMUQxO1xyXG4gIH1cclxuICAucF9jb250ZW50OmhvdmVyIHNwYW4ucGk0IHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICM5MkI2MzE7XHJcbiAgfVxyXG59XHJcblxyXG4vKiAgQWJvdXQgVXMsIEN1c3RvbSBDb2x1bW4sIEZvbGxvdyBVcywgQ29udGFjdCBVcyAgKi9cclxuXHJcbiNmb290ZXJfYSB7XHJcbiAgY29sb3I6ICM0NjQ2NDY7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI0U2RTZFNjtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJjYXRhbG9nL3ZpZXcvdGhlbWUvb3h5L2ltYWdlL3BhdHRlcm5zL3AzMDIucG5nXCIpO1xyXG4gIGJhY2tncm91bmQtcG9zaXRpb246IHRvcCBjZW50ZXI7XHJcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdDtcclxuICBoMyB7XHJcbiAgICBjb2xvcjogIzQ2NDY0NjtcclxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjRjVGNUY1O1xyXG4gIH1cclxuICBhIHtcclxuICAgIGNvbG9yOiAjOTJCNjMxO1xyXG4gICAgJjpob3ZlciB7XHJcbiAgICAgIGNvbG9yOiAjNzkzRTk3O1xyXG4gICAgfVxyXG4gIH1cclxuICBzcGFuLm1tX2ljb24sIC5zb2NpYWxfd2lkZ2V0IHVsIGxpIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNCNkI2QjY7XHJcbiAgfVxyXG59XHJcblxyXG4vKiAgSW5mb3JtYXRpb24sIEN1c3RvbWVyIFNlcnZpY2UsIEV4dHJhcywgTXkgQWNjb3VudCAgKi9cclxuXHJcbiNmb290ZXJfYyB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJGMkYyRjtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJjYXRhbG9nL3ZpZXcvdGhlbWUvb3h5L2ltYWdlL3BhdHRlcm5zL3AyMjYucG5nXCIpO1xyXG4gIGJhY2tncm91bmQtcG9zaXRpb246IHRvcCBjZW50ZXI7XHJcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdDtcclxuICBoMyB7XHJcbiAgICBjb2xvcjogI0ZGRkZGRjtcclxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjNDY0NjQ2O1xyXG4gIH1cclxuICBhIHtcclxuICAgIGNvbG9yOiAjOEM4QzhDO1xyXG4gICAgJjpob3ZlciB7XHJcbiAgICAgIGNvbG9yOiAjRkZGRkZGO1xyXG4gICAgfVxyXG4gIH1cclxuICB1bCBsaSB7XHJcbiAgICBjb2xvcjogIzQ2NDY0NjtcclxuICB9XHJcbn1cclxuXHJcbi8qICBQb3dlcmVkIGJ5LCBQYXltZW50IEltYWdlcyAgKi9cclxuXHJcbiNmb290ZXJfZCwgI2Zvb3Rlcl9lIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMkYyRjJGO1xyXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImNhdGFsb2cvdmlldy90aGVtZS9veHkvaW1hZ2UvcGF0dGVybnMvcDIyNi5wbmdcIik7XHJcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogdG9wIGNlbnRlcjtcclxuICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0O1xyXG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjNDY0NjQ2O1xyXG4gIGNvbG9yOiAjOEM4QzhDO1xyXG4gIGEge1xyXG4gICAgY29sb3I6ICM5MkI2MzE7XHJcbiAgICAmOmhvdmVyIHtcclxuICAgICAgY29sb3I6ICNGRkZGRkY7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vKiAgQm90dG9tIEN1c3RvbSBCbG9jayAgKi9cclxuXHJcbi8qICBGb250cyAgKi9cclxuXHJcbmJvZHksIHAsIC5laS10aXRsZSBoMyBhIHtcclxuICBmb250LWZhbWlseTogJ09wZW4gU2FucycsQXJpYWwsSGVsdmV0aWNhLHNhbnMtc2VyaWY7XHJcbn1cclxuXHJcbi5jYXJ0LWluZm8ge1xyXG4gIHRoZWFkIC5wcmljZSwgdGJvZHkgLnByaWNlIHtcclxuICAgIGZvbnQtZmFtaWx5OiAnT3BlbiBTYW5zJyxBcmlhbCxIZWx2ZXRpY2Esc2Fucy1zZXJpZjtcclxuICB9XHJcbn1cclxuXHJcbi5ib3gtY2F0ZWdvcnktaG9tZSB7XHJcbiAgLnN1YmNhdCBhLCAuYWxsIGEge1xyXG4gICAgZm9udC1mYW1pbHk6ICdPcGVuIFNhbnMnLEFyaWFsLEhlbHZldGljYSxzYW5zLXNlcmlmO1xyXG4gIH1cclxufVxyXG5cclxuaDEsIGgyLCBoMywgaDQsIGg1LCBoNiwgI2NvbnRlbnQgLmJveC1oZWFkaW5nLCAuYm94LWNhdGVnb3J5IC5ib3gtaGVhZGluZy1jYXRlZ29yeSwgLmJveC1maWx0ZXIgLmJveC1oZWFkaW5nLCAjY29sdW1uLWxlZnQgLmJveCAuYm94LWhlYWRpbmcsICNjb2x1bW4tcmlnaHQgLmJveCAuYm94LWhlYWRpbmcsICNjb2x1bW4tbGVmdCAucHJvZHVjdC1ib3gtc2xpZGVyIC5ib3gtaGVhZGluZywgI2NvbHVtbi1yaWdodCAucHJvZHVjdC1ib3gtc2xpZGVyIC5ib3gtaGVhZGluZywgLnByb2R1Y3QtZ3JpZCAubmFtZSBhLCAucHJvZHVjdC1saXN0IC5uYW1lIGEsICNjb250ZW50IC5ib3gtcHJvZHVjdCAubmFtZSBhLCAucHJvZHVjdC1yaWdodC1zbS1yZWxhdGVkIC5uYW1lIGEsIC5wcm9kdWN0LWJvdHRvbS1yZWxhdGVkIC5uYW1lIGEsICNjb2x1bW4tbGVmdCAuYm94LXByb2R1Y3QgLm5hbWUgYSwgI2NvbHVtbi1yaWdodCAuYm94LXByb2R1Y3QgLm5hbWUgYSwgLnByb2R1Y3QtYm94LXNsaWRlciAubmFtZSBhLCAuYm94LWNhdGVnb3J5LWhvbWUgYSB7XHJcbiAgZm9udC1mYW1pbHk6IEJpdHRlcixBcmlhbCxIZWx2ZXRpY2Esc2Fucy1zZXJpZjtcclxufVxyXG5cclxuaDEsIGgyLCBoMywgaDQsIGg1LCBoNiwgI2NvbnRlbnQgLmJveC1oZWFkaW5nLCAuYm94LWNhdGVnb3J5IC5ib3gtaGVhZGluZy1jYXRlZ29yeSwgLmJveC1maWx0ZXIgLmJveC1oZWFkaW5nLCAjY29sdW1uLWxlZnQgLmJveCAuYm94LWhlYWRpbmcsICNjb2x1bW4tcmlnaHQgLmJveCAuYm94LWhlYWRpbmcsICNjb2x1bW4tbGVmdCAucHJvZHVjdC1ib3gtc2xpZGVyIC5ib3gtaGVhZGluZywgI2NvbHVtbi1yaWdodCAucHJvZHVjdC1ib3gtc2xpZGVyIC5ib3gtaGVhZGluZywgLnByb2R1Y3QtZ3JpZCAubmFtZSBhLCAucHJvZHVjdC1saXN0IC5uYW1lIGEsICNjb250ZW50IC5ib3gtcHJvZHVjdCAubmFtZSBhLCAucHJvZHVjdC1yaWdodC1zbS1yZWxhdGVkIC5uYW1lIGEsIC5wcm9kdWN0LWJvdHRvbS1yZWxhdGVkIC5uYW1lIGEsICNjb2x1bW4tbGVmdCAuYm94LXByb2R1Y3QgLm5hbWUgYSwgI2NvbHVtbi1yaWdodCAuYm94LXByb2R1Y3QgLm5hbWUgYSwgLnByb2R1Y3QtYm94LXNsaWRlciAubmFtZSBhLCAuYm94LWNhdGVnb3J5LWhvbWUgYSB7XHJcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxufVxyXG5cclxuaDEsIGgyLCBoMywgaDQsIGg1LCBoNiwgI2NvbnRlbnQgLmJveC1oZWFkaW5nLCAuYm94LWNhdGVnb3J5IC5ib3gtaGVhZGluZy1jYXRlZ29yeSwgLmJveC1maWx0ZXIgLmJveC1oZWFkaW5nLCAjY29sdW1uLWxlZnQgLmJveCAuYm94LWhlYWRpbmcsICNjb2x1bW4tcmlnaHQgLmJveCAuYm94LWhlYWRpbmcsICNjb2x1bW4tbGVmdCAucHJvZHVjdC1ib3gtc2xpZGVyIC5ib3gtaGVhZGluZywgI2NvbHVtbi1yaWdodCAucHJvZHVjdC1ib3gtc2xpZGVyIC5ib3gtaGVhZGluZywgLnByb2R1Y3QtZ3JpZCAubmFtZSBhLCAucHJvZHVjdC1saXN0IC5uYW1lIGEsICNjb250ZW50IC5ib3gtcHJvZHVjdCAubmFtZSBhLCAucHJvZHVjdC1yaWdodC1zbS1yZWxhdGVkIC5uYW1lIGEsIC5wcm9kdWN0LWJvdHRvbS1yZWxhdGVkIC5uYW1lIGEsICNjb2x1bW4tbGVmdCAuYm94LXByb2R1Y3QgLm5hbWUgYSwgI2NvbHVtbi1yaWdodCAuYm94LXByb2R1Y3QgLm5hbWUgYSwgLnByb2R1Y3QtYm94LXNsaWRlciAubmFtZSBhLCAuYm94LWNhdGVnb3J5LWhvbWUgYSB7XHJcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxufVxyXG5cclxuLnByaWNlLCAucHJpY2UtbmV3LCAucHJpY2UtbmV3MiwgLnByaWNlLW9sZCwgLmVpLXRpdGxlIGg0IGEge1xyXG4gIGZvbnQtZmFtaWx5OiBBcmlhbCxIZWx2ZXRpY2Esc2Fucy1zZXJpZjtcclxuICAvL2ZvbnQtZmFtaWx5OiBBcmlhbCxHZW5ldmEsc2Fucy1zZXJpZjsgICAgICAgICAgXHJcbn1cclxuXHJcbi5wcmljZSwgLnByaWNlLW5ldywgLnByaWNlLW5ldzIsIC5wcmljZS1vbGQsIC5laS10aXRsZSBoNCBhIHtcclxuICBmb250LXdlaWdodDogYm9sZDtcclxufVxyXG5cclxuYS5idXR0b24sIGlucHV0LmJ1dHRvbiwgYS5idXR0b24tZXhjbHVzaXZlLCBpbnB1dC5idXR0b24tZXhjbHVzaXZlLCAuZWktdGl0bGUgaDQgYS5idXR0b24ge1xyXG4gIGZvbnQtZmFtaWx5OiAnT3BlbiBTYW5zJyxBcmlhbCxIZWx2ZXRpY2Esc2Fucy1zZXJpZjtcclxufVxyXG5cclxuYS5idXR0b24sIGlucHV0LmJ1dHRvbiwgYS5idXR0b24tZXhjbHVzaXZlLCBpbnB1dC5idXR0b24tZXhjbHVzaXZlLCAuZWktdGl0bGUgaDQgYS5idXR0b24ge1xyXG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbn1cclxuXHJcbmEuYnV0dG9uLCBpbnB1dC5idXR0b24sIGEuYnV0dG9uLWV4Y2x1c2l2ZSwgaW5wdXQuYnV0dG9uLWV4Y2x1c2l2ZSwgLmVpLXRpdGxlIGg0IGEuYnV0dG9uIHtcclxuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG59XHJcblxyXG4jdC1oZWFkZXIgI3NlYXJjaCBpbnB1dCB7XHJcbiAgZm9udC1mYW1pbHk6ICdPcGVuIFNhbnMnLEFyaWFsLEhlbHZldGljYSxzYW5zLXNlcmlmO1xyXG4gIGZvbnQtc2l6ZTogMTNweDtcclxuICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbn1cclxuXHJcbiNoZWFkZXIgI2NhcnQgLmhlYWRpbmcgYSBkaXYjY2FydC10b3RhbCB7XHJcbiAgZm9udC1mYW1pbHk6IEJpdHRlcixBcmlhbCxIZWx2ZXRpY2Esc2Fucy1zZXJpZjtcclxuICBmb250LXNpemU6IDE2cHg7XHJcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxufVxyXG5cclxuI21lbnUgI2hvbWVwYWdlIGEsICNtZW51X29jID4gdWwgPiBsaSA+IGEsICNtZW51X3YgPiB1bCA+IGxpID4gYSwgI21lbnVfaCA+IHVsID4gbGkgPiBhLCAjbWVudV9icmFuZHMgPiB1bCA+IGxpID4gYSwgLm1lbnVfbGlua3MgYSwgI21lbnVfY3VzdG9tX21lbnUgPiB1bCA+IGxpID4gYSwgLm1lbnVfY3VzdG9tX2Jsb2NrID4gdWwgPiBsaSA+IGEsICNtZW51X2luZm9ybWF0aW9ucyA+IHVsID4gbGkgPiBhLCAjbWVudV9jb250YWN0cyA+IHVsID4gbGkgPiBhLCAudG9wLWJhciA+IHVsIC5uYW1lIGgxIGEge1xyXG4gIGZvbnQtZmFtaWx5OiBCaXR0ZXIsQXJpYWwsSGVsdmV0aWNhLHNhbnMtc2VyaWY7XHJcbn1cclxuXHJcbiNtZW51IHtcclxuICBmb250LXNpemU6IDE2cHg7XHJcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICNob21lcGFnZSBhIHtcclxuICAgIGZvbnQtc2l6ZTogMTZweDtcclxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gIH1cclxufVxyXG5cclxuI21lbnVfb2MgPiB1bCA+IGxpID4gYSwgI21lbnVfdiA+IHVsID4gbGkgPiBhLCAjbWVudV9oID4gdWwgPiBsaSA+IGEsICNtZW51X2JyYW5kcyA+IHVsID4gbGkgPiBhLCAubWVudV9saW5rcyBhLCAjbWVudV9jdXN0b21fbWVudSA+IHVsID4gbGkgPiBhLCAubWVudV9jdXN0b21fYmxvY2sgPiB1bCA+IGxpID4gYSwgI21lbnVfaW5mb3JtYXRpb25zID4gdWwgPiBsaSA+IGEsICNtZW51X2NvbnRhY3RzID4gdWwgPiBsaSA+IGEsIC50b3AtYmFyID4gdWwgLm5hbWUgaDEgYSB7XHJcbiAgZm9udC1zaXplOiAxNnB4O1xyXG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxufVxyXG5cclxuXHJcbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcclxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxyXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcclxuXHJcbi8vIHNjc3MtbGludDpkaXNhYmxlIENvbG9yVmFyaWFibGUsIFF1YWxpZnlpbmdFbGVtZW50LCBWZW5kb3JQcmVmaXhcclxuXHJcbi8vLy9cclxuLy8vIEBncm91cCBnbG9iYWxcclxuLy8vL1xyXG5cclxuLy8vIEZvbnQgc2l6ZSBhdHRyaWJ1dGUgYXBwbGllZCB0byBgPGh0bWw+YCBhbmQgYDxib2R5PmAuIFdlIHVzZSAxMDAlIGJ5IGRlZmF1bHQgc28gdGhlIHZhbHVlIGlzIGluaGVyaXRlZCBmcm9tIHRoZSB1c2VyJ3MgYnJvd3NlciBzZXR0aW5ncy5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kZ2xvYmFsLWZvbnQtc2l6ZTogMTAwJSAhZGVmYXVsdDtcclxuXHJcbi8vLyBHbG9iYWwgd2lkdGggb2YgeW91ciBzaXRlLiBVc2VkIGJ5IHRoZSBncmlkIHRvIGRldGVybWluZSByb3cgd2lkdGguXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJGdsb2JhbC13aWR0aDogcmVtLWNhbGMoMTIwMCkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBsaW5lIGhlaWdodCBmb3IgYWxsIHR5cGUuIGAkZ2xvYmFsLWxpbmVoZWlnaHRgIGlzIDI0cHggd2hpbGUgYCRnbG9iYWwtZm9udC1zaXplYCBpcyAxNnB4XHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJGdsb2JhbC1saW5laGVpZ2h0OiAxLjUgIWRlZmF1bHQ7XHJcblxyXG4vLy8gQ29sb3JzIHVzZWQgZm9yIGJ1dHRvbnMsIGNhbGxvdXRzLCBsaW5rcywgZXRjLiBUaGVyZSBtdXN0IGFsd2F5cyBiZSBhIGNvbG9yIGNhbGxlZCBgcHJpbWFyeWAuXHJcbi8vLyBAdHlwZSBNYXBcclxuJGZvdW5kYXRpb24tcGFsZXR0ZTogKFxyXG4gIHByaW1hcnk6ICMyMTk5ZTgsXHJcbiAgc2Vjb25kYXJ5OiAjNzc3LFxyXG4gIHN1Y2Nlc3M6ICMzYWRiNzYsXHJcbiAgd2FybmluZzogI2ZmYWUwMCxcclxuICBhbGVydDogI2VjNTg0MCxcclxuKSAhZGVmYXVsdDtcclxuXHJcbi8vLyBDb2xvciB1c2VkIGZvciBsaWdodCBncmF5IFVJIGl0ZW1zLlxyXG4vLy8gQHR5cGUgQ29sb3JcclxuJGxpZ2h0LWdyYXk6ICNlNmU2ZTYgIWRlZmF1bHQ7XHJcblxyXG4vLy8gQ29sb3IgdXNlZCBmb3IgbWVkaXVtIGdyYXkgVUkgaXRlbXMuXHJcbi8vLyBAdHlwZSBDb2xvclxyXG4kbWVkaXVtLWdyYXk6ICNjYWNhY2EgIWRlZmF1bHQ7XHJcblxyXG4vLy8gQ29sb3IgdXNlZCBmb3IgZGFyayBncmF5IFVJIGl0ZW1zLlxyXG4vLy8gQHR5cGUgQ29sb3JcclxuJGRhcmstZ3JheTogIzhhOGE4YSAhZGVmYXVsdDtcclxuXHJcbi8vLyBDb2xvciB1c2VkIGZvciBibGFjayB1aSBpdGVtcy5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiRibGFjazogIzBhMGEwYSAhZGVmYXVsdDtcclxuXHJcbi8vLyBDb2xvciB1c2VkIGZvciB3aGl0ZSB1aSBpdGVtcy5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiR3aGl0ZTogI2ZlZmVmZSAhZGVmYXVsdDtcclxuXHJcbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBib2R5LlxyXG4vLy8gQHR5cGUgQ29sb3JcclxuJGJvZHktYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xyXG5cclxuLy8vIFRleHQgY29sb3Igb2YgdGhlIGJvZHkuXHJcbi8vLyBAdHlwZSBDb2xvclxyXG4kYm9keS1mb250LWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRm9udCBzdGFjayBvZiB0aGUgYm9keS5cclxuLy8vIEB0eXBlIExpc3RcclxuJGJvZHktZm9udC1mYW1pbHk6ICdIZWx2ZXRpY2EgTmV1ZScsIEhlbHZldGljYSwgUm9ib3RvLCBBcmlhbCwgc2Fucy1zZXJpZiAhZGVmYXVsdDtcclxuXHJcbi8vLyBTZXQgdG8gYHRydWVgIHRvIGVuYWJsZSBhbnRpYWxpYXNlZCB0eXBlLCB1c2luZyB0aGUgYC13ZWJraXQtZm9udC1zbW9vdGhpbmdgIGFuZCBgLW1vei1vc3gtZm9udC1zbW9vdGhpbmdgIENTUyBwcm9wZXJ0aWVzLlxyXG4vLy8gQHR5cGUgQm9vbGVhblxyXG4kYm9keS1hbnRpYWxpYXNlZDogdHJ1ZSAhZGVmYXVsdDtcclxuXHJcbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgbWFyZ2luIG9uIGNvbXBvbmVudHMuXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJGdsb2JhbC1tYXJnaW46IDFyZW0gIWRlZmF1bHQ7XHJcblxyXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIHBhZGRpbmcgb24gY29tcG9uZW50cy5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kZ2xvYmFsLXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XHJcblxyXG4vLy8gR2xvYmFsIGZvbnQgd2VpZ2h0IHVzZWQgZm9yIG5vcm1hbCB0eXBlLlxyXG4vLy8gQHR5cGUgS2V5d29yZCB8IE51bWJlclxyXG4kZ2xvYmFsLXdlaWdodC1ub3JtYWw6IG5vcm1hbCAhZGVmYXVsdDtcclxuXHJcbi8vLyBHbG9iYWwgZm9udCB3ZWlnaHQgdXNlZCBmb3IgYm9sZCB0eXBlLlxyXG4vLy8gQHR5cGUgS2V5d29yZCB8IE51bWJlclxyXG4kZ2xvYmFsLXdlaWdodC1ib2xkOiBib2xkICFkZWZhdWx0O1xyXG5cclxuLy8vIEdsb2JhbCB2YWx1ZSB1c2VkIGZvciBhbGwgZWxlbWVudHMgdGhhdCBoYXZlIGEgYm9yZGVyIHJhZGl1cy5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kZ2xvYmFsLXJhZGl1czogMCAhZGVmYXVsdDtcclxuXHJcbi8vLyBTZXRzIHRoZSB0ZXh0IGRpcmVjdGlvbiBvZiB0aGUgQ1NTLiBDYW4gYmUgZWl0aGVyIGBsdHJgIG9yIGBydGxgLlxyXG4vLy8gQHR5cGUgS2V5d29yZFxyXG4kZ2xvYmFsLXRleHQtZGlyZWN0aW9uOiBsdHIgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRW5hYmxlcyBmbGV4Ym94IGZvciBjb21wb25lbnRzIHRoYXQgc3VwcG9ydCBpdC5cclxuLy8vIEB0eXBlIEJvb2xlYW5cclxuJGdsb2JhbC1mbGV4Ym94OiBmYWxzZSAhZGVmYXVsdDtcclxuXHJcbkBpZiBub3QgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgcHJpbWFyeSkge1xyXG4gIEBlcnJvciAnSW4gJGZvdW5kYXRpb24tcGFsZXR0ZSwgeW91IG11c3QgaGF2ZSBhIGNvbG9yIG5hbWVkIFwicHJpbWFyeVwiLic7XHJcbn1cclxuXHJcbi8vIEludGVybmFsIHZhcmlhYmxlcyB1c2VkIGZvciB0ZXh0IGRpcmVjdGlvblxyXG4kZ2xvYmFsLWxlZnQ6IGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gcnRsLCByaWdodCwgbGVmdCk7XHJcbiRnbG9iYWwtcmlnaHQ6IGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gcnRsLCBsZWZ0LCByaWdodCk7XHJcblxyXG4vLyBJbnRlcm5hbCB2YXJpYWJsZXMgdXNlZCBmb3IgY29sb3JzXHJcbiRwcmltYXJ5LWNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHByaW1hcnkpO1xyXG4kc2Vjb25kYXJ5LWNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHNlY29uZGFyeSk7XHJcbiRzdWNjZXNzLWNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHN1Y2Nlc3MpO1xyXG4kd2FybmluZy1jb2xvcjogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCB3YXJuaW5nKTtcclxuJGFsZXJ0LWNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIGFsZXJ0KTtcclxuXHJcbi8vIFJlbW92ZSB0aGlzIGluIDYuM1xyXG4kLXpmLW1lbnUtaWNvbi1pbXBvcnRlZDogZmFsc2U7XHJcbiQtemYtZmxleC1jbGFzc2VzLWltcG9ydGVkOiBmYWxzZTtcclxuXHJcbkBtaXhpbiBmb3VuZGF0aW9uLWdsb2JhbC1zdHlsZXMge1xyXG4gIEBpbmNsdWRlIC16Zi1ub3JtYWxpemU7XHJcblxyXG4gIC8vIFRoZXNlIHN0eWxlcyBhcmUgYXBwbGllZCB0byBhIDxtZXRhPiB0YWcsIHdoaWNoIGlzIHJlYWQgYnkgdGhlIEZvdW5kYXRpb24gSmF2YVNjcmlwdFxyXG4gIC5mb3VuZGF0aW9uLW1xIHtcclxuICAgIGZvbnQtZmFtaWx5OiAnI3stemYtYnAtc2VyaWFsaXplKCRicmVha3BvaW50cyl9JztcclxuICB9XHJcblxyXG4gIGh0bWwge1xyXG4gICAgZm9udC1zaXplOiAkZ2xvYmFsLWZvbnQtc2l6ZTtcclxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgfVxyXG5cclxuICAvLyBTZXQgYm94LXNpemluZyBnbG9iYWxseSB0byBoYW5kbGUgcGFkZGluZyBhbmQgYm9yZGVyIHdpZHRoc1xyXG4gICosXHJcbiAgKjo6YmVmb3JlLFxyXG4gICo6OmFmdGVyIHtcclxuICAgIGJveC1zaXppbmc6IGluaGVyaXQ7XHJcbiAgfVxyXG5cclxuICAvLyBEZWZhdWx0IGJvZHkgc3R5bGVzXHJcbiAgYm9keSB7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5O1xyXG4gICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcclxuICAgIGxpbmUtaGVpZ2h0OiAkZ2xvYmFsLWxpbmVoZWlnaHQ7XHJcbiAgICBjb2xvcjogJGJvZHktZm9udC1jb2xvcjtcclxuICAgIGJhY2tncm91bmQ6ICRib2R5LWJhY2tncm91bmQ7XHJcblxyXG4gICAgQGlmICgkYm9keS1hbnRpYWxpYXNlZCkge1xyXG4gICAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcclxuICAgICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGltZyB7XHJcbiAgICAvLyBHcmlkIGRlZmF1bHRzIHRvIGdldCBpbWFnZXMgYW5kIGVtYmVkcyB0byB3b3JrIHByb3Blcmx5XHJcbiAgICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICAtbXMtaW50ZXJwb2xhdGlvbi1tb2RlOiBiaWN1YmljO1xyXG5cclxuICAgIC8vIEdldCByaWQgb2YgZ2FwIHVuZGVyIGltYWdlcyBieSBtYWtpbmcgdGhlbSBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGJ5IGRlZmF1bHRcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgfVxyXG5cclxuICAvLyBNYWtlIHN1cmUgdGV4dGFyZWEgdGFrZXMgb24gaGVpZ2h0IGF1dG9tYXRpY2FsbHlcclxuICB0ZXh0YXJlYSB7XHJcbiAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICBtaW4taGVpZ2h0OiA1MHB4O1xyXG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XHJcbiAgfVxyXG5cclxuICAvLyBNYWtlIHNlbGVjdCBlbGVtZW50cyBhcmUgMTAwJSB3aWR0aCBieSBkZWZhdWx0XHJcbiAgc2VsZWN0IHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XHJcbiAgfVxyXG5cclxuICAvLyBTdHlsZXMgR29vZ2xlIE1hcHMgYW5kIE1hcFF1ZXN0IGVtYmVkcyBwcm9wZXJseVxyXG4gIC8vIHNjc3MtbGludDpkaXNhYmxlIElkU2VsZWN0b3JcclxuICAjbWFwX2NhbnZhcyxcclxuICAubWFwX2NhbnZhcyxcclxuICAubXFhLWRpc3BsYXkge1xyXG4gICAgaW1nLFxyXG4gICAgZW1iZWQsXHJcbiAgICBvYmplY3Qge1xyXG4gICAgICBtYXgtd2lkdGg6IG5vbmUgIWltcG9ydGFudDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIFJlc2V0IDxidXR0b24+IHN0eWxlcyBjcmVhdGVkIGJ5IG1vc3QgYnJvd3NlcnNcclxuICBidXR0b24ge1xyXG4gICAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xyXG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xyXG4gICAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xyXG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgYm9yZGVyOiAwO1xyXG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XHJcbiAgICBsaW5lLWhlaWdodDogMTtcclxuICB9XHJcblxyXG4gIC8vIEludGVybmFsIGNsYXNzZXMgdG8gc2hvdy9oaWRlIGVsZW1lbnRzIGluIEphdmFTY3JpcHRcclxuICAuaXMtdmlzaWJsZSB7XHJcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmlzLWhpZGRlbiB7XHJcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG59XHJcblxyXG4vLy8gTG9hZHMgbm9ybWFsaXplLmNzcy5cclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxyXG5AbWl4aW4gLXpmLW5vcm1hbGl6ZSB7XHJcbiAgLyohIG5vcm1hbGl6ZS5jc3MgdjMuMC4zIHwgTUlUIExpY2Vuc2UgfCBnaXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcyAqL1xyXG5cclxuICAvKipcclxuICAgKiAxLiBTZXQgZGVmYXVsdCBmb250IGZhbWlseSB0byBzYW5zLXNlcmlmLlxyXG4gICAqIDIuIFByZXZlbnQgaU9TIGFuZCBJRSB0ZXh0IHNpemUgYWRqdXN0IGFmdGVyIGRldmljZSBvcmllbnRhdGlvbiBjaGFuZ2UsXHJcbiAgICogICAgd2l0aG91dCBkaXNhYmxpbmcgdXNlciB6b29tLlxyXG4gICAqL1xyXG5cclxuICBodG1sIHtcclxuICAgIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmOyAvKiAxICovXHJcbiAgICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xyXG4gICAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZW1vdmUgZGVmYXVsdCBtYXJnaW4uXHJcbiAgICovXHJcblxyXG4gIGJvZHkge1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gIH1cclxuXHJcbiAgLyogSFRNTDUgZGlzcGxheSBkZWZpbml0aW9uc1xyXG4gICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4gIC8qKlxyXG4gICAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBhbnkgSFRNTDUgZWxlbWVudCBpbiBJRSA4LzkuXHJcbiAgICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGBkZXRhaWxzYCBvciBgc3VtbWFyeWAgaW4gSUUgMTAvMTFcclxuICAgKiBhbmQgRmlyZWZveC5cclxuICAgKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYG1haW5gIGluIElFIDExLlxyXG4gICAqL1xyXG5cclxuICBhcnRpY2xlLFxyXG4gIGFzaWRlLFxyXG4gIGRldGFpbHMsXHJcbiAgZmlnY2FwdGlvbixcclxuICBmaWd1cmUsXHJcbiAgZm9vdGVyLFxyXG4gIGhlYWRlcixcclxuICBoZ3JvdXAsXHJcbiAgbWFpbixcclxuICBtZW51LFxyXG4gIG5hdixcclxuICBzZWN0aW9uLFxyXG4gIHN1bW1hcnkge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiAxLiBDb3JyZWN0IGBpbmxpbmUtYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgaW4gSUUgOC85LlxyXG4gICAqIDIuIE5vcm1hbGl6ZSB2ZXJ0aWNhbCBhbGlnbm1lbnQgb2YgYHByb2dyZXNzYCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cclxuICAgKi9cclxuXHJcbiAgYXVkaW8sXHJcbiAgY2FudmFzLFxyXG4gIHByb2dyZXNzLFxyXG4gIHZpZGVvIHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgLyogMSAqL1xyXG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyAvKiAyICovXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBQcmV2ZW50IG1vZGVybiBicm93c2VycyBmcm9tIGRpc3BsYXlpbmcgYGF1ZGlvYCB3aXRob3V0IGNvbnRyb2xzLlxyXG4gICAqIFJlbW92ZSBleGNlc3MgaGVpZ2h0IGluIGlPUyA1IGRldmljZXMuXHJcbiAgICovXHJcblxyXG4gIGF1ZGlvOm5vdChbY29udHJvbHNdKSB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgaGVpZ2h0OiAwO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQWRkcmVzcyBgW2hpZGRlbl1gIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LzEwLlxyXG4gICAqIEhpZGUgdGhlIGB0ZW1wbGF0ZWAgZWxlbWVudCBpbiBJRSA4LzkvMTAvMTEsIFNhZmFyaSwgYW5kIEZpcmVmb3ggPCAyMi5cclxuICAgKi9cclxuXHJcbiAgW2hpZGRlbl0sXHJcbiAgdGVtcGxhdGUge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICB9XHJcblxyXG4gIC8qIExpbmtzXHJcbiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbiAgLyoqXHJcbiAgICogUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgY29sb3IgZnJvbSBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXHJcbiAgICovXHJcblxyXG4gIGEge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJbXByb3ZlIHJlYWRhYmlsaXR5IG9mIGZvY3VzZWQgZWxlbWVudHMgd2hlbiB0aGV5IGFyZSBhbHNvIGluIGFuXHJcbiAgICogYWN0aXZlL2hvdmVyIHN0YXRlLlxyXG4gICAqL1xyXG5cclxuICBhOmFjdGl2ZSxcclxuICBhOmhvdmVyIHtcclxuICAgIG91dGxpbmU6IDA7XHJcbiAgfVxyXG5cclxuICAvKiBUZXh0LWxldmVsIHNlbWFudGljc1xyXG4gICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4gIC8qKlxyXG4gICAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkvMTAvMTEsIFNhZmFyaSwgYW5kIENocm9tZS5cclxuICAgKi9cclxuXHJcbiAgYWJiclt0aXRsZV0ge1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFkZHJlc3Mgc3R5bGUgc2V0IHRvIGBib2xkZXJgIGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cclxuICAgKi9cclxuXHJcbiAgYixcclxuICBzdHJvbmcge1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXHJcbiAgICovXHJcblxyXG4gIGRmbiB7XHJcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBZGRyZXNzIHZhcmlhYmxlIGBoMWAgZm9udC1zaXplIGFuZCBtYXJnaW4gd2l0aGluIGBzZWN0aW9uYCBhbmQgYGFydGljbGVgXHJcbiAgICogY29udGV4dHMgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxyXG4gICAqL1xyXG5cclxuICBoMSB7XHJcbiAgICBmb250LXNpemU6IDJlbTtcclxuICAgIG1hcmdpbjogMC42N2VtIDA7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LlxyXG4gICAqL1xyXG5cclxuICBtYXJrIHtcclxuICAgIGJhY2tncm91bmQ6ICNmZjA7XHJcbiAgICBjb2xvcjogIzAwMDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFkZHJlc3MgaW5jb25zaXN0ZW50IGFuZCB2YXJpYWJsZSBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxyXG4gICAqL1xyXG5cclxuICBzbWFsbCB7XHJcbiAgICBmb250LXNpemU6IDgwJTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGFmZmVjdGluZyBgbGluZS1oZWlnaHRgIGluIGFsbCBicm93c2Vycy5cclxuICAgKi9cclxuXHJcbiAgc3ViLFxyXG4gIHN1cCB7XHJcbiAgICBmb250LXNpemU6IDc1JTtcclxuICAgIGxpbmUtaGVpZ2h0OiAwO1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xyXG4gIH1cclxuXHJcbiAgc3VwIHtcclxuICAgIHRvcDogLTAuNWVtO1xyXG4gIH1cclxuXHJcbiAgc3ViIHtcclxuICAgIGJvdHRvbTogLTAuMjVlbTtcclxuICB9XHJcblxyXG4gIC8qIEVtYmVkZGVkIGNvbnRlbnRcclxuICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuICAvKipcclxuICAgKiBSZW1vdmUgYm9yZGVyIHdoZW4gaW5zaWRlIGBhYCBlbGVtZW50IGluIElFIDgvOS8xMC5cclxuICAgKi9cclxuXHJcbiAgaW1nIHtcclxuICAgIGJvcmRlcjogMDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENvcnJlY3Qgb3ZlcmZsb3cgbm90IGhpZGRlbiBpbiBJRSA5LzEwLzExLlxyXG4gICAqL1xyXG5cclxuICBzdmc6bm90KDpyb290KSB7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gIH1cclxuXHJcbiAgLyogR3JvdXBpbmcgY29udGVudFxyXG4gICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4gIC8qKlxyXG4gICAqIEFkZHJlc3MgbWFyZ2luIG5vdCBwcmVzZW50IGluIElFIDgvOSBhbmQgU2FmYXJpLlxyXG4gICAqL1xyXG5cclxuICBmaWd1cmUge1xyXG4gICAgbWFyZ2luOiAxZW0gNDBweDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFkZHJlc3MgZGlmZmVyZW5jZXMgYmV0d2VlbiBGaXJlZm94IGFuZCBvdGhlciBicm93c2Vycy5cclxuICAgKi9cclxuXHJcbiAgaHIge1xyXG4gICAgYm94LXNpemluZzogY29udGVudC1ib3g7XHJcbiAgICBoZWlnaHQ6IDA7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDb250YWluIG92ZXJmbG93IGluIGFsbCBicm93c2Vycy5cclxuICAgKi9cclxuXHJcbiAgcHJlIHtcclxuICAgIG92ZXJmbG93OiBhdXRvO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQWRkcmVzcyBvZGQgYGVtYC11bml0IGZvbnQgc2l6ZSByZW5kZXJpbmcgaW4gYWxsIGJyb3dzZXJzLlxyXG4gICAqL1xyXG5cclxuICBjb2RlLFxyXG4gIGtiZCxcclxuICBwcmUsXHJcbiAgc2FtcCB7XHJcbiAgICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XHJcbiAgICBmb250LXNpemU6IDFlbTtcclxuICB9XHJcblxyXG4gIC8qIEZvcm1zXHJcbiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbiAgLyoqXHJcbiAgICogS25vd24gbGltaXRhdGlvbjogYnkgZGVmYXVsdCwgQ2hyb21lIGFuZCBTYWZhcmkgb24gT1MgWCBhbGxvdyB2ZXJ5IGxpbWl0ZWRcclxuICAgKiBzdHlsaW5nIG9mIGBzZWxlY3RgLCB1bmxlc3MgYSBgYm9yZGVyYCBwcm9wZXJ0eSBpcyBzZXQuXHJcbiAgICovXHJcblxyXG4gIC8qKlxyXG4gICAqIDEuIENvcnJlY3QgY29sb3Igbm90IGJlaW5nIGluaGVyaXRlZC5cclxuICAgKiAgICBLbm93biBpc3N1ZTogYWZmZWN0cyBjb2xvciBvZiBkaXNhYmxlZCBlbGVtZW50cy5cclxuICAgKiAyLiBDb3JyZWN0IGZvbnQgcHJvcGVydGllcyBub3QgYmVpbmcgaW5oZXJpdGVkLlxyXG4gICAqIDMuIEFkZHJlc3MgbWFyZ2lucyBzZXQgZGlmZmVyZW50bHkgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxyXG4gICAqL1xyXG5cclxuICBidXR0b24sXHJcbiAgaW5wdXQsXHJcbiAgb3B0Z3JvdXAsXHJcbiAgc2VsZWN0LFxyXG4gIHRleHRhcmVhIHtcclxuICAgIGNvbG9yOiBpbmhlcml0OyAvKiAxICovXHJcbiAgICBmb250OiBpbmhlcml0OyAvKiAyICovXHJcbiAgICBtYXJnaW46IDA7IC8qIDMgKi9cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFkZHJlc3MgYG92ZXJmbG93YCBzZXQgdG8gYGhpZGRlbmAgaW4gSUUgOC85LzEwLzExLlxyXG4gICAqL1xyXG5cclxuICBidXR0b24ge1xyXG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBZGRyZXNzIGluY29uc2lzdGVudCBgdGV4dC10cmFuc2Zvcm1gIGluaGVyaXRhbmNlIGZvciBgYnV0dG9uYCBhbmQgYHNlbGVjdGAuXHJcbiAgICogQWxsIG90aGVyIGZvcm0gY29udHJvbCBlbGVtZW50cyBkbyBub3QgaW5oZXJpdCBgdGV4dC10cmFuc2Zvcm1gIHZhbHVlcy5cclxuICAgKiBDb3JyZWN0IGBidXR0b25gIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3gsIElFIDgvOS8xMC8xMSwgYW5kIE9wZXJhLlxyXG4gICAqIENvcnJlY3QgYHNlbGVjdGAgc3R5bGUgaW5oZXJpdGFuY2UgaW4gRmlyZWZveC5cclxuICAgKi9cclxuXHJcbiAgYnV0dG9uLFxyXG4gIHNlbGVjdCB7XHJcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIDEuIEF2b2lkIHRoZSBXZWJLaXQgYnVnIGluIEFuZHJvaWQgNC4wLiogd2hlcmUgKDIpIGRlc3Ryb3lzIG5hdGl2ZSBgYXVkaW9gXHJcbiAgICogICAgYW5kIGB2aWRlb2AgY29udHJvbHMuXHJcbiAgICogMi4gQ29ycmVjdCBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIGBpbnB1dGAgdHlwZXMgaW4gaU9TLlxyXG4gICAqIDMuIEltcHJvdmUgdXNhYmlsaXR5IGFuZCBjb25zaXN0ZW5jeSBvZiBjdXJzb3Igc3R5bGUgYmV0d2VlbiBpbWFnZS10eXBlXHJcbiAgICogICAgYGlucHV0YCBhbmQgb3RoZXJzLlxyXG4gICAqL1xyXG5cclxuICBidXR0b24sXHJcbiAgaHRtbCBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdLCAvKiAxICovXHJcbiAgaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxyXG4gIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xyXG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDIgKi9cclxuICAgIGN1cnNvcjogcG9pbnRlcjsgLyogMyAqL1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmUtc2V0IGRlZmF1bHQgY3Vyc29yIGZvciBkaXNhYmxlZCBlbGVtZW50cy5cclxuICAgKi9cclxuXHJcbiAgYnV0dG9uW2Rpc2FibGVkXSxcclxuICBodG1sIGlucHV0W2Rpc2FibGVkXSB7XHJcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVtb3ZlIGlubmVyIHBhZGRpbmcgYW5kIGJvcmRlciBpbiBGaXJlZm94IDQrLlxyXG4gICAqL1xyXG5cclxuICBidXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXHJcbiAgaW5wdXQ6Oi1tb3otZm9jdXMtaW5uZXIge1xyXG4gICAgYm9yZGVyOiAwO1xyXG4gICAgcGFkZGluZzogMDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFkZHJlc3MgRmlyZWZveCA0KyBzZXR0aW5nIGBsaW5lLWhlaWdodGAgb24gYGlucHV0YCB1c2luZyBgIWltcG9ydGFudGAgaW5cclxuICAgKiB0aGUgVUEgc3R5bGVzaGVldC5cclxuICAgKi9cclxuXHJcbiAgaW5wdXQge1xyXG4gICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEl0J3MgcmVjb21tZW5kZWQgdGhhdCB5b3UgZG9uJ3QgYXR0ZW1wdCB0byBzdHlsZSB0aGVzZSBlbGVtZW50cy5cclxuICAgKiBGaXJlZm94J3MgaW1wbGVtZW50YXRpb24gZG9lc24ndCByZXNwZWN0IGJveC1zaXppbmcsIHBhZGRpbmcsIG9yIHdpZHRoLlxyXG4gICAqXHJcbiAgICogMS4gQWRkcmVzcyBib3ggc2l6aW5nIHNldCB0byBgY29udGVudC1ib3hgIGluIElFIDgvOS8xMC5cclxuICAgKiAyLiBSZW1vdmUgZXhjZXNzIHBhZGRpbmcgaW4gSUUgOC85LzEwLlxyXG4gICAqL1xyXG5cclxuICBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sXHJcbiAgaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcclxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cclxuICAgIHBhZGRpbmc6IDA7IC8qIDIgKi9cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZpeCB0aGUgY3Vyc29yIHN0eWxlIGZvciBDaHJvbWUncyBpbmNyZW1lbnQvZGVjcmVtZW50IGJ1dHRvbnMuIEZvciBjZXJ0YWluXHJcbiAgICogYGZvbnQtc2l6ZWAgdmFsdWVzIG9mIHRoZSBgaW5wdXRgLCBpdCBjYXVzZXMgdGhlIGN1cnNvciBzdHlsZSBvZiB0aGVcclxuICAgKiBkZWNyZW1lbnQgYnV0dG9uIHRvIGNoYW5nZSBmcm9tIGBkZWZhdWx0YCB0byBgdGV4dGAuXHJcbiAgICovXHJcblxyXG4gIGlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXHJcbiAgaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XHJcbiAgICBoZWlnaHQ6IGF1dG87XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiAxLiBBZGRyZXNzIGBhcHBlYXJhbmNlYCBzZXQgdG8gYHNlYXJjaGZpZWxkYCBpbiBTYWZhcmkgYW5kIENocm9tZS5cclxuICAgKiAyLiBBZGRyZXNzIGBib3gtc2l6aW5nYCBzZXQgdG8gYGJvcmRlci1ib3hgIGluIFNhZmFyaSBhbmQgQ2hyb21lLlxyXG4gICAqL1xyXG5cclxuICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcclxuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvKiAxICovXHJcbiAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLyogMiAqL1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVtb3ZlIGlubmVyIHBhZGRpbmcgYW5kIHNlYXJjaCBjYW5jZWwgYnV0dG9uIGluIFNhZmFyaSBhbmQgQ2hyb21lIG9uIE9TIFguXHJcbiAgICogU2FmYXJpIChidXQgbm90IENocm9tZSkgY2xpcHMgdGhlIGNhbmNlbCBidXR0b24gd2hlbiB0aGUgc2VhcmNoIGlucHV0IGhhc1xyXG4gICAqIHBhZGRpbmcgKGFuZCBgdGV4dGZpZWxkYCBhcHBlYXJhbmNlKS5cclxuICAgKi9cclxuXHJcbiAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcclxuICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcclxuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERlZmluZSBjb25zaXN0ZW50IGJvcmRlciwgbWFyZ2luLCBhbmQgcGFkZGluZy5cclxuICAgKiBbTk9URV0gV2UgZG9uJ3QgZW5hYmxlIHRoaXMgcnVsZXNldCBpbiBGb3VuZGF0aW9uLCBiZWNhdXNlIHdlIHdhbnQgdGhlIDxmaWVsZHNldD4gZWxlbWVudCB0byBoYXZlIHBsYWluIHN0eWxpbmcuXHJcbiAgICovXHJcblxyXG4gIC8qIGZpZWxkc2V0IHtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjMGMwYzA7XHJcbiAgICBtYXJnaW46IDAgMnB4O1xyXG4gICAgcGFkZGluZzogMC4zNWVtIDAuNjI1ZW0gMC43NWVtO1xyXG4gIH0gKi9cclxuXHJcbiAgLyoqXHJcbiAgICogMS4gQ29ycmVjdCBgY29sb3JgIG5vdCBiZWluZyBpbmhlcml0ZWQgaW4gSUUgOC85LzEwLzExLlxyXG4gICAqIDIuIFJlbW92ZSBwYWRkaW5nIHNvIHBlb3BsZSBhcmVuJ3QgY2F1Z2h0IG91dCBpZiB0aGV5IHplcm8gb3V0IGZpZWxkc2V0cy5cclxuICAgKi9cclxuXHJcbiAgbGVnZW5kIHtcclxuICAgIGJvcmRlcjogMDsgLyogMSAqL1xyXG4gICAgcGFkZGluZzogMDsgLyogMiAqL1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVtb3ZlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFIDgvOS8xMC8xMS5cclxuICAgKi9cclxuXHJcbiAgdGV4dGFyZWEge1xyXG4gICAgb3ZlcmZsb3c6IGF1dG87XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEb24ndCBpbmhlcml0IHRoZSBgZm9udC13ZWlnaHRgIChhcHBsaWVkIGJ5IGEgcnVsZSBhYm92ZSkuXHJcbiAgICogTk9URTogdGhlIGRlZmF1bHQgY2Fubm90IHNhZmVseSBiZSBjaGFuZ2VkIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIE9TIFguXHJcbiAgICovXHJcblxyXG4gIG9wdGdyb3VwIHtcclxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIH1cclxuXHJcbiAgLyogVGFibGVzXHJcbiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbiAgLyoqXHJcbiAgICogUmVtb3ZlIG1vc3Qgc3BhY2luZyBiZXR3ZWVuIHRhYmxlIGNlbGxzLlxyXG4gICAqL1xyXG5cclxuICB0YWJsZSB7XHJcbiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xyXG4gICAgYm9yZGVyLXNwYWNpbmc6IDA7XHJcbiAgfVxyXG5cclxuICB0ZCxcclxuICB0aCB7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gIH1cclxufVxyXG4iLCIvLyAgRm91bmRhdGlvbiBmb3IgU2l0ZXMgU2V0dGluZ3NcclxuLy8gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbi8vXHJcbi8vICBUYWJsZSBvZiBDb250ZW50czpcclxuLy9cclxuLy8gICAxLiBHbG9iYWxcclxuLy8gICAyLiBCcmVha3BvaW50c1xyXG4vLyAgIDMuIFRoZSBHcmlkXHJcbi8vICAgNC4gQmFzZSBUeXBvZ3JhcGh5XHJcbi8vICAgNS4gVHlwb2dyYXBoeSBIZWxwZXJzXHJcbi8vICAgNi4gQWJpZGVcclxuLy8gICA3LiBBY2NvcmRpb25cclxuLy8gICA4LiBBY2NvcmRpb24gTWVudVxyXG4vLyAgIDkuIEJhZGdlXHJcbi8vICAxMC4gQnJlYWRjcnVtYnNcclxuLy8gIDExLiBCdXR0b25cclxuLy8gIDEyLiBCdXR0b24gR3JvdXBcclxuLy8gIDEzLiBDYWxsb3V0XHJcbi8vICAxNC4gQ2xvc2UgQnV0dG9uXHJcbi8vICAxNS4gRHJpbGxkb3duXHJcbi8vICAxNi4gRHJvcGRvd25cclxuLy8gIDE3LiBEcm9wZG93biBNZW51XHJcbi8vICAxOC4gRmxleCBWaWRlb1xyXG4vLyAgMTkuIEZvcm1zXHJcbi8vICAyMC4gTGFiZWxcclxuLy8gIDIxLiBNZWRpYSBPYmplY3RcclxuLy8gIDIyLiBNZW51XHJcbi8vICAyMy4gTWV0ZXJcclxuLy8gIDI0LiBPZmYtY2FudmFzXHJcbi8vICAyNS4gT3JiaXRcclxuLy8gIDI2LiBQYWdpbmF0aW9uXHJcbi8vICAyNy4gUHJvZ3Jlc3MgQmFyXHJcbi8vICAyOC4gUmV2ZWFsXHJcbi8vICAyOS4gU2xpZGVyXHJcbi8vICAzMC4gU3dpdGNoXHJcbi8vICAzMS4gVGFibGVcclxuLy8gIDMyLiBUYWJzXHJcbi8vICAzMy4gVGh1bWJuYWlsXHJcbi8vICAzNC4gVGl0bGUgQmFyXHJcbi8vICAzNS4gVG9vbHRpcFxyXG4vLyAgMzYuIFRvcCBCYXJcclxuXHJcbkBpbXBvcnQgJ3V0aWwvdXRpbCc7XHJcblxyXG4vLyAxLiBHbG9iYWxcclxuLy8gLS0tLS0tLS0tXHJcblxyXG4kZ2xvYmFsLWZvbnQtc2l6ZTogMTAwJTtcclxuJGdsb2JhbC13aWR0aDogcmVtLWNhbGMoMTIwMCk7XHJcbiRnbG9iYWwtbGluZWhlaWdodDogMS41O1xyXG4kZm91bmRhdGlvbi1wYWxldHRlOiAoXHJcbiAgLy9wcmltYXJ5OiAjMjE5OWU4LFxyXG4gIHByaW1hcnk6ICM5MkI2MzEsICAgIFxyXG4gIHNlY29uZGFyeTogIzc3NyxcclxuICBzdWNjZXNzOiAjM2FkYjc2LFxyXG4gIHdhcm5pbmc6ICNmZmFlMDAsXHJcbiAgYWxlcnQ6ICNlYzU4NDAsXHJcbik7XHJcbiRsaWdodC1ncmF5OiAjZTZlNmU2O1xyXG4kbWVkaXVtLWdyYXk6ICNjYWNhY2E7XHJcbiRkYXJrLWdyYXk6ICM4YThhOGE7XHJcbiRibGFjazogIzBhMGEwYTtcclxuJHdoaXRlOiAjZmVmZWZlO1xyXG4kYm9keS1iYWNrZ3JvdW5kOiAkd2hpdGU7XHJcbiRib2R5LWZvbnQtY29sb3I6ICRibGFjaztcclxuJGJvZHktZm9udC1mYW1pbHk6ICdIZWx2ZXRpY2EgTmV1ZScsIEhlbHZldGljYSwgUm9ib3RvLCBBcmlhbCwgc2Fucy1zZXJpZjtcclxuJGJvZHktYW50aWFsaWFzZWQ6IHRydWU7XHJcbiRnbG9iYWwtbWFyZ2luOiAxcmVtO1xyXG4kZ2xvYmFsLXBhZGRpbmc6IDFyZW07XHJcbiRnbG9iYWwtd2VpZ2h0LW5vcm1hbDogbm9ybWFsO1xyXG4kZ2xvYmFsLXdlaWdodC1ib2xkOiBib2xkO1xyXG4kZ2xvYmFsLXJhZGl1czogMDtcclxuJGdsb2JhbC10ZXh0LWRpcmVjdGlvbjogbHRyO1xyXG4kZ2xvYmFsLWZsZXhib3g6IGZhbHNlO1xyXG4kcHJpbnQtdHJhbnNwYXJlbnQtYmFja2dyb3VuZHM6IHRydWU7XHJcblxyXG5AaW5jbHVkZSBhZGQtZm91bmRhdGlvbi1jb2xvcnM7XHJcblxyXG4vLyAyLiBCcmVha3BvaW50c1xyXG4vLyAtLS0tLS0tLS0tLS0tLVxyXG5cclxuJGJyZWFrcG9pbnRzOiAoXHJcbiAgc21hbGw6IDAsXHJcbiAgbWVkaXVtOiA2NDBweCxcclxuICBsYXJnZTogMTAyNHB4LFxyXG4gIHhsYXJnZTogMTIwMHB4LFxyXG4gIHh4bGFyZ2U6IDE0NDBweCxcclxuKTtcclxuJGJyZWFrcG9pbnQtY2xhc3NlczogKHNtYWxsIG1lZGl1bSBsYXJnZSk7XHJcblxyXG4vLyAzLiBUaGUgR3JpZFxyXG4vLyAtLS0tLS0tLS0tLVxyXG5cclxuJGdyaWQtcm93LXdpZHRoOiAkZ2xvYmFsLXdpZHRoO1xyXG4kZ3JpZC1jb2x1bW4tY291bnQ6IDEyO1xyXG4kZ3JpZC1jb2x1bW4tZ3V0dGVyOiAoXHJcbiAgc21hbGw6IDIwcHgsXHJcbiAgbWVkaXVtOiAzMHB4LFxyXG4pO1xyXG4kZ3JpZC1jb2x1bW4tYWxpZ24tZWRnZTogdHJ1ZTtcclxuJGJsb2NrLWdyaWQtbWF4OiA4O1xyXG5cclxuLy8gNC4gQmFzZSBUeXBvZ3JhcGh5XHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuJGhlYWRlci1mb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHk7XHJcbiRoZWFkZXItZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcclxuJGhlYWRlci1mb250LXN0eWxlOiBub3JtYWw7XHJcbiRmb250LWZhbWlseS1tb25vc3BhY2U6IENvbnNvbGFzLCAnTGliZXJhdGlvbiBNb25vJywgQ291cmllciwgbW9ub3NwYWNlO1xyXG4kaGVhZGVyLXNpemVzOiAoXHJcbiAgc21hbGw6IChcclxuICAgICdoMSc6IDI0LFxyXG4gICAgJ2gyJzogMjAsXHJcbiAgICAnaDMnOiAxOSxcclxuICAgICdoNCc6IDE4LFxyXG4gICAgJ2g1JzogMTcsXHJcbiAgICAnaDYnOiAxNixcclxuICApLFxyXG4gIG1lZGl1bTogKFxyXG4gICAgJ2gxJzogNDgsXHJcbiAgICAnaDInOiA0MCxcclxuICAgICdoMyc6IDMxLFxyXG4gICAgJ2g0JzogMjUsXHJcbiAgICAnaDUnOiAyMCxcclxuICAgICdoNic6IDE2LFxyXG4gICksXHJcbik7XHJcbiRoZWFkZXItY29sb3I6IGluaGVyaXQ7XHJcbiRoZWFkZXItbGluZWhlaWdodDogMS40O1xyXG4kaGVhZGVyLW1hcmdpbi1ib3R0b206IDAuNXJlbTtcclxuJGhlYWRlci10ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xyXG4kc21hbGwtZm9udC1zaXplOiA4MCU7XHJcbiRoZWFkZXItc21hbGwtZm9udC1jb2xvcjogJG1lZGl1bS1ncmF5O1xyXG4kcGFyYWdyYXBoLWxpbmVoZWlnaHQ6IDEuNjtcclxuJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tOiAxcmVtO1xyXG4kcGFyYWdyYXBoLXRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7XHJcbiRjb2RlLWNvbG9yOiAkYmxhY2s7XHJcbiRjb2RlLWZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktbW9ub3NwYWNlO1xyXG4kY29kZS1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xyXG4kY29kZS1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcclxuJGNvZGUtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xyXG4kY29kZS1wYWRkaW5nOiByZW0tY2FsYygyIDUgMSk7XHJcbiRhbmNob3ItY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xyXG4kYW5jaG9yLWNvbG9yLWhvdmVyOiBzY2FsZS1jb2xvcigkYW5jaG9yLWNvbG9yLCAkbGlnaHRuZXNzOiAtMTQlKTtcclxuJGFuY2hvci10ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiRhbmNob3ItdGV4dC1kZWNvcmF0aW9uLWhvdmVyOiBub25lO1xyXG4kaHItd2lkdGg6ICRnbG9iYWwtd2lkdGg7XHJcbiRoci1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XHJcbiRoci1tYXJnaW46IHJlbS1jYWxjKDIwKSBhdXRvO1xyXG4kbGlzdC1saW5laGVpZ2h0OiAkcGFyYWdyYXBoLWxpbmVoZWlnaHQ7XHJcbiRsaXN0LW1hcmdpbi1ib3R0b206ICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTtcclxuJGxpc3Qtc3R5bGUtdHlwZTogZGlzYztcclxuJGxpc3Qtc3R5bGUtcG9zaXRpb246IG91dHNpZGU7XHJcbiRsaXN0LXNpZGUtbWFyZ2luOiAxLjI1cmVtO1xyXG4kbGlzdC1uZXN0ZWQtc2lkZS1tYXJnaW46IDEuMjVyZW07XHJcbiRkZWZubGlzdC1tYXJnaW4tYm90dG9tOiAxcmVtO1xyXG4kZGVmbmxpc3QtdGVybS13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XHJcbiRkZWZubGlzdC10ZXJtLW1hcmdpbi1ib3R0b206IDAuM3JlbTtcclxuJGJsb2NrcXVvdGUtY29sb3I6ICRkYXJrLWdyYXk7XHJcbiRibG9ja3F1b3RlLXBhZGRpbmc6IHJlbS1jYWxjKDkgMjAgMCAxOSk7XHJcbiRibG9ja3F1b3RlLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcclxuJGNpdGUtZm9udC1zaXplOiByZW0tY2FsYygxMyk7XHJcbiRjaXRlLWNvbG9yOiAkZGFyay1ncmF5O1xyXG4ka2V5c3Ryb2tlLWZvbnQ6ICRmb250LWZhbWlseS1tb25vc3BhY2U7XHJcbiRrZXlzdHJva2UtY29sb3I6ICRibGFjaztcclxuJGtleXN0cm9rZS1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcclxuJGtleXN0cm9rZS1wYWRkaW5nOiByZW0tY2FsYygyIDQgMCk7XHJcbiRrZXlzdHJva2UtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcclxuJGFiYnItdW5kZXJsaW5lOiAxcHggZG90dGVkICRibGFjaztcclxuXHJcbi8vIDUuIFR5cG9ncmFwaHkgSGVscGVyc1xyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcbiRsZWFkLWZvbnQtc2l6ZTogJGdsb2JhbC1mb250LXNpemUgKiAxLjI1O1xyXG4kbGVhZC1saW5laGVpZ2h0OiAxLjY7XHJcbiRzdWJoZWFkZXItbGluZWhlaWdodDogMS40O1xyXG4kc3ViaGVhZGVyLWNvbG9yOiAkZGFyay1ncmF5O1xyXG4kc3ViaGVhZGVyLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XHJcbiRzdWJoZWFkZXItbWFyZ2luLXRvcDogMC4ycmVtO1xyXG4kc3ViaGVhZGVyLW1hcmdpbi1ib3R0b206IDAuNXJlbTtcclxuJHN0YXQtZm9udC1zaXplOiAyLjVyZW07XHJcblxyXG4vLyA2LiBBYmlkZVxyXG4vLyAtLS0tLS0tLVxyXG5cclxuJGFiaWRlLWlucHV0czogdHJ1ZTtcclxuJGFiaWRlLWxhYmVsczogdHJ1ZTtcclxuJGlucHV0LWJhY2tncm91bmQtaW52YWxpZDogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBhbGVydCk7XHJcbiRmb3JtLWxhYmVsLWNvbG9yLWludmFsaWQ6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgYWxlcnQpO1xyXG4kaW5wdXQtZXJyb3ItY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgYWxlcnQpO1xyXG4kaW5wdXQtZXJyb3ItZm9udC1zaXplOiByZW0tY2FsYygxMik7XHJcbiRpbnB1dC1lcnJvci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcclxuXHJcbi8vIDcuIEFjY29yZGlvblxyXG4vLyAtLS0tLS0tLS0tLS1cclxuXHJcbiRhY2NvcmRpb24tYmFja2dyb3VuZDogJHdoaXRlO1xyXG4kYWNjb3JkaW9uLXBsdXNtaW51czogdHJ1ZTtcclxuJGFjY29yZGlvbi1pdGVtLWNvbG9yOiBmb3JlZ3JvdW5kKCRhY2NvcmRpb24tYmFja2dyb3VuZCwgJHByaW1hcnktY29sb3IpO1xyXG4kYWNjb3JkaW9uLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJGxpZ2h0LWdyYXk7XHJcbiRhY2NvcmRpb24taXRlbS1wYWRkaW5nOiAxLjI1cmVtIDFyZW07XHJcbiRhY2NvcmRpb24tY29udGVudC1iYWNrZ3JvdW5kOiAkd2hpdGU7XHJcbiRhY2NvcmRpb24tY29udGVudC1ib3JkZXI6IDFweCBzb2xpZCAkbGlnaHQtZ3JheTtcclxuJGFjY29yZGlvbi1jb250ZW50LWNvbG9yOiBmb3JlZ3JvdW5kKCRhY2NvcmRpb24tYmFja2dyb3VuZCwgJHByaW1hcnktY29sb3IpO1xyXG4kYWNjb3JkaW9uLWNvbnRlbnQtcGFkZGluZzogMXJlbTtcclxuXHJcbi8vIDguIEFjY29yZGlvbiBNZW51XHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4kYWNjb3JkaW9ubWVudS1hcnJvd3M6IHRydWU7XHJcbiRhY2NvcmRpb25tZW51LWFycm93LWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcclxuXHJcbi8vIDkuIEJhZGdlXHJcbi8vIC0tLS0tLS0tXHJcblxyXG4kYmFkZ2UtYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XHJcbiRiYWRnZS1jb2xvcjogZm9yZWdyb3VuZCgkYmFkZ2UtYmFja2dyb3VuZCk7XHJcbiRiYWRnZS1wYWRkaW5nOiAwLjNlbTtcclxuJGJhZGdlLW1pbndpZHRoOiAyLjFlbTtcclxuJGJhZGdlLWZvbnQtc2l6ZTogMC42cmVtO1xyXG5cclxuLy8gMTAuIEJyZWFkY3J1bWJzXHJcbi8vIC0tLS0tLS0tLS0tLS0tLVxyXG5cclxuJGJyZWFkY3J1bWJzLW1hcmdpbjogMCAwICRnbG9iYWwtbWFyZ2luIDA7XHJcbiRicmVhZGNydW1icy1pdGVtLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTEpO1xyXG4kYnJlYWRjcnVtYnMtaXRlbS1jb2xvcjogJHByaW1hcnktY29sb3I7XHJcbiRicmVhZGNydW1icy1pdGVtLWNvbG9yLWN1cnJlbnQ6ICRibGFjaztcclxuJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3ItZGlzYWJsZWQ6ICRtZWRpdW0tZ3JheTtcclxuJGJyZWFkY3J1bWJzLWl0ZW0tbWFyZ2luOiAwLjc1cmVtO1xyXG4kYnJlYWRjcnVtYnMtaXRlbS11cHBlcmNhc2U6IHRydWU7XHJcbiRicmVhZGNydW1icy1pdGVtLXNsYXNoOiB0cnVlO1xyXG5cclxuLy8gMTEuIEJ1dHRvblxyXG4vLyAtLS0tLS0tLS0tXHJcblxyXG4kYnV0dG9uLXBhZGRpbmc6IDAuODVlbSAxZW07XHJcbiRidXR0b24tbWFyZ2luOiAwIDAgJGdsb2JhbC1tYXJnaW4gMDtcclxuJGJ1dHRvbi1maWxsOiBzb2xpZDtcclxuJGJ1dHRvbi1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcclxuJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyOiBzY2FsZS1jb2xvcigkYnV0dG9uLWJhY2tncm91bmQsICRsaWdodG5lc3M6IC0xNSUpO1xyXG4kYnV0dG9uLWNvbG9yOiAkd2hpdGU7XHJcbiRidXR0b24tY29sb3ItYWx0OiAkYmxhY2s7XHJcbiRidXR0b24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcclxuJGJ1dHRvbi1zaXplczogKFxyXG4gIHRpbnk6IDAuNnJlbSxcclxuICBzbWFsbDogMC43NXJlbSxcclxuICBkZWZhdWx0OiAwLjlyZW0sXHJcbiAgbGFyZ2U6IDEuMjVyZW0sXHJcbik7XHJcbiRidXR0b24tb3BhY2l0eS1kaXNhYmxlZDogMC4yNTtcclxuXHJcbi8vIDEyLiBCdXR0b24gR3JvdXBcclxuLy8gLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuJGJ1dHRvbmdyb3VwLW1hcmdpbjogMXJlbTtcclxuJGJ1dHRvbmdyb3VwLXNwYWNpbmc6IDFweDtcclxuJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yOiAnLmJ1dHRvbic7XHJcbiRidXR0b25ncm91cC1leHBhbmQtbWF4OiA2O1xyXG5cclxuLy8gMTMuIENhbGxvdXRcclxuLy8gLS0tLS0tLS0tLS1cclxuXHJcbiRjYWxsb3V0LWJhY2tncm91bmQ6ICR3aGl0ZTtcclxuJGNhbGxvdXQtYmFja2dyb3VuZC1mYWRlOiA4NSU7XHJcbiRjYWxsb3V0LWJvcmRlcjogMXB4IHNvbGlkIHJnYmEoJGJsYWNrLCAwLjI1KTtcclxuJGNhbGxvdXQtbWFyZ2luOiAwIDAgMXJlbSAwO1xyXG4kY2FsbG91dC1wYWRkaW5nOiAxcmVtO1xyXG4kY2FsbG91dC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xyXG4kY2FsbG91dC1mb250LWNvbG9yLWFsdDogJGJvZHktYmFja2dyb3VuZDtcclxuJGNhbGxvdXQtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcclxuJGNhbGxvdXQtbGluay10aW50OiAzMCU7XHJcblxyXG4vLyAxNC4gQ2xvc2UgQnV0dG9uXHJcbi8vIC0tLS0tLS0tLS0tLS0tLS1cclxuXHJcbiRjbG9zZWJ1dHRvbi1wb3NpdGlvbjogcmlnaHQgdG9wO1xyXG4kY2xvc2VidXR0b24tb2Zmc2V0LWhvcml6b250YWw6IDFyZW07XHJcbiRjbG9zZWJ1dHRvbi1vZmZzZXQtdmVydGljYWw6IDAuNXJlbTtcclxuJGNsb3NlYnV0dG9uLXNpemU6IDJlbTtcclxuJGNsb3NlYnV0dG9uLWxpbmVoZWlnaHQ6IDE7XHJcbiRjbG9zZWJ1dHRvbi1jb2xvcjogJGRhcmstZ3JheTtcclxuJGNsb3NlYnV0dG9uLWNvbG9yLWhvdmVyOiAkYmxhY2s7XHJcblxyXG4vLyAxNS4gRHJpbGxkb3duXHJcbi8vIC0tLS0tLS0tLS0tLS1cclxuXHJcbiRkcmlsbGRvd24tdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzIGxpbmVhcjtcclxuJGRyaWxsZG93bi1hcnJvd3M6IHRydWU7XHJcbiRkcmlsbGRvd24tYXJyb3ctY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xyXG4kZHJpbGxkb3duLWJhY2tncm91bmQ6ICR3aGl0ZTtcclxuXHJcbi8vIDE2LiBEcm9wZG93blxyXG4vLyAtLS0tLS0tLS0tLS1cclxuXHJcbiRkcm9wZG93bi1wYWRkaW5nOiAxcmVtO1xyXG4kZHJvcGRvd24tYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xyXG4kZHJvcGRvd24tZm9udC1zaXplOiAxcmVtO1xyXG4kZHJvcGRvd24td2lkdGg6IDMwMHB4O1xyXG4kZHJvcGRvd24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcclxuJGRyb3Bkb3duLXNpemVzOiAoXHJcbiAgdGlueTogMTAwcHgsXHJcbiAgc21hbGw6IDIwMHB4LFxyXG4gIGxhcmdlOiA0MDBweCxcclxuKTtcclxuXHJcbi8vIDE3LiBEcm9wZG93biBNZW51XHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4kZHJvcGRvd25tZW51LWFycm93czogdHJ1ZTtcclxuJGRyb3Bkb3dubWVudS1hcnJvdy1jb2xvcjogJGFuY2hvci1jb2xvcjtcclxuJGRyb3Bkb3dubWVudS1taW4td2lkdGg6IDIwMHB4O1xyXG4kZHJvcGRvd25tZW51LWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheTtcclxuJGRyb3Bkb3dubWVudS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XHJcblxyXG4vLyAxOC4gRmxleCBWaWRlb1xyXG4vLyAtLS0tLS0tLS0tLS0tLVxyXG5cclxuJGZsZXh2aWRlby1tYXJnaW4tYm90dG9tOiByZW0tY2FsYygxNik7XHJcbiRmbGV4dmlkZW8tcmF0aW86IDQgYnkgMztcclxuJGZsZXh2aWRlby1yYXRpby13aWRlc2NyZWVuOiAxNiBieSA5O1xyXG5cclxuLy8gMTkuIEZvcm1zXHJcbi8vIC0tLS0tLS0tLVxyXG5cclxuJGZpZWxkc2V0LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcclxuJGZpZWxkc2V0LXBhZGRpbmc6IHJlbS1jYWxjKDIwKTtcclxuJGZpZWxkc2V0LW1hcmdpbjogcmVtLWNhbGMoMTggMCk7XHJcbiRsZWdlbmQtcGFkZGluZzogcmVtLWNhbGMoMCAzKTtcclxuJGZvcm0tc3BhY2luZzogcmVtLWNhbGMoMTYpO1xyXG4kaGVscHRleHQtY29sb3I6ICRibGFjaztcclxuJGhlbHB0ZXh0LWZvbnQtc2l6ZTogcmVtLWNhbGMoMTMpO1xyXG4kaGVscHRleHQtZm9udC1zdHlsZTogaXRhbGljO1xyXG4kaW5wdXQtcHJlZml4LWNvbG9yOiAkYmxhY2s7XHJcbiRpbnB1dC1wcmVmaXgtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXk7XHJcbiRpbnB1dC1wcmVmaXgtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xyXG4kaW5wdXQtcHJlZml4LXBhZGRpbmc6IDFyZW07XHJcbiRmb3JtLWxhYmVsLWNvbG9yOiAkYmxhY2s7XHJcbiRmb3JtLWxhYmVsLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xyXG4kZm9ybS1sYWJlbC1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xyXG4kZm9ybS1sYWJlbC1saW5lLWhlaWdodDogMS44O1xyXG4kc2VsZWN0LWJhY2tncm91bmQ6ICR3aGl0ZTtcclxuJHNlbGVjdC10cmlhbmdsZS1jb2xvcjogJGRhcmstZ3JheTtcclxuJHNlbGVjdC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xyXG4kaW5wdXQtY29sb3I6ICRibGFjaztcclxuJGlucHV0LXBsYWNlaG9sZGVyLWNvbG9yOiAkbWVkaXVtLWdyYXk7XHJcbiRpbnB1dC1mb250LWZhbWlseTogaW5oZXJpdDtcclxuJGlucHV0LWZvbnQtc2l6ZTogcmVtLWNhbGMoMTYpO1xyXG4kaW5wdXQtYmFja2dyb3VuZDogJHdoaXRlO1xyXG4kaW5wdXQtYmFja2dyb3VuZC1mb2N1czogJHdoaXRlO1xyXG4kaW5wdXQtYmFja2dyb3VuZC1kaXNhYmxlZDogJGxpZ2h0LWdyYXk7XHJcbiRpbnB1dC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XHJcbiRpbnB1dC1ib3JkZXItZm9jdXM6IDFweCBzb2xpZCAkZGFyay1ncmF5O1xyXG4kaW5wdXQtc2hhZG93OiBpbnNldCAwIDFweCAycHggcmdiYSgkYmxhY2ssIDAuMSk7XHJcbiRpbnB1dC1zaGFkb3ctZm9jdXM6IDAgMCA1cHggJG1lZGl1bS1ncmF5O1xyXG4kaW5wdXQtY3Vyc29yLWRpc2FibGVkOiBkZWZhdWx0O1xyXG4kaW5wdXQtdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjVzLCBib3JkZXItY29sb3IgMC4yNXMgZWFzZS1pbi1vdXQ7XHJcbiRpbnB1dC1udW1iZXItc3Bpbm5lcnM6IHRydWU7XHJcbiRpbnB1dC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xyXG5cclxuLy8gMjAuIExhYmVsXHJcbi8vIC0tLS0tLS0tLVxyXG5cclxuJGxhYmVsLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xyXG4kbGFiZWwtY29sb3I6IGZvcmVncm91bmQoJGxhYmVsLWJhY2tncm91bmQpO1xyXG4kbGFiZWwtZm9udC1zaXplOiAwLjhyZW07XHJcbiRsYWJlbC1wYWRkaW5nOiAwLjMzMzMzcmVtIDAuNXJlbTtcclxuJGxhYmVsLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XHJcblxyXG4vLyAyMS4gTWVkaWEgT2JqZWN0XHJcbi8vIC0tLS0tLS0tLS0tLS0tLS1cclxuXHJcbiRtZWRpYW9iamVjdC1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcclxuJG1lZGlhb2JqZWN0LXNlY3Rpb24tcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nO1xyXG4kbWVkaWFvYmplY3QtaW1hZ2Utd2lkdGgtc3RhY2tlZDogMTAwJTtcclxuXHJcbi8vIDIyLiBNZW51XHJcbi8vIC0tLS0tLS0tXHJcblxyXG4kbWVudS1tYXJnaW46IDA7XHJcbiRtZW51LW1hcmdpbi1uZXN0ZWQ6IDFyZW07XHJcbiRtZW51LWl0ZW0tcGFkZGluZzogMC43cmVtIDFyZW07XHJcbiRtZW51LWl0ZW0tY29sb3ItYWN0aXZlOiAkd2hpdGU7XHJcbiRtZW51LWl0ZW0tYmFja2dyb3VuZC1hY3RpdmU6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgcHJpbWFyeSk7XHJcbiRtZW51LWljb24tc3BhY2luZzogMC4yNXJlbTtcclxuXHJcbi8vIDIzLiBNZXRlclxyXG4vLyAtLS0tLS0tLS1cclxuXHJcbiRtZXRlci1oZWlnaHQ6IDFyZW07XHJcbiRtZXRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xyXG4kbWV0ZXItYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5O1xyXG4kbWV0ZXItZmlsbC1nb29kOiAkc3VjY2Vzcy1jb2xvcjtcclxuJG1ldGVyLWZpbGwtbWVkaXVtOiAkd2FybmluZy1jb2xvcjtcclxuJG1ldGVyLWZpbGwtYmFkOiAkYWxlcnQtY29sb3I7XHJcblxyXG4vLyAyNC4gT2ZmLWNhbnZhc1xyXG4vLyAtLS0tLS0tLS0tLS0tLVxyXG5cclxuJG9mZmNhbnZhcy1zaXplOiAyNTBweDtcclxuJG9mZmNhbnZhcy1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcclxuJG9mZmNhbnZhcy16aW5kZXg6IC0xO1xyXG4kb2ZmY2FudmFzLXRyYW5zaXRpb24tbGVuZ3RoOiAwLjVzO1xyXG4kb2ZmY2FudmFzLXRyYW5zaXRpb24tdGltaW5nOiBlYXNlO1xyXG4kb2ZmY2FudmFzLWZpeGVkLXJldmVhbDogdHJ1ZTtcclxuJG9mZmNhbnZhcy1leGl0LWJhY2tncm91bmQ6IHJnYmEoJHdoaXRlLCAwLjI1KTtcclxuJG1haW5jb250ZW50LWNsYXNzOiAnb2ZmLWNhbnZhcy1jb250ZW50JztcclxuJG1haW5jb250ZW50LXNoYWRvdzogMCAwIDEwcHggcmdiYSgkYmxhY2ssIDAuNSk7XHJcblxyXG4vLyAyNS4gT3JiaXRcclxuLy8gLS0tLS0tLS0tXHJcblxyXG4kb3JiaXQtYnVsbGV0LWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheTtcclxuJG9yYml0LWJ1bGxldC1iYWNrZ3JvdW5kLWFjdGl2ZTogJGRhcmstZ3JheTtcclxuJG9yYml0LWJ1bGxldC1kaWFtZXRlcjogMS4ycmVtO1xyXG4kb3JiaXQtYnVsbGV0LW1hcmdpbjogMC4xcmVtO1xyXG4kb3JiaXQtYnVsbGV0LW1hcmdpbi10b3A6IDAuOHJlbTtcclxuJG9yYml0LWJ1bGxldC1tYXJnaW4tYm90dG9tOiAwLjhyZW07XHJcbiRvcmJpdC1jYXB0aW9uLWJhY2tncm91bmQ6IHJnYmEoJGJsYWNrLCAwLjUpO1xyXG4kb3JiaXQtY2FwdGlvbi1wYWRkaW5nOiAxcmVtO1xyXG4kb3JiaXQtY29udHJvbC1iYWNrZ3JvdW5kLWhvdmVyOiByZ2JhKCRibGFjaywgMC41KTtcclxuJG9yYml0LWNvbnRyb2wtcGFkZGluZzogMXJlbTtcclxuJG9yYml0LWNvbnRyb2wtemluZGV4OiAxMDtcclxuXHJcbi8vIDI2LiBQYWdpbmF0aW9uXHJcbi8vIC0tLS0tLS0tLS0tLS0tXHJcblxyXG4kcGFnaW5hdGlvbi1mb250LXNpemU6IHJlbS1jYWxjKDE0KTtcclxuJHBhZ2luYXRpb24tbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW47XHJcbiRwYWdpbmF0aW9uLWl0ZW0tY29sb3I6ICRibGFjaztcclxuJHBhZ2luYXRpb24taXRlbS1wYWRkaW5nOiByZW0tY2FsYygzIDEwKTtcclxuJHBhZ2luYXRpb24taXRlbS1zcGFjaW5nOiByZW0tY2FsYygxKTtcclxuJHBhZ2luYXRpb24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcclxuJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kLWhvdmVyOiAkbGlnaHQtZ3JheTtcclxuJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kLWN1cnJlbnQ6ICRwcmltYXJ5LWNvbG9yO1xyXG4kcGFnaW5hdGlvbi1pdGVtLWNvbG9yLWN1cnJlbnQ6IGZvcmVncm91bmQoJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kLWN1cnJlbnQpO1xyXG4kcGFnaW5hdGlvbi1pdGVtLWNvbG9yLWRpc2FibGVkOiAkbWVkaXVtLWdyYXk7XHJcbiRwYWdpbmF0aW9uLWVsbGlwc2lzLWNvbG9yOiAkYmxhY2s7XHJcbiRwYWdpbmF0aW9uLW1vYmlsZS1pdGVtczogZmFsc2U7XHJcbiRwYWdpbmF0aW9uLWFycm93czogdHJ1ZTtcclxuXHJcbi8vIDI3LiBQcm9ncmVzcyBCYXJcclxuLy8gLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuJHByb2dyZXNzLWhlaWdodDogMXJlbTtcclxuJHByb2dyZXNzLWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheTtcclxuJHByb2dyZXNzLW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xyXG4kcHJvZ3Jlc3MtbWV0ZXItYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XHJcbiRwcm9ncmVzcy1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xyXG5cclxuLy8gMjguIFJldmVhbFxyXG4vLyAtLS0tLS0tLS0tXHJcblxyXG4kcmV2ZWFsLWJhY2tncm91bmQ6ICR3aGl0ZTtcclxuJHJldmVhbC13aWR0aDogNjAwcHg7XHJcbiRyZXZlYWwtbWF4LXdpZHRoOiAkZ2xvYmFsLXdpZHRoO1xyXG4kcmV2ZWFsLXBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZztcclxuJHJldmVhbC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XHJcbiRyZXZlYWwtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcclxuJHJldmVhbC16aW5kZXg6IDEwMDU7XHJcbiRyZXZlYWwtb3ZlcmxheS1iYWNrZ3JvdW5kOiByZ2JhKCRibGFjaywgMC40NSk7XHJcblxyXG4vLyAyOS4gU2xpZGVyXHJcbi8vIC0tLS0tLS0tLS1cclxuXHJcbiRzbGlkZXItd2lkdGgtdmVydGljYWw6IDAuNXJlbTtcclxuJHNsaWRlci10cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcclxuJHNsaWRlci1oZWlnaHQ6IDAuNXJlbTtcclxuJHNsaWRlci1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcclxuJHNsaWRlci1maWxsLWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheTtcclxuJHNsaWRlci1oYW5kbGUtaGVpZ2h0OiAxLjRyZW07XHJcbiRzbGlkZXItaGFuZGxlLXdpZHRoOiAxLjRyZW07XHJcbiRzbGlkZXItaGFuZGxlLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xyXG4kc2xpZGVyLW9wYWNpdHktZGlzYWJsZWQ6IDAuMjU7XHJcbiRzbGlkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcclxuXHJcbi8vIDMwLiBTd2l0Y2hcclxuLy8gLS0tLS0tLS0tLVxyXG5cclxuJHN3aXRjaC1iYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXk7XHJcbiRzd2l0Y2gtYmFja2dyb3VuZC1hY3RpdmU6ICRwcmltYXJ5LWNvbG9yO1xyXG4kc3dpdGNoLWhlaWdodDogMnJlbTtcclxuJHN3aXRjaC1oZWlnaHQtdGlueTogMS41cmVtO1xyXG4kc3dpdGNoLWhlaWdodC1zbWFsbDogMS43NXJlbTtcclxuJHN3aXRjaC1oZWlnaHQtbGFyZ2U6IDIuNXJlbTtcclxuJHN3aXRjaC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xyXG4kc3dpdGNoLW1hcmdpbjogJGdsb2JhbC1tYXJnaW47XHJcbiRzd2l0Y2gtcGFkZGxlLWJhY2tncm91bmQ6ICR3aGl0ZTtcclxuJHN3aXRjaC1wYWRkbGUtb2Zmc2V0OiAwLjI1cmVtO1xyXG4kc3dpdGNoLXBhZGRsZS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xyXG4kc3dpdGNoLXBhZGRsZS10cmFuc2l0aW9uOiBhbGwgMC4yNXMgZWFzZS1vdXQ7XHJcblxyXG4vLyAzMS4gVGFibGVcclxuLy8gLS0tLS0tLS0tXHJcblxyXG4kdGFibGUtYmFja2dyb3VuZDogJHdoaXRlO1xyXG4kdGFibGUtY29sb3Itc2NhbGU6IDUlO1xyXG4kdGFibGUtYm9yZGVyOiAxcHggc29saWQgc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSk7XHJcbiR0YWJsZS1wYWRkaW5nOiByZW0tY2FsYyg4IDEwIDEwKTtcclxuJHRhYmxlLWhvdmVyLXNjYWxlOiAyJTtcclxuJHRhYmxlLXJvdy1ob3ZlcjogZGFya2VuKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtaG92ZXItc2NhbGUpO1xyXG4kdGFibGUtcm93LXN0cmlwZS1ob3ZlcjogZGFya2VuKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUgKyAkdGFibGUtaG92ZXItc2NhbGUpO1xyXG4kdGFibGUtc3RyaXBlZC1iYWNrZ3JvdW5kOiBzbWFydC1zY2FsZSgkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlKTtcclxuJHRhYmxlLXN0cmlwZTogZXZlbjtcclxuJHRhYmxlLWhlYWQtYmFja2dyb3VuZDogc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSAvIDIpO1xyXG4kdGFibGUtZm9vdC1iYWNrZ3JvdW5kOiBzbWFydC1zY2FsZSgkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlKTtcclxuJHRhYmxlLWhlYWQtZm9udC1jb2xvcjogJGJvZHktZm9udC1jb2xvcjtcclxuJHNob3ctaGVhZGVyLWZvci1zdGFja2VkOiBmYWxzZTtcclxuXHJcbi8vIDMyLiBUYWJzXHJcbi8vIC0tLS0tLS0tXHJcblxyXG4kdGFiLW1hcmdpbjogMDtcclxuJHRhYi1iYWNrZ3JvdW5kOiAkd2hpdGU7XHJcbiR0YWItYmFja2dyb3VuZC1hY3RpdmU6ICRsaWdodC1ncmF5O1xyXG4kdGFiLWl0ZW0tZm9udC1zaXplOiByZW0tY2FsYygxMik7XHJcbiR0YWItaXRlbS1iYWNrZ3JvdW5kLWhvdmVyOiAkd2hpdGU7XHJcbiR0YWItaXRlbS1wYWRkaW5nOiAxLjI1cmVtIDEuNXJlbTtcclxuJHRhYi1leHBhbmQtbWF4OiA2O1xyXG4kdGFiLWNvbnRlbnQtYmFja2dyb3VuZDogJHdoaXRlO1xyXG4kdGFiLWNvbnRlbnQtYm9yZGVyOiAkbGlnaHQtZ3JheTtcclxuJHRhYi1jb250ZW50LWNvbG9yOiBmb3JlZ3JvdW5kKCR0YWItYmFja2dyb3VuZCwgJHByaW1hcnktY29sb3IpO1xyXG4kdGFiLWNvbnRlbnQtcGFkZGluZzogMXJlbTtcclxuXHJcbi8vIDMzLiBUaHVtYm5haWxcclxuLy8gLS0tLS0tLS0tLS0tLVxyXG5cclxuJHRodW1ibmFpbC1ib3JkZXI6IHNvbGlkIDRweCAkd2hpdGU7XHJcbiR0aHVtYm5haWwtbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW47XHJcbiR0aHVtYm5haWwtc2hhZG93OiAwIDAgMCAxcHggcmdiYSgkYmxhY2ssIDAuMik7XHJcbiR0aHVtYm5haWwtc2hhZG93LWhvdmVyOiAwIDAgNnB4IDFweCByZ2JhKCRwcmltYXJ5LWNvbG9yLCAwLjUpO1xyXG4kdGh1bWJuYWlsLXRyYW5zaXRpb246IGJveC1zaGFkb3cgMjAwbXMgZWFzZS1vdXQ7XHJcbiR0aHVtYm5haWwtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcclxuXHJcbi8vIDM0LiBUaXRsZSBCYXJcclxuLy8gLS0tLS0tLS0tLS0tLVxyXG5cclxuJHRpdGxlYmFyLWJhY2tncm91bmQ6ICRibGFjaztcclxuJHRpdGxlYmFyLWNvbG9yOiAkd2hpdGU7XHJcbiR0aXRsZWJhci1wYWRkaW5nOiAwLjVyZW07XHJcbiR0aXRsZWJhci10ZXh0LWZvbnQtd2VpZ2h0OiBib2xkO1xyXG4kdGl0bGViYXItaWNvbi1jb2xvcjogJHdoaXRlO1xyXG4kdGl0bGViYXItaWNvbi1jb2xvci1ob3ZlcjogJG1lZGl1bS1ncmF5O1xyXG4kdGl0bGViYXItaWNvbi1zcGFjaW5nOiAwLjI1cmVtO1xyXG5cclxuLy8gMzUuIFRvb2x0aXBcclxuLy8gLS0tLS0tLS0tLS1cclxuXHJcbiRoYXMtdGlwLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xyXG4kaGFzLXRpcC1ib3JkZXItYm90dG9tOiBkb3R0ZWQgMXB4ICRkYXJrLWdyYXk7XHJcbiR0b29sdGlwLWJhY2tncm91bmQtY29sb3I6ICRibGFjaztcclxuJHRvb2x0aXAtY29sb3I6ICR3aGl0ZTtcclxuJHRvb2x0aXAtcGFkZGluZzogMC43NXJlbTtcclxuJHRvb2x0aXAtZm9udC1zaXplOiAkc21hbGwtZm9udC1zaXplO1xyXG4kdG9vbHRpcC1waXAtd2lkdGg6IDAuNzVyZW07XHJcbiR0b29sdGlwLXBpcC1oZWlnaHQ6ICR0b29sdGlwLXBpcC13aWR0aCAqIDAuODY2O1xyXG4kdG9vbHRpcC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xyXG5cclxuLy8gMzYuIFRvcCBCYXJcclxuLy8gLS0tLS0tLS0tLS1cclxuXHJcbiR0b3BiYXItcGFkZGluZzogMC41cmVtO1xyXG4kdG9wYmFyLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xyXG4kdG9wYmFyLXN1Ym1lbnUtYmFja2dyb3VuZDogJHRvcGJhci1iYWNrZ3JvdW5kO1xyXG4kdG9wYmFyLXRpdGxlLXNwYWNpbmc6IDFyZW07XHJcbiR0b3BiYXItaW5wdXQtd2lkdGg6IDIwMHB4O1xyXG4kdG9wYmFyLXVuc3RhY2stYnJlYWtwb2ludDogbWVkaXVtO1xyXG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXHJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cclxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXHJcblxyXG4vLy8vXHJcbi8vLyBAZ3JvdXAgZnVuY3Rpb25zXHJcbi8vLy9cclxuXHJcbi8vLyBDcmVhdGVzIGEgQ1NTIHRyaWFuZ2xlLCB3aGljaCBjYW4gYmUgdXNlZCBmb3IgZHJvcGRvd24gYXJyb3dzLCBkcm9wZG93biBwaXBzLCBhbmQgbW9yZS4gVXNlIHRoaXMgbWl4aW4gaW5zaWRlIGEgYCY6OmJlZm9yZWAgb3IgYCY6OmFmdGVyYCBzZWxlY3RvciwgdG8gYXR0YWNoIHRoZSB0cmlhbmdsZSB0byBhbiBleGlzdGluZyBlbGVtZW50LlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdHJpYW5nbGUtc2l6ZSAtIFdpZHRoIG9mIHRoZSB0cmlhbmdsZS5cclxuLy8vIEBwYXJhbSB7Q29sb3J9ICR0cmlhbmdsZS1jb2xvciAtIENvbG9yIG9mIHRoZSB0cmlhbmdsZS5cclxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHRyaWFuZ2xlLWRpcmVjdGlvbiAtIERpcmVjdGlvbiB0aGUgdHJpYW5nbGUgcG9pbnRzLiBDYW4gYmUgYHVwYCwgYHJpZ2h0YCwgYGRvd25gLCBvciBgbGVmdGAuXHJcbkBtaXhpbiBjc3MtdHJpYW5nbGUoXHJcbiAgJHRyaWFuZ2xlLXNpemUsXHJcbiAgJHRyaWFuZ2xlLWNvbG9yLFxyXG4gICR0cmlhbmdsZS1kaXJlY3Rpb25cclxuKSB7XHJcbiAgY29udGVudDogJyc7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgd2lkdGg6IDA7XHJcbiAgaGVpZ2h0OiAwO1xyXG4gIGJvcmRlcjogaW5zZXQgJHRyaWFuZ2xlLXNpemU7XHJcblxyXG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSBkb3duKSB7XHJcbiAgICBib3JkZXItY29sb3I6ICR0cmlhbmdsZS1jb2xvciB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcclxuICAgIGJvcmRlci10b3Atc3R5bGU6IHNvbGlkO1xyXG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcclxuICB9XHJcbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IHVwKSB7XHJcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICR0cmlhbmdsZS1jb2xvcjtcclxuICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkO1xyXG4gICAgYm9yZGVyLXRvcC13aWR0aDogMDtcclxuICB9XHJcbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IHJpZ2h0KSB7XHJcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICR0cmlhbmdsZS1jb2xvcjtcclxuICAgIGJvcmRlci1sZWZ0LXN0eWxlOiBzb2xpZDtcclxuICAgIGJvcmRlci1yaWdodC13aWR0aDogMDtcclxuICB9XHJcbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IGxlZnQpIHtcclxuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgJHRyaWFuZ2xlLWNvbG9yIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xyXG4gICAgYm9yZGVyLXJpZ2h0LXN0eWxlOiBzb2xpZDtcclxuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xyXG4gIH1cclxufVxyXG5cclxuLy8vIENyZWF0ZXMgYSBtZW51IGljb24gd2l0aCBhIHNldCB3aWR0aCwgaGVpZ2h0LCBudW1iZXIgb2YgYmFycywgYW5kIGNvbG9ycy4gVGhlIG1peGluIHVzZXMgdGhlIGhlaWdodCBvZiB0aGUgaWNvbiBhbmQgdGhlIHdlaWdodCBvZiB0aGUgYmFycyB0byBkZXRlcm1pbmUgc3BhY2luZy4gPGRpdiBjbGFzcz1cImRvY3MtZXhhbXBsZS1idXJnZXJcIj48L2Rpdj5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRibGFja10gLSBDb2xvciB0byB1c2UgZm9yIHRoZSBpY29uLlxyXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yLWhvdmVyIFskZGFyay1ncmF5XSAtIENvbG9yIHRvIHVzZSB3aGVuIHRoZSBpY29uIGlzIGhvdmVyZWQgb3Zlci5cclxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2lkdGggWzIwcHhdIC0gV2lkdGggb2YgdGhlIGljb24uXHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJGhlaWdodCBbMTZweF0gLSBIZWlnaHQgb2YgdGhlIGljb24uXHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJHdlaWdodCBbMnB4XSAtIEhlaWdodCBvZiBpbmRpdmlkdWFsIGJhcnMgaW4gdGhlIGljb24uXHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhcnMgWzNdIC0gTnVtYmVyIG9mIGJhcnMgaW4gdGhlIGljb24uXHJcbkBtaXhpbiBoYW1idXJnZXIoXHJcbiAgJGNvbG9yOiAkYmxhY2ssXHJcbiAgJGNvbG9yLWhvdmVyOiAkZGFyay1ncmF5LFxyXG4gICR3aWR0aDogMjBweCxcclxuICAkaGVpZ2h0OiAxNnB4LFxyXG4gICR3ZWlnaHQ6IDJweCxcclxuICAkYmFyczogM1xyXG4pIHtcclxuICAvLyBib3gtc2hhZG93IENTUyBvdXRwdXRcclxuICAkc2hhZG93OiAoKTtcclxuICAkaG92ZXItc2hhZG93OiAoKTtcclxuXHJcbiAgLy8gU3BhY2luZyBiZXR3ZWVuIGJhcnMgaXMgY2FsY3VsYXRlZCBiYXNlZCBvbiB0aGUgdG90YWwgaGVpZ2h0IG9mIHRoZSBpY29uIGFuZCB0aGUgd2VpZ2h0IG9mIGVhY2ggYmFyXHJcbiAgJHNwYWNpbmc6IGZsb29yKCgkaGVpZ2h0IC0gKCR3ZWlnaHQgKiAkYmFycykpIC8gKCRiYXJzIC0gMSkpO1xyXG5cclxuICAvLyBJY29uIGNvbnRhaW5lclxyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgd2lkdGg6ICR3aWR0aDtcclxuICBoZWlnaHQ6ICRoZWlnaHQ7XHJcblxyXG4gIC8vIEljb24gYmFyc1xyXG4gICY6OmFmdGVyIHtcclxuICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogJHdlaWdodDtcclxuICAgIGJhY2tncm91bmQ6ICRjb2xvcjtcclxuICAgIHRvcDogMDtcclxuICAgIGxlZnQ6IDA7XHJcblxyXG4gICAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkYmFycyB7XHJcbiAgICAgICRvZmZzZXQ6ICgkd2VpZ2h0ICsgJHNwYWNpbmcpICogKCRpIC0gMSk7XHJcbiAgICAgICRzaGFkb3c6IGFwcGVuZCgkc2hhZG93LCAwICRvZmZzZXQgMCAkY29sb3IsIGNvbW1hKTtcclxuICAgIH1cclxuXHJcbiAgICBib3gtc2hhZG93OiAkc2hhZG93O1xyXG4gIH1cclxuXHJcbiAgLy8gSG92ZXIgc3RhdGVcclxuICBAaWYgJGNvbG9yLWhvdmVyIHtcclxuICAgIC8vIEdlbmVyYXRlIENTU1xyXG4gICAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkYmFycyB7XHJcbiAgICAgICRvZmZzZXQ6ICgkd2VpZ2h0ICsgJHNwYWNpbmcpICogKCRpIC0gMSk7XHJcbiAgICAgICRob3Zlci1zaGFkb3c6IGFwcGVuZCgkaG92ZXItc2hhZG93LCAwICRvZmZzZXQgMCAkY29sb3ItaG92ZXIsIGNvbW1hKTtcclxuICAgIH1cclxuXHJcbiAgICAmOmhvdmVyOjphZnRlciB7XHJcbiAgICAgIGJhY2tncm91bmQ6ICRjb2xvci1ob3ZlcjtcclxuICAgICAgYm94LXNoYWRvdzogJGhvdmVyLXNoYWRvdztcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8vLyBBZGRzIGEgZG93bndhcmQtZmFjaW5nIHRyaWFuZ2xlIGFzIGEgYmFja2dyb3VuZCBpbWFnZSB0byBhbiBlbGVtZW50LiBUaGUgaW1hZ2UgaXMgZm9ybWF0dGVkIGFzIGFuIFNWRywgbWFraW5nIGl0IGVhc3kgdG8gY2hhbmdlIHRoZSBjb2xvci4gQmVjYXVzZSBJbnRlcm5ldCBFeHBsb3JlciBkb2Vzbid0IHN1cHBvcnQgZW5jb2RlZCBTVkdzIGFzIGJhY2tncm91bmQgaW1hZ2VzLCBhIFBORyBmYWxsYmFjayBpcyBhbHNvIGluY2x1ZGVkLlxyXG4vLy8gVGhlcmUgYXJlIHR3byBQTkcgZmFsbGJhY2tzOiBhIGJsYWNrIHRyaWFuZ2xlIGFuZCBhIHdoaXRlIHRyaWFuZ2xlLiBUaGUgb25lIHVzZWQgZGVwZW5kcyBvbiB0aGUgbGlnaHRuZXNzIG9mIHRoZSBpbnB1dCBjb2xvci5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRibGFja10gLSBDb2xvciB0byB1c2UgZm9yIHRoZSB0cmlhbmdsZS5cclxuQG1peGluIGJhY2tncm91bmQtdHJpYW5nbGUoJGNvbG9yOiAkYmxhY2spIHtcclxuICAkcmdiOiAncmdiJTI4I3tyZWQoJGNvbG9yKX0sICN7Z3JlZW4oJGNvbG9yKX0sICN7Ymx1ZSgkY29sb3IpfSUyOSc7XHJcblxyXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnIHdpZHRoPSczMicgaGVpZ2h0PScyNCcgdmlld0JveD0nMCAwIDMyIDI0Jz48cG9seWdvbiBwb2ludHM9JzAsMCAzMiwwIDE2LDI0JyBzdHlsZT0nZmlsbDogI3skcmdifSc+PC9wb2x5Z29uPjwvc3ZnPlwiKTtcclxuXHJcbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDowXFwwKSB7XHJcbiAgICBAaWYgbGlnaHRuZXNzKCRjb2xvcikgPCA2MCUge1xyXG4gICAgICAvLyBXaGl0ZSB0cmlhbmdsZVxyXG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQ0FBQUFBWUNBWUFBQUNiVS84MEFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBSXBKUkVGVWVOckVrY2tOZ0RBTUJCZlJrRXQwT2JSQkJkc0dYVURnbVFmSzRYaEgybThjelFBQXkyN1IzdHN3NFFmZTJ4OHVPTzZvWUxiNkdsT29yM0dGK3N3VVJBT21VSitSd3RFSnM5V3ZUR0VZeEJYcUkxTVFBWmhDZlVRS1J6RE1WaitUd3JBSVY2anZTVUVrWUFyMUxTa2N5VEJiL1YrS1lmWDd4QWV1c3Ezc0xEdEdIM2tFR0FDUFdJZmxOWmZoUlFBQUFBQkpSVTVFcmtKZ2dnPT0nKTtcclxuICAgIH1cclxuICAgIEBlbHNlIHtcclxuICAgICAgLy8gQmxhY2sgdHJpYW5nbGVcclxuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUNBQUFBQVlDQVlBQUFDYlUvODBBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQU1CSlJFRlVlTnJFbGxzT2hDQU1SVnN6QzlJbHpVN0tDbVZIVEpzb01XWU1VdHB5djlCZ2J1WFFCNVpTZGdCWVlZNHljZ0Jpdms4S1lGc1FNZk1pVFRCUDRvM25VekNLek9hYkxKYkx5Mi9nMzFldkdrQWdpblI0L1plZ0tINXFYM2JKQ3NjQTN0MHgza2dPNXRRRnloaEZmNTB4UnFGTGJ5TVVOSlF6Z3lqR1Mvd2dDcHZLcWtSQnB1V3JFNFY5ZCsxRTRkUFVYcUlnMTA3U1FPRS8yRFJReE13VER5Z0lJblZERVQ5VDNsQ29qLzZqL1ZDbUdqWk9sMmxLcFo4QUF3RFFQN3pJaW1ER0ZRQUFBQUJKUlU1RXJrSmdnZz09Jyk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vLy8gQXBwbGllcyB0aGUgbWljcm8gY2xlYXJmaXggaGFjayBwb3B1bGFyaXplZCBieSBOaWNvbGFzIEdhbGxhZ2hlci4gSW5jbHVkZSB0aGlzIG1peGluIG9uIGEgY29udGFpbmVyIGlmIGl0cyBjaGlsZHJlbiBhcmUgYWxsIGZsb2F0ZWQsIHRvIGdpdmUgdGhlIGNvbnRhaW5lciBhIHByb3BlciBoZWlnaHQuXHJcbi8vLyBUaGUgY2xlYXJmaXggaXMgYXVnbWVudGVkIHdpdGggc3BlY2lmaWMgc3R5bGVzIHRvIHByZXZlbnQgYm9yZGVycyBpbiBmbGV4Ym94IGVudmlyb25tZW50c1xyXG4vLy8gQGxpbmsgaHR0cDovL25pY29sYXNnYWxsYWdoZXIuY29tL21pY3JvLWNsZWFyZml4LWhhY2svIE1pY3JvIENsZWFyZml4IEhhY2tcclxuLy8vIEBsaW5rIGh0dHA6Ly9kYW5pc2FkZXNpZ25lci5jb20vYmxvZy9mbGV4Ym94LWNsZWFyLWZpeC1wc2V1ZG8tZWxlbWVudHMvIEZsZXhib3ggZml4XHJcbkBtaXhpbiBjbGVhcmZpeCB7XHJcbiAgJjo6YmVmb3JlLFxyXG4gICY6OmFmdGVyIHtcclxuICAgIGNvbnRlbnQ6ICcgJztcclxuICAgIGRpc3BsYXk6IHRhYmxlO1xyXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XHJcbiAgICAgIGZsZXgtYmFzaXM6IDA7XHJcbiAgICAgIG9yZGVyOiAxO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJjo6YWZ0ZXIge1xyXG4gICAgY2xlYXI6IGJvdGg7XHJcbiAgfVxyXG59XHJcblxyXG4vLy8gQWRkcyBDU1MgZm9yIGEgXCJxdWFudGl0eSBxdWVyeVwiIHNlbGVjdG9yIHRoYXQgYXV0b21hdGljYWxseSBzaXplcyBlbGVtZW50cyBiYXNlZCBvbiBob3cgbWFueSB0aGVyZSBhcmUgaW5zaWRlIGEgY29udGFpbmVyLlxyXG4vLy8gQGxpbmsgaHR0cDovL2FsaXN0YXBhcnQuY29tL2FydGljbGUvcXVhbnRpdHktcXVlcmllcy1mb3ItY3NzIFF1YW50aXR5IFF1ZXJpZXMgZm9yIENTU1xyXG4vLy9cclxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbWF4IC0gTWF4aW11bSBudW1iZXIgb2YgaXRlbXMgdG8gZGV0ZWN0LiBUaGUgaGlnaGVyIHRoaXMgbnVtYmVyIGlzLCB0aGUgbW9yZSBDU1MgdGhhdCdzIHJlcXVpcmVkIHRvIGNvdmVyIGVhY2ggbnVtYmVyIG9mIGl0ZW1zLlxyXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZWxlbSBbbGldIC0gVGFnIHRvIHVzZSBmb3Igc2libGluZyBzZWxlY3RvcnMuXHJcbkBtaXhpbiBhdXRvLXdpZHRoKCRtYXgsICRlbGVtOiBsaSkge1xyXG4gIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggJG1heCB7XHJcbiAgICAmOm50aC1sYXN0LWNoaWxkKCN7JGl9KTpmaXJzdC1jaGlsZCxcclxuICAgICY6bnRoLWxhc3QtY2hpbGQoI3skaX0pOmZpcnN0LWNoaWxkIH4gI3skZWxlbX0ge1xyXG4gICAgICB3aWR0aDogcGVyY2VudGFnZSgxIC8gJGkpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLy8vIFJlbW92ZXMgdGhlIGZvY3VzIHJpbmcgYXJvdW5kIGFuIGVsZW1lbnQgd2hlbiBhIG1vdXNlIGlucHV0IGlzIGRldGVjdGVkLlxyXG5AbWl4aW4gZGlzYWJsZS1tb3VzZS1vdXRsaW5lIHtcclxuICBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gJiB7XHJcbiAgICBvdXRsaW5lOiAwO1xyXG4gIH1cclxufVxyXG5cclxuLy8vIE1ha2VzIGFuIGVsZW1lbnQgdmlzdWFsbHkgaGlkZGVuLCBidXQgc3RpbGwgYWNjZXNzaWJsZSB0byBrZXlib2FyZHMgYW5kIGFzc2lzdGl2ZSBkZXZpY2VzLlxyXG4vLy8gQGxpbmsgaHR0cDovL3Nub29rLmNhL2FyY2hpdmVzL2h0bWxfYW5kX2Nzcy9oaWRpbmctY29udGVudC1mb3ItYWNjZXNzaWJpbGl0eSBIaWRpbmcgQ29udGVudCBmb3IgQWNjZXNzaWJpbGl0eVxyXG5AbWl4aW4gZWxlbWVudC1pbnZpc2libGUge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xyXG4gIHdpZHRoOiAxcHg7XHJcbiAgaGVpZ2h0OiAxcHg7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xyXG59XHJcblxyXG4vLy8gUmV2ZXJzZXMgdGhlIENTUyBvdXRwdXQgY3JlYXRlZCBieSB0aGUgYGVsZW1lbnQtaW52aXNpYmxlKClgIG1peGluLlxyXG5AbWl4aW4gZWxlbWVudC1pbnZpc2libGUtb2ZmIHtcclxuICBwb3NpdGlvbjogc3RhdGljICFpbXBvcnRhbnQ7XHJcbiAgaGVpZ2h0OiBhdXRvO1xyXG4gIHdpZHRoOiBhdXRvO1xyXG4gIG92ZXJmbG93OiB2aXNpYmxlO1xyXG4gIGNsaXA6IGF1dG87XHJcbn1cclxuXHJcbi8vLyBWZXJ0aWNhbGx5IGNlbnRlcnMgdGhlIGVsZW1lbnQgaW5zaWRlIG9mIGl0cyBmaXJzdCBub24tc3RhdGljIHBhcmVudCxcclxuLy8vIEBsaW5rIGh0dHA6Ly93d3cuc2l0ZXBvaW50LmNvbS9jZW50ZXJpbmctd2l0aC1zYXNzLyBDZW50ZXJpbmcgV2l0aCBTYXNzXHJcbkBtaXhpbiB2ZXJ0aWNhbC1jZW50ZXIge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB0b3A6IDUwJTtcclxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XHJcbn1cclxuXHJcbi8vLyBIb3Jpem9udGFsbHkgY2VudGVycyB0aGUgZWxlbWVudCBpbnNpZGUgb2YgaXRzIGZpcnN0IG5vbi1zdGF0aWMgcGFyZW50LFxyXG4vLy8gQGxpbmsgaHR0cDovL3d3dy5zaXRlcG9pbnQuY29tL2NlbnRlcmluZy13aXRoLXNhc3MvIENlbnRlcmluZyBXaXRoIFNhc3NcclxuQG1peGluIGhvcml6b250YWwtY2VudGVyIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgbGVmdDogNTAlO1xyXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcclxufVxyXG5cclxuLy8vIEFic29sdXRlbHkgY2VudGVycyB0aGUgZWxlbWVudCBpbnNpZGUgb2YgaXRzIGZpcnN0IG5vbi1zdGF0aWMgcGFyZW50LFxyXG4vLy8gQGxpbmsgaHR0cDovL3d3dy5zaXRlcG9pbnQuY29tL2NlbnRlcmluZy13aXRoLXNhc3MvIENlbnRlcmluZyBXaXRoIFNhc3NcclxuQG1peGluIGFic29sdXRlLWNlbnRlciB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHRvcDogNTAlO1xyXG4gIGxlZnQ6IDUwJTtcclxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcclxufVxyXG5cclxuLy8vIEl0ZXJhdGVzIHRocm91Z2ggYnJlYWtwb2ludHMgZGVmaW5lZCBpbiBgJGJyZWFrcG9pbnQtY2xhc3Nlc2AgYW5kIHByaW50cyB0aGUgQ1NTIGluc2lkZSB0aGUgbWl4aW4gYXQgZWFjaCBicmVha3BvaW50J3MgbWVkaWEgcXVlcnkuIFVzZSB0aGlzIHdpdGggdGhlIGdyaWQsIG9yIGFueSBvdGhlciBjb21wb25lbnQgdGhhdCBoYXMgcmVzcG9uc2l2ZSBjbGFzc2VzLlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHNtYWxsIFt0cnVlXSAtIElmIGBmYWxzZWAsIHRoZSBtaXhpbiB3aWxsIHNraXAgdGhlIGBzbWFsbGAgYnJlYWtwb2ludC4gVXNlIHRoaXMgd2l0aCBjb21wb25lbnRzIHRoYXQgZG9uJ3QgcHJlZml4IGNsYXNzZXMgd2l0aCBgc21hbGwtYCwgb25seSBgbWVkaXVtLWAgYW5kIHVwLlxyXG5AbWl4aW4gLXpmLWVhY2gtYnJlYWtwb2ludCgkc21hbGw6IHRydWUpIHtcclxuICAkbWFwOiAkYnJlYWtwb2ludC1jbGFzc2VzO1xyXG5cclxuICBAaWYgbm90ICRzbWFsbCB7XHJcbiAgICAkbWFwOiBtYXAtcmVtb3ZlKCRtYXAsICQtemYtemVyby1icmVha3BvaW50KTtcclxuICB9XHJcblxyXG4gIEBlYWNoICRzaXplIGluICRtYXAge1xyXG4gICAgJC16Zi1zaXplOiAkc2l6ZSAhZ2xvYmFsO1xyXG5cclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIkBtaXhpbiBmb3VuZGF0aW9uLWZsZXgtY2xhc3NlcyB7XHJcbiAgLy8gSG9yaXpvbnRhbCBhbGlnbm1lbnQgdXNpbmcganVzdGlmeS1jb250ZW50XHJcbiAgQGVhY2ggJGhkaXIsICRwcm9wIGluIG1hcC1yZW1vdmUoJC16Zi1mbGV4LWp1c3RpZnksIGxlZnQpIHtcclxuICAgIC5hbGlnbi0jeyRoZGlyfSB7XHJcbiAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24oJHg6ICRoZGlyKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIFZlcnRpY2FsIGFsaWdubWVudCB1c2luZyBhbGlnbi1pdGVtcyBhbmQgYWxpZ24tc2VsZlxyXG4gIEBlYWNoICR2ZGlyLCAkcHJvcCBpbiAkLXpmLWZsZXgtYWxpZ24ge1xyXG4gICAgLmFsaWduLSN7JHZkaXJ9IHtcclxuICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbigkeTogJHZkaXIpO1xyXG4gICAgfVxyXG5cclxuICAgIC5hbGlnbi1zZWxmLSN7JHZkaXJ9IHtcclxuICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbi1zZWxmKCR5OiAkdmRpcik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBTb3VyY2Ugb3JkZXJpbmdcclxuICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50IHtcclxuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggNiB7XHJcbiAgICAgIC4jeyQtemYtc2l6ZX0tb3JkZXItI3skaX0ge1xyXG4gICAgICAgIEBpbmNsdWRlIGZsZXgtb3JkZXIoJGkpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIiQtemYtZmxleC1qdXN0aWZ5OiAoXHJcbiAgJ2xlZnQnOiBmbGV4LXN0YXJ0LFxyXG4gICdyaWdodCc6IGZsZXgtZW5kLFxyXG4gICdjZW50ZXInOiBjZW50ZXIsXHJcbiAgJ2p1c3RpZnknOiBzcGFjZS1iZXR3ZWVuLFxyXG4gICdzcGFjZWQnOiBzcGFjZS1hcm91bmQsXHJcbik7XHJcblxyXG4kLXpmLWZsZXgtYWxpZ246IChcclxuICAndG9wJzogZmxleC1zdGFydCxcclxuICAnYm90dG9tJzogZmxleC1lbmQsXHJcbiAgJ21pZGRsZSc6IGNlbnRlcixcclxuICAnc3RyZXRjaCc6IHN0cmV0Y2gsXHJcbik7XHJcblxyXG4vLy8gRW5hYmxlcyBmbGV4Ym94IGJ5IGFkZGluZyBgZGlzcGxheTogZmxleGAgdG8gdGhlIGVsZW1lbnQuXHJcbkBtaXhpbiBmbGV4IHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG59XHJcblxyXG4vLy8gSG9yaXpvbnRhbGx5IG9yIHZlcnRpY2FsbHkgYWxpZ25zIHRoZSBpdGVtcyB3aXRoaW4gYSBmbGV4IGNvbnRhaW5lci5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR4IFtudWxsXSAtIEhvcml6b250YWwgYWxpZ25tZW50IHRvIHVzZS4gQ2FuIGJlIGBsZWZ0YCwgYHJpZ2h0YCwgYGNlbnRlcmAsIGBqdXN0aWZ5YCwgb3IgYHNwYWNlZGAuIE9yLCBzZXQgaXQgdG8gYG51bGxgICh0aGUgZGVmYXVsdCkgdG8gbm90IHNldCBob3Jpem9udGFsIGFsaWdubWVudC5cclxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHkgW251bGxdIC0gVmVydGljYWwgYWxpZ25tZW50IHRvIHVzZS4gQ2FuIGJlIGB0b3BgLCBgYm90dG9tYCwgYG1pZGRsZWAsIG9yIGBzdHJldGNoYC4gT3IsIHNldCBpdCB0byBgbnVsbGAgKHRoZSBkZWZhdWx0KSB0byBub3Qgc2V0IHZlcnRpY2FsIGFsaWdubWVudC5cclxuQG1peGluIGZsZXgtYWxpZ24oJHg6IG51bGwsICR5OiBudWxsKSB7XHJcbiAgQGlmICR4IHtcclxuICAgIEBpZiBtYXAtaGFzLWtleSgkLXpmLWZsZXgtanVzdGlmeSwgJHgpIHtcclxuICAgICAgJHg6IG1hcC1nZXQoJC16Zi1mbGV4LWp1c3RpZnksICR4KTtcclxuICAgIH1cclxuICAgIEBlbHNlIHtcclxuICAgICAgQHdhcm4gJ2ZsZXgtZ3JpZC1yb3ctYWxpZ24oKTogI3skeH0gaXMgbm90IGEgdmFsaWQgdmFsdWUgZm9yIGhvcml6b250YWwgYWxpZ25tZW50LiBVc2UgbGVmdCwgcmlnaHQsIGNlbnRlciwganVzdGlmeSwgb3Igc3BhY2VkLidcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBpZiAkeSB7XHJcbiAgICBAaWYgbWFwLWhhcy1rZXkoJC16Zi1mbGV4LWFsaWduLCAkeSkge1xyXG4gICAgICAkeTogbWFwLWdldCgkLXpmLWZsZXgtYWxpZ24sICR5KTtcclxuICAgIH1cclxuICAgIEBlbHNlIHtcclxuICAgICAgQHdhcm4gJ2ZsZXgtZ3JpZC1yb3ctYWxpZ24oKTogI3skeX0gaXMgbm90IGEgdmFsaWQgdmFsdWUgZm9yIHZlcnRpY2FsIGFsaWdubWVudC4gVXNlIHRvcCwgYm90dG9tLCBtaWRkbGUsIG9yIHN0cmV0Y2guJ1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAganVzdGlmeS1jb250ZW50OiAkeDtcclxuICBhbGlnbi1pdGVtczogJHk7XHJcbn1cclxuXHJcbi8vLyBWZXJ0aWNhbGx5IGFsaWduIGEgc2luZ2xlIGNvbHVtbiB3aXRoaW4gYSBmbGV4IHJvdy4gQXBwbHkgdGhpcyBtaXhpbiB0byBhIGZsZXggY29sdW1uLlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHkgW251bGxdIC0gVmVydGljYWwgYWxpZ25tZW50IHRvIHVzZS4gQ2FuIGJlIGB0b3BgLCBgYm90dG9tYCwgYG1pZGRsZWAsIG9yIGBzdHJldGNoYC4gT3IsIHNldCBpdCB0byBgbnVsbGAgKHRoZSBkZWZhdWx0KSB0byBub3Qgc2V0IHZlcnRpY2FsIGFsaWdubWVudC5cclxuQG1peGluIGZsZXgtYWxpZ24tc2VsZigkeTogbnVsbCkge1xyXG4gIEBpZiAkeSB7XHJcbiAgICBAaWYgbWFwLWhhcy1rZXkoJC16Zi1mbGV4LWFsaWduLCAkeSkge1xyXG4gICAgICAkeTogbWFwLWdldCgkLXpmLWZsZXgtYWxpZ24sICR5KTtcclxuICAgIH1cclxuICAgIEBlbHNlIHtcclxuICAgICAgQHdhcm4gJ2ZsZXgtZ3JpZC1jb2x1bW4tYWxpZ24oKTogI3skeX0gaXMgbm90IGEgdmFsaWQgdmFsdWUgZm9yIGFsaWdubWVudC4gVXNlIHRvcCwgYm90dG9tLCBtaWRkbGUsIG9yIHN0cmV0Y2guJ1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYWxpZ24tc2VsZjogJHk7XHJcbn1cclxuXHJcbi8vLyBDaGFuZ2VzIHRoZSBzb3VyY2Ugb3JkZXIgb2YgYSBmbGV4IGNoaWxkLiBDaGlsZHJlbiB3aXRoIGxvd2VyIG51bWJlcnMgYXBwZWFyIGZpcnN0IGluIHRoZSBsYXlvdXQuXHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJG9yZGVyIFswXSAtIE9yZGVyIG51bWJlciB0byBhcHBseS5cclxuQG1peGluIGZsZXgtb3JkZXIoJG9yZGVyOiAwKSB7XHJcbiAgb3JkZXI6ICRvcmRlcjtcclxufVxyXG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXHJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cclxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXHJcblxyXG4vLy8vXHJcbi8vLyBAZ3JvdXAgYnJlYWtwb2ludHNcclxuLy8vL1xyXG5cclxuLy8gc2Nzcy1saW50OmRpc2FibGUgWmVyb1VuaXRcclxuXHJcbi8vLyBBIGxpc3Qgb2YgbmFtZWQgYnJlYWtwb2ludHMuIFlvdSBjYW4gdXNlIHRoZXNlIHdpdGggdGhlIGBicmVha3BvaW50KClgIG1peGluIHRvIHF1aWNrbHkgY3JlYXRlIG1lZGlhIHF1ZXJpZXMuXHJcbi8vLyBAdHlwZSBNYXBcclxuJGJyZWFrcG9pbnRzOiAoXHJcbiAgc21hbGw6IDAsXHJcbiAgbWVkaXVtOiA2NDBweCxcclxuICBsYXJnZTogMTAyNHB4LFxyXG4gIHhsYXJnZTogMTIwMHB4LFxyXG4gIHh4bGFyZ2U6IDE0NDBweCxcclxuKSAhZGVmYXVsdDtcclxuXHJcbiQtemYtemVyby1icmVha3BvaW50OiBzbWFsbCAhZGVmYXVsdDtcclxuXHJcbkBpZiBudGgobWFwLXZhbHVlcygkYnJlYWtwb2ludHMpLCAxKSAhPSAwIHtcclxuICBAZXJyb3IgJ1lvdXIgc21hbGxlc3QgYnJlYWtwb2ludCAoZGVmaW5lZCBpbiAkYnJlYWtwb2ludHMpIG11c3QgYmUgc2V0IHRvIFwiMFwiLic7XHJcbn1cclxuQGVsc2Uge1xyXG4gICQtemYtemVyby1icmVha3BvaW50OiBudGgobWFwLWtleXMoJGJyZWFrcG9pbnRzKSwgMSk7XHJcbn1cclxuXHJcbi8vLyBBbGwgb2YgdGhlIG5hbWVzIGluIHRoaXMgbGlzdCB3aWxsIGJlIG91dHB1dCBhcyBjbGFzc2VzIGluIHlvdXIgQ1NTLCBsaWtlIGAuc21hbGwtMTJgLCBgLm1lZGl1bS02YCwgYW5kIHNvIG9uLiBFYWNoIHZhbHVlIGluIHRoaXMgbGlzdCBtdXN0IGFsc28gYmUgaW4gdGhlIGAkYnJlYWtwb2ludHNgIG1hcC5cclxuLy8vIEB0eXBlIExpc3RcclxuJGJyZWFrcG9pbnQtY2xhc3NlczogKHNtYWxsIG1lZGl1bSBsYXJnZSkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gR2VuZXJhdGVzIGEgbWVkaWEgcXVlcnkgc3RyaW5nIG1hdGNoaW5nIHRoZSBpbnB1dCB2YWx1ZS4gUmVmZXIgdG8gdGhlIGRvY3VtZW50YXRpb24gZm9yIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0byBzZWUgd2hhdCB0aGUgcG9zc2libGUgaW5wdXRzIGFyZS5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkdmFsIFtzbWFsbF0gLSBCcmVha3BvaW50IG5hbWUsIG9yIHB4LCByZW0sIG9yIGVtIHZhbHVlIHRvIHByb2Nlc3MuXHJcbkBmdW5jdGlvbiBicmVha3BvaW50KCR2YWw6ICQtemYtemVyby1icmVha3BvaW50KSB7XHJcbiAgLy8gU2l6ZSBvciBrZXl3b3JkXHJcbiAgJGJwOiBudGgoJHZhbCwgMSk7XHJcbiAgLy8gVmFsdWUgZm9yIG1heC13aWR0aCBtZWRpYSBxdWVyaWVzXHJcbiAgJGJwLW1heDogMDtcclxuICAvLyBEaXJlY3Rpb24gb2YgbWVkaWEgcXVlcnkgKHVwLCBkb3duLCBvciBvbmx5KVxyXG4gICRkaXI6IGlmKGxlbmd0aCgkdmFsKSA+IDEsIG50aCgkdmFsLCAyKSwgdXApO1xyXG4gIC8vIEV2ZW50dWFsIG91dHB1dFxyXG4gICRzdHI6ICcnO1xyXG4gIC8vIElzIGl0IGEgbmFtZWQgbWVkaWEgcXVlcnk/XHJcbiAgJG5hbWVkOiBmYWxzZTtcclxuXHJcbiAgLy8gT3JpZW50YXRpb24gbWVkaWEgcXVlcmllcyBoYXZlIGEgdW5pcXVlIHN5bnRheFxyXG4gIEBpZiAkYnAgPT0gJ2xhbmRzY2FwZScgb3IgJGJwID09ICdwb3J0cmFpdCcge1xyXG4gICAgQHJldHVybiAnKG9yaWVudGF0aW9uOiAjeyRicH0pJztcclxuICB9XHJcbiAgQGVsc2UgaWYgJGJwID09ICdyZXRpbmEnIHtcclxuICAgIEByZXR1cm4gJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAobWluLXJlc29sdXRpb246IDE5MmRwaSknO1xyXG4gIH1cclxuXHJcbiAgLy8gVHJ5IHRvIHB1bGwgYSBuYW1lZCBicmVha3BvaW50IG91dCBvZiB0aGUgJGJyZWFrcG9pbnRzIG1hcFxyXG4gIEBpZiB0eXBlLW9mKCRicCkgPT0gJ3N0cmluZycge1xyXG4gICAgQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJGJwKSB7XHJcbiAgICAgIEBpZiAkZGlyID09ICdvbmx5JyBvciAkZGlyID09ICdkb3duJyB7XHJcbiAgICAgICAgJGJwLW1heDogLXpmLW1hcC1uZXh0KCRicmVha3BvaW50cywgJGJwKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgJGJwOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJGJwKTtcclxuICAgICAgJG5hbWVkOiB0cnVlO1xyXG4gICAgfVxyXG4gICAgQGVsc2Uge1xyXG4gICAgICAkYnA6IDA7XHJcbiAgICAgIEB3YXJuICdicmVha3BvaW50KCk6IFwiI3skdmFsfVwiIGlzIG5vdCBkZWZpbmVkIGluIHlvdXIgJGJyZWFrcG9pbnRzIHNldHRpbmcuJztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIENvbnZlcnQgYW55IHBpeGVsLCByZW0sIG9yIHVuaXRsZXNzIHZhbHVlIHRvIGVtXHJcbiAgJGJwOiAtemYtYnAtdG8tZW0oJGJwKTtcclxuICBAaWYgJGJwLW1heCB7XHJcbiAgICAkYnAtbWF4OiAtemYtYnAtdG8tZW0oJGJwLW1heCkgLSAoMS8xNik7XHJcbiAgfVxyXG5cclxuICAvLyBDb25kaXRpb25zIHRvIHNraXAgbWVkaWEgcXVlcnkgY3JlYXRpb25cclxuICAvLyAtIEl0J3MgYSBuYW1lZCBicmVha3BvaW50IHRoYXQgcmVzb2x2ZWQgdG8gXCIwIGRvd25cIiBvciBcIjAgdXBcIlxyXG4gIC8vIC0gSXQncyBhIG51bWVyaWMgYnJlYWtwb2ludCB0aGF0IHJlc29sdmVkIHRvIFwiMCBcIiArIGFueXRoaW5nXHJcbiAgQGlmICRicCA+IDBlbSBvciAkZGlyID09ICdvbmx5JyBvciAkZGlyID09ICdkb3duJyB7XHJcbiAgICAvLyBgb25seWAgcmFuZ2VzIHVzZSB0aGUgZm9ybWF0IGAobWluLXdpZHRoOiBuKSBhbmQgKG1heC13aWR0aDogbilgXHJcbiAgICBAaWYgJGRpciA9PSAnb25seScge1xyXG4gICAgICAvLyBPbmx5IG5hbWVkIG1lZGlhIHF1ZXJpZXMgY2FuIGhhdmUgYW4gXCJvbmx5XCIgcmFuZ2VcclxuICAgICAgQGlmICRuYW1lZCA9PSB0cnVlIHtcclxuICAgICAgICAvLyBPbmx5IHVzZSBcIm1pbi13aWR0aFwiIGlmIHRoZSBmbG9vciBpcyBncmVhdGVyIHRoYW4gMFxyXG4gICAgICAgIEBpZiAkYnAgPiAwZW0ge1xyXG4gICAgICAgICAgJHN0cjogJHN0ciArICcobWluLXdpZHRoOiAjeyRicH0pJztcclxuXHJcbiAgICAgICAgICAvLyBPbmx5IGFkZCBcImFuZFwiIHRvIHRoZSBtZWRpYSBxdWVyeSBpZiB0aGVyZSdzIGEgY2VpbGluZ1xyXG4gICAgICAgICAgQGlmICRicC1tYXggIT0gbnVsbCB7XHJcbiAgICAgICAgICAgICRzdHI6ICRzdHIgKyAnIGFuZCAnO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gT25seSB1c2UgXCJtYXgtd2lkdGhcIiBpZiB0aGVyZSdzIGEgY2VpbGluZ1xyXG4gICAgICAgIEBpZiAkYnAtbWF4ICE9IG51bGwge1xyXG4gICAgICAgICAgJHN0cjogJHN0ciArICcobWF4LXdpZHRoOiAjeyRicC1tYXh9KSc7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIEBlbHNlIHtcclxuICAgICAgICBAd2FybiAnYnJlYWtwb2ludCgpOiBPbmx5IG5hbWVkIG1lZGlhIHF1ZXJpZXMgY2FuIGhhdmUgYW4gYG9ubHlgIHJhbmdlLic7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBgZG93bmAgcmFuZ2VzIHVzZSB0aGUgZm9ybWF0IGAobWF4LXdpZHRoOiBuKWBcclxuICAgIEBlbHNlIGlmICRkaXIgPT0gJ2Rvd24nIHtcclxuICAgICAgJG1heDogaWYoJG5hbWVkLCAkYnAtbWF4LCAkYnApO1xyXG5cclxuICAgICAgLy8gU2tpcCBtZWRpYSBxdWVyeSBjcmVhdGlvbiBpZiBpbnB1dCB2YWx1ZSBpcyBleGFjdGx5IFwiMCBkb3duXCIsXHJcbiAgICAgIC8vIHVubGVzcyB0aGUgZnVuY3Rpb24gd2FzIGNhbGxlZCBhcyBcInNtYWxsIGRvd25cIiwgaW4gd2hpY2ggY2FzZSBpdCdzIGp1c3QgXCJzbWFsbCBvbmx5XCJcclxuICAgICAgQGlmICRuYW1lZCBvciAkYnAgPiAwZW0ge1xyXG4gICAgICAgIEBpZiAkbWF4ICE9IG51bGwge1xyXG4gICAgICAgICAgJHN0cjogJHN0ciArICcobWF4LXdpZHRoOiAjeyRtYXh9KSc7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gYHVwYCByYW5nZXMgdXNlIHRoZSBmb3JtYXQgYChtaW4td2lkdGg6IG4pYFxyXG4gICAgQGVsc2UgaWYgJGJwID4gMGVtIHtcclxuICAgICAgJHN0cjogJHN0ciArICcobWluLXdpZHRoOiAjeyRicH0pJztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEByZXR1cm4gJHN0cjtcclxufVxyXG5cclxuLy8vIFdyYXBzIGEgbWVkaWEgcXVlcnkgYXJvdW5kIHRoZSBjb250ZW50IHlvdSBwdXQgaW5zaWRlIHRoZSBtaXhpbi4gVGhpcyBtaXhpbiBhY2NlcHRzIGEgbnVtYmVyIG9mIHZhbHVlczpcclxuLy8vICAtIElmIGEgc3RyaW5nIGlzIHBhc3NlZCwgdGhlIG1peGluIHdpbGwgbG9vayBmb3IgaXQgaW4gdGhlIGAkYnJlYWtwb2ludHNgIG1hcCwgYW5kIHVzZSBhIG1lZGlhIHF1ZXJ5IHRoZXJlLlxyXG4vLy8gIC0gSWYgYSBwaXhlbCB2YWx1ZSBpcyBwYXNzZWQsIGl0IHdpbGwgYmUgY29udmVydGVkIHRvIGFuIGVtIHZhbHVlIHVzaW5nIGAkZ2xvYmFsLWZvbnQtc2l6ZWAgYXMgdGhlIGJhc2UuXHJcbi8vLyAgLSBJZiBhIHJlbSB2YWx1ZSBpcyBwYXNzZWQsIHRoZSB1bml0IHdpbGwgYmUgY2hhbmdlZCB0byBlbS5cclxuLy8vICAtIElmIGFuIGVtIHZhbHVlIGlzIHBhc3NlZCwgdGhlIHZhbHVlIHdpbGwgYmUgdXNlZCBhcy1pcy5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkdmFsdWUgLSBCcmVha3BvaW50IG5hbWUsIG9yIHB4LCByZW0sIG9yIGVtIHZhbHVlIHRvIHByb2Nlc3MuXHJcbi8vL1xyXG4vLy8gQG91dHB1dCBJZiB0aGUgYnJlYWtwb2ludCBpcyBcIjBweCBhbmQgbGFyZ2VyXCIsIG91dHB1dHMgdGhlIGNvbnRlbnQgYXMtaXMuIE90aGVyd2lzZSwgb3V0cHV0cyB0aGUgY29udGVudCB3cmFwcGVkIGluIGEgbWVkaWEgcXVlcnkuXHJcbkBtaXhpbiBicmVha3BvaW50KCR2YWx1ZSkge1xyXG4gICRzdHI6IGJyZWFrcG9pbnQoJHZhbHVlKTtcclxuXHJcbiAgLy8gSWYgJHN0ciBpcyBzdGlsbCBhbiBlbXB0eSBzdHJpbmcsIG5vIG1lZGlhIHF1ZXJ5IGlzIG5lZWRlZFxyXG4gIEBpZiAkc3RyID09ICcnIHtcclxuICAgIEBjb250ZW50O1xyXG4gIH1cclxuXHJcbiAgLy8gT3RoZXJ3aXNlLCB3cmFwIHRoZSBjb250ZW50IGluIGEgbWVkaWEgcXVlcnlcclxuICBAZWxzZSB7XHJcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAjeyRzdHJ9IHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vLy8gQ29udmVycyB0aGUgYnJlYWtwb2ludHMgbWFwIHRvIGEgVVJMLWVuY29kZWQgc3RyaW5nLCBsaWtlIHRoaXM6IGBrZXkxPXZhbHVlMSZrZXkyPXZhbHVlMmAuIFRoZSB2YWx1ZSBpcyB0aGVuIGRyb3BwZWQgaW50byB0aGUgQ1NTIGZvciBhIHNwZWNpYWwgYDxtZXRhPmAgdGFnLCB3aGljaCBpcyByZWFkIGJ5IHRoZSBGb3VuZGF0aW9uIEphdmFTY3JpcHQuIFRoaXMgaXMgaG93IHdlIHRyYW5zZmVyIHZhbHVlcyBmcm9tIFNhc3MgdG8gSmF2YVNjcmlwdCwgc28gdGhleSBjYW4gYmUgZGVmaW5lZCBpbiBvbmUgcGxhY2UuXHJcbi8vLyBAYWNjZXNzIHByaXZhdGVcclxuLy8vXHJcbi8vLyBAcGFyYW0ge01hcH0gJG1hcCAtIE1hcCB0byBjb252ZXJ0LlxyXG4vLy9cclxuLy8vIEByZXR1cm5zIHtTdHJpbmd9IEEgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIG1hcCdzIGNvbnRlbnRzLlxyXG5AZnVuY3Rpb24gLXpmLWJwLXNlcmlhbGl6ZSgkbWFwKSB7XHJcbiAgJHN0cjogJyc7XHJcbiAgQGVhY2ggJGtleSwgJHZhbHVlIGluICRtYXAge1xyXG4gICAgJHN0cjogJHN0ciArICRrZXkgKyAnPScgKyAtemYtYnAtdG8tZW0oJHZhbHVlKSArICcmJztcclxuICB9XHJcbiAgJHN0cjogc3RyLXNsaWNlKCRzdHIsIDEsIC0yKTtcclxuXHJcbiAgQHJldHVybiAkc3RyO1xyXG59XHJcblxyXG4vLy8gRmluZCB0aGUgbmV4dCBrZXkgaW4gYSBtYXAuXHJcbi8vLyBAYWNjZXNzIHByaXZhdGVcclxuLy8vXHJcbi8vLyBAcGFyYW0ge01hcH0gJG1hcCAtIE1hcCB0byB0cmF2ZXJzZS5cclxuLy8vIEBwYXJhbSB7TWl4ZWR9ICRrZXkgLSBLZXkgdG8gdXNlIGFzIGEgc3RhcnRpbmcgcG9pbnQuXHJcbi8vL1xyXG4vLy8gQHJldHVybnMge01peGVkfSBUaGUgdmFsdWUgZm9yIHRoZSBrZXkgYWZ0ZXIgYCRrZXlgLCBpZiBgJGtleWAgd2FzIGZvdW5kLiBJZiBgJGtleWAgd2FzIG5vdCBmb3VuZCwgb3IgYCRrZXlgIHdhcyB0aGUgbGFzdCB2YWx1ZSBpbiB0aGUgbWFwLCByZXR1cm5zIGBudWxsYC5cclxuQGZ1bmN0aW9uIC16Zi1tYXAtbmV4dCgkbWFwLCAka2V5KSB7XHJcbiAgLy8gU3RvcmUgdGhlIHZhbHVlcyBvZiB0aGUgbWFwIGFzIGEgbGlzdCwgc28gd2UgY2FuIGFjY2VzcyB0aGVtIHdpdGggbnRoXHJcbiAgJHZhbHVlczogbWFwLXZhbHVlcygkbWFwKTtcclxuXHJcbiAgLy8gR2hldHRvIGZvciBsb29wXHJcbiAgJGk6IDE7XHJcbiAgJGZvdW5kOiBmYWxzZTtcclxuICBAZWFjaCAkdmFsIGluIG1hcC1rZXlzKCRtYXApIHtcclxuICAgIEBpZiAkZm91bmQgPT0gZmFsc2Uge1xyXG4gICAgICBAaWYgKCRrZXkgPT0gJHZhbCkge1xyXG4gICAgICAgICRmb3VuZDogdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgICAkaTogJGkgKyAxO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gSWYgdGhlIGtleSBkb2Vzbid0IGV4aXN0LCBvciBpdCdzIHRoZSBsYXN0IGtleSBpbiB0aGUgbWFwLCByZXR1cm4gbnVsbFxyXG4gIEBpZiAkaSA+IGxlbmd0aCgkbWFwKSB7XHJcbiAgICBAcmV0dXJuIG51bGw7XHJcbiAgfVxyXG4gIC8vIE90aGVyd2lzZSwgcmV0dXJuIHRoZSB2YWx1ZVxyXG4gIEBlbHNlIHtcclxuICAgIEByZXR1cm4gbnRoKCR2YWx1ZXMsICRpKTtcclxuICB9XHJcbn1cclxuXHJcbi8vLyBHZXQgYSB2YWx1ZSBmb3IgYSBicmVha3BvaW50IGZyb20gYSByZXNwb25zaXZlIGNvbmZpZyBtYXAuIElmIHRoZSBjb25maWcgbWFwIGhhcyB0aGUga2V5IGAkdmFsdWVgLCB0aGUgZXhhY3QgYnJlYWtwb2ludCB2YWx1ZSBpcyByZXR1cm5lZC4gSWYgdGhlIGNvbmZpZyBtYXAgZG9lcyAqbm90KiBoYXZlIHRoZSBicmVha3BvaW50LCB0aGUgdmFsdWUgbWF0Y2hpbmcgdGhlIG5leHQgbG93ZXN0IGJyZWFrcG9pbnQgaW4gdGhlIGNvbmZpZyBtYXAgaXMgcmV0dXJuZWQuXHJcbi8vLyBAYWNjZXNzIHByaXZhdGVcclxuLy8vXHJcbi8vLyBAcGFyYW0ge01hcH0gJG1hcCAtIElucHV0IGNvbmZpZyBtYXAuXHJcbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR2YWx1ZSAtIEJyZWFrcG9pbnQgbmFtZSB0byB1c2UuXHJcbi8vL1xyXG4vLy8gQHJldHVybiB7TWl4ZWR9IFRoZSBjb3JyZXNwb25kaW5nIGJyZWFrcG9pbnQgdmFsdWUuXHJcbkBmdW5jdGlvbiAtemYtZ2V0LWJwLXZhbCgkbWFwLCAkdmFsdWUpIHtcclxuICAvLyBDaGVjayBpZiB0aGUgYnJlYWtwb2ludCBuYW1lIGV4aXN0cyBnbG9iYWxseVxyXG4gIEBpZiBub3QgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkdmFsdWUpIHtcclxuICAgIEByZXR1cm4gbnVsbDtcclxuICB9XHJcbiAgLy8gQ2hlY2sgaWYgdGhlIGJyZWFrcG9pbnQgbmFtZSBleGlzdHMgaW4gdGhlIGxvY2FsIGNvbmZpZyBtYXBcclxuICBAZWxzZSBpZiBtYXAtaGFzLWtleSgkbWFwLCAkdmFsdWUpIHtcclxuICAgIC8vIElmIGl0IGRvZXMsIGp1c3QgcmV0dXJuIHRoZSB2YWx1ZVxyXG4gICAgQHJldHVybiBtYXAtZ2V0KCRtYXAsICR2YWx1ZSk7XHJcbiAgfVxyXG4gIC8vIE90aGVyd2lzZSwgZmluZCB0aGUgbmV4dCBsb3dlc3QgYnJlYWtwb2ludCBhbmQgcmV0dXJuIHRoYXQgdmFsdWVcclxuICBAZWxzZSB7XHJcbiAgICAkYW5jaG9yOiBudWxsO1xyXG4gICAgJGZvdW5kOiBmYWxzZTtcclxuXHJcbiAgICBAZWFjaCAka2V5LCAkdmFsIGluICRicmVha3BvaW50cyB7XHJcbiAgICAgIEBpZiBub3QgJGZvdW5kIHtcclxuICAgICAgICBAaWYgbWFwLWhhcy1rZXkoJG1hcCwgJGtleSkge1xyXG4gICAgICAgICAgJGFuY2hvcjogJGtleTtcclxuICAgICAgICB9XHJcbiAgICAgICAgQGlmICRrZXkgPT0gJHZhbHVlIHtcclxuICAgICAgICAgICRmb3VuZDogdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBAcmV0dXJuIG1hcC1nZXQoJG1hcCwgJGFuY2hvcik7XHJcbiAgfVxyXG59XHJcblxyXG4vLyBMZWdhY3kgYnJlYWtwb2ludCB2YXJpYWJsZXNcclxuLy8gVGhlc2Ugd2lsbCBiZSByZW1vdmVkIGluIDYuM1xyXG4kc21hbGwtdXA6IG51bGw7XHJcbiRzbWFsbC1vbmx5OiBudWxsO1xyXG4kbWVkaXVtLXVwOiBudWxsO1xyXG4kbWVkaXVtLW9ubHk6IG51bGw7XHJcbiRsYXJnZS11cDogbnVsbDtcclxuJGxhcmdlLW9ubHk6IG51bGw7XHJcbiR4bGFyZ2UtdXA6IG51bGw7XHJcbiR4bGFyZ2Utb25seTogbnVsbDtcclxuJHh4bGFyZ2UtdXA6IG51bGw7XHJcbiR4eGxhcmdlLW9ubHk6IG51bGw7XHJcblxyXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCBzbWFsbCkge1xyXG4gICRzbWFsbC11cDogc2NyZWVuO1xyXG4gICRzbWFsbC1vbmx5OiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChzbWFsbCBvbmx5KX0nKTtcclxufVxyXG5cclxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgbWVkaXVtKSB7XHJcbiAgJG1lZGl1bS11cDogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQobWVkaXVtKX0nKTtcclxuICAkbWVkaXVtLW9ubHk6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KG1lZGl1bSBvbmx5KX0nKTtcclxufVxyXG5cclxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgbGFyZ2UpIHtcclxuICAkbGFyZ2UtdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KGxhcmdlKX0nKTtcclxuICAkbGFyZ2Utb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQobGFyZ2Ugb25seSl9Jyk7XHJcbn1cclxuXHJcbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIHhsYXJnZSkge1xyXG4gICR4bGFyZ2UtdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KHhsYXJnZSl9Jyk7XHJcbiAgJHhsYXJnZS1vbmx5OiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludCh4bGFyZ2Ugb25seSl9Jyk7XHJcbn1cclxuXHJcbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIHh4bGFyZ2UpIHtcclxuICAkeHhsYXJnZS11cDogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQoeHhsYXJnZSl9Jyk7XHJcbn1cclxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxyXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXHJcbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxyXG5cclxuLy8vL1xyXG4vLy8gQGdyb3VwIGZsZXgtZ3JpZFxyXG4vLy8vXHJcblxyXG4vLy8gQ3JlYXRlcyBhIGNvbnRhaW5lciBmb3IgYSBmbGV4IGdyaWQgcm93LlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7S2V5d29yZHxMaXN0fSAkYmVoYXZpb3IgW251bGxdXHJcbi8vLyAgIE1vZGlmaWNhdGlvbnMgdG8gdGhlIGRlZmF1bHQgZ3JpZCBzdHlsZXMuIGBuZXN0YCBpbmRpY2F0ZXMgdGhlIHJvdyB3aWxsIGJlIHBsYWNlZCBpbnNpZGUgYW5vdGhlciByb3cuIGBjb2xsYXBzZWAgaW5kaWNhdGVzIHRoYXQgdGhlIGNvbHVtbnMgaW5zaWRlIHRoaXMgcm93IHdpbGwgbm90IGhhdmUgcGFkZGluZy4gYG5lc3QgY29sbGFwc2VgIGNvbWJpbmVzIGJvdGggYmVoYXZpb3JzLlxyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3aWR0aCBbJGdyaWQtcm93LXdpZHRoXSAtIE1heGltdW0gd2lkdGggb2YgdGhlIHJvdy5cclxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkY29sdW1ucyBbbnVsbF0gLSBOdW1iZXIgb2YgY29sdW1ucyB0byB1c2UgZm9yIHRoaXMgcm93LiBJZiBzZXQgdG8gYG51bGxgICh0aGUgZGVmYXVsdCksIHRoZSBnbG9iYWwgY29sdW1uIGNvdW50IHdpbGwgYmUgdXNlZC5cclxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGJhc2UgW3RydWVdIC0gU2V0IHRvIGBmYWxzZWAgdG8gcHJldmVudCBiYXNpYyBzdHlsZXMgZnJvbSBiZWluZyBvdXRwdXQuIFVzZWZ1bCBpZiB5b3UncmUgY2FsbGluZyB0aGlzIG1peGluIG9uIHRoZSBzYW1lIGVsZW1lbnQgdHdpY2UsIGFzIGl0IHByZXZlbnRzIGR1cGxpY2F0ZSBDU1Mgb3V0cHV0LlxyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRndXR0ZXIgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gR3V0dGVyIHRvIHVzZSB3aGVuIGludmVydGluZyBtYXJnaW5zLCBpbiBjYXNlIHRoZSByb3cgaXMgbmVzdGVkLlxyXG5AbWl4aW4gZmxleC1ncmlkLXJvdyhcclxuICAkYmVoYXZpb3I6IG51bGwsXHJcbiAgJHdpZHRoOiAkZ3JpZC1yb3ctd2lkdGgsXHJcbiAgJGNvbHVtbnM6IG51bGwsXHJcbiAgJGJhc2U6IHRydWUsXHJcbiAgJGd1dHRlcjogJGdyaWQtY29sdW1uLWd1dHRlclxyXG4pIHtcclxuICAkbWFyZ2luOiBhdXRvO1xyXG5cclxuICBAaWYgaW5kZXgoJGJlaGF2aW9yLCBuZXN0KSAhPSBudWxsIHtcclxuICAgIEBpbmNsdWRlIGdyaWQtcm93LW5lc3QoJGd1dHRlcik7XHJcblxyXG4gICAgQGlmIGluZGV4KCRiZWhhdmlvciwgY29sbGFwc2UpICE9IG51bGwge1xyXG4gICAgICBtYXJnaW4tbGVmdDogMDtcclxuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xyXG4gICAgfVxyXG4gIH1cclxuICBAZWxzZSB7XHJcbiAgICBtYXgtd2lkdGg6ICR3aWR0aDtcclxuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xyXG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xyXG4gIH1cclxuXHJcbiAgQGlmICRiYXNlIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xyXG4gIH1cclxuXHJcbiAgQGlmICRjb2x1bW5zICE9IG51bGwge1xyXG4gICAgQGluY2x1ZGUgZ3JpZC1jb250ZXh0KCRjb2x1bW5zLCAkYmFzZSkge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8vLyBDYWxjdWxhdGVzIHRoZSBgZmxleGAgcHJvcGVydHkgZm9yIGEgZmxleCBncmlkIGNvbHVtbi4gSXQgYWNjZXB0cyBhbGwgb2YgdGhlIHNhbWUgdmFsdWVzIGFzIHRoZSBiYXNpYyBgZ3JpZC1jb2x1bW4oKWAgZnVuY3Rpb24sIGFsb25nIHdpdGggdHdvIGV4dHJhczpcclxuLy8vICAgLSBgbnVsbGAgKHRoZSBkZWZhdWx0KSB3aWxsIG1ha2UgdGhlIGNvbHVtbiBleHBhbmQgdG8gZmlsbCBzcGFjZS5cclxuLy8vICAgLSBgc2hyaW5rYCB3aWxsIG1ha2UgdGhlIGNvbHVtbiBjb250cmFjdCwgc28gaXQgb25seSB0YWtlcyB1cCB0aGUgaG9yaXpvbnRhbCBzcGFjZSBpdCBuZWVkcy5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge01peGVkfSAkY29sdW1ucyBbbnVsbF0gLSBXaWR0aCBvZiB0aGUgY29sdW1uLlxyXG5AZnVuY3Rpb24gZmxleC1ncmlkLWNvbHVtbigkY29sdW1uczogbnVsbCkge1xyXG4gIC8vIHNjc3MtbGludDpkaXNhYmxlIFplcm9Vbml0XHJcbiAgJGZsZXg6IDEgMSAwcHg7XHJcblxyXG4gIEBpZiAkY29sdW1ucyA9PSBzaHJpbmsge1xyXG4gICAgJGZsZXg6IDAgMCBhdXRvO1xyXG4gIH1cclxuICBAZWxzZSBpZiAkY29sdW1ucyAhPSBudWxsIHtcclxuICAgICRmbGV4OiAwIDAgZ3JpZC1jb2x1bW4oJGNvbHVtbnMpO1xyXG4gIH1cclxuXHJcbiAgQHJldHVybiAkZmxleDtcclxufVxyXG5cclxuLy8vIENyZWF0ZXMgYSBjb2x1bW4gZm9yIGEgZmxleCBncmlkLiBCeSBkZWZhdWx0LCB0aGUgY29sdW1uIHdpbGwgc3RyZXRjaCB0byB0aGUgZnVsbCB3aWR0aCBvZiBpdHMgY29udGFpbmVyLCBidXQgdGhpcyBjYW4gYmUgb3ZlcnJpZGRlbiB3aXRoIHNpemluZyBjbGFzc2VzLCBvciBieSB1c2luZyB0aGUgYHVuc3RhY2tgIGNsYXNzIG9uIHRoZSBwYXJlbnQgZmxleCByb3cuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtNaXhlZH0gJGNvbHVtbnMgW251bGxdIC0gV2lkdGggb2YgdGhlIGNvbHVtbi4gUmVmZXIgdG8gdGhlIGBmbGV4LWdyaWQtY29sdW1uKClgIGZ1bmN0aW9uIHRvIHNlZSBwb3NzaWJsZSB2YWx1ZXMuXHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJGd1dHRlciBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBTcGFjZSBiZXR3ZWVuIGNvbHVtbnMsIGFkZGVkIGFzIGEgbGVmdCBhbmQgcmlnaHQgcGFkZGluZy5cclxuQG1peGluIGZsZXgtZ3JpZC1jb2x1bW4oXHJcbiAgJGNvbHVtbnM6IG51bGwsXHJcbiAgJGd1dHRlcjogJGdyaWQtY29sdW1uLWd1dHRlclxyXG4pIHtcclxuICAvLyBCYXNlIHByb3BlcnRpZXNcclxuICBmbGV4OiBmbGV4LWdyaWQtY29sdW1uKCRjb2x1bW5zKTtcclxuXHJcbiAgLy8gR3V0dGVyc1xyXG4gIEBpZiB0eXBlLW9mKCRndXR0ZXIpID09ICdtYXAnIHtcclxuICAgIEBlYWNoICRicmVha3BvaW50LCAkdmFsdWUgaW4gJGd1dHRlciB7XHJcbiAgICAgICRwYWRkaW5nOiByZW0tY2FsYygkdmFsdWUpIC8gMjtcclxuXHJcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGJyZWFrcG9pbnQpIHtcclxuICAgICAgICBwYWRkaW5nLWxlZnQ6ICRwYWRkaW5nO1xyXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICRwYWRkaW5nO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBlbHNlIGlmIHR5cGUtb2YoJGd1dHRlcikgPT0gJ251bWJlcicgYW5kIHN0cmlwLXVuaXQoJGd1dHRlcikgPiAwIHtcclxuICAgICRwYWRkaW5nOiByZW0tY2FsYygkZ3V0dGVyKSAvIDI7XHJcbiAgICBwYWRkaW5nLWxlZnQ6ICRwYWRkaW5nO1xyXG4gICAgcGFkZGluZy1yaWdodDogJHBhZGRpbmc7XHJcbiAgfVxyXG5cclxuICAvLyBmaXhlcyByZWNlbnQgQ2hyb21lIHZlcnNpb24gbm90IGxpbWl0aW5nIGNoaWxkIHdpZHRoXHJcbiAgLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMzQ5MzQ1ODYvd2hpdGUtc3BhY2Utbm93cmFwLWFuZC1mbGV4Ym94LWRpZC1ub3Qtd29yay1pbi1jaHJvbWVcclxuICBAaWYgJGNvbHVtbnMgPT0gbnVsbCB7XHJcbiAgICBtaW4td2lkdGg6IGluaXRpYWw7XHJcbiAgfVxyXG4gIC8vIG1heC13aWR0aCBmaXhlcyBJRSAxMC8xMSBub3QgcmVzcGVjdGluZyB0aGUgZmxleC1iYXNpcyBwcm9wZXJ0eVxyXG4gIEBpZiAkY29sdW1ucyAhPSBudWxsIGFuZCAkY29sdW1ucyAhPSBzaHJpbmsge1xyXG4gICAgbWF4LXdpZHRoOiBncmlkLWNvbHVtbigkY29sdW1ucyk7XHJcbiAgfVxyXG59XHJcblxyXG4vLy8gQ3JlYXRlcyBhIGJsb2NrIGdyaWQgZm9yIGEgZmxleCBncmlkIHJvdy5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJG4gLSBOdW1iZXIgb2YgY29sdW1ucyB0byBkaXNwbGF5IG9uIGVhY2ggcm93LlxyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzZWxlY3RvciAtIFNlbGVjdG9yIHRvIHVzZSB0byB0YXJnZXQgY29sdW1ucyB3aXRoaW4gdGhlIHJvdy5cclxuQG1peGluIGZsZXgtZ3JpZC1sYXlvdXQoXHJcbiAgJG4sXHJcbiAgJHNlbGVjdG9yOiAnLmNvbHVtbidcclxuKSB7XHJcbiAgZmxleC13cmFwOiB3cmFwO1xyXG5cclxuICA+ICN7JHNlbGVjdG9yfSB7XHJcbiAgICAkcGN0OiBwZXJjZW50YWdlKDEvJG4pO1xyXG5cclxuICAgIGZsZXg6IDAgMCAkcGN0O1xyXG4gICAgbWF4LXdpZHRoOiAkcGN0O1xyXG4gIH1cclxufVxyXG5cclxuLy8vIENoYW5nZXMgdGhlIHNvdXJjZSBvcmRlciBvZiBhIGZsZXggZ3JpZCBjb2x1bW4uIENvbHVtbnMgd2l0aCBsb3dlciBudW1iZXJzIGFwcGVhciBmaXJzdCBpbiB0aGUgbGF5b3V0LlxyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRvcmRlciBbMF0gLSBPcmRlciBudW1iZXIgdG8gYXBwbHkuXHJcbkBtaXhpbiBmbGV4LWdyaWQtb3JkZXIoJG9yZGVyOiAwKSB7XHJcbiAgQHdhcm4gJ1RoaXMgbWl4aW4gaXMgYmVpbmcgcmVwbGFjZWQgYnkgZmxleC1vcmRlcigpLiBmbGV4LWdyaWQtb3JkZXIoKSB3aWxsIGJlIHJlbW92ZWQgaW4gRm91bmRhdGlvbiA2LjMuJztcclxuICBAaW5jbHVkZSBmbGV4LW9yZGVyKCRvcmRlcik7XHJcbn1cclxuXHJcbi8vLyBIb3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBhbGlnbnMgdGhlIGNvbHVtbnMgd2l0aGluIGEgZmxleCByb3cuIEFwcGx5IHRoaXMgbWl4aW4gdG8gYSBmbGV4IHJvdy5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR4IFtudWxsXSAtIEhvcml6b250YWwgYWxpZ25tZW50IHRvIHVzZS4gQ2FuIGJlIGBsZWZ0YCwgYHJpZ2h0YCwgYGNlbnRlcmAsIGBqdXN0aWZ5YCwgb3IgYHNwYWNlZGAuIE9yLCBzZXQgaXQgdG8gYG51bGxgICh0aGUgZGVmYXVsdCkgdG8gbm90IHNldCBob3Jpem9udGFsIGFsaWdubWVudC5cclxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHkgW251bGxdIC0gVmVydGljYWwgYWxpZ25tZW50IHRvIHVzZS4gQ2FuIGJlIGB0b3BgLCBgYm90dG9tYCwgYG1pZGRsZWAsIG9yIGBzdHJldGNoYC4gT3IsIHNldCBpdCB0byBgbnVsbGAgKHRoZSBkZWZhdWx0KSB0byBub3Qgc2V0IHZlcnRpY2FsIGFsaWdubWVudC5cclxuQG1peGluIGZsZXgtZ3JpZC1yb3ctYWxpZ24oJHg6IG51bGwsICR5OiBudWxsKSB7XHJcbiAgQHdhcm4gJ1RoaXMgbWl4aW4gaXMgYmVpbmcgcmVwbGFjZWQgYnkgZmxleC1hbGlnbigpLiBmbGV4LWdyaWQtcm93LWFsaWduKCkgd2lsbCBiZSByZW1vdmVkIGluIEZvdW5kYXRpb24gNi4zLic7XHJcbiAgQGluY2x1ZGUgZmxleC1hbGlnbigkeCwgJHkpO1xyXG59XHJcblxyXG4vLy8gVmVydGljYWxseSBhbGlnbiBhIHNpbmdsZSBjb2x1bW4gd2l0aGluIGEgZmxleCByb3cuIEFwcGx5IHRoaXMgbWl4aW4gdG8gYSBmbGV4IGNvbHVtbi5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR5IFtudWxsXSAtIFZlcnRpY2FsIGFsaWdubWVudCB0byB1c2UuIENhbiBiZSBgdG9wYCwgYGJvdHRvbWAsIGBtaWRkbGVgLCBvciBgc3RyZXRjaGAuIE9yLCBzZXQgaXQgdG8gYG51bGxgICh0aGUgZGVmYXVsdCkgdG8gbm90IHNldCB2ZXJ0aWNhbCBhbGlnbm1lbnQuXHJcbkBtaXhpbiBmbGV4LWdyaWQtY29sdW1uLWFsaWduKCR5OiBudWxsKSB7XHJcbiAgQHdhcm4gJ1RoaXMgbWl4aW4gaXMgYmVpbmcgcmVwbGFjZWQgYnkgZmxleC1hbGlnbi1zZWxmKCkuIGZsZXgtZ3JpZC1jb2x1bW4tYWxpZ24oKSB3aWxsIGJlIHJlbW92ZWQgaW4gRm91bmRhdGlvbiA2LjMuJztcclxuICBAaW5jbHVkZSBmbGV4LWFsaWduLXNlbGYoJHkpO1xyXG59XHJcblxyXG5AbWl4aW4gZm91bmRhdGlvbi1mbGV4LWdyaWQge1xyXG4gIC8vIFJvd1xyXG4gIC5yb3cge1xyXG4gICAgQGluY2x1ZGUgZmxleC1ncmlkLXJvdztcclxuXHJcbiAgICAvLyBOZXN0aW5nIGJlaGF2aW9yXHJcbiAgICAmICYge1xyXG4gICAgICBAaW5jbHVkZSBmbGV4LWdyaWQtcm93KG5lc3QsICRiYXNlOiBmYWxzZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gRXhwYW5kZWQgcm93XHJcbiAgICAmLmV4cGFuZGVkIHtcclxuICAgICAgbWF4LXdpZHRoOiBub25lO1xyXG4gICAgfVxyXG5cclxuICAgICYuY29sbGFwc2Uge1xyXG4gICAgICA+IC5jb2x1bW4geyBAaW5jbHVkZSBncmlkLWNvbC1jb2xsYXBzZTsgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gQ29sdW1uXHJcbiAgLmNvbHVtbiB7XHJcbiAgICBAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uO1xyXG4gIH1cclxuXHJcbiAgLy8gQ29sdW1uIHJvd1xyXG4gIC8vIFRoZSBkb3VibGUgLnJvdyBjbGFzcyBpcyBuZWVkZWQgdG8gYnVtcCB1cCB0aGUgc3BlY2lmaWNpdHlcclxuICAuY29sdW1uLnJvdy5yb3cge1xyXG4gICAgZmxvYXQ6IG5vbmU7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuXHJcbiAgICAvLyBUbyBwcm9wZXJseSBuZXN0IGEgY29sdW1uIHJvdywgcGFkZGluZyBhbmQgbWFyZ2luIGlzIHJlbW92ZWRcclxuICAgIC5yb3cgJiB7XHJcbiAgICAgIHBhZGRpbmctbGVmdDogMDtcclxuICAgICAgcGFkZGluZy1yaWdodDogMDtcclxuICAgICAgbWFyZ2luLWxlZnQ6IDA7XHJcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQge1xyXG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZ3JpZC1jb2x1bW4tY291bnQge1xyXG4gICAgICAvLyBTaXppbmcgKHBlcmNlbnRhZ2UpXHJcbiAgICAgIC4jeyQtemYtc2l6ZX0tI3skaX0ge1xyXG4gICAgICAgIGZsZXg6IGZsZXgtZ3JpZC1jb2x1bW4oJGkpO1xyXG4gICAgICAgIG1heC13aWR0aDogZ3JpZC1jb2x1bW4oJGkpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBPZmZzZXRzXHJcbiAgICAgICRvOiAkaSAtIDE7XHJcblxyXG4gICAgICAuI3skLXpmLXNpemV9LW9mZnNldC0jeyRvfSB7XHJcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tb2Zmc2V0KCRvKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIFNvdXJjZSBvcmRlcmluZ1xyXG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCA2IHtcclxuICAgICAgLiN7JC16Zi1zaXplfS1vcmRlci0jeyRpfSB7XHJcbiAgICAgICAgQGluY2x1ZGUgZmxleC1vcmRlcigkaSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBCbG9jayBncmlkXHJcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRibG9jay1ncmlkLW1heCB7XHJcbiAgICAgIC4jeyQtemYtc2l6ZX0tdXAtI3skaX0ge1xyXG4gICAgICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1sYXlvdXQoJGkpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQGlmICQtemYtc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XHJcbiAgICAgIC8vIFNpemluZyAoZXhwYW5kKVxyXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCQtemYtc2l6ZSkge1xyXG4gICAgICAgIC4jeyQtemYtc2l6ZX0tZXhwYW5kIHtcclxuICAgICAgICAgIGZsZXg6IGZsZXgtZ3JpZC1jb2x1bW4oKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIEF1dG8tc3RhY2tpbmcvdW5zdGFja2luZ1xyXG4gICAgICBAYXQtcm9vdCAod2l0aG91dDogbWVkaWEpIHtcclxuICAgICAgICAucm93LiN7JC16Zi1zaXplfS11bnN0YWNrIHtcclxuICAgICAgICAgID4gLmNvbHVtbiB7XHJcbiAgICAgICAgICAgIGZsZXg6IGZsZXgtZ3JpZC1jb2x1bW4oMTAwJSk7XHJcblxyXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCQtemYtc2l6ZSkge1xyXG4gICAgICAgICAgICAgIGZsZXg6IGZsZXgtZ3JpZC1jb2x1bW4oKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIFJlc3BvbnNpdmUgY29sbGFwc2luZ1xyXG4gICAgLiN7JC16Zi1zaXplfS1jb2xsYXBzZSB7XHJcbiAgICAgID4gLmNvbHVtbiB7IEBpbmNsdWRlIGdyaWQtY29sLWNvbGxhcHNlOyB9XHJcbiAgICB9XHJcblxyXG4gICAgLiN7JC16Zi1zaXplfS11bmNvbGxhcHNlIHtcclxuICAgICAgJGd1dHRlcjogLXpmLWdldC1icC12YWwoJGdyaWQtY29sdW1uLWd1dHRlciwgJC16Zi1zaXplKTtcclxuXHJcbiAgICAgID4gLmNvbHVtbiB7IEBpbmNsdWRlIGdyaWQtY29sLXVuY29sbGFwc2UoJGd1dHRlcik7IH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIFNpemluZyAoc2hyaW5rKVxyXG4gIC5zaHJpbmsge1xyXG4gICAgZmxleDogZmxleC1ncmlkLWNvbHVtbihzaHJpbmspO1xyXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gIH1cclxuXHJcbiAgLy8gVmVydGljYWwgYWxpZ25tZW50IHVzaW5nIGFsaWduLWl0ZW1zIGFuZCBhbGlnbi1zZWxmXHJcbiAgLy8gUmVtb3ZlIHRoZXNlIGluIDYuM1xyXG4gIEBlYWNoICR2ZGlyLCAkcHJvcCBpbiAkLXpmLWZsZXgtYWxpZ24ge1xyXG4gICAgLmNvbHVtbi5hbGlnbi0jeyR2ZGlyfSB7XHJcbiAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24tc2VsZigkdmRpcik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuY29sdW1ucyB7XHJcbiAgICAvLyBzY3NzLWxpbnQ6ZGlzYWJsZSBQbGFjZWhvbGRlckluRXh0ZW5kXHJcbiAgICBAZXh0ZW5kIC5jb2x1bW47XHJcbiAgfVxyXG59XHJcbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcclxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxyXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcclxuXHJcbi8vLy9cclxuLy8vIEBncm91cCBmdW5jdGlvbnNcclxuLy8vL1xyXG5cclxuJGdsb2JhbC1mb250LXNpemU6IDEwMCUgIWRlZmF1bHQ7XHJcblxyXG4vLyBzY3NzLWxpbnQ6ZGlzYWJsZSBaZXJvVW5pdFxyXG5cclxuLy8vIFJlbW92ZXMgdGhlIHVuaXQgKGUuZy4gcHgsIGVtLCByZW0pIGZyb20gYSB2YWx1ZSwgcmV0dXJuaW5nIHRoZSBudW1iZXIgb25seS5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJG51bSAtIE51bWJlciB0byBzdHJpcCB1bml0IGZyb20uXHJcbi8vL1xyXG4vLy8gQHJldHVybnMge051bWJlcn0gVGhlIHNhbWUgbnVtYmVyLCBzYW5zIHVuaXQuXHJcbkBmdW5jdGlvbiBzdHJpcC11bml0KCRudW0pIHtcclxuICBAcmV0dXJuICRudW0gLyAoJG51bSAqIDAgKyAxKTtcclxufVxyXG5cclxuLy8vIENvbnZlcnRzIG9uZSBvciBtb3JlIHBpeGVsIHZhbHVlcyBpbnRvIG1hdGNoaW5nIHJlbSB2YWx1ZXMuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJHZhbHVlcyAtIE9uZSBvciBtb3JlIHZhbHVlcyB0byBjb252ZXJ0LiBCZSBzdXJlIHRvIHNlcGFyYXRlIHRoZW0gd2l0aCBzcGFjZXMgYW5kIG5vdCBjb21tYXMuIElmIHlvdSBuZWVkIHRvIGNvbnZlcnQgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCwgd3JhcCB0aGUgbGlzdCBpbiBwYXJlbnRoZXNlcy5cclxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZSBbbnVsbF0gLSBUaGUgYmFzZSB2YWx1ZSB0byB1c2Ugd2hlbiBjYWxjdWxhdGluZyB0aGUgYHJlbWAuIElmIHlvdSdyZSB1c2luZyBGb3VuZGF0aW9uIG91dCBvZiB0aGUgYm94LCB0aGlzIGlzIDE2cHguIElmIHRoaXMgcGFyYW1ldGVyIGlzIGBudWxsYCwgdGhlIGZ1bmN0aW9uIHdpbGwgcmVmZXJlbmNlIHRoZSBgJGJhc2UtZm9udC1zaXplYCB2YXJpYWJsZSBhcyB0aGUgYmFzZS5cclxuLy8vXHJcbi8vLyBAcmV0dXJucyB7TGlzdH0gQSBsaXN0IG9mIGNvbnZlcnRlZCB2YWx1ZXMuXHJcbkBmdW5jdGlvbiByZW0tY2FsYygkdmFsdWVzLCAkYmFzZTogbnVsbCkge1xyXG4gICRyZW0tdmFsdWVzOiAoKTtcclxuICAkY291bnQ6IGxlbmd0aCgkdmFsdWVzKTtcclxuXHJcbiAgLy8gSWYgbm8gYmFzZSBpcyBkZWZpbmVkLCBkZWZlciB0byB0aGUgZ2xvYmFsIGZvbnQgc2l6ZVxyXG4gIEBpZiAkYmFzZSA9PSBudWxsIHtcclxuICAgICRiYXNlOiAkZ2xvYmFsLWZvbnQtc2l6ZTtcclxuICB9XHJcblxyXG4gIC8vIElmIHRoZSBiYXNlIGZvbnQgc2l6ZSBpcyBhICUsIHRoZW4gbXVsdGlwbHkgaXQgYnkgMTZweFxyXG4gIC8vIFRoaXMgaXMgYmVjYXVzZSAxMDAlIGZvbnQgc2l6ZSA9IDE2cHggaW4gbW9zdCBhbGwgYnJvd3NlcnNcclxuICBAaWYgdW5pdCgkYmFzZSkgPT0gJyUnIHtcclxuICAgICRiYXNlOiAoJGJhc2UgLyAxMDAlKSAqIDE2cHg7XHJcbiAgfVxyXG5cclxuICBAaWYgJGNvdW50ID09IDEge1xyXG4gICAgQHJldHVybiAtemYtdG8tcmVtKCR2YWx1ZXMsICRiYXNlKTtcclxuICB9XHJcblxyXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGNvdW50IHtcclxuICAgICRyZW0tdmFsdWVzOiBhcHBlbmQoJHJlbS12YWx1ZXMsIC16Zi10by1yZW0obnRoKCR2YWx1ZXMsICRpKSwgJGJhc2UpKTtcclxuICB9XHJcblxyXG4gIEByZXR1cm4gJHJlbS12YWx1ZXM7XHJcbn1cclxuXHJcbi8vIENvbnZlcnRzIGEgdW5pdGxlc3MsIHBpeGVsLCBvciByZW0gdmFsdWUgdG8gZW0sIGZvciB1c2UgaW4gYnJlYWtwb2ludHMuXHJcbkBmdW5jdGlvbiAtemYtYnAtdG8tZW0oJHZhbHVlKSB7XHJcbiAgLy8gUGl4ZWwgYW5kIHVuaXRsZXNzIHZhbHVlcyBhcmUgY29udmVydGVkIHRvIHJlbXNcclxuICBAaWYgdW5pdCgkdmFsdWUpID09ICdweCcgb3IgdW5pdGxlc3MoJHZhbHVlKSB7XHJcbiAgICAkdmFsdWU6IHJlbS1jYWxjKCR2YWx1ZSwgJGJhc2U6IDE2cHgpO1xyXG4gIH1cclxuXHJcbiAgLy8gVGhlbiB0aGUgdmFsdWUgaXMgY29udmVydGVkIHRvIGVtc1xyXG4gIEByZXR1cm4gc3RyaXAtdW5pdCgkdmFsdWUpICogMWVtO1xyXG59XHJcblxyXG4vLy8gQ29udmVydHMgYSBwaXhlbCB2YWx1ZSB0byBtYXRjaGluZyByZW0gdmFsdWUuICpBbnkqIHZhbHVlIHBhc3NlZCwgcmVnYXJkbGVzcyBvZiB1bml0LCBpcyBhc3N1bWVkIHRvIGJlIGEgcGl4ZWwgdmFsdWUuIEJ5IGRlZmF1bHQsIHRoZSBiYXNlIHBpeGVsIHZhbHVlIHVzZWQgdG8gY2FsY3VsYXRlIHRoZSByZW0gdmFsdWUgaXMgdGFrZW4gZnJvbSB0aGUgYCRnbG9iYWwtZm9udC1zaXplYCB2YXJpYWJsZS5cclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdmFsdWUgLSBQaXhlbCB2YWx1ZSB0byBjb252ZXJ0LlxyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXNlIFtudWxsXSAtIEJhc2UgZm9yIHBpeGVsIGNvbnZlcnNpb24uXHJcbi8vL1xyXG4vLy8gQHJldHVybnMge051bWJlcn0gQSBudW1iZXIgaW4gcmVtcywgY2FsY3VsYXRlZCBiYXNlZCBvbiB0aGUgZ2l2ZW4gdmFsdWUgYW5kIHRoZSBiYXNlIHBpeGVsIHZhbHVlLiByZW0gdmFsdWVzIGFyZSBwYXNzZWQgdGhyb3VnaCBhcyBpcy5cclxuQGZ1bmN0aW9uIC16Zi10by1yZW0oJHZhbHVlLCAkYmFzZTogbnVsbCkge1xyXG4gIC8vIENoZWNrIGlmIHRoZSB2YWx1ZSBpcyBhIG51bWJlclxyXG4gIEBpZiB0eXBlLW9mKCR2YWx1ZSkgIT0gJ251bWJlcicge1xyXG4gICAgQHdhcm4gaW5zcGVjdCgkdmFsdWUpICsgJyB3YXMgcGFzc2VkIHRvIHJlbS1jYWxjKCksIHdoaWNoIGlzIG5vdCBhIG51bWJlci4nO1xyXG4gICAgQHJldHVybiAkdmFsdWU7XHJcbiAgfVxyXG5cclxuICAvLyBDYWxjdWxhdGUgcmVtIGlmIHVuaXRzIGZvciAkdmFsdWUgaXMgbm90IHJlbVxyXG4gIEBpZiB1bml0KCR2YWx1ZSkgIT0gJ3JlbScge1xyXG4gICAgJHZhbHVlOiBzdHJpcC11bml0KCR2YWx1ZSkgLyBzdHJpcC11bml0KCRiYXNlKSAqIDFyZW07XHJcbiAgfVxyXG5cclxuICAvLyBUdXJuIDByZW0gaW50byAwXHJcbiAgQGlmICR2YWx1ZSA9PSAwcmVtIHtcclxuICAgICR2YWx1ZTogMDtcclxuICB9XHJcblxyXG4gIEByZXR1cm4gJHZhbHVlO1xyXG59XHJcbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcclxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxyXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcclxuXHJcbi8vLy9cclxuLy8vIEBncm91cCBncmlkXHJcbi8vLy9cclxuXHJcbi8vLyBDaGFuZ2UgdGhlIGJlaGF2aW9yIG9mIGNvbHVtbnMgZGVmaW5lZCBpbnNpZGUgdGhpcyBtaXhpbiB0byB1c2UgYSBkaWZmZXJlbnQgY29sdW1uIGNvdW50LlxyXG4vLy8gQGNvbnRlbnRcclxuLy8vXHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJGNvbHVtbnMgLSBOdW1iZXIgb2YgY29sdW1ucyB0byB1c2UuXHJcbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRyb290IFtmYWxzZV1cclxuLy8vICAgSWYgYGZhbHNlYCwgc2VsZWN0b3JzIGluc2lkZSB0aGlzIG1peGluIHdpbGwgbmVzdCBpbnNpZGUgdGhlIHBhcmVudCBzZWxlY3Rvci5cclxuLy8vICAgSWYgYHRydWVgLCBzZWxlY3RvcnMgd2lsbCBub3QgbmVzdC5cclxuQG1peGluIGdyaWQtY29udGV4dChcclxuICAkY29sdW1ucyxcclxuICAkcm9vdDogZmFsc2VcclxuKSB7XHJcbiAgLy8gU3RvcmUgdGhlIGN1cnJlbnQgY29sdW1uIGNvdW50IHNvIGl0IGNhbiBiZSByZS1zZXQgbGF0ZXJcclxuICAkb2xkLWdyaWQtY29sdW1uLWNvdW50OiAkZ3JpZC1jb2x1bW4tY291bnQ7XHJcbiAgJGdyaWQtY29sdW1uLWNvdW50OiAkY29sdW1ucyAhZ2xvYmFsO1xyXG5cclxuICBAaWYgJHJvb3Qge1xyXG4gICAgQGF0LXJvb3QgeyBAY29udGVudDsgfVxyXG4gIH1cclxuICBAZWxzZSB7XHJcbiAgICBAY29udGVudDtcclxuICB9XHJcblxyXG4gIC8vIFJlc3RvcmUgdGhlIG9sZCBjb2x1bW4gY291bnRcclxuICAkZ3JpZC1jb2x1bW4tY291bnQ6ICRvbGQtZ3JpZC1jb2x1bW4tY291bnQ7XHJcbn1cclxuXHJcbi8vLyBDcmVhdGVzIGEgZ3JpZCByb3cuXHJcbi8vLyBAY29udGVudFxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkY29sdW1ucyBbbnVsbF0gLSBDb2x1bW4gY291bnQgZm9yIHRoaXMgcm93LiBgbnVsbGAgd2lsbCB1c2UgdGhlIGRlZmF1bHQgY29sdW1uIGNvdW50LlxyXG4vLy8gQHBhcmFtIHtLZXl3b3Jkc30gJGJlaGF2aW9yIFtudWxsXVxyXG4vLy8gICBNb2RpZmljYXRpb25zIHRvIHRoZSBkZWZhdWx0IGdyaWQgc3R5bGVzLiBgbmVzdGAgaW5kaWNhdGVzIHRoZSByb3cgd2lsbCBiZSBwbGFjZWQgaW5zaWRlIGFub3RoZXIgcm93LiBgY29sbGFwc2VgIGluZGljYXRlcyB0aGF0IHRoZSBjb2x1bW5zIGluc2lkZSB0aGlzIHJvdyB3aWxsIG5vdCBoYXZlIHBhZGRpbmcuIGBuZXN0IGNvbGxhcHNlYCBjb21iaW5lcyBib3RoIGJlaGF2aW9ycy5cclxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2lkdGggWyRncmlkLXJvdy13aWR0aF0gLSBNYXhpbXVtIHdpZHRoIG9mIHRoZSByb3cuXHJcbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRjZiBbdHJ1ZV0gLSBXaGV0aGVyIG9yIG5vdCB0byBpbmNsdWRlIGEgY2xlYXJmaXguXHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJGd1dHRlciBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBHdXR0ZXIgdG8gdXNlIHdoZW4gaW52ZXJ0aW5nIG1hcmdpbnMsIGluIGNhc2UgdGhlIHJvdyBpcyBuZXN0ZWQuXHJcbkBtaXhpbiBncmlkLXJvdyhcclxuICAkY29sdW1uczogbnVsbCxcclxuICAkYmVoYXZpb3I6IG51bGwsXHJcbiAgJHdpZHRoOiAkZ3JpZC1yb3ctd2lkdGgsXHJcbiAgJGNmOiB0cnVlLFxyXG4gICRndXR0ZXI6ICRncmlkLWNvbHVtbi1ndXR0ZXJcclxuKSB7XHJcbiAgJG1hcmdpbjogYXV0bztcclxuXHJcbiAgQGlmIGluZGV4KCRiZWhhdmlvciwgbmVzdCkgIT0gbnVsbCB7XHJcbiAgICBAaW5jbHVkZSBncmlkLXJvdy1uZXN0KCRndXR0ZXIpO1xyXG5cclxuICAgIEBpZiBpbmRleCgkYmVoYXZpb3IsIGNvbGxhcHNlKSAhPSBudWxsIHtcclxuICAgICAgbWFyZ2luLWxlZnQ6IDA7XHJcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcclxuICAgIH1cclxuICB9XHJcbiAgQGVsc2Uge1xyXG4gICAgbWF4LXdpZHRoOiAkd2lkdGg7XHJcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcclxuICAgIG1hcmdpbi1yaWdodDogYXV0bztcclxuICB9XHJcblxyXG4gIEBpZiAkY2Yge1xyXG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XHJcbiAgfVxyXG5cclxuICBAaWYgJGNvbHVtbnMgIT0gbnVsbCB7XHJcbiAgICBAaW5jbHVkZSBncmlkLWNvbnRleHQoJGNvbHVtbnMpIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vLy8gSW52ZXJ0cyB0aGUgbWFyZ2lucyBvZiBhIHJvdyB0byBuZXN0IGl0IGluc2lkZSBvZiBhIGNvbHVtbi5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge01hcHxudWxsfSAkZ3V0dGVyIFtudWxsXSAtIEd1dHRlciB2YWx1ZSB0byB1c2Ugd2hlbiBpbnZlcnRpbmcgdGhlIG1hcmdpbnMuIFNldCB0byBgbnVsbGAgdG8gcmVmZXIgdG8gdGhlIHJlc3BvbnNpdmUgZ3V0dGVyIHNldHRpbmdzLlxyXG5AbWl4aW4gZ3JpZC1yb3ctbmVzdCgkZ3V0dGVyOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyKSB7XHJcbiAgQGlmIHR5cGUtb2YoJGd1dHRlcikgPT0gJ251bWJlcicge1xyXG4gICAgJGd1dHRlcjogKCQtemYtemVyby1icmVha3BvaW50OiAkZ3V0dGVyKTtcclxuICB9XHJcbiAgbWF4LXdpZHRoOiBub25lO1xyXG5cclxuICBAZWFjaCAkYnJlYWtwb2ludCwgJHZhbHVlIGluICRndXR0ZXIge1xyXG4gICAgJG1hcmdpbjogcmVtLWNhbGMoJHZhbHVlKSAvIDIgKiAtMTtcclxuXHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRicmVha3BvaW50KSB7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAkbWFyZ2luO1xyXG4gICAgICBtYXJnaW4tcmlnaHQ6ICRtYXJnaW47XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcclxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxyXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcclxuXHJcbi8vLy9cclxuLy8vIEBncm91cCBncmlkXHJcbi8vLy9cclxuXHJcbi8vLyBDb2xsYXBzZSB0aGUgZ3V0dGVycyBvbiBhIGNvbHVtbiBieSByZW1vdmluZyB0aGUgcGFkZGluZy4gKipOb3RlOioqIG9ubHkgdXNlIHRoaXMgbWl4aW4gd2l0aGluIGEgYnJlYWtwb2ludC4gVG8gY29sbGFwc2UgYSBjb2x1bW4ncyBndXR0ZXJzIG9uIGFsbCBzY3JlZW4gc2l6ZXMsIHVzZSB0aGUgYCRndXR0ZXJgIHBhcmFtZXRlciBvZiB0aGUgYGdyaWQtY29sdW1uKClgIG1peGluIGluc3RlYWQuXHJcbkBtaXhpbiBncmlkLWNvbHVtbi1jb2xsYXBzZSB7XHJcbiAgcGFkZGluZy1sZWZ0OiAwO1xyXG4gIHBhZGRpbmctcmlnaHQ6IDA7XHJcbn1cclxuXHJcbi8vLyBVbi1jb2xsYXBzZSB0aGUgZ3V0dGVycyBvbiBhIGNvbHVtbiBieSByZS1hZGRpbmcgdGhlIHBhZGRpbmcuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRndXR0ZXIgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gU3BhY2luZyBiZXR3ZWVuIGNvbHVtbnMuXHJcbkBtaXhpbiBncmlkLWNvbHVtbi11bmNvbGxhcHNlKCRndXR0ZXI6ICRncmlkLWNvbHVtbi1ndXR0ZXIpIHtcclxuICAkZ3V0dGVyOiByZW0tY2FsYygkZ3V0dGVyKSAvIDI7XHJcbiAgcGFkZGluZy1sZWZ0OiAkZ3V0dGVyO1xyXG4gIHBhZGRpbmctcmlnaHQ6ICRndXR0ZXI7XHJcbn1cclxuXHJcbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi1jb2xsYXBzZSgpYC5cclxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi1jb2xsYXBzZVxyXG5AbWl4aW4gZ3JpZC1jb2wtY29sbGFwc2Uge1xyXG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLWNvbGxhcHNlO1xyXG59XHJcblxyXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tdW5jb2xsYXBzZSgpYC5cclxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi11bmNvbGxhcHNlXHJcbkBtaXhpbiBncmlkLWNvbC11bmNvbGxhcHNlKCRndXR0ZXI6ICRncmlkLWNvbHVtbi1ndXR0ZXIpIHtcclxuICBAaW5jbHVkZSBncmlkLWNvbHVtbi11bmNvbGxhcHNlKCRndXR0ZXIpO1xyXG59XHJcbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcclxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxyXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcclxuXHJcbi8vLy9cclxuLy8vIEBncm91cCBncmlkXHJcbi8vLy9cclxuXHJcbi8vLyBDYWxjdWxhdGVzIHRoZSB3aWR0aCBvZiBhIGNvbHVtbiBiYXNlZCBvbiBhIG51bWJlciBvZiBmYWN0b3JzLlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICRjb2x1bW5zXHJcbi8vLyAgIFdpZHRoIG9mIHRoZSBjb2x1bW4uIEFjY2VwdHMgbXVsdGlwbGUgdmFsdWVzOlxyXG4vLy8gICAtIEEgcGVyY2VudGFnZSB2YWx1ZSB3aWxsIG1ha2UgdGhlIGNvbHVtbiB0aGF0IGV4YWN0IHNpemUuXHJcbi8vLyAgIC0gQSBzaW5nbGUgZGlnaXQgd2lsbCBtYWtlIHRoZSBjb2x1bW4gc3BhbiB0aGF0IG51bWJlciBvZiBjb2x1bW5zIHdpZGUsIHRha2luZyBpbnRvIGFjY291bnQgdGhlIGNvbHVtbiBjb3VudCBvZiB0aGUgcGFyZW50IHJvdy5cclxuLy8vICAgLSBBIHN0cmluZyBvZiB0aGUgZm9ybWF0IFwieCBvZiB5XCIgd2lsbCBtYWtlIGEgY29sdW1uIHRoYXQgaXMgKngqIGNvbHVtbnMgd2lkZSwgYXNzdW1pbmcgKnkqIHRvdGFsIGNvbHVtbnMgZm9yIHRoZSBwYXJlbnQuXHJcbi8vL1xyXG4vLy8gQHJldHVybnMge051bWJlcn0gQSBjYWxjdWxhdGVkIHBlcmNlbnRhZ2UgdmFsdWUuXHJcbkBmdW5jdGlvbiBncmlkLWNvbHVtbigkY29sdW1ucykge1xyXG4gICR3aWR0aDogMCU7XHJcblxyXG4gIC8vIFBhcnNpbmcgcGVyY2VudHMsIGRlY2ltYWxzLCBhbmQgY29sdW1uIGNvdW50c1xyXG4gIEBpZiB0eXBlLW9mKCRjb2x1bW5zKSA9PSAnbnVtYmVyJyB7XHJcbiAgICBAaWYgdW5pdCgkY29sdW1ucykgPT0gJyUnIHtcclxuICAgICAgJHdpZHRoOiAkY29sdW1ucztcclxuICAgIH1cclxuICAgIEBlbHNlIGlmICRjb2x1bW5zIDwgMSB7XHJcbiAgICAgICR3aWR0aDogcGVyY2VudGFnZSgkY29sdW1ucyk7XHJcbiAgICB9XHJcbiAgICBAZWxzZSB7XHJcbiAgICAgICR3aWR0aDogcGVyY2VudGFnZSgkY29sdW1ucyAvICRncmlkLWNvbHVtbi1jb3VudCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBQYXJzaW5nIFwibiBvZiBuXCIgZXhwcmVzc2lvbnNcclxuICBAZWxzZSBpZiB0eXBlLW9mKCRjb2x1bW5zKSA9PSAnbGlzdCcge1xyXG4gICAgQGlmIGxlbmd0aCgkY29sdW1ucykgIT0gMyB7XHJcbiAgICAgIEBlcnJvciAnV3Jvbmcgc3ludGF4IGZvciBncmlkLWNvbHVtbigpLiBVc2UgdGhlIGZvcm1hdCBcIm4gb2YgblwiLic7XHJcbiAgICB9XHJcbiAgICBAZWxzZSB7XHJcbiAgICAgICR3aWR0aDogcGVyY2VudGFnZShudGgoJGNvbHVtbnMsIDEpIC8gbnRoKCRjb2x1bW5zLCAzKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBBbnl0aGluZyBlbHNlIGlzIGluY29ycmVjdFxyXG4gIEBlbHNlIHtcclxuICAgIEBlcnJvciAnV3Jvbmcgc3ludGF4IGZvciBncmlkLWNvbHVtbigpLiBVc2UgYSBudW1iZXIsIGRlY2ltYWwsIHBlcmNlbnRhZ2UsIG9yIFwibiBvZiBuXCIuJztcclxuICB9XHJcblxyXG4gIEByZXR1cm4gJHdpZHRoO1xyXG59XHJcblxyXG4vLy8gQ3JlYXRlcyBhIGdyaWQgY29sdW1uLlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TWl4ZWR9ICRjb2x1bW5zIFskZ3JpZC1jb2x1bW4tY291bnRdIC0gV2lkdGggb2YgdGhlIGNvbHVtbi4gUmVmZXIgdG8gdGhlIGBncmlkLWNvbHVtbigpYCBmdW5jdGlvbiB0byBzZWUgcG9zc2libGUgdmFsdWVzLlxyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRndXR0ZXIgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gU3BhY2luZyBiZXR3ZWVuIGNvbHVtbnMuXHJcbkBtaXhpbiBncmlkLWNvbHVtbihcclxuICAkY29sdW1uczogJGdyaWQtY29sdW1uLWNvdW50LFxyXG4gICRndXR0ZXI6ICRncmlkLWNvbHVtbi1ndXR0ZXJcclxuKSB7XHJcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tc2l6ZSgkY29sdW1ucyk7XHJcbiAgZmxvYXQ6ICRnbG9iYWwtbGVmdDtcclxuXHJcbiAgLy8gR3V0dGVyc1xyXG4gIEBpZiB0eXBlLW9mKCRndXR0ZXIpID09ICdtYXAnIHtcclxuICAgIEBlYWNoICRicmVha3BvaW50LCAkdmFsdWUgaW4gJGd1dHRlciB7XHJcbiAgICAgICRwYWRkaW5nOiByZW0tY2FsYygkdmFsdWUpIC8gMjtcclxuXHJcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGJyZWFrcG9pbnQpIHtcclxuICAgICAgICBwYWRkaW5nLWxlZnQ6ICRwYWRkaW5nO1xyXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICRwYWRkaW5nO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBlbHNlIGlmIHR5cGUtb2YoJGd1dHRlcikgPT0gJ251bWJlcicgYW5kIHN0cmlwLXVuaXQoJGd1dHRlcikgPiAwIHtcclxuICAgICRwYWRkaW5nOiByZW0tY2FsYygkZ3V0dGVyKSAvIDI7XHJcbiAgICBwYWRkaW5nLWxlZnQ6ICRwYWRkaW5nO1xyXG4gICAgcGFkZGluZy1yaWdodDogJHBhZGRpbmc7XHJcbiAgfVxyXG5cclxuICAvLyBMYXN0IGNvbHVtbiBhbGlnbm1lbnRcclxuICBAaWYgJGdyaWQtY29sdW1uLWFsaWduLWVkZ2Uge1xyXG4gICAgJjpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcclxuICAgICAgZmxvYXQ6ICRnbG9iYWwtcmlnaHQ7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vLy8gQ3JlYXRlcyBhIGdyaWQgY29sdW1uIHJvdy4gVGhpcyBpcyB0aGUgZXF1aXZhbGVudCBvZiBhZGRpbmcgYC5yb3dgIGFuZCBgLmNvbHVtbmAgdG8gdGhlIHNhbWUgZWxlbWVudC5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJGd1dHRlciBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBXaWR0aCBvZiB0aGUgZ3V0dGVycyBvbiBlaXRoZXIgc2lkZSBvZiB0aGUgY29sdW1uIHJvdy5cclxuQG1peGluIGdyaWQtY29sdW1uLXJvdyhcclxuICAkZ3V0dGVyOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXHJcbikge1xyXG4gIEBpbmNsdWRlIGdyaWQtcm93O1xyXG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uKCRndXR0ZXI6ICRndXR0ZXIpO1xyXG5cclxuICAmLFxyXG4gICY6bGFzdC1jaGlsZCB7XHJcbiAgICBmbG9hdDogbm9uZTtcclxuICB9XHJcbn1cclxuXHJcbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbigpYC5cclxuLy8vIEBhbGlhcyBncmlkLWNvbHVtblxyXG5AZnVuY3Rpb24gZ3JpZC1jb2woXHJcbiAgJGNvbHVtbnM6ICRncmlkLWNvbHVtbi1jb3VudFxyXG4pIHtcclxuICBAcmV0dXJuIGdyaWQtY29sdW1uKCRjb2x1bW5zKTtcclxufVxyXG5cclxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uKClgLlxyXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uXHJcbkBtaXhpbiBncmlkLWNvbChcclxuICAkY29sdW1uczogJGdyaWQtY29sdW1uLWNvdW50LFxyXG4gICRndXR0ZXI6ICRncmlkLWNvbHVtbi1ndXR0ZXJcclxuKSB7XHJcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJGNvbHVtbnMsICRndXR0ZXIpO1xyXG59XHJcblxyXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tcm93KClgLlxyXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLXJvd1xyXG5AbWl4aW4gZ3JpZC1jb2wtcm93KFxyXG4gICRndXR0ZXI6ICRncmlkLWNvbHVtbi1ndXR0ZXJcclxuKSB7XHJcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tcm93KCRndXR0ZXIpO1xyXG59XHJcbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcclxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxyXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcclxuXHJcbi8vLy9cclxuLy8vIEBncm91cCBncmlkXHJcbi8vLy9cclxuXHJcbi8vLyBSZXBvc2l0aW9uIGEgY29sdW1uLlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TnVtYmVyfEtleXdvcmR9ICRwb3NpdGlvbiAtIERpcmVjdGlvbiBhbmQgYW1vdW50IHRvIG1vdmUuIFRoZSBjb2x1bW4gd2lsbCBtb3ZlIGVxdWFsIHRvIHRoZSB3aWR0aCBvZiB0aGUgY29sdW1uIGNvdW50IHNwZWNpZmllZC4gQSBwb3NpdGl2ZSBudW1iZXIgd2lsbCBwdXNoIHRoZSBjb2x1bW4gdG8gdGhlIHJpZ2h0LCB3aGlsZSBhIG5lZ2F0aXZlIG51bWJlciB3aWxsIHB1bGwgaXQgdG8gdGhlIGxlZnQuIFNldCB0byBjZW50ZXIgdG8gY2VudGVyIHRoZSBjb2x1bW4uXHJcbkBtaXhpbiBncmlkLWNvbHVtbi1wb3NpdGlvbigkcG9zaXRpb24pIHtcclxuICBAaWYgdHlwZS1vZigkcG9zaXRpb24pID09ICdudW1iZXInIHtcclxuICAgICRvZmZzZXQ6IHBlcmNlbnRhZ2UoJHBvc2l0aW9uIC8gJGdyaWQtY29sdW1uLWNvdW50KTtcclxuXHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAjeyRnbG9iYWwtbGVmdH06ICRvZmZzZXQ7XHJcbiAgfVxyXG4gIEBlbHNlIGlmICRwb3NpdGlvbiA9PSBjZW50ZXIge1xyXG4gICAgZmxvYXQ6IG5vbmU7XHJcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcclxuICAgIG1hcmdpbi1yaWdodDogYXV0bztcclxuICB9XHJcbiAgQGVsc2Uge1xyXG4gICAgQHdhcm4gJ1dyb25nIHN5bnRheCBmb3IgZ3JpZC1jb2x1bW4tcG9zaXRpb24oKS4gRW50ZXIgYSBwb3NpdGl2ZSBvciBuZWdhdGl2ZSBudW1iZXIsIG9yIGNlbnRlci4nO1xyXG4gIH1cclxufVxyXG5cclxuLy8vIFJlc2V0IGEgcG9zaXRpb24gZGVmaW5pdGlvbi5cclxuQG1peGluIGdyaWQtY29sdW1uLXVucG9zaXRpb24ge1xyXG4gIHBvc2l0aW9uOiBzdGF0aWM7XHJcbiAgbWFyZ2luLWxlZnQ6IDA7XHJcbiAgbWFyZ2luLXJpZ2h0OiAwO1xyXG4gIGZsb2F0OiBsZWZ0O1xyXG59XHJcblxyXG4vLy8gT2Zmc2V0cyBhIGNvbHVtbiB0byB0aGUgcmlnaHQgYnkgYCRuYCBjb2x1bW5zLlxyXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJG4gLSBXaWR0aCB0byBvZmZzZXQgYnkuIFlvdSBjYW4gcGFzcyBpbiBhbnkgdmFsdWUgYWNjZXB0ZWQgYnkgdGhlIGBncmlkLWNvbHVtbigpYCBtaXhpbiwgc3VjaCBhcyBgNmAsIGA1MCVgLCBvciBgMSBvZiAyYC5cclxuQG1peGluIGdyaWQtY29sdW1uLW9mZnNldCgkbikge1xyXG4gIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IGdyaWQtY29sdW1uKCRuKTtcclxufVxyXG5cclxuLy8vIERpc2FibGUgdGhlIGRlZmF1bHQgYmVoYXZpb3Igb2YgdGhlIGxhc3QgY29sdW1uIGluIGEgcm93IGFsaWduaW5nIHRvIHRoZSBvcHBvc2l0ZSBlZGdlLlxyXG5AbWl4aW4gZ3JpZC1jb2x1bW4tZW5kIHtcclxuICAvLyBUaGlzIGV4dHJhIHNwZWNpZmljaXR5IGlzIHJlcXVpcmVkIGZvciB0aGUgcHJvcGVydHkgdG8gYmUgYXBwbGllZFxyXG4gICY6bGFzdC1jaGlsZDpsYXN0LWNoaWxkIHtcclxuICAgIGZsb2F0OiAkZ2xvYmFsLWxlZnQ7XHJcbiAgfVxyXG59XHJcblxyXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tcG9zaXRpb24oKWAuXHJcbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tcG9zaXRpb25cclxuQG1peGluIGdyaWQtY29sLXBvcygkcG9zaXRpb24pIHtcclxuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1wb3NpdGlvbigkcG9zaXRpb24pO1xyXG59XHJcblxyXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tdW5wb3NpdGlvbigpYC5cclxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi11bnBvc2l0aW9uXHJcbkBtaXhpbiBncmlkLWNvbC11bnBvcyB7XHJcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tdW5wb3NpdGlvbjtcclxufVxyXG5cclxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLW9mZnNldCgpYC5cclxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi1vZmZzZXRcclxuQG1peGluIGdyaWQtY29sLW9mZigkbikge1xyXG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLW9mZnNldCgkbik7XHJcbn1cclxuXHJcbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi1lbmQoKWAuXHJcbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tZW5kXHJcbkBtaXhpbiBncmlkLWNvbC1lbmQge1xyXG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLWVuZDtcclxufVxyXG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXHJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cclxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXHJcblxyXG4vLy8vXHJcbi8vLyBAZ3JvdXAgdHlwb2dyYXBoeS1iYXNlXHJcbi8vLy9cclxuXHJcbi8vIEJhc2UgVHlwb2dyYXBoeVxyXG4vLyAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLVxyXG4vLyBUaGVzZSBhcmUgc3R5bGVzIGFwcGxpZWQgdG8gYmFzaWMgSFRNTCB0YWdzLCBpbmNsdWRpbmc6XHJcbi8vICAgLSBQYXJhZ3JhcGhzIDxwPlxyXG4vLyAgIC0gQm9sZC9pdGFsaWNzIDxiPiA8c3Ryb25nPiA8aT4gPGVtPlxyXG4vLyAgIC0gU21hbGwgdGV4dCA8c21hbGw+XHJcbi8vICAgLSBIZWFkaW5ncyA8aDE+4oCUPGg2PlxyXG4vLyAgIC0gQW5jaG9ycyA8YT5cclxuLy8gICAtIERpdmlkZXJzIDxocj5cclxuLy8gICAtIExpc3RzIDx1bD4gPG9sPiA8ZGw+XHJcbi8vICAgLSBCbG9ja3F1b3RlcyA8YmxvY2txdW90ZT5cclxuLy8gICAtIENvZGUgYmxvY2tzIDxjb2RlPlxyXG4vLyAgIC0gQWJicmV2aWF0aW9ucyA8YWJicj5cclxuLy8gICAtIENpdGF0aW9ucyA8Y2l0ZT5cclxuLy8gICAtIEtleXN0cm9rZXMgPGtiZD5cclxuXHJcbi8vLyBGb250IGZhbWlseSBmb3IgaGVhZGVyIGVsZW1lbnRzLlxyXG4vLy8gQHR5cGUgU3RyaW5nIHwgTGlzdFxyXG4kaGVhZGVyLWZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseSAhZGVmYXVsdDtcclxuXHJcbi8vLyBGb250IHdlaWdodCBvZiBoZWFkZXJzLlxyXG4vLy8gQHR5cGUgU3RyaW5nXHJcbiRoZWFkZXItZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcclxuXHJcbi8vLyBGb250IHN0eWxlIChlLmcuIGl0YWxpY2l6ZWQpIG9mIGhlYWRlcnMuXHJcbi8vLyBAdHlwZSBTdHJpbmdcclxuJGhlYWRlci1mb250LXN0eWxlOiBub3JtYWwgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRm9udCBzdGFjayB1c2VkIGZvciBlbGVtZW50cyB0aGF0IHVzZSBtb25vc3BhY2VkIHR5cGUsIHN1Y2ggYXMgY29kZSBzYW1wbGVzXHJcbi8vLyBAdHlwZSBTdHJpbmcgfCBMaXN0XHJcbiRmb250LWZhbWlseS1tb25vc3BhY2U6IENvbnNvbGFzLCAnTGliZXJhdGlvbiBNb25vJywgQ291cmllciwgbW9ub3NwYWNlICFkZWZhdWx0O1xyXG5cclxuLy8vIFNpemVzIG9mIGhlYWRpbmdzIGF0IHZhcmlvdXMgc2NyZWVuIHNpemVzLiBFYWNoIGtleSBpcyBhIGJyZWFrcG9pbnQsIGFuZCBlYWNoIHZhbHVlIGlzIGEgbWFwIG9mIGhlYWRpbmcgc2l6ZXMuXHJcbi8vLyBAdHlwZSBNYXBcclxuJGhlYWRlci1zaXplczogKFxyXG4gIHNtYWxsOiAoXHJcbiAgICAnaDEnOiAyNCxcclxuICAgICdoMic6IDIwLFxyXG4gICAgJ2gzJzogMTksXHJcbiAgICAnaDQnOiAxOCxcclxuICAgICdoNSc6IDE3LFxyXG4gICAgJ2g2JzogMTYsXHJcbiAgKSxcclxuICBtZWRpdW06IChcclxuICAgICdoMSc6IDQ4LFxyXG4gICAgJ2gyJzogNDAsXHJcbiAgICAnaDMnOiAzMSxcclxuICAgICdoNCc6IDI1LFxyXG4gICAgJ2g1JzogMjAsXHJcbiAgICAnaDYnOiAxNixcclxuICApLFxyXG4pICFkZWZhdWx0O1xyXG5cclxuLy8vIENvbG9yIG9mIGhlYWRlcnMuXHJcbi8vLyBAdHlwZSBDb2xvclxyXG4kaGVhZGVyLWNvbG9yOiBpbmhlcml0ICFkZWZhdWx0O1xyXG5cclxuLy8vIExpbmUgaGVpZ2h0IG9mIGhlYWRlcnMuXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJGhlYWRlci1saW5laGVpZ2h0OiAxLjQgIWRlZmF1bHQ7XHJcblxyXG4vLy8gQm90dG9tIG1hcmdpbiBvZiBoZWFkZXJzLlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiRoZWFkZXItbWFyZ2luLWJvdHRvbTogMC41cmVtICFkZWZhdWx0O1xyXG5cclxuLy8vIFRleHQgcmVuZGVyaW5nIG1ldGhvZCBvZiBoZWFkZXJzLlxyXG4vLy8gQHR5cGUgU3RyaW5nXHJcbiRoZWFkZXItdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eSAhZGVmYXVsdDtcclxuXHJcbi8vLyBGb250IHNpemUgb2YgYDxzbWFsbD5gIGVsZW1lbnRzLlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiRzbWFsbC1mb250LXNpemU6IDgwJSAhZGVmYXVsdDtcclxuXHJcbi8vLyBDb2xvciBvZiBgPHNtYWxsPmAgZWxlbWVudHMgd2hlbiBwbGFjZWQgaW5zaWRlIGhlYWRlcnMuXHJcbi8vLyBAdHlwZSBDb2xvclxyXG4kaGVhZGVyLXNtYWxsLWZvbnQtY29sb3I6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcclxuXHJcbi8vLyBMaW5lIGhlaWdodCBvZiB0ZXh0IGluc2lkZSBgPHA+YCBlbGVtZW50cy5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kcGFyYWdyYXBoLWxpbmVoZWlnaHQ6IDEuNiAhZGVmYXVsdDtcclxuXHJcbi8vLyBCb3R0b20gbWFyZ2luIG9mIHBhcmFncmFwaHMuXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tOiAxcmVtICFkZWZhdWx0O1xyXG5cclxuLy8vIFRleHQgcmVuZGVyaW5nIG1ldGhvZCBmb3IgcGFyYWdyYXBoIHRleHQuXHJcbi8vLyBAdHlwZSBTdHJpbmdcclxuJHBhcmFncmFwaC10ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5ICFkZWZhdWx0O1xyXG5cclxuLy8vIFRleHQgY29sb3Igb2YgY29kZSBzYW1wbGVzLlxyXG4vLy8gQHR5cGUgQ29sb3JcclxuJGNvZGUtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcclxuXHJcbi8vLyBGb250IGZhbWlseSBvZiBjb2RlIHNhbXBsZXMuXHJcbi8vLyBAdHlwZSBTdHJpbmcgfCBMaXN0XHJcbiRjb2RlLWZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktbW9ub3NwYWNlICFkZWZhdWx0O1xyXG5cclxuLy8vIEZvbnQgd2VpZ2h0IG9mIHRleHQgaW4gY29kZSBzYW1wbGVzLlxyXG4vLy8gQHR5cGUgU3RyaW5nXHJcbiRjb2RlLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XHJcblxyXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBjb2RlIHNhbXBsZXMuXHJcbi8vLyBAdHlwZSBDb2xvclxyXG4kY29kZS1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcclxuXHJcbi8vLyBCb3JkZXIgYXJvdW5kIGNvZGUgc2FtcGxlcy5cclxuLy8vIEB0eXBlIExpc3RcclxuJGNvZGUtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xyXG5cclxuLy8vIFBhZGRpbmcgYXJvdW5kIHRleHQgb2YgY29kZSBzYW1wbGVzLlxyXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxyXG4kY29kZS1wYWRkaW5nOiByZW0tY2FsYygyIDUgMSkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgbGlua3MuXHJcbi8vLyBAdHlwZSBDb2xvclxyXG4kYW5jaG9yLWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcclxuXHJcbi8vLyBEZWZhdWx0IGNvbG9yIGZvciBsaW5rcyBvbiBob3Zlci5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiRhbmNob3ItY29sb3ItaG92ZXI6IHNjYWxlLWNvbG9yKCRhbmNob3ItY29sb3IsICRsaWdodG5lc3M6IC0xNCUpICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgdGV4dCBkZW9jcmF0aW9uIGZvciBsaW5rcy5cclxuLy8vIEB0eXBlIFN0cmluZ1xyXG4kYW5jaG9yLXRleHQtZGVjb3JhdGlvbjogbm9uZSAhZGVmYXVsdDtcclxuXHJcbi8vLyBEZWZhdWx0IHRleHQgZGVjb3JhdGlvbiBmb3IgbGlua3Mgb24gaG92ZXIuXHJcbi8vLyBAdHlwZSBTdHJpbmdcclxuJGFuY2hvci10ZXh0LWRlY29yYXRpb24taG92ZXI6IG5vbmUgIWRlZmF1bHQ7XHJcblxyXG4vLy8gTWF4aW11bSB3aWR0aCBvZiBhIGRpdmlkZXIuXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJGhyLXdpZHRoOiAkZ2xvYmFsLXdpZHRoICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgYm9yZGVyIGZvciBhIGRpdmlkZXIuXHJcbi8vLyBAdHlwZSBMaXN0XHJcbiRoci1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBtYXJnaW4gZm9yIGEgZGl2aWRlci5cclxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcclxuJGhyLW1hcmdpbjogcmVtLWNhbGMoMjApIGF1dG8gIWRlZmF1bHQ7XHJcblxyXG4vLy8gTGluZSBoZWlnaHQgZm9yIGl0ZW1zIGluIGEgbGlzdC5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kbGlzdC1saW5laGVpZ2h0OiAkcGFyYWdyYXBoLWxpbmVoZWlnaHQgIWRlZmF1bHQ7XHJcblxyXG4vLy8gQm90dG9tIG1hcmdpbiBmb3IgaXRlbXMgaW4gYSBsaXN0LlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiRsaXN0LW1hcmdpbi1ib3R0b206ICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbSAhZGVmYXVsdDtcclxuXHJcbi8vLyBCdWxsZXQgdHlwZSB0byB1c2UgZm9yIHVub3JkZXJlZCBsaXN0cyAoZS5nLiwgYHNxdWFyZWAsIGBjaXJjbGVgLCBgZGlzY2ApLlxyXG4vLy8gQHR5cGUgU3RyaW5nXHJcbiRsaXN0LXN0eWxlLXR5cGU6IGRpc2MgIWRlZmF1bHQ7XHJcblxyXG4vLy8gUG9zaXRpb25pbmcgZm9yIGJ1bGxldHMgb24gdW5vcmRlcmVkIGxpc3QgaXRlbXMuXHJcbi8vLyBAdHlwZSBTdHJpbmdcclxuJGxpc3Qtc3R5bGUtcG9zaXRpb246IG91dHNpZGUgIWRlZmF1bHQ7XHJcblxyXG4vLy8gTGVmdCAob3IgcmlnaHQpIG1hcmdpbiBmb3IgbGlzdHMuXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJGxpc3Qtc2lkZS1tYXJnaW46IDEuMjVyZW0gIWRlZmF1bHQ7XHJcblxyXG4vLy8gTGVmdCAob3IgcmlnaHQpIG1hcmdpbiBmb3IgYSBsaXN0IGluc2lkZSBhIGxpc3QuXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJGxpc3QtbmVzdGVkLXNpZGUtbWFyZ2luOiAxLjI1cmVtICFkZWZhdWx0O1xyXG5cclxuLy8vIEJvdHRvbSBtYXJnaW4gZm9yIGA8ZGw+YCBlbGVtZW50cy5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kZGVmbmxpc3QtbWFyZ2luLWJvdHRvbTogMXJlbSAhZGVmYXVsdDtcclxuXHJcbi8vLyBGb250IHdlaWdodCBmb3IgYDxkdD5gIGVsZW1lbnRzLlxyXG4vLy8gQHR5cGUgU3RyaW5nXHJcbiRkZWZubGlzdC10ZXJtLXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZCAhZGVmYXVsdDtcclxuXHJcbi8vLyBTcGFjaW5nIGJldHdlZW4gYDxkdD5gIGFuZCBgPGRkPmAgZWxlbWVudHMuXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJGRlZm5saXN0LXRlcm0tbWFyZ2luLWJvdHRvbTogMC4zcmVtICFkZWZhdWx0O1xyXG5cclxuLy8vIFRleHQgY29sb3Igb2YgYDxibG9ja3F1b3RlPmAgZWxlbWVudHMuXHJcbi8vLyBAdHlwZSBDb2xvclxyXG4kYmxvY2txdW90ZS1jb2xvcjogJGRhcmstZ3JheSAhZGVmYXVsdDtcclxuXHJcbi8vLyBQYWRkaW5nIGluc2lkZSBhIGA8YmxvY2txdW90ZT5gIGVsZW1lbnQuXHJcbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XHJcbiRibG9ja3F1b3RlLXBhZGRpbmc6IHJlbS1jYWxjKDkgMjAgMCAxOSkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gU2lkZSBib3JkZXIgZm9yIGA8YmxvY2txdW90ZT5gIGVsZW1lbnRzLlxyXG4vLy8gQHR5cGUgTGlzdFxyXG4kYmxvY2txdW90ZS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRm9udCBzaXplIGZvciBgPGNpdGU+YCBlbGVtZW50cy5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kY2l0ZS1mb250LXNpemU6IHJlbS1jYWxjKDEzKSAhZGVmYXVsdDtcclxuXHJcbi8vLyBUZXh0IGNvbG9yIGZvciBgPGNpdGU+YCBlbGVtZW50cy5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiRjaXRlLWNvbG9yOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xyXG5cclxuLy8vIEZvbnQgZmFtaWx5IGZvciBgPGtiZD5gIGVsZW1lbnRzLlxyXG4vLy8gQHR5cGUgU3RyaW5nIHwgTGlzdFxyXG4ka2V5c3Ryb2tlLWZvbnQ6ICRmb250LWZhbWlseS1tb25vc3BhY2UgIWRlZmF1bHQ7XHJcblxyXG4vLy8gVGV4dCBjb2xvciBmb3IgYDxrYmQ+YCBlbGVtZW50cy5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiRrZXlzdHJva2UtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcclxuXHJcbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciBgPGtiZD5gIGVsZW1lbnRzLlxyXG4vLy8gQHR5cGUgQ29sb3JcclxuJGtleXN0cm9rZS1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcclxuXHJcbi8vLyBQYWRkaW5nIGZvciBgPGtiZD5gIGVsZW1lbnRzLlxyXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxyXG4ka2V5c3Ryb2tlLXBhZGRpbmc6IHJlbS1jYWxjKDIgNCAwKSAhZGVmYXVsdDtcclxuXHJcbi8vLyBCb3JkZXIgcmFkaXVzIGZvciBgPGtiZD5gIGVsZW1lbnRzLlxyXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxyXG4ka2V5c3Ryb2tlLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XHJcblxyXG4vLy8gQm90dG9tIGJvcmRlciBzdHlsZSBmb3IgYDxhYmJyPmAgZWxlbWVudHMuXHJcbi8vLyBAdHlwZSBMaXN0XHJcbiRhYmJyLXVuZGVybGluZTogMXB4IGRvdHRlZCAkYmxhY2sgIWRlZmF1bHQ7XHJcblxyXG5AbWl4aW4gZm91bmRhdGlvbi10eXBvZ3JhcGh5LWJhc2Uge1xyXG4gIC8vIFR5cG9ncmFwaHkgcmVzZXRzXHJcbiAgZGl2LFxyXG4gIGRsLFxyXG4gIGR0LFxyXG4gIGRkLFxyXG4gIHVsLFxyXG4gIG9sLFxyXG4gIGxpLFxyXG4gIGgxLFxyXG4gIGgyLFxyXG4gIGgzLFxyXG4gIGg0LFxyXG4gIGg1LFxyXG4gIGg2LFxyXG4gIHByZSxcclxuICBmb3JtLFxyXG4gIHAsXHJcbiAgYmxvY2txdW90ZSxcclxuICB0aCxcclxuICB0ZCB7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gIH1cclxuXHJcbiAgLy8gUGFyYWdyYXBoc1xyXG4gIHAge1xyXG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xyXG4gICAgbGluZS1oZWlnaHQ6ICRwYXJhZ3JhcGgtbGluZWhlaWdodDtcclxuICAgIG1hcmdpbi1ib3R0b206ICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTtcclxuICAgIHRleHQtcmVuZGVyaW5nOiAkcGFyYWdyYXBoLXRleHQtcmVuZGVyaW5nO1xyXG4gIH1cclxuXHJcbiAgLy8gRW1waGFzaXplZCB0ZXh0XHJcbiAgZW0sXHJcbiAgaSB7XHJcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XHJcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcclxuICB9XHJcblxyXG4gIC8vIFN0cm9uZyB0ZXh0XHJcbiAgc3Ryb25nLFxyXG4gIGIge1xyXG4gICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XHJcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcclxuICB9XHJcblxyXG4gIC8vIFNtYWxsIHRleHRcclxuICBzbWFsbCB7XHJcbiAgICBmb250LXNpemU6ICRzbWFsbC1mb250LXNpemU7XHJcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcclxuICB9XHJcblxyXG4gIC8vIEhlYWRpbmdzXHJcbiAgaDEsXHJcbiAgaDIsXHJcbiAgaDMsXHJcbiAgaDQsXHJcbiAgaDUsXHJcbiAgaDYge1xyXG4gICAgZm9udC1mYW1pbHk6ICRoZWFkZXItZm9udC1mYW1pbHk7XHJcbiAgICBmb250LXdlaWdodDogJGhlYWRlci1mb250LXdlaWdodDtcclxuICAgIGZvbnQtc3R5bGU6ICRoZWFkZXItZm9udC1zdHlsZTtcclxuICAgIGNvbG9yOiAkaGVhZGVyLWNvbG9yO1xyXG4gICAgdGV4dC1yZW5kZXJpbmc6ICRoZWFkZXItdGV4dC1yZW5kZXJpbmc7XHJcbiAgICBtYXJnaW4tdG9wOiAwO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogJGhlYWRlci1tYXJnaW4tYm90dG9tO1xyXG4gICAgbGluZS1oZWlnaHQ6ICRoZWFkZXItbGluZWhlaWdodDtcclxuXHJcbiAgICBzbWFsbCB7XHJcbiAgICAgIGNvbG9yOiAkaGVhZGVyLXNtYWxsLWZvbnQtY29sb3I7XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiAwO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gSGVhZGluZyBzaXplc1xyXG4gIEBlYWNoICRzaXplLCAkaGVhZGVycyBpbiAkaGVhZGVyLXNpemVzIHtcclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcclxuICAgICAgQGVhY2ggJGhlYWRlciwgJGZvbnQtc2l6ZSBpbiAkaGVhZGVycyB7XHJcbiAgICAgICAgI3skaGVhZGVyfSB7XHJcbiAgICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKCRmb250LXNpemUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gTGlua3NcclxuICBhIHtcclxuICAgIGNvbG9yOiAkYW5jaG9yLWNvbG9yO1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiAkYW5jaG9yLXRleHQtZGVjb3JhdGlvbjtcclxuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG5cclxuICAgICY6aG92ZXIsXHJcbiAgICAmOmZvY3VzIHtcclxuICAgICAgY29sb3I6ICRhbmNob3ItY29sb3ItaG92ZXI7XHJcbiAgICAgIEBpZiAkYW5jaG9yLXRleHQtZGVjb3JhdGlvbi1ob3ZlciAhPSAkYW5jaG9yLXRleHQtZGVjb3JhdGlvbiB7XHJcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiAkYW5jaG9yLXRleHQtZGVjb3JhdGlvbi1ob3ZlcjtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGltZyB7XHJcbiAgICAgIGJvcmRlcjogMDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIEhvcml6b250YWwgcnVsZVxyXG4gIGhyIHtcclxuICAgIG1heC13aWR0aDogJGhyLXdpZHRoO1xyXG4gICAgaGVpZ2h0OiAwO1xyXG4gICAgYm9yZGVyLXJpZ2h0OiAwO1xyXG4gICAgYm9yZGVyLXRvcDogMDtcclxuICAgIGJvcmRlci1ib3R0b206ICRoci1ib3JkZXI7XHJcbiAgICBib3JkZXItbGVmdDogMDtcclxuICAgIG1hcmdpbjogJGhyLW1hcmdpbjtcclxuICAgIGNsZWFyOiBib3RoO1xyXG4gIH1cclxuXHJcbiAgLy8gTGlzdHNcclxuICB1bCxcclxuICBvbCxcclxuICBkbCB7XHJcbiAgICBsaW5lLWhlaWdodDogJGxpc3QtbGluZWhlaWdodDtcclxuICAgIG1hcmdpbi1ib3R0b206ICRsaXN0LW1hcmdpbi1ib3R0b207XHJcbiAgICBsaXN0LXN0eWxlLXBvc2l0aW9uOiAkbGlzdC1zdHlsZS1wb3NpdGlvbjtcclxuICB9XHJcblxyXG4gIC8vIExpc3QgaXRlbXNcclxuICBsaSB7XHJcbiAgICBmb250LXNpemU6IGluaGVyaXQ7XHJcbiAgfVxyXG5cclxuICAvLyBVbm9yZGVyZWQgbGlzdHNcclxuICB1bCB7XHJcbiAgICBsaXN0LXN0eWxlLXR5cGU6ICRsaXN0LXN0eWxlLXR5cGU7XHJcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkbGlzdC1zaWRlLW1hcmdpbjtcclxuICB9XHJcblxyXG4gIC8vIE9yZGVyZWQgbGlzdHNcclxuICBvbCB7XHJcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkbGlzdC1zaWRlLW1hcmdpbjtcclxuICB9XHJcblxyXG4gIC8vIE5lc3RlZCB1bm9yZGVyZWQvb3JkZXJlZCBsaXN0c1xyXG4gIHVsLCBvbCB7XHJcbiAgICAmICYge1xyXG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkbGlzdC1uZXN0ZWQtc2lkZS1tYXJnaW47XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBEZWZpbml0aW9uIGxpc3RzXHJcbiAgZGwge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogJGRlZm5saXN0LW1hcmdpbi1ib3R0b207XHJcblxyXG4gICAgZHQge1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAkZGVmbmxpc3QtdGVybS1tYXJnaW4tYm90dG9tO1xyXG4gICAgICBmb250LXdlaWdodDogJGRlZm5saXN0LXRlcm0td2VpZ2h0O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gQmxvY2txdW90ZXNcclxuICBibG9ja3F1b3RlIHtcclxuICAgIG1hcmdpbjogMCAwICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTtcclxuICAgIHBhZGRpbmc6ICRibG9ja3F1b3RlLXBhZGRpbmc7XHJcbiAgICBib3JkZXItI3skZ2xvYmFsLWxlZnR9OiAkYmxvY2txdW90ZS1ib3JkZXI7XHJcblxyXG4gICAgJiwgcCB7XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiAkcGFyYWdyYXBoLWxpbmVoZWlnaHQ7XHJcbiAgICAgIGNvbG9yOiAkYmxvY2txdW90ZS1jb2xvcjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIENpdGF0aW9uc1xyXG4gIGNpdGUge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBmb250LXNpemU6ICRjaXRlLWZvbnQtc2l6ZTtcclxuICAgIGNvbG9yOiAkY2l0ZS1jb2xvcjtcclxuXHJcbiAgICAmOmJlZm9yZSB7XHJcbiAgICAgIGNvbnRlbnQ6ICdcXDIwMTQgXFwwMDIwJztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIEFiYnJldmlhdGlvbnNcclxuICBhYmJyIHtcclxuICAgIGNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xyXG4gICAgY3Vyc29yOiBoZWxwO1xyXG4gICAgYm9yZGVyLWJvdHRvbTogJGFiYnItdW5kZXJsaW5lO1xyXG4gIH1cclxuXHJcbiAgLy8gQ29kZVxyXG4gIGNvZGUge1xyXG4gICAgZm9udC1mYW1pbHk6ICRjb2RlLWZvbnQtZmFtaWx5O1xyXG4gICAgZm9udC13ZWlnaHQ6ICRjb2RlLWZvbnQtd2VpZ2h0O1xyXG4gICAgY29sb3I6ICRjb2RlLWNvbG9yO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvZGUtYmFja2dyb3VuZDtcclxuICAgIGJvcmRlcjogJGNvZGUtYm9yZGVyO1xyXG4gICAgcGFkZGluZzogJGNvZGUtcGFkZGluZztcclxuICB9XHJcblxyXG4gIC8vIEtleXN0cm9rZXNcclxuICBrYmQge1xyXG4gICAgcGFkZGluZzogJGtleXN0cm9rZS1wYWRkaW5nO1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGtleXN0cm9rZS1iYWNrZ3JvdW5kO1xyXG4gICAgY29sb3I6ICRrZXlzdHJva2UtY29sb3I7XHJcbiAgICBmb250LWZhbWlseTogJGtleXN0cm9rZS1mb250O1xyXG5cclxuICAgIEBpZiBoYXMtdmFsdWUoJGtleXN0cm9rZS1yYWRpdXMpIHtcclxuICAgICAgYm9yZGVyLXJhZGl1czogJGtleXN0cm9rZS1yYWRpdXM7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcclxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxyXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcclxuXHJcbi8vLy9cclxuLy8vIEBncm91cCB0eXBvZ3JhcGh5LWhlbHBlcnNcclxuLy8vL1xyXG5cclxuLy8vIERlZmF1bHQgZm9udCBzaXplIGZvciBsZWFkIHBhcmFncmFwaHMuXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJGxlYWQtZm9udC1zaXplOiAkZ2xvYmFsLWZvbnQtc2l6ZSAqIDEuMjUgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBsaW5lIGhlaWdodCBmb3IgbGVhZCBwYXJhZ3JhcGhzLlxyXG4vLy8gQHR5cGUgU3RyaW5nXHJcbiRsZWFkLWxpbmVoZWlnaHQ6IDEuNiAhZGVmYXVsdDtcclxuXHJcbi8vLyBEZWZhdWx0IGxpbmUgaGVpZ2h0IGZvciBzdWJoZWFkZXJzLlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiRzdWJoZWFkZXItbGluZWhlaWdodDogMS40ICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgZm9udCBjb2xvciBmb3Igc3ViaGVhZGVycy5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiRzdWJoZWFkZXItY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBmb250IHdlaWdodCBmb3Igc3ViaGVhZGVycy5cclxuLy8vIEB0eXBlIFN0cmluZ1xyXG4kc3ViaGVhZGVyLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCB0b3AgbWFyZ2luIGZvciBzdWJoaGVhZGVycy5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kc3ViaGVhZGVyLW1hcmdpbi10b3A6IDAuMnJlbSAhZGVmYXVsdDtcclxuXHJcbi8vLyBEZWZhdWx0IGJvdHRvbSBtYXJnaW4gZm9yIHN1YmhlYWRlcnMuXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJHN1YmhlYWRlci1tYXJnaW4tYm90dG9tOiAwLjVyZW0gIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIHN0YXRpc3RpYyBudW1iZXJzLlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiRzdGF0LWZvbnQtc2l6ZTogMi41cmVtICFkZWZhdWx0O1xyXG5cclxuQG1peGluIGZvdW5kYXRpb24tdHlwb2dyYXBoeS1oZWxwZXJzIHtcclxuICAvLyBVc2UgdG8gY3JlYXRlIGEgc3ViaGVhZGluZyB1bmRlciBhIG1haW4gaGVhZGVyXHJcbiAgLy8gTWFrZSBzdXJlIHlvdSBwYWlyIHRoZSB0d28gZWxlbWVudHMgaW4gYSA8aGVhZGVyPiBlbGVtZW50LCBsaWtlIHRoaXM6XHJcbiAgLy8gPGhlYWRlcj5cclxuICAvLyAgIDxoMT5IZWFkaW5nPC9oMT5cclxuICAvLyAgIDxoMj5TdWJoZWFkaW5nPC9oMj5cclxuICAvLyA8L2hlYWRlcj5cclxuICAuc3ViaGVhZGVyIHtcclxuICAgIG1hcmdpbi10b3A6ICRzdWJoZWFkZXItbWFyZ2luLXRvcDtcclxuICAgIG1hcmdpbi1ib3R0b206ICRzdWJoZWFkZXItbWFyZ2luLWJvdHRvbTtcclxuICAgIGZvbnQtd2VpZ2h0OiAkc3ViaGVhZGVyLWZvbnQtd2VpZ2h0O1xyXG4gICAgbGluZS1oZWlnaHQ6ICRzdWJoZWFkZXItbGluZWhlaWdodDtcclxuICAgIGNvbG9yOiAkc3ViaGVhZGVyLWNvbG9yO1xyXG4gIH1cclxuXHJcbiAgLy8gVXNlIHRvIHN0eWxlIGFuIGludHJvZHVjdG9yeSBsZWFkLCBkZWNrLCBibHVyYiwgZXRjLlxyXG4gIC5sZWFkIHtcclxuICAgIGZvbnQtc2l6ZTogJGxlYWQtZm9udC1zaXplO1xyXG4gICAgbGluZS1oZWlnaHQ6ICRsZWFkLWxpbmVoZWlnaHQ7XHJcbiAgfVxyXG5cclxuICAvLyBVc2UgdG8gc3R5bGUgYSBsYXJnZSBudW1iZXIgdG8gZGlzcGxheSBhIHN0YXRpc3RpY1xyXG4gIC5zdGF0IHtcclxuICAgIGZvbnQtc2l6ZTogJHN0YXQtZm9udC1zaXplO1xyXG4gICAgbGluZS1oZWlnaHQ6IDE7XHJcblxyXG4gICAgcCArICYge1xyXG4gICAgICBtYXJnaW4tdG9wOiAtMXJlbTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIFVzZSB0byByZW1vdmUgdGhlIGJ1bGxldHMgZnJvbSBhbiB1bm9yZGVyZWQgbGlzdFxyXG4gIC5uby1idWxsZXQge1xyXG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogMDtcclxuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbiAgfVxyXG59XHJcbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcclxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxyXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcclxuXHJcbkBtaXhpbiBmb3VuZGF0aW9uLXRleHQtYWxpZ25tZW50IHtcclxuICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcclxuICAgICAgQGVhY2ggJGFsaWduIGluIChsZWZ0LCByaWdodCwgY2VudGVyLCBqdXN0aWZ5KSB7XHJcbiAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcclxuICAgICAgICAgIC4jeyRzaXplfS10ZXh0LSN7JGFsaWdufSB7XHJcbiAgICAgICAgICAgIHRleHQtYWxpZ246ICRhbGlnbjtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgQGVsc2Uge1xyXG4gICAgICAgICAgLnRleHQtI3skYWxpZ259IHtcclxuICAgICAgICAgICAgdGV4dC1hbGlnbjogJGFsaWduO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXHJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cclxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXHJcblxyXG4vLy8gSWYgYHRydWVgLCBhbGwgZWxlbWVudHMgd2lsbCBoYXZlIHRyYW5zcGFyZW50IGJhY2tncm91bmRzIHdoZW4gcHJpbnRlZCwgdG8gc2F2ZSBvbiBpbmsuXHJcbi8vLyBAdHlwZSBCb29sZWFuXHJcbi8vLyBAZ3JvdXAgZ2xvYmFsXHJcbiRwcmludC10cmFuc3BhcmVudC1iYWNrZ3JvdW5kczogdHJ1ZSAhZGVmYXVsdDtcclxuXHJcbi8vIHNjc3MtbGludDpkaXNhYmxlIGFsbFxyXG5cclxuQG1peGluIGZvdW5kYXRpb24tcHJpbnQtc3R5bGVzIHtcclxuICAuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cclxuXHJcbiAgQG1lZGlhIHByaW50IHtcclxuICAgICoge1xyXG4gICAgICBAaWYgJHByaW50LXRyYW5zcGFyZW50LWJhY2tncm91bmRzIHtcclxuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjb2xvcjogYmxhY2sgIWltcG9ydGFudDsgLy8gQmxhY2sgcHJpbnRzIGZhc3RlcjogaDVicC5jb20vc1xyXG4gICAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XHJcbiAgICAgIHRleHQtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfVxyXG4gICAgLmhpZGUtZm9yLXByaW50IHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XHJcblxyXG4gICAgdGFibGUuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50OyB9XHJcbiAgICB0aGVhZC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cCAhaW1wb3J0YW50OyB9XHJcbiAgICB0Ym9keS5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLXJvdy1ncm91cCAhaW1wb3J0YW50OyB9XHJcbiAgICB0ci5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50OyB9XHJcbiAgICB0ZC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxyXG4gICAgdGguc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cclxuXHJcbiAgICAvLyBEaXNwbGF5IHRoZSBVUkwgb2YgYSBsaW5rIGFmdGVyIHRoZSB0ZXh0XHJcbiAgICBhLFxyXG4gICAgYTp2aXNpdGVkIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7fVxyXG4gICAgYVtocmVmXTphZnRlciB7IGNvbnRlbnQ6ICcgKCcgYXR0cihocmVmKSAnKSc7IH1cclxuXHJcbiAgICAvLyBEb24ndCBkaXNwbGF5IHRoZSBVUkwgZm9yIGltYWdlcyBvciBKYXZhU2NyaXB0L2ludGVybmFsIGxpbmtzXHJcbiAgICAuaXIgYTphZnRlcixcclxuICAgIGFbaHJlZl49J2phdmFzY3JpcHQ6J106YWZ0ZXIsXHJcbiAgICBhW2hyZWZePScjJ106YWZ0ZXIgeyBjb250ZW50OiAnJzsgfVxyXG5cclxuICAgIC8vIERpc3BsYXkgd2hhdCBhbiBhYmJyZXZpYXRpb24gc3RhbmRzIGZvciBhZnRlciB0aGUgdGV4dFxyXG4gICAgYWJiclt0aXRsZV06YWZ0ZXIgeyBjb250ZW50OiAnICgnIGF0dHIodGl0bGUpICcpJzsgfVxyXG5cclxuICAgIC8vIFByZXZlbnQgcGFnZSBicmVha3MgaW4gdGhlIG1pZGRsZSBvZiBhIGJsb2NrcXVvdGUgb3IgcHJlZm9ybWF0dGVkIHRleHQgYmxvY2tcclxuICAgIHByZSxcclxuICAgIGJsb2NrcXVvdGUge1xyXG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAkZGFyay1ncmF5O1xyXG4gICAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gaDVicC5jb20vdFxyXG4gICAgdGhlYWQgeyBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXA7IH1cclxuXHJcbiAgICB0cixcclxuICAgIGltZyB7IHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDsgfVxyXG5cclxuICAgIGltZyB7IG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XHJcblxyXG4gICAgQHBhZ2UgeyBtYXJnaW46IDAuNWNtOyB9XHJcblxyXG4gICAgcCxcclxuICAgIGgyLFxyXG4gICAgaDMge1xyXG4gICAgICBvcnBoYW5zOiAzO1xyXG4gICAgICB3aWRvd3M6IDM7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gQXZvaWQgcGFnZSBicmVha3MgYWZ0ZXIgYSBoZWFkaW5nXHJcbiAgICBoMixcclxuICAgIGgzIHsgcGFnZS1icmVhay1hZnRlcjogYXZvaWQ7IH1cclxuICB9XHJcbn1cclxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxyXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXHJcbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxyXG5cclxuLy8vL1xyXG4vLy8gQGdyb3VwIGJ1dHRvblxyXG4vLy8vXHJcblxyXG4vLy8gUGFkZGluZyBpbnNpZGUgYnV0dG9ucy5cclxuLy8vIEB0eXBlIExpc3RcclxuJGJ1dHRvbi1wYWRkaW5nOiAwLjg1ZW0gMWVtICFkZWZhdWx0O1xyXG5cclxuLy8vIE1hcmdpbiBhcm91bmQgYnV0dG9ucy5cclxuLy8vIEB0eXBlIExpc3RcclxuJGJ1dHRvbi1tYXJnaW46IDAgMCAkZ2xvYmFsLW1hcmdpbiAwICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgZmlsbCBmb3IgYnV0dG9ucy4gQ2FuIGVpdGhlciBiZSBgc29saWRgIG9yIGBob2xsb3dgLlxyXG4vLy8gQHR5cGUgS2V5d29yZFxyXG4kYnV0dG9uLWZpbGw6IHNvbGlkICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBmb3IgYnV0dG9ucy5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiRidXR0b24tYmFja2dyb3VuZDogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XHJcblxyXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvbiBob3ZlciBmb3IgYnV0dG9ucy5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiRidXR0b24tYmFja2dyb3VuZC1ob3Zlcjogc2NhbGUtY29sb3IoJGJ1dHRvbi1iYWNrZ3JvdW5kLCAkbGlnaHRuZXNzOiAtMTUlKSAhZGVmYXVsdDtcclxuXHJcbi8vLyBGb250IGNvbG9yIGZvciBidXR0b25zLlxyXG4vLy8gQHR5cGUgTGlzdFxyXG4kYnV0dG9uLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRm9udCBjb2xvciBmb3IgYnV0dG9ucywgaWYgdGhlIGJhY2tncm91bmQgaXMgbGlnaHQuXHJcbi8vLyBAdHlwZSBMaXN0XHJcbiRidXR0b24tY29sb3ItYWx0OiAkYmxhY2sgIWRlZmF1bHQ7XHJcblxyXG4vLy8gQm9yZGVyIHJhZGl1cyBmb3IgYnV0dG9ucywgZGVmYXVsdGVkIHRvIGdsb2JhbC1yYWRpdXMuXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJGJ1dHRvbi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xyXG5cclxuLy8vIFNpemVzIGZvciBidXR0b25zLlxyXG4vLy8gQHR5cGUgTWFwXHJcbiRidXR0b24tc2l6ZXM6IChcclxuICB0aW55OiAwLjZyZW0sXHJcbiAgc21hbGw6IDAuNzVyZW0sXHJcbiAgZGVmYXVsdDogMC45cmVtLFxyXG4gIGxhcmdlOiAxLjI1cmVtLFxyXG4pICFkZWZhdWx0O1xyXG5cclxuLy8vIG9wYWNpdHkgZm9yIGEgZGlzYWJsZWQgYnV0dG9uLlxyXG4vLy8gQHR5cGUgTGlzdFxyXG4kYnV0dG9uLW9wYWNpdHktZGlzYWJsZWQ6IDAuMjUgIWRlZmF1bHQ7XHJcblxyXG4vLyBJbnRlcm5hbDogZmxpcCBmcm9tIG1hcmdpbi1yaWdodCB0byBtYXJnaW4tbGVmdCBmb3IgZGVmYXVsdHNcclxuQGlmICRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gJ3J0bCcge1xyXG4gICRidXR0b24tbWFyZ2luOiAwIDAgJGdsb2JhbC1tYXJnaW4gJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XHJcbn1cclxuXHJcbi8vIFRPRE86IERvY3VtZW50IGJ1dHRvbi1iYXNlKCkgbWl4aW5cclxuQG1peGluIGJ1dHRvbi1iYXNlIHtcclxuICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICBsaW5lLWhlaWdodDogMTtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xyXG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4yNXMgZWFzZS1vdXQsIGNvbG9yIDAuMjVzIGVhc2Utb3V0O1xyXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XHJcbiAgYm9yZGVyLXJhZGl1czogJGJ1dHRvbi1yYWRpdXM7XHJcbiAgcGFkZGluZzogJGJ1dHRvbi1wYWRkaW5nO1xyXG4gIG1hcmdpbjogJGJ1dHRvbi1tYXJnaW47XHJcbiAgZm9udC1zaXplOiBtYXAtZ2V0KCRidXR0b24tc2l6ZXMsIGRlZmF1bHQpO1xyXG59XHJcblxyXG4vLy8gRXhwYW5kcyBhIGJ1dHRvbiB0byBtYWtlIGl0IGZ1bGwtd2lkdGguXHJcbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRleHBhbmQgW3RydWVdIC0gU2V0IHRvIGB0cnVlYCB0byBlbmFibGUgdGhlIGV4cGFuZCBiZWhhdmlvci4gU2V0IHRvIGBmYWxzZWAgdG8gcmV2ZXJzZSB0aGlzIGJlaGF2aW9yLlxyXG5AbWl4aW4gYnV0dG9uLWV4cGFuZCgkZXhwYW5kOiB0cnVlKSB7XHJcbiAgQGlmICRleHBhbmQge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIG1hcmdpbi1sZWZ0OiAwO1xyXG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xyXG4gIH1cclxuICBAZWxzZSB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICB3aWR0aDogYXV0bztcclxuICAgIG1hcmdpbjogJGJ1dHRvbi1tYXJnaW47XHJcbiAgfVxyXG59XHJcblxyXG4vLy8gU2V0cyB0aGUgdmlzdWFsIHN0eWxlIG9mIGEgYnV0dG9uLlxyXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQgWyRidXR0b24tYmFja2dyb3VuZF0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBidXR0b24uXHJcbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZC1ob3ZlciBbJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyXSAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJ1dHRvbiBvbiBob3Zlci4gU2V0IHRvIGBhdXRvYCB0byBoYXZlIHRoZSBtaXhpbiBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGEgaG92ZXIgY29sb3IuXHJcbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRidXR0b24tY29sb3JdIC0gVGV4dCBjb2xvciBvZiB0aGUgYnV0dG9uLiBTZXQgdG8gYGF1dG9gIHRvIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgYSBjb2xvciBiYXNlZCBvbiB0aGUgYmFja2dyb3VuZCBjb2xvci5cclxuQG1peGluIGJ1dHRvbi1zdHlsZShcclxuICAkYmFja2dyb3VuZDogJGJ1dHRvbi1iYWNrZ3JvdW5kLFxyXG4gICRiYWNrZ3JvdW5kLWhvdmVyOiAkYnV0dG9uLWJhY2tncm91bmQtaG92ZXIsXHJcbiAgJGNvbG9yOiAkYnV0dG9uLWNvbG9yXHJcbikge1xyXG4gIEBpZiAkY29sb3IgPT0gYXV0byB7XHJcbiAgICAkY29sb3I6IGZvcmVncm91bmQoJGJhY2tncm91bmQsICRidXR0b24tY29sb3ItYWx0LCAkYnV0dG9uLWNvbG9yKTtcclxuICB9XHJcblxyXG4gIEBpZiAkYmFja2dyb3VuZC1ob3ZlciA9PSBhdXRvIHtcclxuICAgICRiYWNrZ3JvdW5kLWhvdmVyOiBzY2FsZS1jb2xvcigkYmFja2dyb3VuZCwgJGxpZ2h0bmVzczogLTIwJSk7XHJcbiAgfVxyXG5cclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcclxuICBjb2xvcjogJGNvbG9yO1xyXG5cclxuICAmOmhvdmVyLCAmOmZvY3VzIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kLWhvdmVyO1xyXG4gICAgY29sb3I6ICRjb2xvcjtcclxuICB9XHJcbn1cclxuXHJcbi8vLyBSZW1vdmVzIGJhY2tncm91bmQgZmlsbCBvbiBob3ZlciBhbmQgZm9jdXMgZm9yIGhvbGxvdyBidXR0b25zLlxyXG5AbWl4aW4gYnV0dG9uLWhvbGxvdyB7XHJcbiAgJixcclxuICAmOmhvdmVyLCAmOmZvY3VzIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIGJ1dHRvbi1ob2xsb3ctc3R5bGUoJGNvbG9yOiAkcHJpbWFyeS1jb2xvcikge1xyXG4gICRjb2xvci1ob3Zlcjogc2NhbGUtY29sb3IoJGNvbG9yLCAkbGlnaHRuZXNzOiAtNTAlKTtcclxuXHJcbiAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yO1xyXG4gIGNvbG9yOiAkY29sb3I7XHJcblxyXG4gICY6aG92ZXIsICY6Zm9jdXMge1xyXG4gICAgYm9yZGVyLWNvbG9yOiAkY29sb3ItaG92ZXI7XHJcbiAgICBjb2xvcjogJGNvbG9yLWhvdmVyO1xyXG4gIH1cclxufVxyXG5cclxuLy8vIEFkZHMgZGlzYWJsZWQgc3R5bGVzIHRvIGEgYnV0dG9uIGJ5IGZhZGluZyB0aGUgZWxlbWVudCwgcmVzZXRpbmcgdGhlIGN1cnNvciwgYW5kIGRpc2FibGluZyBwb2ludGVyIGV2ZW50cy5cclxuQG1peGluIGJ1dHRvbi1kaXNhYmxlZCB7XHJcbiAgb3BhY2l0eTogJGJ1dHRvbi1vcGFjaXR5LWRpc2FibGVkO1xyXG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XHJcblxyXG4gICY6aG92ZXIsICY6Zm9jdXMge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJ1dHRvbi1iYWNrZ3JvdW5kO1xyXG4gICAgY29sb3I6ICRidXR0b24tY29sb3I7XHJcbiAgfVxyXG59XHJcblxyXG4vLy8gQWRkcyBhIGRyb3Bkb3duIGFycm93IHRvIGEgYnV0dG9uLlxyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRzaXplIFswLjRlbV0gLSBTaXplIG9mIHRoZSBhcnJvdy4gV2UgcmVjb21tZW5kIHVzaW5nIGFuIGBlbWAgdmFsdWUgc28gdGhlIHRyaWFuZ2xlIHNjYWxlcyB3aGVuIHVzZWQgaW5zaWRlIGRpZmZlcmVudCBzaXplcyBvZiBidXR0b25zLlxyXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFt3aGl0ZV0gLSBDb2xvciBvZiB0aGUgYXJyb3cuXHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJG9mZnNldCBbJGJ1dHRvbi1wYWRkaW5nXSAtIERpc3RhbmNlIGJldHdlZW4gdGhlIGFycm93IGFuZCB0aGUgdGV4dCBvZiB0aGUgYnV0dG9uLiBEZWZhdWx0cyB0byB3aGF0ZXZlciB0aGUgcmlnaHQgcGFkZGluZyBvZiBhIGJ1dHRvbiBpcy5cclxuQG1peGluIGJ1dHRvbi1kcm9wZG93bihcclxuICAkc2l6ZTogMC40ZW0sXHJcbiAgJGNvbG9yOiAkd2hpdGUsXHJcbiAgJG9mZnNldDogZ2V0LXNpZGUoJGJ1dHRvbi1wYWRkaW5nLCByaWdodClcclxuKSB7XHJcbiAgJjo6YWZ0ZXIge1xyXG4gICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRzaXplLCAkY29sb3IsIGRvd24pO1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgdG9wOiAwLjRlbTsgLy8gQWxpZ25zIHRoZSBhcnJvdyB3aXRoIHRoZSB0ZXh0IG9mIHRoZSBidXR0b25cclxuICAgIGZsb2F0OiAjeyRnbG9iYWwtcmlnaHR9O1xyXG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogZ2V0LXNpZGUoJGJ1dHRvbi1wYWRkaW5nLCByaWdodCk7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgfVxyXG59XHJcblxyXG4vLy8gQWRkcyBhbGwgc3R5bGVzIGZvciBhIGJ1dHRvbi4gRm9yIG1vcmUgZ3JhbnVsYXIgY29udHJvbCBvdmVyIHN0eWxlcywgdXNlIHRoZSBpbmRpdmlkdWFsIGJ1dHRvbiBtaXhpbnMuXHJcbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRleHBhbmQgW2ZhbHNlXSAtIFNldCB0byBgdHJ1ZWAgdG8gbWFrZSB0aGUgYnV0dG9uIGZ1bGwtd2lkdGguXHJcbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZCBbJGJ1dHRvbi1iYWNrZ3JvdW5kXSAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJ1dHRvbi5cclxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kLWhvdmVyIFskYnV0dG9uLWJhY2tncm91bmQtaG92ZXJdIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgYnV0dG9uIG9uIGhvdmVyLiBTZXQgdG8gYGF1dG9gIHRvIGhhdmUgdGhlIG1peGluIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgYSBob3ZlciBjb2xvci5cclxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJ1dHRvbi1jb2xvcl0gLSBUZXh0IGNvbG9yIG9mIHRoZSBidXR0b24uIFNldCB0byBgYXV0b2AgdG8gYXV0b21hdGljYWxseSBnZW5lcmF0ZSBhIGNvbG9yIGJhc2VkIG9uIHRoZSBiYWNrZ3JvdW5kIGNvbG9yLlxyXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc3R5bGUgW3NvbGlkXSAtIFNldCB0byBgaG9sbG93YCB0byBjcmVhdGUgYSBob2xsb3cgYnV0dG9uLiBUaGUgY29sb3IgZGVmaW5lZCBpbiBgJGJhY2tncm91bmRgIHdpbGwgYmUgdXNlZCBhcyB0aGUgcHJpbWFyeSBjb2xvciBvZiB0aGUgYnV0dG9uLlxyXG5AbWl4aW4gYnV0dG9uKFxyXG4gICRleHBhbmQ6IGZhbHNlLFxyXG4gICRiYWNrZ3JvdW5kOiAkYnV0dG9uLWJhY2tncm91bmQsXHJcbiAgJGJhY2tncm91bmQtaG92ZXI6ICRidXR0b24tYmFja2dyb3VuZC1ob3ZlcixcclxuICAkY29sb3I6ICRidXR0b24tY29sb3IsXHJcbiAgJHN0eWxlOiAkYnV0dG9uLWZpbGxcclxuKSB7XHJcbiAgQGluY2x1ZGUgYnV0dG9uLWJhc2U7XHJcblxyXG4gIEBpZiAkc3R5bGUgPT0gc29saWQge1xyXG4gICAgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRiYWNrZ3JvdW5kLCAkYmFja2dyb3VuZC1ob3ZlciwgJGNvbG9yKTtcclxuICB9XHJcbiAgQGVsc2UgaWYgJHN0eWxlID09IGhvbGxvdyB7XHJcbiAgICBAaW5jbHVkZSBidXR0b24taG9sbG93O1xyXG4gICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdy1zdHlsZSgkYmFja2dyb3VuZCk7XHJcbiAgfVxyXG5cclxuICBAaWYgJGV4cGFuZCB7XHJcbiAgICBAaW5jbHVkZSBidXR0b24tZXhwYW5kO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIGZvdW5kYXRpb24tYnV0dG9uIHtcclxuICAuYnV0dG9uIHtcclxuICAgIEBpbmNsdWRlIGJ1dHRvbjtcclxuXHJcbiAgICAvLyBTaXplc1xyXG4gICAgQGVhY2ggJHNpemUsICR2YWx1ZSBpbiBtYXAtcmVtb3ZlKCRidXR0b24tc2l6ZXMsIGRlZmF1bHQpIHtcclxuICAgICAgJi4jeyRzaXplfSB7XHJcbiAgICAgICAgZm9udC1zaXplOiAkdmFsdWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLmV4cGFuZGVkIHsgQGluY2x1ZGUgYnV0dG9uLWV4cGFuZDsgfVxyXG5cclxuICAgIC8vIENvbG9yc1xyXG4gICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkZm91bmRhdGlvbi1wYWxldHRlIHtcclxuICAgICAgQGlmICRidXR0b24tZmlsbCAhPSBob2xsb3cge1xyXG4gICAgICAgICYuI3skbmFtZX0ge1xyXG4gICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRjb2xvciwgYXV0bywgYXV0byk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIEBlbHNlIHtcclxuICAgICAgICAmLiN7JG5hbWV9IHtcclxuICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3ctc3R5bGUoJGNvbG9yKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYuI3skbmFtZX0uZHJvcGRvd246OmFmdGVyIHtcclxuICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6ICRjb2xvcjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBIb2xsb3cgc3R5bGVcclxuICAgIEBpZiAkYnV0dG9uLWZpbGwgIT0gaG9sbG93IHtcclxuICAgICAgJi5ob2xsb3cge1xyXG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3c7XHJcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdy1zdHlsZTtcclxuXHJcbiAgICAgICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkZm91bmRhdGlvbi1wYWxldHRlIHtcclxuICAgICAgICAgICYuI3skbmFtZX0ge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b24taG9sbG93LXN0eWxlKCRjb2xvcik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gRGlzYWJsZWQgc3R5bGVcclxuICAgICYuZGlzYWJsZWQsXHJcbiAgICAmW2Rpc2FibGVkXSB7XHJcbiAgICAgIEBpbmNsdWRlIGJ1dHRvbi1kaXNhYmxlZDtcclxuICAgIH1cclxuXHJcbiAgICAvLyBEcm9wZG93biBhcnJvd1xyXG4gICAgJi5kcm9wZG93biB7XHJcbiAgICAgIEBpbmNsdWRlIGJ1dHRvbi1kcm9wZG93bjtcclxuXHJcbiAgICAgIEBpZiAkYnV0dG9uLWZpbGwgPT0gaG9sbG93IHtcclxuICAgICAgICAmOjphZnRlciB7XHJcbiAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAkYnV0dG9uLWJhY2tncm91bmQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gQnV0dG9uIHdpdGggZHJvcGRvd24gYXJyb3cgb25seVxyXG4gICAgJi5hcnJvdy1vbmx5OjphZnRlciB7XHJcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IDA7XHJcbiAgICAgIGZsb2F0OiBub25lO1xyXG4gICAgICB0b3A6IC0wLjFlbTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxyXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXHJcbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxyXG5cclxuLy8vL1xyXG4vLy8gQGdyb3VwIGZvcm1zXHJcbi8vLy9cclxuXHJcbi8vLyBGb250IGNvbG9yIG9mIHRleHQgaW5wdXRzLlxyXG4vLy8gQHR5cGUgQ29sb3JcclxuJGlucHV0LWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRm9udCBjb2xvciBvZiBwbGFjZWhvbGRlciB0ZXh0IHdpdGhpbiB0ZXh0IGlucHV0cy5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiRpbnB1dC1wbGFjZWhvbGRlci1jb2xvcjogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xyXG5cclxuLy8vIEZvbnQgZmFtaWx5IG9mIHRleHQgaW5wdXRzLlxyXG4vLy8gQHR5cGUgRm9udFxyXG4kaW5wdXQtZm9udC1mYW1pbHk6IGluaGVyaXQgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRm9udCBzaXplIG9mIHRleHQgaW5wdXRzLlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiRpbnB1dC1mb250LXNpemU6IHJlbS1jYWxjKDE2KSAhZGVmYXVsdDtcclxuXHJcbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRleHQgaW5wdXRzLlxyXG4vLy8gQHR5cGUgQ29sb3JcclxuJGlucHV0LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcclxuXHJcbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGZvY3VzZWQgb2YgdGV4dCBpbnB1dHMuXHJcbi8vLyBAdHlwZSBDb2xvclxyXG4kaW5wdXQtYmFja2dyb3VuZC1mb2N1czogJHdoaXRlICFkZWZhdWx0O1xyXG5cclxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgZGlzYWJsZWQgdGV4dCBpbnB1dHMuXHJcbi8vLyBAdHlwZSBDb2xvclxyXG4kaW5wdXQtYmFja2dyb3VuZC1kaXNhYmxlZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gQm9yZGVyIGFyb3VuZCB0ZXh0IGlucHV0cy5cclxuLy8vIEB0eXBlIEJvcmRlclxyXG4kaW5wdXQtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xyXG5cclxuLy8vIEJvcmRlciBhcm91bmQgZm9jdXNlZCB0ZXh0IGlucHV0cy5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiRpbnB1dC1ib3JkZXItZm9jdXM6IDFweCBzb2xpZCAkZGFyay1ncmF5ICFkZWZhdWx0O1xyXG5cclxuLy8vIEJveCBzaGFkb3cgaW5zaWRlIHRleHQgaW5wdXRzIHdoZW4gbm90IGZvY3VzZWQuXHJcbi8vLyBAdHlwZSBTaGFkb3dcclxuJGlucHV0LXNoYWRvdzogaW5zZXQgMCAxcHggMnB4IHJnYmEoJGJsYWNrLCAwLjEpICFkZWZhdWx0O1xyXG5cclxuLy8vIEJveCBzaGFkb3cgb3V0c2lkZSB0ZXh0IGlucHV0cyB3aGVuIGZvY3VzZWQuXHJcbi8vLyBAdHlwZSBTaGFkb3dcclxuJGlucHV0LXNoYWRvdy1mb2N1czogMCAwIDVweCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gQ3Vyc29yIHRvIHVzZSB3aGVuIGhvdmVyaW5nIG92ZXIgYSBkaXNhYmxlZCB0ZXh0IGlucHV0LlxyXG4vLy8gQHR5cGUgQ3Vyc29yXHJcbiRpbnB1dC1jdXJzb3ItZGlzYWJsZWQ6IG5vdC1hbGxvd2VkICFkZWZhdWx0O1xyXG5cclxuLy8vIFByb3BlcnRpZXMgdG8gdHJhbnNpdGlvbiBvbiB0ZXh0IGlucHV0cy5cclxuLy8vIEB0eXBlIFRyYW5zaXRpb25cclxuJGlucHV0LXRyYW5zaXRpb246IGJveC1zaGFkb3cgMC41cywgYm9yZGVyLWNvbG9yIDAuMjVzIGVhc2UtaW4tb3V0ICFkZWZhdWx0O1xyXG5cclxuLy8vIEVuYWJsZXMgdGhlIHVwL2Rvd24gYnV0dG9ucyB0aGF0IENocm9tZSBhbmQgRmlyZWZveCBhZGQgdG8gYDxpbnB1dCB0eXBlPSdudW1iZXInPmAgZWxlbWVudHMuXHJcbi8vLyBAdHlwZSBCb29sZWFuXHJcbiRpbnB1dC1udW1iZXItc3Bpbm5lcnM6IHRydWUgIWRlZmF1bHQ7XHJcblxyXG4vLy8gUmFkaXVzIGZvciB0ZXh0IGlucHV0cy5cclxuLy8vIEB0eXBlIEJvcmRlclxyXG4kaW5wdXQtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcclxuXHJcbkBtaXhpbiBmb3JtLWVsZW1lbnQge1xyXG4gICRoZWlnaHQ6ICgkaW5wdXQtZm9udC1zaXplICsgKCRmb3JtLXNwYWNpbmcgKiAxLjUpIC0gcmVtLWNhbGMoMSkpO1xyXG5cclxuICBkaXNwbGF5OiBibG9jaztcclxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogJGhlaWdodDtcclxuICBwYWRkaW5nOiAkZm9ybS1zcGFjaW5nIC8gMjtcclxuICBib3JkZXI6ICRpbnB1dC1ib3JkZXI7XHJcbiAgbWFyZ2luOiAwIDAgJGZvcm0tc3BhY2luZztcclxuXHJcbiAgZm9udC1mYW1pbHk6ICRpbnB1dC1mb250LWZhbWlseTtcclxuICBmb250LXNpemU6ICRpbnB1dC1mb250LXNpemU7XHJcbiAgY29sb3I6ICRpbnB1dC1jb2xvcjtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmFja2dyb3VuZDtcclxuICBib3gtc2hhZG93OiAkaW5wdXQtc2hhZG93O1xyXG4gIGJvcmRlci1yYWRpdXM6ICRpbnB1dC1yYWRpdXM7XHJcblxyXG4gIEBpZiBoYXMtdmFsdWUoJGlucHV0LXRyYW5zaXRpb24pIHtcclxuICAgIHRyYW5zaXRpb246ICRpbnB1dC10cmFuc2l0aW9uO1xyXG4gIH1cclxuXHJcbiAgLy8gRm9jdXMgc3RhdGVcclxuICAmOmZvY3VzIHtcclxuICAgIGJvcmRlcjogJGlucHV0LWJvcmRlci1mb2N1cztcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iYWNrZ3JvdW5kLWZvY3VzO1xyXG4gICAgb3V0bGluZTogbm9uZTtcclxuICAgIGJveC1zaGFkb3c6ICRpbnB1dC1zaGFkb3ctZm9jdXM7XHJcblxyXG4gICAgQGlmIGhhcy12YWx1ZSgkaW5wdXQtdHJhbnNpdGlvbikge1xyXG4gICAgICB0cmFuc2l0aW9uOiAkaW5wdXQtdHJhbnNpdGlvbjtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tdGV4dCB7XHJcbiAgLy8gVGV4dCBpbnB1dHNcclxuICAje3RleHQtaW5wdXRzKCl9LFxyXG4gIHRleHRhcmVhIHtcclxuICAgIEBpbmNsdWRlIGZvcm0tZWxlbWVudDtcclxuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcclxuICAgIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcclxuICB9XHJcblxyXG4gIC8vIFRleHQgYXJlYXNcclxuICB0ZXh0YXJlYSB7XHJcbiAgICBtYXgtd2lkdGg6IDEwMCU7XHJcblxyXG4gICAgJltyb3dzXSB7XHJcbiAgICAgIGhlaWdodDogYXV0bztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGlucHV0LFxyXG4gIHRleHRhcmVhIHtcclxuICAgIC8vIFBsYWNlaG9sZGVyIHRleHRcclxuICAgICY6OnBsYWNlaG9sZGVyIHtcclxuICAgICAgY29sb3I6ICRpbnB1dC1wbGFjZWhvbGRlci1jb2xvcjtcclxuICAgIH1cclxuXHJcbiAgICAvLyBEaXNhYmxlZC9yZWFkb25seSBzdGF0ZVxyXG4gICAgJjpkaXNhYmxlZCxcclxuICAgICZbcmVhZG9ubHldIHtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWJhY2tncm91bmQtZGlzYWJsZWQ7XHJcbiAgICAgIGN1cnNvcjogJGlucHV0LWN1cnNvci1kaXNhYmxlZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIFJlc2V0IHN0eWxlcyBvbiBidXR0b24tbGlrZSBpbnB1dHNcclxuICBbdHlwZT0nc3VibWl0J10sXHJcbiAgW3R5cGU9J2J1dHRvbiddIHtcclxuICAgIGJvcmRlci1yYWRpdXM6ICRidXR0b24tcmFkaXVzO1xyXG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xyXG4gICAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xyXG4gIH1cclxuXHJcbiAgLy8gUmVzZXQgTm9ybWFsaXplIHNldHRpbmcgY29udGVudC1ib3ggdG8gc2VhcmNoIGVsZW1lbnRzXHJcbiAgLy8gc2Nzcy1saW50OmRpc2FibGUgUXVhbGlmeWluZ0VsZW1lbnRcclxuICBpbnB1dFt0eXBlPSdzZWFyY2gnXSB7XHJcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gIH1cclxuXHJcbiAgLy8gTnVtYmVyIGlucHV0IHN0eWxlc1xyXG4gIFt0eXBlPSdudW1iZXInXSB7XHJcbiAgICBAaWYgbm90ICRpbnB1dC1udW1iZXItc3Bpbm5lcnMge1xyXG4gICAgICAtbW96LWFwcGVhcmFuY2U6IHRleHRmaWVsZDtcclxuXHJcbiAgICAgIFt0eXBlPSdudW1iZXInXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcclxuICAgICAgW3R5cGU9J251bWJlciddOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcclxuICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XHJcbiAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcclxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxyXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcclxuXHJcbi8vLy9cclxuLy8vIEBncm91cCBmb3Jtc1xyXG4vLy8vXHJcblxyXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLWNoZWNrYm94IHtcclxuICBbdHlwZT0nZmlsZSddLFxyXG4gIFt0eXBlPSdjaGVja2JveCddLFxyXG4gIFt0eXBlPSdyYWRpbyddIHtcclxuICAgIG1hcmdpbjogMCAwICRmb3JtLXNwYWNpbmc7XHJcbiAgfVxyXG5cclxuICAvLyBTdHlsZXMgZm9yIGlucHV0L2xhYmVsIHNpYmxpbmdzXHJcbiAgW3R5cGU9J2NoZWNrYm94J10gKyBsYWJlbCxcclxuICBbdHlwZT0ncmFkaW8nXSArIGxhYmVsIHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRmb3JtLXNwYWNpbmcgKiAwLjU7XHJcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJGZvcm0tc3BhY2luZztcclxuICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XHJcblxyXG4gICAgJltmb3JdIHtcclxuICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gU3R5bGVzIGZvciBpbnB1dHMgaW5zaWRlIGxhYmVsc1xyXG4gIGxhYmVsID4gW3R5cGU9J2NoZWNrYm94J10sXHJcbiAgbGFiZWwgPiBbdHlwZT0ncmFkaW8nXSB7XHJcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJGZvcm0tc3BhY2luZyAqIDAuNTtcclxuICB9XHJcblxyXG4gIC8vIE5vcm1hbGl6ZSBmaWxlIGlucHV0IHdpZHRoXHJcbiAgW3R5cGU9J2ZpbGUnXSB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICB9XHJcbn1cclxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxyXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXHJcbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxyXG5cclxuLy8vL1xyXG4vLy8gQGdyb3VwIGZvcm1zXHJcbi8vLy9cclxuXHJcbi8vLyBDb2xvciBmb3IgZm9ybSBsYWJlbHMuXHJcbi8vLyBAdHlwZSBDb2xvclxyXG4kZm9ybS1sYWJlbC1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xyXG5cclxuLy8vIEZvbnQgc2l6ZSBmb3IgZm9ybSBsYWJlbHMuXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJGZvcm0tbGFiZWwtZm9udC1zaXplOiByZW0tY2FsYygxNCkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRm9udCB3ZWlnaHQgZm9yIGZvcm0gbGFiZWxzLlxyXG4vLy8gQHR5cGUgS2V5d29yZFxyXG4kZm9ybS1sYWJlbC1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xyXG5cclxuLy8vIExpbmUgaGVpZ2h0IGZvciBmb3JtIGxhYmVscy4gVGhlIGhpZ2hlciB0aGUgbnVtYmVyLCB0aGUgbW9yZSBzcGFjZSBiZXR3ZWVuIHRoZSBsYWJlbCBhbmQgaXRzIGlucHV0IGZpZWxkLlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiRmb3JtLWxhYmVsLWxpbmUtaGVpZ2h0OiAxLjggIWRlZmF1bHQ7XHJcblxyXG5AbWl4aW4gZm9ybS1sYWJlbCB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgbWFyZ2luOiAwO1xyXG4gIGZvbnQtc2l6ZTogJGZvcm0tbGFiZWwtZm9udC1zaXplO1xyXG4gIGZvbnQtd2VpZ2h0OiAkZm9ybS1sYWJlbC1mb250LXdlaWdodDtcclxuICBsaW5lLWhlaWdodDogJGZvcm0tbGFiZWwtbGluZS1oZWlnaHQ7XHJcbiAgY29sb3I6ICRmb3JtLWxhYmVsLWNvbG9yO1xyXG59XHJcblxyXG5AbWl4aW4gZm9ybS1sYWJlbC1taWRkbGUge1xyXG4gICRpbnB1dC1ib3JkZXItd2lkdGg6IGdldC1ib3JkZXItdmFsdWUoJGlucHV0LWJvcmRlciwgd2lkdGgpO1xyXG4gIG1hcmdpbjogMCAwICRmb3JtLXNwYWNpbmc7XHJcbiAgcGFkZGluZzogKCRmb3JtLXNwYWNpbmcgLyAyICsgcmVtLWNhbGMoJGlucHV0LWJvcmRlci13aWR0aCkpIDA7XHJcbn1cclxuXHJcbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tbGFiZWwge1xyXG4gIGxhYmVsIHtcclxuICAgIEBpbmNsdWRlIGZvcm0tbGFiZWw7XHJcblxyXG4gICAgJi5taWRkbGUge1xyXG4gICAgICBAaW5jbHVkZSBmb3JtLWxhYmVsLW1pZGRsZTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxyXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXHJcbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxyXG5cclxuLy8vL1xyXG4vLy8gQGdyb3VwIGZvcm1zXHJcbi8vLy9cclxuXHJcbi8vLyBEZWZhdWx0IGNvbG9yIGZvciBoZWxwIHRleHQuXHJcbi8vLyBAdHlwZSBDb2xvclxyXG4kaGVscHRleHQtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcclxuXHJcbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3IgaGVscCB0ZXh0LlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiRoZWxwdGV4dC1mb250LXNpemU6IHJlbS1jYWxjKDEzKSAhZGVmYXVsdDtcclxuXHJcbi8vLyBEZWZhdWx0IGZvbnQgc3R5bGUgZm9yIGhlbHAgdGV4dC5cclxuLy8vIEB0eXBlIEtleXdvcmRcclxuJGhlbHB0ZXh0LWZvbnQtc3R5bGU6IGl0YWxpYyAhZGVmYXVsdDtcclxuXHJcbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0taGVscHRleHQge1xyXG4gIC5oZWxwLXRleHQge1xyXG4gICAgJG1hcmdpbi10b3A6ICgkZm9ybS1zcGFjaW5nICogMC41KSAqIC0xO1xyXG5cclxuICAgIG1hcmdpbi10b3A6ICRtYXJnaW4tdG9wO1xyXG4gICAgZm9udC1zaXplOiAkaGVscHRleHQtZm9udC1zaXplO1xyXG4gICAgZm9udC1zdHlsZTogJGhlbHB0ZXh0LWZvbnQtc3R5bGU7XHJcbiAgICBjb2xvcjogJGhlbHB0ZXh0LWNvbG9yO1xyXG4gIH1cclxufVxyXG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXHJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cclxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXHJcblxyXG4vLy8vXHJcbi8vLyBAZ3JvdXAgZm9ybXNcclxuLy8vL1xyXG5cclxuLy8vIENvbG9yIG9mIGxhYmVscyBwcmVmaXhlZCB0byBhbiBpbnB1dC5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiRpbnB1dC1wcmVmaXgtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcclxuXHJcbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGxhYmVscyBwcmVmaXhlZCB0byBhbiBpbnB1dC5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiRpbnB1dC1wcmVmaXgtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gQm9yZGVyIGFyb3VuZCBsYWJlbHMgcHJlZml4ZWQgdG8gYW4gaW5wdXQuXHJcbi8vLyBAdHlwZSBCb3JkZXJcclxuJGlucHV0LXByZWZpeC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gTGVmdC9yaWdodCBwYWRkaW5nIG9mIGFuIHByZS9wb3N0Zml4ZWQgaW5wdXQgbGFiZWxcclxuJGlucHV0LXByZWZpeC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xyXG5cclxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1wcmVwb3N0Zml4IHtcclxuICAkaGVpZ2h0OiAoJGlucHV0LWZvbnQtc2l6ZSArICRmb3JtLXNwYWNpbmcgKiAxLjUpO1xyXG5cclxuICAuaW5wdXQtZ3JvdXAge1xyXG4gICAgZGlzcGxheTogaWYoJGdsb2JhbC1mbGV4Ym94LCBmbGV4LCB0YWJsZSk7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIG1hcmdpbi1ib3R0b206ICRmb3JtLXNwYWNpbmc7XHJcblxyXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XHJcbiAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xyXG4gICAgfVxyXG5cclxuICAgID4gOmZpcnN0LWNoaWxkIHtcclxuICAgICAgYm9yZGVyLXJhZGl1czogaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBydGwsIDAgJGdsb2JhbC1yYWRpdXMgJGdsb2JhbC1yYWRpdXMgMCwgJGdsb2JhbC1yYWRpdXMgMCAwICRnbG9iYWwtcmFkaXVzKTtcclxuICAgIH1cclxuXHJcbiAgICA+IDpsYXN0LWNoaWxkIHtcclxuICAgICAgPiAqIHtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiBpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IHJ0bCwgJGdsb2JhbC1yYWRpdXMgMCAwICRnbG9iYWwtcmFkaXVzLCAwICRnbG9iYWwtcmFkaXVzICRnbG9iYWwtcmFkaXVzIDApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAlaW5wdXQtZ3JvdXAtY2hpbGQge1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuXHJcbiAgICBAaWYgbm90ICRnbG9iYWwtZmxleGJveCB7XHJcbiAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XHJcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuaW5wdXQtZ3JvdXAtbGFiZWwge1xyXG4gICAgQGV4dGVuZCAlaW5wdXQtZ3JvdXAtY2hpbGQ7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBwYWRkaW5nOiAwICRpbnB1dC1wcmVmaXgtcGFkZGluZztcclxuICAgIGJhY2tncm91bmQ6ICRpbnB1dC1wcmVmaXgtYmFja2dyb3VuZDtcclxuICAgIGNvbG9yOiAkaW5wdXQtcHJlZml4LWNvbG9yO1xyXG4gICAgYm9yZGVyOiAkaW5wdXQtcHJlZml4LWJvcmRlcjtcclxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcblxyXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XHJcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgfVxyXG4gICAgQGVsc2Uge1xyXG4gICAgICB3aWR0aDogMSU7XHJcbiAgICAgIGhlaWdodDogMTAwJTtcclxuICAgIH1cclxuXHJcbiAgICBAaWYgaGFzLXZhbHVlKCRpbnB1dC1wcmVmaXgtYm9yZGVyKSB7XHJcbiAgICAgICY6Zmlyc3QtY2hpbGQge1xyXG4gICAgICAgIGJvcmRlci0jeyRnbG9iYWwtcmlnaHR9OiAwO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAmOmxhc3QtY2hpbGQge1xyXG4gICAgICAgIGJvcmRlci0jeyRnbG9iYWwtbGVmdH06IDA7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5pbnB1dC1ncm91cC1maWVsZCB7XHJcbiAgICBAZXh0ZW5kICVpbnB1dC1ncm91cC1jaGlsZDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDA7XHJcblxyXG4gICAgLy8gc2Nzcy1saW50OmRpc2FibGUgWmVyb1VuaXRcclxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xyXG4gICAgICBmbGV4OiAxIDEgMHB4O1xyXG4gICAgICB3aWR0aDogYXV0bztcclxuICAgICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgfVxyXG4gICAgQGVsc2Uge1xyXG4gICAgICBoZWlnaHQ6ICRoZWlnaHQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuaW5wdXQtZ3JvdXAtYnV0dG9uIHtcclxuICAgIEBleHRlbmQgJWlucHV0LWdyb3VwLWNoaWxkO1xyXG4gICAgcGFkZGluZy10b3A6IDA7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHJcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcclxuICAgICAgZmxleDogMCAwIGF1dG87XHJcbiAgICB9XHJcbiAgICBAZWxzZSB7XHJcbiAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgd2lkdGg6IDElO1xyXG4gICAgfVxyXG5cclxuICAgIGEsXHJcbiAgICBpbnB1dCxcclxuICAgIGJ1dHRvbiB7XHJcbiAgICAgIG1hcmdpbjogMDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIFNwZWNpZmljaXR5IGJ1bXAgbmVlZGVkIHRvIHByZXZlbnQgb3ZlcnJpZGUgYnkgYnV0dG9uc1xyXG4gIC8vIHNjc3MtbGludDpkaXNhYmxlIFF1YWxpZnlpbmdTZWxlY3RvclxyXG4gIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYnV0dG9uIHtcclxuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XHJcbiAgfVxyXG59XHJcbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcclxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxyXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcclxuXHJcbi8vLy9cclxuLy8vIEBncm91cCBmb3Jtc1xyXG4vLy8vXHJcblxyXG4vLy8gRGVmYXVsdCBib3JkZXIgYXJvdW5kIGN1c3RvbSBmaWVsZHNldHMuXHJcbi8vLyBAdHlwZSBCb3JkZXJcclxuJGZpZWxkc2V0LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcclxuXHJcbi8vLyBEZWZhdWx0IHBhZGRpbmcgaW5zaWRlIGN1c3RvbSBmaWVsZHNldHMuXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJGZpZWxkc2V0LXBhZGRpbmc6IHJlbS1jYWxjKDIwKSAhZGVmYXVsdDtcclxuXHJcbi8vLyBEZWZhdWx0IG1hcmdpbiBhcm91bmQgY3VzdG9tIGZpZWxkc2V0cy5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kZmllbGRzZXQtbWFyZ2luOiByZW0tY2FsYygxOCAwKSAhZGVmYXVsdDtcclxuXHJcbi8vLyBEZWZhdWx0IHBhZGRpbmcgYmV0d2VlbiB0aGUgbGVnZW5kIHRleHQgYW5kIGZpZWxkc2V0IGJvcmRlci5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kbGVnZW5kLXBhZGRpbmc6IHJlbS1jYWxjKDAgMykgIWRlZmF1bHQ7XHJcblxyXG5AbWl4aW4gZmllbGRzZXQge1xyXG4gIGJvcmRlcjogJGZpZWxkc2V0LWJvcmRlcjtcclxuICBwYWRkaW5nOiAkZmllbGRzZXQtcGFkZGluZztcclxuICBtYXJnaW46ICRmaWVsZHNldC1tYXJnaW47XHJcblxyXG4gIGxlZ2VuZCB7XHJcbiAgICAvLyBDb3ZlcnMgdXAgdGhlIGZpZWxkc2V0J3MgYm9yZGVyIHRvIGNyZWF0ZSBhcnRpZmljaWFsIHBhZGRpbmdcclxuICAgIGJhY2tncm91bmQ6ICRib2R5LWJhY2tncm91bmQ7XHJcbiAgICBwYWRkaW5nOiAkbGVnZW5kLXBhZGRpbmc7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiByZW0tY2FsYygtMyk7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLWZpZWxkc2V0IHtcclxuICBmaWVsZHNldCB7XHJcbiAgICBib3JkZXI6IDA7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gIH1cclxuXHJcbiAgbGVnZW5kIHtcclxuICAgIG1hcmdpbi1ib3R0b206ICRmb3JtLXNwYWNpbmcgKiAwLjU7XHJcbiAgICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgfVxyXG5cclxuICAuZmllbGRzZXQge1xyXG4gICAgQGluY2x1ZGUgZmllbGRzZXQ7XHJcbiAgfVxyXG59XHJcbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcclxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxyXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcclxuXHJcbi8vLy9cclxuLy8vIEBncm91cCBmb3Jtc1xyXG4vLy8vXHJcblxyXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3Igc2VsZWN0IG1lbnVzLlxyXG4vLy8gQHR5cGUgQ29sb3JcclxuJHNlbGVjdC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XHJcblxyXG4vLy8gQ29sb3Igb2YgdGhlIGRyb3Bkb3duIHRyaWFuZ2xlIGluc2lkZSBzZWxlY3QgbWVudXMuIFNldCB0byBgdHJhbnNwYXJlbnRgIHRvIHJlbW92ZSBpdCBlbnRpcmVseS5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiRzZWxlY3QtdHJpYW5nbGUtY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCByYWRpdXMgZm9yIHNlbGVjdCBtZW51cy5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiRzZWxlY3QtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcclxuXHJcbkBtaXhpbiBmb3JtLXNlbGVjdCB7XHJcbiAgJGhlaWdodDogKCRpbnB1dC1mb250LXNpemUgKyAoJGZvcm0tc3BhY2luZyAqIDEuNSkgLSByZW0tY2FsYygxKSk7XHJcblxyXG4gIGhlaWdodDogJGhlaWdodDtcclxuICBwYWRkaW5nOiAoJGZvcm0tc3BhY2luZyAvIDIpO1xyXG4gIGJvcmRlcjogJGlucHV0LWJvcmRlcjtcclxuICBtYXJnaW46IDAgMCAkZm9ybS1zcGFjaW5nO1xyXG4gIGZvbnQtc2l6ZTogJGlucHV0LWZvbnQtc2l6ZTtcclxuICBmb250LWZhbWlseTogJGlucHV0LWZvbnQtZmFtaWx5O1xyXG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XHJcbiAgY29sb3I6ICRpbnB1dC1jb2xvcjtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2VsZWN0LWJhY2tncm91bmQ7XHJcbiAgYm9yZGVyLXJhZGl1czogJHNlbGVjdC1yYWRpdXM7XHJcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xyXG4gIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcclxuXHJcbiAgQGlmICRzZWxlY3QtdHJpYW5nbGUtY29sb3IgIT0gdHJhbnNwYXJlbnQge1xyXG4gICAgQGluY2x1ZGUgYmFja2dyb3VuZC10cmlhbmdsZSgkc2VsZWN0LXRyaWFuZ2xlLWNvbG9yKTtcclxuICAgIGJhY2tncm91bmQtc2l6ZTogOXB4IDZweDtcclxuICAgIGJhY2tncm91bmQtcG9zaXRpb246ICRnbG9iYWwtcmlnaHQgKC0kZm9ybS1zcGFjaW5nKSBjZW50ZXI7XHJcbiAgICBiYWNrZ3JvdW5kLW9yaWdpbjogY29udGVudC1ib3g7XHJcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG4gICAgcGFkZGluZy0jeyRnbG9iYWwtcmlnaHR9OiAoJGZvcm0tc3BhY2luZyAqIDEuNSk7XHJcbiAgfVxyXG5cclxuICAvLyBEaXNhYmxlZCBzdGF0ZVxyXG4gICY6ZGlzYWJsZWQge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWJhY2tncm91bmQtZGlzYWJsZWQ7XHJcbiAgICBjdXJzb3I6ICRpbnB1dC1jdXJzb3ItZGlzYWJsZWQ7XHJcbiAgfVxyXG5cclxuICAvLyBIaWRlIHRoZSBkcm9wZG93biBhcnJvdyBzaG93biBpbiBuZXdlciBJRSB2ZXJzaW9uc1xyXG4gICY6Oi1tcy1leHBhbmQge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICB9XHJcblxyXG4gICZbbXVsdGlwbGVdIHtcclxuICAgIGhlaWdodDogYXV0bztcclxuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLXNlbGVjdCB7XHJcbiAgc2VsZWN0IHtcclxuICAgIEBpbmNsdWRlIGZvcm0tc2VsZWN0O1xyXG4gIH1cclxufVxyXG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXHJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cclxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXHJcblxyXG4vLy8vXHJcbi8vLyBAZ3JvdXAgYWJpZGVcclxuLy8vL1xyXG5cclxuLy8vIFNldHMgaWYgZXJyb3Igc3R5bGVzIHNob3VsZCBiZSBhZGRlZCB0byBpbnB1dHMuXHJcbi8vLyBAdHlwZSBCb29sZWFuXHJcbiRhYmlkZS1pbnB1dHM6IHRydWUgIWRlZmF1bHQ7XHJcblxyXG4vLy8gU2V0cyBpZiBlcnJvciBzdHlsZXMgc2hvdWxkIGJlIGFkZGVkIHRvIGxhYmVscy5cclxuLy8vIEB0eXBlIEJvb2xlYW5cclxuJGFiaWRlLWxhYmVsczogdHJ1ZSAhZGVmYXVsdDtcclxuXHJcbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIHRvIHVzZSBmb3IgaW52YWxpZCB0ZXh0IGlucHV0cy5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiRpbnB1dC1iYWNrZ3JvdW5kLWludmFsaWQ6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgYWxlcnQpICFkZWZhdWx0O1xyXG5cclxuLy8vIENvbG9yIHRvIHVzZSBmb3IgbGFiZWxzIG9mIGludmFsaWQgaW5wdXRzLlxyXG4vLy8gQHR5cGUgQ29sb3JcclxuJGZvcm0tbGFiZWwtY29sb3ItaW52YWxpZDogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBhbGVydCkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBmb3JtIGVycm9yIHRleHQuXHJcbi8vLyBAdHlwZSBDb2xvclxyXG4kaW5wdXQtZXJyb3ItY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgYWxlcnQpICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgZm9udCBzaXplIGZvciBmb3JtIGVycm9yIHRleHQuXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJGlucHV0LWVycm9yLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgZm9udCB3ZWlnaHQgZm9yIGZvcm0gZXJyb3IgdGV4dC5cclxuLy8vIEB0eXBlIEtleXdvcmRcclxuJGlucHV0LWVycm9yLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkICFkZWZhdWx0O1xyXG5cclxuLy8vIFN0eWxlcyB0aGUgYmFja2dyb3VuZCBhbmQgYm9yZGVyIG9mIGFuIGlucHV0IGZpZWxkIHRvIGhhdmUgYW4gZXJyb3Igc3RhdGUuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQgWyRhbGVydC1jb2xvcl0gLSBDb2xvciB0byB1c2UgZm9yIHRoZSBiYWNrZ3JvdW5kIGFuZCBib3JkZXIuXHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhY2tncm91bmQtYWxwaGEgWzAuMV0gLSBUcmFuc3BhcmVuY3kgbGV2ZWwgb2YgdGhlIGJhY2tncm91bmQgY29sb3IuXHJcbkBtaXhpbiBmb3JtLWlucHV0LWVycm9yKFxyXG4gICRiYWNrZ3JvdW5kOiAkaW5wdXQtYmFja2dyb3VuZC1pbnZhbGlkLFxyXG4gICRiYWNrZ3JvdW5kLWFscGhhOiAwLjFcclxuKSB7XHJcbiAgJjpub3QoOmZvY3VzKSB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRiYWNrZ3JvdW5kLCAkYmFja2dyb3VuZC1hbHBoYSk7XHJcbiAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kO1xyXG4gIH1cclxufVxyXG5cclxuLy8vIEFkZHMgZXJyb3Igc3R5bGVzIHRvIGEgZm9ybSBlbGVtZW50LCB1c2luZyB0aGUgdmFsdWVzIGluIHRoZSBzZXR0aW5ncyBmaWxlLlxyXG5AbWl4aW4gZm9ybS1lcnJvciB7XHJcbiAgZGlzcGxheTogbm9uZTtcclxuICBtYXJnaW4tdG9wOiAkZm9ybS1zcGFjaW5nICogLTAuNTtcclxuICBtYXJnaW4tYm90dG9tOiAkZm9ybS1zcGFjaW5nO1xyXG4gIGZvbnQtc2l6ZTogJGlucHV0LWVycm9yLWZvbnQtc2l6ZTtcclxuICBmb250LXdlaWdodDogJGlucHV0LWVycm9yLWZvbnQtd2VpZ2h0O1xyXG4gIGNvbG9yOiAkaW5wdXQtZXJyb3ItY29sb3I7XHJcbn1cclxuXHJcbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tZXJyb3Ige1xyXG4gIEBpZiAkYWJpZGUtaW5wdXRzIHtcclxuICAgIC8vIEVycm9yIGNsYXNzIGZvciBpbnZhbGlkIGlucHV0c1xyXG4gICAgLmlzLWludmFsaWQtaW5wdXQge1xyXG4gICAgICBAaW5jbHVkZSBmb3JtLWlucHV0LWVycm9yO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQGlmICRhYmlkZS1sYWJlbHMge1xyXG4gICAgLy8gRXJyb3IgY2xhc3MgZm9yIGxhYmVscyBvZiBpbnZhbGlkIG91dHB1dHNcclxuICAgIC5pcy1pbnZhbGlkLWxhYmVsIHtcclxuICAgICAgY29sb3I6ICRmb3JtLWxhYmVsLWNvbG9yLWludmFsaWQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBGb3JtIGVycm9yIGVsZW1lbnRcclxuICAuZm9ybS1lcnJvciB7XHJcbiAgICBAaW5jbHVkZSBmb3JtLWVycm9yO1xyXG5cclxuICAgICYuaXMtdmlzaWJsZSB7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXHJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cclxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXHJcblxyXG4vLy8vXHJcbi8vLyBAZ3JvdXAgc2xpZGVyXHJcbi8vLy9cclxuXHJcbi8vLyBEZWZhdWx0IGhlaWdodCBvZiB0aGUgc2xpZGVyLlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiRzbGlkZXItaGVpZ2h0OiAwLjVyZW0gIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBzbGlkZXIncyB0cmFjay5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiRzbGlkZXItYmFja2dyb3VuZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBjb2xvciBvZiB0aGUgYWN0aXZlIGZpbGwgY29sb3Igb2YgdGhlIHNsaWRlci5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiRzbGlkZXItZmlsbC1iYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBoZWlnaHQgb2YgdGhlIGhhbmRsZSBvZiB0aGUgc2xpZGVyLlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiRzbGlkZXItaGFuZGxlLWhlaWdodDogMS40cmVtICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgd2lkdGggb2YgdGhlIGhhbmRsZSBvZiB0aGUgc2xpZGVyLlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiRzbGlkZXItaGFuZGxlLXdpZHRoOiAxLjRyZW0gIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBjb2xvciBvZiB0aGUgaGFuZGxlIGZvciB0aGUgc2xpZGVyLlxyXG4vLy8gQHR5cGUgQ29sb3JcclxuJHNsaWRlci1oYW5kbGUtYmFja2dyb3VuZDogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBmYWRlIGFtb3VudCBvZiBhIGRpc2FibGVkIHNsaWRlci5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kc2xpZGVyLW9wYWNpdHktZGlzYWJsZWQ6IDAuMjUgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCByYWRpdXMgZm9yIHNsaWRlci5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kc2xpZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XHJcblxyXG5AbWl4aW4gZm91bmRhdGlvbi1yYW5nZS1pbnB1dCB7XHJcbiAgLy8gc2Nzcy1saW50OmRpc2FibGUgUXVhbGlmeWluZ0VsZW1lbnRcclxuICBpbnB1dFt0eXBlPVwicmFuZ2VcIl0ge1xyXG4gICAgJG1hcmdpbjogKCRzbGlkZXItaGFuZGxlLWhlaWdodCAtICRzbGlkZXItaGVpZ2h0KSAvIDI7XHJcblxyXG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xyXG4gICAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogYXV0bztcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIG1hcmdpbi10b3A6ICRtYXJnaW47XHJcbiAgICBtYXJnaW4tYm90dG9tOiAkbWFyZ2luO1xyXG4gICAgYm9yZGVyOiAwO1xyXG4gICAgbGluZS1oZWlnaHQ6IDE7XHJcblxyXG4gICAgQGlmIGhhcy12YWx1ZSgkc2xpZGVyLXJhZGl1cykge1xyXG4gICAgICBib3JkZXItcmFkaXVzOiAkc2xpZGVyLXJhZGl1cztcclxuICAgIH1cclxuXHJcbiAgICAmOmZvY3VzIHtcclxuICAgICAgb3V0bGluZTogMDtcclxuICAgIH1cclxuXHJcbiAgICAmW2Rpc2FibGVkXSB7XHJcbiAgICAgIG9wYWNpdHk6ICRzbGlkZXItb3BhY2l0eS1kaXNhYmxlZDtcclxuICAgIH1cclxuXHJcbiAgICAvLyBDaHJvbWUvU2FmYXJpXHJcbiAgICAmOjotd2Via2l0LXNsaWRlci1ydW5uYWJsZS10cmFjayB7XHJcbiAgICAgIGhlaWdodDogJHNsaWRlci1oZWlnaHQ7XHJcbiAgICAgIGJhY2tncm91bmQ6ICRzbGlkZXItYmFja2dyb3VuZDtcclxuICAgIH1cclxuXHJcbiAgICAmOjotd2Via2l0LXNsaWRlci1oYW5kbGUge1xyXG4gICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XHJcbiAgICAgIGJhY2tncm91bmQ6ICRzbGlkZXItaGFuZGxlLWJhY2tncm91bmQ7XHJcbiAgICAgIHdpZHRoOiAkc2xpZGVyLWhhbmRsZS13aWR0aDtcclxuICAgICAgaGVpZ2h0OiAkc2xpZGVyLWhhbmRsZS1oZWlnaHQ7XHJcbiAgICAgIG1hcmdpbi10b3A6IC0kbWFyZ2luO1xyXG5cclxuICAgICAgQGlmIGhhcy12YWx1ZSgkc2xpZGVyLXJhZGl1cykge1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRzbGlkZXItcmFkaXVzO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gRmlyZWZveFxyXG4gICAgJjo6LW1vei1yYW5nZS10cmFjayB7XHJcbiAgICAgIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcclxuICAgICAgaGVpZ2h0OiAkc2xpZGVyLWhlaWdodDtcclxuICAgICAgYmFja2dyb3VuZDogJHNsaWRlci1iYWNrZ3JvdW5kO1xyXG4gICAgfVxyXG5cclxuICAgICY6Oi1tb3otcmFuZ2UtdGh1bWIge1xyXG4gICAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XHJcbiAgICAgIGJhY2tncm91bmQ6ICRzbGlkZXItaGFuZGxlLWJhY2tncm91bmQ7XHJcbiAgICAgIHdpZHRoOiAkc2xpZGVyLWhhbmRsZS13aWR0aDtcclxuICAgICAgaGVpZ2h0OiAkc2xpZGVyLWhhbmRsZS1oZWlnaHQ7XHJcbiAgICAgIG1hcmdpbi10b3A6IC0kbWFyZ2luO1xyXG5cclxuICAgICAgQGlmIGhhcy12YWx1ZSgkc2xpZGVyLXJhZGl1cykge1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRzbGlkZXItcmFkaXVzO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gSW50ZXJuZXQgRXhwbG9yZXJcclxuICAgICY6Oi1tcy10cmFjayB7XHJcbiAgICAgIGhlaWdodDogJHNsaWRlci1oZWlnaHQ7XHJcbiAgICAgIGJhY2tncm91bmQ6ICRzbGlkZXItYmFja2dyb3VuZDtcclxuICAgICAgY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgICBib3JkZXI6IDA7XHJcbiAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xyXG4gICAgICBib3JkZXItdG9wOiAkbWFyZ2luIHNvbGlkICRib2R5LWJhY2tncm91bmQ7XHJcbiAgICAgIGJvcmRlci1ib3R0b206ICRtYXJnaW4gc29saWQgJGJvZHktYmFja2dyb3VuZDtcclxuICAgIH1cclxuXHJcbiAgICAmOjotbXMtdGh1bWIge1xyXG4gICAgICBiYWNrZ3JvdW5kOiAkc2xpZGVyLWhhbmRsZS1iYWNrZ3JvdW5kO1xyXG4gICAgICB3aWR0aDogJHNsaWRlci1oYW5kbGUtd2lkdGg7XHJcbiAgICAgIGhlaWdodDogJHNsaWRlci1oYW5kbGUtaGVpZ2h0O1xyXG4gICAgICBib3JkZXI6IDA7XHJcblxyXG4gICAgICBAaWYgaGFzLXZhbHVlKCRzbGlkZXItcmFkaXVzKSB7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJHNsaWRlci1yYWRpdXM7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmOjotbXMtZmlsbC1sb3dlciB7XHJcbiAgICAgIGJhY2tncm91bmQ6ICRzbGlkZXItZmlsbC1iYWNrZ3JvdW5kO1xyXG4gICAgfVxyXG5cclxuICAgICY6Oi1tcy1maWxsLXVwcGVyIHtcclxuICAgICAgYmFja2dyb3VuZDogJHNsaWRlci1iYWNrZ3JvdW5kO1xyXG4gICAgfVxyXG5cclxuICAgIEBhdC1yb290IHtcclxuICAgICAgb3V0cHV0IHtcclxuICAgICAgICBsaW5lLWhlaWdodDogJHNsaWRlci1oYW5kbGUtaGVpZ2h0O1xyXG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNWVtO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcclxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxyXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcclxuXHJcbi8vLy9cclxuLy8vIEBncm91cCBhY2NvcmRpb25cclxuLy8vL1xyXG5cclxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBvZiBhbiBhY2NvcmRpb24gZ3JvdXAuXHJcbi8vLyBAdHlwZSBDb2xvclxyXG4kYWNjb3JkaW9uLWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcclxuXHJcbi8vLyBJZiBgdHJ1ZWAsIGFkZHMgcGx1cyBhbmQgbWludXMgaWNvbnMgdG8gdGhlIHNpZGUgb2YgZWFjaCBhY2NvcmRpb24gdGl0bGUuXHJcbi8vLyBAdHlwZSBCb29sZWFuXHJcbiRhY2NvcmRpb24tcGx1c21pbnVzOiB0cnVlICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgdGV4dCBjb2xvciBmb3IgaXRlbXMgaW4gYSBNZW51LlxyXG4vLy8gQHR5cGUgQ29sb3JcclxuJGFjY29yZGlvbi1pdGVtLWNvbG9yOiBmb3JlZ3JvdW5kKCRhY2NvcmRpb24tYmFja2dyb3VuZCwgJHByaW1hcnktY29sb3IpICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBvbiBob3ZlciBmb3IgaXRlbXMgaW4gYSBNZW51LlxyXG4vLy8gQHR5cGUgQ29sb3JcclxuJGFjY29yZGlvbi1pdGVtLWJhY2tncm91bmQtaG92ZXI6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgcGFkZGluZyBvZiBhbiBhY2NvcmRpb24gaXRlbS5cclxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcclxuJGFjY29yZGlvbi1pdGVtLXBhZGRpbmc6IDEuMjVyZW0gMXJlbSAhZGVmYXVsdDtcclxuXHJcbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3Igb2YgdGFiIGNvbnRlbnQuXHJcbi8vLyBAdHlwZSBDb2xvclxyXG4kYWNjb3JkaW9uLWNvbnRlbnQtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgYm9yZGVyIGNvbG9yIG9mIHRhYiBjb250ZW50LlxyXG4vLy8gQHR5cGUgQ29sb3JcclxuJGFjY29yZGlvbi1jb250ZW50LWJvcmRlcjogMXB4IHNvbGlkICRsaWdodC1ncmF5ICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgdGV4dCBjb2xvciBvZiB0YWIgY29udGVudC5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiRhY2NvcmRpb24tY29udGVudC1jb2xvcjogZm9yZWdyb3VuZCgkYWNjb3JkaW9uLWNvbnRlbnQtYmFja2dyb3VuZCwgJGJvZHktZm9udC1jb2xvcikgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGZvciB0YWIgY29udGVudC5cclxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcclxuJGFjY29yZGlvbi1jb250ZW50LXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XHJcblxyXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGFuIGFjY29yZGlvbiBjb250YWluZXIuIEFwcGx5IHRoaXMgdG8gdGhlIHNhbWUgZWxlbWVudCB0aGF0IGdldHMgYGRhdGEtYWNjb3JkaW9uYC5cclxuQG1peGluIGFjY29yZGlvbi1jb250YWluZXIge1xyXG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcclxuICBiYWNrZ3JvdW5kOiAkYWNjb3JkaW9uLWJhY2tncm91bmQ7XHJcbiAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogMDtcclxufVxyXG5cclxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgYWNjb3JkaW9uIGl0ZW0uIEFwcGx5IHRoaXMgdG8gdGhlIGxpc3QgaXRlbSB3aXRoaW4gYW4gYWNjb3JkaW9uIHVsLlxyXG5AbWl4aW4gYWNjb3JkaW9uLWl0ZW0ge1xyXG4gICY6Zmlyc3QtY2hpbGQgPiA6Zmlyc3QtY2hpbGQge1xyXG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgJGdsb2JhbC1yYWRpdXMgMCAwO1xyXG4gIH1cclxuXHJcbiAgJjpsYXN0LWNoaWxkID4gOmxhc3QtY2hpbGQge1xyXG4gICAgYm9yZGVyLXJhZGl1czogMCAwICRnbG9iYWwtcmFkaXVzICRnbG9iYWwtcmFkaXVzO1xyXG4gIH1cclxufVxyXG5cclxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgdGl0bGUgb2YgYW4gYWNjb3JkaW9uIGl0ZW0uIEFwcGx5IHRoaXMgdG8gdGhlIGxpbmsgd2l0aGluIGFuIGFjY29yZGlvbiBpdGVtLlxyXG5AbWl4aW4gYWNjb3JkaW9uLXRpdGxlIHtcclxuICBkaXNwbGF5OiBibG9jaztcclxuICBwYWRkaW5nOiAkYWNjb3JkaW9uLWl0ZW0tcGFkZGluZztcclxuICBsaW5lLWhlaWdodDogMTtcclxuICBmb250LXNpemU6IHJlbS1jYWxjKDEyKTtcclxuICBjb2xvcjogJGFjY29yZGlvbi1pdGVtLWNvbG9yO1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBib3JkZXI6ICRhY2NvcmRpb24tY29udGVudC1ib3JkZXI7XHJcbiAgYm9yZGVyLWJvdHRvbTogMDtcclxuXHJcbiAgOmxhc3QtY2hpbGQ6bm90KC5pcy1hY3RpdmUpID4gJiB7XHJcbiAgICBib3JkZXItcmFkaXVzOiAwIDAgJGdsb2JhbC1yYWRpdXMgJGdsb2JhbC1yYWRpdXM7XHJcbiAgICBib3JkZXItYm90dG9tOiAkYWNjb3JkaW9uLWNvbnRlbnQtYm9yZGVyO1xyXG4gIH1cclxuXHJcbiAgJjpob3ZlcixcclxuICAmOmZvY3VzIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRhY2NvcmRpb24taXRlbS1iYWNrZ3JvdW5kLWhvdmVyO1xyXG4gIH1cclxuXHJcbiAgQGlmICRhY2NvcmRpb24tcGx1c21pbnVzIHtcclxuICAgICY6OmJlZm9yZSB7XHJcbiAgICAgIGNvbnRlbnQ6ICcrJztcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAjeyRnbG9iYWwtcmlnaHR9OiAxcmVtO1xyXG4gICAgICB0b3A6IDUwJTtcclxuICAgICAgbWFyZ2luLXRvcDogLTAuNXJlbTtcclxuICAgIH1cclxuXHJcbiAgICAuaXMtYWN0aXZlID4gJjo6YmVmb3JlIHtcclxuICAgICAgY29udGVudDogJ+KAkyc7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGFjY29yZGlvbiBjb250ZW50LiBBcHBseSB0aGlzIHRvIHRoZSBjb250ZW50IHBhbmUgYmVsb3cgYW4gYWNjb3JkaW9uIGl0ZW0ncyB0aXRsZS5cclxuQG1peGluIGFjY29yZGlvbi1jb250ZW50IHtcclxuICBwYWRkaW5nOiAkYWNjb3JkaW9uLWNvbnRlbnQtcGFkZGluZztcclxuICBkaXNwbGF5OiBub25lO1xyXG4gIGJvcmRlcjogJGFjY29yZGlvbi1jb250ZW50LWJvcmRlcjtcclxuICBib3JkZXItYm90dG9tOiAwO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRhY2NvcmRpb24tY29udGVudC1iYWNrZ3JvdW5kO1xyXG4gIGNvbG9yOiAkYWNjb3JkaW9uLWNvbnRlbnQtY29sb3I7XHJcblxyXG4gIDpsYXN0LWNoaWxkID4gJjpsYXN0LWNoaWxkIHtcclxuICAgIGJvcmRlci1ib3R0b206ICRhY2NvcmRpb24tY29udGVudC1ib3JkZXI7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gZm91bmRhdGlvbi1hY2NvcmRpb24ge1xyXG4gIC5hY2NvcmRpb24ge1xyXG4gICAgQGluY2x1ZGUgYWNjb3JkaW9uLWNvbnRhaW5lcjtcclxuICB9XHJcblxyXG4gIC5hY2NvcmRpb24taXRlbSB7XHJcbiAgICBAaW5jbHVkZSBhY2NvcmRpb24taXRlbTtcclxuICB9XHJcblxyXG4gIC5hY2NvcmRpb24tdGl0bGUge1xyXG4gICAgQGluY2x1ZGUgYWNjb3JkaW9uLXRpdGxlO1xyXG4gIH1cclxuXHJcbiAgLmFjY29yZGlvbi1jb250ZW50IHtcclxuICAgIEBpbmNsdWRlIGFjY29yZGlvbi1jb250ZW50O1xyXG4gIH1cclxufVxyXG4iLCIvLy8vXHJcbi8vLyBAZ3JvdXAgYWNjb3JkaW9uLW1lbnVcclxuLy8vL1xyXG5cclxuLy8vIFNldHMgaWYgYWNjb3JkaW9uIG1lbnVzIGhhdmUgdGhlIGRlZmF1bHQgYXJyb3cgc3R5bGVzLlxyXG4vLy8gQHR5cGUgQm9vbGVhblxyXG4kYWNjb3JkaW9ubWVudS1hcnJvd3M6IHRydWUgIWRlZmF1bHQ7XHJcblxyXG4vLy8gU2V0cyBhY2NvcmRpb24gbWVudSBhcnJvdyBjb2xvciBpZiBhcnJvdyBpcyB1c2VkLlxyXG4vLy8gQHR5cGUgQ29sb3JcclxuJGFjY29yZGlvbm1lbnUtYXJyb3ctY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xyXG5cclxuQG1peGluIGZvdW5kYXRpb24tYWNjb3JkaW9uLW1lbnUge1xyXG4gIEBpZiAkYWNjb3JkaW9ubWVudS1hcnJvd3Mge1xyXG4gICAgLmlzLWFjY29yZGlvbi1zdWJtZW51LXBhcmVudCA+IGEge1xyXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG4gICAgICAmOjphZnRlciB7XHJcbiAgICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKDZweCwgJGFjY29yZGlvbm1lbnUtYXJyb3ctY29sb3IsIGRvd24pO1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICB0b3A6IDUwJTtcclxuICAgICAgICBtYXJnaW4tdG9wOiAtNHB4O1xyXG4gICAgICAgIHJpZ2h0OiAxcmVtO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmlzLWFjY29yZGlvbi1zdWJtZW51LXBhcmVudFthcmlhLWV4cGFuZGVkPSd0cnVlJ10gPiBhOjphZnRlciB7XHJcbiAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCU7XHJcbiAgICAgIHRyYW5zZm9ybTogc2NhbGVZKC0xKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxyXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXHJcbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxyXG5cclxuLy8vL1xyXG4vLy8gQGdyb3VwIGJhZGdlXHJcbi8vLy9cclxuXHJcbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3IgZm9yIGJhZGdlcy5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiRiYWRnZS1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcclxuXHJcbi8vLyBEZWZhdWx0IHRleHQgY29sb3IgZm9yIGJhZGdlcy5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiRiYWRnZS1jb2xvcjogZm9yZWdyb3VuZCgkYmFkZ2UtYmFja2dyb3VuZCkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGluc2lkZSBiYWRnZXMuXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJGJhZGdlLXBhZGRpbmc6IDAuM2VtICFkZWZhdWx0O1xyXG5cclxuLy8vIE1pbmltdW0gd2lkdGggb2YgYSBiYWRnZS5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kYmFkZ2UtbWlud2lkdGg6IDIuMWVtICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgZm9udCBzaXplIGZvciBiYWRnZXMuXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJGJhZGdlLWZvbnQtc2l6ZTogMC42cmVtICFkZWZhdWx0O1xyXG5cclxuLy8vIEdlbmVyYXRlcyB0aGUgYmFzZSBzdHlsZXMgZm9yIGEgYmFkZ2UuXHJcbkBtaXhpbiBiYWRnZSB7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIHBhZGRpbmc6ICRiYWRnZS1wYWRkaW5nO1xyXG4gIG1pbi13aWR0aDogJGJhZGdlLW1pbndpZHRoO1xyXG4gIGZvbnQtc2l6ZTogJGJhZGdlLWZvbnQtc2l6ZTtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG59XHJcblxyXG5AbWl4aW4gZm91bmRhdGlvbi1iYWRnZSB7XHJcbiAgLmJhZGdlIHtcclxuICAgIEBpbmNsdWRlIGJhZGdlO1xyXG5cclxuICAgIGJhY2tncm91bmQ6ICRiYWRnZS1iYWNrZ3JvdW5kO1xyXG4gICAgY29sb3I6ICRiYWRnZS1jb2xvcjtcclxuXHJcbiAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRmb3VuZGF0aW9uLXBhbGV0dGUge1xyXG4gICAgICBAaWYgJG5hbWUgIT0gcHJpbWFyeSB7XHJcbiAgICAgICAgJi4jeyRuYW1lfSB7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3I7XHJcbiAgICAgICAgICBjb2xvcjogZm9yZWdyb3VuZCgkY29sb3IpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXHJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cclxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXHJcblxyXG4vLy8vXHJcbi8vLyBAZ3JvdXAgYnJlYWRjcnVtYnNcclxuLy8vL1xyXG5cclxuLy8vIE1hcmdpbiBhcm91bmQgYSBicmVhZGNydW1icyBjb250YWluZXIuXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJGJyZWFkY3J1bWJzLW1hcmdpbjogMCAwICRnbG9iYWwtbWFyZ2luIDAgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRm9udCBzaXplIG9mIGJyZWFkY3J1bWIgbGlua3MuXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJGJyZWFkY3J1bWJzLWl0ZW0tZm9udC1zaXplOiByZW0tY2FsYygxMSkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gQ29sb3Igb2YgYnJlYWRjcnVtYiBsaW5rcy5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiRicmVhZGNydW1icy1pdGVtLWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcclxuXHJcbi8vLyBDb2xvciBvZiB0aGUgYWN0aXZlIGJyZWFkY3J1bWIgbGluay5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiRicmVhZGNydW1icy1pdGVtLWNvbG9yLWN1cnJlbnQ6ICRibGFjayAhZGVmYXVsdDtcclxuXHJcbi8vLyBPcGFjaXR5IG9mIGRpc2FibGVkIGJyZWFkY3J1bWIgbGlua3MuXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3ItZGlzYWJsZWQ6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcclxuXHJcbi8vLyBNYXJnaW4gYmV0d2VlbiBicmVhZGNydW1iIGl0ZW1zLlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiRicmVhZGNydW1icy1pdGVtLW1hcmdpbjogMC43NXJlbSAhZGVmYXVsdDtcclxuXHJcbi8vLyBJZiBgdHJ1ZWAsIG1ha2VzIGJyZWFkY3J1bWIgbGlua3MgdXBwZXJjYXNlLlxyXG4vLy8gQHR5cGUgQm9vbGVhblxyXG4kYnJlYWRjcnVtYnMtaXRlbS11cHBlcmNhc2U6IHRydWUgIWRlZmF1bHQ7XHJcblxyXG4vLy8gSWYgYHRydWVgLCBhZGRzIGEgc2xhc2ggYmV0d2VlbiBicmVhZGNydW1iIGxpbmtzLlxyXG4vLy8gQHR5cGUgQm9vbGVhblxyXG4kYnJlYWRjcnVtYnMtaXRlbS1zbGFzaDogdHJ1ZSAhZGVmYXVsdDtcclxuXHJcbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBicmVhZGNydW1icyBjb250YWluZXIsIGFsb25nIHdpdGggdGhlIHN0eWxlcyBmb3IgdGhlIGA8bGk+YCBhbmQgYDxhPmAgZWxlbWVudHMgaW5zaWRlIG9mIGl0LlxyXG5AbWl4aW4gYnJlYWRjcnVtYnMtY29udGFpbmVyIHtcclxuICBAaW5jbHVkZSBjbGVhcmZpeDtcclxuICBsaXN0LXN0eWxlOiBub25lO1xyXG4gIG1hcmdpbjogJGJyZWFkY3J1bWJzLW1hcmdpbjtcclxuXHJcbiAgLy8gSXRlbSB3cmFwcGVyXHJcbiAgbGkge1xyXG4gICAgZmxvYXQ6ICN7JGdsb2JhbC1sZWZ0fTtcclxuICAgIGNvbG9yOiAkYnJlYWRjcnVtYnMtaXRlbS1jb2xvci1jdXJyZW50O1xyXG4gICAgZm9udC1zaXplOiAkYnJlYWRjcnVtYnMtaXRlbS1mb250LXNpemU7XHJcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XHJcblxyXG4gICAgQGlmICRicmVhZGNydW1icy1pdGVtLXVwcGVyY2FzZSB7XHJcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICB9XHJcblxyXG4gICAgQGlmICRicmVhZGNydW1icy1pdGVtLXNsYXNoIHtcclxuICAgICAgLy8gTmVlZCB0byBlc2NhcGUgdGhlIGJhY2tzbGFzaFxyXG4gICAgICAkc2xhc2g6IGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gJ2x0cicsICcvJywgJ1xcXFwnKTtcclxuXHJcbiAgICAgICY6bm90KDpsYXN0LWNoaWxkKTo6YWZ0ZXIge1xyXG4gICAgICAgIGNvbG9yOiAkbWVkaXVtLWdyYXk7XHJcbiAgICAgICAgY29udGVudDogJHNsYXNoO1xyXG4gICAgICAgIG1hcmdpbjogMCAkYnJlYWRjcnVtYnMtaXRlbS1tYXJnaW47XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIHRvcDogMXB4O1xyXG4gICAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIEBlbHNlIHtcclxuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRicmVhZGNydW1icy1pdGVtLW1hcmdpbjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIFBhZ2UgbGlua3NcclxuICBhIHtcclxuICAgIGNvbG9yOiAkYnJlYWRjcnVtYnMtaXRlbS1jb2xvcjtcclxuXHJcbiAgICAmOmhvdmVyIHtcclxuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gZm91bmRhdGlvbi1icmVhZGNydW1icyB7XHJcbiAgLmJyZWFkY3J1bWJzIHtcclxuICAgIEBpbmNsdWRlIGJyZWFkY3J1bWJzLWNvbnRhaW5lcjtcclxuXHJcbiAgICAuZGlzYWJsZWQge1xyXG4gICAgICBjb2xvcjogJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3ItZGlzYWJsZWQ7XHJcbiAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcclxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxyXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcclxuXHJcbi8vLy9cclxuLy8vIEBncm91cCBidXR0b24tZ3JvdXBcclxuLy8vL1xyXG5cclxuLy8vIE1hcmdpbiBmb3IgYnV0dG9uIGdyb3Vwcy5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kYnV0dG9uZ3JvdXAtbWFyZ2luOiAxcmVtICFkZWZhdWx0O1xyXG5cclxuLy8vIE1hcmdpbiBiZXR3ZWVuIGJ1dHRvbnMgaW4gYSBidXR0b24gZ3JvdXAuXHJcbi8vLyBAdHlwZSBCb3JkZXJcclxuJGJ1dHRvbmdyb3VwLXNwYWNpbmc6IDFweCAhZGVmYXVsdDtcclxuXHJcbi8vLyBTZWxlY3RvciBmb3IgdGhlIGJ1dHRvbnMgaW5zaWRlIGEgYnV0dG9uIGdyb3VwLlxyXG4vLy8gQHR5cGUgU3RyaW5nXHJcbiRidXR0b25ncm91cC1jaGlsZC1zZWxlY3RvcjogJy5idXR0b24nICFkZWZhdWx0O1xyXG5cclxuLy8vIE1heGltdW0gbnVtYmVyIG9mIGJ1dHRvbnMgdGhhdCBjYW4gYmUgaW4gYW4gZXZlbi13aWR0aCBidXR0b24gZ3JvdXAuXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJGJ1dHRvbmdyb3VwLWV4cGFuZC1tYXg6IDYgIWRlZmF1bHQ7XHJcblxyXG4vLy8gQWRkIHN0eWxlcyBmb3IgYSBidXR0b24gZ3JvdXAgY29udGFpbmVyLlxyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRjaGlsZC1zZWxlY3RvciBbJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yXSAtIFNlbGVjdG9yIGZvciB0aGUgYnV0dG9ucyBpbnNpZGUgYSBidXR0b24gZ3JvdXAuXHJcbkBtaXhpbiBidXR0b24tZ3JvdXAoXHJcbiAgJGNoaWxkLXNlbGVjdG9yOiAkYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3JcclxuKSB7XHJcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XHJcbiAgbWFyZ2luLWJvdHRvbTogJGJ1dHRvbmdyb3VwLW1hcmdpbjtcclxuXHJcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC13cmFwOiBub3dyYXA7XHJcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcclxuICB9XHJcbiAgQGVsc2Uge1xyXG4gICAgZm9udC1zaXplOiAwO1xyXG4gIH1cclxuXHJcbiAgI3skY2hpbGQtc2VsZWN0b3J9IHtcclxuICAgIG1hcmdpbjogMDtcclxuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkYnV0dG9uZ3JvdXAtc3BhY2luZztcclxuICAgIG1hcmdpbi1ib3R0b206ICRidXR0b25ncm91cC1zcGFjaW5nO1xyXG4gICAgZm9udC1zaXplOiBtYXAtZ2V0KCRidXR0b24tc2l6ZXMsIGRlZmF1bHQpO1xyXG5cclxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xyXG4gICAgICBmbGV4OiAwIDAgYXV0bztcclxuICAgIH1cclxuXHJcbiAgICAmOmxhc3QtY2hpbGQge1xyXG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogMDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8vLyBDcmVhdGVzIGEgZnVsbC13aWR0aCBidXR0b24gZ3JvdXAsIG1ha2luZyBlYWNoIGJ1dHRvbiBlcXVhbCB3aWR0aC5cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc2VsZWN0b3IgWyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcl0gLSBTZWxlY3RvciBmb3IgdGhlIGJ1dHRvbnMgaW5zaWRlIGEgYnV0dG9uIGdyb3VwLlxyXG5AbWl4aW4gYnV0dG9uLWdyb3VwLWV4cGFuZChcclxuICAkc2VsZWN0b3I6ICRidXR0b25ncm91cC1jaGlsZC1zZWxlY3RvcixcclxuICAkY291bnQ6IG51bGxcclxuKSB7XHJcbiAgQGlmIG5vdCAkZ2xvYmFsLWZsZXhib3gge1xyXG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IC0kYnV0dG9uZ3JvdXAtc3BhY2luZztcclxuXHJcbiAgICAmOjpiZWZvcmUsXHJcbiAgICAmOjphZnRlciB7XHJcbiAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBzY3NzLWxpbnQ6ZGlzYWJsZSBaZXJvVW5pdFxyXG4gICN7JHNlbGVjdG9yfSB7XHJcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcclxuICAgICAgZmxleDogMSAxIDBweDtcclxuICAgIH1cclxuICAgIEBlbHNlIHtcclxuICAgICAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkYnV0dG9uZ3JvdXAtZXhwYW5kLW1heCB7XHJcbiAgICAgICAgJjpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCgjeyRpfSkge1xyXG4gICAgICAgICAgJiwgJjpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCgjeyRpfSkgfiAjeyRzZWxlY3Rvcn0ge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7cGVyY2VudGFnZSgxIC8gJGkpfSAtICN7JGJ1dHRvbmdyb3VwLXNwYWNpbmd9KTtcclxuICAgICAgICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRidXR0b25ncm91cC1zcGFjaW5nO1xyXG5cclxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcclxuICAgICAgICAgICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJGJ1dHRvbmdyb3VwLXNwYWNpbmcgKiAtJGJ1dHRvbmdyb3VwLWV4cGFuZC1tYXg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8vLyBTdGFja3MgdGhlIGJ1dHRvbnMgaW4gYSBidXR0b24gZ3JvdXAuXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHNlbGVjdG9yIFskYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3JdIC0gU2VsZWN0b3IgZm9yIHRoZSBidXR0b25zIGluc2lkZSB0aGUgYnV0dG9uIGdyb3VwLlxyXG5AbWl4aW4gYnV0dG9uLWdyb3VwLXN0YWNrKFxyXG4gICRzZWxlY3RvcjogJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yXHJcbikge1xyXG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xyXG4gICAgZmxleC13cmFwOiB3cmFwO1xyXG4gIH1cclxuXHJcbiAgI3skc2VsZWN0b3J9IHtcclxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xyXG4gICAgICBmbGV4OiAwIDAgMTAwJTtcclxuICAgIH1cclxuICAgIEBlbHNlIHtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICB9XHJcblxyXG4gICAgJjpsYXN0LWNoaWxkIHtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8vLyBVbi1zdGFja3MgdGhlIGJ1dHRvbnMgaW4gYSBidXR0b24gZ3JvdXAuXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHNlbGVjdG9yIFskYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3JdIC0gU2VsZWN0b3IgZm9yIHRoZSBidXR0b25zIGluc2lkZSB0aGUgYnV0dG9uIGdyb3VwLlxyXG5AbWl4aW4gYnV0dG9uLWdyb3VwLXVuc3RhY2soXHJcbiAgJHNlbGVjdG9yOiAkYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3JcclxuKSB7XHJcbiAgLy8gc2Nzcy1saW50OmRpc2FibGUgWmVyb1VuaXRcclxuICAjeyRzZWxlY3Rvcn0ge1xyXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XHJcbiAgICAgIGZsZXg6IDEgMSAwcHg7XHJcbiAgICB9XHJcbiAgICBAZWxzZSB7XHJcbiAgICAgIHdpZHRoOiBhdXRvO1xyXG4gICAgfVxyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBmb3VuZGF0aW9uLWJ1dHRvbi1ncm91cCB7XHJcbiAgLmJ1dHRvbi1ncm91cCB7XHJcbiAgICBAaW5jbHVkZSBidXR0b24tZ3JvdXA7XHJcblxyXG4gICAgLy8gU2l6ZXNcclxuICAgIEBlYWNoICRzaXplLCAkdmFsdWUgaW4gbWFwLXJlbW92ZSgkYnV0dG9uLXNpemVzLCBkZWZhdWx0KSB7XHJcbiAgICAgICYuI3skc2l6ZX0gI3skYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3J9IHtcclxuICAgICAgICBmb250LXNpemU6ICR2YWx1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIEV2ZW4td2lkdGggR3JvdXBcclxuICAgICYuZXhwYW5kZWQgeyBAaW5jbHVkZSBidXR0b24tZ3JvdXAtZXhwYW5kOyB9XHJcblxyXG4gICAgLy8gQ29sb3JzXHJcbiAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRmb3VuZGF0aW9uLXBhbGV0dGUge1xyXG4gICAgICBAaWYgJGJ1dHRvbi1maWxsICE9IGhvbGxvdyB7XHJcbiAgICAgICAgJi4jeyRuYW1lfSAjeyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcn0ge1xyXG4gICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRjb2xvciwgYXV0bywgYXV0byk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIEBlbHNlIHtcclxuICAgICAgICAmLiN7JG5hbWV9ICN7JGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yfSB7XHJcbiAgICAgICAgICBAaW5jbHVkZSBidXR0b24taG9sbG93O1xyXG4gICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdy1zdHlsZSgkY29sb3IpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYuc3RhY2tlZCxcclxuICAgICYuc3RhY2tlZC1mb3Itc21hbGwsXHJcbiAgICAmLnN0YWNrZWQtZm9yLW1lZGl1bSB7XHJcbiAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ncm91cC1zdGFjaztcclxuICAgIH1cclxuXHJcbiAgICAmLnN0YWNrZWQtZm9yLXNtYWxsIHtcclxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcclxuICAgICAgICBAaW5jbHVkZSBidXR0b24tZ3JvdXAtdW5zdGFjaztcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYuc3RhY2tlZC1mb3ItbWVkaXVtIHtcclxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xyXG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ncm91cC11bnN0YWNrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gc2Nzcy1saW50OmRpc2FibGUgTWVyZ2VhYmxlU2VsZWN0b3JcclxuICAgICYuc3RhY2tlZC1mb3Itc21hbGwuZXhwYW5kZWQge1xyXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuXHJcbiAgICAgICAgI3skYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3J9IHtcclxuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IDA7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcclxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxyXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcclxuXHJcbi8vLy9cclxuLy8vIEBncm91cCBjYWxsb3V0XHJcbi8vLy9cclxuXHJcbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3IuXHJcbi8vLyBAdHlwZSBDb2xvclxyXG4kY2FsbG91dC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBmYWRlIHZhbHVlIGZvciBjYWxsb3V0IGJhY2tncm91bmRzLlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiRjYWxsb3V0LWJhY2tncm91bmQtZmFkZTogODUlICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgYm9yZGVyIHN0eWxlIGZvciBjYWxsb3V0cy5cclxuLy8vIEB0eXBlIExpc3RcclxuJGNhbGxvdXQtYm9yZGVyOiAxcHggc29saWQgcmdiYSgkYmxhY2ssIDAuMjUpICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgYm90dG9tIG1hcmdpbiBmb3IgY2FsbG91dHMuXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJGNhbGxvdXQtbWFyZ2luOiAwIDAgMXJlbSAwICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgaW5uZXIgcGFkZGluZyBmb3IgY2FsbG91dHMuXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJGNhbGxvdXQtcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcclxuXHJcbi8vLyBEZWZhdWx0IGZvbnQgY29sb3IgZm9yIGNhbGxvdXRzLlxyXG4vLy8gQHR5cGUgQ29sb3JcclxuJGNhbGxvdXQtZm9udC1jb2xvcjogJGJvZHktZm9udC1jb2xvciAhZGVmYXVsdDtcclxuXHJcbi8vLyBEZWZhdWx0IGZvbnQgY29sb3IgZm9yIGNhbGxvdXRzLCBpZiB0aGUgY2FsbG91dCBoYXMgYSBkYXJrIGJhY2tncm91bmQuXHJcbi8vLyBAdHlwZSBDb2xvclxyXG4kY2FsbG91dC1mb250LWNvbG9yLWFsdDogJGJvZHktYmFja2dyb3VuZCAhZGVmYXVsdDtcclxuXHJcbi8vLyBEZWZhdWx0IGJvcmRlciByYWRpdXMgZm9yIGNhbGxvdXRzLlxyXG4vLy8gQHR5cGUgQ29sb3JcclxuJGNhbGxvdXQtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcclxuXHJcbi8vLyBBbW91bnQgdG8gdGludCBsaW5rcyB1c2VkIHdpdGhpbiBjb2xvcmVkIHBhbmVscy4gU2V0IHRvIGBmYWxzZWAgdG8gZGlzYWJsZSB0aGlzIGZlYXR1cmUuXHJcbi8vLyBAdHlwZSBOdW1iZXIgfCBCb29sZWFuXHJcbiRjYWxsb3V0LWxpbmstdGludDogMzAlICFkZWZhdWx0O1xyXG5cclxuLy8vIEFkZHMgYmFzaWMgc3R5bGVzIGZvciBhIGNhbGxvdXQsIGluY2x1ZGluZyBwYWRkaW5nIGFuZCBtYXJnaW4uXHJcbkBtaXhpbiBjYWxsb3V0LWJhc2UoKSB7XHJcbiAgbWFyZ2luOiAkY2FsbG91dC1tYXJnaW47XHJcbiAgcGFkZGluZzogJGNhbGxvdXQtcGFkZGluZztcclxuICBib3JkZXI6ICRjYWxsb3V0LWJvcmRlcjtcclxuICBib3JkZXItcmFkaXVzOiAkY2FsbG91dC1yYWRpdXM7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGNvbG9yOiAkY2FsbG91dC1mb250LWNvbG9yO1xyXG5cclxuICAvLyBSZXNwZWN0IHRoZSBwYWRkaW5nLCBmb29sLlxyXG4gID4gOmZpcnN0LWNoaWxkIHtcclxuICAgIG1hcmdpbi10b3A6IDA7XHJcbiAgfVxyXG5cclxuICA+IDpsYXN0LWNoaWxkIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgfVxyXG59XHJcblxyXG4vLy8gR2VuZXJhdGUgcXVpY2sgc3R5bGVzIGZvciBhIGNhbGxvdXQgdXNpbmcgYSBzaW5nbGUgY29sb3IgYXMgYSBiYXNlbGluZS5cclxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGNhbGxvdXQtYmFja2dyb3VuZF0gLSBDb2xvciB0byB1c2UuXHJcbkBtaXhpbiBjYWxsb3V0LXN0eWxlKCRjb2xvcjogJGNhbGxvdXQtYmFja2dyb3VuZCkge1xyXG4gICRiYWNrZ3JvdW5kOiBzY2FsZS1jb2xvcigkY29sb3IsICRsaWdodG5lc3M6ICRjYWxsb3V0LWJhY2tncm91bmQtZmFkZSk7XHJcblxyXG4gIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xyXG59XHJcblxyXG5AbWl4aW4gY2FsbG91dC1zaXplKCRwYWRkaW5nKSB7XHJcbiAgcGFkZGluZy10b3A6ICRwYWRkaW5nO1xyXG4gIHBhZGRpbmctcmlnaHQ6ICRwYWRkaW5nO1xyXG4gIHBhZGRpbmctYm90dG9tOiAkcGFkZGluZztcclxuICBwYWRkaW5nLWxlZnQ6ICRwYWRkaW5nO1xyXG59XHJcblxyXG5cclxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGNhbGxvdXQuXHJcbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRjYWxsb3V0LWJhY2tncm91bmRdIC0gQ29sb3IgdG8gdXNlLlxyXG5AbWl4aW4gY2FsbG91dCgkY29sb3I6ICRjYWxsb3V0LWJhY2tncm91bmQpIHtcclxuICBAaW5jbHVkZSBjYWxsb3V0LWJhc2U7XHJcbiAgQGluY2x1ZGUgY2FsbG91dC1zdHlsZSgkY29sb3IpO1xyXG59XHJcblxyXG5AbWl4aW4gZm91bmRhdGlvbi1jYWxsb3V0IHtcclxuICAuY2FsbG91dCB7XHJcbiAgICBAaW5jbHVkZSBjYWxsb3V0O1xyXG5cclxuICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGZvdW5kYXRpb24tcGFsZXR0ZSB7XHJcbiAgICAgICYuI3skbmFtZX0ge1xyXG4gICAgICAgIEBpbmNsdWRlIGNhbGxvdXQtc3R5bGUoJGNvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYuc21hbGwge1xyXG4gICAgICBAaW5jbHVkZSBjYWxsb3V0LXNpemUoMC41cmVtKTtcclxuICAgIH1cclxuXHJcbiAgICAmLmxhcmdlIHtcclxuICAgICAgQGluY2x1ZGUgY2FsbG91dC1zaXplKDNyZW0pO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXHJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cclxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXHJcblxyXG4vLy8vXHJcbi8vLyBAZ3JvdXAgY2xvc2UtYnV0dG9uXHJcbi8vLy9cclxuXHJcbi8vLyBEZWZhdWx0IHBvc2l0aW9uIG9mIHRoZSBjbG9zZSBidXR0b24uIFRoZSBmaXJzdCB2YWx1ZSBzaG91bGQgYmUgYHJpZ2h0YCBvciBgbGVmdGAsIGFuZCB0aGUgc2Vjb25kIHZhbHVlIHNob3VsZCBiZSBgdG9wYCBvciBgYm90dG9tYC5cclxuLy8vIEB0eXBlIExpc3RcclxuJGNsb3NlYnV0dG9uLXBvc2l0aW9uOiByaWdodCB0b3AgIWRlZmF1bHQ7XHJcblxyXG4vLy8gUmlnaHQgKG9yIGxlZnQpIG9mZnNldCBmb3IgYSBjbG9zZSBidXR0b24uXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJGNsb3NlYnV0dG9uLW9mZnNldC1ob3Jpem9udGFsOiAxcmVtICFkZWZhdWx0O1xyXG5cclxuLy8vIFRvcCAob3IgYm90dG9tKSBvZmZzZXQgZm9yIGEgY2xvc2UgYnV0dG9uLlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiRjbG9zZWJ1dHRvbi1vZmZzZXQtdmVydGljYWw6IDAuNXJlbSAhZGVmYXVsdDtcclxuXHJcbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBvZiB0aGUgY2xvc2UgYnV0dG9uLlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiRjbG9zZWJ1dHRvbi1zaXplOiAyZW0gIWRlZmF1bHQ7XHJcblxyXG4vLy8gVGhlIGxpbmUtaGVpZ2h0IG9mIHRoZSBjbG9zZSBidXR0b24uIEl0IGFmZmVjdHMgdGhlIHNwYWNpbmcgb2YgdGhlIGVsZW1lbnQuXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJGNsb3NlYnV0dG9uLWxpbmVoZWlnaHQ6IDEgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBjb2xvciBvZiB0aGUgY2xvc2UgYnV0dG9uLlxyXG4vLy8gQHR5cGUgQ29sb3JcclxuJGNsb3NlYnV0dG9uLWNvbG9yOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgY29sb3Igb2YgdGhlIGNsb3NlIGJ1dHRvbiB3aGVuIGJlaW5nIGhvdmVyZWQgb24uXHJcbi8vLyBAdHlwZSBDb2xvclxyXG4kY2xvc2VidXR0b24tY29sb3ItaG92ZXI6ICRibGFjayAhZGVmYXVsdDtcclxuXHJcbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBjbG9zZSBidXR0b24sIHVzaW5nIHRoZSBzdHlsZXMgaW4gdGhlIHNldHRpbmdzIHZhcmlhYmxlcy5cclxuQG1peGluIGNsb3NlLWJ1dHRvbiB7XHJcbiAgJHg6IG50aCgkY2xvc2VidXR0b24tcG9zaXRpb24sIDEpO1xyXG4gICR5OiBudGgoJGNsb3NlYnV0dG9uLXBvc2l0aW9uLCAyKTtcclxuXHJcbiAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBjb2xvcjogJGNsb3NlYnV0dG9uLWNvbG9yO1xyXG4gICN7JHh9OiAkY2xvc2VidXR0b24tb2Zmc2V0LWhvcml6b250YWw7XHJcbiAgI3skeX06ICRjbG9zZWJ1dHRvbi1vZmZzZXQtdmVydGljYWw7XHJcbiAgZm9udC1zaXplOiAkY2xvc2VidXR0b24tc2l6ZTtcclxuICBsaW5lLWhlaWdodDogJGNsb3NlYnV0dG9uLWxpbmVoZWlnaHQ7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG5cclxuICAmOmhvdmVyLFxyXG4gICY6Zm9jdXMge1xyXG4gICAgY29sb3I6ICRjbG9zZWJ1dHRvbi1jb2xvci1ob3ZlcjtcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBmb3VuZGF0aW9uLWNsb3NlLWJ1dHRvbiB7XHJcbiAgLmNsb3NlLWJ1dHRvbiB7XHJcbiAgICBAaW5jbHVkZSBjbG9zZS1idXR0b247XHJcbiAgfVxyXG59XHJcbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcclxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxyXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcclxuXHJcbi8vLy9cclxuLy8vIEBncm91cCBtZW51XHJcbi8vLy9cclxuXHJcbi8vLyBNYXJnaW4gb2YgYSBtZW51LlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiRtZW51LW1hcmdpbjogMCAhZGVmYXVsdDtcclxuXHJcbi8vLyBMZWZ0LWhhbmQgbWFyZ2luIG9mIGEgbmVzdGVkIG1lbnUuXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJG1lbnUtbWFyZ2luLW5lc3RlZDogMXJlbSAhZGVmYXVsdDtcclxuXHJcbi8vLyBQYWRkaW5nIGZvciBpdGVtcyBpbiBhIG1lbnUuXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJG1lbnUtaXRlbS1wYWRkaW5nOiAwLjdyZW0gMXJlbSAhZGVmYXVsdDtcclxuXHJcbi8vLyBUZXh0IGNvbG9yIG9mIGFuIGFjdGl2ZSBtZW51IGl0ZW0uXHJcbi8vLyBAdHlwZSBDb2xvclxyXG4kbWVudS1pdGVtLWNvbG9yLWFjdGl2ZTogJHdoaXRlICFkZWZhdWx0O1xyXG5cclxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgYW4gYWN0aXZlIG1lbnUgaXRlbS5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiRtZW51LWl0ZW0tYmFja2dyb3VuZC1hY3RpdmU6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgcHJpbWFyeSkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gU3BhY2luZyBiZXR3ZWVuIGFuIGljb24gYW5kIHRleHQgaW4gYSBtZW51IGl0ZW0uXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJG1lbnUtaWNvbi1zcGFjaW5nOiAwLjI1cmVtICFkZWZhdWx0O1xyXG5cclxuLy8vIENyZWF0ZXMgdGhlIGJhc2Ugc3R5bGVzIGZvciBhIE1lbnUuXHJcbkBtaXhpbiBtZW51LWJhc2Uge1xyXG4gIG1hcmdpbjogJG1lbnUtbWFyZ2luO1xyXG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcclxuXHJcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgfVxyXG5cclxuICAvLyBMaXN0IGl0ZW1zIGFyZSB0YWJsZSBjZWxsIHRvIGFsbG93IGZvciB2ZXJ0aWNhbCBhbGlnbm1lbnRcclxuICA+IGxpIHtcclxuICAgIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcclxuXHJcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcclxuICAgICAgZmxleDogMCAwIGF1dG87XHJcbiAgICB9XHJcbiAgICBAZWxzZSB7XHJcbiAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XHJcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBSZXNldCBsaW5lIGhlaWdodCB0byBtYWtlIHRoZSBoZWlnaHQgb2YgdGhlIG92ZXJhbGwgaXRlbSBlYXNpZXIgdG8gY2FsY3VsYXRlXHJcbiAgPiBsaSA+IGEge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBwYWRkaW5nOiAkbWVudS1pdGVtLXBhZGRpbmc7XHJcbiAgICBsaW5lLWhlaWdodDogMTtcclxuICB9XHJcblxyXG4gIC8vIFJlc2V0IHN0eWxlcyBvZiBpbm5lciBlbGVtZW50c1xyXG4gIGlucHV0LFxyXG4gIGEsXHJcbiAgYnV0dG9uIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgfVxyXG59XHJcblxyXG4vLy8gRXhwYW5kcyB0aGUgaXRlbXMgb2YgYSBNZW51LCBzbyBlYWNoIGl0ZW0gaXMgdGhlIHNhbWUgd2lkdGguXHJcbkBtaXhpbiBtZW51LWV4cGFuZCB7XHJcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XHJcbiAgICAvLyBzY3NzLWxpbnQ6ZGlzYWJsZSBaZXJvVW5pdFxyXG4gICAgPiBsaSB7XHJcbiAgICAgIGZsZXg6IDEgMSAwcHg7XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBlbHNlIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgZGlzcGxheTogdGFibGU7XHJcbiAgICB0YWJsZS1sYXlvdXQ6IGZpeGVkO1xyXG4gIH1cclxufVxyXG5cclxuLy8vIFNldHMgdGhlIGRpcmVjdGlvbiBvZiBhIE1lbnUuXHJcbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkaXIgW2hvcml6b250YWxdIC0gRGlyZWN0aW9uIG9mIHRoZSBNZW51LiBDYW4gYmUgYGhvcml6b250YWxgIG9yIGB2ZXJ0aWNhbGAuXHJcbkBtaXhpbiBtZW51LWRpcmVjdGlvbigkZGlyOiBob3Jpem9udGFsKSB7XHJcbiAgQGlmICRkaXIgPT0gaG9yaXpvbnRhbCB7XHJcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcclxuICAgICAgZmxleC13cmFwOiBub3dyYXA7XHJcblxyXG4gICAgICA+IGxpIHtcclxuICAgICAgICBmbGV4OiAwIDAgYXV0bztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgQGVsc2Uge1xyXG4gICAgICA+IGxpIHtcclxuICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBlbHNlIGlmICRkaXIgPT0gdmVydGljYWwge1xyXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XHJcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcclxuXHJcbiAgICAgID4gbGkge1xyXG4gICAgICAgIGZsZXg6IDAgMCAxMDAlO1xyXG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgICAgfVxyXG5cclxuICAgICAgPiBsaSAgPiBhIHtcclxuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIEBlbHNlIHtcclxuICAgICAgPiBsaSB7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgQGVsc2Uge1xyXG4gICAgQHdhcm4gJ1RoZSBkaXJlY3Rpb24gdXNlZCBmb3IgbWVudS1kaXJlY3Rpb24oKSBtdXN0IGJlIGhvcml6b250YWwgb3IgdmVydGljYWwuJztcclxuICB9XHJcbn1cclxuXHJcbi8vLyBDcmVhdGVzIGEgc2ltcGxlIE1lbnUsIHdoaWNoIGhhcyBubyBwYWRkaW5nIG9yIGhvdmVyIHN0YXRlLlxyXG5AbWl4aW4gbWVudS1zaW1wbGUge1xyXG4gIGxpIHtcclxuICAgIGxpbmUtaGVpZ2h0OiAxO1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IGdldC1zaWRlKCRtZW51LWl0ZW0tcGFkZGluZywgJGdsb2JhbC1yaWdodCk7XHJcbiAgfVxyXG5cclxuICBhIHtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgfVxyXG59XHJcblxyXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgbmVzdGVkIE1lbnUsIGJ5IGFkZGluZyBgbWFyZ2luLWxlZnRgIHRvIHRoZSBtZW51LlxyXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHBhZGRpbmcgW2F1dG9dIC0gTGVuZ3RoIG9mIHRoZSBtYXJnaW4uXHJcbkBtaXhpbiBtZW51LW5lc3RlZCgkbWFyZ2luOiAkbWVudS1tYXJnaW4tbmVzdGVkKSB7XHJcbiAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJG1hcmdpbjtcclxufVxyXG5cclxuLy8vIEFkZHMgc3VwcG9ydCBmb3IgaWNvbnMgdG8gTWVudSBpdGVtcy5cclxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHBvc2l0aW9uIFtzaWRlXSAtIFBvc2l0aW9uaW5nIGZvciBpY29ucy4gQ2FuIGJlIGBzaWRlYCAobGVmdCwgb3IgcmlnaHQgb24gUlRMKSBvciBgdG9wYC5cclxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGJhc2UgW3RydWVdIC0gU2V0IHRvIGBmYWxzZWAgdG8gcHJldmVudCB0aGUgc2hhcmVkIENTUyBiZXR3ZWVuIHNpZGUtIGFuZCB0b3AtYWxpZ25lZCBpY29ucyBmcm9tIGJlaW5nIHByaW50ZWQuIFNldCB0aGlzIHRvIGBmYWxzZWAgaWYgeW91J3JlIGNhbGxpbmcgdGhlIG1peGluIG11bHRpcGxlIHRpbWVzIG9uIHRoZSBzYW1lIGVsZW1lbnQuXHJcbkBtaXhpbiBtZW51LWljb25zKCRwb3NpdGlvbjogc2lkZSwgJGJhc2U6IHRydWUpIHtcclxuICBAaWYgJGJhc2Uge1xyXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XHJcbiAgICAgID4gbGkgPiBhIHtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBAZWxzZSB7XHJcbiAgICAgID4gbGkgPiBhIHtcclxuICAgICAgICBpbWcsXHJcbiAgICAgICAgaSxcclxuICAgICAgICBzdmcge1xyXG4gICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuXHJcbiAgICAgICAgICArIHNwYW4ge1xyXG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQGlmICRwb3NpdGlvbiA9PSBzaWRlIHtcclxuICAgID4gbGkgPiBhIHtcclxuICAgICAgQGlmICRnbG9iYWwtZmxleGJveCB7XHJcbiAgICAgICAgZmxleC1mbG93OiByb3cgbm93cmFwO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpbWcsXHJcbiAgICAgIGksXHJcbiAgICAgIHN2ZyB7XHJcbiAgICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRtZW51LWljb24tc3BhY2luZztcclxuXHJcbiAgICAgICAgQGlmIG5vdCAkZ2xvYmFsLWZsZXhib3gge1xyXG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gdG9wIHtcclxuICAgID4gbGkgPiBhIHtcclxuICAgICAgQGlmICRnbG9iYWwtZmxleGJveCB7XHJcbiAgICAgICAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwO1xyXG4gICAgICB9XHJcbiAgICAgIEBlbHNlIHtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGltZyxcclxuICAgICAgaSxcclxuICAgICAgc3ZnIHtcclxuICAgICAgICBAaWYgbm90ICRnbG9iYWwtZmxleGJveCB7XHJcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgIG1hcmdpbjogMCBhdXRvICRtZW51LWljb24tc3BhY2luZztcclxuICAgICAgICB9XHJcbiAgICAgICAgQGVsc2Uge1xyXG4gICAgICAgICAgYWxpZ24tc2VsZjogc3RyZXRjaDtcclxuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRtZW51LWljb24tc3BhY2luZztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBtZW51LXRleHQge1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIGNvbG9yOiBpbmhlcml0O1xyXG4gIGxpbmUtaGVpZ2h0OiAxO1xyXG4gIHBhZGRpbmctdG9wOiAwO1xyXG4gIHBhZGRpbmctYm90dG9tOiAwO1xyXG4gIHBhZGRpbmc6ICRtZW51LWl0ZW0tcGFkZGluZztcclxufVxyXG5cclxuQG1peGluIGZvdW5kYXRpb24tbWVudSB7XHJcbiAgLm1lbnUge1xyXG4gICAgQGluY2x1ZGUgbWVudS1iYXNlO1xyXG4gICAgQGluY2x1ZGUgbWVudS1pY29ucztcclxuXHJcbiAgICAvLyBPcmllbnRhdGlvblxyXG4gICAgQGluY2x1ZGUgbWVudS1kaXJlY3Rpb24oaG9yaXpvbnRhbCk7XHJcblxyXG4gICAgJi52ZXJ0aWNhbCB7XHJcbiAgICAgIEBpbmNsdWRlIG1lbnUtZGlyZWN0aW9uKHZlcnRpY2FsKTtcclxuICAgIH1cclxuXHJcbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcclxuICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcclxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XHJcbiAgICAgICAgICAmLiN7JHNpemV9LWhvcml6b250YWwge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBtZW51LWRpcmVjdGlvbihob3Jpem9udGFsKTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAmLiN7JHNpemV9LXZlcnRpY2FsIHtcclxuICAgICAgICAgICAgQGluY2x1ZGUgbWVudS1kaXJlY3Rpb24odmVydGljYWwpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIFNpbXBsZVxyXG4gICAgJi5zaW1wbGUge1xyXG4gICAgICBAaW5jbHVkZSBtZW51LXNpbXBsZTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBBbGlnbiByaWdodFxyXG4gICAgJi5hbGlnbi0jeyRnbG9iYWwtcmlnaHR9IHtcclxuICAgICAgQGlmICRnbG9iYWwtZmxleGJveCB7XHJcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcclxuICAgICAgfVxyXG4gICAgICBAZWxzZSB7XHJcbiAgICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XHJcblxyXG4gICAgICAgID4gbGkge1xyXG4gICAgICAgICAgZmxvYXQ6ICRnbG9iYWwtcmlnaHQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gRXZlbi13aWR0aFxyXG4gICAgJi5leHBhbmRlZCB7XHJcbiAgICAgIEBpbmNsdWRlIG1lbnUtZXhwYW5kO1xyXG5cclxuICAgICAgPiBsaTpmaXJzdC1jaGlsZDpsYXN0LWNoaWxkIHtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIFZlcnRpY2FsIGljb25zXHJcbiAgICAmLmljb24tdG9wIHtcclxuICAgICAgQGluY2x1ZGUgbWVudS1pY29ucyh0b3AsICRiYXNlOiBmYWxzZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gTmVzdGluZ1xyXG4gICAgJi5uZXN0ZWQge1xyXG4gICAgICBAaW5jbHVkZSBtZW51LW5lc3RlZDtcclxuICAgIH1cclxuXHJcbiAgICAvLyBBY3RpdmUgc3RhdGVcclxuICAgIC5hY3RpdmUgPiBhIHtcclxuICAgICAgY29sb3I6ICRtZW51LWl0ZW0tY29sb3ItYWN0aXZlO1xyXG4gICAgICBiYWNrZ3JvdW5kOiAkbWVudS1pdGVtLWJhY2tncm91bmQtYWN0aXZlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLm1lbnUtdGV4dCB7XHJcbiAgICBAaW5jbHVkZSBtZW51LXRleHQ7XHJcbiAgfVxyXG5cclxuICAvLyBBbGlnbiBjZW50ZXJcclxuICAubWVudS1jZW50ZXJlZCB7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblxyXG4gICAgPiAubWVudSB7XHJcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIFByZXZlbnQgRk9VQyB3aGVuIHVzaW5nIHRoZSBSZXNwb25zaXZlIE1lbnUgcGx1Z2luXHJcbiAgLm5vLWpzIFtkYXRhLXJlc3BvbnNpdmUtbWVudV0gdWwge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICB9XHJcbn1cclxuIiwiQG1peGluIGZvdW5kYXRpb24tbWVudS1pY29uIHtcclxuICAubWVudS1pY29uIHtcclxuICAgIEBpbmNsdWRlIGhhbWJ1cmdlcigkY29sb3I6ICR0aXRsZWJhci1pY29uLWNvbG9yLCAkY29sb3ItaG92ZXI6ICR0aXRsZWJhci1pY29uLWNvbG9yLWhvdmVyKTtcclxuICB9XHJcblxyXG4gIC5tZW51LWljb24uZGFyayB7XHJcbiAgICBAaW5jbHVkZSBoYW1idXJnZXI7XHJcbiAgfVxyXG59XHJcbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcclxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxyXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcclxuXHJcbi8vLy9cclxuLy8vIEBncm91cCBkcmlsbGRvd25cclxuLy8vL1xyXG5cclxuLy8vIFRyYW5zaXRpb24gcHJvcGVydHkgdG8gdXNlIGZvciBhbmltYXRpbmcgbWVudXMuXHJcbi8vLyBAdHlwZSBUcmFuc2l0aW9uXHJcbiRkcmlsbGRvd24tdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzIGxpbmVhciAhZGVmYXVsdDtcclxuXHJcbi8vLyBBZGRzIGFycm93cyB0byBkcmlsbGRvd24gaXRlbXMgd2l0aCBzdWJtZW51cywgYXMgd2VsbCBhcyB0aGUgYmFjayBidXR0b24uXHJcbi8vLyBAdHlwZSBCb29sZWFuXHJcbiRkcmlsbGRvd24tYXJyb3dzOiB0cnVlICFkZWZhdWx0O1xyXG5cclxuLy8vIFNldHMgZHJpbGxkb3duIGFycm93IGNvbG9yIGlmIGFycm93IGlzIHVzZWQuXHJcbi8vLyBAdHlwZSBDb2xvclxyXG4kZHJpbGxkb3duLWFycm93LWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcclxuXHJcbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciBkcmlsbGRvd24gc3VibWVudXMuXHJcbi8vLyBAdHlwZSBDb2xvclxyXG4kZHJpbGxkb3duLWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcclxuXHJcbkBtaXhpbiBmb3VuZGF0aW9uLWRyaWxsZG93bi1tZW51IHtcclxuICAvLyBBcHBsaWVkIHRvIHRoZSBNZW51IGNvbnRhaW5lclxyXG4gIC5pcy1kcmlsbGRvd24ge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuXHJcbiAgICBsaSB7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBBcHBsaWVkIHRvIG5lc3RlZCA8dWw+c1xyXG4gIC5pcy1kcmlsbGRvd24tc3VibWVudSB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IDA7XHJcbiAgICAjeyRnbG9iYWwtbGVmdH06IDEwMCU7XHJcbiAgICB6LWluZGV4OiAtMTtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgYmFja2dyb3VuZDogJGRyaWxsZG93bi1iYWNrZ3JvdW5kO1xyXG4gICAgdHJhbnNpdGlvbjogJGRyaWxsZG93bi10cmFuc2l0aW9uO1xyXG5cclxuICAgICYuaXMtYWN0aXZlIHtcclxuICAgICAgei1pbmRleDogMTtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IGx0ciwgLTEwMCUsIDEwMCUpKTtcclxuICAgIH1cclxuXHJcbiAgICAmLmlzLWNsb3Npbmcge1xyXG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBsdHIsIDEwMCUsIC0xMDAlKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAaWYgJGRyaWxsZG93bi1hcnJvd3Mge1xyXG4gICAgLmlzLWRyaWxsZG93bi1zdWJtZW51LXBhcmVudCA+IGEge1xyXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG4gICAgICAmOjphZnRlciB7XHJcbiAgICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKDZweCwgJGRyaWxsZG93bi1hcnJvdy1jb2xvciwgJGdsb2JhbC1yaWdodCk7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIHRvcDogNTAlO1xyXG4gICAgICAgIG1hcmdpbi10b3A6IC02cHg7XHJcbiAgICAgICAgI3skZ2xvYmFsLXJpZ2h0fTogMXJlbTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5qcy1kcmlsbGRvd24tYmFjayA+IGE6OmJlZm9yZSB7XHJcbiAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSg2cHgsICRkcmlsbGRvd24tYXJyb3ctY29sb3IsICRnbG9iYWwtbGVmdCk7XHJcbiAgICAgIGJvcmRlci0jeyRnbG9iYWwtbGVmdH0td2lkdGg6IDA7XHJcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IDAuNzVyZW07IC8vIENyZWF0ZXMgc3BhY2UgYmV0d2VlbiB0aGUgYXJyb3cgYW5kIHRoZSB0ZXh0XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcclxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxyXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcclxuXHJcbi8vLy9cclxuLy8vIEBncm91cCBkcm9wZG93blxyXG4vLy8vXHJcblxyXG4vLy8gUGFkZGluZyBmb3IgZHJvcGRvd24gcGFuZXMuXHJcbi8vLyBAdHlwZSBMaXN0XHJcbiRkcm9wZG93bi1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xyXG5cclxuLy8vIEJvcmRlciBmb3IgZHJvcGRvd24gcGFuZXMuXHJcbi8vLyBAdHlwZSBMaXN0XHJcbiRkcm9wZG93bi1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRm9udCBzaXplIGZvciBkcm9wZG93biBwYW5lcy5cclxuLy8vIEB0eXBlIExpc3RcclxuJGRyb3Bkb3duLWZvbnQtc2l6ZTogMXJlbSAhZGVmYXVsdDtcclxuXHJcbi8vLyBXaWR0aCBmb3IgZHJvcGRvd24gcGFuZXMuXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJGRyb3Bkb3duLXdpZHRoOiAzMDBweCAhZGVmYXVsdDtcclxuXHJcbi8vLyBCb3JkZXIgcmFkaXVzIGRyb3Bkb3duIHBhbmVzLlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiRkcm9wZG93bi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xyXG5cclxuLy8vIFNpemVzIGZvciBkcm9wZG93biBwYW5lcy4gRWFjaCBzaXplIGlzIGEgQ1NTIGNsYXNzIHlvdSBjYW4gYXBwbHkuXHJcbi8vLyBAdHlwZSBNYXBcclxuJGRyb3Bkb3duLXNpemVzOiAoXHJcbiAgdGlueTogMTAwcHgsXHJcbiAgc21hbGw6IDIwMHB4LFxyXG4gIGxhcmdlOiA0MDBweCxcclxuKSAhZGVmYXVsdDtcclxuXHJcbi8vLyBBcHBsaWVzIHN0eWxlcyBmb3IgYSBiYXNpYyBkcm9wZG93bi5cclxuQG1peGluIGRyb3Bkb3duLWNvbnRhaW5lciB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJvZHktYmFja2dyb3VuZDtcclxuICBib3JkZXI6ICRkcm9wZG93bi1ib3JkZXI7XHJcbiAgYm9yZGVyLXJhZGl1czogJGRyb3Bkb3duLXJhZGl1cztcclxuICBkaXNwbGF5OiBibG9jaztcclxuICBmb250LXNpemU6ICRkcm9wZG93bi1mb250LXNpemU7XHJcbiAgcGFkZGluZzogJGRyb3Bkb3duLXBhZGRpbmc7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcclxuICB3aWR0aDogJGRyb3Bkb3duLXdpZHRoO1xyXG4gIHotaW5kZXg6IDEwO1xyXG5cclxuICAmLmlzLW9wZW4ge1xyXG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBmb3VuZGF0aW9uLWRyb3Bkb3duIHtcclxuICAuZHJvcGRvd24tcGFuZSB7XHJcbiAgICBAaW5jbHVkZSBkcm9wZG93bi1jb250YWluZXI7XHJcbiAgfVxyXG5cclxuICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJGRyb3Bkb3duLXNpemVzIHtcclxuICAgIC5kcm9wZG93bi1wYW5lLiN7JG5hbWV9IHtcclxuICAgICAgd2lkdGg6ICRzaXplO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXHJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cclxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXHJcblxyXG4vLy8vXHJcbi8vLyBAZ3JvdXAgZHJvcGRvd24tbWVudVxyXG4vLy8vXHJcblxyXG4vLy8gRW5hYmxlcyBhcnJvd3MgZm9yIGl0ZW1zIHdpdGggZHJvcGRvd24gbWVudXMuXHJcbi8vLyBAdHlwZSBCb29sZWFuXHJcbiRkcm9wZG93bm1lbnUtYXJyb3dzOiB0cnVlICFkZWZhdWx0O1xyXG5cclxuLy8vIFNldHMgZHJvcGRvd24gbWVudSBhcnJvdyBjb2xvciBpZiBhcnJvdyBpcyB1c2VkLlxyXG4vLy8gQHR5cGUgQ29sb3JcclxuJGRyb3Bkb3dubWVudS1hcnJvdy1jb2xvcjogJGFuY2hvci1jb2xvciAhZGVmYXVsdDtcclxuXHJcbi8vLyBNaW5pbXVtIHdpZHRoIG9mIGRyb3Bkb3duIHN1Yi1tZW51cy5cclxuLy8vIEB0eXBlIExlbmd0aFxyXG4kZHJvcGRvd25tZW51LW1pbi13aWR0aDogMjAwcHggIWRlZmF1bHQ7XHJcblxyXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgZHJvcGRvd25zLlxyXG4vLy8gQHR5cGUgQ29sb3JcclxuJGRyb3Bkb3dubWVudS1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XHJcblxyXG4vLy8gQm9yZGVyIGZvciBkcm9wZG93biBzdWItbWVudXMuXHJcbi8vLyBAdHlwZSBMaXN0XHJcbiRkcm9wZG93bm1lbnUtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xyXG5cclxuLy8gQm9yZGVyIHdpZHRoIGZvciBkcm9wZG93biBzdWItbWVudXMuXHJcbi8vIFVzZWQgdG8gYWRqdXN0IHRvcCBtYXJnaW4gb2YgYSBzdWItbWVudSBpZiBhIGJvcmRlciBpcyB1c2VkLlxyXG4vLyBAdHlwZSBMZW5ndGhcclxuJGRyb3Bkb3dubWVudS1ib3JkZXItd2lkdGg6IG50aCgkZHJvcGRvd25tZW51LWJvcmRlciwgMSk7XHJcblxyXG5AbWl4aW4gbGVmdC1yaWdodC1hcnJvd3Mge1xyXG4gID4gYTo6YWZ0ZXIge1xyXG4gICAgI3skZ2xvYmFsLXJpZ2h0fTogMTRweDtcclxuICAgIG1hcmdpbi10b3A6IC0zcHg7XHJcbiAgfVxyXG5cclxuICAmLm9wZW5zLWxlZnQgPiBhOjphZnRlciB7XHJcbiAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoNXB4LCAkZHJvcGRvd25tZW51LWFycm93LWNvbG9yLCBsZWZ0KTtcclxuICB9XHJcblxyXG4gICYub3BlbnMtcmlnaHQgPiBhOjphZnRlciB7XHJcbiAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoNXB4LCAkZHJvcGRvd25tZW51LWFycm93LWNvbG9yLCByaWdodCk7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gZHJvcGRvd24tbWVudS1kaXJlY3Rpb24oJGRpcjogaG9yaXpvbnRhbCkge1xyXG4gIEBpZiAkZGlyID09IGhvcml6b250YWwge1xyXG4gICAgPiBsaS5vcGVucy1sZWZ0IHtcclxuICAgICAgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XHJcbiAgICAgICAgbGVmdDogYXV0bztcclxuICAgICAgICByaWdodDogMDtcclxuICAgICAgICB0b3A6IDEwMCU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICA+IGxpLm9wZW5zLXJpZ2h0IHtcclxuICAgICAgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XHJcbiAgICAgICAgcmlnaHQ6IGF1dG87XHJcbiAgICAgICAgbGVmdDogMDtcclxuICAgICAgICB0b3A6IDEwMCU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBAaWYgJGRyb3Bkb3dubWVudS1hcnJvd3Mge1xyXG4gICAgICA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYSB7XHJcbiAgICAgICAgcGFkZGluZy0jeyRnbG9iYWwtcmlnaHR9OiAxLjVyZW07XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIge1xyXG4gICAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSg1cHgsICRkcm9wZG93bm1lbnUtYXJyb3ctY29sb3IsIGRvd24pO1xyXG4gICAgICAgICN7JGdsb2JhbC1yaWdodH06IDVweDtcclxuICAgICAgICBtYXJnaW4tdG9wOiAtMnB4O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBlbHNlIGlmICRkaXIgPT0gdmVydGljYWwge1xyXG4gICAgPiBsaSB7XHJcbiAgICAgIC5pcy1kcm9wZG93bi1zdWJtZW51IHtcclxuICAgICAgICB0b3A6IDA7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICYub3BlbnMtbGVmdCB7XHJcbiAgICAgICAgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XHJcbiAgICAgICAgICBsZWZ0OiBhdXRvO1xyXG4gICAgICAgICAgcmlnaHQ6IDEwMCU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICAmLm9wZW5zLXJpZ2h0IHtcclxuICAgICAgICA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcclxuICAgICAgICAgIHJpZ2h0OiBhdXRvO1xyXG4gICAgICAgICAgbGVmdDogMTAwJTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIEBpZiAkZHJvcGRvd25tZW51LWFycm93cyB7XHJcbiAgICAgICAgQGluY2x1ZGUgbGVmdC1yaWdodC1hcnJvd3M7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgQGVsc2Uge1xyXG4gICAgQHdhcm4gJ1RoZSBkaXJlY3Rpb24gdXNlZCBmb3IgZHJvcGRvd24tbWVudS1kaXJlY3Rpb24oKSBtdXN0IGJlIGhvcml6b250YWwgb3IgdmVydGljYWwuJztcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBmb3VuZGF0aW9uLWRyb3Bkb3duLW1lbnUge1xyXG4gIC5kcm9wZG93bi5tZW51IHtcclxuICAgIEBpbmNsdWRlIGRyb3Bkb3duLW1lbnUtZGlyZWN0aW9uKGhvcml6b250YWwpO1xyXG5cclxuICAgIGEge1xyXG4gICAgICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XHJcbiAgICB9XHJcblxyXG4gICAgLm5vLWpzICYgdWwge1xyXG4gICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG5cclxuICAgICYudmVydGljYWwge1xyXG4gICAgICBAaW5jbHVkZSBkcm9wZG93bi1tZW51LWRpcmVjdGlvbih2ZXJ0aWNhbCk7XHJcbiAgICB9XHJcblxyXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XHJcbiAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XHJcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xyXG4gICAgICAgICAgJi4jeyRzaXplfS1ob3Jpem9udGFsIHtcclxuICAgICAgICAgICAgQGluY2x1ZGUgZHJvcGRvd24tbWVudS1kaXJlY3Rpb24oaG9yaXpvbnRhbCk7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgJi4jeyRzaXplfS12ZXJ0aWNhbCB7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIGRyb3Bkb3duLW1lbnUtZGlyZWN0aW9uKHZlcnRpY2FsKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLmFsaWduLXJpZ2h0IHtcclxuICAgICAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUuZmlyc3Qtc3ViIHtcclxuICAgICAgICB0b3A6IDEwMCU7XHJcbiAgICAgICAgbGVmdDogYXV0bztcclxuICAgICAgICByaWdodDogMDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmlzLWRyb3Bkb3duLW1lbnUudmVydGljYWwge1xyXG4gICAgd2lkdGg6IDEwMHB4O1xyXG5cclxuICAgICYuYWxpZ24tcmlnaHQge1xyXG4gICAgICBmbG9hdDogcmlnaHQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuICAgIGE6OmFmdGVyIHtcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICB0b3A6IDUwJTtcclxuICAgICAgI3skZ2xvYmFsLXJpZ2h0fTogNXB4O1xyXG4gICAgICBtYXJnaW4tdG9wOiAtMnB4O1xyXG4gICAgfVxyXG5cclxuICAgICYub3BlbnMtaW5uZXIgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XHJcblxyXG4gICAgICB0b3A6IDEwMCU7XHJcbiAgICAgIEBpZiAkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09ICdydGwnIHtcclxuICAgICAgICByaWdodDogYXV0bztcclxuICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgbGVmdDogYXV0bztcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYub3BlbnMtbGVmdCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcclxuICAgICAgbGVmdDogYXV0bztcclxuICAgICAgcmlnaHQ6IDEwMCU7XHJcbiAgICB9XHJcblxyXG4gICAgJi5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcclxuICAgICAgcmlnaHQ6IGF1dG87XHJcbiAgICAgIGxlZnQ6IDEwMCU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuaXMtZHJvcGRvd24tc3VibWVudSB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgI3skZ2xvYmFsLWxlZnR9OiAxMDAlO1xyXG4gICAgbWluLXdpZHRoOiAkZHJvcGRvd25tZW51LW1pbi13aWR0aDtcclxuICAgIHotaW5kZXg6IDE7XHJcbiAgICBiYWNrZ3JvdW5kOiAkZHJvcGRvd25tZW51LWJhY2tncm91bmQ7XHJcbiAgICBib3JkZXI6ICRkcm9wZG93bm1lbnUtYm9yZGVyO1xyXG5cclxuICAgIC5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCB7XHJcbiAgICAgIEBpZiAkZHJvcGRvd25tZW51LWFycm93cyB7XHJcbiAgICAgICAgQGluY2x1ZGUgbGVmdC1yaWdodC1hcnJvd3M7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBAaWYgKHR5cGUtb2YoJGRyb3Bkb3dubWVudS1ib3JkZXItd2lkdGgpID09ICdudW1iZXInKSB7XHJcbiAgICAgIC5pcy1kcm9wZG93bi1zdWJtZW51IHtcclxuICAgICAgICBtYXJnaW4tdG9wOiAoLSRkcm9wZG93bm1lbnUtYm9yZGVyLXdpZHRoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgID4gbGkge1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBbVE9ET10gQ3V0IGJhY2sgc3BlY2lmaWNpdHlcclxuICAgIC8vIHNjc3MtbGludDpkaXNhYmxlIFNlbGVjdG9yRGVwdGhcclxuICAgIC8vJjpub3QoLmpzLWRyb3Bkb3duLW5vaG92ZXIpID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50OmhvdmVyID4gJiwgLy8gd2h5IGlzIHRoaXMgbGluZSBuZWVkZWQ/IE9wZW5pbmcgaXMgaGFuZGxlZCBieSBKUyBhbmQgdGhpcyBjYXVzZXMgc29tZSB1Z2x5IGZsaWNrZXJpbmcgd2hlbiB0aGUgc3ViIGlzIHJlLXBvc2l0aW9uZWQgYXV0b21hdGljYWxseS4uLlxyXG4gICAgJi5qcy1kcm9wZG93bi1hY3RpdmUge1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxyXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXHJcbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxyXG5cclxuLy8vL1xyXG4vLy8gQGdyb3VwIGZsZXgtdmlkZW9cclxuLy8vL1xyXG5cclxuLy8vIE1hcmdpbiBiZWxvdyBhIGZsZXggdmlkZW8gY29udGFpbmVyLlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiRmbGV4dmlkZW8tbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMTYpICFkZWZhdWx0O1xyXG5cclxuLy8vIFBhZGRpbmcgdXNlZCB0byBjcmVhdGUgYSA0OjMgYXNwZWN0IHJhdGlvLlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiRmbGV4dmlkZW8tcmF0aW86IDQgYnkgMyAhZGVmYXVsdDtcclxuXHJcbi8vLyBQYWRkaW5nIHVzZWQgdG8gY3JlYXRlIGEgMTY6OSBhc3BlY3QgcmF0aW8uXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJGZsZXh2aWRlby1yYXRpby13aWRlc2NyZWVuOiAxNiBieSA5ICFkZWZhdWx0O1xyXG5cclxuLy8vIENyZWF0ZXMgYSBwZXJjZW50YWdlIGhlaWdodCB0aGF0IGNhbiBiZSB1c2VkIGFzIHBhZGRpbmcgaW4gYSBmbGV4IHZpZGVvIGNvbnRhaW5lci5cclxuLy8vIEBwYXJhbSB7TGlzdH0gJHJhdGlvIC0gUmF0aW8gdG8gdXNlIHRvIGNhbGN1bGF0ZSB0aGUgaGVpZ2h0LCBmb3JtYXR0ZWQgYXMgYHggYnkgeWAuXHJcbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IEEgcGVyY2VudGFnZSB2YWx1ZSB0aGF0IGNhbiBiZSB1c2VkIGFzIHRoZSBgcGFkZGluZy1ib3R0b21gIHBhcmFtZXRlciBvZiBhIGZsZXggdmlkZW8gY29udGFpbmVyLlxyXG5AZnVuY3Rpb24gZmxleC12aWRlbygkcmF0aW8pIHtcclxuICAkdzogbnRoKCRyYXRpbywgMSk7XHJcbiAgJGg6IG50aCgkcmF0aW8sIDMpO1xyXG4gIEByZXR1cm4gJGggLyAkdyAqIDEwMCU7XHJcbn1cclxuXHJcbi8vLyBDcmVhdGVzIGEgZmxleCB2aWRlbyBjb250YWluZXIuXHJcbi8vLyBAcGFyYW0ge0xpc3R9ICRyYXRpbyBbJGZsZXh2aWRlby1yYXRpb10gLSBSYXRpbyB0byB1c2UgZm9yIHRoZSBjb250YWluZXIsIGZvcm1hdHRlZCBhcyBgeCBieSB5YC5cclxuQG1peGluIGZsZXgtdmlkZW8oJHJhdGlvOiAkZmxleHZpZGVvLXJhdGlvKSB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGhlaWdodDogMDtcclxuICBwYWRkaW5nLWJvdHRvbTogZmxleC12aWRlbygkcmF0aW8pO1xyXG4gIG1hcmdpbi1ib3R0b206ICRmbGV4dmlkZW8tbWFyZ2luLWJvdHRvbTtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG5cclxuICBpZnJhbWUsXHJcbiAgb2JqZWN0LFxyXG4gIGVtYmVkLFxyXG4gIHZpZGVvIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogMDtcclxuICAgICN7JGdsb2JhbC1sZWZ0fTogMDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIGZvdW5kYXRpb24tZmxleC12aWRlbyB7XHJcbiAgLmZsZXgtdmlkZW8ge1xyXG4gICAgQGluY2x1ZGUgZmxleC12aWRlbztcclxuXHJcbiAgICAmLndpZGVzY3JlZW4ge1xyXG4gICAgICBwYWRkaW5nLWJvdHRvbTogZmxleC12aWRlbygkZmxleHZpZGVvLXJhdGlvLXdpZGVzY3JlZW4pO1xyXG4gICAgfVxyXG5cclxuICAgICYudmltZW8ge1xyXG4gICAgICBwYWRkaW5nLXRvcDogMDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxyXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXHJcbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxyXG5cclxuLy8vL1xyXG4vLy8gQGdyb3VwIGxhYmVsXHJcbi8vLy9cclxuXHJcbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3IgZm9yIGxhYmVscy5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiRsYWJlbC1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcclxuXHJcbi8vLyBEZWZhdWx0IHRleHQgY29sb3IgZm9yIGxhYmVscy5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiRsYWJlbC1jb2xvcjogZm9yZWdyb3VuZCgkbGFiZWwtYmFja2dyb3VuZCkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIGxhYmVscy5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kbGFiZWwtZm9udC1zaXplOiAwLjhyZW0gIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGluc2lkZSBsYWJlbHMuXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJGxhYmVsLXBhZGRpbmc6IDAuMzMzMzNyZW0gMC41cmVtICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgcmFkaXVzIG9mIGxhYmVscy5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kbGFiZWwtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcclxuXHJcbi8vLyBHZW5lcmF0ZXMgYmFzZSBzdHlsZXMgZm9yIGEgbGFiZWwuXHJcbkBtaXhpbiBsYWJlbCB7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIHBhZGRpbmc6ICRsYWJlbC1wYWRkaW5nO1xyXG4gIGZvbnQtc2l6ZTogJGxhYmVsLWZvbnQtc2l6ZTtcclxuICBsaW5lLWhlaWdodDogMTtcclxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gIGN1cnNvcjogZGVmYXVsdDtcclxuICBib3JkZXItcmFkaXVzOiAkbGFiZWwtcmFkaXVzO1xyXG59XHJcblxyXG5AbWl4aW4gZm91bmRhdGlvbi1sYWJlbCB7XHJcbiAgLmxhYmVsIHtcclxuICAgIEBpbmNsdWRlIGxhYmVsO1xyXG5cclxuICAgIGJhY2tncm91bmQ6ICRsYWJlbC1iYWNrZ3JvdW5kO1xyXG4gICAgY29sb3I6ICRsYWJlbC1jb2xvcjtcclxuXHJcbiAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRmb3VuZGF0aW9uLXBhbGV0dGUge1xyXG4gICAgICBAaWYgJG5hbWUgIT0gcHJpbWFyeSB7XHJcbiAgICAgICAgJi4jeyRuYW1lfSB7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3I7XHJcbiAgICAgICAgICBjb2xvcjogZm9yZWdyb3VuZCgkY29sb3IpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXHJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cclxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXHJcblxyXG4vLy8vXHJcbi8vLyBAZ3JvdXAgbWVkaWEtb2JqZWN0XHJcbi8vLy9cclxuXHJcbi8vLyBCb3R0b20gbWFyZ2luIG9mIGEgbWVkaWEgb2JqZWN0LlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiRtZWRpYW9iamVjdC1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcclxuXHJcbi8vLyBMZWZ0IGFuZCByaWdodCBwYWRkaW5nIG9uIHNlY3Rpb25zIHdpdGhpbiBhIG1lZGlhIG9iamVjdC5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kbWVkaWFvYmplY3Qtc2VjdGlvbi1wYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmcgIWRlZmF1bHQ7XHJcblxyXG4vLy8gV2lkdGggb2YgaW1hZ2VzIHdpdGhpbiBhIG1lZGlhIG9iamVjdCwgd2hlbiB0aGUgb2JqZWN0IGlzIHN0YWNrZWQgdmVydGljYWxseS4gU2V0IHRvICdhdXRvJyB0byB1c2UgdGhlIGltYWdlJ3MgbmF0dXJhbCB3aWR0aC5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kbWVkaWFvYmplY3QtaW1hZ2Utd2lkdGgtc3RhY2tlZDogMTAwJSAhZGVmYXVsdDtcclxuXHJcbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBtZWRpYSBvYmplY3QgY29udGFpbmVyLlxyXG5AbWl4aW4gbWVkaWEtb2JqZWN0LWNvbnRhaW5lciB7XHJcbiAgbWFyZ2luLWJvdHRvbTogJG1lZGlhb2JqZWN0LW1hcmdpbi1ib3R0b207XHJcbiAgZGlzcGxheTogaWYoJGdsb2JhbC1mbGV4Ym94LCBmbGV4LCBibG9jayk7XHJcblxyXG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xyXG4gICAgZmxleC13cmFwOiBub3dyYXA7XHJcbiAgfVxyXG59XHJcblxyXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHNlY3Rpb25zIHdpdGhpbiBhIG1lZGlhIG9iamVjdC5cclxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkcGFkZGluZyBbJG1lZGlhb2JqZWN0LXNlY3Rpb24tcGFkZGluZ10gLSBQYWRkaW5nIGJldHdlZW4gc2VjdGlvbnMuXHJcbkBtaXhpbiBtZWRpYS1vYmplY3Qtc2VjdGlvbigkcGFkZGluZzogJG1lZGlhb2JqZWN0LXNlY3Rpb24tcGFkZGluZykge1xyXG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xyXG4gICAgZmxleDogMCAxIGF1dG87XHJcbiAgfVxyXG4gIEBlbHNlIHtcclxuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XHJcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xyXG4gIH1cclxuXHJcbiAgJjpmaXJzdC1jaGlsZCB7XHJcbiAgICBwYWRkaW5nLSN7JGdsb2JhbC1yaWdodH06ICRwYWRkaW5nO1xyXG4gIH1cclxuXHJcbiAgJjpsYXN0LWNoaWxkOm5vdCg6bnRoLWNoaWxkKDIpKSB7XHJcbiAgICBwYWRkaW5nLSN7JGdsb2JhbC1sZWZ0fTogJHBhZGRpbmc7XHJcbiAgfVxyXG5cclxuICA+IDpsYXN0LWNoaWxkIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgfVxyXG59XHJcblxyXG4vLy8gQWRkcyBzdHlsZXMgdG8gc3RhY2sgc2VjdGlvbnMgb2YgYSBtZWRpYSBvYmplY3QuIEFwcGx5IHRoaXMgdG8gdGhlIHNlY3Rpb24gZWxlbWVudHMsIG5vdCB0aGUgY29udGFpbmVyLlxyXG5AbWl4aW4gbWVkaWEtb2JqZWN0LXN0YWNrIHtcclxuICBwYWRkaW5nOiAwO1xyXG4gIHBhZGRpbmctYm90dG9tOiAkbWVkaWFvYmplY3Qtc2VjdGlvbi1wYWRkaW5nO1xyXG5cclxuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcclxuICAgIGZsZXgtYmFzaXM6IDEwMCU7XHJcbiAgICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgfVxyXG4gIEBlbHNlIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gIH1cclxuXHJcbiAgaW1nIHtcclxuICAgIHdpZHRoOiAkbWVkaWFvYmplY3QtaW1hZ2Utd2lkdGgtc3RhY2tlZDtcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBmb3VuZGF0aW9uLW1lZGlhLW9iamVjdCB7XHJcbiAgLm1lZGlhLW9iamVjdCB7XHJcbiAgICBAaW5jbHVkZSBtZWRpYS1vYmplY3QtY29udGFpbmVyO1xyXG5cclxuICAgIGltZyB7XHJcbiAgICAgIG1heC13aWR0aDogbm9uZTtcclxuICAgIH1cclxuXHJcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcclxuICAgICAgJi5zdGFjay1mb3ItI3skLXpmLXplcm8tYnJlYWtwb2ludH0ge1xyXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJC16Zi16ZXJvLWJyZWFrcG9pbnQgb25seSkge1xyXG4gICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYuc3RhY2stZm9yLSN7JC16Zi16ZXJvLWJyZWFrcG9pbnR9IC5tZWRpYS1vYmplY3Qtc2VjdGlvbiB7XHJcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJC16Zi16ZXJvLWJyZWFrcG9pbnQgb25seSkge1xyXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhLW9iamVjdC1zdGFjaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLm1lZGlhLW9iamVjdC1zZWN0aW9uIHtcclxuICAgIEBpbmNsdWRlIG1lZGlhLW9iamVjdC1zZWN0aW9uO1xyXG5cclxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xyXG4gICAgICAvLyBzY3NzLWxpbnQ6ZGlzYWJsZSBaZXJvVW5pdFxyXG4gICAgICAmLm1haW4tc2VjdGlvbiB7XHJcbiAgICAgICAgZmxleDogMSAxIDBweDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgQGVsc2Uge1xyXG4gICAgICAmLm1pZGRsZSB7XHJcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgJi5ib3R0b20ge1xyXG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxyXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXHJcbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxyXG5cclxuLy8vL1xyXG4vLy8gQGdyb3VwIG9mZi1jYW52YXNcclxuLy8vL1xyXG5cclxuLy8vIFdpZHRoIG9mIGFuIG9mZi1jYW52YXMgbWVudS5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kb2ZmY2FudmFzLXNpemU6IDI1MHB4ICFkZWZhdWx0O1xyXG5cclxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgYW4gb2ZmLWNhbnZhcyBtZW51LlxyXG4vLy8gQHR5cGUgQ29sb3JcclxuJG9mZmNhbnZhcy1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcclxuXHJcbi8vLyBaLWluZGV4IG9mIGFuIG9mZi1jYW52YXMgbWVudS5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kb2ZmY2FudmFzLXppbmRleDogLTEgIWRlZmF1bHQ7XHJcblxyXG4vLy8gTGVuZ3RoIG9mIHRoZSBhbmltYXRpb24gb24gYW4gb2ZmLWNhbnZhcyBtZW51LlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiRvZmZjYW52YXMtdHJhbnNpdGlvbi1sZW5ndGg6IDAuNXMgIWRlZmF1bHQ7XHJcblxyXG4vLy8gVGltaW5nIGZ1bmN0aW9uIG9mIHRoZSBhbmltYXRpb24gb24gYW4gb2ZmLWNhbnZhcyBtZW51LlxyXG4vLy8gQHR5cGUgS2V5d29yZFxyXG4kb2ZmY2FudmFzLXRyYW5zaXRpb24tdGltaW5nOiBlYXNlICFkZWZhdWx0O1xyXG5cclxuLy8vIElmIGB0cnVlYCwgYSByZXZlYWxlZCBvZmYtY2FudmFzIHdpbGwgYmUgZml4ZWQtcG9zaXRpb24sIGFuZCBzY3JvbGwgd2l0aCB0aGUgc2NyZWVuLlxyXG4kb2ZmY2FudmFzLWZpeGVkLXJldmVhbDogdHJ1ZSAhZGVmYXVsdDtcclxuXHJcbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciB0aGUgb3ZlcmxheSB0aGF0IGFwcGVhcnMgd2hlbiBhbiBvZmYtY2FudmFzIG1lbnUgaXMgb3Blbi5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiRvZmZjYW52YXMtZXhpdC1iYWNrZ3JvdW5kOiByZ2JhKCR3aGl0ZSwgMC4yNSkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gQ1NTIGNsYXNzIHVzZWQgZm9yIHRoZSBtYWluIGNvbnRlbnQgYXJlYS4gVGhlIG9mZi1jYW52YXMgbWl4aW5zIHVzZSB0aGlzIHRvIHRhcmdldCB0aGUgcGFnZSBib2R5LlxyXG4kbWFpbmNvbnRlbnQtY2xhc3M6ICdvZmYtY2FudmFzLWNvbnRlbnQnICFkZWZhdWx0O1xyXG5cclxuLy8vIEJveCBzaGFkb3cgdG8gcGxhY2UgdW5kZXIgdGhlIG1haW4gY29udGVudCBhcmVhLiBUaGlzIHNoYWRvdyBvdmVybGFwcyB0aGUgb2ZmLWNhbnZhcyBtZW51cy5cclxuLy8vIEB0eXBlIFNoYWRvd1xyXG4kbWFpbmNvbnRlbnQtc2hhZG93OiAwIDAgMTBweCByZ2JhKCRibGFjaywgMC41KSAhZGVmYXVsdDtcclxuXHJcbi8vLyBBZGRzIGJhc2VsaW5lIHN0eWxlcyBmb3Igb2ZmLWNhbnZhcy4gVGhpcyBDU1MgaXMgcmVxdWlyZWQgdG8gbWFrZSB0aGUgb3RoZXIgcGllY2VzIHdvcmsuXHJcbkBtaXhpbiBvZmYtY2FudmFzLWJhc2ljcyB7XHJcbiAgLy8gRXh0cmEgcHJvcGVydGllcyBuZWVkZWQgb24gPGh0bWw+IGFuZCA8Ym9keT4gdG8gbWFrZSBvZmYtY2FudmFzIHdvcmtcclxuICBodG1sLFxyXG4gIGJvZHkge1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gIH1cclxuXHJcbiAgLm9mZi1jYW52YXMtd3JhcHBlciB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcclxuICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiBhdXRvO1xyXG4gIH1cclxuXHJcbiAgLm9mZi1jYW52YXMtd3JhcHBlci1pbm5lciB7XHJcbiAgICBAaW5jbHVkZSBjbGVhcmZpeDtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtICRvZmZjYW52YXMtdHJhbnNpdGlvbi1sZW5ndGggJG9mZmNhbnZhcy10cmFuc2l0aW9uLXRpbWluZztcclxuICB9XHJcblxyXG4gIC8vIENvbnRhaW5lciBmb3IgcGFnZSBjb250ZW50XHJcbiAgLm9mZi1jYW52YXMtY29udGVudCxcclxuICAuI3skbWFpbmNvbnRlbnQtY2xhc3N9IHtcclxuICAgIG1pbi1oZWlnaHQ6IDEwMCU7XHJcbiAgICBiYWNrZ3JvdW5kOiAkYm9keS1iYWNrZ3JvdW5kO1xyXG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtICRvZmZjYW52YXMtdHJhbnNpdGlvbi1sZW5ndGggJG9mZmNhbnZhcy10cmFuc2l0aW9uLXRpbWluZztcclxuICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcclxuICAgIHotaW5kZXg6IDE7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogMC4xcHg7IC8vIFByZXZlbnRzIG1hcmdpbiBjb2xsYXBzaW5nLCB3aGljaCB3b3VsZCByZXZlYWwgdGhlIGJveCBzaGFkb3cgb2YgdGhlIHdyYXBwZXJcclxuXHJcbiAgICBAaWYgaGFzLXZhbHVlKCRtYWluY29udGVudC1zaGFkb3cpIHtcclxuICAgICAgYm94LXNoYWRvdzogJG1haW5jb250ZW50LXNoYWRvdztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIENsaWNrLXRvLWV4aXQgb3ZlcmxheSAoZ2VuZXJhdGVkIGJ5IEphdmFTY3JpcHQpXHJcbiAgLmpzLW9mZi1jYW52YXMtZXhpdCB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgYmFja2dyb3VuZDogJG9mZmNhbnZhcy1leGl0LWJhY2tncm91bmQ7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kICRvZmZjYW52YXMtdHJhbnNpdGlvbi1sZW5ndGggJG9mZmNhbnZhcy10cmFuc2l0aW9uLXRpbWluZztcclxuICB9XHJcbn1cclxuXHJcbi8vLyBBZGRzIGJhc2ljIHN0eWxlcyBmb3IgYW4gb2ZmLWNhbnZhcyBtZW51LlxyXG5AbWl4aW4gb2ZmLWNhbnZhcy1iYXNlIHtcclxuICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIGJhY2tncm91bmQ6ICRvZmZjYW52YXMtYmFja2dyb3VuZDtcclxuICB6LWluZGV4OiAkb2ZmY2FudmFzLXppbmRleDtcclxuICBtYXgtaGVpZ2h0OiAxMDAlO1xyXG4gIG92ZXJmbG93LXk6IGF1dG87XHJcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xyXG59XHJcblxyXG5AbWl4aW4gb2ZmLWNhbnZhcy1wb3NpdGlvbihcclxuICAkcG9zaXRpb246IGxlZnQsXHJcbiAgJHNpemU6ICRvZmZjYW52YXMtc2l6ZSxcclxuICAkZml4ZWQ6IGZhbHNlXHJcbikge1xyXG4gIEBpZiAkcG9zaXRpb24gPT0gbGVmdCB7XHJcbiAgICBsZWZ0OiAtJHNpemU7XHJcbiAgICB0b3A6IDA7XHJcbiAgICB3aWR0aDogJHNpemU7XHJcbiAgfVxyXG4gIEBlbHNlIGlmICRwb3NpdGlvbiA9PSByaWdodCB7XHJcbiAgICByaWdodDogLSRzaXplO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgd2lkdGg6ICRzaXplO1xyXG4gIH1cclxuXHJcbiAgLy8gR2VuZXJhdGVzIGFuIG9wZW4gc3RhdGUgY2xhc3MgdGhhdCBtYXRjaGVzIHRoZSB3aWR0aCBvZiB0aGUgbWVudVxyXG4gIEBhdC1yb290IHtcclxuICAgIC5pcy1vcGVuLSN7JHBvc2l0aW9ufSB7XHJcbiAgICAgIEBpZiAkcG9zaXRpb24gPT0gbGVmdCB7XHJcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKCRzaXplKTtcclxuICAgICAgfVxyXG4gICAgICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gcmlnaHQge1xyXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtJHNpemUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vLy8gQWRkcyBzdHlsZXMgdGhhdCByZXZlYWwgYW4gb2ZmLWNhbnZhcyBtZW51LlxyXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkcG9zaXRpb24gW2xlZnRdIC0gUG9zaXRpb24gb2YgdGhlIG9mZi1jYW52YXMgbWVudSBiZWluZyByZXZlYWxlZC5cclxuQG1peGluIG9mZi1jYW52YXMtcmV2ZWFsKFxyXG4gICRwb3NpdGlvbjogbGVmdFxyXG4pIHtcclxuICAjeyRwb3NpdGlvbn06IDA7XHJcbiAgei1pbmRleDogYXV0bztcclxuXHJcbiAgQGlmICRvZmZjYW52YXMtZml4ZWQtcmV2ZWFsIHtcclxuICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICB9XHJcblxyXG4gICYgfiAuI3skbWFpbmNvbnRlbnQtY2xhc3N9IHtcclxuICAgIG1hcmdpbi0jeyRwb3NpdGlvbn06ICRvZmZjYW52YXMtc2l6ZTtcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBmb3VuZGF0aW9uLW9mZi1jYW52YXMge1xyXG4gIEBpbmNsdWRlIG9mZi1jYW52YXMtYmFzaWNzO1xyXG5cclxuICAvLyBPZmYtY2FudmFzIGNvbnRhaW5lclxyXG4gIC5vZmYtY2FudmFzIHtcclxuICAgIEBpbmNsdWRlIG9mZi1jYW52YXMtYmFzZTtcclxuXHJcbiAgICAmLnBvc2l0aW9uLWxlZnQgICB7IEBpbmNsdWRlIG9mZi1jYW52YXMtcG9zaXRpb24obGVmdCk7IH1cclxuICAgICYucG9zaXRpb24tcmlnaHQgIHsgQGluY2x1ZGUgb2ZmLWNhbnZhcy1wb3NpdGlvbihyaWdodCk7IH1cclxuICB9XHJcblxyXG4gIC8vIFJldmVhbCBvZmYtY2FudmFzIG1lbnUgb24gbGFyZ2VyIHNjcmVlbnNcclxuICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRicmVha3BvaW50LWNsYXNzZXMge1xyXG4gICAgQGlmICRuYW1lICE9ICQtemYtemVyby1icmVha3BvaW50IHtcclxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xyXG4gICAgICAgIC5wb3NpdGlvbi1sZWZ0LnJldmVhbC1mb3ItI3skbmFtZX0ge1xyXG4gICAgICAgICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1yZXZlYWwobGVmdCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAucG9zaXRpb24tcmlnaHQucmV2ZWFsLWZvci0jeyRuYW1lfSB7XHJcbiAgICAgICAgICBAaW5jbHVkZSBvZmYtY2FudmFzLXJldmVhbChyaWdodCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcclxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxyXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcclxuXHJcbi8vLy9cclxuLy8vIEBncm91cCBvcmJpdFxyXG4vLy8vXHJcblxyXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgT3JiaXQncyBidWxsZXRzLlxyXG4vLy8gQHR5cGUgQ29sb3JcclxuJG9yYml0LWJ1bGxldC1iYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBhY3RpdmUgY29sb3IgZm9yIE9yYml0J3MgYnVsbGV0cy5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiRvcmJpdC1idWxsZXQtYmFja2dyb3VuZC1hY3RpdmU6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBkaWFtZXRlciBmb3IgT3JiaXQncyBidWxsZXRzLlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiRvcmJpdC1idWxsZXQtZGlhbWV0ZXI6IDEuMnJlbSAhZGVmYXVsdDtcclxuXHJcbi8vLyBEZWZhdWx0IG1hcmdpbiBiZXR3ZWVuIE9yYml0J3MgYnVsbGV0cy5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kb3JiaXQtYnVsbGV0LW1hcmdpbjogMC4xcmVtICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgZGlzdGFuY2UgZnJvbSBzbGlkZSByZWdpb24gZm9yIE9yYml0J3MgYnVsbGV0cy5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kb3JiaXQtYnVsbGV0LW1hcmdpbi10b3A6IDAuOHJlbSAhZGVmYXVsdDtcclxuXHJcbi8vLyBEZWZhdWx0IGJvdHRvbSBtYXJnaW4gZnJvbSBPcmJpdCdzIGJ1bGxldHMgdG8gd2hhdGV2ZXIgY29udGVudCBtYXkgbHVyayBiZWxvdyBpdC5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kb3JiaXQtYnVsbGV0LW1hcmdpbi1ib3R0b206IDAuOHJlbSAhZGVmYXVsdDtcclxuXHJcbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3IgZm9yIE9yYml0J3MgY2FwdGlvbi5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiRvcmJpdC1jYXB0aW9uLWJhY2tncm91bmQ6IHJnYmEoJGJsYWNrLCAwLjUpICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgcGFkZGluZyBmb3IgT3JiaXQncyBjYXB0aW9uLlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiRvcmJpdC1jYXB0aW9uLXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBPcmJpdCdzIGNvbnRyb2xzIHdoZW4gaG92ZXJlZC5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiRvcmJpdC1jb250cm9sLWJhY2tncm91bmQtaG92ZXI6IHJnYmEoJGJsYWNrLCAwLjUpICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgcGFkZGluZyBmb3IgT3JiaXQncyBjb250cm9scy5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kb3JiaXQtY29udHJvbC1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgei1pbmRleCBmb3IgT3JiaXQncyBjb250cm9scy5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kb3JiaXQtY29udHJvbC16aW5kZXg6IDEwICFkZWZhdWx0O1xyXG5cclxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgb3V0ZXIgT3JiaXQgd3JhcHBlci4gVGhlc2Ugc3R5bGVzIGFyZSB1c2VkIG9uIHRoZSBgLm9yYml0YCBjbGFzcy5cclxuQG1peGluIG9yYml0LXdyYXBwZXIge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxufVxyXG5cclxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgaW5uZXIgT3JiaXQgc2xpZGUgY29udGFpbmVyLiBUaGVzZSBzdHlsZXMgYXJlIHVzZWQgb24gdGhlIGAub3JiaXQtY29udGFpbmVyYCBjbGFzcy5cclxuQG1peGluIG9yYml0LWNvbnRhaW5lciB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIG1hcmdpbjogMDtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbn1cclxuXHJcbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIGluZGl2aWR1YWwgc2xpZGVzIG9mIGFuIE9yYml0IHNsaWRlci4gVGhlc2Ugc3R5bGVzIGFyZSB1c2VkIG9uIHRoZSBgLm9yYml0LXNsaWRlYCBjbGFzcy5cclxuQG1peGluIG9yYml0LXNsaWRlIHtcclxuICB3aWR0aDogMTAwJTtcclxuICBtYXgtaGVpZ2h0OiAxMDAlO1xyXG5cclxuICAmLm5vLW1vdGlvbnVpIHtcclxuICAgICYuaXMtYWN0aXZlIHtcclxuICAgICAgdG9wOiAwO1xyXG4gICAgICBsZWZ0OiAwO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuQG1peGluIG9yYml0LWZpZ3VyZSB7XHJcbiAgbWFyZ2luOiAwO1xyXG59XHJcblxyXG5AbWl4aW4gb3JiaXQtaW1hZ2Uge1xyXG4gIG1hcmdpbjogMDtcclxuICB3aWR0aDogMTAwJTtcclxuICBtYXgtd2lkdGg6IDEwMCU7XHJcbn1cclxuXHJcbi8vLyBBZGRzIHN0eWxlcyBmb3IgYW4gb3JiaXQgc2xpZGUgY2FwdGlvbi4gVGhlc2Ugc3R5bGVzIGFyZSB1c2VkIG9uIHRoZSBgLm9yYml0LWNhcHRpb25gIGNsYXNzLlxyXG5AbWl4aW4gb3JiaXQtY2FwdGlvbiB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIGJvdHRvbTogMDtcclxuICB3aWR0aDogMTAwJTtcclxuICBwYWRkaW5nOiAkb3JiaXQtY2FwdGlvbi1wYWRkaW5nO1xyXG4gIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgY29sb3I6IGZvcmVncm91bmQoJG9yYml0LWNhcHRpb24tYmFja2dyb3VuZCk7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJG9yYml0LWNhcHRpb24tYmFja2dyb3VuZDtcclxufVxyXG5cclxuLy8vIEFkZHMgYmFzZSBzdHlsZXMgZm9yIHRoZSBuZXh0L3ByZXZpb3VzIGJ1dHRvbnMgaW4gYW4gT3JiaXQgc2xpZGVyLiBUaGVzZSBzdHlsZXMgYXJlIHNoYXJlZCBiZXR3ZWVuIHRoZSBgLm9yYml0LW5leHRgIGFuZCBgLm9yYml0LXByZXZpb3VzYCBjbGFzc2VzIGluIHRoZSBkZWZhdWx0IENTUy5cclxuQG1peGluIG9yYml0LWNvbnRyb2wge1xyXG4gIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcclxuICBAaW5jbHVkZSB2ZXJ0aWNhbC1jZW50ZXI7XHJcbiAgei1pbmRleDogJG9yYml0LWNvbnRyb2wtemluZGV4O1xyXG4gIHBhZGRpbmc6ICRvcmJpdC1jb250cm9sLXBhZGRpbmc7XHJcbiAgY29sb3I6ICR3aGl0ZTtcclxuXHJcbiAgJjpob3ZlcixcclxuICAmOmFjdGl2ZSxcclxuICAmOmZvY3VzIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRvcmJpdC1jb250cm9sLWJhY2tncm91bmQtaG92ZXI7XHJcbiAgfVxyXG59XHJcblxyXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBPcmJpdCBwcmV2aW91cyBidXR0b24uIFRoZXNlIHN0eWxlcyBhcmUgdXNlZCBvbiB0aGUgYC5vcmJpdC1wcmV2aW91c2AgY2xhc3MuXHJcbkBtaXhpbiBvcmJpdC1wcmV2aW91cyB7XHJcbiAgI3skZ2xvYmFsLWxlZnR9OiAwO1xyXG59XHJcblxyXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBPcmJpdCBuZXh0IGJ1dHRvbi4gVGhlc2Ugc3R5bGVzIGFyZSB1c2VkIG9uIHRoZSBgLm9yYml0LW5leHRgIGNsYXNzLlxyXG5AbWl4aW4gb3JiaXQtbmV4dCB7XHJcbiAgI3skZ2xvYmFsLWxlZnR9OiBhdXRvO1xyXG4gICN7JGdsb2JhbC1yaWdodH06IDA7XHJcbn1cclxuXHJcbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBjb250YWluZXIgb2YgT3JiaXQgYnVsbGV0cy4gLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgT3JiaXQgcHJldmlvdXMgYnV0dG9uLiBUaGVzZSBzdHlsZXMgYXJlIHVzZWQgb24gdGhlIGAub3JiaXQtYnVsbGV0c2AgY2xhc3MuXHJcbkBtaXhpbiBvcmJpdC1idWxsZXRzIHtcclxuICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIG1hcmdpbi10b3A6ICRvcmJpdC1idWxsZXQtbWFyZ2luLXRvcDtcclxuICBtYXJnaW4tYm90dG9tOiAkb3JiaXQtYnVsbGV0LW1hcmdpbi1ib3R0b207XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG5cclxuICBidXR0b24ge1xyXG4gICAgd2lkdGg6ICRvcmJpdC1idWxsZXQtZGlhbWV0ZXI7XHJcbiAgICBoZWlnaHQ6ICRvcmJpdC1idWxsZXQtZGlhbWV0ZXI7XHJcbiAgICBtYXJnaW46ICRvcmJpdC1idWxsZXQtbWFyZ2luO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJG9yYml0LWJ1bGxldC1iYWNrZ3JvdW5kO1xyXG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG5cclxuICAgICY6aG92ZXIge1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkb3JiaXQtYnVsbGV0LWJhY2tncm91bmQtYWN0aXZlO1xyXG4gICAgfVxyXG5cclxuICAgICYuaXMtYWN0aXZlIHtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG9yYml0LWJ1bGxldC1iYWNrZ3JvdW5kLWFjdGl2ZTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBmb3VuZGF0aW9uLW9yYml0IHtcclxuICAub3JiaXQge1xyXG4gICAgQGluY2x1ZGUgb3JiaXQtd3JhcHBlcjtcclxuICB9XHJcblxyXG4gIC5vcmJpdC1jb250YWluZXIge1xyXG4gICAgQGluY2x1ZGUgb3JiaXQtY29udGFpbmVyO1xyXG4gIH1cclxuXHJcbiAgLm9yYml0LXNsaWRlIHtcclxuICAgIEBpbmNsdWRlIG9yYml0LXNsaWRlO1xyXG4gIH1cclxuXHJcbiAgLm9yYml0LWZpZ3VyZSB7XHJcbiAgICBAaW5jbHVkZSBvcmJpdC1maWd1cmU7XHJcbiAgfVxyXG5cclxuICAub3JiaXQtaW1hZ2Uge1xyXG4gICAgQGluY2x1ZGUgb3JiaXQtaW1hZ2U7XHJcbiAgfVxyXG5cclxuICAub3JiaXQtY2FwdGlvbiB7XHJcbiAgICBAaW5jbHVkZSBvcmJpdC1jYXB0aW9uO1xyXG4gIH1cclxuXHJcbiAgJW9yYml0LWNvbnRyb2wge1xyXG4gICAgQGluY2x1ZGUgb3JiaXQtY29udHJvbDtcclxuICB9XHJcblxyXG4gIC5vcmJpdC1wcmV2aW91cyB7XHJcbiAgICBAZXh0ZW5kICVvcmJpdC1jb250cm9sO1xyXG4gICAgQGluY2x1ZGUgb3JiaXQtcHJldmlvdXM7XHJcbiAgfVxyXG5cclxuICAub3JiaXQtbmV4dCB7XHJcbiAgICBAZXh0ZW5kICVvcmJpdC1jb250cm9sO1xyXG4gICAgQGluY2x1ZGUgb3JiaXQtbmV4dDtcclxuICB9XHJcblxyXG4gIC5vcmJpdC1idWxsZXRzIHtcclxuICAgIEBpbmNsdWRlIG9yYml0LWJ1bGxldHM7XHJcbiAgfVxyXG59XHJcbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcclxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxyXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcclxuXHJcbi8vLy9cclxuLy8vIEBncm91cCBwYWdpbmF0aW9uXHJcbi8vLy9cclxuXHJcbi8vLyBGb250IHNpemUgb2YgcGFnaW5hdGlvbiBpdGVtcy5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kcGFnaW5hdGlvbi1mb250LXNpemU6IHJlbS1jYWxjKDE0KSAhZGVmYXVsdDtcclxuXHJcbi8vLyBEZWZhdWx0IGJvdHRvbSBtYXJnaW4gb2YgdGhlIG1lZGlhIG9iamVjdC5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kcGFnaW5hdGlvbi1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcclxuXHJcbi8vLyBUZXh0IGNvbG9yIG9mIHBhZ2luYXRpb24gaXRlbXMuXHJcbi8vLyBAdHlwZSBDb2xvclxyXG4kcGFnaW5hdGlvbi1pdGVtLWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XHJcblxyXG4vLy8gUGFkZGluZyBpbnNpZGUgb2YgcGFnaW5hdGlvbiBpdGVtcy5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kcGFnaW5hdGlvbi1pdGVtLXBhZGRpbmc6IHJlbS1jYWxjKDMgMTApICFkZWZhdWx0O1xyXG5cclxuLy8vIFJpZ2h0IG1hcmdpbiB0byBzZXBhcmF0ZSBwYWdpbmF0aW9uIGl0ZW1zLlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiRwYWdpbmF0aW9uLWl0ZW0tc3BhY2luZzogcmVtLWNhbGMoMSkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCByYWRpdXMgZm9yIHBhZ2luYXRpb24gaXRlbXMuXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJHBhZ2luYXRpb24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcclxuXHJcbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIHBhZ2luYXRpb24gaXRlbXMgb24gaG92ZXIuXHJcbi8vLyBAdHlwZSBDb2xvclxyXG4kcGFnaW5hdGlvbi1pdGVtLWJhY2tncm91bmQtaG92ZXI6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xyXG5cclxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgcGFnaW5hdGlvbiBpdGVtIGZvciB0aGUgY3VycmVudCBwYWdlLlxyXG4vLy8gQHR5cGUgQ29sb3JcclxuJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kLWN1cnJlbnQ6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xyXG5cclxuLy8vIFRleHQgY29sb3Igb2YgdGhlIHBhZ2luYXRpb24gaXRlbSBmb3IgdGhlIGN1cnJlbnQgcGFnZS5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiRwYWdpbmF0aW9uLWl0ZW0tY29sb3ItY3VycmVudDogZm9yZWdyb3VuZCgkcGFnaW5hdGlvbi1pdGVtLWJhY2tncm91bmQtY3VycmVudCkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gVGV4dCBjb2xvciBvZiBhIGRpc2FibGVkIHBhZ2luYXRpb24gaXRlbS5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiRwYWdpbmF0aW9uLWl0ZW0tY29sb3ItZGlzYWJsZWQ6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcclxuXHJcbi8vLyBDb2xvciBvZiB0aGUgZWxsaXBzaXMgaW4gYSBwYWdpbmF0aW9uIG1lbnUuXHJcbi8vLyBAdHlwZSBDb2xvclxyXG4kcGFnaW5hdGlvbi1lbGxpcHNpcy1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xyXG5cclxuLy8vIElmIGBmYWxzZWAsIGRvbid0IGRpc3BsYXkgcGFnZSBudW1iZXIgbGlua3Mgb24gbW9iaWxlLCBvbmx5IG5leHQvcHJldmlvdXMgbGlua3MuXHJcbi8vLyBAdHlwZSBCb29sZWFuXHJcbiRwYWdpbmF0aW9uLW1vYmlsZS1pdGVtczogZmFsc2UgIWRlZmF1bHQ7XHJcblxyXG4vLy8gSWYgYHRydWVgLCBhcnJvd3MgYXJlIGFkZGVkIHRvIHRoZSBuZXh0IGFuZCBwcmV2aW91cyBsaW5rcyBvZiBwYWdpbmF0aW9uLlxyXG4vLy8gQHR5cGUgQm9vbGVhblxyXG4kcGFnaW5hdGlvbi1hcnJvd3M6IHRydWUgIWRlZmF1bHQ7XHJcblxyXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgcGFnaW5hdGlvbiBjb250YWluZXIuIEFwcGx5IHRoaXMgdG8gYSBgPHVsPmAuXHJcbkBtaXhpbiBwYWdpbmF0aW9uLWNvbnRhaW5lciB7XHJcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XHJcbiAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogMDtcclxuICBtYXJnaW4tYm90dG9tOiAkcGFnaW5hdGlvbi1tYXJnaW4tYm90dG9tO1xyXG5cclxuICAvLyBMaXN0IGl0ZW1cclxuICBsaSB7XHJcbiAgICBmb250LXNpemU6ICRwYWdpbmF0aW9uLWZvbnQtc2l6ZTtcclxuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkcGFnaW5hdGlvbi1pdGVtLXNwYWNpbmc7XHJcbiAgICBib3JkZXItcmFkaXVzOiAkcGFnaW5hdGlvbi1yYWRpdXM7XHJcblxyXG4gICAgQGlmICRwYWdpbmF0aW9uLW1vYmlsZS1pdGVtcyB7XHJcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIH1cclxuICAgIEBlbHNlIHtcclxuICAgICAgZGlzcGxheTogbm9uZTtcclxuXHJcbiAgICAgICY6bGFzdC1jaGlsZCxcclxuICAgICAgJjpmaXJzdC1jaGlsZCB7XHJcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gUGFnZSBsaW5rc1xyXG4gIGEsXHJcbiAgYnV0dG9uIHtcclxuICAgIGNvbG9yOiAkcGFnaW5hdGlvbi1pdGVtLWNvbG9yO1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBwYWRkaW5nOiAkcGFnaW5hdGlvbi1pdGVtLXBhZGRpbmc7XHJcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcclxuXHJcbiAgICAmOmhvdmVyIHtcclxuICAgICAgYmFja2dyb3VuZDogJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kLWhvdmVyO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgY3VycmVudCBwYWdpbmF0aW9uIGl0ZW0uIEFwcGx5IHRoaXMgdG8gYW4gYDxhPmAuXHJcbkBtaXhpbiBwYWdpbmF0aW9uLWl0ZW0tY3VycmVudCB7XHJcbiAgcGFkZGluZzogJHBhZ2luYXRpb24taXRlbS1wYWRkaW5nO1xyXG4gIGJhY2tncm91bmQ6ICRwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZC1jdXJyZW50O1xyXG4gIGNvbG9yOiAkcGFnaW5hdGlvbi1pdGVtLWNvbG9yLWN1cnJlbnQ7XHJcbiAgY3Vyc29yOiBkZWZhdWx0O1xyXG59XHJcblxyXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgZGlzYWJsZWQgcGFnaW5hdGlvbiBpdGVtLiBBcHBseSB0aGlzIHRvIGFuIGA8YT5gLlxyXG5AbWl4aW4gcGFnaW5hdGlvbi1pdGVtLWRpc2FibGVkIHtcclxuICBwYWRkaW5nOiAkcGFnaW5hdGlvbi1pdGVtLXBhZGRpbmc7XHJcbiAgY29sb3I6ICRwYWdpbmF0aW9uLWl0ZW0tY29sb3ItZGlzYWJsZWQ7XHJcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcclxuXHJcbiAgJjpob3ZlciB7XHJcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICB9XHJcbn1cclxuXHJcbi8vLyBBZGRzIHN0eWxlcyBmb3IgYW4gZWxsaXBzaXMgZm9yIHVzZSBpbiBhIHBhZ2luYXRpb24gbGlzdC5cclxuQG1peGluIHBhZ2luYXRpb24tZWxsaXBzaXMge1xyXG4gIGNvbnRlbnQ6ICdcXDIwMjYnO1xyXG4gIHBhZGRpbmc6ICRwYWdpbmF0aW9uLWl0ZW0tcGFkZGluZztcclxuICBjb2xvcjogJHBhZ2luYXRpb24tZWxsaXBzaXMtY29sb3I7XHJcbn1cclxuXHJcbkBtaXhpbiBmb3VuZGF0aW9uLXBhZ2luYXRpb24ge1xyXG4gIC5wYWdpbmF0aW9uIHtcclxuICAgIEBpbmNsdWRlIHBhZ2luYXRpb24tY29udGFpbmVyO1xyXG5cclxuICAgIC5jdXJyZW50IHtcclxuICAgICAgQGluY2x1ZGUgcGFnaW5hdGlvbi1pdGVtLWN1cnJlbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgLmRpc2FibGVkIHtcclxuICAgICAgQGluY2x1ZGUgcGFnaW5hdGlvbi1pdGVtLWRpc2FibGVkO1xyXG4gICAgfVxyXG5cclxuICAgIC5lbGxpcHNpczo6YWZ0ZXIge1xyXG4gICAgICBAaW5jbHVkZSBwYWdpbmF0aW9uLWVsbGlwc2lzO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQGlmICRwYWdpbmF0aW9uLWFycm93cyB7XHJcbiAgICAucGFnaW5hdGlvbi1wcmV2aW91cyBhOjpiZWZvcmUsXHJcbiAgICAucGFnaW5hdGlvbi1wcmV2aW91cy5kaXNhYmxlZDo6YmVmb3JlIHtcclxuICAgICAgY29udGVudDogJ1xcMDBhYic7XHJcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IDAuNXJlbTtcclxuICAgIH1cclxuXHJcbiAgICAucGFnaW5hdGlvbi1uZXh0IGE6OmFmdGVyLFxyXG4gICAgLnBhZ2luYXRpb24tbmV4dC5kaXNhYmxlZDo6YWZ0ZXIge1xyXG4gICAgICBjb250ZW50OiAnXFwwMGJiJztcclxuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAwLjVyZW07XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcclxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxyXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcclxuXHJcbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBwcm9ncmVzcyBiYXIgY29udGFpbmVyLlxyXG5AbWl4aW4gcHJvZ3Jlc3MtY29udGFpbmVyIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJvZ3Jlc3MtYmFja2dyb3VuZDtcclxuICBoZWlnaHQ6ICRwcm9ncmVzcy1oZWlnaHQ7XHJcbiAgbWFyZ2luLWJvdHRvbTogJHByb2dyZXNzLW1hcmdpbi1ib3R0b207XHJcbiAgYm9yZGVyLXJhZGl1czogJHByb2dyZXNzLXJhZGl1cztcclxufVxyXG5cclxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgaW5uZXIgbWV0ZXIgb2YgYSBwcm9ncmVzcyBiYXIuXHJcbkBtaXhpbiBwcm9ncmVzcy1tZXRlciB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIHdpZHRoOiAwJTtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJHByb2dyZXNzLW1ldGVyLWJhY2tncm91bmQ7XHJcblxyXG4gIEBpZiBoYXMtdmFsdWUoJHByb2dyZXNzLXJhZGl1cykge1xyXG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XHJcbiAgfVxyXG59XHJcblxyXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRleHQgaW4gdGhlIHByb2dyZXNzIG1ldGVyLlxyXG5AbWl4aW4gcHJvZ3Jlc3MtbWV0ZXItdGV4dCB7XHJcbiAgQGluY2x1ZGUgYWJzb2x1dGUtY2VudGVyO1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBtYXJnaW46IDA7XHJcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIGNvbG9yOiAkd2hpdGU7XHJcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuXHJcbiAgQGlmIGhhcy12YWx1ZSgkcHJvZ3Jlc3MtcmFkaXVzKSB7XHJcbiAgICBib3JkZXItcmFkaXVzOiAkcHJvZ3Jlc3MtcmFkaXVzO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIGZvdW5kYXRpb24tcHJvZ3Jlc3MtYmFyIHtcclxuICAvLyBQcm9ncmVzcyBiYXJcclxuICAucHJvZ3Jlc3Mge1xyXG4gICAgQGluY2x1ZGUgcHJvZ3Jlc3MtY29udGFpbmVyO1xyXG5cclxuICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGZvdW5kYXRpb24tcGFsZXR0ZSB7XHJcbiAgICAgICYuI3skbmFtZX0ge1xyXG4gICAgICAgIC5wcm9ncmVzcy1tZXRlciB7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBJbm5lciBtZXRlclxyXG4gIC5wcm9ncmVzcy1tZXRlciB7XHJcbiAgICBAaW5jbHVkZSBwcm9ncmVzcy1tZXRlcjtcclxuICB9XHJcblxyXG4gIC8vIElubmVyIG1ldGVyIHRleHRcclxuICAucHJvZ3Jlc3MtbWV0ZXItdGV4dCB7XHJcbiAgICBAaW5jbHVkZSBwcm9ncmVzcy1tZXRlci10ZXh0O1xyXG4gIH1cclxufVxyXG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXHJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cclxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXHJcblxyXG4vLyBbVE9ET10gQ2hlY2sgaG93IHBsdWdpbiBjb25maXJtcyBkaXNhYmxlZCBvciB2ZXJ0aWNhbCBzdGF0dXNcclxuLy8gW1RPRE9dIENoZWNrIGlmIHRyYW5zaXRpb246IGFsbDsgaXMgbmVjZXNzYXJ5XHJcblxyXG4vLy8vXHJcbi8vLyBAZ3JvdXAgc2xpZGVyXHJcbi8vLy9cclxuXHJcbi8vLyBEZWZhdWx0IHNsaWRlciB3aWR0aCBvZiBhIHZlcnRpY2FsIHNsaWRlci4gKERvZXNuJ3QgYXBwbHkgdG8gdGhlIG5hdGl2ZSBzbGlkZXIuKVxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiRzbGlkZXItd2lkdGgtdmVydGljYWw6IDAuNXJlbSAhZGVmYXVsdDtcclxuXHJcbi8vLyBUcmFuc2l0aW9uIHByb3BlcnRpZXMgdG8gYXBwbHkgdG8gdGhlIHNsaWRlciBoYW5kbGUgYW5kIGZpbGwuIChEb2Vzbid0IGFwcGx5IHRvIHRoZSBuYXRpdmUgc2xpZGVyLilcclxuLy8vIEB0eXBlIFRyYW5zaXRpb25cclxuJHNsaWRlci10cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dCAhZGVmYXVsdDtcclxuXHJcbi8vLyBBZGRzIHRoZSBnZW5lcmFsIHN0eWxlcyBmb3Igc2xpZGVycy5cclxuQG1peGluIHNsaWRlci1jb250YWluZXIge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBoZWlnaHQ6ICRzbGlkZXItaGVpZ2h0O1xyXG4gIG1hcmdpbi10b3A6IDEuMjVyZW07XHJcbiAgbWFyZ2luLWJvdHRvbTogMi4yNXJlbTtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2xpZGVyLWJhY2tncm91bmQ7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIHVzZXItc2VsZWN0OiBub25lO1xyXG4gIHRvdWNoLWFjdGlvbjogbm9uZTtcclxufVxyXG5cclxuLy8vIEFkZHMgdGhlIGdlbmVyYWwgc3R5bGVzIGZvciBhY3RpdmUgZmlsbCBmb3Igc2xpZGVycy5cclxuQG1peGluIHNsaWRlci1maWxsIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiAwO1xyXG4gIGxlZnQ6IDA7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIG1heC13aWR0aDogMTAwJTtcclxuICBoZWlnaHQ6ICRzbGlkZXItaGVpZ2h0O1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRzbGlkZXItZmlsbC1iYWNrZ3JvdW5kO1xyXG4gIHRyYW5zaXRpb246ICRzbGlkZXItdHJhbnNpdGlvbjtcclxuXHJcbiAgJi5pcy1kcmFnZ2luZyB7XHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgMHMgbGluZWFyO1xyXG4gIH1cclxufVxyXG5cclxuLy8vIEFkZHMgdGhlIGdlbmVyYWwgc3R5bGVzIGZvciB0aGUgc2xpZGVyIGhhbmRsZXMuXHJcbkBtaXhpbiBzbGlkZXItaGFuZGxlIHtcclxuICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XHJcbiAgQGluY2x1ZGUgdmVydGljYWwtY2VudGVyO1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBsZWZ0OiAwO1xyXG4gIHotaW5kZXg6IDE7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIHdpZHRoOiAkc2xpZGVyLWhhbmRsZS13aWR0aDtcclxuICBoZWlnaHQ6ICRzbGlkZXItaGFuZGxlLWhlaWdodDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2xpZGVyLWhhbmRsZS1iYWNrZ3JvdW5kO1xyXG4gIHRyYW5zaXRpb246ICRzbGlkZXItdHJhbnNpdGlvbjtcclxuICB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjtcclxuICBib3JkZXItcmFkaXVzOiAkc2xpZGVyLXJhZGl1cztcclxuXHJcbiAgJjpob3ZlciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBzY2FsZS1jb2xvcigkc2xpZGVyLWhhbmRsZS1iYWNrZ3JvdW5kLCAkbGlnaHRuZXNzOiAtMTUlKTtcclxuICB9XHJcblxyXG4gICYuaXMtZHJhZ2dpbmcge1xyXG4gICAgdHJhbnNpdGlvbjogYWxsIDBzIGxpbmVhcjtcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBzbGlkZXItZGlzYWJsZWQge1xyXG4gIG9wYWNpdHk6ICRzbGlkZXItb3BhY2l0eS1kaXNhYmxlZDtcclxuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xyXG59XHJcblxyXG5AbWl4aW4gc2xpZGVyLXZlcnRpY2FsIHtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgd2lkdGg6ICRzbGlkZXItd2lkdGgtdmVydGljYWw7XHJcbiAgaGVpZ2h0OiAxMi41cmVtO1xyXG4gIG1hcmdpbjogMCAxLjI1cmVtO1xyXG4gIHRyYW5zZm9ybTogc2NhbGUoMSwgLTEpO1xyXG5cclxuICAuc2xpZGVyLWZpbGwge1xyXG4gICAgdG9wOiAwO1xyXG4gICAgd2lkdGg6ICRzbGlkZXItd2lkdGgtdmVydGljYWw7XHJcbiAgICBtYXgtaGVpZ2h0OiAxMDAlO1xyXG4gIH1cclxuXHJcbiAgLnNsaWRlci1oYW5kbGUge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgbGVmdDogNTAlO1xyXG4gICAgd2lkdGg6ICRzbGlkZXItaGFuZGxlLWhlaWdodDtcclxuICAgIGhlaWdodDogJHNsaWRlci1oYW5kbGUtd2lkdGg7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gZm91bmRhdGlvbi1zbGlkZXIge1xyXG4gIC8vIENvbnRhaW5lclxyXG4gIC5zbGlkZXIge1xyXG4gICAgQGluY2x1ZGUgc2xpZGVyLWNvbnRhaW5lcjtcclxuICB9XHJcblxyXG4gIC8vIEZpbGwgYXJlYVxyXG4gIC5zbGlkZXItZmlsbCB7XHJcbiAgICBAaW5jbHVkZSBzbGlkZXItZmlsbDtcclxuICB9XHJcblxyXG4gIC8vIERyYWdnYWJsZSBoYW5kbGVcclxuICAuc2xpZGVyLWhhbmRsZSB7XHJcbiAgICBAaW5jbHVkZSBzbGlkZXItaGFuZGxlO1xyXG4gIH1cclxuXHJcbiAgLy8gRGlzYWJsZWQgc3RhdGVcclxuICAuc2xpZGVyLmRpc2FibGVkLFxyXG4gIC5zbGlkZXJbZGlzYWJsZWRdIHtcclxuICAgIEBpbmNsdWRlIHNsaWRlci1kaXNhYmxlZDtcclxuICB9XHJcblxyXG4gIC8vIFZlcnRpY2FsIHNsaWRlclxyXG4gIC5zbGlkZXIudmVydGljYWwge1xyXG4gICAgQGluY2x1ZGUgc2xpZGVyLXZlcnRpY2FsO1xyXG4gIH1cclxuXHJcbiAgLy8gUlRMIHN1cHBvcnRcclxuICBAaWYgJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBydGwge1xyXG4gICAgLnNsaWRlcjpub3QoLnZlcnRpY2FsKSB7XHJcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoLTEsIDEpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXHJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cclxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXHJcblxyXG5AbWl4aW4gZm91bmRhdGlvbi1zdGlja3kge1xyXG4gIC5zdGlja3ktY29udGFpbmVyIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICB9XHJcblxyXG4gIC5zdGlja3kge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgei1pbmRleDogMDtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XHJcbiAgfVxyXG5cclxuICAuc3RpY2t5LmlzLXN0dWNrIHtcclxuICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgIHotaW5kZXg6IDU7XHJcblxyXG4gICAgJi5pcy1hdC10b3Age1xyXG4gICAgICB0b3A6IDA7XHJcbiAgICB9XHJcblxyXG4gICAgJi5pcy1hdC1ib3R0b20ge1xyXG4gICAgICBib3R0b206IDA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuc3RpY2t5LmlzLWFuY2hvcmVkIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIGxlZnQ6IGF1dG87XHJcbiAgICByaWdodDogYXV0bztcclxuXHJcbiAgICAmLmlzLWF0LWJvdHRvbSB7XHJcbiAgICAgIGJvdHRvbTogMDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxyXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXHJcbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxyXG5cclxuLy8vL1xyXG4vLy8gQGdyb3VwIHJldmVhbFxyXG4vLy8vXHJcblxyXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9mIGEgbW9kYWwuXHJcbi8vLyBAdHlwZSBDb2xvclxyXG4kcmV2ZWFsLWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcclxuXHJcbi8vLyBEZWZhdWx0IHdpZHRoIG9mIGEgbW9kYWwsIHdpdGggbm8gY2xhc3MgYXBwbGllZC5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kcmV2ZWFsLXdpZHRoOiA2MDBweCAhZGVmYXVsdDtcclxuXHJcbi8vLyBEZWZhdWx0IG1heGltdW0gd2lkdGggb2YgYSBtb2RhbC5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kcmV2ZWFsLW1heC13aWR0aDogJGdsb2JhbC13aWR0aCAhZGVmYXVsdDtcclxuXHJcbi8vLyBEZWZhdWx0IHBhZGRpbmcgaW5zaWRlIGEgbW9kYWwuXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJHJldmVhbC1wYWRkaW5nOiAkZ2xvYmFsLXBhZGRpbmcgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBib3JkZXIgYXJvdW5kIGEgbW9kYWwuXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJHJldmVhbC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCByYWRpdXMgZm9yIG1vZGFsLlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiRyZXZlYWwtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcclxuXHJcbi8vLyB6LWluZGV4IGZvciBtb2RhbHMuIFRoZSBvdmVybGF5IHVzZXMgdGhpcyB2YWx1ZSwgd2hpbGUgdGhlIG1vZGFsIGl0c2VsZiB1c2VzIHRoaXMgdmFsdWUgcGx1cyBvbmUuXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJHJldmVhbC16aW5kZXg6IDEwMDUgIWRlZmF1bHQ7XHJcblxyXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBtb2RhbCBvdmVybGF5cy5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiRyZXZlYWwtb3ZlcmxheS1iYWNrZ3JvdW5kOiByZ2JhKCRibGFjaywgMC40NSkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgbW9kYWwgb3ZlcmxheS5cclxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kIFskcmV2ZWFsLW92ZXJsYXktYmFja2dyb3VuZF0gLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBvdmVybGF5LlxyXG5AbWl4aW4gcmV2ZWFsLW92ZXJsYXkge1xyXG4gIGRpc3BsYXk6IG5vbmU7XHJcbiAgcG9zaXRpb246IGZpeGVkO1xyXG4gIHRvcDogMDtcclxuICBib3R0b206IDA7XHJcbiAgbGVmdDogMDtcclxuICByaWdodDogMDtcclxuICB6LWluZGV4OiAkcmV2ZWFsLXppbmRleDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkcmV2ZWFsLW92ZXJsYXktYmFja2dyb3VuZDtcclxuICBvdmVyZmxvdy15OiBzY3JvbGw7XHJcbn1cclxuXHJcbi8vLyBBZGRzIGJhc2Ugc3R5bGVzIGZvciBhIG1vZGFsLlxyXG5AbWl4aW4gcmV2ZWFsLW1vZGFsLWJhc2Uge1xyXG4gIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcclxuICBkaXNwbGF5OiBub25lO1xyXG4gIHotaW5kZXg6ICRyZXZlYWwtemluZGV4ICsgMTtcclxuICBwYWRkaW5nOiAkcmV2ZWFsLXBhZGRpbmc7XHJcbiAgYm9yZGVyOiAkcmV2ZWFsLWJvcmRlcjtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkcmV2ZWFsLWJhY2tncm91bmQ7XHJcbiAgYm9yZGVyLXJhZGl1czogJHJldmVhbC1yYWRpdXM7XHJcblxyXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XHJcbiAgICBtaW4taGVpZ2h0OiAwO1xyXG4gIH1cclxuXHJcbiAgLy8gTWFrZSBzdXJlIHJvd3MgZG9uJ3QgaGF2ZSBhIG1pbi13aWR0aCBvbiB0aGVtXHJcbiAgLmNvbHVtbixcclxuICAuY29sdW1ucyB7XHJcbiAgICBtaW4td2lkdGg6IDA7XHJcbiAgfVxyXG5cclxuICAvLyBTdHJpcCBtYXJnaW5zIGZyb20gdGhlIGxhc3QgaXRlbSBpbiB0aGUgbW9kYWxcclxuICA+IDpsYXN0LWNoaWxkIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgfVxyXG59XHJcblxyXG4vLy8gQWRqdXN0cyB0aGUgd2lkdGggb2YgYSBtb2RhbC5cclxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2lkdGggLSBXaWR0aCBvZiB0aGUgbW9kYWwuIEdlbmVyYWxseSBhIHBlcmNlbnRhZ2UuXHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJG1heC13aWR0aCBbJHJldmVhbC1tYXgtd2lkdGhdIC0gTWF4aW11bSB3aWR0aCBvZiB0aGUgbW9kYWwuXHJcbkBtaXhpbiByZXZlYWwtbW9kYWwtd2lkdGgoXHJcbiAgJHdpZHRoOiAkcmV2ZWFsLXdpZHRoLFxyXG4gICRtYXgtd2lkdGg6ICRyZXZlYWwtbWF4LXdpZHRoXHJcbikge1xyXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XHJcbiAgICBAZXh0ZW5kICVyZXZlYWwtY2VudGVyZWQ7XHJcbiAgICB3aWR0aDogJHdpZHRoO1xyXG4gICAgbWF4LXdpZHRoOiAkcmV2ZWFsLW1heC13aWR0aDtcclxuICB9XHJcbn1cclxuXHJcbi8vLyBDcmVhdGVzIGEgZnVsbC1zY3JlZW4gbW9kYWwsIHdoaWNoIHN0cmV0Y2hlcyB0aGUgZnVsbCB3aWR0aCBhbmQgaGVpZ2h0IG9mIHRoZSB3aW5kb3cuXHJcbkBtaXhpbiByZXZlYWwtbW9kYWwtZnVsbHNjcmVlbiB7XHJcbiAgLy8gc2Nzcy1saW50OmRpc2FibGUgRHVwbGljYXRlUHJvcGVydHlcclxuICB0b3A6IDA7XHJcbiAgbGVmdDogMDtcclxuICB3aWR0aDogMTAwJTtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbiAgaGVpZ2h0OiAxMDB2aDtcclxuICBtaW4taGVpZ2h0OiAxMDB2aDtcclxuICBtYXgtd2lkdGg6IG5vbmU7XHJcbiAgbWFyZ2luLWxlZnQ6IDA7XHJcbiAgYm9yZGVyOiAwO1xyXG4gIGJvcmRlci1yYWRpdXM6IDA7XHJcbn1cclxuXHJcbkBtaXhpbiBmb3VuZGF0aW9uLXJldmVhbCB7XHJcbiAgLy8gW1RPRE9dIElzIHRoaXMgbmVjZXNzYXJ5P1xyXG4gIC8vIHNjc3MtbGludDpkaXNhYmxlIFF1YWxpZnlpbmdFbGVtZW50XHJcbiAgYm9keS5pcy1yZXZlYWwtb3BlbiB7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gIH1cclxuICAvLyBodG1sIGdldHMgdGhpcyBjbGFzcyBvbmx5IGluIGlPU1xyXG4gIGh0bWwuaXMtcmV2ZWFsLW9wZW4sXHJcbiAgaHRtbC5pcy1yZXZlYWwtb3BlbiBib2R5IHtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcclxuICB9XHJcblxyXG4gIC8vIE92ZXJsYXlcclxuICAucmV2ZWFsLW92ZXJsYXkge1xyXG4gICAgQGluY2x1ZGUgcmV2ZWFsLW92ZXJsYXk7XHJcbiAgfVxyXG5cclxuICAvLyBNb2RhbCBjb250YWluZXJcclxuICAucmV2ZWFsIHtcclxuICAgIEBpbmNsdWRlIHJldmVhbC1tb2RhbC1iYXNlO1xyXG4gICAgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLXdpZHRoKCRyZXZlYWwtd2lkdGgpO1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgdG9wOiAxMDBweDtcclxuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xyXG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xyXG4gICAgb3ZlcmZsb3cteTogYXV0bztcclxuXHJcbiAgICAvLyBQbGFjZWhvbGRlciBzZWxlY3RvciBmb3IgbWVkaXVtLWFuZC11cCBtb2RhbHNcclxuICAgIC8vIFByZXZlbnRzIGR1cGxpY2F0ZSBDU1Mgd2hlbiBkZWZpbmluZyBtdWx0aXBsZSBSZXZlYWwgc2l6ZXNcclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XHJcbiAgICAgICVyZXZlYWwtY2VudGVyZWQge1xyXG4gICAgICAgIGxlZnQ6IGF1dG87XHJcbiAgICAgICAgcmlnaHQ6IGF1dG87XHJcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBSZW1vdmUgcGFkZGluZ1xyXG4gICAgJi5jb2xsYXBzZSB7XHJcbiAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gU2l6aW5nIGNsYXNzZXNcclxuICAgICYudGlueSAgeyBAaW5jbHVkZSByZXZlYWwtbW9kYWwtd2lkdGgoMzAlKTsgfVxyXG4gICAgJi5zbWFsbCB7IEBpbmNsdWRlIHJldmVhbC1tb2RhbC13aWR0aCg1MCUpOyB9XHJcbiAgICAmLmxhcmdlIHsgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLXdpZHRoKDkwJSk7IH1cclxuXHJcbiAgICAvLyBGdWxsLXNjcmVlbiBtb2RlXHJcbiAgICAmLmZ1bGwge1xyXG4gICAgICBAaW5jbHVkZSByZXZlYWwtbW9kYWwtZnVsbHNjcmVlbjtcclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCQtemYtemVyby1icmVha3BvaW50IG9ubHkpIHtcclxuICAgICAgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLWZ1bGxzY3JlZW47XHJcbiAgICB9XHJcblxyXG4gICAgJi53aXRob3V0LW92ZXJsYXkge1xyXG4gICAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcclxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxyXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcclxuXHJcbi8vLy9cclxuLy8vIEBncm91cCBzd2l0Y2hcclxuLy8vL1xyXG5cclxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgYSBzd2l0Y2guXHJcbi8vLyBAdHlwZSBDb2xvclxyXG4kc3dpdGNoLWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcclxuXHJcbi8vLyBCYWNrZ3JvdW5kIGFjdGl2ZSBjb2xvciBvZiBhIHN3aXRjaC5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiRzd2l0Y2gtYmFja2dyb3VuZC1hY3RpdmU6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xyXG5cclxuLy8vIEhlaWdodCBvZiBhIHN3aXRjaCwgd2l0aCBubyBjbGFzcyBhcHBsaWVkLlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiRzd2l0Y2gtaGVpZ2h0OiAycmVtICFkZWZhdWx0O1xyXG5cclxuLy8vIEhlaWdodCBvZiBhIHN3aXRjaCB3aXRoIC50aW55IGNsYXNzLlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiRzd2l0Y2gtaGVpZ2h0LXRpbnk6IDEuNXJlbSAhZGVmYXVsdDtcclxuXHJcbi8vLyBIZWlnaHQgb2YgYSBzd2l0Y2ggd2l0aCAuc21hbGwgY2xhc3MuXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJHN3aXRjaC1oZWlnaHQtc21hbGw6IDEuNzVyZW0gIWRlZmF1bHQ7XHJcblxyXG4vLy8gSGVpZ2h0IG9mIGEgc3dpdGNoIHdpdGggLmxhcmdlIGNsYXNzLlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiRzd2l0Y2gtaGVpZ2h0LWxhcmdlOiAyLjVyZW0gIWRlZmF1bHQ7XHJcblxyXG4vLy8gQm9yZGVyIHJhZGl1cyBvZiB0aGUgc3dpdGNoXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJHN3aXRjaC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xyXG5cclxuLy8vIGJvcmRlciBhcm91bmQgYSBtb2RhbC5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kc3dpdGNoLW1hcmdpbjogJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XHJcblxyXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgdGhlIHN3aXRjaCBjb250YWluZXIgYW5kIHBhZGRsZS5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiRzd2l0Y2gtcGFkZGxlLWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcclxuXHJcbi8vLyBTcGFjaW5nIGJldHdlZW4gYSBzd2l0Y2ggcGFkZGxlIGFuZCB0aGUgZWRnZSBvZiB0aGUgYm9keS5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kc3dpdGNoLXBhZGRsZS1vZmZzZXQ6IDAuMjVyZW0gIWRlZmF1bHQ7XHJcblxyXG4vLy8gYm9yZGVyIHJhZGl1cyBvZiB0aGUgc3dpdGNoIHBhZGRsZVxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiRzd2l0Y2gtcGFkZGxlLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XHJcblxyXG4vLy8gc3dpdGNoIHRyYW5zaXRpb24uXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJHN3aXRjaC1wYWRkbGUtdHJhbnNpdGlvbjogYWxsIDAuMjVzIGVhc2Utb3V0ICFkZWZhdWx0O1xyXG5cclxuLy8gbWFrZSB0aGVtIHZhcmlhYmxlc1xyXG4vLyBhc2sgYWJvdXQgYWNjZXNzaWJpbGl0eSBvbiBsYWJlbFxyXG4vLyBjaGFuZ2UgY2xhc3MgbmFtZSBmb3IgdGV4dFxyXG5cclxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHN3aXRjaCBjb250YWluZXIuIEFwcGx5IHRoaXMgdG8gYSBjb250YWluZXIgY2xhc3MuXHJcbkBtaXhpbiBzd2l0Y2gtY29udGFpbmVyIHtcclxuICBtYXJnaW4tYm90dG9tOiAkc3dpdGNoLW1hcmdpbjtcclxuICBvdXRsaW5lOiAwO1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICB1c2VyLXNlbGVjdDogbm9uZTtcclxuXHJcbiAgLy8gVGhlc2UgcHJvcGVydGllcyBjYXNjYWRlIGRvd24gdG8gdGhlIHN3aXRjaCB0ZXh0XHJcbiAgY29sb3I6ICR3aGl0ZTtcclxuICBmb250LXdlaWdodDogYm9sZDtcclxuICBmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcclxufVxyXG5cclxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHN3aXRjaCBpbnB1dC4gQXBwbHkgdGhpcyB0byBhbiBgPGlucHV0PmAgd2l0aGluIGEgc3dpdGNoLlxyXG5AbWl4aW4gc3dpdGNoLWlucHV0IHtcclxuICBvcGFjaXR5OiAwO1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxufVxyXG5cclxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgYmFja2dyb3VuZCBhbmQgcGFkZGxlIG9mIGEgc3dpdGNoLiBBcHBseSB0aGlzIHRvIGEgYDxsYWJlbD5gIHdpdGhpbiBhIHN3aXRjaC5cclxuQG1peGluIHN3aXRjaC1wYWRkbGUge1xyXG4gIGJhY2tncm91bmQ6ICRzd2l0Y2gtYmFja2dyb3VuZDtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIHdpZHRoOiA0cmVtO1xyXG4gIGhlaWdodDogJHN3aXRjaC1oZWlnaHQ7XHJcbiAgdHJhbnNpdGlvbjogJHN3aXRjaC1wYWRkbGUtdHJhbnNpdGlvbjtcclxuICBib3JkZXItcmFkaXVzOiAkc3dpdGNoLXJhZGl1cztcclxuXHJcbiAgLy8gUmVzZXR0aW5nIHRoZXNlIDxsYWJlbD4gcHJlc2V0cyBzbyB0eXBlIHN0eWxlcyBjYXNjYWRlIGRvd25cclxuICBjb2xvcjogaW5oZXJpdDtcclxuICBmb250LXdlaWdodDogaW5oZXJpdDtcclxuXHJcbiAgLy8gTmVlZGVkIHRvIG92ZXJyaWRlIHNwZWNpZmljaXR5XHJcbiAgaW5wdXQgKyAmIHtcclxuICAgIG1hcmdpbjogMDtcclxuICB9XHJcblxyXG4gIC8vIFRoZSBwYWRkbGUgaXRzZWxmXHJcbiAgJjo6YWZ0ZXIge1xyXG4gICAgYmFja2dyb3VuZDogJHN3aXRjaC1wYWRkbGUtYmFja2dyb3VuZDtcclxuICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBoZWlnaHQ6IDEuNXJlbTtcclxuICAgICN7JGdsb2JhbC1sZWZ0fTogMC4yNXJlbTtcclxuICAgIHRvcDogMC4yNXJlbTtcclxuICAgIHdpZHRoOiAxLjVyZW07XHJcbiAgICB0cmFuc2l0aW9uOiAkc3dpdGNoLXBhZGRsZS10cmFuc2l0aW9uO1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcclxuICAgIGJvcmRlci1yYWRpdXM6ICRzd2l0Y2gtcGFkZGxlLXJhZGl1cztcclxuICB9XHJcblxyXG4gIC8vIENoYW5nZSB0aGUgdmlzdWFsIHN0eWxlIHdoZW4gdGhlIHN3aXRjaCBpcyBhY3RpdmVcclxuICBpbnB1dDpjaGVja2VkIH4gJiB7XHJcbiAgICBiYWNrZ3JvdW5kOiAkc3dpdGNoLWJhY2tncm91bmQtYWN0aXZlO1xyXG5cclxuICAgICY6OmFmdGVyIHtcclxuICAgICAgI3skZ2xvYmFsLWxlZnR9OiAyLjI1cmVtO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaW5wdXQ6Zm9jdXMgfiAmIHtcclxuICAgIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcclxuICB9XHJcbn1cclxuXHJcbi8vLyBBZGRzIGJhc2Ugc3R5bGVzIGZvciBhY3RpdmUvaW5hY3RpdmUgdGV4dCBpbnNpZGUgYSBzd2l0Y2guIEFwcGx5IHRoaXMgdG8gdGV4dCBlbGVtZW50cyBpbnNpZGUgdGhlIHN3aXRjaCBgPGxhYmVsPmAuXHJcbkBtaXhpbiBzd2l0Y2gtdGV4dCB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHRvcDogNTAlO1xyXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcclxufVxyXG5cclxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgYWN0aXZlIHN0YXRlIHRleHQgd2l0aGluIGEgc3dpdGNoLlxyXG5AbWl4aW4gc3dpdGNoLXRleHQtYWN0aXZlIHtcclxuICAjeyRnbG9iYWwtbGVmdH06IDglO1xyXG4gIGRpc3BsYXk6IG5vbmU7XHJcblxyXG4gIGlucHV0OmNoZWNrZWQgKyBsYWJlbCA+ICYge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgfVxyXG59XHJcblxyXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBpbmFjdGl2ZSBzdGF0ZSB0ZXh0IHdpdGhpbiBhIHN3aXRjaC5cclxuQG1peGluIHN3aXRjaC10ZXh0LWluYWN0aXZlIHtcclxuICAjeyRnbG9iYWwtcmlnaHR9OiAxNSU7XHJcblxyXG4gIGlucHV0OmNoZWNrZWQgKyBsYWJlbCA+ICYge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICB9XHJcbn1cclxuXHJcbi8vLyBDaGFuZ2VzIHRoZSBzaXplIG9mIGEgc3dpdGNoIGJ5IG1vZGlmeWluZyB0aGUgc2l6ZSBvZiB0aGUgYm9keSBhbmQgcGFkZGxlLiBBcHBseSB0aGlzIHRvIGEgc3dpdGNoIGNvbnRhaW5lci5cclxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZm9udC1zaXplIFsxcmVtXSAtIEZvbnQgc2l6ZSBvZiBsYWJlbCB0ZXh0IHdpdGhpbiB0aGUgc3dpdGNoLlxyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3aWR0aCBbNHJlbV0gLSBXaWR0aCBvZiB0aGUgc3dpdGNoIGJvZHkuXHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJGhlaWdodCBbMnJlbV0gLSBIZWlnaHQgb2YgdGhlIHN3aXRjaCBib2R5LlxyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRwYWRkbGUtd2lkdGggWzEuNXJlbV0gLSBXaWR0aCBvZiB0aGUgc3dpdGNoIHBhZGRsZS5cclxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkcGFkZGxlLW9mZnNldCBbMC4yNXJlbV0gLSBTcGFjaW5nIGJldHdlZW4gdGhlIHN3aXRjaCBwYWRkbGUgYW5kIHRoZSBlZGdlIG9mIHRoZSBzd2l0Y2ggYm9keS5cclxuQG1peGluIHN3aXRjaC1zaXplKFxyXG4gICRmb250LXNpemU6IDFyZW0sXHJcbiAgJHdpZHRoOiA0cmVtLFxyXG4gICRoZWlnaHQ6IDJyZW0sXHJcbiAgJHBhZGRsZS13aWR0aDogMS41cmVtLFxyXG4gICRwYWRkbGUtb2Zmc2V0OiAwLjI1cmVtXHJcbikge1xyXG4gICRwYWRkbGUtaGVpZ2h0OiAkaGVpZ2h0IC0gKCRwYWRkbGUtb2Zmc2V0ICogMik7XHJcbiAgJHBhZGRsZS1sZWZ0LWFjdGl2ZTogJHdpZHRoIC0gJHBhZGRsZS13aWR0aCAtICRwYWRkbGUtb2Zmc2V0O1xyXG5cclxuICAuc3dpdGNoLXBhZGRsZSB7XHJcbiAgICB3aWR0aDogJHdpZHRoO1xyXG4gICAgaGVpZ2h0OiAkaGVpZ2h0O1xyXG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplO1xyXG4gIH1cclxuXHJcbiAgLnN3aXRjaC1wYWRkbGU6OmFmdGVyIHtcclxuICAgIHdpZHRoOiAkcGFkZGxlLXdpZHRoO1xyXG4gICAgaGVpZ2h0OiAkcGFkZGxlLWhlaWdodDtcclxuICB9XHJcblxyXG4gIGlucHV0OmNoZWNrZWQgfiAuc3dpdGNoLXBhZGRsZTo6YWZ0ZXIge1xyXG4gICAgI3skZ2xvYmFsLWxlZnR9OiAkcGFkZGxlLWxlZnQtYWN0aXZlO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIGZvdW5kYXRpb24tc3dpdGNoIHtcclxuICAvLyBDb250YWluZXIgY2xhc3NcclxuICAuc3dpdGNoIHtcclxuICAgIEBpbmNsdWRlIHN3aXRjaC1jb250YWluZXI7XHJcbiAgfVxyXG5cclxuICAvLyA8aW5wdXQ+IGVsZW1lbnRcclxuICAuc3dpdGNoLWlucHV0IHtcclxuICAgIEBpbmNsdWRlIHN3aXRjaC1pbnB1dDtcclxuICB9XHJcblxyXG4gIC8vIDxsYWJlbD4gZWxlbWVudFxyXG4gIC5zd2l0Y2gtcGFkZGxlIHtcclxuICAgIEBpbmNsdWRlIHN3aXRjaC1wYWRkbGU7XHJcbiAgfVxyXG5cclxuICAvLyBCYXNlIGxhYmVsIHRleHQgc3R5bGVzXHJcbiAgJXN3aXRjaC10ZXh0IHtcclxuICAgIEBpbmNsdWRlIHN3aXRjaC10ZXh0O1xyXG4gIH1cclxuXHJcbiAgLy8gQWN0aXZlIGxhYmVsIHRleHQgc3R5bGVzXHJcbiAgLnN3aXRjaC1hY3RpdmUge1xyXG4gICAgQGV4dGVuZCAlc3dpdGNoLXRleHQ7XHJcbiAgICBAaW5jbHVkZSBzd2l0Y2gtdGV4dC1hY3RpdmU7XHJcbiAgfVxyXG5cclxuICAvLyBJbmFjdGl2ZSBsYWJlbCB0ZXh0IHN0eWxlc1xyXG4gIC5zd2l0Y2gtaW5hY3RpdmUge1xyXG4gICAgQGV4dGVuZCAlc3dpdGNoLXRleHQ7XHJcbiAgICBAaW5jbHVkZSBzd2l0Y2gtdGV4dC1pbmFjdGl2ZTtcclxuICB9XHJcblxyXG4gIC8vIFN3aXRjaCBzaXplc1xyXG4gIC5zd2l0Y2gudGlueSB7XHJcbiAgICBAaW5jbHVkZSBzd2l0Y2gtc2l6ZShyZW0tY2FsYygxMCksIDNyZW0sICRzd2l0Y2gtaGVpZ2h0LXRpbnksIDFyZW0sICRzd2l0Y2gtcGFkZGxlLW9mZnNldCk7XHJcbiAgfVxyXG5cclxuICAuc3dpdGNoLnNtYWxsIHtcclxuICAgIEBpbmNsdWRlIHN3aXRjaC1zaXplKHJlbS1jYWxjKDEyKSwgMy41cmVtLCAkc3dpdGNoLWhlaWdodC1zbWFsbCwgMS4yNXJlbSwgJHN3aXRjaC1wYWRkbGUtb2Zmc2V0KTtcclxuICB9XHJcblxyXG4gIC5zd2l0Y2gubGFyZ2Uge1xyXG4gICAgQGluY2x1ZGUgc3dpdGNoLXNpemUocmVtLWNhbGMoMTYpLCA1cmVtLCAkc3dpdGNoLWhlaWdodC1sYXJnZSwgMnJlbSwgJHN3aXRjaC1wYWRkbGUtb2Zmc2V0KTtcclxuICB9XHJcbn1cclxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxyXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXHJcbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxyXG5cclxuLy8gc2Nzcy1saW50OmRpc2FibGUgTWVyZ2VhYmxlU2VsZWN0b3IsIFF1YWxpZnlpbmdFbGVtZW50XHJcblxyXG4vLy8vXHJcbi8vLyBAZ3JvdXAgdGFibGVcclxuLy8vL1xyXG5cclxuLy8vIERlZmF1bHQgY29sb3IgZm9yIHRhYmxlIGJhY2tncm91bmQuXHJcbi8vLyBAdHlwZSBDb2xvclxyXG4kdGFibGUtYmFja2dyb3VuZDogJHdoaXRlICAhZGVmYXVsdDtcclxuXHJcbi8vLyBEZWZhdWx0IHNjYWxlIGZvciBkYXJrZW5pbmcgdGhlIHN0cmlwZWQgdGFibGUgcm93cyBhbmQgdGhlIHRhYmxlIGJvcmRlci5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kdGFibGUtY29sb3Itc2NhbGU6IDUlICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgc3R5bGUgZm9yIHRhYmxlIGJvcmRlci5cclxuLy8vIEB0eXBlIExpc3RcclxuJHRhYmxlLWJvcmRlcjogMXB4IHNvbGlkIHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUpICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgcGFkZGluZyBmb3IgdGFibGUuXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJHRhYmxlLXBhZGRpbmc6IHJlbS1jYWxjKDggMTAgMTApICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgc2NhbGUgZm9yIGRhcmtlbmluZyB0aGUgdGFibGUgcm93cyBvbiBob3Zlci5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kdGFibGUtaG92ZXItc2NhbGU6IDIlICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgY29sb3Igb2Ygc3RhbmRhcmQgcm93cyBvbiBob3Zlci5cclxuLy8vIEB0eXBlIExpc3RcclxuJHRhYmxlLXJvdy1ob3ZlcjogZGFya2VuKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtaG92ZXItc2NhbGUpICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgY29sb3Igb2Ygc3RyaXBlZCByb3dzIG9uIGhvdmVyLlxyXG4vLy8gQHR5cGUgTGlzdFxyXG4kdGFibGUtcm93LXN0cmlwZS1ob3ZlcjogZGFya2VuKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUgKyAkdGFibGUtaG92ZXItc2NhbGUpICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBmb3Igc3RyaXBlZCByb3dzLlxyXG4vLy8gQHR5cGUgQ29sb3JcclxuJHRhYmxlLXN0cmlwZWQtYmFja2dyb3VuZDogc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCB2YWx1ZSBmb3Igc2hvd2luZyB0aGUgc3RyaXBlIG9uIHJvd3Mgb2YgdGhlIHRhYmxlcywgZXhjbHVkaW5nIHRoZSBoZWFkZXIgYW5kIGZvb3Rlci4gSWYgZXZlbiwgdGhlIGV2ZW4gcm93cyB3aWxsIGhhdmUgYSBiYWNrZ3JvdW5kIGNvbG9yLiBJZiBvZGQsIHRoZSBvZGQgcm93cyB3aWxsIGhhdmUgYSBiYWNrZ3JvdW5kIGNvbG9yLiBJZiBlbXB0eSwgb3IgYW55IG90aGVyIHZhbHVlLCB0aGUgdGFibGUgcm93cyB3aWxsIGhhdmUgbm8gc3RyaXBpbmcuXHJcbi8vLyBAdHlwZSBLZXl3b3JkXHJcbiR0YWJsZS1zdHJpcGU6IGV2ZW4gIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgaGVhZGVyIGJhY2tncm91bmQuXHJcbi8vLyBAdHlwZSBDb2xvclxyXG4kdGFibGUtaGVhZC1iYWNrZ3JvdW5kOiBzbWFydC1zY2FsZSgkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlIC8gMikgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgZm9vdGVyIGJhY2tncm91bmQuXHJcbi8vLyBAdHlwZSBDb2xvclxyXG4kdGFibGUtZm9vdC1iYWNrZ3JvdW5kOiBzbWFydC1zY2FsZSgkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlKSAhZGVmYXVsdDtcclxuXHJcbi8vLyBEZWZhdWx0IGZvbnQgY29sb3IgZm9yIGhlYWRlci5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiR0YWJsZS1oZWFkLWZvbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3IgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCB2YWx1ZSBmb3Igc2hvd2luZyB0aGUgaGVhZGVyIHdoZW4gdXNpbmcgc3RhY2tlZCB0YWJsZXMuXHJcbi8vLyBAdHlwZSBCb29sZWFuXHJcbiRzaG93LWhlYWRlci1mb3Itc3RhY2tlZDogZmFsc2UgIWRlZmF1bHQ7XHJcblxyXG5AbWl4aW4gLXpmLXRhYmxlLWNoaWxkcmVuLXN0eWxlcygkc3RyaXBlOiAkdGFibGUtc3RyaXBlKSB7XHJcbiAgdGhlYWQsXHJcbiAgdGJvZHksXHJcbiAgdGZvb3Qge1xyXG4gICAgYm9yZGVyOiAkdGFibGUtYm9yZGVyO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLWJhY2tncm91bmQ7XHJcbiAgfVxyXG5cclxuICAvLyBDYXB0aW9uXHJcbiAgY2FwdGlvbiB7XHJcbiAgICBmb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcclxuICAgIHBhZGRpbmc6ICR0YWJsZS1wYWRkaW5nO1xyXG4gIH1cclxuXHJcbiAgLy8gVGFibGUgaGVhZCBhbmQgZm9vdFxyXG4gIHRoZWFkLFxyXG4gIHRmb290IHtcclxuICAgIGJhY2tncm91bmQ6ICR0YWJsZS1oZWFkLWJhY2tncm91bmQ7XHJcbiAgICBjb2xvcjogJHRhYmxlLWhlYWQtZm9udC1jb2xvcjtcclxuXHJcbiAgICAvLyBSb3dzIHdpdGhpbiBoZWFkIGFuZCBmb290XHJcbiAgICB0ciB7XHJcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4gICAgfVxyXG5cclxuICAgIC8vIENlbGxzIHdpdGhpbiBoZWFkIGFuZCBmb290XHJcbiAgICB0aCxcclxuICAgIHRkIHtcclxuICAgICAgcGFkZGluZzogJHRhYmxlLXBhZGRpbmc7XHJcbiAgICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xyXG4gICAgICB0ZXh0LWFsaWduOiAjeyRnbG9iYWwtbGVmdH07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBUYWJsZSByb3dzXHJcbiAgdGJvZHkge1xyXG4gICAgdHIge1xyXG4gICAgICAvLyBJZiBzdHJpcGUgaXMgc2V0IHRvIGV2ZW4sIGRhcmtlbiB0aGUgZXZlbiByb3dzLlxyXG4gICAgICBAaWYgJHN0cmlwZSA9PSBldmVuIHtcclxuICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtc3RyaXBlZC1iYWNrZ3JvdW5kO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gSWYgc3RyaXBlIGlzIHNldCB0byBvZGQsIGRhcmtlbiB0aGUgb2RkIHJvd3MuXHJcbiAgICAgIEBlbHNlIGlmICRzdHJpcGUgPT0gb2RkIHtcclxuICAgICAgICAmOm50aC1jaGlsZChvZGQpIHtcclxuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1zdHJpcGVkLWJhY2tncm91bmQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGgsXHJcbiAgICB0ZCB7XHJcbiAgICAgIHBhZGRpbmc6ICR0YWJsZS1wYWRkaW5nO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLy8vIEFkZHMgdGhlIGdlbmVyYWwgc3R5bGVzIGZvciB0YWJsZXMuXHJcbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzdHJpcGUgWyR0YWJsZS1zdHJpcGVdIC0gVXNlcyBrZXl3b3JkcyBldmVuLCBvZGQsIG9yIG5vbmUgdG8gZGFya2VuIHJvd3Mgb2YgdGhlIHRhYmxlLiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBldmVuLlxyXG5AbWl4aW4gdGFibGUoXHJcbiAgJHN0cmlwZTogJHRhYmxlLXN0cmlwZSxcclxuICAkbmVzdDogZmFsc2VcclxuKSB7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW47XHJcbiAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XHJcblxyXG4gIEBpZiAkbmVzdCB7XHJcbiAgICBAaW5jbHVkZSAtemYtdGFibGUtY2hpbGRyZW4tc3R5bGVzKCRzdHJpcGUpO1xyXG4gIH1cclxuICBAZWxzZSB7XHJcbiAgICBAYXQtcm9vdCB7XHJcbiAgICAgIEBpbmNsdWRlIC16Zi10YWJsZS1jaGlsZHJlbi1zdHlsZXMoJHN0cmlwZSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vLy8gQWRkcyB0aGUgYWJpbGl0eSB0byBob3Jpem9udGFsbHkgc2Nyb2xsIHRoZSB0YWJsZSB3aGVuIHRoZSBjb250ZW50IG92ZXJmbG93cyBob3Jpem9udGFsbHkuXHJcbkBtaXhpbiB0YWJsZS1zY3JvbGwge1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIG92ZXJmbG93LXg6IGF1dG87XHJcbn1cclxuXHJcbi8vLyBTbGlnaHRseSBkYXJrZW5zIHRoZSB0YWJsZSByb3dzIG9uIGhvdmVyLlxyXG5AbWl4aW4gdGFibGUtaG92ZXIge1xyXG4gIHRyIHtcclxuICAgIC8vRGFya2VucyB0aGUgbm9uLXN0cmlwZWQgdGFibGUgcm93cyBvbiBob3Zlci5cclxuICAgICY6aG92ZXIge1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtcm93LWhvdmVyO1xyXG4gICAgfVxyXG5cclxuICAgIC8vRGFya2VucyB0aGUgZXZlbiBzdHJpcGVkIHRhYmxlIHJvd3MuXHJcbiAgICBAaWYoJHRhYmxlLXN0cmlwZSA9PSBldmVuKSB7XHJcbiAgICAgICY6bnRoLW9mLXR5cGUoZXZlbik6aG92ZXIge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1yb3ctc3RyaXBlLWhvdmVyO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy9EYXJrZW5zIHRoZSBvZGQgc3RyaXBlZCB0YWJsZSByb3dzLlxyXG4gICAgQGVsc2VpZigkdGFibGUtc3RyaXBlID09IG9kZCkge1xyXG4gICAgICAmOm50aC1vZi10eXBlKG9kZCk6aG92ZXIge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1yb3ctc3RyaXBlLWhvdmVyO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgc3RhY2tlZCB0YWJsZS4gVXNlZnVsIGZvciBzbWFsbC1zY3JlZW4gbGF5b3V0cy5cclxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGhlYWRlciBbJHNob3ctaGVhZGVyLWZvci1zdGFja2VkXSAtIFNob3cgdGhlIGZpcnN0IHRoIG9mIGhlYWRlciB3aGVuIHN0YWNrZWQuXHJcbkBtaXhpbiB0YWJsZS1zdGFjaygkaGVhZGVyOiAkc2hvdy1oZWFkZXItZm9yLXN0YWNrZWQpIHtcclxuICBAaWYgJGhlYWRlciB7XHJcbiAgICB0aGVhZCB7XHJcbiAgICAgIHRoOmZpcnN0LWNoaWxkIHtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgfVxyXG5cclxuICAgICAgdGgge1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgQGVsc2Uge1xyXG4gICAgdGhlYWQge1xyXG4gICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdGZvb3Qge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICB9XHJcblxyXG4gIHRyLFxyXG4gIHRoLFxyXG4gIHRkIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gIH1cclxuXHJcbiAgdGQge1xyXG4gICAgYm9yZGVyLXRvcDogMDtcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBmb3VuZGF0aW9uLXRhYmxlKCRuZXN0OiBmYWxzZSkge1xyXG4gIHRhYmxlIHtcclxuICAgIEBpbmNsdWRlIHRhYmxlKCRuZXN0OiAkbmVzdCk7XHJcbiAgfVxyXG5cclxuICB0YWJsZS5zdGFjayB7XHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKSB7XHJcbiAgICAgIEBpbmNsdWRlIHRhYmxlLXN0YWNrO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdGFibGUuc2Nyb2xsIHtcclxuICAgIEBpbmNsdWRlIHRhYmxlLXNjcm9sbDtcclxuICB9XHJcblxyXG4gIHRhYmxlLmhvdmVyIHtcclxuICAgIEBpbmNsdWRlIHRhYmxlLWhvdmVyO1xyXG4gIH1cclxuXHJcbiAgLnRhYmxlLXNjcm9sbCB7XHJcbiAgICBvdmVyZmxvdy14OiBhdXRvO1xyXG5cclxuICAgIHRhYmxlIHtcclxuICAgICAgd2lkdGg6IGF1dG87XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcclxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxyXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcclxuXHJcbi8vLy9cclxuLy8vIEBncm91cCBmdW5jdGlvbnNcclxuLy8vL1xyXG5cclxuLy8vIENoZWNrcyB0aGUgbGlnaHRuZXNzIG9mIGAkY29sb3JgLCBhbmQgaWYgaXQgcGFzc2VzIHRoZSBgJHRocmVzaG9sZGAgb2YgbGlnaHRuZXNzLCBpdCByZXR1cm5zIHRoZSBgJHllc2AgY29sb3IuIE90aGVyd2lzZSwgaXQgcmV0dXJucyB0aGUgYCRub2AgY29sb3IuIFVzZSB0aGlzIGZ1bmN0aW9uIHRvIGR5bmFtaWNhbGx5IG91dHB1dCBhIGZvcmVncm91bmQgY29sb3IgYmFzZWQgb24gYSBnaXZlbiBiYWNrZ3JvdW5kIGNvbG9yLlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciAtIENvbG9yIHRvIGNoZWNrIHRoZSBsaWdodG5lc3Mgb2YuXHJcbi8vLyBAcGFyYW0ge0NvbG9yfSAkeWVzIFskYmxhY2tdIC0gQ29sb3IgdG8gcmV0dXJuIGlmIGAkY29sb3JgIGlzIGxpZ2h0LlxyXG4vLy8gQHBhcmFtIHtDb2xvcn0gJG5vIFskd2hpdGVdIC0gQ29sb3IgdG8gcmV0dXJuIGlmIGAkY29sb3JgIGlzIGRhcmsuXHJcbi8vLyBAcGFyYW0ge1BlcmNlbnRhZ2V9ICR0aHJlc2hvbGQgWzYwJV0gLSBUaHJlc2hvbGQgb2YgbGlnaHRuZXNzIHRvIGNoZWNrIGFnYWluc3QuXHJcbi8vL1xyXG4vLy8gQHJldHVybnMge0NvbG9yfSBUaGUgJHllcyBjb2xvciBvciAkbm8gY29sb3IuXHJcbkBmdW5jdGlvbiBmb3JlZ3JvdW5kKCRjb2xvciwgJHllczogJGJsYWNrLCAkbm86ICR3aGl0ZSwgJHRocmVzaG9sZDogNjAlKSB7XHJcbiAgQGlmICRjb2xvciA9PSB0cmFuc3BhcmVudCB7XHJcbiAgICAkY29sb3I6ICRib2R5LWJhY2tncm91bmQ7XHJcbiAgfVxyXG4gIEBpZiAobGlnaHRuZXNzKCRjb2xvcikgPiAkdGhyZXNob2xkKSB7XHJcbiAgICBAcmV0dXJuICR5ZXM7XHJcbiAgfVxyXG4gIEBlbHNlIHtcclxuICAgIEByZXR1cm4gJG5vO1xyXG4gIH1cclxufVxyXG5cclxuLy8vIFNjYWxlcyBhIGNvbG9yIHRvIGJlIGxpZ2h0ZXIgaWYgaXQncyBsaWdodCwgb3IgZGFya2VyIGlmIGl0J3MgZGFyay4gVXNlIHRoaXMgZnVuY3Rpb24gdG8gdGludCBhIGNvbG9yIGFwcHJvcHJpYXRlIHRvIGl0cyBsaWdodG5lc3MuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIC0gQ29sb3IgdG8gc2NhbGUuXHJcbi8vLyBAcGFyYW0ge1BlcmNlbnRhZ2V9ICRzY2FsZSBbNSVdIC0gQW1vdW50IHRvIHNjYWxlIHVwIG9yIGRvd24uXHJcbi8vLyBAcGFyYW0ge1BlcmNlbnRhZ2V9ICR0aHJlc2hvbGQgWzQwJV0gLSBUaHJlc2hvbGQgb2YgbGlnaHRuZXNzIHRvIGNoZWNrIGFnYWluc3QuXHJcbi8vL1xyXG4vLy8gQHJldHVybnMge0NvbG9yfSBBIHNjYWxlZCBjb2xvci5cclxuQGZ1bmN0aW9uIHNtYXJ0LXNjYWxlKCRjb2xvciwgJHNjYWxlOiA1JSwgJHRocmVzaG9sZDogNDAlKSB7XHJcbiAgQGlmIGxpZ2h0bmVzcygkY29sb3IpID4gJHRocmVzaG9sZCB7XHJcbiAgICAkc2NhbGU6IC0kc2NhbGU7XHJcbiAgfVxyXG4gIEByZXR1cm4gc2NhbGUtY29sb3IoJGNvbG9yLCAkbGlnaHRuZXNzOiAkc2NhbGUpO1xyXG59XHJcblxyXG4vLy8gVHJhbnNmZXJzIHRoZSBjb2xvcnMgaW4gdGhlIGAkZm91bmRhdGlvbi1wYWxldHRlYCB2YXJpYWJsZSBpbnRvIHRoZSBsZWdhY3kgY29sb3IgdmFyaWFibGVzLCBzdWNoIGFzIGAkcHJpbWFyeS1jb2xvcmAgYW5kIGAkc2Vjb25kYXJ5LWNvbG9yYC4gQ2FsbCB0aGlzIG1peGluIGJlbG93IHRoZSBHbG9iYWwgc2VjdGlvbiBvZiB5b3VyIHNldHRpbmdzIGZpbGUgdG8gcHJvcGVybHkgbWlncmF0ZSB5b3VyIGNvZGViYXNlLlxyXG5AbWl4aW4gYWRkLWZvdW5kYXRpb24tY29sb3JzKCkge1xyXG4gIEBpZiBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCBwcmltYXJ5KSB7XHJcbiAgICAkcHJpbWFyeS1jb2xvcjogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBwcmltYXJ5KSAhZ2xvYmFsO1xyXG4gIH1cclxuICBAaWYgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgc2Vjb25kYXJ5KSB7XHJcbiAgICAkc2Vjb25kYXJ5LWNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHNlY29uZGFyeSkgIWdsb2JhbDtcclxuICB9XHJcbiAgQGlmIG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHN1Y2Nlc3MpIHtcclxuICAgICRzdWNjZXNzLWNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHN1Y2Nlc3MpICFnbG9iYWw7XHJcbiAgfVxyXG4gIEBpZiBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCB3YXJuaW5nKSB7XHJcbiAgICAkd2FybmluZy1jb2xvcjogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCB3YXJuaW5nKSAhZ2xvYmFsO1xyXG4gIH1cclxuICBAaWYgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgYWxlcnQpIHtcclxuICAgICRhbGVydC1jb2xvcjogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBhbGVydCkgIWdsb2JhbDtcclxuICB9XHJcbn1cclxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxyXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXHJcbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxyXG5cclxuLy8vL1xyXG4vLy8gQGdyb3VwIHRhYnNcclxuLy8vL1xyXG5cclxuLy8vIERlZmF1bHQgbWFyZ2luIG9mIHRoZSB0YWIgYmFyLlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiR0YWItbWFyZ2luOiAwICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBvZiBhIHRhYiBiYXIuXHJcbi8vLyBAdHlwZSBDb2xvclxyXG4kdGFiLWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcclxuXHJcbi8vLyBhY3RpdmUgYmFja2dyb3VuZCBjb2xvciBvZiBhIHRhYiBiYXIuXHJcbi8vLyBAdHlwZSBDb2xvclxyXG4kdGFiLWJhY2tncm91bmQtYWN0aXZlOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcclxuXHJcbi8vLyBGb250IHNpemUgb2YgdGFiIGl0ZW1zLlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiR0YWItaXRlbS1mb250LXNpemU6IHJlbS1jYWxjKDEyKSAhZGVmYXVsdDtcclxuXHJcbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3Igb24gaG92ZXIgZm9yIGl0ZW1zIGluIGEgTWVudS5cclxuJHRhYi1pdGVtLWJhY2tncm91bmQtaG92ZXI6ICR3aGl0ZSAhZGVmYXVsdDtcclxuXHJcbi8vLyBEZWZhdWx0IHBhZGRpbmcgb2YgYSB0YWIgaXRlbS5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kdGFiLWl0ZW0tcGFkZGluZzogMS4yNXJlbSAxLjVyZW0gIWRlZmF1bHQ7XHJcblxyXG4vLy8gTWF4aW11bSBudW1iZXIgb2YgYGV4cGFuZC1uYCBjbGFzc2VzIHRvIGluY2x1ZGUgaW4gdGhlIENTUy5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kdGFiLWV4cGFuZC1tYXg6IDYgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9mIHRhYiBjb250ZW50LlxyXG4vLy8gQHR5cGUgQ29sb3JcclxuJHRhYi1jb250ZW50LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcclxuXHJcbi8vLyBEZWZhdWx0IGJvcmRlciBjb2xvciBvZiB0YWIgY29udGVudC5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiR0YWItY29udGVudC1ib3JkZXI6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgdGV4dCBjb2xvciBvZiB0YWIgY29udGVudC5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiR0YWItY29udGVudC1jb2xvcjogZm9yZWdyb3VuZCgkdGFiLWJhY2tncm91bmQsICRwcmltYXJ5LWNvbG9yKSAhZGVmYXVsdDtcclxuXHJcbi8vLyBEZWZhdWx0IHBhZGRpbmcgZm9yIHRhYiBjb250ZW50LlxyXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxyXG4kdGFiLWNvbnRlbnQtcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcclxuXHJcbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSB0YWIgY29udGFpbmVyLiBBcHBseSB0aGlzIHRvIGEgYDx1bD5gLlxyXG5AbWl4aW4gdGFicy1jb250YWluZXIge1xyXG4gIEBpbmNsdWRlIGNsZWFyZml4O1xyXG4gIG1hcmdpbjogJHRhYi1tYXJnaW47XHJcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xyXG4gIGJhY2tncm91bmQ6ICR0YWItYmFja2dyb3VuZDtcclxuICBib3JkZXI6IDFweCBzb2xpZCAkdGFiLWNvbnRlbnQtYm9yZGVyO1xyXG59XHJcblxyXG4vLy8gQXVnbWVudHMgYSB0YWIgY29udGFpbmVyIHRvIGhhdmUgdmVydGljYWwgdGFicy4gVXNlIHRoaXMgaW4gY29uanVuY3Rpb24gd2l0aCBgdGFicy1jb250YWluZXIoKWAuXHJcbkBtaXhpbiB0YWJzLWNvbnRhaW5lci12ZXJ0aWNhbCB7XHJcbiAgPiBsaSB7XHJcbiAgICB3aWR0aDogYXV0bztcclxuICAgIGZsb2F0OiBub25lO1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgfVxyXG59XHJcblxyXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBsaW5rcyB3aXRoaW4gYSB0YWIgY29udGFpbmVyLiBBcHBseSB0aGlzIHRvIHRoZSBgPGxpPmAgZWxlbWVudHMgaW5zaWRlIGEgdGFiIGNvbnRhaW5lci5cclxuQG1peGluIHRhYnMtdGl0bGUge1xyXG4gIGZsb2F0OiAjeyRnbG9iYWwtbGVmdH07XHJcblxyXG4gID4gYSB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIHBhZGRpbmc6ICR0YWItaXRlbS1wYWRkaW5nO1xyXG4gICAgbGluZS1oZWlnaHQ6IDE7XHJcbiAgICBmb250LXNpemU6ICR0YWItaXRlbS1mb250LXNpemU7XHJcblxyXG4gICAgJjpob3ZlciB7XHJcbiAgICAgIGJhY2tncm91bmQ6ICR0YWItaXRlbS1iYWNrZ3JvdW5kLWhvdmVyO1xyXG4gICAgfVxyXG5cclxuICAgICY6Zm9jdXMsXHJcbiAgICAmW2FyaWEtc2VsZWN0ZWQ9J3RydWUnXSB7XHJcbiAgICAgIGJhY2tncm91bmQ6ICR0YWItYmFja2dyb3VuZC1hY3RpdmU7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSB3cmFwcGVyIHRoYXQgc3Vycm91bmRzIGEgdGFiIGdyb3VwJ3MgY29udGVudCBwYW5lcy5cclxuQG1peGluIHRhYnMtY29udGVudCB7XHJcbiAgYmFja2dyb3VuZDogJHRhYi1jb250ZW50LWJhY2tncm91bmQ7XHJcbiAgdHJhbnNpdGlvbjogYWxsIDAuNXMgZWFzZTtcclxuICBib3JkZXI6IDFweCBzb2xpZCAkdGFiLWNvbnRlbnQtYm9yZGVyO1xyXG4gIGJvcmRlci10b3A6IDA7XHJcbn1cclxuXHJcbi8vLyBBdWdtZW50cyBhIHRhYiBjb250ZW50IGNvbnRhaW5lciB0byBoYXZlIGEgdmVydGljYWwgc3R5bGUsIGJ5IHNoaWZ0aW5nIHRoZSBib3JkZXIgYXJvdW5kLiBVc2UgdGhpcyBpbiBjb25qdW5jdGlvbiB3aXRoIGB0YWJzLWNvbnRlbnQoKWAuXHJcbkBtaXhpbiB0YWJzLWNvbnRlbnQtdmVydGljYWwge1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkICR0YWItY29udGVudC1ib3JkZXI7XHJcbiAgYm9yZGVyLSN7JGdsb2JhbC1sZWZ0fTogMDtcclxufVxyXG5cclxuLy8vIEFkZHMgc3R5bGVzIGZvciBhbiBpbmRpdmlkdWFsIHRhYiBjb250ZW50IHBhbmVsIHdpdGhpbiB0aGUgdGFiIGNvbnRlbnQgY29udGFpbmVyLlxyXG5AbWl4aW4gdGFicy1wYW5lbCB7XHJcbiAgZGlzcGxheTogbm9uZTtcclxuICBwYWRkaW5nOiAkdGFiLWNvbnRlbnQtcGFkZGluZztcclxuXHJcbiAgJi5pcy1hY3RpdmUge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gZm91bmRhdGlvbi10YWJzIHtcclxuICAudGFicyB7XHJcbiAgICBAaW5jbHVkZSB0YWJzLWNvbnRhaW5lcjtcclxuICB9XHJcblxyXG4gIC8vIFZlcnRpY2FsXHJcbiAgLnRhYnMudmVydGljYWwge1xyXG4gICAgQGluY2x1ZGUgdGFicy1jb250YWluZXItdmVydGljYWw7XHJcbiAgfVxyXG5cclxuICAvLyBTaW1wbGVcclxuICAudGFicy5zaW1wbGUge1xyXG4gICAgPiBsaSA+IGEge1xyXG4gICAgICBwYWRkaW5nOiAwO1xyXG5cclxuICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIFByaW1hcnkgY29sb3JcclxuICAudGFicy5wcmltYXJ5IHtcclxuICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xyXG5cclxuICAgID4gbGkgPiBhIHtcclxuICAgICAgY29sb3I6IGZvcmVncm91bmQoJHByaW1hcnktY29sb3IpO1xyXG5cclxuICAgICAgJjpob3ZlcixcclxuICAgICAgJjpmb2N1cyB7XHJcbiAgICAgICAgYmFja2dyb3VuZDogc21hcnQtc2NhbGUoJHByaW1hcnktY29sb3IpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAudGFicy10aXRsZSB7XHJcbiAgICBAaW5jbHVkZSB0YWJzLXRpdGxlO1xyXG4gIH1cclxuXHJcbiAgLnRhYnMtY29udGVudCB7XHJcbiAgICBAaW5jbHVkZSB0YWJzLWNvbnRlbnQ7XHJcbiAgfVxyXG5cclxuICAudGFicy1jb250ZW50LnZlcnRpY2FsIHtcclxuICAgIEBpbmNsdWRlIHRhYnMtY29udGVudC12ZXJ0aWNhbDtcclxuICB9XHJcblxyXG4gIC50YWJzLXBhbmVsIHtcclxuICAgIEBpbmNsdWRlIHRhYnMtcGFuZWw7XHJcbiAgfVxyXG59XHJcbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcclxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxyXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcclxuXHJcbi8vLy9cclxuLy8vIEBncm91cCB0aHVtYm5haWxcclxuLy8vL1xyXG5cclxuLy8vIEJvcmRlciBhcm91bmQgdGh1bWJuYWlsIGltYWdlcy5cclxuLy8vIEB0eXBlIEJvcmRlclxyXG4kdGh1bWJuYWlsLWJvcmRlcjogc29saWQgNHB4ICR3aGl0ZSAhZGVmYXVsdDtcclxuXHJcbi8vLyBCb3R0b20gbWFyZ2luIGZvciB0aHVtYm5haWwgaW1hZ2VzLlxyXG4vLy8gQHR5cGUgTGVuZ3RoXHJcbiR0aHVtYm5haWwtbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XHJcblxyXG4vLy8gQm94IHNoYWRvdyB1bmRlciB0aHVtYm5haWwgaW1hZ2VzLlxyXG4vLy8gQHR5cGUgU2hhZG93XHJcbiR0aHVtYm5haWwtc2hhZG93OiAwIDAgMCAxcHggcmdiYSgkYmxhY2ssIDAuMikgIWRlZmF1bHQ7XHJcblxyXG4vLy8gQm94IHNoYWRvdyB1bmRlciB0aHVtYm5haWwgaW1hZ2VzLlxyXG4vLy8gQHR5cGUgU2hhZG93XHJcbiR0aHVtYm5haWwtc2hhZG93LWhvdmVyOiAwIDAgNnB4IDFweCByZ2JhKCRwcmltYXJ5LWNvbG9yLCAwLjUpICFkZWZhdWx0O1xyXG5cclxuLy8vIFRyYW5zaXRpb24gcHJvcHJ0aWVzIGZvciB0aHVtYm5haWwgaW1hZ2VzLlxyXG4vLy8gQHR5cGUgVHJhbnNpdGlvblxyXG4kdGh1bWJuYWlsLXRyYW5zaXRpb246IGJveC1zaGFkb3cgMjAwbXMgZWFzZS1vdXQgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCByYWRpdXMgZm9yIHRodW1ibmFpbCBpbWFnZXMuXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJHRodW1ibmFpbC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xyXG5cclxuLy8vIEFkZHMgdGh1bWJuYWlsIHN0eWxlcyB0byBhbiBlbGVtZW50LlxyXG5AbWl4aW4gdGh1bWJuYWlsIHtcclxuICBib3JkZXI6ICR0aHVtYm5haWwtYm9yZGVyO1xyXG4gIGJveC1zaGFkb3c6ICR0aHVtYm5haWwtc2hhZG93O1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICBsaW5lLWhlaWdodDogMDtcclxuICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgdHJhbnNpdGlvbjogJHRodW1ibmFpbC10cmFuc2l0aW9uO1xyXG4gIGJvcmRlci1yYWRpdXM6ICR0aHVtYm5haWwtcmFkaXVzO1xyXG4gIG1hcmdpbi1ib3R0b206ICR0aHVtYm5haWwtbWFyZ2luLWJvdHRvbTtcclxuXHJcbiAgJjpob3ZlcixcclxuICAmOmZvY3VzIHtcclxuICAgIGJveC1zaGFkb3c6ICR0aHVtYm5haWwtc2hhZG93LWhvdmVyO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIGZvdW5kYXRpb24tdGh1bWJuYWlsIHtcclxuICAudGh1bWJuYWlsIHtcclxuICAgIEBpbmNsdWRlIHRodW1ibmFpbDtcclxuICB9XHJcbn1cclxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxyXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXHJcbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxyXG5cclxuLy8vL1xyXG4vLy8gQGdyb3VwIHRpdGxlLWJhclxyXG4vLy8vXHJcblxyXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBhIHRpdGxlIGJhci5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiR0aXRsZWJhci1iYWNrZ3JvdW5kOiAkYmxhY2sgIWRlZmF1bHQ7XHJcblxyXG4vLy8gQ29sb3Igb2YgdGV4dCBpbnNpZGUgYSB0aXRsZSBiYXIuXHJcbi8vLyBAdHlwZSBDb2xvclxyXG4kdGl0bGViYXItY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcclxuXHJcbi8vLyBQYWRkaW5nIGluc2lkZSBhIHRpdGxlIGJhci5cclxuLy8vIEB0eXBlIExlbmd0aFxyXG4kdGl0bGViYXItcGFkZGluZzogMC41cmVtICFkZWZhdWx0O1xyXG5cclxuLy8vIEZvbnQgd2VpZ2h0IG9mIHRleHQgaW5zaWRlIGEgdGl0bGUgYmFyLlxyXG4vLy8gQHR5cGUgV2VpZ2h0XHJcbiR0aXRsZWJhci10ZXh0LWZvbnQtd2VpZ2h0OiBib2xkICFkZWZhdWx0O1xyXG5cclxuLy8vIENvbG9yIG9mIG1lbnUgaWNvbnMgaW5zaWRlIGEgdGl0bGUgYmFyLlxyXG4vLy8gQHR5cGUgQ29sb3JcclxuJHRpdGxlYmFyLWljb24tY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcclxuXHJcbi8vLyBDb2xvciBvZiBtZW51IGljb25zIGluc2lkZSBhIHRpdGxlIGJhciBvbiBob3Zlci5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiR0aXRsZWJhci1pY29uLWNvbG9yLWhvdmVyOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gU3BhY2luZyBiZXR3ZWVuIHRoZSBtZW51IGljb24gYW5kIHRleHQgaW5zaWRlIGEgdGl0bGUgYmFyLlxyXG4vLy8gQHR5cGUgTGVuZ3RoXHJcbiR0aXRsZWJhci1pY29uLXNwYWNpbmc6IDAuMjVyZW0gIWRlZmF1bHQ7XHJcblxyXG5AbWl4aW4gZm91bmRhdGlvbi10aXRsZS1iYXIge1xyXG4gIC50aXRsZS1iYXIge1xyXG4gICAgYmFja2dyb3VuZDogJHRpdGxlYmFyLWJhY2tncm91bmQ7XHJcbiAgICBjb2xvcjogJHRpdGxlYmFyLWNvbG9yO1xyXG4gICAgcGFkZGluZzogJHRpdGxlYmFyLXBhZGRpbmc7XHJcblxyXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XHJcbiAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgIH1cclxuICAgIEBlbHNlIHtcclxuICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XHJcbiAgICB9XHJcblxyXG4gICAgLm1lbnUtaWNvbiB7XHJcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICR0aXRsZWJhci1pY29uLXNwYWNpbmc7XHJcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkdGl0bGViYXItaWNvbi1zcGFjaW5nO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XHJcbiAgICAvLyBzY3NzLWxpbnQ6ZGlzYWJsZSBaZXJvVW5pdFxyXG4gICAgLnRpdGxlLWJhci1sZWZ0LFxyXG4gICAgLnRpdGxlLWJhci1yaWdodCB7XHJcbiAgICAgIGZsZXg6IDEgMSAwcHg7XHJcbiAgICB9XHJcblxyXG4gICAgLnRpdGxlLWJhci1yaWdodCB7XHJcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG4gICAgfVxyXG4gIH1cclxuICBAZWxzZSB7XHJcbiAgICAudGl0bGUtYmFyLWxlZnQge1xyXG4gICAgICBmbG9hdDogbGVmdDtcclxuICAgIH1cclxuXHJcbiAgICAudGl0bGUtYmFyLXJpZ2h0IHtcclxuICAgICAgZmxvYXQ6IHJpZ2h0O1xyXG4gICAgICB0ZXh0LWFsaWduOiByaWdodDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC50aXRsZS1iYXItdGl0bGUge1xyXG4gICAgZm9udC13ZWlnaHQ6ICR0aXRsZWJhci10ZXh0LWZvbnQtd2VpZ2h0O1xyXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICB9XHJcblxyXG4gIC5tZW51LWljb24uZGFyayB7XHJcbiAgICBAaW5jbHVkZSBoYW1idXJnZXI7XHJcbiAgfVxyXG59XHJcbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcclxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxyXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcclxuXHJcbi8vLy9cclxuLy8vIEBncm91cCB0b29sdGlwXHJcbi8vLy9cclxuXHJcbi8vLyBEZWZhdWx0IGZvbnQgd2VpZ2h0IG9mIHRoZSBkZWZpbmVkIHRlcm0uXHJcbi8vLyBAdHlwZSBLZXl3b3JkIHwgTnVtYmVyXHJcbiRoYXMtdGlwLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgYm9yZGVyIGJvdHRvbSBvZiB0aGUgZGVmaW5lZCB0ZXJtLlxyXG4vLy8gQHR5cGUgTGlzdFxyXG4kaGFzLXRpcC1ib3JkZXItYm90dG9tOiBkb3R0ZWQgMXB4ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBjb2xvciBvZiB0aGUgdG9vbHRpcCBiYWNrZ3JvdW5kLlxyXG4vLy8gQHR5cGUgQ29sb3JcclxuJHRvb2x0aXAtYmFja2dyb3VuZC1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgY29sb3Igb2YgdGhlIHRvb2x0aXAgZm9udC5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiR0b29sdGlwLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBwYWRkaW5nIG9mIHRoZSB0b29sdGlwIGJhY2tncm91bmQuXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJHRvb2x0aXAtcGFkZGluZzogMC43NXJlbSAhZGVmYXVsdDtcclxuXHJcbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBvZiB0aGUgdG9vbHRpcCB0ZXh0LiBCeSBkZWZhdWx0LCB3ZSByZWNvbW1lbmQgYSBzbWFsbGVyIGZvbnQgc2l6ZSB0aGFuIHRoZSBib2R5IGNvcHkuXHJcbi8vLyBAdHlwZSBOdW1iZXJcclxuJHRvb2x0aXAtZm9udC1zaXplOiAkc21hbGwtZm9udC1zaXplICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgcGlwIHdpZHRoIGZvciB0b29sdGlwcy5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kdG9vbHRpcC1waXAtd2lkdGg6IDAuNzVyZW0gIWRlZmF1bHQ7XHJcblxyXG4vLy8gRGVmYXVsdCBwaXAgaGVpZ2h0IGZvciB0b29sdGlwcy4gVGhpcyBpcyBoZWxwZnVsIGZvciBjYWxjdWxhdGluZyB0aGUgZGlzdGFuY2Ugb2YgdGhlIHRvb2x0aXAgZnJvbSB0aGUgdG9vbHRpcCB3b3JkLlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiR0b29sdGlwLXBpcC1oZWlnaHQ6ICR0b29sdGlwLXBpcC13aWR0aCAqIDAuODY2ICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgcmFkaXVzIGZvciB0b29sdGlwcy5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kdG9vbHRpcC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xyXG5cclxuQG1peGluIGhhcy10aXAge1xyXG4gIGJvcmRlci1ib3R0b206ICRoYXMtdGlwLWJvcmRlci1ib3R0b207XHJcbiAgZm9udC13ZWlnaHQ6ICRoYXMtdGlwLWZvbnQtd2VpZ2h0O1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgY3Vyc29yOiBoZWxwO1xyXG59XHJcblxyXG5AbWl4aW4gdG9vbHRpcCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJHRvb2x0aXAtYmFja2dyb3VuZC1jb2xvcjtcclxuICBjb2xvcjogJHRvb2x0aXAtY29sb3I7XHJcbiAgZm9udC1zaXplOiAkdG9vbHRpcC1mb250LXNpemU7XHJcbiAgcGFkZGluZzogJHRvb2x0aXAtcGFkZGluZztcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgei1pbmRleDogMTA7XHJcbiAgdG9wOiBjYWxjKDEwMCUgKyAjeyR0b29sdGlwLXBpcC1oZWlnaHR9KTtcclxuICBtYXgtd2lkdGg6IDEwcmVtICFpbXBvcnRhbnQ7XHJcbiAgYm9yZGVyLXJhZGl1czogJHRvb2x0aXAtcmFkaXVzO1xyXG5cclxuICAmOjpiZWZvcmUge1xyXG4gICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCR0b29sdGlwLXBpcC13aWR0aCwgJHRvb2x0aXAtYmFja2dyb3VuZC1jb2xvciwgdXApO1xyXG4gICAgYm90dG9tOiAxMDAlO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgbGVmdDogNTAlO1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xyXG4gIH1cclxuXHJcbiAgJi50b3A6OmJlZm9yZSB7XHJcbiAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJHRvb2x0aXAtcGlwLXdpZHRoLCAkdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yLCBkb3duKTtcclxuICAgIHRvcDogMTAwJTtcclxuICAgIGJvdHRvbTogYXV0bztcclxuICB9XHJcblxyXG4gICYubGVmdDo6YmVmb3JlIHtcclxuICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkdG9vbHRpcC1waXAtd2lkdGgsICR0b29sdGlwLWJhY2tncm91bmQtY29sb3IsIHJpZ2h0KTtcclxuICAgIGJvdHRvbTogYXV0bztcclxuICAgIGxlZnQ6IDEwMCU7XHJcbiAgICB0b3A6IDUwJTtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcclxuICB9XHJcblxyXG4gICYucmlnaHQ6OmJlZm9yZSB7XHJcbiAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJHRvb2x0aXAtcGlwLXdpZHRoLCAkdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yLCBsZWZ0KTtcclxuICAgIGJvdHRvbTogYXV0bztcclxuICAgIGxlZnQ6IGF1dG87XHJcbiAgICByaWdodDogMTAwJTtcclxuICAgIHRvcDogNTAlO1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIGZvdW5kYXRpb24tdG9vbHRpcCB7XHJcbiAgLmhhcy10aXAge1xyXG4gICAgQGluY2x1ZGUgaGFzLXRpcDtcclxuICB9XHJcblxyXG4gIC50b29sdGlwIHtcclxuICAgIEBpbmNsdWRlIHRvb2x0aXA7XHJcbiAgfVxyXG59XHJcbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcclxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxyXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcclxuXHJcbi8vLy9cclxuLy8vIEBncm91cCB0b3AtYmFyXHJcbi8vLy9cclxuXHJcbi8vLyBQYWRkaW5nIGZvciB0aGUgdG9wIGJhci5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kdG9wYmFyLXBhZGRpbmc6IDAuNXJlbSAhZGVmYXVsdDtcclxuXHJcbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciB0aGUgdG9wIGJhci4gVGhpcyBjb2xvciBhbHNvIGNhc2NhZGVzIHRvIG1lbnVzIHdpdGhpbiB0aGUgdG9wIGJhci5cclxuLy8vIEB0eXBlIENvbG9yXHJcbiR0b3BiYXItYmFja2dyb3VuZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XHJcblxyXG4vLy8gQmFja2dyb3VuZCBjb2xvciBzdWJtZW51cyB3aXRoaW4gdGhlIHRvcCBiYXIuIFVzZWZ1bGwgaWYgJHRvcGJhci1iYWNrZ3JvdW5kIGlzIHRyYW5zcGFyZW50LlxyXG4vLy8gQHR5cGUgQ29sb3JcclxuJHRvcGJhci1zdWJtZW51LWJhY2tncm91bmQ6ICR0b3BiYXItYmFja2dyb3VuZCAhZGVmYXVsdDtcclxuXHJcbi8vLyBTcGFjaW5nIGZvciB0aGUgdG9wIGJhciB0aXRsZS5cclxuLy8vIEB0eXBlIE51bWJlclxyXG4kdG9wYmFyLXRpdGxlLXNwYWNpbmc6IDFyZW0gIWRlZmF1bHQ7XHJcblxyXG4vLy8gTWF4aW11bSB3aWR0aCBvZiBgPGlucHV0PmAgZWxlbWVudHMgaW5zaWRlIHRoZSB0b3AgYmFyLlxyXG4vLy8gQHR5cGUgTnVtYmVyXHJcbiR0b3BiYXItaW5wdXQtd2lkdGg6IDIwMHB4ICFkZWZhdWx0O1xyXG5cclxuLy8vIEJyZWFrcG9pbnQgYXQgd2hpY2ggdG9wIGJhciBzd2l0Y2hlcyBmcm9tIG1vYmlsZSB0byBkZXNrdG9wIHZpZXcuXHJcbi8vLyBAdHlwZSBCcmVha3BvaW50XHJcbiR0b3BiYXItdW5zdGFjay1icmVha3BvaW50OiBtZWRpdW0gIWRlZmF1bHQ7XHJcblxyXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgdG9wIGJhciBjb250YWluZXIuXHJcbkBtaXhpbiB0b3AtYmFyLWNvbnRhaW5lciB7XHJcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgIGZsZXgtd3JhcDogbm93cmFwO1xyXG4gIH1cclxuICBAZWxzZSB7XHJcbiAgICBAaW5jbHVkZSBjbGVhcmZpeDtcclxuICB9XHJcblxyXG4gIHBhZGRpbmc6ICR0b3BiYXItcGFkZGluZztcclxuXHJcbiAgJixcclxuICB1bCB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdG9wYmFyLWJhY2tncm91bmQ7XHJcbiAgfVxyXG5cclxuICAvLyBDaGVjayBpZiAkdG9wYmFyLWJhY2tncm91bmQgaXMgZGlmZmVybnQgZnJvbSAkdG9wYmFyLWJhY2tncm91bmQtc3VibWVudVxyXG4gIEBpZiAoJHRvcGJhci1iYWNrZ3JvdW5kICE9ICR0b3BiYXItc3VibWVudS1iYWNrZ3JvdW5kKSB7XHJcbiAgICB1bCB1bCB7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0b3BiYXItc3VibWVudS1iYWNrZ3JvdW5kO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gUmVzdHJhaW4gd2lkdGggb2YgaW5wdXRzIGJ5IGRlZmF1bHQgdG8gbWFrZSB0aGVtIGVhc2llciB0byBhcnJhbmdlXHJcbiAgaW5wdXQge1xyXG4gICAgbWF4LXdpZHRoOiAkdG9wYmFyLWlucHV0LXdpZHRoO1xyXG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IDFyZW07XHJcbiAgfVxyXG5cclxuICAvLyBUaGUgYWJvdmUgc3R5bGVzIHNob3VsZG4ndCBhcHBseSB0byBpbnB1dCBncm91cCBmaWVsZHNcclxuICAuaW5wdXQtZ3JvdXAtZmllbGQge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogMDtcclxuICB9XHJcblxyXG4gIC8vIHNjc3MtbGludDpkaXNhYmxlIFF1YWxpZnlpbmdFbGVtZW50XHJcbiAgaW5wdXQuYnV0dG9uIHtcclxuICAgIHdpZHRoOiBhdXRvO1xyXG4gIH1cclxufVxyXG5cclxuLy8vIE1ha2VzIHNlY3Rpb25zIG9mIGEgdG9wIGJhciBzdGFjayBvbiB0b3Agb2YgZWFjaCBvdGhlci5cclxuQG1peGluIHRvcC1iYXItc3RhY2tlZCB7XHJcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XHJcbiAgICBmbGV4LXdyYXA6IHdyYXA7XHJcblxyXG4gICAgLy8gU3ViLXNlY3Rpb25zXHJcbiAgICAudG9wLWJhci1sZWZ0LFxyXG4gICAgLnRvcC1iYXItcmlnaHQge1xyXG4gICAgICBmbGV4OiAwIDAgMTAwJTtcclxuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgfVxyXG4gIH1cclxuICBAZWxzZSB7XHJcbiAgICAvLyBTdWItc2VjdGlvbnNcclxuICAgIC50b3AtYmFyLWxlZnQsXHJcbiAgICAudG9wLWJhci1yaWdodCB7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLy8vIFVuZG9lcyB0aGUgQ1NTIGFwcGxpZWQgYnkgdGhlIGB0b3AtYmFyLXN0YWNrZWQoKWAgbWl4aW4uXHJcbkBtaXhpbiB0b3AtYmFyLXVuc3RhY2sge1xyXG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xyXG4gICAgZmxleC13cmFwOiBub3dyYXA7XHJcblxyXG4gICAgLy8gc2Nzcy1saW50OmRpc2FibGUgWmVyb1VuaXRcclxuICAgIC50b3AtYmFyLWxlZnQsXHJcbiAgICAudG9wLWJhci1yaWdodCB7XHJcbiAgICAgIGZsZXg6IDEgMSAwcHg7XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBlbHNlIHtcclxuICAgIC50b3AtYmFyLWxlZnQsXHJcbiAgICAudG9wLWJhci1yaWdodCB7XHJcbiAgICAgIHdpZHRoOiBhdXRvO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuQG1peGluIGZvdW5kYXRpb24tdG9wLWJhciB7XHJcbiAgLy8gVG9wIGJhciBjb250YWluZXJcclxuICAudG9wLWJhciB7XHJcbiAgICBAaW5jbHVkZSB0b3AtYmFyLWNvbnRhaW5lcjtcclxuXHJcbiAgICAvLyBTdGFjayBvbiBzbWFsbCBzY3JlZW5zIGJ5IGRlZmF1bHRcclxuICAgIEBpbmNsdWRlIHRvcC1iYXItc3RhY2tlZDtcclxuXHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCR0b3BiYXItdW5zdGFjay1icmVha3BvaW50KSB7XHJcbiAgICAgIEBpbmNsdWRlIHRvcC1iYXItdW5zdGFjaztcclxuICAgIH1cclxuXHJcbiAgICAvLyBHZW5lcmF0ZSBjbGFzc2VzIGZvciBzdGFja2luZyBvbiBlYWNoIHNjcmVlbiBzaXplIChkZWZpbmVkIGluICRicmVha3BvaW50LWNsYXNzZXMpXHJcbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcclxuICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcclxuICAgICAgICAmLnN0YWNrZWQtZm9yLSN7JHNpemV9IHtcclxuICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUgZG93bikge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSB0b3AtYmFyLXN0YWNrZWQ7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBTdWItc2VjdGlvbnNcclxuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcclxuICAgIC50b3AtYmFyLXRpdGxlIHtcclxuICAgICAgZmxleDogMCAwIGF1dG87XHJcbiAgICAgIG1hcmdpbi1yaWdodDogJHRvcGJhci10aXRsZS1zcGFjaW5nO1xyXG4gICAgfVxyXG5cclxuICAgIC50b3AtYmFyLWxlZnQsXHJcbiAgICAudG9wLWJhci1yaWdodCB7XHJcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xyXG4gICAgfVxyXG4gIH1cclxuICBAZWxzZSB7XHJcbiAgICAudG9wLWJhci10aXRsZSB7XHJcbiAgICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgICBtYXJnaW4tcmlnaHQ6ICR0b3BiYXItdGl0bGUtc3BhY2luZztcclxuXHJcbiAgICB9XHJcblxyXG4gICAgLnRvcC1iYXItbGVmdCB7XHJcbiAgICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgfVxyXG5cclxuICAgIC50b3AtYmFyLXJpZ2h0IHtcclxuICAgICAgZmxvYXQ6IHJpZ2h0O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXHJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cclxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXHJcblxyXG4vLy8gSGlkZSBhbiBlbGVtZW50IGJ5IGRlZmF1bHQsIG9ubHkgZGlzcGxheWluZyBpdCBhYm92ZSBhIGNlcnRhaW4gc2NyZWVuIHNpemUuXHJcbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIC0gQnJlYWtwb2ludCB0byB1c2UuICoqTXVzdCBiZSBhIGJyZWFrcG9pbnQgZGVmaW5lZCBpbiBgJGJyZWFrcG9pbnRzYC4qKlxyXG5AbWl4aW4gc2hvdy1mb3IoJHNpemUpIHtcclxuICAkc2l6ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICRzaXplKTtcclxuICAkc2l6ZTogLXpmLWJwLXRvLWVtKCRzaXplKSAtICgxIC8gMTYpO1xyXG5cclxuICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplIGRvd24pIHtcclxuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcclxuICB9XHJcbn1cclxuXHJcbi8vLyBIaWRlIGFuIGVsZW1lbnQgYnkgZGVmYXVsdCwgb25seSBkaXNwbGF5aW5nIGl0IHdpdGhpbiBhIGNlcnRhaW4gYnJlYWtwb2ludC5cclxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgLSBCcmVha3BvaW50IHRvIHVzZS4gKipNdXN0IGJlIGEgYnJlYWtwb2ludCBkZWZpbmVkIGluIGAkYnJlYWtwb2ludHNgLioqXHJcbkBtaXhpbiBzaG93LWZvci1vbmx5KCRzaXplKSB7XHJcbiAgJGxvd2VyLWJvdW5kLXNpemU6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkc2l6ZSk7XHJcbiAgJHVwcGVyLWJvdW5kLXNpemU6IC16Zi1tYXAtbmV4dCgkYnJlYWtwb2ludHMsICRzaXplKTtcclxuXHJcbiAgLy8gbW9yZSBvZnRlbiB0aGFuIG5vdCB0aGlzIHdpbGwgYmUgY29ycmVjdCwganVzdCBvbmUgdGltZSByb3VuZCB0aGUgbG9vcCBpdCB3b24ndCBzbyBzZXQgaW4gc2NvcGUgaGVyZVxyXG4gICRsb3dlci1ib3VuZDogLXpmLWJwLXRvLWVtKCRsb3dlci1ib3VuZC1zaXplKSAtICgxIC8gMTYpO1xyXG4gIC8vIHRlc3QgYWN0dWFsIGxvd2VyLWJvdW5kLXNpemUsIGlmIDAgc2V0IGl0IHRvIDBlbVxyXG4gIEBpZiBzdHJpcC11bml0KCRsb3dlci1ib3VuZC1zaXplKSA9PSAwIHtcclxuICAgICRsb3dlci1ib3VuZDogLXpmLWJwLXRvLWVtKCRsb3dlci1ib3VuZC1zaXplKTtcclxuICB9XHJcblxyXG4gIEBpZiAkdXBwZXItYm91bmQtc2l6ZSA9PSBudWxsIHtcclxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRsb3dlci1ib3VuZCkge1xyXG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBlbHNlIHtcclxuICAgICR1cHBlci1ib3VuZDogLXpmLWJwLXRvLWVtKCR1cHBlci1ib3VuZC1zaXplKTtcclxuXHJcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkbG93ZXItYm91bmQpLCBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICR1cHBlci1ib3VuZCkge1xyXG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLy8vIFNob3cgYW4gZWxlbWVudCBieSBkZWZhdWx0LCBhbmQgaGlkZSBpdCBhYm92ZSBhIGNlcnRhaW4gc2NyZWVuIHNpemUuXHJcbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIC0gQnJlYWtwb2ludCB0byB1c2UuICoqTXVzdCBiZSBhIGJyZWFrcG9pbnQgZGVmaW5lZCBpbiBgJGJyZWFrcG9pbnRzYC4qKlxyXG5AbWl4aW4gaGlkZS1mb3IoJHNpemUpIHtcclxuICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XHJcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG59XHJcblxyXG4vLy8gU2hvdyBhbiBlbGVtZW50IGJ5IGRlZmF1bHQsIGFuZCBoaWRlIGl0IGFib3ZlIGEgY2VydGFpbiBzY3JlZW4gc2l6ZS5cclxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgLSBCcmVha3BvaW50IHRvIHVzZS4gKipNdXN0IGJlIGEgYnJlYWtwb2ludCBkZWZpbmVkIGluIGAkYnJlYWtwb2ludHNgLioqXHJcbkBtaXhpbiBoaWRlLWZvci1vbmx5KCRzaXplKSB7XHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSBvbmx5KSB7XHJcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gZm91bmRhdGlvbi12aXNpYmlsaXR5LWNsYXNzZXMge1xyXG4gIC8vIEJhc2ljIGhpZGluZyBjbGFzc2VzXHJcbiAgLmhpZGUge1xyXG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmludmlzaWJsZSB7XHJcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XHJcbiAgfVxyXG5cclxuICAvLyBSZXNwb25zaXZlIHZpc2liaWxpdHkgY2xhc3Nlc1xyXG4gIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xyXG4gICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcclxuICAgICAgLmhpZGUtZm9yLSN7JHNpemV9IHtcclxuICAgICAgICBAaW5jbHVkZSBoaWRlLWZvcigkc2l6ZSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5zaG93LWZvci0jeyRzaXplfSB7XHJcbiAgICAgICAgQGluY2x1ZGUgc2hvdy1mb3IoJHNpemUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmhpZGUtZm9yLSN7JHNpemV9LW9ubHkge1xyXG4gICAgICBAaW5jbHVkZSBoaWRlLWZvci1vbmx5KCRzaXplKTtcclxuICAgIH1cclxuXHJcbiAgICAuc2hvdy1mb3ItI3skc2l6ZX0tb25seSB7XHJcbiAgICAgIEBpbmNsdWRlIHNob3ctZm9yLW9ubHkoJHNpemUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gU2NyZWVuIHJlYWRlciB2aXNpYmlsaXR5IGNsYXNzZXNcclxuICAvLyBOZWVkIGEgXCJoaWRlLWZvci1zclwiIGNsYXNzPyBBZGQgYXJpYS1oaWRkZW49J3RydWUnIHRvIHRoZSBlbGVtZW50XHJcbiAgLnNob3ctZm9yLXNyLFxyXG4gIC5zaG93LW9uLWZvY3VzIHtcclxuICAgIEBpbmNsdWRlIGVsZW1lbnQtaW52aXNpYmxlO1xyXG4gIH1cclxuXHJcbiAgLy8gT25seSBkaXNwbGF5IHRoZSBlbGVtZW50IHdoZW4gaXQncyBmb2N1c2VkXHJcbiAgLnNob3ctb24tZm9jdXMge1xyXG4gICAgJjphY3RpdmUsXHJcbiAgICAmOmZvY3VzIHtcclxuICAgICAgQGluY2x1ZGUgZWxlbWVudC1pbnZpc2libGUtb2ZmO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gTGFuZHNjYXBlIGFuZCBwb3J0cmFpdCB2aXNpYmlsaXR5XHJcbiAgLnNob3ctZm9yLWxhbmRzY2FwZSxcclxuICAuaGlkZS1mb3ItcG9ydHJhaXQge1xyXG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcclxuXHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhbmRzY2FwZSkge1xyXG4gICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQocG9ydHJhaXQpIHtcclxuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmhpZGUtZm9yLWxhbmRzY2FwZSxcclxuICAuc2hvdy1mb3ItcG9ydHJhaXQge1xyXG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xyXG5cclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFuZHNjYXBlKSB7XHJcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHBvcnRyYWl0KSB7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcclxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxyXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcclxuXHJcbi8vLy9cclxuLy8vIEBncm91cCBmbG9hdFxyXG4vLy8vXHJcblxyXG5AbWl4aW4gZm91bmRhdGlvbi1mbG9hdC1jbGFzc2VzIHtcclxuICAuZmxvYXQtbGVmdCB7XHJcbiAgICBmbG9hdDogbGVmdCAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmZsb2F0LXJpZ2h0IHtcclxuICAgIGZsb2F0OiByaWdodCAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmZsb2F0LWNlbnRlciB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xyXG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xyXG4gIH1cclxuXHJcbiAgLmNsZWFyZml4IHtcclxuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xyXG4gIH1cclxufVxyXG4iLCIvLyBzY3NzLWxpbnQ6ZGlzYWJsZSBJbXBvcnRhbnRSdWxlLCBTcGFjZUFmdGVyQ29tbWEsIFNpbmdsZUxpbmVQZXJQcm9wZXJ0eVxyXG5cclxuQG1peGluIC1tb3Rpb24tdWktZGVmYXVsdHMge1xyXG4gIHRyYW5zaXRpb24tZHVyYXRpb246IG1hcC1nZXQoJG1vdGlvbi11aS1zcGVlZHMsIGRlZmF1bHQpO1xyXG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBtYXAtZ2V0KCRtb3Rpb24tdWktZWFzaW5ncywgZGVmYXVsdCk7XHJcbn1cclxuXHJcbi8vIFRyYW5zaXRpb25zXHJcbi8vIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtXHJcbkBtaXhpbiBtb3Rpb24tdWktdHJhbnNpdGlvbnMge1xyXG4gIC8vIFNsaWRlXHJcbiAgLnNsaWRlLWluLWRvd24gICAgeyBAaW5jbHVkZSBtdWktc2xpZGUoaW4sICBkb3duKTsgfVxyXG4gIC5zbGlkZS1pbi1sZWZ0ICAgIHsgQGluY2x1ZGUgbXVpLXNsaWRlKGluLCAgcmlnaHQpOyB9XHJcbiAgLnNsaWRlLWluLXVwICAgICAgeyBAaW5jbHVkZSBtdWktc2xpZGUoaW4sICB1cCk7IH1cclxuICAuc2xpZGUtaW4tcmlnaHQgICB7IEBpbmNsdWRlIG11aS1zbGlkZShpbiwgIGxlZnQpOyB9XHJcbiAgLnNsaWRlLW91dC1kb3duICAgeyBAaW5jbHVkZSBtdWktc2xpZGUob3V0LCBkb3duKTsgfVxyXG4gIC5zbGlkZS1vdXQtcmlnaHQgIHsgQGluY2x1ZGUgbXVpLXNsaWRlKG91dCwgcmlnaHQpOyB9XHJcbiAgLnNsaWRlLW91dC11cCAgICAgeyBAaW5jbHVkZSBtdWktc2xpZGUob3V0LCB1cCk7IH1cclxuICAuc2xpZGUtb3V0LWxlZnQgICB7IEBpbmNsdWRlIG11aS1zbGlkZShvdXQsIGxlZnQpOyB9XHJcblxyXG4gIC8vIEZhZGVcclxuICAuZmFkZS1pbiAgeyBAaW5jbHVkZSBtdWktZmFkZShpbiwgIDAsIDEpOyB9XHJcbiAgLmZhZGUtb3V0IHsgQGluY2x1ZGUgbXVpLWZhZGUob3V0LCAxLCAwKTsgfVxyXG5cclxuICAvLyBIaW5nZVxyXG4gIC5oaW5nZS1pbi1mcm9tLXRvcCAgICAgIHsgQGluY2x1ZGUgbXVpLWhpbmdlKGluLCAgdG9wKTsgfVxyXG4gIC5oaW5nZS1pbi1mcm9tLXJpZ2h0ICAgIHsgQGluY2x1ZGUgbXVpLWhpbmdlKGluLCAgcmlnaHQpOyB9XHJcbiAgLmhpbmdlLWluLWZyb20tYm90dG9tICAgeyBAaW5jbHVkZSBtdWktaGluZ2UoaW4sICBib3R0b20pOyB9XHJcbiAgLmhpbmdlLWluLWZyb20tbGVmdCAgICAgeyBAaW5jbHVkZSBtdWktaGluZ2UoaW4sICBsZWZ0KTsgfVxyXG4gIC5oaW5nZS1pbi1mcm9tLW1pZGRsZS14ICB7IEBpbmNsdWRlIG11aS1oaW5nZShpbiwgIHRvcCwgICBjZW50ZXIpOyB9XHJcbiAgLmhpbmdlLWluLWZyb20tbWlkZGxlLXkgIHsgQGluY2x1ZGUgbXVpLWhpbmdlKGluLCAgcmlnaHQsIGNlbnRlcik7IH1cclxuICAuaGluZ2Utb3V0LWZyb20tdG9wICAgICB7IEBpbmNsdWRlIG11aS1oaW5nZShvdXQsIHRvcCk7IH1cclxuICAuaGluZ2Utb3V0LWZyb20tcmlnaHQgICB7IEBpbmNsdWRlIG11aS1oaW5nZShvdXQsIHJpZ2h0KTsgfVxyXG4gIC5oaW5nZS1vdXQtZnJvbS1ib3R0b20gIHsgQGluY2x1ZGUgbXVpLWhpbmdlKG91dCwgYm90dG9tKTsgfVxyXG4gIC5oaW5nZS1vdXQtZnJvbS1sZWZ0ICAgIHsgQGluY2x1ZGUgbXVpLWhpbmdlKG91dCwgbGVmdCk7IH1cclxuICAuaGluZ2Utb3V0LWZyb20tbWlkZGxlLXggeyBAaW5jbHVkZSBtdWktaGluZ2Uob3V0LCB0b3AsICAgY2VudGVyKTsgfVxyXG4gIC5oaW5nZS1vdXQtZnJvbS1taWRkbGUteSB7IEBpbmNsdWRlIG11aS1oaW5nZShvdXQsIHJpZ2h0LCBjZW50ZXIpOyB9XHJcblxyXG4gIC8vIFNjYWxlXHJcbiAgLnNjYWxlLWluLXVwICAgIHsgQGluY2x1ZGUgbXVpLXpvb20oaW4sICAwLjUsIDEpOyB9XHJcbiAgLnNjYWxlLWluLWRvd24gIHsgQGluY2x1ZGUgbXVpLXpvb20oaW4sICAxLjUsIDEpOyB9XHJcbiAgLnNjYWxlLW91dC11cCAgIHsgQGluY2x1ZGUgbXVpLXpvb20ob3V0LCAxLCAxLjUpOyB9XHJcbiAgLnNjYWxlLW91dC1kb3duIHsgQGluY2x1ZGUgbXVpLXpvb20ob3V0LCAxLCAwLjUpOyB9XHJcblxyXG4gIC8vIFNwaW5cclxuICAuc3Bpbi1pbiAgICAgeyBAaW5jbHVkZSBtdWktc3BpbihpbiwgIGN3KTsgfVxyXG4gIC5zcGluLW91dCAgICB7IEBpbmNsdWRlIG11aS1zcGluKG91dCwgY3cpOyB9XHJcbiAgLnNwaW4taW4tY2N3ICB7IEBpbmNsdWRlIG11aS1zcGluKGluLCAgY2N3KTsgfVxyXG4gIC5zcGluLW91dC1jY3cgeyBAaW5jbHVkZSBtdWktc3BpbihvdXQsIGNjdyk7IH1cclxuXHJcbiAgLy8gVHJhbnNpdGlvbiBNb2RpZmllcnNcclxuICAvLyAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLVxyXG5cclxuICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRtb3Rpb24tdWktc3BlZWRzIHtcclxuICAgIEBpZiAkbmFtZSAhPSBkZWZhdWx0IHtcclxuICAgICAgLiN7JG5hbWV9IHsgdHJhbnNpdGlvbi1kdXJhdGlvbjogJHZhbHVlICFpbXBvcnRhbnQ7IH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJG1vdGlvbi11aS1lYXNpbmdzIHtcclxuICAgIEBpZiAkbmFtZSAhPSBkZWZhdWx0IHtcclxuICAgICAgLiN7JG5hbWV9IHsgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246ICR2YWx1ZSAhaW1wb3J0YW50OyB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRtb3Rpb24tdWktZGVsYXlzIHtcclxuICAgIEBpZiAkbmFtZSAhPSBkZWZhdWx0IHtcclxuICAgICAgLiN7JG5hbWV9LWRlbGF5IHsgdHJhbnNpdGlvbi1kZWxheTogJHZhbHVlICFpbXBvcnRhbnQ7IH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8vIEFuaW1hdGlvbnNcclxuLy8gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC1cclxuQG1peGluIG1vdGlvbi11aS1hbmltYXRpb25zIHtcclxuICAuc2hha2UgICAgeyBAaW5jbHVkZSBtdWktYW5pbWF0aW9uKHNoYWtlKTsgfVxyXG4gIC5zcGluLWN3ICB7IEBpbmNsdWRlIG11aS1hbmltYXRpb24oc3Bpbik7IH1cclxuICAuc3Bpbi1jY3cgeyBAaW5jbHVkZSBtdWktYW5pbWF0aW9uKHNwaW4oY2N3KSk7IH1cclxuICAud2lnZ2xlICAgeyBAaW5jbHVkZSBtdWktYW5pbWF0aW9uKHdpZ2dsZSk7IH1cclxuXHJcbiAgLnNoYWtlLFxyXG4gIC5zcGluLWN3LFxyXG4gIC5zcGluLWNjdyxcclxuICAud2lnZ2xlIHtcclxuICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogbWFwLWdldCgkbW90aW9uLXVpLXNwZWVkcywgZGVmYXVsdCk7XHJcbiAgfVxyXG5cclxuICAvLyBBbmltYXRpb24gTW9kaWZpZXJzXHJcbiAgLy8gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC1cclxuICAuaW5maW5pdGUgeyBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTsgfVxyXG5cclxuICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRtb3Rpb24tdWktc3BlZWRzIHtcclxuICAgIEBpZiAkbmFtZSAhPSBkZWZhdWx0IHtcclxuICAgICAgLiN7JG5hbWV9IHsgYW5pbWF0aW9uLWR1cmF0aW9uOiAkdmFsdWUgIWltcG9ydGFudDsgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkbW90aW9uLXVpLWVhc2luZ3Mge1xyXG4gICAgQGlmICRuYW1lICE9IGRlZmF1bHQge1xyXG4gICAgICAuI3skbmFtZX0geyBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiAkdmFsdWUgIWltcG9ydGFudDsgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkbW90aW9uLXVpLWRlbGF5cyB7XHJcbiAgICBAaWYgJG5hbWUgIT0gZGVmYXVsdCB7XHJcbiAgICAgIC4jeyRuYW1lfS1kZWxheSB7IGFuaW1hdGlvbi1kZWxheTogJHZhbHVlICFpbXBvcnRhbnQ7IH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLy8vIEZvcm1hdCBmb3IgQ1NTIGNsYXNzZXMgY3JlYXRlZCB3aXRoIE1vdGlvbiBVSS5cclxuLy8vIEB0eXBlIE1hcFxyXG4vLy8gQHByb3Age0Jvb2xlYW59IGFwcGVuZCBbdHJ1ZV0gLSBEZWZpbmVzIGlmIHNlbGVjdG9ycyBhcmUgY2hhaW5lZCB0byB0aGUgc2VsZWN0b3IgKGAuY2xhc3MuZW50ZXJgKSwgb3IgYXBwZW5kZWQgYXMgYSBuZXcgY2xhc3MgKGAuY2xhc3MtZW50ZXJgKS5cclxuLy8vIEBwcm9wIHtTdHJpbmd9IHByZWZpeCBbJ211aS0nXSAtIFByZWZpeCB0byBhZGQgYmVmb3JlIHRoZSBzdGF0ZSBvZiBhIGNsYXNzLiBFbnRlciBhbiBlbXB0eSBzdHJpbmcgdG8gdXNlIG5vIHByZWZpeC5cclxuLy8vIEBwcm9wIHtTdHJpbmd9IHByZWZpeCBbJy1hY3RpdmUnXSAtIFN1ZmZpeCB0byBhZGQgdG8gdGhlIGFjdGl2ZSBzdGF0ZSBjbGFzcy5cclxuJG1vdGlvbi11aS1jbGFzc2VzOiAoXHJcbiAgY2hhaW46IHRydWUsXHJcbiAgcHJlZml4OiAnbXVpLScsXHJcbiAgYWN0aXZlOiAnLWFjdGl2ZScsXHJcbikgIWRlZmF1bHQ7XHJcblxyXG4vLy8gU3RhdGUgbmFtZXMgdG8gcmVmZXJlbmNlIHdoZW4gd3JpdGluZyBtb3Rpb24gY2xhc3Nlcy4gVG8gdXNlIG11bHRpcGxlIGNsYXNzIG5hbWVzIGZvciBvbmUgc3RhdGUsIGVudGVyIGEgbGlzdCBvZiBzdHJpbmdzIGluc3RlYWQgb2Ygb25lIHN0cmluZy5cclxuLy8vIEB0eXBlIE1hcFxyXG4kbW90aW9uLXVpLXN0YXRlczogKFxyXG4gIGluOiAnZW50ZXInLFxyXG4gIG91dDogJ2xlYXZlJyxcclxuKSAhZGVmYXVsdDtcclxuXHJcbi8vLyBEZWZhdWx0IHNwZWVkIHRoYXQgdHJhbnNpdGlvbnMgYW5kIGFuaW1hdGlvbnMgcGxheSBhdCwgYWxvbmcgd2l0aCB2YWx1ZXMgZm9yIG1vZGlmaWVyIGNsYXNzZXMgdG8gY2hhbmdlIHRoZSBzcGVlZC5cclxuLy8vIEB0eXBlIE1hcFxyXG4kbW90aW9uLXVpLXNwZWVkczogKFxyXG4gIGRlZmF1bHQ6IDUwMG1zLFxyXG4gIHNsb3c6IDc1MG1zLFxyXG4gIGZhc3Q6IDI1MG1zLFxyXG4pICFkZWZhdWx0O1xyXG5cclxuLy8vIERlZmF1bHQgZGVsYXkgdG8gYWRkIGJlZm9yZSBtb3Rpb24sIGFsb25nIHdpdGggdmFsdWVzIGZvciBtb2RpZmllciBjbGFzc2VzIHRvIGNoYW5nZSB0aGUgZGVsYXkuXHJcbi8vLyBAdHlwZSBNYXBcclxuJG1vdGlvbi11aS1kZWxheXM6IChcclxuICBkZWZhdWx0OiAwLFxyXG4gIHNob3J0OiAzMDBtcyxcclxuICBsb25nOiA3MDBtcyxcclxuKSAhZGVmYXVsdDtcclxuXHJcbi8vLyBEZWZhdWx0IGVhc2luZyBmb3IgdHJhbnNpdGlvbnMgYW5kIGFuaW1hdGlvbnMsIGFsb25nIHdpdGggdmFsdWVzIGZvciBtb2RpZmllciBjbGFzc2VzIHRvIGNoYW5nZSB0aGUgZWFzaW5nLlxyXG4vLy8gQHR5cGUgTWFwXHJcbiRtb3Rpb24tdWktZWFzaW5nczogKFxyXG4gIGRlZmF1bHQ6IGxpbmVhcixcclxuICBsaW5lYXI6IGxpbmVhcixcclxuICBlYXNlOiBlYXNlLFxyXG4gIGVhc2UtaW46IGVhc2UtaW4sXHJcbiAgZWFzZS1vdXQ6IGVhc2Utb3V0LFxyXG4gIGVhc2UtaW4tb3V0OiBlYXNlLWluLW91dCxcclxuICBib3VuY2UtaW46IGN1YmljLWJlemllcigwLjQ4NSwgMC4xNTUsIDAuMjQsIDEuMjQ1KSxcclxuICBib3VuY2Utb3V0OiBjdWJpYy1iZXppZXIoMC40ODUsIDAuMTU1LCAwLjUxNSwgMC44NDUpLFxyXG4gIGJvdW5jZS1pbi1vdXQ6IGN1YmljLWJlemllcigwLjc2LCAtMC4yNDUsIDAuMjQsIDEuMjQ1KSxcclxuKSAhZGVmYXVsdDtcclxuXHJcbi8vLyBNaXNjZWxsYW5lb3VzIHNldHRpbmdzIHJlbGF0ZWQgdG8gTW90aW9uIFVJLlxyXG4vLy8gQHR5cGUgTWFwXHJcbi8vLyBAcHJvcCB7Qm9vbGVhbn0gc2xpZGUtYW5kLWZhZGUgW2ZhbHNlXSAtIERlZmluZXMgaWYgc2xpZGUgbW90aW9ucyBzaG91bGQgYWxzbyBmYWRlIGluL291dC5cclxuLy8vIEBwcm9wIHtCb29sZWFufSBzbGlkZS1hbmQtZmFkZSBbdHJ1ZV0gLSBEZWZpbmVzIGlmIGhpbmdlIG1vdGlvbnMgc2hvdWxkIGFsc28gZmFkZSBpbi9vdXQuXHJcbi8vLyBAcHJvcCB7Qm9vbGVhbn0gc2xpZGUtYW5kLWZhZGUgW3RydWVdIC0gRGVmaW5lcyBpZiBzY2FsZSBtb3Rpb25zIHNob3VsZCBhbHNvIGZhZGUgaW4vb3V0LlxyXG4vLy8gQHByb3Age0Jvb2xlYW59IHNsaWRlLWFuZC1mYWRlIFt0cnVlXSAtIERlZmluZXMgaWYgc3BpbiBtb3Rpb25zIHNob3VsZCBhbHNvIGZhZGUgaW4vb3V0LlxyXG4kbW90aW9uLXVpLXNldHRpbmdzOiAoXHJcbiAgc2xpZGUtYW5kLWZhZGU6IGZhbHNlLFxyXG4gIGhpbmdlLWFuZC1mYWRlOiB0cnVlLFxyXG4gIHNjYWxlLWFuZC1mYWRlOiB0cnVlLFxyXG4gIHNwaW4tYW5kLWZhZGU6IHRydWUsXHJcbiAgYWN0aXZhdGUtcXVldWUtY2xhc3M6ICdpcy1hbmltYXRpbmcnLFxyXG4pICFkZWZhdWx0O1xyXG4iLCIvLyBJbnRlcm5hbCBjb3VudGVyIGZvciBjcmVhdGluZyB1bmlxdWUga2V5ZnJhbWUgbmFtZXNcclxuJC1tdWktY3VzdG9tOiAwO1xyXG5cclxuLy8vIENyZWF0ZXMgYSBrZXlmcmFtZSBmcm9tIG9uZSBvciBtb3JlIGVmZmVjdCBmdW5jdGlvbnMuIFVzZSB0aGlzIGZ1bmN0aW9uIGluc3RlYWQgb2YgYG11aS1hbmltYXRpb25gIGlmIHlvdSB3YW50IHRvIGNyZWF0ZSBhIGtleWZyYW1lIGFuaW1hdGlvbiAqd2l0aG91dCogYXV0b21hdGljYWxseSBhc3NpZ25pbmcgaXQgdG8gdGhlIGVsZW1lbnQuXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJG5hbWUgLSBOYW1lIG9mIHRoZSBrZXlmcmFtZS5cclxuLy8vIEBwYXJhbSB7RnVuY3Rpb259ICRlZmZlY3RzLi4uIC0gT25lIG9yIG1vcmUgZWZmZWN0IGZ1bmN0aW9ucyB0byBidWlsZCB0aGUga2V5ZnJhbWUgd2l0aC5cclxuQG1peGluIG11aS1rZXlmcmFtZXMoJG5hbWUsICRlZmZlY3RzLi4uKSB7XHJcbiAgJG9iajogLW11aS1wcm9jZXNzLWFyZ3MoJGVmZmVjdHMuLi4pO1xyXG4gICRvYmo6IG1hcC1yZW1vdmUoJG9iaiwgbmFtZSk7XHJcblxyXG4gIEBrZXlmcmFtZXMgI3skbmFtZX0ge1xyXG4gICAgLy8gTm93IGl0ZXJhdGUgdGhyb3VnaCBlYWNoIGtleWZyYW1lIHBlcmNlbnRhZ2VcclxuICAgIEBlYWNoICRwY3QsICRwcm9wcyBpbiAkb2JqIHtcclxuICAgICAgI3stbXVpLWtleWZyYW1lLXBjdCgkcGN0KX0ge1xyXG4gICAgICAgIC8vIExhc3RseSwgaXRlcmF0ZSB0aHJvdWdoIGVhY2ggQ1NTIHByb3BlcnR5IHdpdGhpbiBhIHBlcmNlbnRhZ2UgYW5kIHByaW50IGl0IG91dFxyXG4gICAgICAgIEBlYWNoICRwcm9wLCAkdmFsdWUgaW4gJHByb3BzIHtcclxuICAgICAgICAgICN7JHByb3B9OiAjeyR2YWx1ZX07XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vLy8gQ3JlYXRlcyBhIHN0cmluZyBmb3IgYSBDU1Mga2V5ZnJhbWUsIGJ5IGNvbnZlcnRpbmcgYSBsaXN0IG9mIG51bWJlcnMgdG8gYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBwZXJjZW50YWdlIHZhbHVlcy5cclxuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICRpbnB1dCAtIExpc3Qgb2YgbnVtYmVycyB0byB1c2UuXHJcbi8vLyBAcmV0dXJuIHtTdHJpbmd9IEEgc2V0IG9mIGNvbW1hLXNlcGFyYXRlZCBwZXJjZW50YWdlIHZhbHVlcy5cclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxyXG5AZnVuY3Rpb24gLW11aS1rZXlmcmFtZS1wY3QoJGlucHV0KSB7XHJcbiAgJG91dHB1dDogKCk7XHJcblxyXG4gIEBpZiB0eXBlLW9mKCRpbnB1dCkgPT0gJ251bWJlcicge1xyXG4gICAgJG91dHB1dDogKCRpbnB1dCAqIDElKTtcclxuICB9IEBlbHNlIGlmIHR5cGUtb2YoJGlucHV0KSA9PSAnbGlzdCcge1xyXG4gICAgQGVhY2ggJGkgaW4gJGlucHV0IHtcclxuICAgICAgJG91dHB1dDogYXBwZW5kKCRvdXRwdXQsICgkaSAqIDElKSwgY29tbWEpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQHJldHVybiAkb3V0cHV0O1xyXG59XHJcblxyXG4vLy8gUHJpbnRzIHRoZSBDU1MgcHJvcGVydGllcyBmcm9tIGEgc3BlY2lmaWMga2V5IGluIGEga2V5ZnJhbWVzIG1hcC4gVXNlZCB0byBib3Jyb3cgQ1NTIGZyb20ga2V5ZnJhbWUgZnVuY3Rpb25zIGZvciB1c2UgaW4gdHJhbnNpdGlvbnMuXHJcbi8vLyBAcGFyYW0ge01hcH0gJGtmIC0gS2V5ZnJhbWUgbWFwIHRvIGV4dHJhY3QgZnJvbS5cclxuLy8vIEBwYXJhbSB7TnVtYmVyfSAka2V5IC0gS2V5IGluIHRoZSBtYXAgdG8gcHJpbnQgdGhlIENTUyBvZi5cclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxyXG5AbWl4aW4gLW11aS1rZXlmcmFtZS1nZXQoJGtmLCAka2V5KSB7XHJcbiAgJG1hcDogbWFwLWdldCgka2YsICRrZXkpO1xyXG5cclxuICBAZWFjaCAkcHJvcCwgJHZhbHVlIGluICRtYXAgb3IgKCkge1xyXG4gICAgLy8gU29tZSBrZXlmcmFtZSBtYXBzIHN0b3JlIHRyYW5zZm9ybXMgYXMgcXVvdGVkIHN0cmluZ3NcclxuICAgIEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gJ3N0cmluZycge1xyXG4gICAgICAkdmFsdWU6IHVucXVvdGUoJHZhbHVlKTtcclxuICAgIH1cclxuICAgICN7JHByb3B9OiAkdmFsdWU7XHJcbiAgfVxyXG59XHJcblxyXG4vLy8gUmVmb3JtYXRzIGEgbWFwIGNvbnRhaW5pbmcga2V5cyB3aXRoIGEgbGlzdCBvZiB2YWx1ZXMsIHNvIHRoYXQgZWFjaCBrZXkgaXMgYSBzaW5nbGUgdmFsdWUuXHJcbi8vLyBAcGFyYW0ge01hcH0gJG1hcCAtIE1hcCB0byBzcGxpdCB1cC5cclxuLy8vIEByZXR1cm4ge01hcH0gQSByZWZvcm1hdHRlZCBtYXAuXHJcbi8vLyBAYWNjZXNzIHByaXZhdGVcclxuQGZ1bmN0aW9uIC1tdWkta2V5ZnJhbWUtc3BsaXQoJG1hcCkge1xyXG4gICRuZXctbWFwOiAoKTtcclxuXHJcbiAgLy8gU3BsaXQga2V5cyB3aXRoIG11bHRpcGxlIHZhbHVlcyBpbnRvIGluZGl2aWR1YWwga2V5c1xyXG4gIEBlYWNoICRrZXksICRpdGVtIGluICRtYXAge1xyXG4gICAgJGtleS10eXBlOiB0eXBlLW9mKCRrZXkpO1xyXG5cclxuICAgIEBpZiAka2V5LXR5cGUgPT0gJ251bWJlcicge1xyXG4gICAgICAkbmV3LW1hcDogbWFwLW1lcmdlKCRuZXctbWFwLCAoJGtleTogJGl0ZW0pKTtcclxuICAgIH0gQGVsc2UgaWYgJGtleS10eXBlID09ICdsaXN0JyB7XHJcbiAgICAgIEBlYWNoICRrIGluICRrZXkge1xyXG4gICAgICAgICRuZXctbWFwOiBtYXAtbWVyZ2UoJG5ldy1tYXAsICgkazogJGl0ZW0pKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQHJldHVybiAkbmV3LW1hcDtcclxufVxyXG5cclxuLy8vIENvbWJpbmVzIGEgc2VyaWVzIG9mIGtleWZyYW1lIG9iamVjdHMgaW50byBvbmUuXHJcbi8vLyBAcGFyYW0ge01hcH0gJG1hcHMuLi4gLSBBIHNlcmllcyBvZiBtYXBzIHRvIG1lcmdlLCBhcyBpbmRpdmlkdWFsIHBhcmFtZXRlcnMuXHJcbi8vLyBAcmV0dXJuIHtNYXB9IEEgY29tYmluZWQga2V5ZnJhbWUgb2JqZWN0LlxyXG4vLy8gQGFjY2VzcyBwcml2YXRlXHJcbkBmdW5jdGlvbiAtbXVpLWtleWZyYW1lLWNvbWJpbmUoJG1hcHMuLi4pIHtcclxuICAkbmV3LW1hcDogKCk7XHJcblxyXG4gIC8vIEl0ZXJhdGUgdGhyb3VnaCBlYWNoIG1hcCBwYXNzZWQgaW5cclxuICBAZWFjaCAkbWFwIGluICRtYXBzIHtcclxuICAgIEBpZiB0eXBlLW9mKCRtYXApID09ICdzdHJpbmcnIHtcclxuICAgICAgJG1hcDogY2FsbCgkbWFwKTtcclxuICAgIH1cclxuXHJcbiAgICAkbWFwOiAtbXVpLWtleWZyYW1lLXNwbGl0KCRtYXApO1xyXG5cclxuICAgIC8vIEl0ZXJhdGUgdGhyb3VnaCBlYWNoIGtleWZyYW1lIGluIHRoZSBtYXBcclxuICAgIC8vICRrZXkgaXMgdGhlIGtleWZyYW1lIHBlcmNlbnRhZ2VcclxuICAgIC8vICR2YWx1ZSBpcyBhIG1hcCBvZiBDU1MgcHJvcGVydGllc1xyXG4gICAgQGVhY2ggJGtleSwgJHZhbHVlIGluICRtYXAge1xyXG4gICAgICAkbmV3LXZhbHVlOiAoKTtcclxuXHJcbiAgICAgIEBpZiBtYXAtaGFzLWtleSgkbmV3LW1hcCwgJGtleSkge1xyXG4gICAgICAgIC8vIElmIHRoZSBtYXAgYWxyZWFkeSBoYXMgdGhlIGtleWZyYW1lICUsIGFwcGVuZCB0aGUgbmV3IHByb3BlcnR5XHJcbiAgICAgICAgJG5ldy12YWx1ZTogLW11aS1tZXJnZS1wcm9wZXJ0aWVzKG1hcC1nZXQoJG5ldy1tYXAsICRrZXkpLCAkdmFsdWUpO1xyXG4gICAgICB9IEBlbHNlIHtcclxuICAgICAgICAvLyBPdGhlcndpc2UsIGNyZWF0ZSBhIG5ldyBtYXAgd2l0aCB0aGUgbmV3IHByb3BlcnR5XHJcbiAgICAgICAgJG5ldy12YWx1ZTogJHZhbHVlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBGaW5hbGx5LCBtZXJnZSB0aGUgbW9kaWZpZWQga2V5ZnJhbWUgdmFsdWUgaW50byB0aGUgb3V0cHV0IG1hcFxyXG4gICAgICAkbmV3LW1hcDogbWFwLW1lcmdlKCRuZXctbWFwLCAoJGtleTogJG5ldy12YWx1ZSkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gTWFrZSBhIG5hbWUgZm9yIHRoZSBrZXlmcmFtZXNcclxuICAkLW11aS1jdXN0b206ICQtbXVpLWN1c3RvbSArIDEgIWdsb2JhbDtcclxuICAkbWFwLW5hbWU6IChuYW1lOiAnY3VzdG9tLSN7JC1tdWktY3VzdG9tfScpO1xyXG4gICRuZXctbWFwOiBtYXAtbWVyZ2UoJG5ldy1tYXAsICRtYXAtbmFtZSk7XHJcblxyXG4gIEByZXR1cm4gJG5ldy1tYXA7XHJcbn1cclxuXHJcbi8vLyBDb21iaW5lcyB0d28gbWFwcyBvZiBDU1MgcHJvcGVydGllcyBpbnRvIG9uZSBtYXAuIElmIGJvdGggbWFwcyBoYXZlIGEgdHJhbnNmb3JtIHByb3BlcnR5LCB0aGUgdmFsdWVzIGZyb20gZWFjaCB3aWxsIGJlIGNvbWJpbmVkIGludG8gb25lIHByb3BlcnR5LlxyXG4vLy8gQHBhcmFtIHtNYXB9ICRvbmUgLSBGaXJzdCBtYXAgdG8gbWVyZ2UuXHJcbi8vLyBAcGFyYW0ge01hcH0gJHR3byAtIFNlY29uZCBtYXAgdG8gbWVyZ2UuXHJcbi8vLyBAcmV0dXJuIHtNYXB9IEEgY29tYmluZWQgbWFwLlxyXG4vLy8gQGFjY2VzcyBwcml2YXRlXHJcbkBmdW5jdGlvbiAtbXVpLW1lcmdlLXByb3BlcnRpZXMoJG9uZSwgJHR3bykge1xyXG4gIEBpZiBtYXAtaGFzLWtleSgkb25lLCB0cmFuc2Zvcm0pIGFuZCBtYXAtaGFzLWtleSgkdHdvLCB0cmFuc2Zvcm0pIHtcclxuICAgICR0cmFuc2Zvcm06IGpvaW4obWFwLWdldCgkb25lLCB0cmFuc2Zvcm0pLCBtYXAtZ2V0KCR0d28sIHRyYW5zZm9ybSkpO1xyXG4gICAgJG9uZTogbWFwLW1lcmdlKCRvbmUsICh0cmFuc2Zvcm06ICR0cmFuc2Zvcm0pKTtcclxuICAgICR0d286IG1hcC1yZW1vdmUoJHR3bywgdHJhbnNmb3JtKTtcclxuICB9XHJcblxyXG4gIEByZXR1cm4gbWFwLW1lcmdlKCRvbmUsICR0d28pO1xyXG59XHJcbiIsIi8vLyBDcmVhdGVzIGEgc2xpZGluZyB0cmFuc2l0aW9uIGJ5IHRyYW5zbGF0aW5nIHRoZSBlbGVtZW50IGhvcml6b250YWxseSBvciB2ZXJ0aWNhbGx5LlxyXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc3RhdGUgW2luXSAtIFN0YXRlIHRvIHRyYW5zaXRpb24gdG8uXHJcbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkaXJlY3Rpb24gW2xlZnRdIC0gRGlyZWN0aW9uIHRvIHNsaWRlIHRvLiBDYW4gYmUgYHVwYCwgYHJpZ2h0YCwgYGRvd25gLCBvciBgbGVmdGAuXHJcbi8vLyBAcGFyYW0ge0xlbmd0aH0gJGFtb3VudCBbMTAwJV0gLSBMZW5ndGggb2YgdGhlIHNsaWRlIGFzIGEgcGVyY2VudGFnZSB2YWx1ZS5cclxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGZhZGUgW2ZhbHNlXSAtIFNldCB0byBgdHJ1ZWAgdG8gZmFkZSB0aGUgZWxlbWVudCBpbiBvciBvdXQgc2ltdWx0YW5lb3VzbHkuXHJcbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZHVyYXRpb24gW251bGxdIC0gTGVuZ3RoIChzcGVlZCkgb2YgdGhlIHRyYW5zaXRpb24uXHJcbi8vLyBAcGFyYW0ge0tleXdvcmR8RnVuY3Rpb259ICR0aW1pbmcgW251bGxdIC0gRWFzaW5nIG9mIHRoZSB0cmFuc2l0aW9uLlxyXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGRlbGF5IFtudWxsXSAtIERlbGF5IGluIHNlY29uZHMgb3IgbWlsbGlzZWNvbmRzIGJlZm9yZSB0aGUgdHJhbnNpdGlvbiBzdGFydHMuXHJcbkBtaXhpbiBtdWktc2xpZGUgKFxyXG4gICRzdGF0ZTogaW4sXHJcbiAgJGRpcmVjdGlvbjogbGVmdCxcclxuICAkYW1vdW50OiAxMDAlLFxyXG4gICRmYWRlOiBtYXAtZ2V0KCRtb3Rpb24tdWktc2V0dGluZ3MsIHNsaWRlLWFuZC1mYWRlKSxcclxuICAkZHVyYXRpb246IG51bGwsXHJcbiAgJHRpbWluZzogbnVsbCxcclxuICAkZGVsYXk6IG51bGxcclxuKSB7XHJcbiAgJHNsaWRlOiBzbGlkZSgkc3RhdGUsICRkaXJlY3Rpb24sICRhbW91bnQpO1xyXG5cclxuICAvLyBDU1MgT3V0cHV0XHJcbiAgQGluY2x1ZGUgdHJhbnNpdGlvbi1zdGFydCgkc3RhdGUpIHtcclxuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tYmFzaWNzKCRkdXJhdGlvbiwgJHRpbWluZywgJGRlbGF5KTtcclxuICAgIEBpbmNsdWRlIC1tdWkta2V5ZnJhbWUtZ2V0KCRzbGlkZSwgMCk7XHJcblxyXG4gICAgQGlmICRmYWRlIHtcclxuICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xyXG4gICAgICBvcGFjaXR5OiBpZigkc3RhdGUgPT0gaW4sIDAsIDEpO1xyXG4gICAgfSBAZWxzZSB7XHJcbiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcclxuICAgIH1cclxuXHJcbiAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLWVuZCgkc3RhdGUpIHtcclxuICAgIEBpbmNsdWRlIC1tdWkta2V5ZnJhbWUtZ2V0KCRzbGlkZSwgMTAwKTtcclxuXHJcbiAgICBAaWYgJGZhZGUge1xyXG4gICAgICBvcGFjaXR5OiBpZigkc3RhdGUgPT0gaW4sIDEsIDApO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIvLy8gQXBwbGllcyBiYXNpYyB0cmFuc2l0aW9uIHNldHRpbmdzIHRvIGFuIGVsZW1lbnQuXHJcbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZHVyYXRpb24gW251bGxdIC0gTGVuZ3RoIChzcGVlZCkgb2YgdGhlIHRyYW5zaXRpb24uXHJcbi8vLyBAcGFyYW0ge0tleXdvcmR8RnVuY3Rpb259ICR0aW1pbmcgW251bGxdIC0gRWFzaW5nIG9mIHRoZSB0cmFuc2l0aW9uLlxyXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGRlbGF5IFtudWxsXSAtIERlbGF5IGluIHNlY29uZHMgb3IgbWlsbGlzZWNvbmRzIGJlZm9yZSB0aGUgdHJhbnNpdGlvbiBzdGFydHMuXHJcbkBtaXhpbiB0cmFuc2l0aW9uLWJhc2ljcyhcclxuICAkZHVyYXRpb246IG51bGwsXHJcbiAgJHRpbWluZzogbnVsbCxcclxuICAkZGVsYXk6IG51bGxcclxuKSB7XHJcbiAgQGluY2x1ZGUgLW1vdGlvbi11aS1kZWZhdWx0cztcclxuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAkZHVyYXRpb247XHJcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246ICR0aW1pbmc7XHJcbiAgdHJhbnNpdGlvbi1kZWxheTogJGRlbGF5O1xyXG59XHJcblxyXG4vLy8gV3JhcHMgdGhlIGNvbnRlbnQgaW4gdGhlIHNldHVwIGNsYXNzIGZvciBhIHRyYW5zaXRpb24uXHJcbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkaXIgLSBTdGF0ZSB0byBzZXR1cCBmb3IgdHJhbnNpdGlvbi5cclxuQG1peGluIHRyYW5zaXRpb24tc3RhcnQoJGRpcikge1xyXG4gICRzZWxlY3RvcjogLW11aS1idWlsZC1zZWxlY3RvcihtYXAtZ2V0KCRtb3Rpb24tdWktc3RhdGVzLCAkZGlyKSk7XHJcblxyXG4gIEBhdC1yb290IHtcclxuICAgICN7JHNlbGVjdG9yfSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLy8vIFdyYXBzIHRoZSBjb250ZW50IGluIHRoZSBhY3RpdmUgY2xhc3MgZm9yIGEgdHJhbnNpdGlvbi5cclxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRpciAtIFN0YXRlIHRvIGFjdGl2YXRlIGEgdHJhbnNpdGlvbiBvbi5cclxuQG1peGluIHRyYW5zaXRpb24tZW5kKCRkaXIpIHtcclxuICAkc2VsZWN0b3I6IC1tdWktYnVpbGQtc2VsZWN0b3IobWFwLWdldCgkbW90aW9uLXVpLXN0YXRlcywgJGRpciksIHRydWUpO1xyXG5cclxuICBAYXQtcm9vdCB7XHJcbiAgICAjeyRzZWxlY3Rvcn0ge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBzdGFnZ2VyIGFuaW1hdGlvbiwgd2hpY2ggY2FuIGJlIHVzZWQgd2l0aCBBbmd1bGFyJ3MgYG5nLXJlcGVhdGAuXHJcbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZGVsYXktYW1vdW50IC0gQW1vdW50IG9mIHRpbWUgaW4gc2Vjb25kcyBvciBtaWxsaXNlY29uZHMgdG8gYWRkIGJldHdlZW4gZWFjaCBpdGVtJ3MgYW5pbWF0aW9uLlxyXG5AbWl4aW4gc3RhZ2dlcigkZGVsYXktYW1vdW50KSB7XHJcbiAgdHJhbnNpdGlvbi1kZWxheTogJGRlbGF5LWFtb3VudDtcclxuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwOyAvLyBQcmV2ZW50IGFjY2lkZW50YWwgQ1NTIGluaGVyaXRhbmNlXHJcbn1cclxuIiwiLy8vIENyZWF0ZXMgYSBmYWRlIHRyYW5zaXRpb24gYnkgYWRqdXN0aW5nIHRoZSBvcGFjaXR5IG9mIHRoZSBlbGVtZW50LlxyXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc3RhdGUgW2luXSAtIFN0YXRlIHRvIHRyYW5zaXRpb24gdG8uXHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJGZyb20gWzBdIC0gT3BhY2l0eSB0byBzdGFydCBhdC4gTXVzdCBiZSBhIG51bWJlciBiZXR3ZWVuIDAgYW5kIDEuXHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJHRvIFsxXSAtIE9wYWNpdHkgdG8gZW5kIG9uLlxyXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZHVyYXRpb24gW251bGxdIC0gTGVuZ3RoIChzcGVlZCkgb2YgdGhlIHRyYW5zaXRpb24uXHJcbi8vLyBAcGFyYW0ge0tleXdvcmR8RnVuY3Rpb259ICR0aW1pbmcgW251bGxdIC0gRWFzaW5nIG9mIHRoZSB0cmFuc2l0aW9uLlxyXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGRlbGF5IFtudWxsXSAtIERlbGF5IGluIHNlY29uZHMgb3IgbWlsbGlzZWNvbmRzIGJlZm9yZSB0aGUgdHJhbnNpdGlvbiBzdGFydHMuXHJcbkBtaXhpbiBtdWktZmFkZShcclxuICAkc3RhdGU6IGluLFxyXG4gICRmcm9tOiAwLFxyXG4gICR0bzogMSxcclxuICAkZHVyYXRpb246IG51bGwsXHJcbiAgJHRpbWluZzogbnVsbCxcclxuICAkZGVsYXk6IG51bGxcclxuKSB7XHJcbiAgJGZhZGU6IGZhZGUoJGZyb20sICR0byk7XHJcblxyXG4gIEBpbmNsdWRlIHRyYW5zaXRpb24tc3RhcnQoJHN0YXRlKSB7XHJcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLWJhc2ljcygkZHVyYXRpb24sICR0aW1pbmcsICRkZWxheSk7XHJcbiAgICBAaW5jbHVkZSAtbXVpLWtleWZyYW1lLWdldCgkZmFkZSwgMCk7XHJcblxyXG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eTtcclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIHRyYW5zaXRpb24tZW5kKCRzdGF0ZSkge1xyXG4gICAgQGluY2x1ZGUgLW11aS1rZXlmcmFtZS1nZXQoJGZhZGUsIDEwMCk7XHJcbiAgfVxyXG59XHJcbiIsIi8vLyBDcmVhdGVzIGEgaGluZ2UgZWZmZWN0IGJ5IHJvdGF0aW5nIHRoZSBlbGVtZW50LlxyXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc3RhdGUgW2luXSAtIFN0YXRlIHRvIHRyYW5zaXRpb24gdG8uXHJcbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRmcm9tIFtsZWZ0XSAtIEVkZ2Ugb2YgdGhlIGVsZW1lbnQgdG8gcm90YXRlIGZyb20uIENhbiBiZSBgdG9wYCwgYHJpZ2h0YCwgYGJvdHRvbWAsIG9yIGBsZWZ0YC5cclxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGF4aXMgW2VkZ2VdIC0gQXhpcyBvZiB0aGUgZWxlbWVudCB0byByb3RhdGUgb24uIENhbiBiZSBgZWRnZWAgb3IgYGNlbnRlcmAuXHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJHBlcnNwZWN0aXZlIFsyMDAwcHhdIC0gUGVyY2VpdmVkIGRpc3RhbmNlIGJldHdlZW4gdGhlIHZpZXdlciBhbmQgdGhlIGVsZW1lbnQuIEEgaGlnaGVyIG51bWJlciB3aWxsIG1ha2UgdGhlIHJvdGF0aW9uIGVmZmVjdCBtb3JlIHByb25vdW5jZWQuXHJcbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR0dXJuLW9yaWdpbiBbZnJvbS1iYWNrXSAtIFNpZGUgb2YgdGhlIGVsZW1lbnQgdG8gc3RhcnQgdGhlIHJvdGF0aW9uIGZyb20uIENhbiBiZSBgZnJvbS1iYWNrYCBvciBgZnJvbS1mcm9udGAuXHJcbkBmdW5jdGlvbiBoaW5nZSAoXHJcbiAgJHN0YXRlOiBpbixcclxuICAkZnJvbTogbGVmdCxcclxuICAkYXhpczogZWRnZSxcclxuICAkcGVyc3BlY3RpdmU6IDIwMDBweCxcclxuICAkdHVybi1vcmlnaW46IGZyb20tYmFja1xyXG4pIHtcclxuICAvLyBSb3RhdGlvbiBkaXJlY3Rpb25zIHdoZW4gaGluZ2luZyBmcm9tIGJhY2sgdnMuIGZyb250XHJcbiAgJHJvdGF0aW9uLWFtb3VudDogOTBkZWc7XHJcbiAgJHJvdGF0aW9ucy1iYWNrOiAoXHJcbiAgICB0b3A6IHJvdGF0ZVgoJHJvdGF0aW9uLWFtb3VudCAqIC0xKSxcclxuICAgIHJpZ2h0OiByb3RhdGVZKCRyb3RhdGlvbi1hbW91bnQgKiAtMSksXHJcbiAgICBib3R0b206IHJvdGF0ZVgoJHJvdGF0aW9uLWFtb3VudCksXHJcbiAgICBsZWZ0OiByb3RhdGVZKCRyb3RhdGlvbi1hbW91bnQpLFxyXG4gICk7XHJcbiAgJHJvdGF0aW9ucy1mcm9tOiAoXHJcbiAgICB0b3A6IHJvdGF0ZVgoJHJvdGF0aW9uLWFtb3VudCksXHJcbiAgICByaWdodDogcm90YXRlWSgkcm90YXRpb24tYW1vdW50KSxcclxuICAgIGJvdHRvbTogcm90YXRlWCgkcm90YXRpb24tYW1vdW50ICogLTEpLFxyXG4gICAgbGVmdDogcm90YXRlWSgkcm90YXRpb24tYW1vdW50ICogLTEpLFxyXG4gICk7XHJcblxyXG4gIC8vIFJvdGF0aW9uIG9yaWdpblxyXG4gICRyb3RhdGlvbjogJyc7XHJcbiAgQGlmICR0dXJuLW9yaWdpbiA9PSBmcm9tLWZyb250IHtcclxuICAgICRyb3RhdGlvbjogbWFwLWdldCgkcm90YXRpb25zLWZyb20sICRmcm9tKTtcclxuICB9IEBlbHNlIGlmICR0dXJuLW9yaWdpbiA9PSBmcm9tLWJhY2sge1xyXG4gICAgJHJvdGF0aW9uOiBtYXAtZ2V0KCRyb3RhdGlvbnMtYmFjaywgJGZyb20pO1xyXG4gIH0gQGVsc2Uge1xyXG4gICAgQHdhcm4gJyR0dXJuLW9yaWdpbiBtdXN0IGJlIGVpdGhlciBcImZyb20tYmFja1wiIG9yIFwiZnJvbS1mcm9udFwiJztcclxuICB9XHJcblxyXG4gIC8vIFN0YXJ0IGFuZCBlbmQgc3RhdGVcclxuICAkc3RhcnQ6ICcnO1xyXG4gICRlbmQ6ICcnO1xyXG4gIEBpZiAkc3RhdGUgPT0gaW4ge1xyXG4gICAgJHN0YXJ0OiBwZXJzcGVjdGl2ZSgkcGVyc3BlY3RpdmUpICRyb3RhdGlvbjtcclxuICAgICRlbmQ6IHBlcnNwZWN0aXZlKCRwZXJzcGVjdGl2ZSkgcm90YXRlKDBkZWcpO1xyXG4gIH0gQGVsc2Uge1xyXG4gICAgJHN0YXJ0OiBwZXJzcGVjdGl2ZSgkcGVyc3BlY3RpdmUpIHJvdGF0ZSgwZGVnKTtcclxuICAgICRlbmQ6IHBlcnNwZWN0aXZlKCRwZXJzcGVjdGl2ZSkgJHJvdGF0aW9uO1xyXG4gIH1cclxuXHJcbiAgLy8gVHVybiBheGlzXHJcbiAgJG9yaWdpbjogJyc7XHJcbiAgQGlmICRheGlzID09IGVkZ2Uge1xyXG4gICAgJG9yaWdpbjogJGZyb207XHJcbiAgfSBAZWxzZSB7XHJcbiAgICAkb3JpZ2luOiBjZW50ZXI7XHJcbiAgfVxyXG5cclxuICAka2V5ZnJhbWVzOiAoXHJcbiAgICBuYW1lOiAnaGluZ2UtI3skc3RhdGV9LSN7JGZyb219LSN7JGF4aXN9LSN7JHR1cm4tb3JpZ2lufScsXHJcbiAgICAwOiAodHJhbnNmb3JtOiAkc3RhcnQsIHRyYW5zZm9ybS1vcmlnaW46ICRvcmlnaW4pLFxyXG4gICAgMTAwOiAodHJhbnNmb3JtOiAkZW5kKSxcclxuICApO1xyXG5cclxuICBAcmV0dXJuICRrZXlmcmFtZXM7XHJcbn1cclxuIiwiLy8vIENyZWF0ZXMgYSBoaW5nZSB0cmFuc2l0aW9uIGJ5IHJvdGF0aW5nIHRoZSBlbGVtZW50LlxyXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc3RhdGUgW2luXSAtIFN0YXRlIHRvIHRyYW5zaXRpb24gdG8uXHJcbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRmcm9tIFtsZWZ0XSAtIEVkZ2Ugb2YgdGhlIGVsZW1lbnQgdG8gcm90YXRlIGZyb20uIENhbiBiZSBgdG9wYCwgYHJpZ2h0YCwgYGJvdHRvbWAsIG9yIGBsZWZ0YC5cclxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGF4aXMgW2VkZ2VdIC0gQXhpcyBvZiB0aGUgZWxlbWVudCB0byByb3RhdGUgb24uIENhbiBiZSBgZWRnZWAgb3IgYGNlbnRlcmAuXHJcbi8vLyBAcGFyYW0ge0xlbmd0aH0gJHBlcnNwZWN0aXZlIFsyMDAwcHhdIC0gUGVyY2VpdmVkIGRpc3RhbmNlIGJldHdlZW4gdGhlIHZpZXdlciBhbmQgdGhlIGVsZW1lbnQuIEEgaGlnaGVyIG51bWJlciB3aWxsIG1ha2UgdGhlIHJvdGF0aW9uIGVmZmVjdCBtb3JlIHByb25vdW5jZWQuXHJcbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR0dXJuLW9yaWdpbiBbZnJvbS1iYWNrXSAtIFNpZGUgb2YgdGhlIGVsZW1lbnQgdG8gc3RhcnQgdGhlIHJvdGF0aW9uIGZyb20uIENhbiBiZSBgZnJvbS1iYWNrYCBvciBgZnJvbS1mcm9udGAuXHJcbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRmYWRlIFt0cnVlXSAtIFNldCB0byBgdHJ1ZWAgdG8gZmFkZSB0aGUgZWxlbWVudCBpbiBvciBvdXQgc2ltdWx0YW5lb3VzbHkuXHJcbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZHVyYXRpb24gW251bGxdIC0gTGVuZ3RoIChzcGVlZCkgb2YgdGhlIHRyYW5zaXRpb24uXHJcbi8vLyBAcGFyYW0ge0tleXdvcmR8RnVuY3Rpb259ICR0aW1pbmcgW251bGxdIC0gRWFzaW5nIG9mIHRoZSB0cmFuc2l0aW9uLlxyXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGRlbGF5IFtudWxsXSAtIERlbGF5IGluIHNlY29uZHMgb3IgbWlsbGlzZWNvbmRzIGJlZm9yZSB0aGUgdHJhbnNpdGlvbiBzdGFydHMuXHJcbkBtaXhpbiBtdWktaGluZ2UgKFxyXG4gICRzdGF0ZTogaW4sXHJcbiAgJGZyb206IGxlZnQsXHJcbiAgJGF4aXM6IGVkZ2UsXHJcbiAgJHBlcnNwZWN0aXZlOiAyMDAwcHgsXHJcbiAgJHR1cm4tb3JpZ2luOiBmcm9tLWJhY2ssXHJcbiAgJGZhZGU6IG1hcC1nZXQoJG1vdGlvbi11aS1zZXR0aW5ncywgaGluZ2UtYW5kLWZhZGUpLFxyXG4gICRkdXJhdGlvbjogbnVsbCxcclxuICAkdGltaW5nOiBudWxsLFxyXG4gICRkZWxheTogbnVsbFxyXG4pIHtcclxuICAkaGluZ2U6IGhpbmdlKCRzdGF0ZSwgJGZyb20sICRheGlzLCAkcGVyc3BlY3RpdmUsICR0dXJuLW9yaWdpbik7XHJcblxyXG4gIEBpbmNsdWRlIHRyYW5zaXRpb24tc3RhcnQoJHN0YXRlKSB7XHJcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLWJhc2ljcygkZHVyYXRpb24sICR0aW1pbmcsICRkZWxheSk7XHJcbiAgICBAaW5jbHVkZSAtbXVpLWtleWZyYW1lLWdldCgkaGluZ2UsIDApO1xyXG5cclxuICAgIEBpZiAkZmFkZSB7XHJcbiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcclxuICAgICAgb3BhY2l0eTogaWYoJHN0YXRlID09IGluLCAwLCAxKTtcclxuICAgIH0gQGVsc2Uge1xyXG4gICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLWVuZCgkc3RhdGUpIHtcclxuICAgIEBpbmNsdWRlIC1tdWkta2V5ZnJhbWUtZ2V0KCRoaW5nZSwgMTAwKTtcclxuXHJcbiAgICBAaWYgJGZhZGUge1xyXG4gICAgICBvcGFjaXR5OiBpZigkc3RhdGUgPT0gaW4sIDEsIDApO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIvLy8gQ3JlYXRlcyBhIHNjYWxpbmcgdHJhbnNpdGlvbi4gQSBzY2FsZSBvZiBgMWAgbWVhbnMgdGhlIGVsZW1lbnQgaXMgdGhlIHNhbWUgc2l6ZS4gTGFyZ2VyIG51bWJlcnMgbWFrZSB0aGUgZWxlbWVudCBiaWdnZXIsIHdoaWxlIG51bWJlcnMgbGVzcyB0aGFuIDEgbWFrZSB0aGUgZWxlbWVudCBzbWFsbGVyLlxyXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc3RhdGUgW2luXSAtIFN0YXRlIHRvIHRyYW5zaXRpb24gdG8uXHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJGZyb20gWzEuNV0gLSBTaXplIHRvIHN0YXJ0IGF0LlxyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRmcm9tIFsxXSAtIFNpemUgdG8gZW5kIGF0LlxyXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZmFkZSBbdHJ1ZV0gLSBTZXQgdG8gYHRydWVgIHRvIGZhZGUgdGhlIGVsZW1lbnQgaW4gb3Igb3V0IHNpbXVsdGFuZW91c2x5LlxyXG4vLy8gQHBhcmFtIHtEdXJhdGlvbn0gJGR1cmF0aW9uIFtudWxsXSAtIExlbmd0aCAoc3BlZWQpIG9mIHRoZSB0cmFuc2l0aW9uLlxyXG4vLy8gQHBhcmFtIHtLZXl3b3JkfEZ1bmN0aW9ufSAkdGltaW5nIFtudWxsXSAtIEVhc2luZyBvZiB0aGUgdHJhbnNpdGlvbi5cclxuLy8vIEBwYXJhbSB7RHVyYXRpb259ICRkZWxheSBbbnVsbF0gLSBEZWxheSBpbiBzZWNvbmRzIG9yIG1pbGxpc2Vjb25kcyBiZWZvcmUgdGhlIHRyYW5zaXRpb24gc3RhcnRzLlxyXG5AbWl4aW4gbXVpLXpvb20oXHJcbiAgJHN0YXRlOiBpbixcclxuICAkZnJvbTogMS41LFxyXG4gICR0bzogMSxcclxuICAkZmFkZTogbWFwLWdldCgkbW90aW9uLXVpLXNldHRpbmdzLCBzY2FsZS1hbmQtZmFkZSksXHJcbiAgJGR1cmF0aW9uOiBudWxsLFxyXG4gICR0aW1pbmc6IG51bGwsXHJcbiAgJGRlbGF5OiBudWxsXHJcbikge1xyXG4gICRzY2FsZTogem9vbSgkZnJvbSwgJHRvKTtcclxuXHJcbiAgQGluY2x1ZGUgdHJhbnNpdGlvbi1zdGFydCgkc3RhdGUpIHtcclxuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tYmFzaWNzKCRkdXJhdGlvbiwgJHRpbWluZywgJGRlbGF5KTtcclxuICAgIEBpbmNsdWRlIC1tdWkta2V5ZnJhbWUtZ2V0KCRzY2FsZSwgMCk7XHJcblxyXG4gICAgQGlmICRmYWRlIHtcclxuICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xyXG4gICAgICBvcGFjaXR5OiBpZigkc3RhdGUgPT0gaW4sIDAsIDEpO1xyXG4gICAgfSBAZWxzZSB7XHJcbiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIHRyYW5zaXRpb24tZW5kKCRzdGF0ZSkge1xyXG4gICAgQGluY2x1ZGUgLW11aS1rZXlmcmFtZS1nZXQoJHNjYWxlLCAxMDApO1xyXG5cclxuICAgIEBpZiAkZmFkZSB7XHJcbiAgICAgIG9wYWNpdHk6IGlmKCRzdGF0ZSA9PSBpbiwgMSwgMCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIi8vLyBDcmVhdGVzIGEgc3Bpbm5pbmcgdHJhbnNpdGlvbiBieSByb3RhdGluZyB0aGUgZWxlbWVudC4gVGhlIGB0dXJuYCB1bml0IGlzIHVzZWQgdG8gc3BlY2lmeSBob3cgZmFyIHRvIHJvdGF0ZS4gYDF0dXJuYCBpcyBlcXVhbCB0byBhIDM2MC1kZWdyZWUgc3Bpbi5cclxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHN0YXRlIFtpbl0gLSBTdGF0ZSB0byB0cmFuc2l0aW9uIHRvLlxyXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZGlyZWN0aW9uIFtjd10gLSBEaXJlY3Rpb24gdG8gc3Bpbi4gU2hvdWxkIGJlIGBjd2AgKGNsb2Nrd2lzZSkgb3IgYGNjd2AgKGNvdW50ZXJjbG9ja3dpc2UpLlxyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRhbW91bnQgWzAuNzV0dXJuXSAtIEFtb3VudCB0byBlbGVtZW50IHRoZSBlbGVtZW50LlxyXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZmFkZSBbZmFsc2VdIC0gU2V0IHRvIGB0cnVlYCB0byBmYWRlIHRoZSBlbGVtZW50IGluIG9yIG91dCBzaW11bHRhbmVvdXNseS5cclxuLy8vIEBwYXJhbSB7RHVyYXRpb259ICRkdXJhdGlvbiBbbnVsbF0gLSBMZW5ndGggKHNwZWVkKSBvZiB0aGUgdHJhbnNpdGlvbi5cclxuLy8vIEBwYXJhbSB7S2V5d29yZHxGdW5jdGlvbn0gJHRpbWluZyBbbnVsbF0gLSBFYXNpbmcgb2YgdGhlIHRyYW5zaXRpb24uXHJcbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZGVsYXkgW251bGxdIC0gRGVsYXkgaW4gc2Vjb25kcyBvciBtaWxsaXNlY29uZHMgYmVmb3JlIHRoZSB0cmFuc2l0aW9uIHN0YXJ0cy5cclxuQG1peGluIG11aS1zcGluKFxyXG4gICRzdGF0ZTogaW4sXHJcbiAgJGRpcmVjdGlvbjogY3csXHJcbiAgJGFtb3VudDogMC43NXR1cm4sXHJcbiAgJGZhZGU6IG1hcC1nZXQoJG1vdGlvbi11aS1zZXR0aW5ncywgc3Bpbi1hbmQtZmFkZSksXHJcbiAgJGR1cmF0aW9uOiBudWxsLFxyXG4gICR0aW1pbmc6IG51bGwsXHJcbiAgJGRlbGF5OiBudWxsXHJcbikge1xyXG4gICRzcGluOiBzcGluKCRzdGF0ZSwgJGRpcmVjdGlvbiwgJGFtb3VudCk7XHJcblxyXG4gIEBpbmNsdWRlIHRyYW5zaXRpb24tc3RhcnQoJHN0YXRlKSB7XHJcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLWJhc2ljcygkZHVyYXRpb24sICR0aW1pbmcsICRkZWxheSk7XHJcbiAgICBAaW5jbHVkZSAtbXVpLWtleWZyYW1lLWdldCgkc3BpbiwgMCk7XHJcblxyXG4gICAgQGlmICRmYWRlIHtcclxuICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xyXG4gICAgICBvcGFjaXR5OiBpZigkc3RhdGUgPT0gaW4sIDAsIDEpO1xyXG4gICAgfSBAZWxzZSB7XHJcbiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIHRyYW5zaXRpb24tZW5kKCRzdGF0ZSkge1xyXG4gICAgQGluY2x1ZGUgLW11aS1rZXlmcmFtZS1nZXQoJHNwaW4sIDEwMCk7XHJcblxyXG4gICAgQGlmICRmYWRlIHtcclxuICAgICAgb3BhY2l0eTogaWYoJHN0YXRlID09IGluLCAxLCAwKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLy8vIENyZWF0ZXMgYSBrZXlmcmFtZSBmcm9tIG9uZSBvciBtb3JlIGVmZmVjdCBmdW5jdGlvbnMgYW5kIGFzc2lnbnMgaXQgdG8gdGhlIGVsZW1lbnQgYnkgYWRkaW5nIHRoZSBgYW5pbWF0aW9uLW5hbWVgIHByb3BlcnR5LlxyXG4vLy8gQHBhcmFtIHtGdW5jdGlvbn0gJGVmZmVjdHMuLi4gLSBPbmUgb3IgbW9yZSBlZmZlY3QgZnVuY3Rpb25zIHRvIGJ1aWxkIHRoZSBrZXlmcmFtZSB3aXRoLlxyXG5AbWl4aW4gbXVpLWFuaW1hdGlvbigkYXJncy4uLikge1xyXG4gICRuYW1lOiBtYXAtZ2V0KC1tdWktcHJvY2Vzcy1hcmdzKCRhcmdzLi4uKSwgbmFtZSk7XHJcbiAgQGluY2x1ZGUgbXVpLWtleWZyYW1lcygkbmFtZSwgJGFyZ3MuLi4pO1xyXG4gIGFuaW1hdGlvbi1uYW1lOiB1bnF1b3RlKCRuYW1lKTtcclxufVxyXG4iLCJAY2hhcnNldCAndXRmLTgnO1xyXG5cclxuXHJcbkBpbXBvcnQgJ3NldHRpbmdzJztcclxuQGltcG9ydCAnZm91bmRhdGlvbic7XHJcbkBpbXBvcnQgJ21vdGlvbi11aSc7XHJcbi8vQGltcG9ydCAnc2F0aHlhbXMnO1xyXG5AaW1wb3J0ICdzYXRoeWFtcy1uZXcnO1xyXG5AaW1wb3J0ICdzYXRoeWFtcy1tYW5hZ2VyJztcclxuQGltcG9ydCAnc2F0aHlhbXMtZXBvcyc7XHJcbkBpbXBvcnQgJ3NhdGh5YW1zLWxhcmdlLXNjcmVlbnMnO1xyXG5AaW1wb3J0ICdzYXRoeWFtcy1zbWFsbC1zY3JlZW5zJztcclxuQGltcG9ydCAnc2F0aHlhbXMtcHVycGxlJztcclxuXHJcbi8vQGltcG9ydCAnc2F0aHlhbXMtdmVyeS1sYXJnZS1zY3JlZW5zJztcclxuXHJcbkBpbmNsdWRlIGZvdW5kYXRpb24tZ2xvYmFsLXN0eWxlcztcclxuLy9AaW5jbHVkZSBmb3VuZGF0aW9uLWdyaWQ7IFxyXG5AaW5jbHVkZSBmb3VuZGF0aW9uLWZsZXgtY2xhc3NlcztcclxuQGluY2x1ZGUgZm91bmRhdGlvbi1mbGV4LWdyaWQ7XHJcbkBpbmNsdWRlIGZvdW5kYXRpb24tdHlwb2dyYXBoeTtcclxuQGluY2x1ZGUgZm91bmRhdGlvbi1idXR0b247XHJcbkBpbmNsdWRlIGZvdW5kYXRpb24tZm9ybXM7XHJcbkBpbmNsdWRlIGZvdW5kYXRpb24tcmFuZ2UtaW5wdXQ7XHJcbkBpbmNsdWRlIGZvdW5kYXRpb24tYWNjb3JkaW9uO1xyXG5AaW5jbHVkZSBmb3VuZGF0aW9uLWFjY29yZGlvbi1tZW51O1xyXG5AaW5jbHVkZSBmb3VuZGF0aW9uLWJhZGdlO1xyXG5AaW5jbHVkZSBmb3VuZGF0aW9uLWJyZWFkY3J1bWJzO1xyXG5AaW5jbHVkZSBmb3VuZGF0aW9uLWJ1dHRvbi1ncm91cDtcclxuQGluY2x1ZGUgZm91bmRhdGlvbi1jYWxsb3V0O1xyXG5AaW5jbHVkZSBmb3VuZGF0aW9uLWNsb3NlLWJ1dHRvbjtcclxuQGluY2x1ZGUgZm91bmRhdGlvbi1tZW51O1xyXG5AaW5jbHVkZSBmb3VuZGF0aW9uLW1lbnUtaWNvbjtcclxuQGluY2x1ZGUgZm91bmRhdGlvbi1kcmlsbGRvd24tbWVudTtcclxuQGluY2x1ZGUgZm91bmRhdGlvbi1kcm9wZG93bjtcclxuQGluY2x1ZGUgZm91bmRhdGlvbi1kcm9wZG93bi1tZW51O1xyXG5AaW5jbHVkZSBmb3VuZGF0aW9uLWZsZXgtdmlkZW87XHJcbkBpbmNsdWRlIGZvdW5kYXRpb24tbGFiZWw7XHJcbkBpbmNsdWRlIGZvdW5kYXRpb24tbWVkaWEtb2JqZWN0O1xyXG5AaW5jbHVkZSBmb3VuZGF0aW9uLW9mZi1jYW52YXM7XHJcbkBpbmNsdWRlIGZvdW5kYXRpb24tb3JiaXQ7XHJcbkBpbmNsdWRlIGZvdW5kYXRpb24tcGFnaW5hdGlvbjtcclxuQGluY2x1ZGUgZm91bmRhdGlvbi1wcm9ncmVzcy1iYXI7XHJcbi8vIEBpbmNsdWRlIGZvdW5kYXRpb24tcHJvZ3Jlc3MtZWxlbWVudDtcclxuLy8gQGluY2x1ZGUgZm91bmRhdGlvbi1tZXRlci1lbGVtZW50O1xyXG5AaW5jbHVkZSBmb3VuZGF0aW9uLXNsaWRlcjsgIFxyXG5AaW5jbHVkZSBmb3VuZGF0aW9uLXN0aWNreTtcclxuQGluY2x1ZGUgZm91bmRhdGlvbi1yZXZlYWw7XHJcbkBpbmNsdWRlIGZvdW5kYXRpb24tc3dpdGNoO1xyXG5AaW5jbHVkZSBmb3VuZGF0aW9uLXRhYmxlO1xyXG5AaW5jbHVkZSBmb3VuZGF0aW9uLXRhYnM7XHJcbkBpbmNsdWRlIGZvdW5kYXRpb24tdGh1bWJuYWlsO1xyXG5AaW5jbHVkZSBmb3VuZGF0aW9uLXRpdGxlLWJhcjtcclxuQGluY2x1ZGUgZm91bmRhdGlvbi10b29sdGlwO1xyXG5AaW5jbHVkZSBmb3VuZGF0aW9uLXRvcC1iYXI7XHJcbkBpbmNsdWRlIGZvdW5kYXRpb24tdmlzaWJpbGl0eS1jbGFzc2VzO1xyXG5AaW5jbHVkZSBmb3VuZGF0aW9uLWZsb2F0LWNsYXNzZXM7XHJcblxyXG5cclxuQGluY2x1ZGUgbW90aW9uLXVpLXRyYW5zaXRpb25zO1xyXG5AaW5jbHVkZSBtb3Rpb24tdWktYW5pbWF0aW9ucztcclxuXHJcblxyXG5cclxuJGhlYWRpbmdzLWNvbG91cjojNDY0NjQ2O1xyXG4kYm9keS10ZXh0LWNvbG91cjojNDY0NjQ2O1xyXG4kbGlnaHQtdGV4dC1jb2xvdXI6I0I2QjZCNjtcclxuJGxpbmtzLWNvbG91cjogIzkyQjYzMTtcclxuJGxpbmtzLWhvdmVyOiM3OTNFOTc7XHJcbiRib3gtYm9yZGVyLWNvbG91cjojQjZCNkI2O1xyXG5cclxuXHJcbi8vIFRPUCBCQVIgRHJvcCBEb3duIE1lbnUgXHJcbi8vJG1lbnViYXItYmc6IzkyQjYzMTsgIE9yaWdpbmFsIEdyZWVuIEJhc2VkXHJcbiRtZW51YmFyLWJnOiNFOUIwMDA7IC8vI0U0MkQ5RjsgIC8vIGFzaWFuYmF6YWFyLmNvLnVrXHJcbiRtZW51LXRleHQtY29sb3I6I0ZGRkZGRjtcclxuJHN1Ym1lbnUtYmc6I0ZGRkZGRjtcclxuJHN1Ym1lbnUtdGV4dDojNDY0NjQ2O1xyXG4kc3VibWVudS1ob3ZlcjojNzkzRTk3O1xyXG5cclxuXHJcbi50aXRsZS1iYXIgeyAgIFxyXG4gIHBhZGRpbmc6MTVweDsgICAgXHJcbiAgYWxpZ24tY29udGVudDogY2VudGVyOyAgICBcclxuICBiYWNrZ3JvdW5kOiAkbWVudWJhci1iZzsgICAgICAgICAgICAgICBcclxufSAgICAgXHJcblxyXG4udG9wLWJhciB7ICAgIFxyXG4gICAgXHJcbiAgbWluLWhlaWdodDogNDVweDsgICAgICAgIFxyXG4gIHBhZGRpbmc6MDsgICAgXHJcbiAgICAgIFxyXG4gIGJhY2tncm91bmQtY29sb3I6ICRtZW51YmFyLWJnOyAgICBcclxuICB1bCB7XHJcbiAgICBiYWNrZ3JvdW5kOiAkbWVudWJhci1iZztcclxuICAgICAgXHJcbiAgICBsaSB7XHJcbiAgICAgICAgXHJcbiAgICAgIGEge1xyXG4gICAgICAgICAgIGxpbmUtaGVpZ2h0OiA0NXB4OyAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICBwYWRkaW5nOiAwIDE1cHg7XHJcbiAgICAgICAgICAgZm9udC1zaXplOiAxMnB4OyAgICAgICAgICAgICBcclxuICAgICAgICAgICBjb2xvcjogJG1lbnUtdGV4dC1jb2xvcjsgIFxyXG4gICAgICB9XHJcbiAgICAgICBhOmhvdmVyIHtcclxuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzdWJtZW51LWhvdmVyO1xyXG4gICAgICAgICAgY29sb3I6I2ZmZjsgICBcclxuICAgICAgIH0gICAgIFxyXG4gICAgICAgICBcclxuICAgIH0gXHJcbiAgICAgIFxyXG4gICAgIFxyXG4gIH0gICAgICBcclxufVxyXG5cclxuLnRvcC1iYXItcmlnaHQge1xyXG4gICAgcGFkZGluZyA6IDVweCAxNXB4O1xyXG4gICAgLnNlYXJjaCB7XHJcbiAgICAgICAgXHJcbiAgICAgICAgbWF4LXdpZHRoOiAzMDBweDtcclxuICAgICAgICBpbnB1dCB7XHJcbiAgICAgICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICAgICAgaGVpZ2h0OiAzNXB4O1xyXG4gICAgICAgIH1cclxuICAgICAgICAuc3RleHQge1xyXG4gICAgICAgICAgICB3aWR0aDogNjAlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIFxyXG59XHJcblxyXG5cclxuLy9MZWZ0IE1lbnVcclxuLy8kbGVmdC1tZW51LWhlYWRlci1iZzogIzc5M0U5NzsgT1JJR0lOQUxcclxuJGxlZnQtbWVudS1oZWFkZXItYmc6ICM5MkI2MzE7ICAvLyBhc2lhbmJhemFhci5jby51a1xyXG4kbGVmdC1tZW51LWJnOiNGRkZGRkY7IC8vIGJveCBiZyBcclxuJGxlZnQtbWVudS1iZy1saWdodDojODc0NUE4OyAgLy8gYm9yZGVyLCBob3ZlciBiZ1xyXG4kbGVmdC1tZW51LXRleHQ6ICM0NjQ2NDY7IC8vIGxpbmsgdGV4dCwgaGVhZGVyIHRleHQsIGxpbmsgaG92ZXIgdGV4dCAgXHJcbi5sZWZ0bWVudSB7XHJcbiAgLy93aWR0aDogMjIwcHg7ICAgICBcclxuICAvL2JvcmRlcjogMXB4IHNvbGlkICRsZWZ0LW1lbnUtYmctbGlnaHQ7XHJcbiAgYm9yZGVyOm5vbmU7ICAgIFxyXG4gIGJveC1zaGFkb3c6IDBweCAycHggMTBweCAwcHggcmdiYSg1MCwgNTAsIDUwLCAwLjUpOyAgICAgICAgIFxyXG4gIG1hcmdpbi1ib3R0b206IDEuNXJlbTsgIFxyXG4gIGJhY2tncm91bmQ6ICRsZWZ0LW1lbnUtYmc7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgXHJcbiAgLmhlYWRlciB7ICBcclxuICAgIGJhY2tncm91bmQ6ICRsZWZ0LW1lbnUtaGVhZGVyLWJnOyAgXHJcbiAgICAvL2JvcmRlci1ib3R0b206IDFweCBzb2xpZCAkbGVmdC1tZW51LWJnLWxpZ2h0OyAgICAgIFxyXG4gICAgaGVpZ2h0OiA0NXB4O1xyXG4gICAgZm9udC1zaXplOiAxNXB4OyAgIFxyXG4gICAgY29sb3I6ICNGRkZGRkY7ICAgXHJcbiAgICBwYWRkaW5nOiAxMHB4IDEwcHg7ICAgICBcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBcclxuICAgXHJcbiAgfVxyXG4gIHVsIHtcclxuICAgIG1hcmdpbjogMDtcclxuICAgIHBhZGRpbmc6IDA7IFxyXG4gICAgbGkgeyAgICBcclxuICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xyXG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0VBRUFFQTtcclxuICAgICAgY29sb3I6ICRsZWZ0LW1lbnUtdGV4dDtcclxuICAgICAgJjpsYXN0LWNoaWxkIHtib3JkZXItYm90dG9tOiBub25lO30gICAgXHJcbiAgICAgICAgICBcclxuICAgICAgYSB7ICBcclxuICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxLjlyZW07ICAgICAgXHJcbiAgICAgICBjb2xvcjogJGxlZnQtbWVudS10ZXh0OyAgXHJcbiAgICAgICBkaXNwbGF5OiBibG9jazsgICAgICAgICAgICAgIFxyXG4gICAgICB9XHJcbiAgICAgIGE6aG92ZXIge1xyXG4gICAgICAgIGNvbG9yOiAjRkZGRkZGO1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRsZWZ0LW1lbnUtYmctbGlnaHQ7XHJcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAyLjByZW07ICBcclxuICAgICAgfSAgICAgICAgICBcclxuICAgIH0gICAgICBcclxuICB9XHJcbn1cclxuXHJcbi8vLm1lbnUtdGV4dCB7XHJcbi8vICBjb2xvcjogJG1lbnUtdGV4dC1jb2xvcjsgIFxyXG4vLyAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0MGVtKSB7XHJcbi8vICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgICAgICAgICAgICAgICBcclxuLy8gIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4vL31cclxuLy9AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcclxuLy8gICAgXHJcbi8vICAgIFxyXG4vLyAgLm1lbnU6bGFzdC1jaGlsZCB7ICAgICAgICAgICAgICAgICAgICAgIFxyXG4vLyAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICRtZW51LXRleHQtY29sb3I7ICAgICAgXHJcbi8vICB9XHJcbi8vICAubWVudTpmaXJzdC1jaGlsZCB7XHJcbi8vICAgIGJvcmRlci1sZWZ0OiBub25lO1xyXG4vLyAgfSAgICAgICAgXHJcbi8vICAubWVudSB7ICAgXHJcbi8vICAgIGxpOm5vdCg6bGFzdC1jaGlsZCkgeyAgXHJcbi8vICAgICAgYm9yZGVyLXJpZ2h0OiBub25lOyAgXHJcbi8vICAgIH0gICAgIFxyXG4vLyAgfSAgXHJcbi8vICAgIFxyXG4vL31cclxuXHJcbi5kcm9wZG93bi5tZW51IC5zdWJtZW51IHtcclxuICBib3JkZXI6IG5vbmU7ICAgICAgICAgXHJcbn1cclxuLmRyb3Bkb3duLm1lbnUgLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50LmlzLXJpZ2h0LWFycm93PmE6OmFmdGVyIHtcclxuICBib3JkZXItY29sb3I6ICNmZmYgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7ICAgICAgICAgICAgICAgICAgICAgICBcclxufVxyXG4uaXMtZHJpbGxkb3duLXN1Ym1lbnUtcGFyZW50PmE6OmFmdGVyIHtcclxuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICNmZmY7XHJcbn1cclxuLmpzLWRyaWxsZG93bi1iYWNrOjpiZWZvcmUge1xyXG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgI2ZmZiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcclxufVxyXG5cclxuLm1lbnUge1xyXG4gICAgJi5kcm9wZG93biB7XHJcbiAgICAgICAgLnN1Ym1lbnUge1xyXG4gICAgICAgICAgIC8vIGJvcmRlcjoxcHggc29saWQgI0VBRUFFQTtcclxuICAgICAgICAgICAgYm9yZGVyOm5vbmU7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmZmY7ICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDBweCAycHggMTBweCAwcHggcmdiYSg1MCwgNTAsIDUwLCAwLjUpO1xyXG4gICAgICAgICAgICB0cmFuc2l0aW9uOiAwLjRzIGVhc2U7XHJcblxyXG4gICAgICAgICAgICBsaSB7ICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XHJcbiAgICAgICAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xyXG4gICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjRUFFQUVBO1xyXG4gICAgICAgICAgICAgIGNvbG9yOiAkc3VibWVudS10ZXh0OyBcclxuICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xyXG4gICAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xyXG4gICAgICAgICAgICAgICAgfSAgICAgICBcclxuICAgICAgICAgICAgICBhIHtcclxuICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDQwcHg7IFxyXG4gICAgICAgICAgICAgICAgICBjb2xvcjogJHN1Ym1lbnUtdGV4dDsgXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgYTpob3ZlciB7XHJcbiAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzdWJtZW51LWhvdmVyO1xyXG4gICAgICAgICAgICAgICAgICBjb2xvcjojZmZmOyAgIFxyXG4gICAgICAgICAgICAgIH0gIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICB9ICAgXHJcbiAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcblxyXG4vLyBUbyBhdm9pZCB0b3AgYmFyIGxvYWRpbmcgaXNzdWVzXHJcbi5uby1qcyB7XHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XHJcbiAgICAudG9wLWJhciB7XHJcbiAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xyXG4gICAgLnRpdGxlLWJhciB7XHJcbiAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9IFxyXG4gIH1cclxufVxyXG5cclxuLy90YWJzXHJcblxyXG4uY29udGVudC10YWJzIHtcclxuICAgIC50YWJzIHtcclxuICAgICAgICBib3JkZXI6IG5vbmU7XHJcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNFQUVBRUE7XHJcbiAgICAgICAgbGkge1xyXG4gICAgICAgICAgICAvL2hlaWdodDogMzNweDtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLnRhYnMtdGl0bGUgPiBhIHtcclxuICAgICAgXHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IzkyQjYzMTtcclxuICAgICAgcGFkZGluZzogMS4wcmVtIDEuOXJlbTsgICAgICBcclxuICAgICAgY29sb3I6ICNGRkZGRkY7XHJcbiAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNGRkZGRkY7ICBcclxuICAgICAgICBcclxuICAgICAgICAgICBcclxuXHJcbiAgICB9XHJcbiAgICBhOmhvdmVyIHtcclxuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6Izc5M0U5NzsgIFxyXG4gICAgICAgICAgY29sb3I6ICNGRkZGRkY7XHJcbiAgICB9IFxyXG4gICAgXHJcbiAgICAudGFicy1jb250ZW50IHtcclxuICAgICAgICBoZWlnaHQ6IDIwMHB4OyAgICAgICAgXHJcbiAgICB9XHJcbn1cclxuXHJcblxyXG4jaGVhZGVyIHsgICAgIFxyXG4gICAgI2NhcnQgeyAgIFxyXG4gICAgICAgIHJpZ2h0OmF1dG87XHJcbiAgICB9ICAgXHJcbn1cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcbi8vTGVmdCBCb3hcclxuLy8kbGVmdC1ib3gtaGVhZGVyLWJnOiM5MkI2MzE7IC8vIGJveCBiZywgaGVhZGVyIGJnXHJcbi8vJGxlZnQtYm94LWJnLWxpZ2h0OiNiNGRkNDY7ICAvLyBib3JkZXIsIGhvdmVyIGJnXHJcbi8vJGxlZnQtYm94LXRleHQ6ICM0NjQ2NDY7IC8vIGxpbmsgdGV4dCwgaGVhZGVyIHRleHQsIGxpbmsgaG92ZXIgdGV4dCAgXHJcbi8vLmxlZnRib3gge1xyXG4vLyAgd2lkdGg6IDIyMHB4OyAgICAgXHJcbi8vICBiYWNrZ3JvdW5kOiAjRkZGRkZGOyAgXHJcbi8vICBib3JkZXI6bm9uZTsgICAgXHJcbi8vICBib3gtc2hhZG93OiAwcHggMnB4IDEwcHggMHB4IHJnYmEoNTAsIDUwLCA1MCwgMC41KTsgICAgXHJcbi8vICBtYXJnaW4tYm90dG9tOiAxLjVyZW07ICAgIFxyXG4vLyAgcG9zaXRpb246IHJlbGF0aXZlOyAgICBcclxuLy8gIGNvbG9yOiAkbGVmdC1ib3gtdGV4dDsgICAgXHJcbi8vICAuaGVhZGVyIHsgICAgIFxyXG4vLyAgICBiYWNrZ3JvdW5kOiAkbGVmdC1ib3gtaGVhZGVyLWJnOyAgICBcclxuLy8gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRsZWZ0LWJveC1iZy1saWdodDsgICAgICBcclxuLy8gICAgaGVpZ2h0OiAzcmVtO1xyXG4vLyAgICBmb250LXNpemU6IDEuMjByZW07ICAgXHJcbi8vICAgIGNvbG9yOiAjRkZGRkZGOyAgIFxyXG4vLyAgICBwYWRkaW5nOiAwLjVyZW0gMS4wcmVtOyAgICAgXHJcbi8vICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbi8vICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgICBcclxuLy8gIH1cclxuLy8gIC5kYXRhIHsgIFxyXG4vLyAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGJveC1ib3JkZXItY29sb3VyOyAgICAgXHJcbi8vICAgIGhlaWdodDogMi41cmVtOyAgIFxyXG4vLyAgICBmb250LXdlaWdodDogYm9sZDtcclxuLy8gICAgYmFja2dyb3VuZDogI0ZGRkZGRjsgIFxyXG4vLyAgICBjb2xvcjogJGxlZnQtYm94LXRleHQ7ICAgXHJcbi8vICAgIHBhZGRpbmc6IDAuNXJlbSAxLjVyZW07ICAgICBcclxuLy8gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuLy8gICAgcG9zaXRpb246IHJlbGF0aXZlOyAgICBcclxuLy8gIH1cclxuLy8gICAgIFxyXG4vLyAgdGFibGUgeyAgICAgIFxyXG4vLyAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsgICAgICAgIFxyXG4vLyAgfSAgXHJcbi8vICBmb3JtIHtcclxuLy8gICAgICAgIG1hcmdpbjogMXJlbTsgXHJcbi8vICAgICAgICBwYWRkaW5nLWJvdHRvbTogMS41cmVtO1xyXG4vLyAgICB9ICAgIFxyXG4vLyAgICAgIFxyXG4vLyAgICBcclxuLy99XHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG4iXSwic291cmNlUm9vdCI6Ii9zb3VyY2UvIn0= */
