.cart_totals > h2, .woocommerce-order-details__title, .cross-sells > h2 {
  font-size: var(--size-l-2);
}
@media screen and (min-width: 75em) {
  .cart_totals > h2, .woocommerce-order-details__title, .cross-sells > h2 {
    font-size: var(--size-l-4);
  }
}

.quantity .minus,
.quantity .plus {
  font-size: var(--size-l-1);
}
@media screen and (min-width: 75em) {
  .quantity .minus,
.quantity .plus {
    font-size: var(--size-l-2);
  }
}

.woocommerce-form-coupon, .woocommerce-form-coupon-toggle, .woocommerce-form-login, .woocommerce-form-login-toggle, .woocommerce-store-notice, .woocommerce-message,
.woocommerce-Message,
.woocommerce-notice,
.woocommerce-info,
.woocommerce-error, .alert-tip, .alert-info, .alert-success, .alert-warning, .alert-error {
  display: inline-block;
  margin-bottom: 20px;
  padding: 10px;
  width: 100%;
  text-align: center;
  color: black;
  font-weight: bold;
  border-radius: 3px;
  border: 1px solid;
}

.woocommerce-form-coupon, .woocommerce-form-coupon-toggle {
  background-color: #cce5ff;
  border-color: #99cbff;
}

.woocommerce-notice--success, .woocommerce-message[role=alert],
.woocommerce-Message[role=alert],
.woocommerce-notice[role=alert],
.woocommerce-info[role=alert],
.woocommerce-error[role=alert] {
  background-color: #d4edda;
  border-color: #b0debb;
}

.woocommerce-error[role=alert] {
  background-color: #f8d7da;
  border-color: #f0acb2;
}

.woocommerce-form-login, .woocommerce-form-login-toggle, .woocommerce-store-notice, .woocommerce-info {
  background-color: #d1ecf1;
  border-color: #aadce5;
}

.alert-error {
  color: #f8d7da;
  background-color: #f8d7da;
  border-color: #f0acb2;
}

.alert-warning {
  color: #fff3cd;
  background-color: #fff3cd;
  border-color: #ffe79a;
}

.alert-success {
  color: #d4edda;
  background-color: #d4edda;
  border-color: #b0debb;
}

.alert-info {
  color: #d1ecf1;
  background-color: #d1ecf1;
  border-color: #aadce5;
}

.alert-tip {
  color: #cce5ff;
  background-color: #cce5ff;
  border-color: #99cbff;
}

.woocommerce-message,
.woocommerce-Message,
.woocommerce-notice,
.woocommerce-info,
.woocommerce-error {
  margin: 10px;
  width: auto;
}
@media screen and (max-width: 39.99875em) {
  .woocommerce-message .button,
.woocommerce-Message .button,
.woocommerce-notice .button,
.woocommerce-info .button,
.woocommerce-error .button {
    display: block;
    margin-bottom: 10px;
  }
}
@media screen and (min-width: 40em) {
  .woocommerce-message .button,
.woocommerce-Message .button,
.woocommerce-notice .button,
.woocommerce-info .button,
.woocommerce-error .button {
    margin-right: 10px;
  }
}
.woocommerce-message::before,
.woocommerce-Message::before,
.woocommerce-notice::before,
.woocommerce-info::before,
.woocommerce-error::before {
  position: relative;
  top: 0;
  left: 0;
  padding-right: 10px;
  color: white;
}

.woocommerce-error {
  text-align: left;
}
.woocommerce-error li::before {
  color: #e9808a !important;
}

.woocommerce-store-notice {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  margin: 0;
}
.woocommerce-store-notice .woocommerce-store-notice__dismiss-link {
  text-decoration: underline;
}

.cross-sells {
  padding-top: var(--section-padding);
  text-align: center;
  background-color: #DCE1DE;
}
@media screen and (min-width: 64em) {
  .cross-sells {
    text-align: left;
  }
}
.cross-sells > h2 {
  position: relative;
  display: inline-block;
  margin-bottom: 20px;
  padding: 0 10px;
  font-weight: 300;
}
.cross-sells > h2::after {
  content: "";
  position: relative;
  display: block;
  bottom: 0;
  width: 80%;
  height: 4px;
  background-color: #3B8162;
}

.quantity {
  display: flex;
  align-items: center;
  margin-bottom: 20px;
}
@media screen and (max-width: 39.99875em) {
  .quantity {
    flex-flow: row wrap;
  }
}
.quantity [type=number] {
  vertical-align: middle;
  margin-bottom: 0 !important;
}
@media screen and (max-width: 39.99875em) {
  .quantity [type=number] {
    display: block;
    margin-bottom: 10px;
    flex: 0 0 100%;
    max-width: 100%;
    text-align: center;
  }
}
.quantity .minus,
.quantity .plus {
  width: 48px;
  height: 48px;
  background-color: #DCE1DE;
  border: 1px solid #c1c9c4;
}
.quantity .qty {
  max-width: 60px;
  text-align: center;
}

.woocommerce-order {
  margin-left: auto;
  margin-right: auto;
}

.woocommerce-order-overview,
.woocommerce-thankyou-order-details {
  list-style: none;
  margin: 0 !important;
  padding: 0 !important;
  border: 2px solid #DCE1DE;
}
.woocommerce-order-overview li,
.woocommerce-thankyou-order-details li {
  padding: 10px;
  border-bottom: 1px solid #DCE1DE;
}
.woocommerce-order-overview + p,
.woocommerce-thankyou-order-details + p {
  padding: 10px 0;
  font-weight: 700;
}

.woocommerce-order-details__title {
  position: relative;
  display: inline-block;
  margin-bottom: 20px;
  color: #216869;
  font-weight: 300;
}
.woocommerce-order-details__title::after {
  content: "";
  position: relative;
  display: block;
  bottom: 0;
  width: 80%;
  height: 4px;
  background-color: #3B8162;
}

.woocommerce-cart .woocommerce,
.woocommerce-checkout .woocommerce {
  max-width: var(--grid-width);
  margin-right: auto;
  margin-left: auto;
  padding-right: 10px;
  padding-left: 10px;
  padding-bottom: var(--section-padding);
}

@media screen and (max-width: 63.99875em) {
  .woocommerce-cart-form__cart-item .product-name::before,
.woocommerce-cart-form__cart-item .product-price::before,
.woocommerce-cart-form__cart-item .product-quantity::before,
.woocommerce-cart-form__cart-item .product-subtotal::before {
    content: attr(data-title) ": ";
    font-weight: 700;
    float: left;
  }
}
.woocommerce-cart-form__cart-item .product-thumbnail a {
  display: inline-block;
  vertical-align: middle;
}
.woocommerce-cart-form__cart-item .product-thumbnail a .attachment-woocommerce_thumbnail {
  width: 100px;
}
.woocommerce-cart-form__cart-item .quantity {
  justify-content: flex-end;
}

@media screen and (max-width: 63.99875em) {
  .woocommerce-cart-form__contents thead {
    display: none;
  }
}
.woocommerce-cart-form__contents .actions .coupon {
  display: inline-block;
  vertical-align: top;
  margin-bottom: 15px;
  width: 100%;
}
@media screen and (min-width: 64em) {
  .woocommerce-cart-form__contents .actions .coupon {
    margin-bottom: 0;
    max-width: 320px;
  }
}
.woocommerce-cart-form__contents .actions .coupon input,
.woocommerce-cart-form__contents .actions .coupon [name=apply_coupon] {
  width: 100% !important;
}
.woocommerce-cart-form__contents .actions .coupon [name=apply_coupon] {
  color: #1F2421;
  background-color: #9CC5A1;
  border: 1px solid #3B8162;
}
.woocommerce-cart-form__contents .actions .coupon [name=apply_coupon]:hover, .woocommerce-cart-form__contents .actions .coupon [name=apply_coupon]:focus {
  background-color: #8cbc92;
}
.woocommerce-cart-form__contents .actions [name=update_cart] {
  display: inline-block;
  vertical-align: top;
}
@media screen and (max-width: 63.99875em) {
  .woocommerce-cart-form__contents .actions [name=update_cart] {
    width: 100%;
  }
}
@media screen and (min-width: 64em) {
  .woocommerce-cart-form__contents .actions [name=update_cart] {
    float: right;
    margin-left: auto;
  }
}

.cart-collaterals {
  display: flex;
  flex-flow: column wrap;
}
.cart-collaterals .cross-sells {
  order: 1;
}
.cart-collaterals .cart_totals {
  order: 0;
}

.cart_totals {
  padding: var(--section-padding) 0;
}
.cart_totals > h2 {
  position: relative;
  display: inline-block;
  margin-bottom: 20px;
  padding: 0 10px;
  font-weight: 300;
}
.cart_totals > h2::after {
  content: "";
  position: relative;
  display: block;
  bottom: 0;
  width: 80%;
  height: 4px;
  background-color: #3B8162;
}

.woocommerce-checkout .woocommerce {
  display: flex;
  flex-flow: row wrap;
}
.woocommerce-checkout .woocommerce .column {
  flex: 0 0 100%;
  max-width: 100%;
}
@media screen and (min-width: 64em) {
  .woocommerce-checkout .woocommerce .column {
    flex: 0 0 50%;
    max-width: 50%;
  }
}

.woocommerce-form-login-toggle {
  margin-bottom: 10px;
}
.woocommerce-form-login-toggle a {
  color: #2e8596;
}

.woocommerce-form-login {
  margin-bottom: 20px;
  text-align: left;
}

.woocommerce-form-coupon-toggle {
  margin-bottom: 10px;
}
.woocommerce-form-coupon-toggle a {
  color: #0064cc;
}

.woocommerce-form-coupon {
  margin-bottom: 20px;
  text-align: left;
}

[name=checkout] {
  display: flex;
  flex-flow: row wrap;
  padding-top: 40px;
  flex: 0 0 100%;
  max-width: 100%;
}
[name=checkout] > * {
  flex: 1 1 0px;
  padding-right: 10px;
  padding-left: 10px;
  min-width: 0;
  flex: 0 0 100%;
  max-width: 100%;
}
@media screen and (min-width: 64em) {
  [name=checkout] > * {
    flex: 0 0 50%;
    max-width: 50%;
  }
}
[name=checkout] h3 {
  position: relative;
  display: inline-block;
  margin-bottom: 20px;
  font-weight: 300;
}
[name=checkout] h3::after {
  content: "";
  position: relative;
  display: block;
  bottom: 0;
  width: 80%;
  height: 4px;
  background-color: #3B8162;
}

.woocommerce-checkout-review-order-table .cart-subtotal th, .woocommerce-checkout-review-order-table .cart-subtotal td {
  color: black;
  background-color: #eaedeb;
}

.woocommerce-checkout-payment {
  margin-bottom: 40px;
  padding: 10px;
  border: 2px solid #DCE1DE;
}
.woocommerce-checkout-payment .wc_payment_methods {
  list-style: none;
  margin: 0 !important;
  padding: 0 !important;
}
.woocommerce-checkout-payment .wc_payment_methods li {
  padding: 10px;
  border-bottom: 1px solid #DCE1DE;
}
.woocommerce-checkout-payment .place-order {
  padding: 10px;
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImdsb2JhbC9fZXh0ZW5kcy5zY3NzIiwiY2hlY2tvdXQuY3NzIiwiZm91bmRhdGlvbi91dGlsL19icmVha3BvaW50LnNjc3MiLCJnbG9iYWwvX3ZhcmlhYmxlcy5zY3NzIiwiY29tcG9uZW50cy9fYWxlcnRzLnNjc3MiLCJjb21wb25lbnRzL19jcm9zcy1zZWxscy5zY3NzIiwiY29tcG9uZW50cy9fcXVhbnRpdHkuc2NzcyIsImNvbXBvbmVudHMvX29yZGVyLXJlY2VpdmVkLnNjc3MiLCJtb2R1bGVzL193b28tY2FydC5zY3NzIiwibW9kdWxlcy9fd29vLWNoZWNrb3V0LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBMkVBO0VBQ0MsMEJBQUE7QUMxRUQ7QUNzTEk7RUY3R0o7SUFLRSwwQkFBQTtFQzFFQTtBQUNGOztBRHNGQTs7RUFDQywwQkFBQTtBQ2xGRDtBQzRLSTtFRjNGSjs7SUFLRSwwQkFBQTtFQ2pGQTtBQUNGOztBRHlKQTs7Ozs7RUFDQyxxQkFBQTtFQUNBLG1CRzNKZTtFSDRKZixhRzlKZTtFSCtKZixXQUFBO0VBQ0Esa0JBQUE7RUFDQSxZQUFBO0VBQ0EsaUJBQUE7RUFDQSxrQkFBQTtFQUNBLGlCQUFBO0FDbEpEOztBRHFKQTtFQUNDLHlCR3JKVztFSHNKWCxxQkFBQTtBQ2xKRDs7QURxSkE7Ozs7O0VBQ0MseUJHekplO0VIMEpmLHFCQUFBO0FDOUlEOztBRGlKQTtFQUNDLHlCRzdKYTtFSDhKYixxQkFBQTtBQzlJRDs7QURzSkE7RUFDQyx5QkdyS1k7RUhzS1oscUJBQUE7QUNuSkQ7O0FHakNDO0VBUEEsY0FaYTtFQWFiLHlCQWJhO0VBY2IscUJBQUE7QUg0Q0Q7O0FHdkNDO0VBUEEsY0FaYTtFQWFiLHlCQWJhO0VBY2IscUJBQUE7QUhrREQ7O0FHN0NDO0VBUEEsY0FaYTtFQWFiLHlCQWJhO0VBY2IscUJBQUE7QUh3REQ7O0FHbkRDO0VBUEEsY0FaYTtFQWFiLHlCQWJhO0VBY2IscUJBQUE7QUg4REQ7O0FHekRDO0VBUEEsY0Fa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RDtBUXRVQztFQUNDLGdCQUFBO0VBQ0Esb0JBQUE7RUFDQSxxQkFBQTtBUndVRjtBUXRVRTtFQUNDLGFOekdhO0VNMEdiLGdDQUFBO0FSd1VIO0FRcFVDO0VBQ0MsYU4vR2M7QUZxYmhCIiwiZmlsZSI6ImNoZWNrb3V0LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEV4dGVuZHNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8gTWFrZXMgYW4gZWxlbWVudCB2aXN1YWxseSBoaWRkZW4sIGJ1dCBzdGlsbCBhY2Nlc3NpYmxlIHRvIGtleWJvYXJkcyBhbmQgYXNzaXN0aXZlIGRldmljZXMuXG4lc2hvdy1mb3Itc3Ige1xuXHRwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcblx0d2lkdGg6IDFweDtcblx0aGVpZ2h0OiAxcHg7XG5cdHBhZGRpbmc6IDA7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cdGNsaXAtcGF0aDogaW5zZXQoNTAlKTtcblx0Ym9yZGVyOiAwO1xuXG5cdCY6Zm9jdXMge1xuXHRcdHBhZGRpbmc6IDE1cHggMjNweCAxNHB4O1xuXHRcdHdpZHRoOiBhdXRvO1xuXHRcdHdpZHRoOiBhdXRvO1xuXHRcdGNsaXA6IGF1dG8gIWltcG9ydGFudDtcblx0XHRib3JkZXItcmFkaXVzOiAzcHg7XG5cdH1cbn1cblxuLy8gdG8gdXNlIHdoZW4gaW5zaWRlIGJyZWFrcG9pbnRcbkBtaXhpbiByb3coKSB7XG5cdG1heC13aWR0aDogdmFyKC0tZ3JpZC13aWR0aCk7XG5cdG1hcmdpbi1yaWdodDogYXV0bztcblx0bWFyZ2luLWxlZnQ6IGF1dG87XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZmxvdzogcm93IHdyYXA7XG59XG5cbiVyb3cge1xuXHRtYXgtd2lkdGg6IHZhcigtLWdyaWQtd2lkdGgpO1xuXHRtYXJnaW4tcmlnaHQ6IGF1dG87XG5cdG1hcmdpbi1sZWZ0OiBhdXRvO1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWZsb3c6IHJvdyB3cmFwO1xufVxuXG4vLyB0byB1c2Ugd2hlbiBpbnNpZGUgYnJlYWtwb2ludFxuQG1peGluIGNvbHVtbigpIHtcblx0ZmxleDogMSAxIDBweDtcblx0cGFkZGluZy1yaWdodDogJHNtYWxsLXNwYWNpbmc7XG5cdHBhZGRpbmctbGVmdDogJHNtYWxsLXNwYWNpbmc7XG5cdG1pbi13aWR0aDogMDtcbn1cblxuJWNvbHVtbiB7XG5cdGZsZXg6IDEgMSAwcHg7XG5cdHBhZGRpbmctcmlnaHQ6ICRzbWFsbC1zcGFjaW5nO1xuXHRwYWRkaW5nLWxlZnQ6ICRzbWFsbC1zcGFjaW5nO1xuXHRtaW4td2lkdGg6IDA7XG59XG5cbiVoMSB7XG5cdGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS1sLTQpO1xuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoeGxhcmdlKSB7XG5cdFx0Ly8gNzMuMTlweFxuXHRcdGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS1sLTYpO1xuXHR9XG59XG5cbiVoMiB7XG5cdGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS1sLTMpO1xuXHRcblx0QGluY2x1ZGUgYnJlYWtwb2ludCh4bGFyZ2UpIHtcblx0XHQvLyA1NC4wMHB4XG5cdFx0Zm9udC1zaXplOiB2YXIoLS1zaXplLWwtNSk7XG5cdH1cbn1cblxuJWgzIHtcblx0Zm9udC1zaXplOiB2YXIoLS1zaXplLWwtMik7XG5cdFxuXHRAaW5jbHVkZSBicmVha3BvaW50KHhsYXJnZSkge1xuXHRcdC8vIDM5Ljg0cHhcblx0XHRmb250LXNpemU6IHZhcigtLXNpemUtbC00KTtcblx0fVxufVxuXG4laDQge1xuXHRmb250LXNpemU6IHZhcigtLXNpemUtbC0xKTtcblxuXHRAaW5jbHVkZSBicmVha3BvaW50KHhsYXJnZSkge1xuXHRcdC8vIDI5LjM5cHhcblx0XHRmb250LXNpemU6IHZhcigtLXNpemUtbC0zKTtcblx0fVxufVxuXG4laDUge1xuXHRmb250LXNpemU6IHZhcigtLXNpemUtbC0xKTtcblxuXHRAaW5jbHVkZSBicmVha3BvaW50KHhsYXJnZSkge1xuXHRcdC8vIDIxLjY5cHhcblx0XHRmb250LXNpemU6IHZhcigtLXNpemUtbC0yKTtcblx0fVxufVxuXG4laDYge1xuXHQvLyAxNnB4XG5cdGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS1sLTIpO1xufVxuXG4lcCB7XG5cdG1hcmdpbi10b3A6IDA7XG5cdGZvbnQtc2l6ZTogcmVtLWNhbGMoMTZweCk7XG5cdHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7XG59XG5cbiVhIHtcblx0bGluZS1oZWlnaHQ6IGluaGVyaXQ7XG5cdGNvbG9yOiBpbmhlcml0O1xuXHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cblx0Jjpob3ZlciwgXG5cdCY6Zm9jdXMge1xuXHRcdGNvbG9yOiBpbmhlcml0O1xuXHR9XHRcbn1cblxuJWJ0biB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0cGFkZGluZzogJHNtYWxsLXNwYWNpbmc7XG5cdGNvbG9yOiB3aGl0ZTtcblx0Zm9udC13ZWlnaHQ6ICRib2xkO1xuXHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRsZXR0ZXItc3BhY2luZzogJGxldHRlci1zcGFjaW5nO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkZGFyay1ncmVlbjtcblxuXHQmOmhvdmVyLFxuXHQmOmZvY3VzIHtcblx0XHRjb2xvcjogd2hpdGU7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbigkZGFyay1ncmVlbiwgNSUpO1xuXHR9XG59XG5cbiVwaWN0dXJlIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRkaXNwbGF5OiBibG9jaztcblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogMTAwJTtcblxuXHQmLnZpZGVvIHtcblx0XHRwYWRkaW5nLXRvcDogNzUlO1xuXHRcdGhlaWdodDogYXV0bztcblxuXHRcdCYud2lkZXNjcmVlbiB7XG5cdFx0XHRwYWRkaW5nLXRvcDogNTYuMjUlO1xuXHRcdH1cblx0fVxufVxuXG4lcGljdHVyZS1jaGlsZCB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0aGVpZ2h0OiAxMDAlO1xuXHR3aWR0aDogMTAwJTtcblx0dG9wOiAwO1xuXHRsZWZ0OiAwO1xuXHRvYmplY3QtZml0OiBjb3Zlcjtcbn1cblxuJXBpY3R1cmUtdmlkZW8ge1xuXHRwYWRkaW5nLWJvdHRvbTogNTYuMjUlO1xufVxuXG4lYWxlcnQge1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdG1hcmdpbi1ib3R0b206ICRsYXJnZS1zcGFjaW5nO1xuXHRwYWRkaW5nOiAkc21hbGwtc3BhY2luZzsgXG5cdHdpZHRoOiAxMDAlO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdGNvbG9yOiBibGFjaztcblx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdGJvcmRlci1yYWRpdXM6IDNweDtcblx0Ym9yZGVyOiAxcHggc29saWQ7XG59XG5cbiV0aXAge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkYWxlcnQtdGlwO1xuXHRib3JkZXItY29sb3I6IGRhcmtlbigkYWxlcnQtdGlwLCAxMCUpO1xufVxuXG4lc3VjY2VzcyB7XG5cdGJhY2tncm91bmQtY29sb3I6ICRhbGVydC1zdWNjZXNzO1xuXHRib3JkZXItY29sb3I6IGRhcmtlbigkYWxlcnQtc3VjY2VzcywgMTAlKTtcbn1cblxuJWVycm9yIHtcblx0YmFja2dyb3VuZC1jb2xvcjogJGFsZXJ0LWVycm9yO1xuXHRib3JkZXItY29sb3I6IGRhcmtlbigkYWxlcnQtZXJyb3IsIDEwJSk7XG59XG5cbiV3YXJuaW5nIHtcblx0YmFja2dyb3VuZC1jb2xvcjogJGFsZXJ0LXdhcm5pbmc7XG5cdGJvcmRlci1jb2xvcjogZGFya2VuKCRhbGVydC13YXJuaW5nLCAxMCUpO1xufVxuXG4laW5mbyB7XG5cdGJhY2tncm91bmQtY29sb3I6ICRhbGVydC1pbmZvO1xuXHRib3JkZXItY29sb3I6IGRhcmtlbigkYWxlcnQtaW5mbywgMTAlKTtcbn1cblxuXG4vLyBMYXlvdXQgfiBkZXJpdmVkIGZyb20gR3V0ZW5iZXJnXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4lcmVzcG9uc2l2ZS1hbGlnbmRlZmF1bHQtd2lkdGgge1xuXHRtYXgtd2lkdGg6IHZhcigtLXJlc3BvbnNpdmUtLWFsaWduZGVmYXVsdC13aWR0aCk7XG5cdG1hcmdpbi1sZWZ0OiBhdXRvO1xuXHRtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG5cbiVyZXNwb25zaXZlLWFsaWdud2lkZS13aWR0aCB7XG5cdG1heC13aWR0aDogdmFyKC0tcmVzcG9uc2l2ZS0tYWxpZ253aWRlLXdpZHRoKTtcblx0bWFyZ2luLWxlZnQ6IGF1dG87XG5cdG1hcmdpbi1yaWdodDogYXV0bztcbn1cblxuJXJlc3BvbnNpdmUtYWxpZ25mdWxsLXdpZHRoLW1vYmlsZSB7XG5cdG1heC13aWR0aDogdmFyKC0tcmVzcG9uc2l2ZS0tYWxpZ25mdWxsLXdpZHRoKTtcblx0d2lkdGg6IHZhcigtLXJlc3BvbnNpdmUtLWFsaWduZnVsbC13aWR0aCk7XG5cdG1hcmdpbi1sZWZ0OiBhdXRvO1xuXHRtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG5cbkBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cdCVyZXNwb25zaXZlLWFsaWduZnVsbC13aWR0aCB7XG5cdFx0bWF4LXdpZHRoOiB2YXIoLS1yZXNwb25zaXZlLS1hbGlnbmZ1bGwtd2lkdGgpO1xuXHRcdHdpZHRoOiBhdXRvO1xuXHRcdG1hcmdpbi1sZWZ0OiBhdXRvO1xuXHRcdG1hcmdpbi1yaWdodDogYXV0bztcblx0fVxufVxuXG4lcmVzcG9uc2l2ZS1hbGlnbndpZGUtd2lkdGgtbmVzdGVkIHtcblx0bWFyZ2luLWxlZnQ6IGF1dG87XG5cdG1hcmdpbi1yaWdodDogYXV0bztcblx0d2lkdGg6IHZhcigtLXJlc3BvbnNpdmUtLWFsaWdud2lkZS13aWR0aCk7XG5cdG1heC13aWR0aDogdmFyKC0tcmVzcG9uc2l2ZS0tYWxpZ25mdWxsLXdpZHRoKTtcbn1cblxuJXJlc3BvbnNpdmUtYWxpZ25mdWxsLXdpZHRoLW5lc3RlZCB7XG5cdG1hcmdpbi1sZWZ0OiBhdXRvO1xuXHRtYXJnaW4tcmlnaHQ6IGF1dG87XG5cdHdpZHRoOiBjYWxjKHZhcigtLXJlc3BvbnNpdmUtLWFsaWduZnVsbC13aWR0aCkgLSBjYWxjKDIgKiB2YXIoLS1yZXNwb25zaXZlLS1zcGFjaW5nLWhvcml6b250YWwpKSk7XG5cdG1heC13aWR0aDogdmFyKC0tcmVzcG9uc2l2ZS0tYWxpZ25mdWxsLXdpZHRoKTtcbn1cblxuQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXHQlcmVzcG9uc2l2ZS1hbGlnbmZ1bGwtd2lkdGgtbmVzdGVkIHtcblx0XHRtYXJnaW4tbGVmdDogYXV0bztcblx0XHRtYXJnaW4tcmlnaHQ6IGF1dG87XG5cdFx0d2lkdGg6IGNhbGModmFyKC0tcmVzcG9uc2l2ZS0tYWxpZ25mdWxsLXdpZHRoKSAtIGNhbGMoNCAqIHZhcigtLXJlc3BvbnNpdmUtLXNwYWNpbmctaG9yaXpvbnRhbCkpKTtcblx0XHRtYXgtd2lkdGg6IHZhcigtLXJlc3BvbnNpdmUtLWFsaWduZnVsbC13aWR0aCk7XG5cdH1cbn1cblxuXG4lcmVzcG9uc2l2ZS1hbGlnbmxlZnQtbW9iaWxlIHtcblx0LypydGw6aWdub3JlKi9cblx0bWFyZ2luLWxlZnQ6IDA7XG5cdC8qcnRsOmlnbm9yZSovXG5cdG1hcmdpbi1yaWdodDogdmFyKC0tcmVzcG9uc2l2ZS0tc3BhY2luZy1ob3Jpem9udGFsKTtcbn1cblxuQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblx0JXJlc3BvbnNpdmUtYWxpZ25sZWZ0IHtcblx0XHQvKnJ0bDppZ25vcmUqL1xuXHRcdG1hcmdpbi1sZWZ0OiB2YXIoLS1yZXNwb25zaXZlLS1hbGlnbmxlZnQtbWFyZ2luKTtcblx0XHQvKnJ0bDppZ25vcmUqL1xuXHRcdG1hcmdpbi1yaWdodDogdmFyKC0tZ2xvYmFsLS1zcGFjaW5nLWhvcml6b250YWwpO1xuXHR9XG59XG5cbiVyZXNwb25zaXZlLWFsaWducmlnaHQtbW9iaWxlIHtcblx0LypydGw6aWdub3JlKi9cblx0bWFyZ2luLWxlZnQ6IHZhcigtLXJlc3BvbnNpdmUtLXNwYWNpbmctaG9yaXpvbnRhbCk7XG5cdC8qcnRsOmlnbm9yZSovXG5cdG1hcmdpbi1yaWdodDogMDtcbn1cblxuQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblx0JXJlc3BvbnNpdmUtYWxpZ25yaWdodCB7XG5cdFx0LypydGw6aWdub3JlKi9cblx0XHRtYXJnaW4tbGVmdDogdmFyKC0tZ2xvYmFsLS1zcGFjaW5nLWhvcml6b250YWwpO1xuXHRcdC8qcnRsOmlnbm9yZSovXG5cdFx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1yZXNwb25zaXZlLS1hbGlnbnJpZ2h0LW1hcmdpbik7XG5cdH1cbn1cblxuIiwiLmNhcnRfdG90YWxzID4gaDIsIC53b29jb21tZXJjZS1vcmRlci1kZXRhaWxzX190aXRsZSwgLmNyb3NzLXNlbGxzID4gaDIge1xuICBmb250LXNpemU6IHZhcigtLXNpemUtbC0yKTtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgLmNhcnRfdG90YWxzID4gaDIsIC53b29jb21tZXJjZS1vcmRlci1kZXRhaWxzX190aXRsZSwgLmNyb3NzLXNlbGxzID4gaDIge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS1sLTQpO1xuICB9XG59XG5cbi5xdWFudGl0eSAubWludXMsXG4ucXVhbnRpdHkgLnBsdXMge1xuICBmb250LXNpemU6IHZhcigtLXNpemUtbC0xKTtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgLnF1YW50aXR5IC5taW51cyxcbi5xdWFudGl0eSAucGx1cyB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1zaXplLWwtMik7XG4gIH1cbn1cblxuLndvb2NvbW1lcmNlLWZvcm0tY291cG9uLCAud29vY29tbWVyY2UtZm9ybS1jb3Vwb24tdG9nZ2xlLCAud29vY29tbWVyY2UtZm9ybS1sb2dpbiwgLndvb2NvbW1lcmNlLWZvcm0tbG9naW4tdG9nZ2xlLCAud29vY29tbWVyY2Utc3RvcmUtbm90aWNlLCAud29vY29tbWVyY2UtbWVzc2FnZSxcbi53b29jb21tZXJjZS1NZXNzYWdlLFxuLndvb2NvbW1lcmNlLW5vdGljZSxcbi53b29jb21tZXJjZS1pbmZvLFxuLndvb2NvbW1lcmNlLWVycm9yLCAuYWxlcnQtdGlwLCAuYWxlcnQtaW5mbywgLmFsZXJ0LXN1Y2Nlc3MsIC5hbGVydC13YXJuaW5nLCAuYWxlcnQtZXJyb3Ige1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIHdpZHRoOiAxMDAlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiBibGFjaztcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYm9yZGVyOiAxcHggc29saWQ7XG59XG5cbi53b29jb21tZXJjZS1mb3JtLWNvdXBvbiwgLndvb2NvbW1lcmNlLWZvcm0tY291cG9uLXRvZ2dsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjY2U1ZmY7XG4gIGJvcmRlci1jb2xvcjogIzk5Y2JmZjtcbn1cblxuLndvb2NvbW1lcmNlLW5vdGljZS0tc3VjY2VzcywgLndvb2NvbW1lcmNlLW1lc3NhZ2Vbcm9sZT1hbGVydF0sXG4ud29vY29tbWVyY2UtTWVzc2FnZVtyb2xlPWFsZXJ0XSxcbi53b29jb21tZXJjZS1ub3RpY2Vbcm9sZT1hbGVydF0sXG4ud29vY29tbWVyY2UtaW5mb1tyb2xlPWFsZXJ0XSxcbi53b29jb21tZXJjZS1lcnJvcltyb2xlPWFsZXJ0XSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkNGVkZGE7XG4gIGJvcmRlci1jb2xvcjogI2IwZGViYjtcbn1cblxuLndvb2NvbW1lcmNlLWVycm9yW3JvbGU9YWxlcnRdIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y4ZDdkYTtcbiAgYm9yZGVyLWNvbG9yOiAjZjBhY2IyO1xufVxuXG4ud29vY29tbWVyY2UtZm9ybS1sb2dpbiwgLndvb2NvbW1lcmNlLWZvcm0tbG9naW4tdG9nZ2xlLCAud29vY29tbWVyY2Utc3RvcmUtbm90aWNlLCAud29vY29tbWVyY2UtaW5mbyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkMWVjZjE7XG4gIGJvcmRlci1jb2xvcjogI2FhZGNlNTtcbn1cblxuLmFsZXJ0LWVycm9yIHtcbiAgY29sb3I6ICNmOGQ3ZGE7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmOGQ3ZGE7XG4gIGJvcmRlci1jb2xvcjogI2YwYWNiMjtcbn1cblxuLmFsZXJ0LXdhcm5pbmcge1xuICBjb2xvcjogI2ZmZjNjZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjNjZDtcbiAgYm9yZGVyLWNvbG9yOiAjZmZlNzlhO1xufVxuXG4uYWxlcnQtc3VjY2VzcyB7XG4gIGNvbG9yOiAjZDRlZGRhO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDRlZGRhO1xuICBib3JkZXItY29sb3I6ICNiMGRlYmI7XG59XG5cbi5hbGVydC1pbmZvIHtcbiAgY29sb3I6ICNkMWVjZjE7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkMWVjZjE7XG4gIGJvcmRlci1jb2xvcjogI2FhZGNlNTtcbn1cblxuLmFsZXJ0LXRpcCB7XG4gIGNvbG9yOiAjY2NlNWZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NlNWZmO1xuICBib3JkZXItY29sb3I6ICM5OWNiZmY7XG59XG5cbi53b29jb21tZXJjZS1tZXNzYWdlLFxuLndvb2NvbW1lcmNlLU1lc3NhZ2UsXG4ud29vY29tbWVyY2Utbm90aWNlLFxuLndvb2NvbW1lcmNlLWluZm8sXG4ud29vY29tbWVyY2UtZXJyb3Ige1xuICBtYXJnaW46IDEwcHg7XG4gIHdpZHRoOiBhdXRvO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTk4NzVlbSkge1xuICAud29vY29tbWVyY2UtbWVzc2FnZSAuYnV0dG9uLFxuLndvb2NvbW1lcmNlLU1lc3NhZ2UgLmJ1dHRvbixcbi53b29jb21tZXJjZS1ub3RpY2UgLmJ1dHRvbixcbi53b29jb21tZXJjZS1pbmZvIC5idXR0b24sXG4ud29vY29tbWVyY2UtZXJyb3IgLmJ1dHRvbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgfVxufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAud29vY29tbWVyY2UtbWVzc2FnZSAuYnV0dG9uLFxuLndvb2NvbW1lcmNlLU1lc3NhZ2UgLmJ1dHRvbixcbi53b29jb21tZXJjZS1ub3RpY2UgLmJ1dHRvbixcbi53b29jb21tZXJjZS1pbmZvIC5idXR0b24sXG4ud29vY29tbWVyY2UtZXJyb3IgLmJ1dHRvbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICB9XG59XG4ud29vY29tbWVyY2UtbWVzc2FnZTo6YmVmb3JlLFxuLndvb2NvbW1lcmNlLU1lc3NhZ2U6OmJlZm9yZSxcbi53b29jb21tZXJjZS1ub3RpY2U6OmJlZm9yZSxcbi53b29jb21tZXJjZS1pbmZvOjpiZWZvcmUsXG4ud29vY29tbWVyY2UtZXJyb3I6OmJlZm9yZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xuICBjb2xvcjogd2hpdGU7XG59XG5cbi53b29jb21tZXJjZS1lcnJvciB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG4ud29vY29tbWVyY2UtZXJyb3IgbGk6OmJlZm9yZSB7XG4gIGNvbG9yOiAjZTk4MDhhICFpbXBvcnRhbnQ7XG59XG5cbi53b29jb21tZXJjZS1zdG9yZS1ub3RpY2Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogMDtcbn1cbi53b29jb21tZXJjZS1zdG9yZS1ub3RpY2UgLndvb2NvbW1lcmNlLXN0b3JlLW5vdGljZV9fZGlzbWlzcy1saW5rIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5cbi5jcm9zcy1zZWxscyB7XG4gIHBhZGRpbmctdG9wOiB2YXIoLS1zZWN0aW9uLXBhZGRpbmcpO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6ICNEQ0UxREU7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5jcm9zcy1zZWxscyB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgfVxufVxuLmNyb3NzLXNlbGxzID4gaDIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgcGFkZGluZzogMCAxMHB4O1xuICBmb250LXdlaWdodDogMzAwO1xufVxuLmNyb3NzLXNlbGxzID4gaDI6OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm90dG9tOiAwO1xuICB3aWR0aDogODAlO1xuICBoZWlnaHQ6IDRweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzNCODE2Mjtcbn1cblxuLnF1YW50aXR5IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5Ljk5ODc1ZW0pIHtcbiAgLnF1YW50aXR5IHtcbiAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICB9XG59XG4ucXVhbnRpdHkgW3R5cGU9bnVtYmVyXSB7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM5Ljk5ODc1ZW0pIHtcbiAgLnF1YW50aXR5IFt0eXBlPW51bWJlcl0ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgZmxleDogMCAwIDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxufVxuLnF1YW50aXR5IC5taW51cyxcbi5xdWFudGl0eSAucGx1cyB7XG4gIHdpZHRoOiA0OHB4O1xuICBoZWlnaHQ6IDQ4cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNEQ0UxREU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjMWM5YzQ7XG59XG4ucXVhbnRpdHkgLnF0eSB7XG4gIG1heC13aWR0aDogNjBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ud29vY29tbWVyY2Utb3JkZXIge1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuXG4ud29vY29tbWVyY2Utb3JkZXItb3ZlcnZpZXcsXG4ud29vY29tbWVyY2UtdGhhbmt5b3Utb3JkZXItZGV0YWlscyB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMnB4IHNvbGlkICNEQ0UxREU7XG59XG4ud29vY29tbWVyY2Utb3JkZXItb3ZlcnZpZXcgbGksXG4ud29vY29tbWVyY2UtdGhhbmt5b3Utb3JkZXItZGV0YWlscyBsaSB7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjRENFMURFO1xufVxuLndvb2NvbW1lcmNlLW9yZGVyLW92ZXJ2aWV3ICsgcCxcbi53b29jb21tZXJjZS10aGFua3lvdS1vcmRlci1kZXRhaWxzICsgcCB7XG4gIHBhZGRpbmc6IDEwcHggMDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cblxuLndvb2NvbW1lcmNlLW9yZGVyLWRldGFpbHNfX3RpdGxlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIGNvbG9yOiAjMjE2ODY5O1xuICBmb250LXdlaWdodDogMzAwO1xufVxuLndvb2NvbW1lcmNlLW9yZGVyLWRldGFpbHNfX3RpdGxlOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJvdHRvbTogMDtcbiAgd2lkdGg6IDgwJTtcbiAgaGVpZ2h0OiA0cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzQjgxNjI7XG59XG5cbi53b29jb21tZXJjZS1jYXJ0IC53b29jb21tZXJjZSxcbi53b29jb21tZXJjZS1jaGVja291dCAud29vY29tbWVyY2Uge1xuICBtYXgtd2lkdGg6IHZhcigtLWdyaWQtd2lkdGgpO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xuICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gIHBhZGRpbmctYm90dG9tOiB2YXIoLS1zZWN0aW9uLXBhZGRpbmcpO1xufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2My45OTg3NWVtKSB7XG4gIC53b29jb21tZXJjZS1jYXJ0LWZvcm1fX2NhcnQtaXRlbSAucHJvZHVjdC1uYW1lOjpiZWZvcmUsXG4ud29vY29tbWVyY2UtY2FydC1mb3JtX19jYXJ0LWl0ZW0gLnByb2R1Y3QtcHJpY2U6OmJlZm9yZSxcbi53b29jb21tZXJjZS1jYXJ0LWZvcm1fX2NhcnQtaXRlbSAucHJvZHVjdC1xdWFudGl0eTo6YmVmb3JlLFxuLndvb2NvbW1lcmNlLWNhcnQtZm9ybV9fY2FydC1pdGVtIC5wcm9kdWN0LXN1YnRvdGFsOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS10aXRsZSkgXCI6IFwiO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gIH1cbn1cbi53b29jb21tZXJjZS1jYXJ0LWZvcm1fX2NhcnQtaXRlbSAucHJvZHVjdC10aHVtYm5haWwgYSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbi53b29jb21tZXJjZS1jYXJ0LWZvcm1fX2NhcnQtaXRlbSAucHJvZHVjdC10aHVtYm5haWwgYSAuYXR0YWNobWVudC13b29jb21tZXJjZV90aHVtYm5haWwge1xuICB3aWR0aDogMTAwcHg7XG59XG4ud29vY29tbWVyY2UtY2FydC1mb3JtX19jYXJ0LWl0ZW0gLnF1YW50aXR5IHtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjMuOTk4NzVlbSkge1xuICAud29vY29tbWVyY2UtY2FydC1mb3JtX19jb250ZW50cyB0aGVhZCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuLndvb2NvbW1lcmNlLWNhcnQtZm9ybV9fY29udGVudHMgLmFjdGlvbnMgLmNvdXBvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgbWFyZ2luLWJvdHRvbTogMTVweDtcbiAgd2lkdGg6IDEwMCU7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC53b29jb21tZXJjZS1jYXJ0LWZvcm1fX2NvbnRlbnRzIC5hY3Rpb25zIC5jb3Vwb24ge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgbWF4LXdpZHRoOiAzMjBweDtcbiAgfVxufVxuLndvb2NvbW1lcmNlLWNhcnQtZm9ybV9fY29udGVudHMgLmFjdGlvbnMgLmNvdXBvbiBpbnB1dCxcbi53b29jb21tZXJjZS1jYXJ0LWZvcm1fX2NvbnRlbnRzIC5hY3Rpb25zIC5jb3Vwb24gW25hbWU9YXBwbHlfY291cG9uXSB7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG59XG4ud29vY29tbWVyY2UtY2FydC1mb3JtX19jb250ZW50cyAuYWN0aW9ucyAuY291cG9uIFtuYW1lPWFwcGx5X2NvdXBvbl0ge1xuICBjb2xvcjogIzFGMjQyMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzlDQzVBMTtcbiAgYm9yZGVyOiAxcHggc29saWQgIzNCODE2Mjtcbn1cbi53b29jb21tZXJjZS1jYXJ0LWZvcm1fX2NvbnRlbnRzIC5hY3Rpb25zIC5jb3Vwb24gW25hbWU9YXBwbHlfY291cG9uXTpob3ZlciwgLndvb2NvbW1lcmNlLWNhcnQtZm9ybV9fY29udGVudHMgLmFjdGlvbnMgLmNvdXBvbiBbbmFtZT1hcHBseV9jb3Vwb25dOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzhjYmM5Mjtcbn1cbi53b29jb21tZXJjZS1jYXJ0LWZvcm1fX2NvbnRlbnRzIC5hY3Rpb25zIFtuYW1lPXVwZGF0ZV9jYXJ0XSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYzLjk5ODc1ZW0pIHtcbiAgLndvb2NvbW1lcmNlLWNhcnQtZm9ybV9fY29udGVudHMgLmFjdGlvbnMgW25hbWU9dXBkYXRlX2NhcnRdIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAud29vY29tbWVyY2UtY2FydC1mb3JtX19jb250ZW50cyAuYWN0aW9ucyBbbmFtZT11cGRhdGVfY2FydF0ge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgfVxufVxuXG4uY2FydC1jb2xsYXRlcmFscyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogY29sdW1uIHdyYXA7XG59XG4uY2FydC1jb2xsYXRlcmFscyAuY3Jvc3Mtc2VsbHMge1xuICBvcmRlcjogMTtcbn1cbi5jYXJ0LWNvbGxhdGVyYWxzIC5jYXJ0X3RvdGFscyB7XG4gIG9yZGVyOiAwO1xufVxuXG4uY2FydF90b3RhbHMge1xuICBwYWRkaW5nOiB2YXIoLS1zZWN0aW9uLXBhZGRpbmcpIDA7XG59XG4uY2FydF90b3RhbHMgPiBoMiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBwYWRkaW5nOiAwIDEwcHg7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG59XG4uY2FydF90b3RhbHMgPiBoMjo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3R0b206IDA7XG4gIHdpZHRoOiA4MCU7XG4gIGhlaWdodDogNHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjM0I4MTYyO1xufVxuXG4ud29vY29tbWVyY2UtY2hlY2tvdXQgLndvb2NvbW1lcmNlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiByb3cgd3JhcDtcbn1cbi53b29jb21tZXJjZS1jaGVja291dCAud29vY29tbWVyY2UgLmNvbHVtbiB7XG4gIGZsZXg6IDAgMCAxMDAlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC53b29jb21tZXJjZS1jaGVja291dCAud29vY29tbWVyY2UgLmNvbHVtbiB7XG4gICAgZmxleDogMCAwIDUwJTtcbiAgICBtYXgtd2lkdGg6IDUwJTtcbiAgfVxufVxuXG4ud29vY29tbWVyY2UtZm9ybS1sb2dpbi10b2dnbGUge1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuLndvb2NvbW1lcmNlLWZvcm0tbG9naW4tdG9nZ2xlIGEge1xuICBjb2xvcjogIzJlODU5Njtcbn1cblxuLndvb2NvbW1lcmNlLWZvcm0tbG9naW4ge1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4ud29vY29tbWVyY2UtZm9ybS1jb3Vwb24tdG9nZ2xlIHtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cbi53b29jb21tZXJjZS1mb3JtLWNvdXBvbi10b2dnbGUgYSB7XG4gIGNvbG9yOiAjMDA2NGNjO1xufVxuXG4ud29vY29tbWVyY2UtZm9ybS1jb3Vwb24ge1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG5bbmFtZT1jaGVja291dF0ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICBwYWRkaW5nLXRvcDogNDBweDtcbiAgZmxleDogMCAwIDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTtcbn1cbltuYW1lPWNoZWNrb3V0XSA+ICoge1xuICBmbGV4OiAxIDEgMHB4O1xuICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xuICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gIG1pbi13aWR0aDogMDtcbiAgZmxleDogMCAwIDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgW25hbWU9Y2hlY2tvdXRdID4gKiB7XG4gICAgZmxleDogMCAwIDUwJTtcbiAgICBtYXgtd2lkdGg6IDUwJTtcbiAgfVxufVxuW25hbWU9Y2hlY2tvdXRdIGgzIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG59XG5bbmFtZT1jaGVja291dF0gaDM6OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm90dG9tOiAwO1xuICB3aWR0aDogODAlO1xuICBoZWlnaHQ6IDRweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzNCODE2Mjtcbn1cblxuLndvb2NvbW1lcmNlLWNoZWNrb3V0LXJldmlldy1vcmRlci10YWJsZSAuY2FydC1zdWJ0b3RhbCB0aCwgLndvb2NvbW1lcmNlLWNoZWNrb3V0LXJldmlldy1vcmRlci10YWJsZSAuY2FydC1zdWJ0b3RhbCB0ZCB7XG4gIGNvbG9yOiBibGFjaztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VhZWRlYjtcbn1cblxuLndvb2NvbW1lcmNlLWNoZWNrb3V0LXBheW1lbnQge1xuICBtYXJnaW4tYm90dG9tOiA0MHB4O1xuICBwYWRkaW5nOiAxMHB4O1xuICBib3JkZXI6IDJweCBzb2xpZCAjRENFMURFO1xufVxuLndvb2NvbW1lcmNlLWNoZWNrb3V0LXBheW1lbnQgLndjX3BheW1lbnRfbWV0aG9kcyB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG59XG4ud29vY29tbWVyY2UtY2hlY2tvdXQtcGF5bWVudCAud2NfcGF5bWVudF9tZXRob2RzIGxpIHtcbiAgcGFkZGluZzogMTBweDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNEQ0UxREU7XG59XG4ud29vY29tbWVyY2UtY2hlY2tvdXQtcGF5bWVudCAucGxhY2Utb3JkZXIge1xuICBwYWRkaW5nOiAxMHB4O1xufSIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBicmVha3BvaW50c1xuLy8vL1xuXG4vLy8gQSBsaXN0IG9mIG5hbWVkIGJyZWFrcG9pbnRzLiBZb3UgY2FuIHVzZSB0aGVzZSB3aXRoIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0byBxdWlja2x5IGNyZWF0ZSBtZWRpYSBxdWVyaWVzLlxuLy8vIEB0eXBlIE1hcFxuJGJyZWFrcG9pbnRzOiAoXG5cdHNtYWxsOiAwLFxuXHRtZWRpdW06IDY0MHB4LFxuXHRsYXJnZTogMTAyNHB4LFxuXHR4bGFyZ2U6IDEyMDBweCxcblx0eHhsYXJnZTogMTQ0MHB4LFxuKSAhZGVmYXVsdDtcblxuLy8vIEEgbGlzdCBvZiBuYW1lZCBIaURQSSBicmVha3BvaW50cy4gWW91IGNhbiB1c2UgdGhlc2Ugd2l0aCB0aGUgYGJyZWFrcG9pbnQoKWAgbWl4aW4gdG8gcXVpY2tseSBjcmVhdGUgbWVkaWEgcXVlcmllcyBmb3IgcmVzb2x1dGlvbnMuXG4vLy8gVmFsdWVzIG11c3QgcmVwcmVzZW50IHRoZSBkZXZpY2UgcGl4ZWxzIC8gd2ViIHBpeGVscyByYXRpb24gYW5kIGJlIHVuaXRsZXNzIG9yIGluIERQUFguXG4vLy8gQHR5cGUgTWFwXG4kYnJlYWtwb2ludHMtaGlkcGk6IChcblx0aGlkcGktMTogMSxcblx0aGlkcGktMS01OiAxLjUsXG5cdGhpZHBpLTI6IDIsXG5cdHJldGluYTogMixcblx0aGlkcGktMzogMyxcbikgIWRlZmF1bHQ7XG5cbi8vLyBUaGUgbGFyZ2VzdCBuYW1lZCBicmVha3BvaW50IGluIHdoaWNoIHRvIGluY2x1ZGUgcHJpbnQgYXMgYSBtZWRpYSB0eXBlXG4vLy8gQHR5cGUgS2V5d29yZFxuJHByaW50LWJyZWFrcG9pbnQ6IGxhcmdlICFkZWZhdWx0O1xuXG4kLXpmLXplcm8tYnJlYWtwb2ludDogc21hbGwgIWRlZmF1bHQ7XG5cbiQtemYtYnJlYWtwb2ludHMta2V5czogbWFwLXRvLWxpc3QoJGJyZWFrcG9pbnRzLCBcImtleXNcIik7XG5cbkBpZiBudGgobWFwLXZhbHVlcygkYnJlYWtwb2ludHMpLCAxKSAhPSAwIHtcblx0QGVycm9yICdUaGUgZmlyc3Qga2V5IGluIHRoZSAkYnJlYWtwb2ludHMgbWFwIG11c3QgaGF2ZSBhIHZhbHVlIG9mIFwiMFwiLic7XG59IEBlbHNlIHtcblx0JC16Zi16ZXJvLWJyZWFrcG9pbnQ6IG50aChtYXAta2V5cygkYnJlYWtwb2ludHMpLCAxKTtcbn1cblxuLy8vIEFsbCBvZiB0aGUgbmFtZXMgaW4gdGhpcyBsaXN0IHdpbGwgYmUgb3V0cHV0IGFzIGNsYXNzZXMgaW4geW91ciBDU1MsIGxpa2UgYC5zbWFsbC0xMmAsIGAubWVkaXVtLTZgLCBhbmQgc28gb24uIEVhY2ggdmFsdWUgaW4gdGhpcyBsaXN0IG11c3QgYWxzbyBiZSBpbiB0aGUgYCRicmVha3BvaW50c2AgbWFwLlxuLy8vIEB0eXBlIExpc3RcbiRicmVha3BvaW50LWNsYXNzZXM6IChzbWFsbCBtZWRpdW0gbGFyZ2UpICFkZWZhdWx0O1xuXG4vLy8gR2VuZXJhdGVzIGEgbWVkaWEgcXVlcnkgc3RyaW5nIG1hdGNoaW5nIHRoZSBpbnB1dCB2YWx1ZS4gUmVmZXIgdG8gdGhlIGRvY3VtZW50YXRpb24gZm9yIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0byBzZWUgd2hhdCB0aGUgcG9zc2libGUgaW5wdXRzIGFyZS5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICR2YWwgW3NtYWxsXSAtIEJyZWFrcG9pbnQgbmFtZSwgb3IgcHgsIHJlbSwgb3IgZW0gdmFsdWUgdG8gcHJvY2Vzcy5cbkBmdW5jdGlvbiBicmVha3BvaW50KCR2YWw6ICQtemYtemVyby1icmVha3BvaW50KSB7XG5cdC8vIFdlYiBzdGFuZGFyZCBQaXhlbHMgcGVyIGluY2guICgxZGRweCAvICRzdGQtd2ViLWRwaSkgPSAxZHBpXG5cdC8vIFNlZSBodHRwczovL3d3dy53My5vcmcvVFIvY3NzLXZhbHVlcy0zLyNhYnNvbHV0ZS1sZW5ndGhzXG5cdCRzdGQtd2ViLWRwaTogOTY7XG5cblx0Ly8gU2l6ZSBvciBrZXl3b3JkXG5cdCRicDogbnRoKCR2YWwsIDEpO1xuXHQvLyBWYWx1ZSBvZiB0aGUgZm9sbG93aW5nIGJyZWFrcG9pbnRcblx0JGJwLW5leHQ6IG51bGw7XG5cdC8vIFZhbHVlIGZvciBtYXgtd2lkdGggbWVkaWEgcXVlcmllc1xuXHQkYnAtbWluOiBudWxsO1xuXHQvLyBWYWx1ZSBmb3IgbWluLXdpZHRoIG1lZGlhIHF1ZXJpZXNcblx0JGJwLW1heDogbnVsbDtcblx0Ly8gRGlyZWN0aW9uIG9mIG1lZGlhIHF1ZXJ5ICh1cCwgZG93biwgb3Igb25seSlcblx0JGRpcjogaWYobGVuZ3RoKCR2YWwpID4gMSwgbnRoKCR2YWwsIDIpLCB1cCk7XG5cdC8vIElmIG5hbWVkLCBuYW1lIG9mIHRoZSBicmVha3BvaW50XG5cdCRuYW1lOiBudWxsO1xuXHQvLyBJZiB0aGUgYnJlYWtwb2ludCBpcyBhIEhpRFBJIGJyZWFrcG9pbnRcblx0JGhpZHBpOiBmYWxzZTtcblxuXHQvLyBPcmllbnRhdGlvbiBtZWRpYSBxdWVyaWVzIGhhdmUgYSB1bmlxdWUgc3ludGF4XG5cdEBpZiAkYnAgPT0gXCJsYW5kc2NhcGVcIiBvciAkYnAgPT0gXCJwb3J0cmFpdFwiIHtcblx0XHRAcmV0dXJuIFwiKG9yaWVudGF0aW9uOiAjeyRicH0pXCI7XG5cdH1cblxuXHQvLyBJZiBhIGJyZWFrcG9pbnQgbmFtZSBpcyBnaXZlbiwgZ2V0IGl0cyB2YWx1ZSBmcm9tIHRoZSAkYnJlYWtwb2ludHMvJGJyZWFrcG9pbnRzLWhpZHBpIG1hcC5cblx0QGlmIHR5cGUtb2YoJGJwKSA9PSBcInN0cmluZ1wiIHtcblx0XHRAaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkYnApIHtcblx0XHRcdCRuYW1lOiAkYnA7XG5cdFx0XHQkYnA6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkbmFtZSk7XG5cdFx0XHQkYnAtbmV4dDogLXpmLW1hcC1uZXh0KCRicmVha3BvaW50cywgJG5hbWUpO1xuXHRcdH0gQGVsc2UgaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLWhpZHBpLCAkYnApIHtcblx0XHRcdCRuYW1lOiAkYnA7XG5cdFx0XHQkYnA6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLWhpZHBpLCAkbmFtZSk7XG5cdFx0XHQkYnAtbmV4dDogLXpmLW1hcC1uZXh0LW51bWJlcigkYnJlYWtwb2ludHMtaGlkcGksICRicCk7XG5cdFx0XHQkaGlkcGk6IHRydWU7XG5cdFx0fSBAZWxzZSB7XG5cdFx0XHQkYnA6IDA7XG5cdFx0XHRAd2FybiAnYnJlYWtwb2ludCgpOiBcIiN7JHZhbH1cIiBpcyBub3QgZGVmaW5lZCBpbiB5b3VyIGAkYnJlYWtwb2ludHNgIG9yIGAkYnJlYWtwb2ludHMtaGlkcGlgIHNldHRpbmcuJztcblx0XHR9XG5cdH1cblxuXHRAaWYgbm90ICRuYW1lIGFuZCAkZGlyID09IFwib25seVwiIHtcblx0XHRAd2FybiAnYnJlYWtwb2ludCgpOiBPbmx5IG5hbWVkIG1lZGlhIHF1ZXJpZXMgY2FuIGhhdmUgYW4gYG9ubHlgIHJhbmdlLic7XG5cdFx0QHJldHVybiBudWxsO1xuXHR9XG5cblx0Ly8gT25seSAnb25seScgYW5kICd1cCcgaGF2ZSBhIG1pbiBsaW1pdC5cblx0QGlmICRkaXIgPT0gXCJvbmx5XCIgb3IgJGRpciA9PSBcInVwXCIge1xuXHRcdCRicC1taW46IGlmKCRoaWRwaSwgc3RyaXAtdW5pdCgkYnApLCAtemYtYnAtdG8tZW0oJGJwKSk7XG5cdH1cblx0Ly8gT25seSAnb25seScgYW5kICdkb3duJyBoYXZlIGEgbWF4IGxpbWl0LlxuXHRAaWYgJGRpciA9PSBcIm9ubHlcIiBvciAkZGlyID09IFwiZG93blwiIHtcblx0XHQvLyBJZiB0aGUgYnJlYWtwb2ludCBpcyBhIHZhbHVlLCB1c2UgaXQgYXMgbWF4IGxpbWl0LlxuXHRcdEBpZiBub3QgJG5hbWUge1xuXHRcdFx0JGJwLW1heDogaWYoJGhpZHBpLCBzdHJpcC11bml0KCRicCksIC16Zi1icC10by1lbSgkYnApKTtcblx0XHR9XG5cdFx0Ly8gSWYgdGhlIGJyZWFrcG9pbnQgaXMgbmFtZWQsIHRoZSBtYXggbGltaXQgaXMgdGhlIGZvbGxvd2luZyBicmVha3BvaW50IC0gMXB4LlxuXHRcdEBlbHNlIGlmICRicC1uZXh0IHtcblx0XHRcdC8vIE1heCB2YWx1ZSBpcyAwLjJweCB1bmRlciB0aGUgbmV4dCBicmVha3BvaW50ICgwLjAyIC8gMTYgPSAwLjAwMTI1KS5cblx0XHRcdC8vIFVzZSBhIHByZWNpc2lvbiB1bmRlciAxcHggdG8gc3VwcG9ydCBicm93c2VyIHpvb20sIGJ1dCBub3QgdG8gbG93IHRvIGF2b2lkIHJvdW5kaW5nLlxuXHRcdFx0Ly8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9mb3VuZGF0aW9uL2ZvdW5kYXRpb24tc2l0ZXMvaXNzdWVzLzExMzEzXG5cdFx0XHQkYnAtbWF4OiBpZihcblx0XHRcdFx0JGhpZHBpLFxuXHRcdFx0XHQkYnAtbmV4dCAtICgxIC8gJHN0ZC13ZWItZHBpKSxcblx0XHRcdFx0LXpmLWJwLXRvLWVtKCRicC1uZXh0KSAtIDAuMDAxMjVcblx0XHRcdCk7XG5cdFx0fVxuXHR9XG5cblx0Ly8gR2VuZXJhdGUgdGhlIG1lZGlhIHF1ZXJ5IHN0cmluZyBmcm9tIG1pbiBhbmQgbWF4IGxpbWl0cy5cblx0QGlmICRoaWRwaSB7XG5cdFx0Ly8gR2VuZXJhdGUgdmFsdWVzIGluIERQSSBpbnN0ZWFkIG9mIERQUFggZm9yIGFuIElFOS0xMS9PcGVyYSBtaW5pIGNvbXBhdGliaWxpdHkuXG5cdFx0Ly8gU2VlIGh0dHBzOi8vY2FuaXVzZS5jb20vI2ZlYXQ9Y3NzLW1lZGlhLXJlc29sdXRpb25cblx0XHQkYnAtbWluLWRwaTogaWYoJGJwLW1pbiwgJGJwLW1pbiAqICRzdGQtd2ViLWRwaSAqIDFkcGksICRicC1taW4pO1xuXHRcdCRicC1tYXgtZHBpOiBpZigkYnAtbWF4LCAkYnAtbWF4ICogJHN0ZC13ZWItZHBpICogMWRwaSwgJGJwLW1heCk7XG5cdFx0QHJldHVybiB6Zi1zdHItam9pbihcblx0XHRcdC16Zi1icC1qb2luKCRicC1taW4sICRicC1tYXgsIFwiLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvXCIsIFwiLXdlYmtpdC1tYXgtZGV2aWNlLXBpeGVsLXJhdGlvXCIpLFxuXHRcdFx0LXpmLWJwLWpvaW4oJGJwLW1pbi1kcGksICRicC1tYXgtZHBpLCBcIm1pbi1yZXNvbHV0aW9uXCIsIFwibWF4LXJlc29sdXRpb25cIiksXG5cdFx0XHRcIiwgXCJcblx0XHQpO1xuXHR9IEBlbHNlIHtcblx0XHRAcmV0dXJuIC16Zi1icC1qb2luKCRicC1taW4sICRicC1tYXgpO1xuXHR9XG59XG5cbi8vLyBXcmFwcyBhIG1lZGlhIHF1ZXJ5IGFyb3VuZCB0aGUgY29udGVudCB5b3UgcHV0IGluc2lkZSB0aGUgbWl4aW4uIFRoaXMgbWl4aW4gYWNjZXB0cyBhIG51bWJlciBvZiB2YWx1ZXM6XG4vLy8gIC0gSWYgYSBzdHJpbmcgaXMgcGFzc2VkLCB0aGUgbWl4aW4gd2lsbCBsb29rIGZvciBpdCBpbiB0aGUgYCRicmVha3BvaW50c2AgYW5kIGAkYnJlYWtwb2ludHMtaGlkcGlgIG1hcHMsIGFuZCB1c2UgYSBtZWRpYSBxdWVyeSB0aGVyZS5cbi8vLyAgLSBJZiBhIHBpeGVsIHZhbHVlIGlzIHBhc3NlZCwgaXQgd2lsbCBiZSBjb252ZXJ0ZWQgdG8gYW4gZW0gdmFsdWUgdXNpbmcgYCRnbG9iYWwtZm9udC1zaXplYCBhcyB0aGUgYmFzZS5cbi8vLyAgLSBJZiBhIHJlbSB2YWx1ZSBpcyBwYXNzZWQsIHRoZSB1bml0IHdpbGwgYmUgY2hhbmdlZCB0byBlbS5cbi8vLyAgLSBJZiBhbiBlbSB2YWx1ZSBpcyBwYXNzZWQsIHRoZSB2YWx1ZSB3aWxsIGJlIHVzZWQgYXMtaXMuXG4vLy9cbi8vLyBJZiBtdWx0aXBsZSB2YWx1ZXMgYXJlIHBhc3NlZCwgdGhlIG1peGluIHdpbGwgZ2VuZXJhdGUgYSBtZWRpYSBxdWVyeSBmb3IgZWFjaCBvZiB0aGVtIGFzIGRlc2NyaWJlZCBhYm92ZS5cbi8vLyBTaW5jZSB0aGUgY29udGVudCBpcyBkdXBsaWNhdGVkIGZvciBlYWNoIGJyZWFrcG9pbnQsIHRoaXMgbWl4aW4gc2hvdWxkIG9ubHkgYmUgdXNlZCB3aXRoIHByb3BlcnRpZXMgdGhhdFxuLy8vIGNoYW5nZSBhY3Jvc3MgYnJlYWtwb2ludHMuXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkdmFsdWVzLi4uIC0gQnJlYWtwb2ludCBuYW1lIG9yIHB4L3JlbS9lbSB2YWx1ZSB0byBwcm9jZXNzLlxuLy8vXG4vLy8gQG91dHB1dCBJZiB0aGUgYnJlYWtwb2ludCBpcyBcIjBweCBhbmQgbGFyZ2VyXCIsIG91dHB1dHMgdGhlIGNvbnRlbnQgYXMtaXMuIE90aGVyd2lzZSwgb3V0cHV0cyB0aGUgY29udGVudCB3cmFwcGVkIGluIGEgbWVkaWEgcXVlcnkuXG5AbWl4aW4gYnJlYWtwb2ludCgkdmFsdWVzLi4uKSB7XG5cdEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggbGVuZ3RoKCR2YWx1ZXMpIHtcblx0XHQkdmFsdWU6IG50aCgkdmFsdWVzLCAkaSk7XG5cdFx0JHN0cjogYnJlYWtwb2ludCgkdmFsdWUpO1xuXHRcdCRicDogaW5kZXgoJC16Zi1icmVha3BvaW50cy1rZXlzLCBudGgoJHZhbHVlLCAxKSk7XG5cdFx0JHBicDogaW5kZXgoJC16Zi1icmVha3BvaW50cy1rZXlzLCAkcHJpbnQtYnJlYWtwb2ludCk7XG5cdFx0Ly8gRGlyZWN0aW9uIG9mIG1lZGlhIHF1ZXJ5ICh1cCwgZG93biwgb3Igb25seSlcblx0XHQkZGlyOiBpZihsZW5ndGgoJHZhbHVlKSA+IDEsIG50aCgkdmFsdWUsIDIpLCB1cCk7XG5cblx0XHQkb2xkLXpmLXNpemU6IG51bGw7XG5cblx0XHQvLyBNYWtlIGJyZWFrcG9pbnQgc2l6ZSBhdmFpbGFibGUgYXMgYSB2YXJpYWJsZVxuXHRcdEBpZiBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKC16Zi1zaXplKSB7XG5cdFx0XHQkb2xkLXpmLXNpemU6ICQtemYtc2l6ZTtcblx0XHR9XG5cdFx0JC16Zi1zaXplOiBudGgoXG5cdFx0XHQkdmFsdWUsXG5cdFx0XHQxXG5cdFx0KSAhZ2xvYmFsOyAvLyBnZXQgdGhlIGZpcnN0IHZhbHVlIHRvIGFjY291bnQgZm9yIGBvbmx5YCBhbmQgYGRvd25gIGtleXdvcmRzXG5cblx0XHQvLyBJZiAkc3RyIGlzIHN0aWxsIGFuIGVtcHR5IHN0cmluZywgbm8gbWVkaWEgcXVlcnkgaXMgbmVlZGVkXG5cdFx0QGlmICRzdHIgPT0gXCJcIiB7XG5cdFx0XHRAY29udGVudDtcblx0XHR9XG5cblx0XHQvLyBPdGhlcndpc2UsIHdyYXAgdGhlIGNvbnRlbnQgaW4gYSBtZWRpYSBxdWVyeVxuXHRcdEBlbHNlIHtcblx0XHRcdC8vIEZvciBuYW1lZCBicmVha3BvaW50cyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJHByaW50LWJyZWFrcG9pbnQsIGFkZCBwcmludCB0byB0aGUgbWVkaWEgdHlwZXNcblx0XHRcdC8vIGdlbmVyYXRlIHByaW50IGlmIHRoZSBicmVha3BvaW50IGFmZmVjdHMgdGhlIHByaW50LWJyZWFrcG9pbnQgKG9yIHNtYWxsZXIpLlxuXHRcdFx0Ly8gVGhpcyBtZWFucyB0aGUgY3VycmVudCBjb25kaXRpb24gb25seSBuZWVkcyB0byBiZSBleHRlbmRlZCBzbyAnZG93bicgYWx3YXlzIGdlbmVyYXRlcyBwcmludC5cblx0XHRcdEBpZiAkYnAgIT0gbnVsbCBhbmQgKCRicCA8PSAkcGJwIG9yICRkaXIgPT0gZG93bikge1xuXHRcdFx0XHRAbWVkaWEgc2NyZWVuIGFuZCAjeyRzdHJ9IHtcblx0XHRcdFx0XHRAY29udGVudDtcblx0XHRcdFx0fVxuXHRcdFx0fSBAZWxzZSB7XG5cdFx0XHRcdEBtZWRpYSBzY3JlZW4gYW5kICN7JHN0cn0ge1xuXHRcdFx0XHRcdEBjb250ZW50O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0JC16Zi1zaXplOiAkb2xkLXpmLXNpemUgIWdsb2JhbDtcblx0fVxufVxuXG4vLy8gQ29udmVydHMgdGhlIGJyZWFrcG9pbnRzIG1hcCB0byBhIFVSTC1lbmNvZGVkIHN0cmluZywgbGlrZSB0aGlzOiBga2V5MT12YWx1ZTEma2V5Mj12YWx1ZTJgLiBUaGUgdmFsdWUgaXMgdGhlbiBkcm9wcGVkIGludG8gdGhlIENTUyBmb3IgYSBzcGVjaWFsIGA8bWV0YT5gIHRhZywgd2hpY2ggaXMgcmVhZCBieSB0aGUgRm91bmRhdGlvbiBKYXZhU2NyaXB0LiBUaGlzIGlzIGhvdyB3ZSB0cmFuc2ZlciB2YWx1ZXMgZnJvbSBTYXNzIHRvIEphdmFTY3JpcHQsIHNvIHRoZXkgY2FuIGJlIGRlZmluZWQgaW4gb25lIHBsYWNlLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtNYXB9ICRtYXAgLSBNYXAgdG8gY29udmVydC5cbi8vL1xuLy8vIEByZXR1cm5zIHtTdHJpbmd9IEEgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIG1hcCdzIGNvbnRlbnRzLlxuQGZ1bmN0aW9uIC16Zi1icC1zZXJpYWxpemUoJG1hcCkge1xuXHQkc3RyOiBcIlwiO1xuXHRAZWFjaCAka2V5LCAkdmFsdWUgaW4gJG1hcCB7XG5cdFx0JHN0cjogJHN0ciArICRrZXkgKyBcIj1cIiArIC16Zi1icC10by1lbSgkdmFsdWUpICsgXCImXCI7XG5cdH1cblx0JHN0cjogc3RyLXNsaWNlKCRzdHIsIDEsIC0yKTtcblxuXHRAcmV0dXJuICRzdHI7XG59XG5cbi8vLyBGaW5kIHRoZSBuZXh0IGtleSBpbiBhIG1hcC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TWFwfSAkbWFwIC0gTWFwIHRvIHRyYXZlcnNlLlxuLy8vIEBwYXJhbSB7TWl4ZWR9ICRrZXkgLSBLZXkgdG8gdXNlIGFzIGEgc3RhcnRpbmcgcG9pbnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7TWl4ZWR9IFRoZSB2YWx1ZSBmb3IgdGhlIGtleSBhZnRlciBgJGtleWAsIGlmIGAka2V5YCB3YXMgZm91bmQuIElmIGAka2V5YCB3YXMgbm90IGZvdW5kLCBvciBgJGtleWAgd2FzIHRoZSBsYXN0IHZhbHVlIGluIHRoZSBtYXAsIHJldHVybnMgYG51bGxgLlxuQGZ1bmN0aW9uIC16Zi1tYXAtbmV4dCgkbWFwLCAka2V5KSB7XG5cdC8vIFN0b3JlIHRoZSBrZXlzIG9mIHRoZSBtYXAgYXMgYSBsaXN0XG5cdCR2YWx1ZXM6IG1hcC1rZXlzKCRtYXApO1xuXG5cdCRpOiAwO1xuXG5cdC8vIElmIHRoZSBLZXkgRXhpc3RzLCBHZXQgdGhlIGluZGV4IG9mIHRoZSBrZXkgd2l0aGluIHRoZSBtYXAgYW5kIGFkZCAxIHRvIGl0IGZvciB0aGUgbmV4dCBicmVha3BvaW50IGluIHRoZSBtYXBcblx0QGlmIChtYXAtaGFzLWtleSgkbWFwLCAka2V5KSkge1xuXHRcdCRpOiBpbmRleCgkdmFsdWVzLCAka2V5KSArIDE7XG5cdH1cblxuXHQvLyBJZiB0aGUga2V5IGRvZXNuJ3QgZXhpc3QsIG9yIGl0J3MgdGhlIGxhc3Qga2V5IGluIHRoZSBtYXAsIHJldHVybiBudWxsXG5cdEBpZiAoJGkgPiBsZW5ndGgoJG1hcCkgb3IgJGkgPT0gMCkge1xuXHRcdEByZXR1cm4gbnVsbDtcblx0fVxuXHQvLyBPdGhlcndpc2UsIHJldHVybiB0aGUgdmFsdWVcblx0QGVsc2Uge1xuXHRcdEByZXR1cm4gbWFwLWdldCgkbWFwLCBudGgoJHZhbHVlcywgJGkpKTtcblx0fVxufVxuXG4vLy8gRmluZCB0aGUgbmV4dCBudW1iZXIgaW4gYSBtYXAuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge01hcH0gJG1hcCAtIE1hcCB0byB0cmF2ZXJzZS5cbi8vLyBAcGFyYW0ge01peGVkfSAkbnVtYmVyIC0gTnVtYmVyIHRvIHVzZSBhcyBhIHN0YXJ0aW5nIHBvaW50LlxuLy8vXG4vLy8gQHJldHVybnMge01peGVkfSBUaGUgbnVtYmVyIGZvbGxvd2luZyBgJG51bWJlcmAsIGlmIGAkbnVtYmVyYCB3YXMgZm91bmQuIElmIGAkbnVtYmVyYCB3YXMgbm90IGZvdW5kLCBvciBgJG51bWJlcmAgd2FzIHRoZSBiaWdnZXN0IG51bWJlciBpbiB0aGUgbWFwLCByZXR1cm5zIGBudWxsYC5cbkBmdW5jdGlvbiAtemYtbWFwLW5leHQtbnVtYmVyKCRtYXAsICRudW1iZXIpIHtcblx0JG5leHRfbnVtYmVyOiBudWxsO1xuXG5cdEBlYWNoICRrLCAkdiBpbiAkbWFwIHtcblx0XHRAaWYgdHlwZS1vZigkdikgPT1cblx0XHRcdFwibnVtYmVyXCIgYW5kXG5cdFx0XHQkdiA+XG5cdFx0XHQkbnVtYmVyIGFuZFxuXHRcdFx0KCRuZXh0X251bWJlciA9PSBudWxsIG9yICR2IDwgJG5leHRfbnVtYmVyKVxuXHRcdHtcblx0XHRcdCRuZXh0X251bWJlcjogJHY7XG5cdFx0fVxuXHR9XG5cblx0QHJldHVybiAkbmV4dF9udW1iZXI7XG59XG5cbi8vLyBSZXR1cm4gYSBsaXN0IG9mIG91ciBuYW1lZCBicmVha3BvaW50cyBsZXNzIHRoYW4gJGtleS4gVXNlZnVsIGZvciBkZWFsaW5nIHdpdGhcbi8vLyByZXNwb25zaXZlIGd1dHRlcnMgZm9yIHRoZSBncmlkLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRrZXkgLSBLZXkgdG8gdXNlIGFzIGxhc3QgYnJlYWtwb2ludC5cbi8vL1xuLy8vIEByZXR1cm5zIHtBcnJheX0gVGhlIGxpc3Qgb2YgYnJlYWtwb2ludHMgdXAgdG8gYW5kLiBJZiAka2V5IGlzIGF1dG8sIHJldHVybnMgYnJlYWtwb2ludHMgYWJvdmUgdGhlIHplcm9cbkBmdW5jdGlvbiAtemYtYnJlYWtwb2ludHMtbGVzcy10aGFuKCRrZXkpIHtcblx0JGxpc3Q6ICgpO1xuXHQkZm91bmRfa2V5OiBmYWxzZTtcblxuXHRAZWFjaCAkbmFtZSBpbiAkLXpmLWJyZWFrcG9pbnRzLWtleXMge1xuXHRcdEBpZiAoJG5hbWUgPT0gJGtleSkge1xuXHRcdFx0JGZvdW5kX2tleTogdHJ1ZTtcblx0XHR9XG5cdFx0QGlmIG5vdCAkZm91bmRfa2V5IHtcblx0XHRcdCRsaXN0OiBhcHBlbmQoJGxpc3QsICRuYW1lKTtcblx0XHR9XG5cdH1cblx0QHJldHVybiAkbGlzdDtcbn1cblxuLy8vIFJldHVybiBhIGxpc3Qgb2Ygb3VyIG5hbWVkIGJyZWFrcG9pbnRzIGxlc3MgdGhhbiAka2V5LiBVc2VmdWwgZm9yIGRlYWxpbmcgd2l0aFxuLy8vIHJlc3BvbnNpdmUgZ3V0dGVycyBmb3IgdGhlIGdyaWQuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGJyZWFrcG9pbnQgLSBhIG5hbWVkIG9yIG5vbi1uYW1lZCBicmVha3BvaW50LlxuLy8vXG4vLy8gQHJldHVybnMge0FycmF5fSBUaGUgbGlzdCBvZiBicmVha3BvaW50cyB1cCB0byBhbmQuIElmICRrZXkgaXMgYXV0bywgcmV0dXJucyBicmVha3BvaW50cyBhYm92ZSB0aGUgemVyb1xuQGZ1bmN0aW9uIC16Zi1jbG9zZXN0LW5hbWVkLWJyZWFrcG9pbnQoJGJyZWFrcG9pbnQpIHtcblx0JGxhc3Q6ICQtemYtemVyby1icmVha3BvaW50O1xuXHQkZm91bmQ6IGZhbHNlO1xuXG5cdCR2YWx1ZTogdW5pdGxlc3MtY2FsYygkYnJlYWtwb2ludCwgMXB4KTtcblx0QGVhY2ggJGtleSwgJHZhbCBpbiAkYnJlYWtwb2ludHMge1xuXHRcdEBpZiBub3QgJGZvdW5kIHtcblx0XHRcdEBpZiB1bml0bGVzcy1jYWxjKCR2YWwpID4gJHZhbHVlIHtcblx0XHRcdFx0JGZvdW5kOiB0cnVlO1xuXHRcdFx0fSBAZWxzZSB7XG5cdFx0XHRcdCRsYXN0OiAka2V5O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdEByZXR1cm4gJGxhc3Q7XG59XG5cbi8vLyBHZXQgYSB2YWx1ZSBmb3IgYSBicmVha3BvaW50IGZyb20gYSByZXNwb25zaXZlIGNvbmZpZyBtYXAgb3Igc2luZ2xlIHZhbHVlLlxuLy8vIC0gSWYgdGhlIGNvbmZpZyBpcyBhIHNpbmdsZSB2YWx1ZSwgcmV0dXJuIGl0IHJlZ2FyZGxlc3Mgb2YgYCR2YWx1ZWAuXG4vLy8gLSBJZiB0aGUgY29uZmlnIGlzIGEgbWFwIGFuZCBoYXMgdGhlIGtleSBgJHZhbHVlYCwgdGhlIGV4YWN0IGJyZWFrcG9pbnQgdmFsdWUgaXMgcmV0dXJuZWQuXG4vLy8gLSBJZiB0aGUgY29uZmlnIGlzIGEgbWFwIGFuZCBkb2VzICpub3QqIGhhdmUgdGhlIGJyZWFrcG9pbnQsIHRoZSB2YWx1ZSBtYXRjaGluZyB0aGUgbmV4dCBsb3dlc3QgYnJlYWtwb2ludCBpbiB0aGUgY29uZmlnIG1hcCBpcyByZXR1cm5lZC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJG1hcCAtIFJlc3BvbnNpdmUgY29uZmlnIG1hcCBvciBzaW5nbGUgdmFsdWUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkdmFsdWUgLSBCcmVha3BvaW50IG5hbWUgdG8gdXNlLlxuLy8vXG4vLy8gQHJldHVybiB7TWl4ZWR9IFRoZSBjb3JyZXNwb25kaW5nIGJyZWFrcG9pbnQgdmFsdWUuXG5AZnVuY3Rpb24gLXpmLWdldC1icC12YWwoJG1hcCwgJHZhbHVlKSB7XG5cdC8vIElmIHRoZSBnaXZlbiBtYXAgaXMgYSBzaW5nbGUgdmFsdWUsIHJldHVybiBpdFxuXHRAaWYgdHlwZS1vZigkbWFwKSA9PSBcIm51bWJlclwiIHtcblx0XHRAcmV0dXJuICRtYXA7XG5cdH1cblxuXHQvLyBDaGVjayBpZiB0aGUgYnJlYWtwb2ludCBuYW1lIGV4aXN0cyBnbG9iYWxseVxuXHRAaWYgbm90IG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJHZhbHVlKSB7XG5cdFx0QGlmIHR5cGUtb2YoJHZhbHVlKSA9PSBcIm51bWJlclwiIHtcblx0XHRcdCR2YWx1ZTogLXpmLWNsb3Nlc3QtbmFtZWQtYnJlYWtwb2ludCgkdmFsdWUpO1xuXHRcdH0gQGVsc2Uge1xuXHRcdFx0QHJldHVybiBudWxsO1xuXHRcdH1cblx0fVxuXHQvLyBDaGVjayBpZiB0aGUgYnJlYWtwb2ludCBuYW1lIGV4aXN0cyBpbiB0aGUgbG9jYWwgY29uZmlnIG1hcFxuXHRAZWxzZSBpZiBtYXAtaGFzLWtleSgkbWFwLCAkdmFsdWUpIHtcblx0XHQvLyBJZiBpdCBkb2VzLCBqdXN0IHJldHVybiB0aGUgdmFsdWVcblx0XHRAcmV0dXJuIG1hcC1nZXQoJG1hcCwgJHZhbHVlKTtcblx0fVxuXHQvLyBPdGhlcndpc2UsIGZpbmQgdGhlIG5leHQgbG93ZXN0IGJyZWFrcG9pbnQgYW5kIHJldHVybiB0aGF0IHZhbHVlXG5cdEBlbHNlIHtcblx0XHQkYW5jaG9yOiBudWxsO1xuXHRcdCRmb3VuZDogZmFsc2U7XG5cblx0XHRAZWFjaCAka2V5LCAkdmFsIGluICRicmVha3BvaW50cyB7XG5cdFx0XHRAaWYgbm90ICRmb3VuZCB7XG5cdFx0XHRcdEBpZiBtYXAtaGFzLWtleSgkbWFwLCAka2V5KSB7XG5cdFx0XHRcdFx0JGFuY2hvcjogJGtleTtcblx0XHRcdFx0fVxuXHRcdFx0XHRAaWYgJGtleSA9PSAkdmFsdWUge1xuXHRcdFx0XHRcdCRmb3VuZDogdHJ1ZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdEByZXR1cm4gbWFwLWdldCgkbWFwLCAkYW5jaG9yKTtcblx0fVxufVxuXG4vLy8gUmV0dXJuIHRoZSBiZXN0IGJyZWFrcG9pbnQgdG8gdXNlIGFjY29yZGluZyB0byB0aGUgY2FsbGluZyBjb250ZXh0LiBJdCByZXR1cm5zIGluIG9yZGVyOlxuLy8vIDEuIHRoZSBnaXZlbiBgJHZhbHVlYCBhcmd1bWVudCBpZiBpdCBpcyBub3QgbnVsbC5cbi8vLyAyLiB0aGUgZ2xvYmFsIGJyZWFrcG9pbnQgY29udGV4dCBgJC16Zi1zaXplYCBpZiBpdCBpcyBub3QgbnVsbCAobGlrZSBpZiBjYWxsZWQgaW5zaWRlIHRoZW4gYGJyZWFrcG9pbnQoKWAgbWl4aW4pXG4vLy8gMy4gdGhlIGdpdmVuIGAkZGVmYXVsdGAgYXJndW1lbnQuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR2YWx1ZSBbbnVsbF0gLSBCcmVha3BvaW50IHRvIHVzZSBpbiBwcmlvcml0eSBpZiBub24tbnVsbC5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkZWZhdWx0IFtudWxsXSAtIEJyZWFrcG9pbnQgdG8gdXNlIGJ5IGRlZmF1bHQgaWYgbm8gb3RoZXIgdmFsdWUgY2FuIGJlIHVzZWQuXG4vLy9cbi8vLyBAcmV0dXJuIHtLZXl3b3JkfSBUaGUgcmVzb2x2ZWQgYnJlYWtwb2ludC5cbkBmdW5jdGlvbiAtemYtY3VycmVudC1icmVha3BvaW50KCR2YWx1ZTogbnVsbCwgJGRlZmF1bHQ6IG51bGwpIHtcblx0QGlmICgkdmFsdWUgIT0gbnVsbCkge1xuXHRcdEByZXR1cm4gJHZhbHVlO1xuXHR9IEBlbHNlIGlmXG5cdFx0KHZhcmlhYmxlLWV4aXN0cygtemYtc2l6ZSkgYW5kIHR5cGUtb2YoJC16Zi1zaXplKSAhPSBcIm51bWJlclwiKSBhbmRcblx0XHQkLXpmLXNpemUgIT1cblx0XHRudWxsXG5cdHtcblx0XHRAcmV0dXJuICQtemYtc2l6ZTtcblx0fSBAZWxzZSB7XG5cdFx0QHJldHVybiAkZGVmYXVsdDtcblx0fVxufVxuXG4vLy8gUmV0dXJuIG1lZGlhIHF1ZXJ5IHN0cmluZyBmcm9tIHRoZSBnaXZlbiBtaW4gYW5kL29yIG1heCBsaW1pdHMuXG4vLy8gSWYgYSBsaW1pdCBpcyBlcXVhbCB0byBgbnVsbGAgb3IgYDBgLCBpdCBpcyBpZ25vcmVkLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRtaW4gWzBdIC0gTWluIG1lZGlhIHF1ZXJ5IGxpbWl0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbWF4IFswXSAtIE1heCBtZWRpYSBxdWVyeSBsaW1pdC5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG1pbi1uYW1lIFsnbWluLXdpZHRoJ10gLSBOYW1lIG9mIHRoZSBtaW4gbWVkaWEgcXVlcnkgbGltaXQuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRkZWxpbWl0ZXIgWydtYXgtd2lkdGgnXSAtIE5hbWUgb2YgdGhlIG1heCBtZWRpYSBxdWVyeSBsaW1pdC5cbi8vL1xuLy8vIEByZXR1cm5zIHtTdHJpbmd9IE1lZGlhIFF1ZXJ5IHN0cmluZy5cbkBmdW5jdGlvbiAtemYtYnAtam9pbihcblx0JG1pbjogMCxcblx0JG1heDogMCxcblx0JG1pbi1uYW1lOiBcIm1pbi13aWR0aFwiLFxuXHQkbWF4LW5hbWU6IFwibWF4LXdpZHRoXCJcbikge1xuXHRAcmV0dXJuIHpmLXN0ci1qb2luKFxuXHRcdGlmKCRtaW4gYW5kICRtaW4gPiAwLCBcIigjeyRtaW4tbmFtZX06ICN7JG1pbn0pXCIsIG51bGwpLFxuXHRcdGlmKCRtYXggYW5kICRtYXggPiAwLCBcIigjeyRtYXgtbmFtZX06ICN7JG1heH0pXCIsIG51bGwpLFxuXHRcdFwiIGFuZCBcIlxuXHQpO1xufVxuXG4kc21hbGwtdXA6IFwiXCI7XG4kc21hbGwtb25seTogXCJcIjtcblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgc21hbGwpIHtcblx0JHNtYWxsLXVwOiBzY3JlZW47XG5cdCRzbWFsbC1vbmx5OiB1bnF1b3RlKFwic2NyZWVuIGFuZCAje2JyZWFrcG9pbnQoc21hbGwgb25seSl9XCIpO1xufVxuXG4kbWVkaXVtLXVwOiBcIlwiO1xuJG1lZGl1bS1vbmx5OiBcIlwiO1xuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCBtZWRpdW0pIHtcblx0JG1lZGl1bS11cDogdW5xdW90ZShcInNjcmVlbiBhbmQgI3ticmVha3BvaW50KG1lZGl1bSl9XCIpO1xuXHQkbWVkaXVtLW9ubHk6IHVucXVvdGUoXCJzY3JlZW4gYW5kICN7YnJlYWtwb2ludChtZWRpdW0gb25seSl9XCIpO1xufVxuXG4kbGFyZ2UtdXA6IFwiXCI7XG4kbGFyZ2Utb25seTogXCJcIjtcblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgbGFyZ2UpIHtcblx0JGxhcmdlLXVwOiB1bnF1b3RlKFwic2NyZWVuIGFuZCAje2JyZWFrcG9pbnQobGFyZ2UpfVwiKTtcblx0JGxhcmdlLW9ubHk6IHVucXVvdGUoXCJzY3JlZW4gYW5kICN7YnJlYWtwb2ludChsYXJnZSBvbmx5KX1cIik7XG59XG5cbiR4bGFyZ2UtdXA6IFwiXCI7XG4keGxhcmdlLW9ubHk6IFwiXCI7XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIHhsYXJnZSkge1xuXHQkeGxhcmdlLXVwOiB1bnF1b3RlKFwic2NyZWVuIGFuZCAje2JyZWFrcG9pbnQoeGxhcmdlKX1cIik7XG5cdCR4bGFyZ2Utb25seTogdW5xdW90ZShcInNjcmVlbiBhbmQgI3ticmVha3BvaW50KHhsYXJnZSBvbmx5KX1cIik7XG59XG5cbiR4eGxhcmdlLXVwOiBcIlwiO1xuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCB4eGxhcmdlKSB7XG5cdCR4eGxhcmdlLXVwOiB1bnF1b3RlKFwic2NyZWVuIGFuZCAje2JyZWFrcG9pbnQoeHhsYXJnZSl9XCIpO1xufVxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gVmFyaWFibGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiRnbG9iYWwtd2lkdGg6IDEzNzBweDtcblxuLy8gRm9udCBmYW1pbHlcbiRwcmltYXJ5LWZvbnQ6ICdUaXRpbGxpdW0gV2ViJywgc2Fucy1zZXJpZjtcblxuLy8gRm9udCB3ZWlnaHRzXG4kbGlnaHQ6IDMwMDtcbiRyZWd1bGFyOiA0MDA7XG4kc2VtaS1ib2xkOiA2MDA7XG4kYm9sZDogNzAwO1xuXG4vLyBHbG9iYWwgcGFkZGluZy9tYXJnaW5cbiRzbWFsbC1zcGFjaW5nOiAxMHB4O1xuJG1lZGl1bS1zcGFjaW5nOiAxNXB4O1xuJGxhcmdlLXNwYWNpbmc6IDIwcHg7XG4keGxhcmdlLXNwYWNpbmc6IDMwcHg7XG4keHhsYXJnZS1zcGFjaW5nOiA0MHB4O1xuJHh4eGxhcmdlLXNwYWNpbmc6IDUwcHg7XG5cbi8vIENvbG91cnNcbiRwcmltYXJ5LWdyZWVuOiAjM0I4MTYyO1xuJHByaW1hcnktZ3JlZW4tYWxseTogaHNsKDE1MmRlZywgMzAlLCAzOSUpOyAvLyB3aGVuIHRleHQgaXMgd2hpdGVcbiRsaWdodC1ncmVlbjogIzlDQzVBMTtcbiRkYXJrLWdyZWVuOiAjMjE2ODY5O1xuJGRhcmstYmx1ZTogIzAwMzA0OTtcbiRvZmYtYmxhY2s6ICMxRjI0MjE7XG4kbGlnaHQtZ3JleTogI0RDRTFERTtcbiRvZmYtd2hpdGU6ICNGQ0Y4Rjg7XG5cbi8vIEFsZXJ0cyB+IE5vdGljZXNcblxuJGFsZXJ0LXRpcDogI2NjZTVmZjsgLy8gYmx1ZVxuJGFsZXJ0LXN1Y2Nlc3M6ICNkNGVkZGE7IC8vIGdyZWVuXG4kYWxlcnQtZXJyb3I6ICNmOGQ3ZGE7IC8vIHJlZFxuJGFsZXJ0LXdhcm5pbmc6ICNmZmYzY2Q7IC8vIHllbGxvd1xuJGFsZXJ0LWluZm86ICNkMWVjZjE7IC8vIHRlYWxcblxuLy8gTWlzY1xuXG4kbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTtcblxuLy8gU0NBTElORyBQQURESU5HIG9yIE1BUkdJTlMgLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09IC8vXG4vLyBvcmlnaW5hbCBkZXNpZ24gPSAxMjMwcHggKGdsb2JhbC13aWR0aClcblxuLy8gc21hbGw6IDAgLT4gKDYwMHB4KSAgfCA2MDAgLyAxMzgwID0gMC40MzQ3ODI2MDg3XG4vLyBtZWRpdW06IC0+IDkwMHB4IFx0fCA5MDAgLyAxMzgwID0gMC42NTIxNzM5MTNcbi8vIGxhcmdlOiAtPiAxMjAwcHggXHR8IDEyMDAgLyAxMzgwID0gMC44Njk1NjUyMTc0XG4vLyA9PSBhYm92ZSB0aGUgZ2xvYmFsIHdpZHRoID09PT09XG4vLyB4bGFyZ2U6IC0+IDE0NDBweCBcdHwgMTM4MCAvIDE0NDAgPSAwLjk1ODMzMzMzMzNcblxuJHNtYWxsLWNhbGM6IDAuNDM0NzgyNjA4NztcbiRtZWRpdW0tY2FsYzogMC42NTIxNzM5MTM7XG4kbGFyZ2UtY2FsYzogMC44Njk1NjUyMTc0O1xuJHhsYXJnZS1jYWxjOiAwLjk1ODMzMzMzMzM7XG5cbi8vIGV4YW1wbGUgdXNhZ2Vcbi8vIGNhbGMoNTBweCAqICN7JHNtYWxsLWNhbGN9KTtcbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEFsZXJ0c1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLyBDb25maWd1cmF0aW9uIHZhcmlhYmxlc1xuLy8gVHlwZSBuYW1lIHwgY29sb3Igc2NoZW1lXG4kYWxlcnQtdHlwZXM6IChcblx0ZXJyb3IgICAgOiAkYWxlcnQtZXJyb3IsXG5cdHdhcm5pbmcgIDogJGFsZXJ0LXdhcm5pbmcsXG5cdHN1Y2Nlc3MgIDogJGFsZXJ0LXN1Y2Nlc3MsXG5cdGluZm8gICAgIDogJGFsZXJ0LWluZm8sXG5cdHRpcCAgICAgIDogJGFsZXJ0LXRpcFxuKSAhZGVmYXVsdDtcblxuLy8gTWl4aW4gZm9yIGR5bmFtaWMgdmFsdWVzXG4vLyBFeHRlbmRpbmcgdGhlIHBsYWNlaG9sZGVyXG5AbWl4aW4gYWxlcnQoJGNvbG9yKSB7XG5cdEBleHRlbmQgJWFsZXJ0O1xuXHRjb2xvcjogJGNvbG9yO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG5cdGJvcmRlci1jb2xvcjogZGFya2VuKCRjb2xvciwgMTAlKTtcbn1cblxuLy8gTG9vcCBkb2luZyBhbGwgdGhlIGR1bXBpbmdcbkBlYWNoICR0eXBlLCAkY29sb3IgaW4gJGFsZXJ0LXR5cGVzIHtcblx0LmFsZXJ0LSN7JHR5cGV9IHtcblx0XHRAaW5jbHVkZSBhbGVydCgkY29sb3IpO1xuXHR9XG59XG5cblxuLy8gV29vQ29tbWVyY2UgQWxlcnRzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi53b29jb21tZXJjZS1tZXNzYWdlLFxuLndvb2NvbW1lcmNlLU1lc3NhZ2UsXG4ud29vY29tbWVyY2Utbm90aWNlLFxuLndvb2NvbW1lcmNlLWluZm8sXG4ud29vY29tbWVyY2UtZXJyb3Ige1xuXHRAZXh0ZW5kICVhbGVydDtcblx0bWFyZ2luOiAkc21hbGwtc3BhY2luZztcblx0d2lkdGg6IGF1dG87XG5cblx0Jltyb2xlPVwiYWxlcnRcIl0ge1xuXHRcdEBleHRlbmQgJXN1Y2Nlc3M7XG5cdH1cblxuXHQuYnV0dG9uIHtcblx0XHRAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogJHNtYWxsLXNwYWNpbmc7XG5cdFx0fVxuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblx0XHRcdG1hcmdpbi1yaWdodDogJHNtYWxsLXNwYWNpbmc7XG5cdFx0fVxuXHR9XG5cblx0Jjo6YmVmb3JlIHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0dG9wOiAwO1xuXHRcdGxlZnQ6IDA7XG5cdFx0cGFkZGluZy1yaWdodDogJHNtYWxsLXNwYWNpbmc7XG5cdFx0Y29sb3I6IHdoaXRlO1xuXHR9XG59XG5cbi53b29jb21tZXJjZS1pbmZvIHtcblx0QGV4dGVuZCAlaW5mbztcbn1cblxuLndvb2NvbW1lcmNlLWVycm9yIHtcblx0dGV4dC1hbGlnbjogbGVmdDtcblxuXHQmW3JvbGU9XCJhbGVydFwiXSB7XG5cdFx0QGV4dGVuZCAlZXJyb3I7XG5cdH1cblxuXHRsaSB7XG5cblx0XHQmOjpiZWZvcmUge1xuXHRcdFx0Y29sb3I6IGRhcmtlbigkYWxlcnQtZXJyb3IsIDIwJSkgIWltcG9ydGFudDtcblx0XHR9XG5cdH1cbn1cblxuLndvb2NvbW1lcmNlLXN0b3JlLW5vdGljZSB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiAwO1xuXHRsZWZ0OiAwO1xuXHR3aWR0aDogMTAwJTtcblx0bWFyZ2luOiAwO1xuXHRcblx0QGV4dGVuZCAlYWxlcnQ7XG5cdEBleHRlbmQgJWluZm87XG5cblx0Lndvb2NvbW1lcmNlLXN0b3JlLW5vdGljZV9fZGlzbWlzcy1saW5rIHtcblx0XHR0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcblx0fVxufSIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIENyb3NzIFNlbGxzLCBDYXJ0IENvbGxhdGVyYWxzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5jcm9zcy1zZWxscyB7XG5cdHBhZGRpbmctdG9wOiB2YXIoLS1zZWN0aW9uLXBhZGRpbmcpO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdGJhY2tncm91bmQtY29sb3I6ICRsaWdodC1ncmV5O1xuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHR9XG5cblx0PiBoMiB7XG5cdFx0QGV4dGVuZCAlaDM7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRtYXJnaW4tYm90dG9tOiAkbGFyZ2Utc3BhY2luZztcblx0XHRwYWRkaW5nOiAwICRzbWFsbC1zcGFjaW5nO1xuXHRcdGZvbnQtd2VpZ2h0OiAkbGlnaHQ7XG5cblx0XHQmOjphZnRlciB7XG5cdFx0XHRjb250ZW50OiAnJztcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0Ym90dG9tOiAwO1xuXHRcdFx0d2lkdGg6IDgwJTtcblx0XHRcdGhlaWdodDogNHB4O1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnktZ3JlZW47XG5cdFx0fVxuXHR9XG59XG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBRdWFudGl0eSBmaWVsZFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4ucXVhbnRpdHkge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRtYXJnaW4tYm90dG9tOiAkbGFyZ2Utc3BhY2luZztcblxuXHRAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcblx0XHRmbGV4LWZsb3c6IHJvdyB3cmFwO1xuXHR9XG5cblx0W3R5cGU9XCJudW1iZXJcIl0ge1xuXHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdFx0bWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdG1hcmdpbi1ib3R0b206ICRzbWFsbC1zcGFjaW5nO1xuXHRcdFx0ZmxleDogMCAwIDEwMCU7XG5cdFx0XHRtYXgtd2lkdGg6IDEwMCU7XG5cdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0fVxuXHR9XG5cblx0Lm1pbnVzLFxuXHQucGx1cyB7XG5cdFx0d2lkdGg6IDQ4cHg7XG5cdFx0aGVpZ2h0OiA0OHB4O1xuXHRcdEBleHRlbmQgJWg1O1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICRsaWdodC1ncmV5O1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkIGRhcmtlbigkbGlnaHQtZ3JleSwgMTAlKTtcblx0fVxuXG5cdC5xdHkge1xuXHRcdG1heC13aWR0aDogNjBweDtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdH1cbn1cbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIENoZWNrb3V0IC0gT3JkZXIgUmVjZWl2ZWRcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLndvb2NvbW1lcmNlLW5vdGljZS0tc3VjY2VzcyB7XG5cdEBleHRlbmQgJXN1Y2Nlc3M7XG59XG5cbi53b29jb21tZXJjZS1vcmRlciB7XG5cdG1hcmdpbi1sZWZ0OiBhdXRvO1xuXHRtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG5cbi53b29jb21tZXJjZS1vcmRlci1vdmVydmlldywgXG4ud29vY29tbWVyY2UtdGhhbmt5b3Utb3JkZXItZGV0YWlscyB7XG5cdGxpc3Qtc3R5bGU6IG5vbmU7XG5cdG1hcmdpbjogMCAhaW1wb3J0YW50O1xuXHRwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG5cdGJvcmRlcjogMnB4IHNvbGlkICRsaWdodC1ncmV5O1xuXG5cdGxpIHtcblx0XHRwYWRkaW5nOiAkc21hbGwtc3BhY2luZztcblx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgJGxpZ2h0LWdyZXk7XG5cdH1cblxuXHQrIHAge1xuXHRcdHBhZGRpbmc6ICRzbWFsbC1zcGFjaW5nIDA7XG5cdFx0Zm9udC13ZWlnaHQ6ICRib2xkO1xuXHR9XG59XG5cbi53b29jb21tZXJjZS1vcmRlci1kZXRhaWxzX190aXRsZSB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRtYXJnaW4tYm90dG9tOiAkbGFyZ2Utc3BhY2luZztcblx0QGV4dGVuZCAlaDM7XG5cdGNvbG9yOiAkZGFyay1ncmVlbjtcblx0Zm9udC13ZWlnaHQ6ICRsaWdodDtcblxuXHQmOjphZnRlciB7XG5cdFx0Y29udGVudDogJyc7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdGJvdHRvbTogMDtcblx0XHR3aWR0aDogODAlO1xuXHRcdGhlaWdodDogNHB4O1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5LWdyZWVuO1xuXHR9XG59XG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBXb29Db21tZXJjZSAvY2FydC9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLndvb2NvbW1lcmNlLWNhcnQsXG4ud29vY29tbWVyY2UtY2hlY2tvdXQge1xuXG5cdC53b29jb21tZXJjZSB7XG5cdFx0bWF4LXdpZHRoOiB2YXIoLS1ncmlkLXdpZHRoKTtcblx0XHRtYXJnaW4tcmlnaHQ6IGF1dG87XG5cdFx0bWFyZ2luLWxlZnQ6IGF1dG87XG5cdFx0cGFkZGluZy1yaWdodDogJHNtYWxsLXNwYWNpbmc7XG5cdFx0cGFkZGluZy1sZWZ0OiAkc21hbGwtc3BhY2luZztcblx0XHRwYWRkaW5nLWJvdHRvbTogdmFyKC0tc2VjdGlvbi1wYWRkaW5nKTtcblx0fVxufVxuXG4ud29vY29tbWVyY2UtY2FydC1mb3JtX19jYXJ0LWl0ZW0ge1xuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pIHtcblxuXHRcdC5wcm9kdWN0LW5hbWUsXG5cdFx0LnByb2R1Y3QtcHJpY2UsXG5cdFx0LnByb2R1Y3QtcXVhbnRpdHksXG5cdFx0LnByb2R1Y3Qtc3VidG90YWwge1xuXG5cdFx0XHQmOjpiZWZvcmUge1xuXHRcdFx0XHRjb250ZW50OiBhdHRyKGRhdGEtdGl0bGUpIFwiOiBcIjtcblx0XHRcdFx0Zm9udC13ZWlnaHQ6IDcwMDtcblx0XHRcdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblxuXHQvLyBURFxuXHQucHJvZHVjdC10aHVtYm5haWwge1xuXG5cdFx0YSB7XG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG5cdFx0XHQuYXR0YWNobWVudC13b29jb21tZXJjZV90aHVtYm5haWwge1xuXHRcdFx0XHR3aWR0aDogMTAwcHg7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0LnF1YW50aXR5IHtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXHR9XG59XG5cbi53b29jb21tZXJjZS1jYXJ0LWZvcm1fX2NvbnRlbnRzIHtcblxuXHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKSB7XG5cdFx0dGhlYWQge1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XG5cdH1cblxuXHQuYWN0aW9ucyB7XG5cblx0XHQuY291cG9uIHtcblx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdHZlcnRpY2FsLWFsaWduOiB0b3A7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAkbWVkaXVtLXNwYWNpbmc7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFxuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHRcdFx0XHRtYXgtd2lkdGg6IDMyMHB4O1xuXHRcdFx0fVxuXG5cdFx0XHRpbnB1dCxcblx0XHRcdFtuYW1lPVwiYXBwbHlfY291cG9uXCJdIHtcblx0XHRcdFx0d2lkdGg6IDEwMCUgIWltcG9ydGFudDtcblx0XHRcdH1cblxuXHRcdFx0W25hbWU9XCJhcHBseV9jb3Vwb25cIl0ge1xuXHRcdFx0XHRjb2xvcjogJG9mZi1ibGFjaztcblx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJGxpZ2h0LWdyZWVuO1xuXHRcdFx0XHRib3JkZXI6IDFweCBzb2xpZCAkcHJpbWFyeS1ncmVlbjtcblxuXHRcdFx0XHQmOmhvdmVyLFxuXHRcdFx0XHQmOmZvY3VzIHtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJGxpZ2h0LWdyZWVuLCA1JSk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHRbbmFtZT1cInVwZGF0ZV9jYXJ0XCJdIHtcblx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdHZlcnRpY2FsLWFsaWduOiB0b3A7XHRcdFx0XG5cblx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pIHtcblx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHR9XG5cblx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRcdFx0ZmxvYXQ6IHJpZ2h0O1xuXHRcdFx0XHRtYXJnaW4tbGVmdDogYXV0bztcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuLmNhcnQtY29sbGF0ZXJhbHMge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWZsb3c6IGNvbHVtbiB3cmFwO1xuXG5cdC5jcm9zcy1zZWxscyB7XG5cdFx0b3JkZXI6IDE7XG5cdH1cblxuXHQuY2FydF90b3RhbHMge1xuXHRcdG9yZGVyOiAwO1xuXHR9XG59XG5cbi5jYXJ0X3RvdGFscyB7XG5cdHBhZGRpbmc6IHZhcigtLXNlY3Rpb24tcGFkZGluZykgMDtcblxuXHQ+IGgyIHtcblx0XHRAZXh0ZW5kICVoMztcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdG1hcmdpbi1ib3R0b206ICRsYXJnZS1zcGFjaW5nO1xuXHRcdHBhZGRpbmc6IDAgJHNtYWxsLXNwYWNpbmc7XG5cdFx0Zm9udC13ZWlnaHQ6ICRsaWdodDtcblxuXHRcdCY6OmFmdGVyIHtcblx0XHRcdGNvbnRlbnQ6ICcnO1xuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRib3R0b206IDA7XG5cdFx0XHR3aWR0aDogODAlO1xuXHRcdFx0aGVpZ2h0OiA0cHg7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1ncmVlbjtcblx0XHR9XG5cdH1cbn1cblxuXG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBXb29Db21tZXJjZSAvY2hlY2tvdXQvXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi53b29jb21tZXJjZS1jaGVja291dCB7XG5cblx0Lndvb2NvbW1lcmNlIHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGZsZXgtZmxvdzogcm93IHdyYXA7XG5cblx0XHQuY29sdW1uIHtcblx0XHRcdC8vIHNtYWxsLTEyXG5cdFx0XHRmbGV4OiAwIDAgMTAwJTtcblx0XHRcdG1heC13aWR0aDogMTAwJTtcblxuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXHRcdFx0XHRmbGV4OiAwIDAgNTAlO1xuXHRcdFx0XHRtYXgtd2lkdGg6IDUwJTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuLy8gZXhwYW5kaW5nIHBhbmVscy4uLiBncm91cGVkIGJ5IEpxdWVyeVxuXG4ud29vY29tbWVyY2UtZm9ybS1sb2dpbi10b2dnbGUge1xuXHRAZXh0ZW5kICVhbGVydDtcblx0QGV4dGVuZCAlaW5mbztcblx0bWFyZ2luLWJvdHRvbTogJHNtYWxsLXNwYWNpbmc7XG5cblx0YSB7XG5cdFx0Y29sb3I6IGRhcmtlbigkYWxlcnQtaW5mbywgNTAlKTtcblx0fVxufVxuXG4ud29vY29tbWVyY2UtZm9ybS1sb2dpbiB7XG5cdEBleHRlbmQgJWFsZXJ0O1xuXHRAZXh0ZW5kICVpbmZvO1xuXHRtYXJnaW4tYm90dG9tOiAkbGFyZ2Utc3BhY2luZztcblx0dGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLndvb2NvbW1lcmNlLWZvcm0tY291cG9uLXRvZ2dsZSB7XG5cdEBleHRlbmQgJWFsZXJ0O1xuXHRAZXh0ZW5kICV0aXA7XG5cdG1hcmdpbi1ib3R0b206ICRzbWFsbC1zcGFjaW5nO1xuXG5cdGEge1xuXHRcdGNvbG9yOiBkYXJrZW4oJGFsZXJ0LXRpcCwgNTAlKTtcblx0fVxufVxuXG4ud29vY29tbWVyY2UtZm9ybS1jb3Vwb24ge1xuXHRAZXh0ZW5kICVhbGVydDtcblx0QGV4dGVuZCAldGlwO1xuXHRtYXJnaW4tYm90dG9tOiAkbGFyZ2Utc3BhY2luZztcblx0dGV4dC1hbGlnbjogbGVmdDtcbn1cblxuXG4vLyBmb3JtXG5bbmFtZT1cImNoZWNrb3V0XCJdIHtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC1mbG93OiByb3cgd3JhcDtcblx0cGFkZGluZy10b3A6ICR4eGxhcmdlLXNwYWNpbmc7XG5cdC8vIHNtYWxsLTEyXG5cdGZsZXg6IDAgMCAxMDAlO1xuXHRtYXgtd2lkdGg6IDEwMCU7XG5cblx0PiAqIHtcblx0XHRAaW5jbHVkZSBjb2x1bW4oKTtcblx0XHQvLyBzbWFsbC0xMlxuXHRcdGZsZXg6IDAgMCAxMDAlO1xuXHRcdG1heC13aWR0aDogMTAwJTtcblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRcdGZsZXg6IDAgMCA1MCU7XG5cdFx0XHRtYXgtd2lkdGg6IDUwJTtcblx0XHR9XG5cdH1cblxuXHRoMyB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRtYXJnaW4tYm90dG9tOiAkbGFyZ2Utc3BhY2luZztcblx0XHRmb250LXdlaWdodDogJGxpZ2h0O1xuXG5cdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0Y29udGVudDogJyc7XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdGJvdHRvbTogMDtcblx0XHRcdHdpZHRoOiA4MCU7XG5cdFx0XHRoZWlnaHQ6IDRweDtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5LWdyZWVuO1xuXHRcdH1cblx0fVxufVxuXG4ud29vY29tbWVyY2UtY2hlY2tvdXQtcmV2aWV3LW9yZGVyLXRhYmxlIHtcblxuXHQuY2FydC1zdWJ0b3RhbCB7XG5cblx0XHR0aCwgdGQge1xuXHRcdFx0Y29sb3I6IGJsYWNrO1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbigkbGlnaHQtZ3JleSwgNSUpO1xuXHRcdH1cblx0fVxufVxuXG4ud29vY29tbWVyY2UtY2hlY2tvdXQtcGF5bWVudCB7XG5cdG1hcmdpbi1ib3R0b206ICR4eGxhcmdlLXNwYWNpbmc7XG5cdHBhZGRpbmc6ICRzbWFsbC1zcGFjaW5nO1xuXHRib3JkZXI6IDJweCBzb2xpZCAkbGlnaHQtZ3JleTtcblxuXHQud2NfcGF5bWVudF9tZXRob2RzIHtcblx0XHRsaXN0LXN0eWxlOiBub25lO1xuXHRcdG1hcmdpbjogMCAhaW1wb3J0YW50O1xuXHRcdHBhZGRpbmc6IDAgIWltcG9ydGFudDtcblxuXHRcdGxpIHtcblx0XHRcdHBhZGRpbmc6ICRzbWFsbC1zcGFjaW5nO1xuXHRcdFx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRsaWdodC1ncmV5O1xuXHRcdH1cblx0fVxuXG5cdC5wbGFjZS1vcmRlciB7XG5cdFx0cGFkZGluZzogJHNtYWxsLXNwYWNpbmc7XG5cdH1cbn1cblxuXG4iXX0= */
