@charset "UTF-8";
/**
 * Kudos to http://madebymike.com.au/writing/accessible-contrast-with-less-and-sass/
 */
/**
 * on-circle takes a radius, position on a circle, number of possible positions and returns top and left properties
 *
 * $ordinalPosition {Number} the position of the item on the circle, counting from 1 (North) through N
 * $radius {Number}    radius of the circle in pixels
 * $positions {Number}   the number of positions on the circle
 * $originX {Number}   optional X origin point for the circle, defaults to the radius
 * $originY {Number}   optional Y origin point for the circle, defaults to the radius
 * $offsetX {Number}   optional X offset for the item, you might use 1/2 of the width of an item, default is 0
 * $offsetY {Number}   optional Y offset for the item, you might use 1/2 of the height of an item, default is 0
 */
/**
 * Is $color1 lighter than $color2?
 */
/**
 * Is $color1 darker than $color2?
 */
/**
 * Find best lightness adjust method
 *
 * Ideally we should only increase the difference between the colors. If $color1
 * is lighter than $color2 but the contrast is not accessible, then we should try to
 * make it lighter rather than darker.
 */
/**
 * on-circle takes a radius, position on a circle, number of possible positions and returns top and left properties
 *
 * $ordinalPosition {Number} the position of the item on the circle, counting from 1 (North) through N
 * $radius {Number}    radius of the circle in pixels
 * $positions {Number}   the number of positions on the circle
 * $originX {Number}   optional X origin point for the circle, defaults to the radius
 * $originY {Number}   optional Y origin point for the circle, defaults to the radius
 * $offsetX {Number}   optional X offset for the item, you might use 1/2 of the width of an item, default is 0
 * $offsetY {Number}   optional Y offset for the item, you might use 1/2 of the height of an item, default is 0
 */
@import url("//fonts.googleapis.com/css?family=Noto+Sans:400,700|Bitter:400,700,400italic");
/**
 * Create an element with a colored background
 *
 * This mixin outputs a color and a background color
 * 
 * @param  string $color                    The background color you want to use, for instance #ffcc00
 * @param  string $foreground-color: #fff   The foreground/text color you want to use. This will have an accessible luminance, adjusted to work with $color
 * @param  string $background-color: #fff   The background on which the element is situated (elements background will be adjusted to have at least a small contrast to this)
 */
.top-bg, .footer-bg {
  background-color: #f9f9f9;
  color: #333333; }
  .top-bg h1, .footer-bg h1, .top-bg h2, .footer-bg h2, .top-bg h3, .footer-bg h3, .top-bg h4, .footer-bg h4, .top-bg h5, .footer-bg h5, .top-bg h6, .footer-bg h6 {
    color: #212121; }
  .top-bg a, .footer-bg a {
    color: #cc2626; }
    .top-bg a:hover, .footer-bg a:hover, .top-bg a:focus, .footer-bg a:focus {
      color: #a11e1e; }
  .top-bg .subtle, .footer-bg .subtle, .top-bg #kasse_one_form .subtaxes, #kasse_one_form .top-bg .subtaxes, .footer-bg #kasse_one_form .subtaxes, #kasse_one_form .footer-bg .subtaxes, .top-bg .product__main-images .bx-caption, .product__main-images .top-bg .bx-caption, .footer-bg .product__main-images .bx-caption, .product__main-images .footer-bg .bx-caption, .top-bg .product__meta-numbers, .footer-bg .product__meta-numbers, .top-bg .product .price--original, .product .top-bg .price--original, .footer-bg .product .price--original, .product .footer-bg .price--original, .top-bg .product .vat-info, .product .top-bg .vat-info, .footer-bg .product .vat-info, .product .footer-bg .vat-info, .top-bg .product__stockstatus, .footer-bg .product__stockstatus, .top-bg .rating input:checked ~ label, .rating .top-bg input:checked ~ label, .footer-bg .rating input:checked ~ label, .rating .footer-bg input:checked ~ label, .top-bg .rating label:hover ~ label, .rating .top-bg label:hover ~ label, .footer-bg .rating label:hover ~ label, .rating .footer-bg label:hover ~ label {
    color: #333333; }
  .top-bg .bordered, .footer-bg .bordered, .top-bg .checkout--kco__custom-intro, .footer-bg .checkout--kco__custom-intro, .top-bg .checkout--kco .checkout__step, .checkout--kco .top-bg .checkout__step, .footer-bg .checkout--kco .checkout__step, .checkout--kco .footer-bg .checkout__step {
    border-color: rgba(51, 51, 51, 0.2); }
  .top-bg .bordered--hard, .footer-bg .bordered--hard {
    border-color: rgba(51, 51, 51, 0.4); }
  .top-bg a.bordered:hover, .footer-bg a.bordered:hover, .top-bg a.checkout--kco__custom-intro:hover, .footer-bg a.checkout--kco__custom-intro:hover, .top-bg .checkout--kco a.checkout__step:hover, .checkout--kco .top-bg a.checkout__step:hover, .footer-bg .checkout--kco a.checkout__step:hover, .checkout--kco .footer-bg a.checkout__step:hover, .top-bg a.bordered:focus, .footer-bg a.bordered:focus, .top-bg a.checkout--kco__custom-intro:focus, .footer-bg a.checkout--kco__custom-intro:focus, .top-bg .checkout--kco a.checkout__step:focus, .checkout--kco .top-bg a.checkout__step:focus, .footer-bg .checkout--kco a.checkout__step:focus, .checkout--kco .footer-bg a.checkout__step:focus {
    border-color: rgba(51, 51, 51, 0.5); }
  .top-bg a.bordered--hard:hover, .footer-bg a.bordered--hard:hover, .top-bg a.bordered--hard:focus, .footer-bg a.bordered--hard:focus {
    border-color: rgba(51, 51, 51, 0.7); }
  .top-bg .neutral-link, .footer-bg .neutral-link, .top-bg .neutral-link > a, .footer-bg .neutral-link > a {
    color: #333333; }
    .top-bg .neutral-link:hover, .footer-bg .neutral-link:hover, .top-bg .neutral-link:focus, .footer-bg .neutral-link:focus, .top-bg .neutral-link:active, .footer-bg .neutral-link:active, .top-bg .neutral-link > a:hover, .footer-bg .neutral-link > a:hover, .top-bg .neutral-link > a:focus, .footer-bg .neutral-link > a:focus, .top-bg .neutral-link > a:active, .footer-bg .neutral-link > a:active {
      color: #212121; }
  .top-bg .primary-color, .footer-bg .primary-color {
    color: #cc2626; }
  .top-bg .primary-color-big, .footer-bg .primary-color-big {
    color: #cc2626; }
  .top-bg .primary-color-bg, .footer-bg .primary-color-bg {
    background-color: #cc2626;
    color: #fff; }
    .top-bg .primary-color-bg a, .footer-bg .primary-color-bg a {
      color: #fff; }
      .top-bg .primary-color-bg a:hover, .footer-bg .primary-color-bg a:hover, .top-bg .primary-color-bg a:focus, .footer-bg .primary-color-bg a:focus {
        color: #fff;
        background-color: #dd4848; }
    .top-bg .primary-color-bg:hover, .footer-bg .primary-color-bg:hover, .top-bg .primary-color-bg:focus, .footer-bg .primary-color-bg:focus {
      color: #fff;
      background-color: #dd4848; }
  .top-bg .secondary-color, .footer-bg .secondary-color {
    color: #727272; }
  .top-bg .secondary-color-big, .footer-bg .secondary-color-big {
    color: #909090; }
  .top-bg .secondary-color-bg, .footer-bg .secondary-color-bg, .top-bg .cart-button--empty .cart-button__quantity, .cart-button--empty .top-bg .cart-button__quantity, .footer-bg .cart-button--empty .cart-button__quantity, .cart-button--empty .footer-bg .cart-button__quantity {
    background-color: #c8c8c8;
    color: #525252; }
    .top-bg .secondary-color-bg a, .footer-bg .secondary-color-bg a, .top-bg .cart-button--empty .cart-button__quantity a, .cart-button--empty .top-bg .cart-button__quantity a, .footer-bg .cart-button--empty .cart-button__quantity a, .cart-button--empty .footer-bg .cart-button__quantity a {
      color: #525252; }
      .top-bg .secondary-color-bg a:hover, .footer-bg .secondary-color-bg a:hover, .top-bg .cart-button--empty .cart-button__quantity a:hover, .cart-button--empty .top-bg .cart-button__quantity a:hover, .footer-bg .cart-button--empty .cart-button__quantity a:hover, .cart-button--empty .footer-bg .cart-button__quantity a:hover, .top-bg .secondary-color-bg a:focus, .footer-bg .secondary-color-bg a:focus, .top-bg .cart-button--empty .cart-button__quantity a:focus, .cart-button--empty .top-bg .cart-button__quantity a:focus, .footer-bg .cart-button--empty .cart-button__quantity a:focus, .cart-button--empty .footer-bg .cart-button__quantity a:focus {
        color: #525252;
        background-color: #e2e2e2; }
    .top-bg .secondary-color-bg:hover, .footer-bg .secondary-color-bg:hover, .top-bg .cart-button--empty .cart-button__quantity:hover, .cart-button--empty .top-bg .cart-button__quantity:hover, .footer-bg .cart-button--empty .cart-button__quantity:hover, .cart-button--empty .footer-bg .cart-button__quantity:hover, .top-bg .secondary-color-bg:focus, .footer-bg .secondary-color-bg:focus, .top-bg .cart-button--empty .cart-button__quantity:focus, .cart-button--empty .top-bg .cart-button__quantity:focus, .footer-bg .cart-button--empty .cart-button__quantity:focus, .cart-button--empty .footer-bg .cart-button__quantity:focus {
      color: #525252;
      background-color: #e2e2e2; }
  .top-bg .call-to-action-color, .footer-bg .call-to-action-color {
    color: #e41214; }
  .top-bg .call-to-action-color-big, .footer-bg .call-to-action-color-big {
    color: #EF3A3B; }
  .top-bg .call-to-action-color-bg, .footer-bg .call-to-action-color-bg, .top-bg .cart-button__quantity, .footer-bg .cart-button__quantity {
    background-color: #EF3A3B;
    color: #171717; }
    .top-bg .call-to-action-color-bg a, .footer-bg .call-to-action-color-bg a, .top-bg .cart-button__quantity a, .footer-bg .cart-button__quantity a {
      color: #171717; }
      .top-bg .call-to-action-color-bg a:hover, .footer-bg .call-to-action-color-bg a:hover, .top-bg .cart-button__quantity a:hover, .footer-bg .cart-button__quantity a:hover, .top-bg .call-to-action-color-bg a:focus, .footer-bg .call-to-action-color-bg a:focus, .top-bg .cart-button__quantity a:focus, .footer-bg .cart-button__quantity a:focus {
        color: #171717;
        background-color: #f3696a; }
    .top-bg .call-to-action-color-bg:hover, .footer-bg .call-to-action-color-bg:hover, .top-bg .cart-button__quantity:hover, .footer-bg .cart-button__quantity:hover, .top-bg .call-to-action-color-bg:focus, .footer-bg .call-to-action-color-bg:focus, .top-bg .cart-button__quantity:focus, .footer-bg .cart-button__quantity:focus {
      color: #171717;
      background-color: #f3696a; }
  .top-bg button, .footer-bg button, .top-bg button.disabled, .footer-bg button.disabled, .top-bg button.disabled:hover, .footer-bg button.disabled:hover, .top-bg button.disabled:focus, .footer-bg button.disabled:focus, .top-bg button[disabled], .footer-bg button[disabled], .top-bg button[disabled]:hover, .footer-bg button[disabled]:hover, .top-bg button[disabled]:focus, .footer-bg button[disabled]:focus, .top-bg .button, .footer-bg .button, .top-bg .button.disabled, .footer-bg .button.disabled, .top-bg .button.disabled:hover, .footer-bg .button.disabled:hover, .top-bg .button.disabled:focus, .footer-bg .button.disabled:focus, .top-bg .button[disabled], .footer-bg .button[disabled], .top-bg .button[disabled]:hover, .footer-bg .button[disabled]:hover, .top-bg .button[disabled]:focus, .footer-bg .button[disabled]:focus {
    background-color: #cc2626;
    color: #fff;
    font-weight: normal; }
  .top-bg button:hover, .footer-bg button:hover, .top-bg button:focus, .footer-bg button:focus, .top-bg .button:hover, .footer-bg .button:hover, .top-bg .button:focus, .footer-bg .button:focus {
    color: #171717;
    background-color: #df5151; }

.navigation-bg, .header-bg, .content-bg {
  background-color: #fff;
  color: #333333; }
  .navigation-bg h1, .header-bg h1, .content-bg h1, .navigation-bg h2, .header-bg h2, .content-bg h2, .navigation-bg h3, .header-bg h3, .content-bg h3, .navigation-bg h4, .header-bg h4, .content-bg h4, .navigation-bg h5, .header-bg h5, .content-bg h5, .navigation-bg h6, .header-bg h6, .content-bg h6 {
    color: #212121; }
  .navigation-bg a, .header-bg a, .content-bg a {
    color: #cc2626; }
    .navigation-bg a:hover, .header-bg a:hover, .content-bg a:hover, .navigation-bg a:focus, .header-bg a:focus, .content-bg a:focus {
      color: #a11e1e; }
  .navigation-bg .subtle, .header-bg .subtle, .content-bg .subtle, .navigation-bg #kasse_one_form .subtaxes, #kasse_one_form .navigation-bg .subtaxes, .header-bg #kasse_one_form .subtaxes, #kasse_one_form .header-bg .subtaxes, .content-bg #kasse_one_form .subtaxes, #kasse_one_form .content-bg .subtaxes, .navigation-bg .product__main-images .bx-caption, .product__main-images .navigation-bg .bx-caption, .header-bg .product__main-images .bx-caption, .product__main-images .header-bg .bx-caption, .content-bg .product__main-images .bx-caption, .product__main-images .content-bg .bx-caption, .navigation-bg .product__meta-numbers, .header-bg .product__meta-numbers, .content-bg .product__meta-numbers, .navigation-bg .product .price--original, .product .navigation-bg .price--original, .header-bg .product .price--original, .product .header-bg .price--original, .content-bg .product .price--original, .product .content-bg .price--original, .navigation-bg .product .vat-info, .product .navigation-bg .vat-info, .header-bg .product .vat-info, .product .header-bg .vat-info, .content-bg .product .vat-info, .product .content-bg .vat-info, .navigation-bg .product__stockstatus, .header-bg .product__stockstatus, .content-bg .product__stockstatus, .navigation-bg .rating input:checked ~ label, .rating .navigation-bg input:checked ~ label, .header-bg .rating input:checked ~ label, .rating .header-bg input:checked ~ label, .content-bg .rating input:checked ~ label, .rating .content-bg input:checked ~ label, .navigation-bg .rating label:hover ~ label, .rating .navigation-bg label:hover ~ label, .header-bg .rating label:hover ~ label, .rating .header-bg label:hover ~ label, .content-bg .rating label:hover ~ label, .rating .content-bg label:hover ~ label {
    color: #333333; }
  .navigation-bg .bordered, .header-bg .bordered, .content-bg .bordered, .navigation-bg .checkout--kco__custom-intro, .header-bg .checkout--kco__custom-intro, .content-bg .checkout--kco__custom-intro, .navigation-bg .checkout--kco .checkout__step, .checkout--kco .navigation-bg .checkout__step, .header-bg .checkout--kco .checkout__step, .checkout--kco .header-bg .checkout__step, .content-bg .checkout--kco .checkout__step, .checkout--kco .content-bg .checkout__step {
    border-color: rgba(51, 51, 51, 0.2); }
  .navigation-bg .bordered--hard, .header-bg .bordered--hard, .content-bg .bordered--hard {
    border-color: rgba(51, 51, 51, 0.4); }
  .navigation-bg a.bordered:hover, .header-bg a.bordered:hover, .content-bg a.bordered:hover, .navigation-bg a.checkout--kco__custom-intro:hover, .header-bg a.checkout--kco__custom-intro:hover, .content-bg a.checkout--kco__custom-intro:hover, .navigation-bg .checkout--kco a.checkout__step:hover, .checkout--kco .navigation-bg a.checkout__step:hover, .header-bg .checkout--kco a.checkout__step:hover, .checkout--kco .header-bg a.checkout__step:hover, .content-bg .checkout--kco a.checkout__step:hover, .checkout--kco .content-bg a.checkout__step:hover, .navigation-bg a.bordered:focus, .header-bg a.bordered:focus, .content-bg a.bordered:focus, .navigation-bg a.checkout--kco__custom-intro:focus, .header-bg a.checkout--kco__custom-intro:focus, .content-bg a.checkout--kco__custom-intro:focus, .navigation-bg .checkout--kco a.checkout__step:focus, .checkout--kco .navigation-bg a.checkout__step:focus, .header-bg .checkout--kco a.checkout__step:focus, .checkout--kco .header-bg a.checkout__step:focus, .content-bg .checkout--kco a.checkout__step:focus, .checkout--kco .content-bg a.checkout__step:focus {
    border-color: rgba(51, 51, 51, 0.5); }
  .navigation-bg a.bordered--hard:hover, .header-bg a.bordered--hard:hover, .content-bg a.bordered--hard:hover, .navigation-bg a.bordered--hard:focus, .header-bg a.bordered--hard:focus, .content-bg a.bordered--hard:focus {
    border-color: rgba(51, 51, 51, 0.7); }
  .navigation-bg .neutral-link, .header-bg .neutral-link, .content-bg .neutral-link, .navigation-bg .neutral-link > a, .header-bg .neutral-link > a, .content-bg .neutral-link > a {
    color: #333333; }
    .navigation-bg .neutral-link:hover, .header-bg .neutral-link:hover, .content-bg .neutral-link:hover, .navigation-bg .neutral-link:focus, .header-bg .neutral-link:focus, .content-bg .neutral-link:focus, .navigation-bg .neutral-link:active, .header-bg .neutral-link:active, .content-bg .neutral-link:active, .navigation-bg .neutral-link > a:hover, .header-bg .neutral-link > a:hover, .content-bg .neutral-link > a:hover, .navigation-bg .neutral-link > a:focus, .header-bg .neutral-link > a:focus, .content-bg .neutral-link > a:focus, .navigation-bg .neutral-link > a:active, .header-bg .neutral-link > a:active, .content-bg .neutral-link > a:active {
      color: #212121; }
  .navigation-bg .primary-color, .header-bg .primary-color, .content-bg .primary-color {
    color: #cc2626; }
  .navigation-bg .primary-color-big, .header-bg .primary-color-big, .content-bg .primary-color-big {
    color: #cc2626; }
  .navigation-bg .primary-color-bg, .header-bg .primary-color-bg, .content-bg .primary-color-bg {
    background-color: #cc2626;
    color: #fff; }
    .navigation-bg .primary-color-bg a, .header-bg .primary-color-bg a, .content-bg .primary-color-bg a {
      color: #fff; }
      .navigation-bg .primary-color-bg a:hover, .header-bg .primary-color-bg a:hover, .content-bg .primary-color-bg a:hover, .navigation-bg .primary-color-bg a:focus, .header-bg .primary-color-bg a:focus, .content-bg .primary-color-bg a:focus {
        color: #fff;
        background-color: #dd4848; }
    .navigation-bg .primary-color-bg:hover, .header-bg .primary-color-bg:hover, .content-bg .primary-color-bg:hover, .navigation-bg .primary-color-bg:focus, .header-bg .primary-color-bg:focus, .content-bg .primary-color-bg:focus {
      color: #fff;
      background-color: #dd4848; }
  .navigation-bg .secondary-color, .header-bg .secondary-color, .content-bg .secondary-color {
    color: #747474; }
  .navigation-bg .secondary-color-big, .header-bg .secondary-color-big, .content-bg .secondary-color-big {
    color: #909090; }
  .navigation-bg .secondary-color-bg, .header-bg .secondary-color-bg, .content-bg .secondary-color-bg, .navigation-bg .cart-button--empty .cart-button__quantity, .cart-button--empty .navigation-bg .cart-button__quantity, .header-bg .cart-button--empty .cart-button__quantity, .cart-button--empty .header-bg .cart-button__quantity, .content-bg .cart-button--empty .cart-button__quantity, .cart-button--empty .content-bg .cart-button__quantity {
    background-color: #c8c8c8;
    color: #525252; }
    .navigation-bg .secondary-color-bg a, .header-bg .secondary-color-bg a, .content-bg .secondary-color-bg a, .navigation-bg .cart-button--empty .cart-button__quantity a, .cart-button--empty .navigation-bg .cart-button__quantity a, .header-bg .cart-button--empty .cart-button__quantity a, .cart-button--empty .header-bg .cart-button__quantity a, .content-bg .cart-button--empty .cart-button__quantity a, .cart-button--empty .content-bg .cart-button__quantity a {
      color: #525252; }
      .navigation-bg .secondary-color-bg a:hover, .header-bg .secondary-color-bg a:hover, .content-bg .secondary-color-bg a:hover, .navigation-bg .cart-button--empty .cart-button__quantity a:hover, .cart-button--empty .navigation-bg .cart-button__quantity a:hover, .header-bg .cart-button--empty .cart-button__quantity a:hover, .cart-button--empty .header-bg .cart-button__quantity a:hover, .content-bg .cart-button--empty .cart-button__quantity a:hover, .cart-button--empty .content-bg .cart-button__quantity a:hover, .navigation-bg .secondary-color-bg a:focus, .header-bg .secondary-color-bg a:focus, .content-bg .secondary-color-bg a:focus, .navigation-bg .cart-button--empty .cart-button__quantity a:focus, .cart-button--empty .navigation-bg .cart-button__quantity a:focus, .header-bg .cart-button--empty .cart-button__quantity a:focus, .cart-button--empty .header-bg .cart-button__quantity a:focus, .content-bg .cart-button--empty .cart-button__quantity a:focus, .cart-button--empty .content-bg .cart-button__quantity a:focus {
        color: #525252;
        background-color: #e2e2e2; }
    .navigation-bg .secondary-color-bg:hover, .header-bg .secondary-color-bg:hover, .content-bg .secondary-color-bg:hover, .navigation-bg .cart-button--empty .cart-button__quantity:hover, .cart-button--empty .navigation-bg .cart-button__quantity:hover, .header-bg .cart-button--empty .cart-button__quantity:hover, .cart-button--empty .header-bg .cart-button__quantity:hover, .content-bg .cart-button--empty .cart-button__quantity:hover, .cart-button--empty .content-bg .cart-button__quantity:hover, .navigation-bg .secondary-color-bg:focus, .header-bg .secondary-color-bg:focus, .content-bg .secondary-color-bg:focus, .navigation-bg .cart-button--empty .cart-button__quantity:focus, .cart-button--empty .navigation-bg .cart-button__quantity:focus, .header-bg .cart-button--empty .cart-button__quantity:focus, .cart-button--empty .header-bg .cart-button__quantity:focus, .content-bg .cart-button--empty .cart-button__quantity:focus, .cart-button--empty .content-bg .cart-button__quantity:focus {
      color: #525252;
      background-color: #e2e2e2; }
  .navigation-bg .call-to-action-color, .header-bg .call-to-action-color, .content-bg .call-to-action-color {
    color: #e81314; }
  .navigation-bg .call-to-action-color-big, .header-bg .call-to-action-color-big, .content-bg .call-to-action-color-big {
    color: #EF3A3B; }
  .navigation-bg .call-to-action-color-bg, .header-bg .call-to-action-color-bg, .content-bg .call-to-action-color-bg, .navigation-bg .cart-button__quantity, .header-bg .cart-button__quantity, .content-bg .cart-button__quantity {
    background-color: #EF3A3B;
    color: #171717; }
    .navigation-bg .call-to-action-color-bg a, .header-bg .call-to-action-color-bg a, .content-bg .call-to-action-color-bg a, .navigation-bg .cart-button__quantity a, .header-bg .cart-button__quantity a, .content-bg .cart-button__quantity a {
      color: #171717; }
      .navigation-bg .call-to-action-color-bg a:hover, .header-bg .call-to-action-color-bg a:hover, .content-bg .call-to-action-color-bg a:hover, .navigation-bg .cart-button__quantity a:hover, .header-bg .cart-button__quantity a:hover, .content-bg .cart-button__quantity a:hover, .navigation-bg .call-to-action-color-bg a:focus, .header-bg .call-to-action-color-bg a:focus, .content-bg .call-to-action-color-bg a:focus, .navigation-bg .cart-button__quantity a:focus, .header-bg .cart-button__quantity a:focus, .content-bg .cart-button__quantity a:focus {
        color: #171717;
        background-color: #f3696a; }
    .navigation-bg .call-to-action-color-bg:hover, .header-bg .call-to-action-color-bg:hover, .content-bg .call-to-action-color-bg:hover, .navigation-bg .cart-button__quantity:hover, .header-bg .cart-button__quantity:hover, .content-bg .cart-button__quantity:hover, .navigation-bg .call-to-action-color-bg:focus, .header-bg .call-to-action-color-bg:focus, .content-bg .call-to-action-color-bg:focus, .navigation-bg .cart-button__quantity:focus, .header-bg .cart-button__quantity:focus, .content-bg .cart-button__quantity:focus {
      color: #171717;
      background-color: #f3696a; }
  .navigation-bg button, .header-bg button, .content-bg button, .navigation-bg button.disabled, .header-bg button.disabled, .content-bg button.disabled, .navigation-bg button.disabled:hover, .header-bg button.disabled:hover, .content-bg button.disabled:hover, .navigation-bg button.disabled:focus, .header-bg button.disabled:focus, .content-bg button.disabled:focus, .navigation-bg button[disabled], .header-bg button[disabled], .content-bg button[disabled], .navigation-bg button[disabled]:hover, .header-bg button[disabled]:hover, .content-bg button[disabled]:hover, .navigation-bg button[disabled]:focus, .header-bg button[disabled]:focus, .content-bg button[disabled]:focus, .navigation-bg .button, .header-bg .button, .content-bg .button, .navigation-bg .button.disabled, .header-bg .button.disabled, .content-bg .button.disabled, .navigation-bg .button.disabled:hover, .header-bg .button.disabled:hover, .content-bg .button.disabled:hover, .navigation-bg .button.disabled:focus, .header-bg .button.disabled:focus, .content-bg .button.disabled:focus, .navigation-bg .button[disabled], .header-bg .button[disabled], .content-bg .button[disabled], .navigation-bg .button[disabled]:hover, .header-bg .button[disabled]:hover, .content-bg .button[disabled]:hover, .navigation-bg .button[disabled]:focus, .header-bg .button[disabled]:focus, .content-bg .button[disabled]:focus {
    background-color: #cc2626;
    color: #fff;
    font-weight: normal; }
  .navigation-bg button:hover, .header-bg button:hover, .content-bg button:hover, .navigation-bg button:focus, .header-bg button:focus, .content-bg button:focus, .navigation-bg .button:hover, .header-bg .button:hover, .content-bg .button:hover, .navigation-bg .button:focus, .header-bg .button:focus, .content-bg .button:focus {
    color: #171717;
    background-color: #df5151; }

.freight-option,
.payment-option {
  border-color: rgba(51, 51, 51, 0.2); }

.product__title {
  border-color: rgba(51, 51, 51, 0.5); }

.product .price {
  color: #cc2626; }

.next-step-btn.button, .checkout__step #client_fetch, .checkout__step--inactive.valid .kasse_one_step_number, .button.receipt__print, .product__buy-button.button {
  background-color: #cc2626;
  color: #fff; }

.product .product__wishlist-button.button {
  background-color: #c8c8c8;
  color: #000; }

.footer2-bg {
  background-color: #f5f5f5;
  color: #333333; }
  .footer2-bg h1, .footer2-bg h2, .footer2-bg h3, .footer2-bg h4, .footer2-bg h5, .footer2-bg h6 {
    color: #212121; }
  .footer2-bg a {
    color: #cc2626; }
    .footer2-bg a:hover, .footer2-bg a:focus {
      color: #a11e1e; }
  .footer2-bg .subtle, .footer2-bg #kasse_one_form .subtaxes, #kasse_one_form .footer2-bg .subtaxes, .footer2-bg .product__main-images .bx-caption, .product__main-images .footer2-bg .bx-caption, .footer2-bg .product__meta-numbers, .footer2-bg .product .price--original, .product .footer2-bg .price--original, .footer2-bg .product .vat-info, .product .footer2-bg .vat-info, .footer2-bg .product__stockstatus, .footer2-bg .rating input:checked ~ label, .rating .footer2-bg input:checked ~ label, .footer2-bg .rating label:hover ~ label, .rating .footer2-bg label:hover ~ label {
    color: #333333; }
  .footer2-bg .bordered, .footer2-bg .checkout--kco__custom-intro, .footer2-bg .checkout--kco .checkout__step, .checkout--kco .footer2-bg .checkout__step {
    border-color: rgba(51, 51, 51, 0.2); }
  .footer2-bg .bordered--hard {
    border-color: rgba(51, 51, 51, 0.4); }
  .footer2-bg a.bordered:hover, .footer2-bg a.checkout--kco__custom-intro:hover, .footer2-bg .checkout--kco a.checkout__step:hover, .checkout--kco .footer2-bg a.checkout__step:hover, .footer2-bg a.bordered:focus, .footer2-bg a.checkout--kco__custom-intro:focus, .footer2-bg .checkout--kco a.checkout__step:focus, .checkout--kco .footer2-bg a.checkout__step:focus {
    border-color: rgba(51, 51, 51, 0.5); }
  .footer2-bg a.bordered--hard:hover, .footer2-bg a.bordered--hard:focus {
    border-color: rgba(51, 51, 51, 0.7); }
  .footer2-bg .neutral-link, .footer2-bg .neutral-link > a {
    color: #333333; }
    .footer2-bg .neutral-link:hover, .footer2-bg .neutral-link:focus, .footer2-bg .neutral-link:active, .footer2-bg .neutral-link > a:hover, .footer2-bg .neutral-link > a:focus, .footer2-bg .neutral-link > a:active {
      color: #212121; }
  .footer2-bg .primary-color {
    color: #cc2626; }
  .footer2-bg .primary-color-big {
    color: #cc2626; }
  .footer2-bg .primary-color-bg {
    background-color: #cc2626;
    color: #fff; }
    .footer2-bg .primary-color-bg a {
      color: #fff; }
      .footer2-bg .primary-color-bg a:hover, .footer2-bg .primary-color-bg a:focus {
        color: #fff;
        background-color: #dd4848; }
    .footer2-bg .primary-color-bg:hover, .footer2-bg .primary-color-bg:focus {
      color: #fff;
      background-color: #dd4848; }
  .footer2-bg .secondary-color {
    color: #6d6d6d; }
  .footer2-bg .secondary-color-big {
    color: #898989; }
  .footer2-bg .secondary-color-bg, .footer2-bg .cart-button--empty .cart-button__quantity, .cart-button--empty .footer2-bg .cart-button__quantity {
    background-color: #c8c8c8;
    color: #525252; }
    .footer2-bg .secondary-color-bg a, .footer2-bg .cart-button--empty .cart-button__quantity a, .cart-button--empty .footer2-bg .cart-button__quantity a {
      color: #525252; }
      .footer2-bg .secondary-color-bg a:hover, .footer2-bg .cart-button--empty .cart-button__quantity a:hover, .cart-button--empty .footer2-bg .cart-button__quantity a:hover, .footer2-bg .secondary-color-bg a:focus, .footer2-bg .cart-button--empty .cart-button__quantity a:focus, .cart-button--empty .footer2-bg .cart-button__quantity a:focus {
        color: #525252;
        background-color: #e2e2e2; }
    .footer2-bg .secondary-color-bg:hover, .footer2-bg .cart-button--empty .cart-button__quantity:hover, .cart-button--empty .footer2-bg .cart-button__quantity:hover, .footer2-bg .secondary-color-bg:focus, .footer2-bg .cart-button--empty .cart-button__quantity:focus, .cart-button--empty .footer2-bg .cart-button__quantity:focus {
      color: #525252;
      background-color: #e2e2e2; }
  .footer2-bg .call-to-action-color {
    color: #da1213; }
  .footer2-bg .call-to-action-color-big {
    color: #EF3A3B; }
  .footer2-bg .call-to-action-color-bg, .footer2-bg .cart-button__quantity {
    background-color: #EF3A3B;
    color: #171717; }
    .footer2-bg .call-to-action-color-bg a, .footer2-bg .cart-button__quantity a {
      color: #171717; }
      .footer2-bg .call-to-action-color-bg a:hover, .footer2-bg .cart-button__quantity a:hover, .footer2-bg .call-to-action-color-bg a:focus, .footer2-bg .cart-button__quantity a:focus {
        color: #171717;
        background-color: #f3696a; }
    .footer2-bg .call-to-action-color-bg:hover, .footer2-bg .cart-button__quantity:hover, .footer2-bg .call-to-action-color-bg:focus, .footer2-bg .cart-button__quantity:focus {
      color: #171717;
      background-color: #f3696a; }
  .footer2-bg button, .footer2-bg button.disabled, .footer2-bg button.disabled:hover, .footer2-bg button.disabled:focus, .footer2-bg button[disabled], .footer2-bg button[disabled]:hover, .footer2-bg button[disabled]:focus, .footer2-bg .button, .footer2-bg .button.disabled, .footer2-bg .button.disabled:hover, .footer2-bg .button.disabled:focus, .footer2-bg .button[disabled], .footer2-bg .button[disabled]:hover, .footer2-bg .button[disabled]:focus {
    background-color: #cc2626;
    color: #fff;
    font-weight: normal; }
  .footer2-bg button:hover, .footer2-bg button:focus, .footer2-bg .button:hover, .footer2-bg .button:focus {
    color: #171717;
    background-color: #df5151; }

.end-bg {
  background-color: #f0f0f0;
  color: #333333; }
  .end-bg h1, .end-bg h2, .end-bg h3, .end-bg h4, .end-bg h5, .end-bg h6 {
    color: #212121; }
  .end-bg a {
    color: #cc2626; }
    .end-bg a:hover, .end-bg a:focus {
      color: #a11e1e; }
  .end-bg .subtle, .end-bg #kasse_one_form .subtaxes, #kasse_one_form .end-bg .subtaxes, .end-bg .product__main-images .bx-caption, .product__main-images .end-bg .bx-caption, .end-bg .product__meta-numbers, .end-bg .product .price--original, .product .end-bg .price--original, .end-bg .product .vat-info, .product .end-bg .vat-info, .end-bg .product__stockstatus, .end-bg .rating input:checked ~ label, .rating .end-bg input:checked ~ label, .end-bg .rating label:hover ~ label, .rating .end-bg label:hover ~ label {
    color: #333333; }
  .end-bg .bordered, .end-bg .checkout--kco__custom-intro, .end-bg .checkout--kco .checkout__step, .checkout--kco .end-bg .checkout__step {
    border-color: rgba(51, 51, 51, 0.2); }
  .end-bg .bordered--hard {
    border-color: rgba(51, 51, 51, 0.4); }
  .end-bg a.bordered:hover, .end-bg a.checkout--kco__custom-intro:hover, .end-bg .checkout--kco a.checkout__step:hover, .checkout--kco .end-bg a.checkout__step:hover, .end-bg a.bordered:focus, .end-bg a.checkout--kco__custom-intro:focus, .end-bg .checkout--kco a.checkout__step:focus, .checkout--kco .end-bg a.checkout__step:focus {
    border-color: rgba(51, 51, 51, 0.5); }
  .end-bg a.bordered--hard:hover, .end-bg a.bordered--hard:focus {
    border-color: rgba(51, 51, 51, 0.7); }
  .end-bg .neutral-link, .end-bg .neutral-link > a {
    color: #333333; }
    .end-bg .neutral-link:hover, .end-bg .neutral-link:focus, .end-bg .neutral-link:active, .end-bg .neutral-link > a:hover, .end-bg .neutral-link > a:focus, .end-bg .neutral-link > a:active {
      color: #212121; }
  .end-bg .primary-color {
    color: #cc2626; }
  .end-bg .primary-color-big {
    color: #cc2626; }
  .end-bg .primary-color-bg {
    background-color: #cc2626;
    color: #fff; }
    .end-bg .primary-color-bg a {
      color: #fff; }
      .end-bg .primary-color-bg a:hover, .end-bg .primary-color-bg a:focus {
        color: #fff;
        background-color: #dd4848; }
    .end-bg .primary-color-bg:hover, .end-bg .primary-color-bg:focus {
      color: #fff;
      background-color: #dd4848; }
  .end-bg .secondary-color {
    color: #6d6d6d; }
  .end-bg .secondary-color-big {
    color: #898989; }
  .end-bg .secondary-color-bg, .end-bg .cart-button--empty .cart-button__quantity, .cart-button--empty .end-bg .cart-button__quantity {
    background-color: #b9b9b9;
    color: #4a4a4a; }
    .end-bg .secondary-color-bg a, .end-bg .cart-button--empty .cart-button__quantity a, .cart-button--empty .end-bg .cart-button__quantity a {
      color: #4a4a4a; }
      .end-bg .secondary-color-bg a:hover, .end-bg .cart-button--empty .cart-button__quantity a:hover, .cart-button--empty .end-bg .cart-button__quantity a:hover, .end-bg .secondary-color-bg a:focus, .end-bg .cart-button--empty .cart-button__quantity a:focus, .cart-button--empty .end-bg .cart-button__quantity a:focus {
        color: #4a4a4a;
        background-color: lightgray; }
    .end-bg .secondary-color-bg:hover, .end-bg .cart-button--empty .cart-button__quantity:hover, .cart-button--empty .end-bg .cart-button__quantity:hover, .end-bg .secondary-color-bg:focus, .end-bg .cart-button--empty .cart-button__quantity:focus, .cart-button--empty .end-bg .cart-button__quantity:focus {
      color: #4a4a4a;
      background-color: lightgray; }
  .end-bg .call-to-action-color {
    color: #da1213; }
  .end-bg .call-to-action-color-big {
    color: #EF3A3B; }
  .end-bg .call-to-action-color-bg, .end-bg .cart-button__quantity {
    background-color: #EF3A3B;
    color: #171717; }
    .end-bg .call-to-action-color-bg a, .end-bg .cart-button__quantity a {
      color: #171717; }
      .end-bg .call-to-action-color-bg a:hover, .end-bg .cart-button__quantity a:hover, .end-bg .call-to-action-color-bg a:focus, .end-bg .cart-button__quantity a:focus {
        color: #171717;
        background-color: #f3696a; }
    .end-bg .call-to-action-color-bg:hover, .end-bg .cart-button__quantity:hover, .end-bg .call-to-action-color-bg:focus, .end-bg .cart-button__quantity:focus {
      color: #171717;
      background-color: #f3696a; }
  .end-bg button, .end-bg button.disabled, .end-bg button.disabled:hover, .end-bg button.disabled:focus, .end-bg button[disabled], .end-bg button[disabled]:hover, .end-bg button[disabled]:focus, .end-bg .button, .end-bg .button.disabled, .end-bg .button.disabled:hover, .end-bg .button.disabled:focus, .end-bg .button[disabled], .end-bg .button[disabled]:hover, .end-bg .button[disabled]:focus {
    background-color: #cc2626;
    color: #fff;
    font-weight: normal; }
  .end-bg button:hover, .end-bg button:focus, .end-bg .button:hover, .end-bg .button:focus {
    color: #171717;
    background-color: #df5151; }

/*! normalize.css v3.0.2 | MIT License | git.io/normalize */
/**
 * 1. Set default font family to sans-serif.
 * 2. Prevent iOS text size adjust after 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/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 when focused and also mouse hovered in all browsers.
 */
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 {
  -moz-box-sizing: content-box;
  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: default; }

/**
 * 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
 *    (include `-moz` to future-proof).
 */
input[type="search"] {
  -webkit-appearance: textfield;
  /* 1 */
  -moz-box-sizing: content-box;
  -webkit-box-sizing: content-box;
  /* 2 */
  box-sizing: content-box; }

/**
 * 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.
 */
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; }

meta.foundation-version {
  font-family: "/5.5.1/"; }

meta.foundation-mq-small {
  font-family: "/only screen/";
  width: 0em; }

meta.foundation-mq-small-only {
  font-family: "/only screen and (max-width: 39.9375em)/";
  width: 0em; }

meta.foundation-mq-medium {
  font-family: "/only screen and (min-width:40em)/";
  width: 40em; }

meta.foundation-mq-medium-only {
  font-family: "/only screen and (min-width:40em) and (max-width:63.9375em)/";
  width: 40em; }

meta.foundation-mq-large {
  font-family: "/only screen and (min-width:64em)/";
  width: 64em; }

meta.foundation-mq-large-only {
  font-family: "/only screen and (min-width:64em) and (max-width:89.9375em)/";
  width: 64em; }

meta.foundation-mq-xlarge {
  font-family: "/only screen and (min-width:90em)/";
  width: 90em; }

meta.foundation-mq-xlarge-only {
  font-family: "/only screen and (min-width:90em) and (max-width:119.9375em)/";
  width: 90em; }

meta.foundation-mq-xxlarge {
  font-family: "/only screen and (min-width:120em)/";
  width: 120em; }

meta.foundation-data-attribute-namespace {
  font-family: false; }

html, body {
  height: 100%; }

*,
*:before,
*:after {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box; }

html,
body {
  font-size: 100%; }

body {
  background: #FFFFFF;
  color: #333333;
  padding: 0;
  margin: 0;
  font-family:  'Bitter', serif;
  font-weight: normal;
  font-style: normal;
  line-height: 1.5;
  position: relative;
  cursor: auto; }

a:hover {
  cursor: pointer; }

img {
  max-width: 100%;
  height: auto; }

img {
  -ms-interpolation-mode: bicubic; }

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

.left {
  float: left !important; }

.right {
  float: right !important; }

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

.clearfix:after {
  clear: both; }

.hide {
  display: none; }

.invisible {
  visibility: hidden; }

.antialiased {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

img {
  display: inline-block;
  vertical-align: middle; }

textarea {
  height: auto;
  min-height: 50px; }

select {
  width: 100%; }

[class*="block-grid-"] {
  display: block;
  padding: 0;
  margin: 0; }
  [class*="block-grid-"]:before, [class*="block-grid-"]:after {
    content: " ";
    display: table; }
  [class*="block-grid-"]:after {
    clear: both; }
  [class*="block-grid-"] > li {
    display: block;
    height: auto;
    float: left;
    padding: 0 0.9375rem 1.875rem; }

@media only screen {
  .small-block-grid-1 > li {
    width: 100%;
    list-style: none; }
    .small-block-grid-1 > li:nth-of-type(1n) {
      clear: none; }
    .small-block-grid-1 > li:nth-of-type(1n+1) {
      clear: both; }
    .small-block-grid-1 > li:nth-of-type(1n) {
      padding-left: 0rem;
      padding-right: 0rem; }
  .small-block-grid-2 > li {
    width: 50%;
    list-style: none; }
    .small-block-grid-2 > li:nth-of-type(1n) {
      clear: none; }
    .small-block-grid-2 > li:nth-of-type(2n+1) {
      clear: both; }
    .small-block-grid-2 > li:nth-of-type(2n+1) {
      padding-left: 0rem;
      padding-right: 0.9375rem; }
    .small-block-grid-2 > li:nth-of-type(2n) {
      padding-left: 0.9375rem;
      padding-right: 0rem; }
  .small-block-grid-3 > li {
    width: 33.33333%;
    list-style: none; }
    .small-block-grid-3 > li:nth-of-type(1n) {
      clear: none; }
    .small-block-grid-3 > li:nth-of-type(3n+1) {
      clear: both; }
    .small-block-grid-3 > li:nth-of-type(3n+1) {
      padding-left: 0rem;
      padding-right: 1.25rem; }
    .small-block-grid-3 > li:nth-of-type(3n+2) {
      padding-left: 0.625rem;
      padding-right: 0.625rem; }
    .small-block-grid-3 > li:nth-of-type(3n) {
      padding-left: 1.25rem;
      padding-right: 0rem; }
  .small-block-grid-4 > li {
    width: 25%;
    list-style: none; }
    .small-block-grid-4 > li:nth-of-type(1n) {
      clear: none; }
    .small-block-grid-4 > li:nth-of-type(4n+1) {
      clear: both; }
    .small-block-grid-4 > li:nth-of-type(4n+1) {
      padding-left: 0rem;
      padding-right: 1.40625rem; }
    .small-block-grid-4 > li:nth-of-type(4n+2) {
      padding-left: 0.46875rem;
      padding-right: 0.9375rem; }
    .small-block-grid-4 > li:nth-of-type(4n+3) {
      padding-left: 0.9375rem;
      padding-right: 0.46875rem; }
    .small-block-grid-4 > li:nth-of-type(4n) {
      padding-left: 1.40625rem;
      padding-right: 0rem; }
  .small-block-grid-5 > li {
    width: 20%;
    list-style: none; }
    .small-block-grid-5 > li:nth-of-type(1n) {
      clear: none; }
    .small-block-grid-5 > li:nth-of-type(5n+1) {
      clear: both; }
    .small-block-grid-5 > li:nth-of-type(5n+1) {
      padding-left: 0rem;
      padding-right: 1.5rem; }
    .small-block-grid-5 > li:nth-of-type(5n+2) {
      padding-left: 0.375rem;
      padding-right: 1.125rem; }
    .small-block-grid-5 > li:nth-of-type(5n+3) {
      padding-left: 0.75rem;
      padding-right: 0.75rem; }
    .small-block-grid-5 > li:nth-of-type(5n+4) {
      padding-left: 1.125rem;
      padding-right: 0.375rem; }
    .small-block-grid-5 > li:nth-of-type(5n) {
      padding-left: 1.5rem;
      padding-right: 0rem; } }

@media only screen and (min-width: 40em) {
  .medium-block-grid-1 > li {
    width: 100%;
    list-style: none; }
    .medium-block-grid-1 > li:nth-of-type(1n) {
      clear: none; }
    .medium-block-grid-1 > li:nth-of-type(1n+1) {
      clear: both; }
    .medium-block-grid-1 > li:nth-of-type(1n) {
      padding-left: 0rem;
      padding-right: 0rem; }
  .medium-block-grid-2 > li {
    width: 50%;
    list-style: none; }
    .medium-block-grid-2 > li:nth-of-type(1n) {
      clear: none; }
    .medium-block-grid-2 > li:nth-of-type(2n+1) {
      clear: both; }
    .medium-block-grid-2 > li:nth-of-type(2n+1) {
      padding-left: 0rem;
      padding-right: 0.9375rem; }
    .medium-block-grid-2 > li:nth-of-type(2n) {
      padding-left: 0.9375rem;
      padding-right: 0rem; }
  .medium-block-grid-3 > li {
    width: 33.33333%;
    list-style: none; }
    .medium-block-grid-3 > li:nth-of-type(1n) {
      clear: none; }
    .medium-block-grid-3 > li:nth-of-type(3n+1) {
      clear: both; }
    .medium-block-grid-3 > li:nth-of-type(3n+1) {
      padding-left: 0rem;
      padding-right: 1.25rem; }
    .medium-block-grid-3 > li:nth-of-type(3n+2) {
      padding-left: 0.625rem;
      padding-right: 0.625rem; }
    .medium-block-grid-3 > li:nth-of-type(3n) {
      padding-left: 1.25rem;
      padding-right: 0rem; }
  .medium-block-grid-4 > li {
    width: 25%;
    list-style: none; }
    .medium-block-grid-4 > li:nth-of-type(1n) {
      clear: none; }
    .medium-block-grid-4 > li:nth-of-type(4n+1) {
      clear: both; }
    .medium-block-grid-4 > li:nth-of-type(4n+1) {
      padding-left: 0rem;
      padding-right: 1.40625rem; }
    .medium-block-grid-4 > li:nth-of-type(4n+2) {
      padding-left: 0.46875rem;
      padding-right: 0.9375rem; }
    .medium-block-grid-4 > li:nth-of-type(4n+3) {
      padding-left: 0.9375rem;
      padding-right: 0.46875rem; }
    .medium-block-grid-4 > li:nth-of-type(4n) {
      padding-left: 1.40625rem;
      padding-right: 0rem; }
  .medium-block-grid-5 > li {
    width: 20%;
    list-style: none; }
    .medium-block-grid-5 > li:nth-of-type(1n) {
      clear: none; }
    .medium-block-grid-5 > li:nth-of-type(5n+1) {
      clear: both; }
    .medium-block-grid-5 > li:nth-of-type(5n+1) {
      padding-left: 0rem;
      padding-right: 1.5rem; }
    .medium-block-grid-5 > li:nth-of-type(5n+2) {
      padding-left: 0.375rem;
      padding-right: 1.125rem; }
    .medium-block-grid-5 > li:nth-of-type(5n+3) {
      padding-left: 0.75rem;
      padding-right: 0.75rem; }
    .medium-block-grid-5 > li:nth-of-type(5n+4) {
      padding-left: 1.125rem;
      padding-right: 0.375rem; }
    .medium-block-grid-5 > li:nth-of-type(5n) {
      padding-left: 1.5rem;
      padding-right: 0rem; } }

@media only screen and (min-width: 64em) {
  .large-block-grid-1 > li {
    width: 100%;
    list-style: none; }
    .large-block-grid-1 > li:nth-of-type(1n) {
      clear: none; }
    .large-block-grid-1 > li:nth-of-type(1n+1) {
      clear: both; }
    .large-block-grid-1 > li:nth-of-type(1n) {
      padding-left: 0rem;
      padding-right: 0rem; }
  .large-block-grid-2 > li {
    width: 50%;
    list-style: none; }
    .large-block-grid-2 > li:nth-of-type(1n) {
      clear: none; }
    .large-block-grid-2 > li:nth-of-type(2n+1) {
      clear: both; }
    .large-block-grid-2 > li:nth-of-type(2n+1) {
      padding-left: 0rem;
      padding-right: 0.9375rem; }
    .large-block-grid-2 > li:nth-of-type(2n) {
      padding-left: 0.9375rem;
      padding-right: 0rem; }
  .large-block-grid-3 > li {
    width: 33.33333%;
    list-style: none; }
    .large-block-grid-3 > li:nth-of-type(1n) {
      clear: none; }
    .large-block-grid-3 > li:nth-of-type(3n+1) {
      clear: both; }
    .large-block-grid-3 > li:nth-of-type(3n+1) {
      padding-left: 0rem;
      padding-right: 1.25rem; }
    .large-block-grid-3 > li:nth-of-type(3n+2) {
      padding-left: 0.625rem;
      padding-right: 0.625rem; }
    .large-block-grid-3 > li:nth-of-type(3n) {
      padding-left: 1.25rem;
      padding-right: 0rem; }
  .large-block-grid-4 > li {
    width: 25%;
    list-style: none; }
    .large-block-grid-4 > li:nth-of-type(1n) {
      clear: none; }
    .large-block-grid-4 > li:nth-of-type(4n+1) {
      clear: both; }
    .large-block-grid-4 > li:nth-of-type(4n+1) {
      padding-left: 0rem;
      padding-right: 1.40625rem; }
    .large-block-grid-4 > li:nth-of-type(4n+2) {
      padding-left: 0.46875rem;
      padding-right: 0.9375rem; }
    .large-block-grid-4 > li:nth-of-type(4n+3) {
      padding-left: 0.9375rem;
      padding-right: 0.46875rem; }
    .large-block-grid-4 > li:nth-of-type(4n) {
      padding-left: 1.40625rem;
      padding-right: 0rem; }
  .large-block-grid-5 > li {
    width: 20%;
    list-style: none; }
    .large-block-grid-5 > li:nth-of-type(1n) {
      clear: none; }
    .large-block-grid-5 > li:nth-of-type(5n+1) {
      clear: both; }
    .large-block-grid-5 > li:nth-of-type(5n+1) {
      padding-left: 0rem;
      padding-right: 1.5rem; }
    .large-block-grid-5 > li:nth-of-type(5n+2) {
      padding-left: 0.375rem;
      padding-right: 1.125rem; }
    .large-block-grid-5 > li:nth-of-type(5n+3) {
      padding-left: 0.75rem;
      padding-right: 0.75rem; }
    .large-block-grid-5 > li:nth-of-type(5n+4) {
      padding-left: 1.125rem;
      padding-right: 0.375rem; }
    .large-block-grid-5 > li:nth-of-type(5n) {
      padding-left: 1.5rem;
      padding-right: 0rem; } }

.breadcrumbs {
  display: block;
  padding: 0;
  overflow: hidden;
  margin-left: 0;
  list-style: none;
  border-style: solid;
  border-width: 0;
  background-color: #ffffff;
  border-color: #e6e6e6;
  border-radius: 0px; }
  .breadcrumbs > * {
    margin: 0;
    float: left;
    font-size: 0.75019rem;
    line-height: 0.75019rem;
    text-transform: none;
    color: #cc2626; }
    .breadcrumbs > *:hover a, .breadcrumbs > *:focus a {
      text-decoration: underline; }
    .breadcrumbs > * a {
      color: #cc2626; }
    .breadcrumbs > *.current {
      cursor: default;
      color: #585858; }
      .breadcrumbs > *.current a {
        cursor: default;
        color: #585858; }
      .breadcrumbs > *.current:hover, .breadcrumbs > *.current:hover a, .breadcrumbs > *.current:focus, .breadcrumbs > *.current:focus a {
        text-decoration: none; }
    .breadcrumbs > *.unavailable {
      color: #999999; }
      .breadcrumbs > *.unavailable a {
        color: #999999; }
      .breadcrumbs > *.unavailable:hover,
      .breadcrumbs > *.unavailable:hover a, .breadcrumbs > *.unavailable:focus,
      .breadcrumbs > *.unavailable a:focus {
        text-decoration: none;
        color: #999999;
        cursor: not-allowed; }
    .breadcrumbs > *:before {
      content: "/";
      color: rgba(65, 65, 65, 0.75);
      margin: 0 0.5rem;
      position: relative;
      top: 1px; }
    .breadcrumbs > *:first-child:before {
      content: " ";
      margin: 0; }

/* Accessibility - hides the forward slash */
[aria-label="breadcrumbs"] [aria-hidden="true"]:after {
  content: "/"; }

button, .button {
  border-style: solid;
  border-width: 0px;
  cursor: pointer;
  font-family:  'Bitter', serif;
  font-weight: normal;
  line-height: normal;
  margin: 0 0 1.25rem;
  position: relative;
  text-decoration: none;
  text-align: center;
  -webkit-appearance: none;
  -moz-appearance: none;
  border-radius: 0;
  display: inline-block;
  padding-top: 1rem;
  padding-right: 2rem;
  padding-bottom: 1.0625rem;
  padding-left: 2rem;
  font-size: 1rem;
  background-color: #cc2626;
  border-color: #a31e1e;
  color: #FFFFFF;
  transition: background-color 300ms ease-out; }
  button:hover, button:focus, .button:hover, .button:focus {
    background-color: #a31e1e; }
  button:hover, button:focus, .button:hover, .button:focus {
    color: #FFFFFF; }
  button.secondary, .button.secondary {
    background-color: #e7e7e7;
    border-color: #b9b9b9;
    color: #333333; }
    button.secondary:hover, button.secondary:focus, .button.secondary:hover, .button.secondary:focus {
      background-color: #b9b9b9; }
    button.secondary:hover, button.secondary:focus, .button.secondary:hover, .button.secondary:focus {
      color: #333333; }
  button.success, .button.success {
    background-color: #5cb85c;
    border-color: #439a43;
    color: #FFFFFF; }
    button.success:hover, button.success:focus, .button.success:hover, .button.success:focus {
      background-color: #439a43; }
    button.success:hover, button.success:focus, .button.success:hover, .button.success:focus {
      color: #FFFFFF; }
  button.alert, .button.alert {
    background-color: #e03114;
    border-color: #b32710;
    color: #FFFFFF; }
    button.alert:hover, button.alert:focus, .button.alert:hover, .button.alert:focus {
      background-color: #b32710; }
    button.alert:hover, button.alert:focus, .button.alert:hover, .button.alert:focus {
      color: #FFFFFF; }
  button.warning, .button.warning {
    background-color: #ffa200;
    border-color: #cc8200;
    color: #FFFFFF; }
    button.warning:hover, button.warning:focus, .button.warning:hover, .button.warning:focus {
      background-color: #cc8200; }
    button.warning:hover, button.warning:focus, .button.warning:hover, .button.warning:focus {
      color: #FFFFFF; }
  button.info, .button.info {
    background-color: #5bc0de;
    border-color: #2aaad0;
    color: #FFFFFF; }
    button.info:hover, button.info:focus, .button.info:hover, .button.info:focus {
      background-color: #2aaad0; }
    button.info:hover, button.info:focus, .button.info:hover, .button.info:focus {
      color: #FFFFFF; }
  button.large, .button.large {
    padding-top: 1.125rem;
    padding-right: 2.25rem;
    padding-bottom: 1.1875rem;
    padding-left: 2.25rem;
    font-size: 1.25rem; }
  button.small, .button.small {
    padding-top: 0.875rem;
    padding-right: 1.75rem;
    padding-bottom: 0.9375rem;
    padding-left: 1.75rem;
    font-size: 0.8125rem; }
  button.tiny, .button.tiny {
    padding-top: 0.625rem;
    padding-right: 1.25rem;
    padding-bottom: 0.6875rem;
    padding-left: 1.25rem;
    font-size: 0.6875rem; }
  button.expand, .button.expand {
    padding-right: 0;
    padding-left: 0;
    width: 100%; }
  button.left-align, .button.left-align {
    text-align: left;
    text-indent: 0.75rem; }
  button.right-align, .button.right-align {
    text-align: right;
    padding-right: 0.75rem; }
  button.radius, .button.radius, body .button, body button {
    border-radius: 0px; }
  button.round, .button.round {
    border-radius: 1000px; }
  button.disabled, button[disabled], .button.disabled, .button[disabled] {
    background-color: #cc2626;
    border-color: #a31e1e;
    color: #FFFFFF;
    cursor: default;
    opacity: 0.7;
    box-shadow: none; }
    button.disabled:hover, button.disabled:focus, button[disabled]:hover, button[disabled]:focus, .button.disabled:hover, .button.disabled:focus, .button[disabled]:hover, .button[disabled]:focus {
      background-color: #a31e1e; }
    button.disabled:hover, button.disabled:focus, button[disabled]:hover, button[disabled]:focus, .button.disabled:hover, .button.disabled:focus, .button[disabled]:hover, .button[disabled]:focus {
      color: #FFFFFF; }
    button.disabled:hover, button.disabled:focus, button[disabled]:hover, button[disabled]:focus, .button.disabled:hover, .button.disabled:focus, .button[disabled]:hover, .button[disabled]:focus {
      background-color: #cc2626; }
    button.disabled.secondary, button[disabled].secondary, .button.disabled.secondary, .button[disabled].secondary {
      background-color: #e7e7e7;
      border-color: #b9b9b9;
      color: #333333;
      cursor: default;
      opacity: 0.7;
      box-shadow: none; }
      button.disabled.secondary:hover, button.disabled.secondary:focus, button[disabled].secondary:hover, button[disabled].secondary:focus, .button.disabled.secondary:hover, .button.disabled.secondary:focus, .button[disabled].secondary:hover, .button[disabled].secondary:focus {
        background-color: #b9b9b9; }
      button.disabled.secondary:hover, button.disabled.secondary:focus, button[disabled].secondary:hover, button[disabled].secondary:focus, .button.disabled.secondary:hover, .button.disabled.secondary:focus, .button[disabled].secondary:hover, .button[disabled].secondary:focus {
        color: #333333; }
      button.disabled.secondary:hover, button.disabled.secondary:focus, button[disabled].secondary:hover, button[disabled].secondary:focus, .button.disabled.secondary:hover, .button.disabled.secondary:focus, .button[disabled].secondary:hover, .button[disabled].secondary:focus {
        background-color: #e7e7e7; }
    button.disabled.success, button[disabled].success, .button.disabled.success, .button[disabled].success {
      background-color: #5cb85c;
      border-color: #439a43;
      color: #FFFFFF;
      cursor: default;
      opacity: 0.7;
      box-shadow: none; }
      button.disabled.success:hover, button.disabled.success:focus, button[disabled].success:hover, button[disabled].success:focus, .button.disabled.success:hover, .button.disabled.success:focus, .button[disabled].success:hover, .button[disabled].success:focus {
        background-color: #439a43; }
      button.disabled.success:hover, button.disabled.success:focus, button[disabled].success:hover, button[disabled].success:focus, .button.disabled.success:hover, .button.disabled.success:focus, .button[disabled].success:hover, .button[disabled].success:focus {
        color: #FFFFFF; }
      button.disabled.success:hover, button.disabled.success:focus, button[disabled].success:hover, button[disabled].success:focus, .button.disabled.success:hover, .button.disabled.success:focus, .button[disabled].success:hover, .button[disabled].success:focus {
        background-color: #5cb85c; }
    button.disabled.alert, button[disabled].alert, .button.disabled.alert, .button[disabled].alert {
      background-color: #e03114;
      border-color: #b32710;
      color: #FFFFFF;
      cursor: default;
      opacity: 0.7;
      box-shadow: none; }
      button.disabled.alert:hover, button.disabled.alert:focus, button[disabled].alert:hover, button[disabled].alert:focus, .button.disabled.alert:hover, .button.disabled.alert:focus, .button[disabled].alert:hover, .button[disabled].alert:focus {
        background-color: #b32710; }
      button.disabled.alert:hover, button.disabled.alert:focus, button[disabled].alert:hover, button[disabled].alert:focus, .button.disabled.alert:hover, .button.disabled.alert:focus, .button[disabled].alert:hover, .button[disabled].alert:focus {
        color: #FFFFFF; }
      button.disabled.alert:hover, button.disabled.alert:focus, button[disabled].alert:hover, button[disabled].alert:focus, .button.disabled.alert:hover, .button.disabled.alert:focus, .button[disabled].alert:hover, .button[disabled].alert:focus {
        background-color: #e03114; }
    button.disabled.warning, button[disabled].warning, .button.disabled.warning, .button[disabled].warning {
      background-color: #ffa200;
      border-color: #cc8200;
      color: #FFFFFF;
      cursor: default;
      opacity: 0.7;
      box-shadow: none; }
      button.disabled.warning:hover, button.disabled.warning:focus, button[disabled].warning:hover, button[disabled].warning:focus, .button.disabled.warning:hover, .button.disabled.warning:focus, .button[disabled].warning:hover, .button[disabled].warning:focus {
        background-color: #cc8200; }
      button.disabled.warning:hover, button.disabled.warning:focus, button[disabled].warning:hover, button[disabled].warning:focus, .button.disabled.warning:hover, .button.disabled.warning:focus, .button[disabled].warning:hover, .button[disabled].warning:focus {
        color: #FFFFFF; }
      button.disabled.warning:hover, button.disabled.warning:focus, button[disabled].warning:hover, button[disabled].warning:focus, .button.disabled.warning:hover, .button.disabled.warning:focus, .button[disabled].warning:hover, .button[disabled].warning:focus {
        background-color: #ffa200; }
    button.disabled.info, button[disabled].info, .button.disabled.info, .button[disabled].info {
      background-color: #5bc0de;
      border-color: #2aaad0;
      color: #FFFFFF;
      cursor: default;
      opacity: 0.7;
      box-shadow: none; }
      button.disabled.info:hover, button.disabled.info:focus, button[disabled].info:hover, button[disabled].info:focus, .button.disabled.info:hover, .button.disabled.info:focus, .button[disabled].info:hover, .button[disabled].info:focus {
        background-color: #2aaad0; }
      button.disabled.info:hover, button.disabled.info:focus, button[disabled].info:hover, button[disabled].info:focus, .button.disabled.info:hover, .button.disabled.info:focus, .button[disabled].info:hover, .button[disabled].info:focus {
        color: #FFFFFF; }
      button.disabled.info:hover, button.disabled.info:focus, button[disabled].info:hover, button[disabled].info:focus, .button.disabled.info:hover, .button.disabled.info:focus, .button[disabled].info:hover, .button[disabled].info:focus {
        background-color: #5bc0de; }

button::-moz-focus-inner {
  border: 0;
  padding: 0; }

@media only screen and (min-width: 40em) {
  button, .button {
    display: inline-block; } }

/* Standard Forms */
form {
  margin: 0 0 1rem; }

/* Using forms within rows, we need to set some defaults */
form .row .row {
  margin: 0 -0.5rem; }
  form .row .row .column,
  form .row .row .columns {
    padding: 0 0.5rem; }
  form .row .row.collapse {
    margin: 0; }
    form .row .row.collapse .column,
    form .row .row.collapse .columns {
      padding: 0; }
    form .row .row.collapse input {
      -webkit-border-bottom-right-radius: 0;
      -webkit-border-top-right-radius: 0;
      border-bottom-right-radius: 0;
      border-top-right-radius: 0; }

form .row input.column,
form .row input.columns,
form .row textarea.column,
form .row textarea.columns {
  padding-left: 0.5rem; }

/* Label Styles */
label {
  font-size: 0.875rem;
  color: #4d4d4d;
  cursor: pointer;
  display: block;
  font-weight: normal;
  line-height: 1.5;
  margin-bottom: 0;
  /* Styles for required inputs */ }
  label.right {
    float: none !important;
    text-align: right; }
  label.inline {
    margin: 0 0 1rem 0;
    padding: 0.5625rem 0; }
  label small {
    text-transform: capitalize;
    color: #676767; }

/* Attach elements to the beginning or end of an input */
.prefix,
.postfix {
  display: block;
  position: relative;
  z-index: 2;
  text-align: center;
  width: 100%;
  padding-top: 0;
  padding-bottom: 0;
  border-style: solid;
  border-width: 1px;
  overflow: visible;
  font-size: 0.875rem;
  height: 2.3125rem;
  line-height: 2.3125rem; }

/* Adjust padding, alignment and radius if pre/post element is a button */
.postfix.button {
  padding-left: 0;
  padding-right: 0;
  padding-top: 0;
  padding-bottom: 0;
  text-align: center;
  border: none; }

.prefix.button {
  padding-left: 0;
  padding-right: 0;
  padding-top: 0;
  padding-bottom: 0;
  text-align: center;
  border: none; }

.prefix.button.radius, body .prefix.button, body button.prefix {
  border-radius: 0;
  -webkit-border-bottom-left-radius: 0px;
  -webkit-border-top-left-radius: 0px;
  border-bottom-left-radius: 0px;
  border-top-left-radius: 0px; }

.postfix.button.radius, body .postfix.button, body button.postfix {
  border-radius: 0;
  -webkit-border-bottom-right-radius: 0px;
  -webkit-border-top-right-radius: 0px;
  border-bottom-right-radius: 0px;
  border-top-right-radius: 0px; }

.prefix.button.round {
  border-radius: 0;
  -webkit-border-bottom-left-radius: 1000px;
  -webkit-border-top-left-radius: 1000px;
  border-bottom-left-radius: 1000px;
  border-top-left-radius: 1000px; }

.postfix.button.round {
  border-radius: 0;
  -webkit-border-bottom-right-radius: 1000px;
  -webkit-border-top-right-radius: 1000px;
  border-bottom-right-radius: 1000px;
  border-top-right-radius: 1000px; }

/* Separate prefix and postfix styles when on span or label so buttons keep their own */
span.prefix, label.prefix {
  background: #f2f2f2;
  border-right: none;
  color: #333333;
  border-color: #cccccc; }

span.postfix, label.postfix {
  background: #f2f2f2;
  border-left: none;
  color: #333333;
  border-color: #cccccc; }

/* We use this to get basic styling on all basic form elements */
input[type="text"], input[type="password"], input[type="date"], input[type="datetime"], input[type="datetime-local"], input[type="month"], input[type="week"], input[type="email"], input[type="number"], input[type="search"], input[type="tel"], input[type="time"], input[type="url"], input[type="color"], textarea {
  -webkit-appearance: none;
  border-radius: 0;
  background-color: #FFFFFF;
  font-family: inherit;
  border-style: solid;
  border-width: 1px;
  border-color: #cccccc;
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
  color: rgba(0, 0, 0, 0.75);
  display: block;
  font-size: 0.875rem;
  margin: 0 0 1rem 0;
  padding: 0.5rem;
  height: 2.3125rem;
  width: 100%;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  transition: all 0.15s linear; }
  input[type="text"]:focus, input[type="password"]:focus, input[type="date"]:focus, input[type="datetime"]:focus, input[type="datetime-local"]:focus, input[type="month"]:focus, input[type="week"]: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, input[type="color"]:focus, textarea:focus {
    background: #fafafa;
    border-color: #999999;
    outline: none; }
  input[type="text"]:disabled, input[type="password"]:disabled, input[type="date"]:disabled, input[type="datetime"]:disabled, input[type="datetime-local"]:disabled, input[type="month"]:disabled, input[type="week"]:disabled, input[type="email"]:disabled, input[type="number"]:disabled, input[type="search"]:disabled, input[type="tel"]:disabled, input[type="time"]:disabled, input[type="url"]:disabled, input[type="color"]:disabled, textarea:disabled {
    background-color: #DDDDDD;
    cursor: default; }
  input[type="text"][disabled], input[type="text"][readonly],
  fieldset[disabled] input[type="text"], input[type="password"][disabled], input[type="password"][readonly],
  fieldset[disabled] input[type="password"], input[type="date"][disabled], input[type="date"][readonly],
  fieldset[disabled] input[type="date"], input[type="datetime"][disabled], input[type="datetime"][readonly],
  fieldset[disabled] input[type="datetime"], input[type="datetime-local"][disabled], input[type="datetime-local"][readonly],
  fieldset[disabled] input[type="datetime-local"], input[type="month"][disabled], input[type="month"][readonly],
  fieldset[disabled] input[type="month"], input[type="week"][disabled], input[type="week"][readonly],
  fieldset[disabled] input[type="week"], input[type="email"][disabled], input[type="email"][readonly],
  fieldset[disabled] input[type="email"], input[type="number"][disabled], input[type="number"][readonly],
  fieldset[disabled] input[type="number"], input[type="search"][disabled], input[type="search"][readonly],
  fieldset[disabled] input[type="search"], input[type="tel"][disabled], input[type="tel"][readonly],
  fieldset[disabled] input[type="tel"], input[type="time"][disabled], input[type="time"][readonly],
  fieldset[disabled] input[type="time"], input[type="url"][disabled], input[type="url"][readonly],
  fieldset[disabled] input[type="url"], input[type="color"][disabled], input[type="color"][readonly],
  fieldset[disabled] input[type="color"], textarea[disabled], textarea[readonly],
  fieldset[disabled] textarea {
    background-color: #DDDDDD;
    cursor: default; }
  input[type="text"].radius, input[type="password"].radius, input[type="date"].radius, input[type="datetime"].radius, input[type="datetime-local"].radius, input[type="month"].radius, input[type="week"].radius, input[type="email"].radius, input[type="number"].radius, input[type="search"].radius, input[type="tel"].radius, input[type="time"].radius, input[type="url"].radius, input[type="color"].radius, textarea.radius {
    border-radius: 0px; }

form .row .prefix-radius.row.collapse input,
form .row .prefix-radius.row.collapse textarea,
form .row .prefix-radius.row.collapse select,
form .row .prefix-radius.row.collapse button {
  border-radius: 0;
  -webkit-border-bottom-right-radius: 0px;
  -webkit-border-top-right-radius: 0px;
  border-bottom-right-radius: 0px;
  border-top-right-radius: 0px; }

form .row .prefix-radius.row.collapse .prefix {
  border-radius: 0;
  -webkit-border-bottom-left-radius: 0px;
  -webkit-border-top-left-radius: 0px;
  border-bottom-left-radius: 0px;
  border-top-left-radius: 0px; }

form .row .postfix-radius.row.collapse input,
form .row .postfix-radius.row.collapse textarea,
form .row .postfix-radius.row.collapse select,
form .row .postfix-radius.row.collapse button {
  border-radius: 0;
  -webkit-border-bottom-left-radius: 0px;
  -webkit-border-top-left-radius: 0px;
  border-bottom-left-radius: 0px;
  border-top-left-radius: 0px; }

form .row .postfix-radius.row.collapse .postfix {
  border-radius: 0;
  -webkit-border-bottom-right-radius: 0px;
  -webkit-border-top-right-radius: 0px;
  border-bottom-right-radius: 0px;
  border-top-right-radius: 0px; }

form .row .prefix-round.row.collapse input,
form .row .prefix-round.row.collapse textarea,
form .row .prefix-round.row.collapse select,
form .row .prefix-round.row.collapse button {
  border-radius: 0;
  -webkit-border-bottom-right-radius: 1000px;
  -webkit-border-top-right-radius: 1000px;
  border-bottom-right-radius: 1000px;
  border-top-right-radius: 1000px; }

form .row .prefix-round.row.collapse .prefix {
  border-radius: 0;
  -webkit-border-bottom-left-radius: 1000px;
  -webkit-border-top-left-radius: 1000px;
  border-bottom-left-radius: 1000px;
  border-top-left-radius: 1000px; }

form .row .postfix-round.row.collapse input,
form .row .postfix-round.row.collapse textarea,
form .row .postfix-round.row.collapse select,
form .row .postfix-round.row.collapse button {
  border-radius: 0;
  -webkit-border-bottom-left-radius: 1000px;
  -webkit-border-top-left-radius: 1000px;
  border-bottom-left-radius: 1000px;
  border-top-left-radius: 1000px; }

form .row .postfix-round.row.collapse .postfix {
  border-radius: 0;
  -webkit-border-bottom-right-radius: 1000px;
  -webkit-border-top-right-radius: 1000px;
  border-bottom-right-radius: 1000px;
  border-top-right-radius: 1000px; }

input[type="submit"] {
  -webkit-appearance: none;
  border-radius: 0; }

/* Respect enforced amount of rows for textarea */
textarea[rows] {
  height: auto; }

/* Not allow resize out of parent */
textarea {
  max-width: 100%; }

/* Add height value for select elements to match text input height */
select {
  -webkit-appearance: none !important;
  border-radius: 0;
  background-color: #FAFAFA;
  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgeD0iMTJweCIgeT0iMHB4IiB3aWR0aD0iMjRweCIgaGVpZ2h0PSIzcHgiIHZpZXdCb3g9IjAgMCA2IDMiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDYgMyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PHBvbHlnb24gcG9pbnRzPSI1Ljk5MiwwIDIuOTkyLDMgLTAuMDA4LDAgIi8+PC9zdmc+);
  background-position: 100% center;
  background-repeat: no-repeat;
  border-style: solid;
  border-width: 1px;
  border-color: #cccccc;
  padding: 0.5rem;
  font-size: 0.875rem;
  font-family:  'Bitter', serif;
  color: rgba(0, 0, 0, 0.75);
  line-height: normal;
  border-radius: 0;
  height: 2.3125rem; }
  select::-ms-expand {
    display: none; }
  select.radius {
    border-radius: 0px; }
  select:hover {
    background-color: #f3f3f3;
    border-color: #999999; }
  select:disabled {
    background-color: #DDDDDD;
    cursor: default; }
  select[multiple] {
    height: auto; }

/* Adjust margin for form elements below */
input[type="file"],
input[type="checkbox"],
input[type="radio"],
select {
  margin: 0 0 1rem 0; }

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

/* Normalize file input width */
input[type="file"] {
  width: 100%; }

/* HTML5 Number spinners settings */
/* We add basic fieldset styling */
fieldset {
  border: 1px solid #b0b0b0;
  padding: 1.25rem;
  margin: 1.125rem 0; }
  fieldset legend {
    font-weight: bold;
    background: #ffffff;
    padding: 0 0.1875rem;
    margin: 0;
    margin-left: -0.1875rem; }

/* Error Handling */
[data-abide] .error small.error, [data-abide] .error span.error, [data-abide] span.error, [data-abide] small.error {
  display: block;
  padding: 0.375rem 0.5625rem 0.5625rem;
  margin-top: -1px;
  margin-bottom: 1rem;
  font-size: 0.75rem;
  font-weight: normal;
  font-style: italic;
  background: #e03114;
  color: #FFFFFF; }

[data-abide] span.error, [data-abide] small.error {
  display: none; }

span.error, small.error {
  display: block;
  padding: 0.375rem 0.5625rem 0.5625rem;
  margin-top: -1px;
  margin-bottom: 1rem;
  font-size: 0.75rem;
  font-weight: normal;
  font-style: italic;
  background: #e03114;
  color: #FFFFFF; }

.error input,
.error textarea,
.error select {
  margin-bottom: 0; }

.error input[type="checkbox"],
.error input[type="radio"] {
  margin-bottom: 1rem; }

.error label,
.error label.error {
  color: #e03114; }

.error small.error {
  display: block;
  padding: 0.375rem 0.5625rem 0.5625rem;
  margin-top: -1px;
  margin-bottom: 1rem;
  font-size: 0.75rem;
  font-weight: normal;
  font-style: italic;
  background: #e03114;
  color: #FFFFFF; }

.error > label > small {
  color: #676767;
  background: transparent;
  padding: 0;
  text-transform: capitalize;
  font-style: normal;
  font-size: 60%;
  margin: 0;
  display: inline; }

.error span.error-message {
  display: block; }

input.error,
textarea.error,
select.error {
  margin-bottom: 0; }

label.error {
  color: #e03114; }

.row {
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  margin-top: 0;
  margin-bottom: 0;
  max-width: 80rem; }
  .row:before, .row:after {
    content: " ";
    display: table; }
  .row:after {
    clear: both; }
  .row.collapse > .column,
  .row.collapse > .columns {
    padding-left: 0;
    padding-right: 0; }
  .row.collapse .row {
    margin-left: 0;
    margin-right: 0; }
  .row .row {
    width: auto;
    margin-left: -0.9375rem;
    margin-right: -0.9375rem;
    margin-top: 0;
    margin-bottom: 0;
    max-width: none; }
    .row .row:before, .row .row:after {
      content: " ";
      display: table; }
    .row .row:after {
      clear: both; }
    .row .row.collapse {
      width: auto;
      margin: 0;
      max-width: none; }
      .row .row.collapse:before, .row .row.collapse:after {
        content: " ";
        display: table; }
      .row .row.collapse:after {
        clear: both; }

.column,
.columns {
  padding-left: 0.9375rem;
  padding-right: 0.9375rem;
  width: 100%;
  float: left; }

[class*="column"] + [class*="column"]:last-child {
  float: right; }

[class*="column"] + [class*="column"].end {
  float: left; }

@media only screen {
  .small-push-0 {
    position: relative;
    left: 0%;
    right: auto; }
  .small-pull-0 {
    position: relative;
    right: 0%;
    left: auto; }
  .small-push-1 {
    position: relative;
    left: 8.33333%;
    right: auto; }
  .small-pull-1 {
    position: relative;
    right: 8.33333%;
    left: auto; }
  .small-push-2 {
    position: relative;
    left: 16.66667%;
    right: auto; }
  .small-pull-2 {
    position: relative;
    right: 16.66667%;
    left: auto; }
  .small-push-3 {
    position: relative;
    left: 25%;
    right: auto; }
  .small-pull-3 {
    position: relative;
    right: 25%;
    left: auto; }
  .small-push-4 {
    position: relative;
    left: 33.33333%;
    right: auto; }
  .small-pull-4 {
    position: relative;
    right: 33.33333%;
    left: auto; }
  .small-push-5 {
    position: relative;
    left: 41.66667%;
    right: auto; }
  .small-pull-5 {
    position: relative;
    right: 41.66667%;
    left: auto; }
  .small-push-6 {
    position: relative;
    left: 50%;
    right: auto; }
  .small-pull-6 {
    position: relative;
    right: 50%;
    left: auto; }
  .small-push-7 {
    position: relative;
    left: 58.33333%;
    right: auto; }
  .small-pull-7 {
    position: relative;
    right: 58.33333%;
    left: auto; }
  .small-push-8 {
    position: relative;
    left: 66.66667%;
    right: auto; }
  .small-pull-8 {
    position: relative;
    right: 66.66667%;
    left: auto; }
  .small-push-9 {
    position: relative;
    left: 75%;
    right: auto; }
  .small-pull-9 {
    position: relative;
    right: 75%;
    left: auto; }
  .small-push-10 {
    position: relative;
    left: 83.33333%;
    right: auto; }
  .small-pull-10 {
    position: relative;
    right: 83.33333%;
    left: auto; }
  .small-push-11 {
    position: relative;
    left: 91.66667%;
    right: auto; }
  .small-pull-11 {
    position: relative;
    right: 91.66667%;
    left: auto; }
  .column,
  .columns {
    position: relative;
    padding-left: 0.9375rem;
    padding-right: 0.9375rem;
    float: left; }
  .small-1 {
    width: 8.33333%; }
  .small-2 {
    width: 16.66667%; }
  .small-3 {
    width: 25%; }
  .small-4 {
    width: 33.33333%; }
  .small-5 {
    width: 41.66667%; }
  .small-6 {
    width: 50%; }
  .small-7 {
    width: 58.33333%; }
  .small-8 {
    width: 66.66667%; }
  .small-9 {
    width: 75%; }
  .small-10 {
    width: 83.33333%; }
  .small-11 {
    width: 91.66667%; }
  .small-12 {
    width: 100%; }
  .small-offset-0 {
    margin-left: 0% !important; }
  .small-offset-1 {
    margin-left: 8.33333% !important; }
  .small-offset-2 {
    margin-left: 16.66667% !important; }
  .small-offset-3 {
    margin-left: 25% !important; }
  .small-offset-4 {
    margin-left: 33.33333% !important; }
  .small-offset-5 {
    margin-left: 41.66667% !important; }
  .small-offset-6 {
    margin-left: 50% !important; }
  .small-offset-7 {
    margin-left: 58.33333% !important; }
  .small-offset-8 {
    margin-left: 66.66667% !important; }
  .small-offset-9 {
    margin-left: 75% !important; }
  .small-offset-10 {
    margin-left: 83.33333% !important; }
  .small-offset-11 {
    margin-left: 91.66667% !important; }
  .small-reset-order {
    margin-left: 0;
    margin-right: 0;
    left: auto;
    right: auto;
    float: left; }
  .column.small-centered,
  .columns.small-centered {
    margin-left: auto;
    margin-right: auto;
    float: none; }
  .column.small-uncentered,
  .columns.small-uncentered {
    margin-left: 0;
    margin-right: 0;
    float: left; }
  .column.small-centered:last-child,
  .columns.small-centered:last-child {
    float: none; }
  .column.small-uncentered:last-child,
  .columns.small-uncentered:last-child {
    float: left; }
  .column.small-uncentered.opposite,
  .columns.small-uncentered.opposite {
    float: right; }
  .row.small-collapse > .column,
  .row.small-collapse > .columns {
    padding-left: 0;
    padding-right: 0; }
  .row.small-collapse .row {
    margin-left: 0;
    margin-right: 0; }
  .row.small-uncollapse > .column,
  .row.small-uncollapse > .columns {
    padding-left: 0.9375rem;
    padding-right: 0.9375rem;
    float: left; } }

@media only screen and (min-width: 40em) {
  .medium-push-0 {
    position: relative;
    left: 0%;
    right: auto; }
  .medium-pull-0 {
    position: relative;
    right: 0%;
    left: auto; }
  .medium-push-1 {
    position: relative;
    left: 8.33333%;
    right: auto; }
  .medium-pull-1 {
    position: relative;
    right: 8.33333%;
    left: auto; }
  .medium-push-2 {
    position: relative;
    left: 16.66667%;
    right: auto; }
  .medium-pull-2 {
    position: relative;
    right: 16.66667%;
    left: auto; }
  .medium-push-3 {
    position: relative;
    left: 25%;
    right: auto; }
  .medium-pull-3 {
    position: relative;
    right: 25%;
    left: auto; }
  .medium-push-4 {
    position: relative;
    left: 33.33333%;
    right: auto; }
  .medium-pull-4 {
    position: relative;
    right: 33.33333%;
    left: auto; }
  .medium-push-5 {
    position: relative;
    left: 41.66667%;
    right: auto; }
  .medium-pull-5 {
    position: relative;
    right: 41.66667%;
    left: auto; }
  .medium-push-6 {
    position: relative;
    left: 50%;
    right: auto; }
  .medium-pull-6 {
    position: relative;
    right: 50%;
    left: auto; }
  .medium-push-7 {
    position: relative;
    left: 58.33333%;
    right: auto; }
  .medium-pull-7 {
    position: relative;
    right: 58.33333%;
    left: auto; }
  .medium-push-8 {
    position: relative;
    left: 66.66667%;
    right: auto; }
  .medium-pull-8 {
    position: relative;
    right: 66.66667%;
    left: auto; }
  .medium-push-9 {
    position: relative;
    left: 75%;
    right: auto; }
  .medium-pull-9 {
    position: relative;
    right: 75%;
    left: auto; }
  .medium-push-10 {
    position: relative;
    left: 83.33333%;
    right: auto; }
  .medium-pull-10 {
    position: relative;
    right: 83.33333%;
    left: auto; }
  .medium-push-11 {
    position: relative;
    left: 91.66667%;
    right: auto; }
  .medium-pull-11 {
    position: relative;
    right: 91.66667%;
    left: auto; }
  .column,
  .columns {
    position: relative;
    padding-left: 0.9375rem;
    padding-right: 0.9375rem;
    float: left; }
  .medium-1 {
    width: 8.33333%; }
  .medium-2 {
    width: 16.66667%; }
  .medium-3 {
    width: 25%; }
  .medium-4 {
    width: 33.33333%; }
  .medium-5 {
    width: 41.66667%; }
  .medium-6 {
    width: 50%; }
  .medium-7 {
    width: 58.33333%; }
  .medium-8 {
    width: 66.66667%; }
  .medium-9 {
    width: 75%; }
  .medium-10 {
    width: 83.33333%; }
  .medium-11 {
    width: 91.66667%; }
  .medium-12 {
    width: 100%; }
  .medium-offset-0 {
    margin-left: 0% !important; }
  .medium-offset-1 {
    margin-left: 8.33333% !important; }
  .medium-offset-2 {
    margin-left: 16.66667% !important; }
  .medium-offset-3 {
    margin-left: 25% !important; }
  .medium-offset-4 {
    margin-left: 33.33333% !important; }
  .medium-offset-5 {
    margin-left: 41.66667% !important; }
  .medium-offset-6 {
    margin-left: 50% !important; }
  .medium-offset-7 {
    margin-left: 58.33333% !important; }
  .medium-offset-8 {
    margin-left: 66.66667% !important; }
  .medium-offset-9 {
    margin-left: 75% !important; }
  .medium-offset-10 {
    margin-left: 83.33333% !important; }
  .medium-offset-11 {
    margin-left: 91.66667% !important; }
  .medium-reset-order {
    margin-left: 0;
    margin-right: 0;
    left: auto;
    right: auto;
    float: left; }
  .column.medium-centered,
  .columns.medium-centered {
    margin-left: auto;
    margin-right: auto;
    float: none; }
  .column.medium-uncentered,
  .columns.medium-uncentered {
    margin-left: 0;
    margin-right: 0;
    float: left; }
  .column.medium-centered:last-child,
  .columns.medium-centered:last-child {
    float: none; }
  .column.medium-uncentered:last-child,
  .columns.medium-uncentered:last-child {
    float: left; }
  .column.medium-uncentered.opposite,
  .columns.medium-uncentered.opposite {
    float: right; }
  .row.medium-collapse > .column,
  .row.medium-collapse > .columns {
    padding-left: 0;
    padding-right: 0; }
  .row.medium-collapse .row {
    margin-left: 0;
    margin-right: 0; }
  .row.medium-uncollapse > .column,
  .row.medium-uncollapse > .columns {
    padding-left: 0.9375rem;
    padding-right: 0.9375rem;
    float: left; }
  .push-0 {
    position: relative;
    left: 0%;
    right: auto; }
  .pull-0 {
    position: relative;
    right: 0%;
    left: auto; }
  .push-1 {
    position: relative;
    left: 8.33333%;
    right: auto; }
  .pull-1 {
    position: relative;
    right: 8.33333%;
    left: auto; }
  .push-2 {
    position: relative;
    left: 16.66667%;
    right: auto; }
  .pull-2 {
    position: relative;
    right: 16.66667%;
    left: auto; }
  .push-3 {
    position: relative;
    left: 25%;
    right: auto; }
  .pull-3 {
    position: relative;
    right: 25%;
    left: auto; }
  .push-4 {
    position: relative;
    left: 33.33333%;
    right: auto; }
  .pull-4 {
    position: relative;
    right: 33.33333%;
    left: auto; }
  .push-5 {
    position: relative;
    left: 41.66667%;
    right: auto; }
  .pull-5 {
    position: relative;
    right: 41.66667%;
    left: auto; }
  .push-6 {
    position: relative;
    left: 50%;
    right: auto; }
  .pull-6 {
    position: relative;
    right: 50%;
    left: auto; }
  .push-7 {
    position: relative;
    left: 58.33333%;
    right: auto; }
  .pull-7 {
    position: relative;
    right: 58.33333%;
    left: auto; }
  .push-8 {
    position: relative;
    left: 66.66667%;
    right: auto; }
  .pull-8 {
    position: relative;
    right: 66.66667%;
    left: auto; }
  .push-9 {
    position: relative;
    left: 75%;
    right: auto; }
  .pull-9 {
    position: relative;
    right: 75%;
    left: auto; }
  .push-10 {
    position: relative;
    left: 83.33333%;
    right: auto; }
  .pull-10 {
    position: relative;
    right: 83.33333%;
    left: auto; }
  .push-11 {
    position: relative;
    left: 91.66667%;
    right: auto; }
  .pull-11 {
    position: relative;
    right: 91.66667%;
    left: auto; } }

@media only screen and (min-width: 64em) {
  .large-push-0 {
    position: relative;
    left: 0%;
    right: auto; }
  .large-pull-0 {
    position: relative;
    right: 0%;
    left: auto; }
  .large-push-1 {
    position: relative;
    left: 8.33333%;
    right: auto; }
  .large-pull-1 {
    position: relative;
    right: 8.33333%;
    left: auto; }
  .large-push-2 {
    position: relative;
    left: 16.66667%;
    right: auto; }
  .large-pull-2 {
    position: relative;
    right: 16.66667%;
    left: auto; }
  .large-push-3 {
    position: relative;
    left: 25%;
    right: auto; }
  .large-pull-3 {
    position: relative;
    right: 25%;
    left: auto; }
  .large-push-4 {
    position: relative;
    left: 33.33333%;
    right: auto; }
  .large-pull-4 {
    position: relative;
    right: 33.33333%;
    left: auto; }
  .large-push-5 {
    position: relative;
    left: 41.66667%;
    right: auto; }
  .large-pull-5 {
    position: relative;
    right: 41.66667%;
    left: auto; }
  .large-push-6 {
    position: relative;
    left: 50%;
    right: auto; }
  .large-pull-6 {
    position: relative;
    right: 50%;
    left: auto; }
  .large-push-7 {
    position: relative;
    left: 58.33333%;
    right: auto; }
  .large-pull-7 {
    position: relative;
    right: 58.33333%;
    left: auto; }
  .large-push-8 {
    position: relative;
    left: 66.66667%;
    right: auto; }
  .large-pull-8 {
    position: relative;
    right: 66.66667%;
    left: auto; }
  .large-push-9 {
    position: relative;
    left: 75%;
    right: auto; }
  .large-pull-9 {
    position: relative;
    right: 75%;
    left: auto; }
  .large-push-10 {
    position: relative;
    left: 83.33333%;
    right: auto; }
  .large-pull-10 {
    position: relative;
    right: 83.33333%;
    left: auto; }
  .large-push-11 {
    position: relative;
    left: 91.66667%;
    right: auto; }
  .large-pull-11 {
    position: relative;
    right: 91.66667%;
    left: auto; }
  .column,
  .columns {
    position: relative;
    padding-left: 0.9375rem;
    padding-right: 0.9375rem;
    float: left; }
  .large-1 {
    width: 8.33333%; }
  .large-2 {
    width: 16.66667%; }
  .large-3 {
    width: 25%; }
  .large-4 {
    width: 33.33333%; }
  .large-5 {
    width: 41.66667%; }
  .large-6 {
    width: 50%; }
  .large-7 {
    width: 58.33333%; }
  .large-8 {
    width: 66.66667%; }
  .large-9 {
    width: 75%; }
  .large-10 {
    width: 83.33333%; }
  .large-11 {
    width: 91.66667%; }
  .large-12 {
    width: 100%; }
  .large-offset-0 {
    margin-left: 0% !important; }
  .large-offset-1 {
    margin-left: 8.33333% !important; }
  .large-offset-2 {
    margin-left: 16.66667% !important; }
  .large-offset-3 {
    margin-left: 25% !important; }
  .large-offset-4 {
    margin-left: 33.33333% !important; }
  .large-offset-5 {
    margin-left: 41.66667% !important; }
  .large-offset-6 {
    margin-left: 50% !important; }
  .large-offset-7 {
    margin-left: 58.33333% !important; }
  .large-offset-8 {
    margin-left: 66.66667% !important; }
  .large-offset-9 {
    margin-left: 75% !important; }
  .large-offset-10 {
    margin-left: 83.33333% !important; }
  .large-offset-11 {
    margin-left: 91.66667% !important; }
  .large-reset-order {
    margin-left: 0;
    margin-right: 0;
    left: auto;
    right: auto;
    float: left; }
  .column.large-centered,
  .columns.large-centered {
    margin-left: auto;
    margin-right: auto;
    float: none; }
  .column.large-uncentered,
  .columns.large-uncentered {
    margin-left: 0;
    margin-right: 0;
    float: left; }
  .column.large-centered:last-child,
  .columns.large-centered:last-child {
    float: none; }
  .column.large-uncentered:last-child,
  .columns.large-uncentered:last-child {
    float: left; }
  .column.large-uncentered.opposite,
  .columns.large-uncentered.opposite {
    float: right; }
  .row.large-collapse > .column,
  .row.large-collapse > .columns {
    padding-left: 0;
    padding-right: 0; }
  .row.large-collapse .row {
    margin-left: 0;
    margin-right: 0; }
  .row.large-uncollapse > .column,
  .row.large-uncollapse > .columns {
    padding-left: 0.9375rem;
    padding-right: 0.9375rem;
    float: left; }
  .push-0 {
    position: relative;
    left: 0%;
    right: auto; }
  .pull-0 {
    position: relative;
    right: 0%;
    left: auto; }
  .push-1 {
    position: relative;
    left: 8.33333%;
    right: auto; }
  .pull-1 {
    position: relative;
    right: 8.33333%;
    left: auto; }
  .push-2 {
    position: relative;
    left: 16.66667%;
    right: auto; }
  .pull-2 {
    position: relative;
    right: 16.66667%;
    left: auto; }
  .push-3 {
    position: relative;
    left: 25%;
    right: auto; }
  .pull-3 {
    position: relative;
    right: 25%;
    left: auto; }
  .push-4 {
    position: relative;
    left: 33.33333%;
    right: auto; }
  .pull-4 {
    position: relative;
    right: 33.33333%;
    left: auto; }
  .push-5 {
    position: relative;
    left: 41.66667%;
    right: auto; }
  .pull-5 {
    position: relative;
    right: 41.66667%;
    left: auto; }
  .push-6 {
    position: relative;
    left: 50%;
    right: auto; }
  .pull-6 {
    position: relative;
    right: 50%;
    left: auto; }
  .push-7 {
    position: relative;
    left: 58.33333%;
    right: auto; }
  .pull-7 {
    position: relative;
    right: 58.33333%;
    left: auto; }
  .push-8 {
    position: relative;
    left: 66.66667%;
    right: auto; }
  .pull-8 {
    position: relative;
    right: 66.66667%;
    left: auto; }
  .push-9 {
    position: relative;
    left: 75%;
    right: auto; }
  .pull-9 {
    position: relative;
    right: 75%;
    left: auto; }
  .push-10 {
    position: relative;
    left: 83.33333%;
    right: auto; }
  .pull-10 {
    position: relative;
    right: 83.33333%;
    left: auto; }
  .push-11 {
    position: relative;
    left: 91.66667%;
    right: auto; }
  .pull-11 {
    position: relative;
    right: 91.66667%;
    left: auto; } }

.inline-list {
  margin: 0 auto 1.0625rem auto;
  margin-left: -1.375rem;
  margin-right: 0;
  padding: 0;
  list-style: none;
  overflow: hidden; }
  .inline-list > li {
    list-style: none;
    float: left;
    margin-left: 1.375rem;
    display: block; }
    .inline-list > li > * {
      display: block; }

table {
  background: #ffffff;
  margin-bottom: 1.25rem;
  border: solid 0 rgba(51, 51, 51, 0.4);
  table-layout: auto; }
  table caption {
    background: transparent;
    color: #333333;
    font-size: 1rem;
    font-weight: bold; }
  table thead {
    background: #f7f7f7; }
    table thead tr th,
    table thead tr td {
      padding: 0.5rem 0.625rem 0.625rem;
      font-size: 0.875rem;
      font-weight: bold;
      color: #333333; }
  table tfoot {
    background: #f7f7f7; }
    table tfoot tr th,
    table tfoot tr td {
      padding: 0.5rem 0.625rem 0.625rem;
      font-size: 0.875rem;
      font-weight: bold;
      color: #333333; }
  table tr th,
  table tr td {
    padding: 0.5625rem 0.625rem;
    font-size: 0.875rem;
    color: #333333;
    text-align: left; }
  table tr.even, table tr.alt, table tr:nth-of-type(even) {
    background: #f2f2f2; }
  table thead tr th,
  table tfoot tr th,
  table tfoot tr td,
  table tbody tr th,
  table tbody tr td,
  table tr td {
    display: table-cell;
    line-height: 1.125rem; }

.tabs {
  margin-bottom: 0 !important;
  margin-left: 0; }
  .tabs:before, .tabs:after {
    content: " ";
    display: table; }
  .tabs:after {
    clear: both; }
  .tabs dd, .tabs .tab-title {
    position: relative;
    margin-bottom: 0 !important;
    list-style: none;
    float: left; }
    .tabs dd > a, .tabs .tab-title > a {
      display: block;
      background-color: #e6e6e6;
      color: #1a1a1a;
      padding: 0.4rem 0.8rem;
      font-family:  'Bitter', serif;
      font-size: 1rem; }
      .tabs dd > a:hover, .tabs .tab-title > a:hover {
        background-color: #bfbfbf; }
      .tabs dd > a:focus, .tabs .tab-title > a:focus {
        outline: none; }
    .tabs dd.active a, .tabs .tab-title.active a {
      background-color: #000;
      color: white; }
  .tabs.radius dd:first-child a, .tabs.radius .tab:first-child a {
    -webkit-border-bottom-left-radius: 0px;
    -webkit-border-top-left-radius: 0px;
    border-bottom-left-radius: 0px;
    border-top-left-radius: 0px; }
  .tabs.radius dd:last-child a, .tabs.radius .tab:last-child a {
    -webkit-border-bottom-right-radius: 0px;
    -webkit-border-top-right-radius: 0px;
    border-bottom-right-radius: 0px;
    border-top-right-radius: 0px; }
  .tabs.vertical dd, .tabs.vertical .tab-title {
    position: inherit;
    float: none;
    display: block;
    top: auto; }

.tabs-content {
  margin-bottom: 1.5rem;
  width: 100%; }
  .tabs-content:before, .tabs-content:after {
    content: " ";
    display: table; }
  .tabs-content:after {
    clear: both; }
  .tabs-content > .content {
    display: none;
    float: left;
    padding: 0.5rem 0;
    width: 100%; }
    .tabs-content > .content.active {
      display: block;
      float: none; }
    .tabs-content > .content.contained {
      padding: 0.5rem; }
  .tabs-content.vertical {
    display: block; }
    .tabs-content.vertical > .content {
      padding: 0 0.5rem; }

@media only screen and (min-width: 40em) {
  .tabs.vertical {
    width: 20%;
    max-width: 20%;
    float: left;
    margin: 0 0 1.25rem; }
  .tabs-content.vertical {
    width: 80%;
    max-width: 80%;
    float: left;
    margin-left: -1px;
    padding-left: 1rem; } }

.no-js .tabs-content > .content {
  display: block;
  float: none; }

/* Image Thumbnails */
.th {
  line-height: 0;
  display: inline-block;
  border: solid 4px #FFFFFF;
  max-width: 100%;
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.2);
  transition: all 200ms ease-out; }
  .th:hover, .th:focus {
    box-shadow: 0 0 6px 1px rgba(204, 38, 38, 0.5); }
  .th.radius {
    border-radius: 0px; }

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

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

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

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

@media only screen and (max-width: 39.9375em) {
  .small-only-text-left {
    text-align: left !important; }
  .small-only-text-right {
    text-align: right !important; }
  .small-only-text-center {
    text-align: center !important; }
  .small-only-text-justify {
    text-align: justify !important; } }

@media only screen {
  .small-text-left {
    text-align: left !important; }
  .small-text-right {
    text-align: right !important; }
  .small-text-center {
    text-align: center !important; }
  .small-text-justify {
    text-align: justify !important; } }

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

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

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

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

@media only screen and (min-width: 90em) and (max-width: 119.9375em) {
  .xlarge-only-text-left {
    text-align: left !important; }
  .xlarge-only-text-right {
    text-align: right !important; }
  .xlarge-only-text-center {
    text-align: center !important; }
  .xlarge-only-text-justify {
    text-align: justify !important; } }

@media only screen and (min-width: 90em) {
  .xlarge-text-left {
    text-align: left !important; }
  .xlarge-text-right {
    text-align: right !important; }
  .xlarge-text-center {
    text-align: center !important; }
  .xlarge-text-justify {
    text-align: justify !important; } }

@media only screen and (min-width: 120em) and (max-width: 99999999em) {
  .xxlarge-only-text-left {
    text-align: left !important; }
  .xxlarge-only-text-right {
    text-align: right !important; }
  .xxlarge-only-text-center {
    text-align: center !important; }
  .xxlarge-only-text-justify {
    text-align: justify !important; } }

@media only screen and (min-width: 120em) {
  .xxlarge-text-left {
    text-align: left !important; }
  .xxlarge-text-right {
    text-align: right !important; }
  .xxlarge-text-center {
    text-align: center !important; }
  .xxlarge-text-justify {
    text-align: justify !important; } }

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

/* Default Link Styles */
a {
  color: #cc2626;
  text-decoration: none;
  line-height: inherit; }
  a:hover, a:focus {
    color: #af2121; }
  a img {
    border: none; }

/* Default paragraph styles */
p {
  font-family: inherit;
  font-weight: normal;
  font-size: 1rem;
  line-height: 1.5;
  margin-bottom: 1.25rem;
  text-rendering: optimizeLegibility; }
  p.lead {
    font-size: 1.21875rem;
    line-height: 1.6; }
  p aside {
    font-size: 0.875rem;
    line-height: 1.35;
    font-style: italic; }

/* Default header styles */
h1, h2, h3, h4, h5, h6 {
  font-family:  'Noto Sans', sans-serif;
  font-weight: normal;
  font-style: normal;
  color: #212121;
  text-rendering: optimizeLegibility;
  margin-top: 0.2rem;
  margin-bottom: 0.5rem;
  line-height: 1.4; }
  h1 small, h2 small, h3 small, h4 small, h5 small, h6 small {
    font-size: 80%;
    color: #6f6f6f;
    line-height: 0; }

h1 {
  font-size: 2.125rem; }

h2 {
  font-size: 0.75rem; }

h3 {
  font-size: 1.375rem; }

h4 {
  font-size: 1.125rem; }

h5 {
  font-size: 1.125rem; }

h6 {
  font-size: 1rem; }

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

hr {
  border: solid #DDDDDD;
  border-width: 1px 0 0;
  clear: both;
  margin: 1.25rem 0 1.1875rem;
  height: 0; }

/* Helpful Typography Defaults */
em,
i {
  font-style: italic;
  line-height: inherit; }

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

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

code {
  font-family: Consolas, "Liberation Mono", Courier, monospace;
  font-weight: normal;
  color: #333333;
  background-color: #f8f8f8;
  border-width: 1px;
  border-style: solid;
  border-color: #dfdfdf;
  padding: 0.125rem 0.3125rem 0.0625rem; }

/* Lists */
ul,
ol,
dl {
  font-size: 1rem;
  line-height: 1.5;
  margin-bottom: 1.25rem;
  list-style-position: outside;
  font-family: inherit; }

ul {
  margin-left: 1.1rem; }
  ul.no-bullet {
    margin-left: 0; }
    ul.no-bullet li ul,
    ul.no-bullet li ol {
      margin-left: 1.25rem;
      margin-bottom: 0;
      list-style: none; }

/* Unordered Lists */
ul li ul,
ul li ol {
  margin-left: 1.25rem;
  margin-bottom: 0; }

ul.square li ul, ul.circle li ul, ul.disc li ul {
  list-style: inherit; }

ul.square {
  list-style-type: square;
  margin-left: 1.1rem; }

ul.circle {
  list-style-type: circle;
  margin-left: 1.1rem; }

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

ul.no-bullet {
  list-style: none; }

/* Ordered Lists */
ol {
  margin-left: 1.4rem; }
  ol li ul,
  ol li ol {
    margin-left: 1.25rem;
    margin-bottom: 0; }

/* Definition Lists */
dl dt {
  margin-bottom: 0.3rem;
  font-weight: bold; }

dl dd {
  margin-bottom: 0.75rem; }

/* Abbreviations */
abbr,
acronym {
  text-transform: uppercase;
  font-size: 90%;
  color: #333333;
  cursor: help; }

abbr {
  text-transform: none; }
  abbr[title] {
    border-bottom: 1px dotted #DDDDDD; }

/* Blockquotes */
blockquote {
  margin: 0 0 1.25rem;
  padding: 0.5625rem 1.25rem 0 1.1875rem;
  border-left: 1px solid #DDDDDD; }
  blockquote cite {
    display: block;
    font-size: 0.8125rem;
    color: #545454; }
    blockquote cite:before {
      content: "\2014 \0020"; }
    blockquote cite a,
    blockquote cite a:visited {
      color: #545454; }

blockquote,
blockquote p {
  line-height: 1.5;
  color: #6f6f6f; }

/* Microformats */
.vcard {
  display: inline-block;
  margin: 0 0 1.25rem 0;
  border: 1px solid #DDDDDD;
  padding: 0.625rem 0.75rem; }
  .vcard li {
    margin: 0;
    display: block; }
  .vcard .fn {
    font-weight: bold;
    font-size: 0.9375rem; }

.vevent .summary {
  font-weight: bold; }

.vevent abbr {
  cursor: default;
  text-decoration: none;
  font-weight: bold;
  border: none;
  padding: 0 0.0625rem; }

@media only screen and (min-width: 40em) {
  h1, h2, h3, h4, h5, h6 {
    line-height: 1.4; }
  h1 {
    font-size: 2.75rem; }
  h2 {
    font-size: 1.375rem; }
  h3 {
    font-size: 1.6875rem; }
  h4 {
    font-size: 1.4375rem; }
  h5 {
    font-size: 1.125rem; }
  h6 {
    font-size: 1rem; } }

/* small displays */
@media only screen {
  .show-for-small-only, .show-for-small-up, .show-for-small, .show-for-small-down, .hide-for-medium-only, .hide-for-medium-up, .hide-for-medium, .show-for-medium-down, .hide-for-large-only, .hide-for-large-up, .hide-for-large, .show-for-large-down, .hide-for-xlarge-only, .hide-for-xlarge-up, .hide-for-xlarge, .show-for-xlarge-down, .hide-for-xxlarge-only, .hide-for-xxlarge-up, .hide-for-xxlarge, .show-for-xxlarge-down {
    display: inherit !important; }
  .hide-for-small-only, .hide-for-small-up, .hide-for-small, .hide-for-small-down, .show-for-medium-only, .show-for-medium-up, .show-for-medium, .hide-for-medium-down, .show-for-large-only, .show-for-large-up, .show-for-large, .hide-for-large-down, .show-for-xlarge-only, .show-for-xlarge-up, .show-for-xlarge, .hide-for-xlarge-down, .show-for-xxlarge-only, .show-for-xxlarge-up, .show-for-xxlarge, .hide-for-xxlarge-down {
    display: none !important; }
  .visible-for-small-only, .visible-for-small-up, .visible-for-small, .visible-for-small-down, .hidden-for-medium-only, .hidden-for-medium-up, .hidden-for-medium, .visible-for-medium-down, .hidden-for-large-only, .hidden-for-large-up, .hidden-for-large, .visible-for-large-down, .hidden-for-xlarge-only, .hidden-for-xlarge-up, .hidden-for-xlarge, .visible-for-xlarge-down, .hidden-for-xxlarge-only, .hidden-for-xxlarge-up, .hidden-for-xxlarge, .visible-for-xxlarge-down {
    position: static !important;
    height: auto;
    width: auto;
    overflow: visible;
    clip: auto; }
  .hidden-for-small-only, .hidden-for-small-up, .hidden-for-small, .hidden-for-small-down, .visible-for-medium-only, .visible-for-medium-up, .visible-for-medium, .hidden-for-medium-down, .visible-for-large-only, .visible-for-large-up, .visible-for-large, .hidden-for-large-down, .visible-for-xlarge-only, .visible-for-xlarge-up, .visible-for-xlarge, .hidden-for-xlarge-down, .visible-for-xxlarge-only, .visible-for-xxlarge-up, .visible-for-xxlarge, .hidden-for-xxlarge-down {
    position: absolute !important;
    height: 1px;
    width: 1px;
    overflow: hidden;
    clip: rect(1px, 1px, 1px, 1px); }
  table.show-for-small-only, table.show-for-small-up, table.show-for-small, table.show-for-small-down, table.hide-for-medium-only, table.hide-for-medium-up, table.hide-for-medium, table.show-for-medium-down, table.hide-for-large-only, table.hide-for-large-up, table.hide-for-large, table.show-for-large-down, table.hide-for-xlarge-only, table.hide-for-xlarge-up, table.hide-for-xlarge, table.show-for-xlarge-down, table.hide-for-xxlarge-only, table.hide-for-xxlarge-up, table.hide-for-xxlarge, table.show-for-xxlarge-down {
    display: table !important; }
  thead.show-for-small-only, thead.show-for-small-up, thead.show-for-small, thead.show-for-small-down, thead.hide-for-medium-only, thead.hide-for-medium-up, thead.hide-for-medium, thead.show-for-medium-down, thead.hide-for-large-only, thead.hide-for-large-up, thead.hide-for-large, thead.show-for-large-down, thead.hide-for-xlarge-only, thead.hide-for-xlarge-up, thead.hide-for-xlarge, thead.show-for-xlarge-down, thead.hide-for-xxlarge-only, thead.hide-for-xxlarge-up, thead.hide-for-xxlarge, thead.show-for-xxlarge-down {
    display: table-header-group !important; }
  tbody.show-for-small-only, tbody.show-for-small-up, tbody.show-for-small, tbody.show-for-small-down, tbody.hide-for-medium-only, tbody.hide-for-medium-up, tbody.hide-for-medium, tbody.show-for-medium-down, tbody.hide-for-large-only, tbody.hide-for-large-up, tbody.hide-for-large, tbody.show-for-large-down, tbody.hide-for-xlarge-only, tbody.hide-for-xlarge-up, tbody.hide-for-xlarge, tbody.show-for-xlarge-down, tbody.hide-for-xxlarge-only, tbody.hide-for-xxlarge-up, tbody.hide-for-xxlarge, tbody.show-for-xxlarge-down {
    display: table-row-group !important; }
  tr.show-for-small-only, tr.show-for-small-up, tr.show-for-small, tr.show-for-small-down, tr.hide-for-medium-only, tr.hide-for-medium-up, tr.hide-for-medium, tr.show-for-medium-down, tr.hide-for-large-only, tr.hide-for-large-up, tr.hide-for-large, tr.show-for-large-down, tr.hide-for-xlarge-only, tr.hide-for-xlarge-up, tr.hide-for-xlarge, tr.show-for-xlarge-down, tr.hide-for-xxlarge-only, tr.hide-for-xxlarge-up, tr.hide-for-xxlarge, tr.show-for-xxlarge-down {
    display: table-row; }
  th.show-for-small-only, td.show-for-small-only, th.show-for-small-up, td.show-for-small-up, th.show-for-small, td.show-for-small, th.show-for-small-down, td.show-for-small-down, th.hide-for-medium-only, td.hide-for-medium-only, th.hide-for-medium-up, td.hide-for-medium-up, th.hide-for-medium, td.hide-for-medium, th.show-for-medium-down, td.show-for-medium-down, th.hide-for-large-only, td.hide-for-large-only, th.hide-for-large-up, td.hide-for-large-up, th.hide-for-large, td.hide-for-large, th.show-for-large-down, td.show-for-large-down, th.hide-for-xlarge-only, td.hide-for-xlarge-only, th.hide-for-xlarge-up, td.hide-for-xlarge-up, th.hide-for-xlarge, td.hide-for-xlarge, th.show-for-xlarge-down, td.show-for-xlarge-down, th.hide-for-xxlarge-only, td.hide-for-xxlarge-only, th.hide-for-xxlarge-up, td.hide-for-xxlarge-up, th.hide-for-xxlarge, td.hide-for-xxlarge, th.show-for-xxlarge-down, td.show-for-xxlarge-down {
    display: table-cell !important; } }

/* medium displays */
@media only screen and (min-width: 40em) {
  .hide-for-small-only, .show-for-small-up, .hide-for-small, .hide-for-small-down, .show-for-medium-only, .show-for-medium-up, .show-for-medium, .show-for-medium-down, .hide-for-large-only, .hide-for-large-up, .hide-for-large, .show-for-large-down, .hide-for-xlarge-only, .hide-for-xlarge-up, .hide-for-xlarge, .show-for-xlarge-down, .hide-for-xxlarge-only, .hide-for-xxlarge-up, .hide-for-xxlarge, .show-for-xxlarge-down {
    display: inherit !important; }
  .show-for-small-only, .hide-for-small-up, .show-for-small, .show-for-small-down, .hide-for-medium-only, .hide-for-medium-up, .hide-for-medium, .hide-for-medium-down, .show-for-large-only, .show-for-large-up, .show-for-large, .hide-for-large-down, .show-for-xlarge-only, .show-for-xlarge-up, .show-for-xlarge, .hide-for-xlarge-down, .show-for-xxlarge-only, .show-for-xxlarge-up, .show-for-xxlarge, .hide-for-xxlarge-down {
    display: none !important; }
  .hidden-for-small-only, .visible-for-small-up, .hidden-for-small, .hidden-for-small-down, .visible-for-medium-only, .visible-for-medium-up, .visible-for-medium, .visible-for-medium-down, .hidden-for-large-only, .hidden-for-large-up, .hidden-for-large, .visible-for-large-down, .hidden-for-xlarge-only, .hidden-for-xlarge-up, .hidden-for-xlarge, .visible-for-xlarge-down, .hidden-for-xxlarge-only, .hidden-for-xxlarge-up, .hidden-for-xxlarge, .visible-for-xxlarge-down {
    position: static !important;
    height: auto;
    width: auto;
    overflow: visible;
    clip: auto; }
  .visible-for-small-only, .hidden-for-small-up, .visible-for-small, .visible-for-small-down, .hidden-for-medium-only, .hidden-for-medium-up, .hidden-for-medium, .hidden-for-medium-down, .visible-for-large-only, .visible-for-large-up, .visible-for-large, .hidden-for-large-down, .visible-for-xlarge-only, .visible-for-xlarge-up, .visible-for-xlarge, .hidden-for-xlarge-down, .visible-for-xxlarge-only, .visible-for-xxlarge-up, .visible-for-xxlarge, .hidden-for-xxlarge-down {
    position: absolute !important;
    height: 1px;
    width: 1px;
    overflow: hidden;
    clip: rect(1px, 1px, 1px, 1px); }
  table.hide-for-small-only, table.show-for-small-up, table.hide-for-small, table.hide-for-small-down, table.show-for-medium-only, table.show-for-medium-up, table.show-for-medium, table.show-for-medium-down, table.hide-for-large-only, table.hide-for-large-up, table.hide-for-large, table.show-for-large-down, table.hide-for-xlarge-only, table.hide-for-xlarge-up, table.hide-for-xlarge, table.show-for-xlarge-down, table.hide-for-xxlarge-only, table.hide-for-xxlarge-up, table.hide-for-xxlarge, table.show-for-xxlarge-down {
    display: table !important; }
  thead.hide-for-small-only, thead.show-for-small-up, thead.hide-for-small, thead.hide-for-small-down, thead.show-for-medium-only, thead.show-for-medium-up, thead.show-for-medium, thead.show-for-medium-down, thead.hide-for-large-only, thead.hide-for-large-up, thead.hide-for-large, thead.show-for-large-down, thead.hide-for-xlarge-only, thead.hide-for-xlarge-up, thead.hide-for-xlarge, thead.show-for-xlarge-down, thead.hide-for-xxlarge-only, thead.hide-for-xxlarge-up, thead.hide-for-xxlarge, thead.show-for-xxlarge-down {
    display: table-header-group !important; }
  tbody.hide-for-small-only, tbody.show-for-small-up, tbody.hide-for-small, tbody.hide-for-small-down, tbody.show-for-medium-only, tbody.show-for-medium-up, tbody.show-for-medium, tbody.show-for-medium-down, tbody.hide-for-large-only, tbody.hide-for-large-up, tbody.hide-for-large, tbody.show-for-large-down, tbody.hide-for-xlarge-only, tbody.hide-for-xlarge-up, tbody.hide-for-xlarge, tbody.show-for-xlarge-down, tbody.hide-for-xxlarge-only, tbody.hide-for-xxlarge-up, tbody.hide-for-xxlarge, tbody.show-for-xxlarge-down {
    display: table-row-group !important; }
  tr.hide-for-small-only, tr.show-for-small-up, tr.hide-for-small, tr.hide-for-small-down, tr.show-for-medium-only, tr.show-for-medium-up, tr.show-for-medium, tr.show-for-medium-down, tr.hide-for-large-only, tr.hide-for-large-up, tr.hide-for-large, tr.show-for-large-down, tr.hide-for-xlarge-only, tr.hide-for-xlarge-up, tr.hide-for-xlarge, tr.show-for-xlarge-down, tr.hide-for-xxlarge-only, tr.hide-for-xxlarge-up, tr.hide-for-xxlarge, tr.show-for-xxlarge-down {
    display: table-row; }
  th.hide-for-small-only, td.hide-for-small-only, th.show-for-small-up, td.show-for-small-up, th.hide-for-small, td.hide-for-small, th.hide-for-small-down, td.hide-for-small-down, th.show-for-medium-only, td.show-for-medium-only, th.show-for-medium-up, td.show-for-medium-up, th.show-for-medium, td.show-for-medium, th.show-for-medium-down, td.show-for-medium-down, th.hide-for-large-only, td.hide-for-large-only, th.hide-for-large-up, td.hide-for-large-up, th.hide-for-large, td.hide-for-large, th.show-for-large-down, td.show-for-large-down, th.hide-for-xlarge-only, td.hide-for-xlarge-only, th.hide-for-xlarge-up, td.hide-for-xlarge-up, th.hide-for-xlarge, td.hide-for-xlarge, th.show-for-xlarge-down, td.show-for-xlarge-down, th.hide-for-xxlarge-only, td.hide-for-xxlarge-only, th.hide-for-xxlarge-up, td.hide-for-xxlarge-up, th.hide-for-xxlarge, td.hide-for-xxlarge, th.show-for-xxlarge-down, td.show-for-xxlarge-down {
    display: table-cell !important; } }

/* large displays */
@media only screen and (min-width: 64em) {
  .hide-for-small-only, .show-for-small-up, .hide-for-small, .hide-for-small-down, .hide-for-medium-only, .show-for-medium-up, .hide-for-medium, .hide-for-medium-down, .show-for-large-only, .show-for-large-up, .show-for-large, .show-for-large-down, .hide-for-xlarge-only, .hide-for-xlarge-up, .hide-for-xlarge, .show-for-xlarge-down, .hide-for-xxlarge-only, .hide-for-xxlarge-up, .hide-for-xxlarge, .show-for-xxlarge-down {
    display: inherit !important; }
  .show-for-small-only, .hide-for-small-up, .show-for-small, .show-for-small-down, .show-for-medium-only, .hide-for-medium-up, .show-for-medium, .show-for-medium-down, .hide-for-large-only, .hide-for-large-up, .hide-for-large, .hide-for-large-down, .show-for-xlarge-only, .show-for-xlarge-up, .show-for-xlarge, .hide-for-xlarge-down, .show-for-xxlarge-only, .show-for-xxlarge-up, .show-for-xxlarge, .hide-for-xxlarge-down {
    display: none !important; }
  .hidden-for-small-only, .visible-for-small-up, .hidden-for-small, .hidden-for-small-down, .hidden-for-medium-only, .visible-for-medium-up, .hidden-for-medium, .hidden-for-medium-down, .visible-for-large-only, .visible-for-large-up, .visible-for-large, .visible-for-large-down, .hidden-for-xlarge-only, .hidden-for-xlarge-up, .hidden-for-xlarge, .visible-for-xlarge-down, .hidden-for-xxlarge-only, .hidden-for-xxlarge-up, .hidden-for-xxlarge, .visible-for-xxlarge-down {
    position: static !important;
    height: auto;
    width: auto;
    overflow: visible;
    clip: auto; }
  .visible-for-small-only, .hidden-for-small-up, .visible-for-small, .visible-for-small-down, .visible-for-medium-only, .hidden-for-medium-up, .visible-for-medium, .visible-for-medium-down, .hidden-for-large-only, .hidden-for-large-up, .hidden-for-large, .hidden-for-large-down, .visible-for-xlarge-only, .visible-for-xlarge-up, .visible-for-xlarge, .hidden-for-xlarge-down, .visible-for-xxlarge-only, .visible-for-xxlarge-up, .visible-for-xxlarge, .hidden-for-xxlarge-down {
    position: absolute !important;
    height: 1px;
    width: 1px;
    overflow: hidden;
    clip: rect(1px, 1px, 1px, 1px); }
  table.hide-for-small-only, table.show-for-small-up, table.hide-for-small, table.hide-for-small-down, table.hide-for-medium-only, table.show-for-medium-up, table.hide-for-medium, table.hide-for-medium-down, table.show-for-large-only, table.show-for-large-up, table.show-for-large, table.show-for-large-down, table.hide-for-xlarge-only, table.hide-for-xlarge-up, table.hide-for-xlarge, table.show-for-xlarge-down, table.hide-for-xxlarge-only, table.hide-for-xxlarge-up, table.hide-for-xxlarge, table.show-for-xxlarge-down {
    display: table !important; }
  thead.hide-for-small-only, thead.show-for-small-up, thead.hide-for-small, thead.hide-for-small-down, thead.hide-for-medium-only, thead.show-for-medium-up, thead.hide-for-medium, thead.hide-for-medium-down, thead.show-for-large-only, thead.show-for-large-up, thead.show-for-large, thead.show-for-large-down, thead.hide-for-xlarge-only, thead.hide-for-xlarge-up, thead.hide-for-xlarge, thead.show-for-xlarge-down, thead.hide-for-xxlarge-only, thead.hide-for-xxlarge-up, thead.hide-for-xxlarge, thead.show-for-xxlarge-down {
    display: table-header-group !important; }
  tbody.hide-for-small-only, tbody.show-for-small-up, tbody.hide-for-small, tbody.hide-for-small-down, tbody.hide-for-medium-only, tbody.show-for-medium-up, tbody.hide-for-medium, tbody.hide-for-medium-down, tbody.show-for-large-only, tbody.show-for-large-up, tbody.show-for-large, tbody.show-for-large-down, tbody.hide-for-xlarge-only, tbody.hide-for-xlarge-up, tbody.hide-for-xlarge, tbody.show-for-xlarge-down, tbody.hide-for-xxlarge-only, tbody.hide-for-xxlarge-up, tbody.hide-for-xxlarge, tbody.show-for-xxlarge-down {
    display: table-row-group !important; }
  tr.hide-for-small-only, tr.show-for-small-up, tr.hide-for-small, tr.hide-for-small-down, tr.hide-for-medium-only, tr.show-for-medium-up, tr.hide-for-medium, tr.hide-for-medium-down, tr.show-for-large-only, tr.show-for-large-up, tr.show-for-large, tr.show-for-large-down, tr.hide-for-xlarge-only, tr.hide-for-xlarge-up, tr.hide-for-xlarge, tr.show-for-xlarge-down, tr.hide-for-xxlarge-only, tr.hide-for-xxlarge-up, tr.hide-for-xxlarge, tr.show-for-xxlarge-down {
    display: table-row; }
  th.hide-for-small-only, td.hide-for-small-only, th.show-for-small-up, td.show-for-small-up, th.hide-for-small, td.hide-for-small, th.hide-for-small-down, td.hide-for-small-down, th.hide-for-medium-only, td.hide-for-medium-only, th.show-for-medium-up, td.show-for-medium-up, th.hide-for-medium, td.hide-for-medium, th.hide-for-medium-down, td.hide-for-medium-down, th.show-for-large-only, td.show-for-large-only, th.show-for-large-up, td.show-for-large-up, th.show-for-large, td.show-for-large, th.show-for-large-down, td.show-for-large-down, th.hide-for-xlarge-only, td.hide-for-xlarge-only, th.hide-for-xlarge-up, td.hide-for-xlarge-up, th.hide-for-xlarge, td.hide-for-xlarge, th.show-for-xlarge-down, td.show-for-xlarge-down, th.hide-for-xxlarge-only, td.hide-for-xxlarge-only, th.hide-for-xxlarge-up, td.hide-for-xxlarge-up, th.hide-for-xxlarge, td.hide-for-xxlarge, th.show-for-xxlarge-down, td.show-for-xxlarge-down {
    display: table-cell !important; } }

/* xlarge displays */
@media only screen and (min-width: 90em) {
  .hide-for-small-only, .show-for-small-up, .hide-for-small, .hide-for-small-down, .hide-for-medium-only, .show-for-medium-up, .hide-for-medium, .hide-for-medium-down, .hide-for-large-only, .show-for-large-up, .hide-for-large, .hide-for-large-down, .show-for-xlarge-only, .show-for-xlarge-up, .show-for-xlarge, .show-for-xlarge-down, .hide-for-xxlarge-only, .hide-for-xxlarge-up, .hide-for-xxlarge, .show-for-xxlarge-down {
    display: inherit !important; }
  .show-for-small-only, .hide-for-small-up, .show-for-small, .show-for-small-down, .show-for-medium-only, .hide-for-medium-up, .show-for-medium, .show-for-medium-down, .show-for-large-only, .hide-for-large-up, .show-for-large, .show-for-large-down, .hide-for-xlarge-only, .hide-for-xlarge-up, .hide-for-xlarge, .hide-for-xlarge-down, .show-for-xxlarge-only, .show-for-xxlarge-up, .show-for-xxlarge, .hide-for-xxlarge-down {
    display: none !important; }
  .hidden-for-small-only, .visible-for-small-up, .hidden-for-small, .hidden-for-small-down, .hidden-for-medium-only, .visible-for-medium-up, .hidden-for-medium, .hidden-for-medium-down, .hidden-for-large-only, .visible-for-large-up, .hidden-for-large, .hidden-for-large-down, .visible-for-xlarge-only, .visible-for-xlarge-up, .visible-for-xlarge, .visible-for-xlarge-down, .hidden-for-xxlarge-only, .hidden-for-xxlarge-up, .hidden-for-xxlarge, .visible-for-xxlarge-down {
    position: static !important;
    height: auto;
    width: auto;
    overflow: visible;
    clip: auto; }
  .visible-for-small-only, .hidden-for-small-up, .visible-for-small, .visible-for-small-down, .visible-for-medium-only, .hidden-for-medium-up, .visible-for-medium, .visible-for-medium-down, .visible-for-large-only, .hidden-for-large-up, .visible-for-large, .visible-for-large-down, .hidden-for-xlarge-only, .hidden-for-xlarge-up, .hidden-for-xlarge, .hidden-for-xlarge-down, .visible-for-xxlarge-only, .visible-for-xxlarge-up, .visible-for-xxlarge, .hidden-for-xxlarge-down {
    position: absolute !important;
    height: 1px;
    width: 1px;
    overflow: hidden;
    clip: rect(1px, 1px, 1px, 1px); }
  table.hide-for-small-only, table.show-for-small-up, table.hide-for-small, table.hide-for-small-down, table.hide-for-medium-only, table.show-for-medium-up, table.hide-for-medium, table.hide-for-medium-down, table.hide-for-large-only, table.show-for-large-up, table.hide-for-large, table.hide-for-large-down, table.show-for-xlarge-only, table.show-for-xlarge-up, table.show-for-xlarge, table.show-for-xlarge-down, table.hide-for-xxlarge-only, table.hide-for-xxlarge-up, table.hide-for-xxlarge, table.show-for-xxlarge-down {
    display: table !important; }
  thead.hide-for-small-only, thead.show-for-small-up, thead.hide-for-small, thead.hide-for-small-down, thead.hide-for-medium-only, thead.show-for-medium-up, thead.hide-for-medium, thead.hide-for-medium-down, thead.hide-for-large-only, thead.show-for-large-up, thead.hide-for-large, thead.hide-for-large-down, thead.show-for-xlarge-only, thead.show-for-xlarge-up, thead.show-for-xlarge, thead.show-for-xlarge-down, thead.hide-for-xxlarge-only, thead.hide-for-xxlarge-up, thead.hide-for-xxlarge, thead.show-for-xxlarge-down {
    display: table-header-group !important; }
  tbody.hide-for-small-only, tbody.show-for-small-up, tbody.hide-for-small, tbody.hide-for-small-down, tbody.hide-for-medium-only, tbody.show-for-medium-up, tbody.hide-for-medium, tbody.hide-for-medium-down, tbody.hide-for-large-only, tbody.show-for-large-up, tbody.hide-for-large, tbody.hide-for-large-down, tbody.show-for-xlarge-only, tbody.show-for-xlarge-up, tbody.show-for-xlarge, tbody.show-for-xlarge-down, tbody.hide-for-xxlarge-only, tbody.hide-for-xxlarge-up, tbody.hide-for-xxlarge, tbody.show-for-xxlarge-down {
    display: table-row-group !important; }
  tr.hide-for-small-only, tr.show-for-small-up, tr.hide-for-small, tr.hide-for-small-down, tr.hide-for-medium-only, tr.show-for-medium-up, tr.hide-for-medium, tr.hide-for-medium-down, tr.hide-for-large-only, tr.show-for-large-up, tr.hide-for-large, tr.hide-for-large-down, tr.show-for-xlarge-only, tr.show-for-xlarge-up, tr.show-for-xlarge, tr.show-for-xlarge-down, tr.hide-for-xxlarge-only, tr.hide-for-xxlarge-up, tr.hide-for-xxlarge, tr.show-for-xxlarge-down {
    display: table-row; }
  th.hide-for-small-only, td.hide-for-small-only, th.show-for-small-up, td.show-for-small-up, th.hide-for-small, td.hide-for-small, th.hide-for-small-down, td.hide-for-small-down, th.hide-for-medium-only, td.hide-for-medium-only, th.show-for-medium-up, td.show-for-medium-up, th.hide-for-medium, td.hide-for-medium, th.hide-for-medium-down, td.hide-for-medium-down, th.hide-for-large-only, td.hide-for-large-only, th.show-for-large-up, td.show-for-large-up, th.hide-for-large, td.hide-for-large, th.hide-for-large-down, td.hide-for-large-down, th.show-for-xlarge-only, td.show-for-xlarge-only, th.show-for-xlarge-up, td.show-for-xlarge-up, th.show-for-xlarge, td.show-for-xlarge, th.show-for-xlarge-down, td.show-for-xlarge-down, th.hide-for-xxlarge-only, td.hide-for-xxlarge-only, th.hide-for-xxlarge-up, td.hide-for-xxlarge-up, th.hide-for-xxlarge, td.hide-for-xxlarge, th.show-for-xxlarge-down, td.show-for-xxlarge-down {
    display: table-cell !important; } }

/* xxlarge displays */
@media only screen and (min-width: 120em) {
  .hide-for-small-only, .show-for-small-up, .hide-for-small, .hide-for-small-down, .hide-for-medium-only, .show-for-medium-up, .hide-for-medium, .hide-for-medium-down, .hide-for-large-only, .show-for-large-up, .hide-for-large, .hide-for-large-down, .hide-for-xlarge-only, .show-for-xlarge-up, .hide-for-xlarge, .hide-for-xlarge-down, .show-for-xxlarge-only, .show-for-xxlarge-up, .show-for-xxlarge, .show-for-xxlarge-down {
    display: inherit !important; }
  .show-for-small-only, .hide-for-small-up, .show-for-small, .show-for-small-down, .show-for-medium-only, .hide-for-medium-up, .show-for-medium, .show-for-medium-down, .show-for-large-only, .hide-for-large-up, .show-for-large, .show-for-large-down, .show-for-xlarge-only, .hide-for-xlarge-up, .show-for-xlarge, .show-for-xlarge-down, .hide-for-xxlarge-only, .hide-for-xxlarge-up, .hide-for-xxlarge, .hide-for-xxlarge-down {
    display: none !important; }
  .hidden-for-small-only, .visible-for-small-up, .hidden-for-small, .hidden-for-small-down, .hidden-for-medium-only, .visible-for-medium-up, .hidden-for-medium, .hidden-for-medium-down, .hidden-for-large-only, .visible-for-large-up, .hidden-for-large, .hidden-for-large-down, .hidden-for-xlarge-only, .visible-for-xlarge-up, .hidden-for-xlarge, .hidden-for-xlarge-down, .visible-for-xxlarge-only, .visible-for-xxlarge-up, .visible-for-xxlarge, .visible-for-xxlarge-down {
    position: static !important;
    height: auto;
    width: auto;
    overflow: visible;
    clip: auto; }
  .visible-for-small-only, .hidden-for-small-up, .visible-for-small, .visible-for-small-down, .visible-for-medium-only, .hidden-for-medium-up, .visible-for-medium, .visible-for-medium-down, .visible-for-large-only, .hidden-for-large-up, .visible-for-large, .visible-for-large-down, .visible-for-xlarge-only, .hidden-for-xlarge-up, .visible-for-xlarge, .visible-for-xlarge-down, .hidden-for-xxlarge-only, .hidden-for-xxlarge-up, .hidden-for-xxlarge, .hidden-for-xxlarge-down {
    position: absolute !important;
    height: 1px;
    width: 1px;
    overflow: hidden;
    clip: rect(1px, 1px, 1px, 1px); }
  table.hide-for-small-only, table.show-for-small-up, table.hide-for-small, table.hide-for-small-down, table.hide-for-medium-only, table.show-for-medium-up, table.hide-for-medium, table.hide-for-medium-down, table.hide-for-large-only, table.show-for-large-up, table.hide-for-large, table.hide-for-large-down, table.hide-for-xlarge-only, table.show-for-xlarge-up, table.hide-for-xlarge, table.hide-for-xlarge-down, table.show-for-xxlarge-only, table.show-for-xxlarge-up, table.show-for-xxlarge, table.show-for-xxlarge-down {
    display: table !important; }
  thead.hide-for-small-only, thead.show-for-small-up, thead.hide-for-small, thead.hide-for-small-down, thead.hide-for-medium-only, thead.show-for-medium-up, thead.hide-for-medium, thead.hide-for-medium-down, thead.hide-for-large-only, thead.show-for-large-up, thead.hide-for-large, thead.hide-for-large-down, thead.hide-for-xlarge-only, thead.show-for-xlarge-up, thead.hide-for-xlarge, thead.hide-for-xlarge-down, thead.show-for-xxlarge-only, thead.show-for-xxlarge-up, thead.show-for-xxlarge, thead.show-for-xxlarge-down {
    display: table-header-group !important; }
  tbody.hide-for-small-only, tbody.show-for-small-up, tbody.hide-for-small, tbody.hide-for-small-down, tbody.hide-for-medium-only, tbody.show-for-medium-up, tbody.hide-for-medium, tbody.hide-for-medium-down, tbody.hide-for-large-only, tbody.show-for-large-up, tbody.hide-for-large, tbody.hide-for-large-down, tbody.hide-for-xlarge-only, tbody.show-for-xlarge-up, tbody.hide-for-xlarge, tbody.hide-for-xlarge-down, tbody.show-for-xxlarge-only, tbody.show-for-xxlarge-up, tbody.show-for-xxlarge, tbody.show-for-xxlarge-down {
    display: table-row-group !important; }
  tr.hide-for-small-only, tr.show-for-small-up, tr.hide-for-small, tr.hide-for-small-down, tr.hide-for-medium-only, tr.show-for-medium-up, tr.hide-for-medium, tr.hide-for-medium-down, tr.hide-for-large-only, tr.show-for-large-up, tr.hide-for-large, tr.hide-for-large-down, tr.hide-for-xlarge-only, tr.show-for-xlarge-up, tr.hide-for-xlarge, tr.hide-for-xlarge-down, tr.show-for-xxlarge-only, tr.show-for-xxlarge-up, tr.show-for-xxlarge, tr.show-for-xxlarge-down {
    display: table-row; }
  th.hide-for-small-only, td.hide-for-small-only, th.show-for-small-up, td.show-for-small-up, th.hide-for-small, td.hide-for-small, th.hide-for-small-down, td.hide-for-small-down, th.hide-for-medium-only, td.hide-for-medium-only, th.show-for-medium-up, td.show-for-medium-up, th.hide-for-medium, td.hide-for-medium, th.hide-for-medium-down, td.hide-for-medium-down, th.hide-for-large-only, td.hide-for-large-only, th.show-for-large-up, td.show-for-large-up, th.hide-for-large, td.hide-for-large, th.hide-for-large-down, td.hide-for-large-down, th.hide-for-xlarge-only, td.hide-for-xlarge-only, th.show-for-xlarge-up, td.show-for-xlarge-up, th.hide-for-xlarge, td.hide-for-xlarge, th.hide-for-xlarge-down, td.hide-for-xlarge-down, th.show-for-xxlarge-only, td.show-for-xxlarge-only, th.show-for-xxlarge-up, td.show-for-xxlarge-up, th.show-for-xxlarge, td.show-for-xxlarge, th.show-for-xxlarge-down, td.show-for-xxlarge-down {
    display: table-cell !important; } }

/* Orientation targeting */
.show-for-landscape,
.hide-for-portrait {
  display: inherit !important; }

.hide-for-landscape,
.show-for-portrait {
  display: none !important; }

/* Specific visibility for tables */
table.hide-for-landscape, table.show-for-portrait {
  display: table !important; }

thead.hide-for-landscape, thead.show-for-portrait {
  display: table-header-group !important; }

tbody.hide-for-landscape, tbody.show-for-portrait {
  display: table-row-group !important; }

tr.hide-for-landscape, tr.show-for-portrait {
  display: table-row !important; }

td.hide-for-landscape, td.show-for-portrait,
th.hide-for-landscape,
th.show-for-portrait {
  display: table-cell !important; }

@media only screen and (orientation: landscape) {
  .show-for-landscape,
  .hide-for-portrait {
    display: inherit !important; }
  .hide-for-landscape,
  .show-for-portrait {
    display: none !important; }
  /* Specific visibility for tables */
  table.show-for-landscape, table.hide-for-portrait {
    display: table !important; }
  thead.show-for-landscape, thead.hide-for-portrait {
    display: table-header-group !important; }
  tbody.show-for-landscape, tbody.hide-for-portrait {
    display: table-row-group !important; }
  tr.show-for-landscape, tr.hide-for-portrait {
    display: table-row !important; }
  td.show-for-landscape, td.hide-for-portrait,
  th.show-for-landscape,
  th.hide-for-portrait {
    display: table-cell !important; } }

@media only screen and (orientation: portrait) {
  .show-for-portrait,
  .hide-for-landscape {
    display: inherit !important; }
  .hide-for-portrait,
  .show-for-landscape {
    display: none !important; }
  /* Specific visibility for tables */
  table.show-for-portrait, table.hide-for-landscape {
    display: table !important; }
  thead.show-for-portrait, thead.hide-for-landscape {
    display: table-header-group !important; }
  tbody.show-for-portrait, tbody.hide-for-landscape {
    display: table-row-group !important; }
  tr.show-for-portrait, tr.hide-for-landscape {
    display: table-row !important; }
  td.show-for-portrait, td.hide-for-landscape,
  th.show-for-portrait,
  th.hide-for-landscape {
    display: table-cell !important; } }

/* Touch-enabled device targeting */
.show-for-touch {
  display: none !important; }

.hide-for-touch {
  display: inherit !important; }

.touch .show-for-touch {
  display: inherit !important; }

.touch .hide-for-touch {
  display: none !important; }

/* Specific visibility for tables */
table.hide-for-touch {
  display: table !important; }

.touch table.show-for-touch {
  display: table !important; }

thead.hide-for-touch {
  display: table-header-group !important; }

.touch thead.show-for-touch {
  display: table-header-group !important; }

tbody.hide-for-touch {
  display: table-row-group !important; }

.touch tbody.show-for-touch {
  display: table-row-group !important; }

tr.hide-for-touch {
  display: table-row !important; }

.touch tr.show-for-touch {
  display: table-row !important; }

td.hide-for-touch {
  display: table-cell !important; }

.touch td.show-for-touch {
  display: table-cell !important; }

th.hide-for-touch {
  display: table-cell !important; }

.touch th.show-for-touch {
  display: table-cell !important; }

/*
       * Print styles.
       *
       * Inlined to avoid required HTTP connection: www.phpied.com/delay-loading-your-print-css/
       * Credit to Paul Irish and HTML5 Boilerplate (html5boilerplate.com)
      */
.print-only {
  display: none !important; }

@media print {
  * {
    background: transparent !important;
    color: #000000 !important;
    /* Black prints faster: h5bp.com/s */
    box-shadow: none !important;
    text-shadow: none !important; }
  .show-for-print {
    display: block; }
  .hide-for-print {
    display: none; }
  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) ")"; }
  abbr[title]:after {
    content: " (" attr(title) ")"; }
  .ir a:after,
  a[href^="javascript:"]:after,
  a[href^="#"]:after {
    content: ""; }
  pre,
  blockquote {
    border: 1px solid #999999;
    page-break-inside: avoid; }
  thead {
    display: table-header-group;
    /* h5bp.com/t */ }
  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; }
  .hide-on-print {
    display: none !important; }
  .print-only {
    display: block !important; }
  .hide-for-print {
    display: none !important; }
  .show-for-print {
    display: inherit !important; } }

/* Print visibility */
@media print {
  .show-for-print {
    display: block; }
  .hide-for-print {
    display: none; }
  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; } }

.button-group {
  list-style: none;
  margin: 0;
  left: 0; }
  .button-group:before, .button-group:after {
    content: " ";
    display: table; }
  .button-group:after {
    clear: both; }
  .button-group.even-2 li {
    margin: 0 -2px;
    display: inline-block;
    width: 50%; }
    .button-group.even-2 li > button, .button-group.even-2 li .button {
      border-left: 1px solid;
      border-color: rgba(255, 255, 255, 0.5); }
    .button-group.even-2 li:first-child button, .button-group.even-2 li:first-child .button {
      border-left: 0; }
    .button-group.even-2 li button, .button-group.even-2 li .button {
      width: 100%; }
  .button-group.even-3 li {
    margin: 0 -2px;
    display: inline-block;
    width: 33.33333%; }
    .button-group.even-3 li > button, .button-group.even-3 li .button {
      border-left: 1px solid;
      border-color: rgba(255, 255, 255, 0.5); }
    .button-group.even-3 li:first-child button, .button-group.even-3 li:first-child .button {
      border-left: 0; }
    .button-group.even-3 li button, .button-group.even-3 li .button {
      width: 100%; }
  .button-group.even-4 li {
    margin: 0 -2px;
    display: inline-block;
    width: 25%; }
    .button-group.even-4 li > button, .button-group.even-4 li .button {
      border-left: 1px solid;
      border-color: rgba(255, 255, 255, 0.5); }
    .button-group.even-4 li:first-child button, .button-group.even-4 li:first-child .button {
      border-left: 0; }
    .button-group.even-4 li button, .button-group.even-4 li .button {
      width: 100%; }
  .button-group.even-5 li {
    margin: 0 -2px;
    display: inline-block;
    width: 20%; }
    .button-group.even-5 li > button, .button-group.even-5 li .button {
      border-left: 1px solid;
      border-color: rgba(255, 255, 255, 0.5); }
    .button-group.even-5 li:first-child button, .button-group.even-5 li:first-child .button {
      border-left: 0; }
    .button-group.even-5 li button, .button-group.even-5 li .button {
      width: 100%; }
  .button-group.even-6 li {
    margin: 0 -2px;
    display: inline-block;
    width: 16.66667%; }
    .button-group.even-6 li > button, .button-group.even-6 li .button {
      border-left: 1px solid;
      border-color: rgba(255, 255, 255, 0.5); }
    .button-group.even-6 li:first-child button, .button-group.even-6 li:first-child .button {
      border-left: 0; }
    .button-group.even-6 li button, .button-group.even-6 li .button {
      width: 100%; }
  .button-group.even-7 li {
    margin: 0 -2px;
    display: inline-block;
    width: 14.28571%; }
    .button-group.even-7 li > button, .button-group.even-7 li .button {
      border-left: 1px solid;
      border-color: rgba(255, 255, 255, 0.5); }
    .button-group.even-7 li:first-child button, .button-group.even-7 li:first-child .button {
      border-left: 0; }
    .button-group.even-7 li button, .button-group.even-7 li .button {
      width: 100%; }
  .button-group.even-8 li {
    margin: 0 -2px;
    display: inline-block;
    width: 12.5%; }
    .button-group.even-8 li > button, .button-group.even-8 li .button {
      border-left: 1px solid;
      border-color: rgba(255, 255, 255, 0.5); }
    .button-group.even-8 li:first-child button, .button-group.even-8 li:first-child .button {
      border-left: 0; }
    .button-group.even-8 li button, .button-group.even-8 li .button {
      width: 100%; }
  .button-group > li {
    margin: 0 -2px;
    display: inline-block; }
    .button-group > li > button, .button-group > li .button {
      border-left: 1px solid;
      border-color: rgba(255, 255, 255, 0.5); }
    .button-group > li:first-child button, .button-group > li:first-child .button {
      border-left: 0; }
  .button-group.stack > li {
    margin: 0 -2px;
    display: inline-block;
    display: block;
    margin: 0;
    float: none; }
    .button-group.stack > li > button, .button-group.stack > li .button {
      border-left: 1px solid;
      border-color: rgba(255, 255, 255, 0.5); }
    .button-group.stack > li:first-child button, .button-group.stack > li:first-child .button {
      border-left: 0; }
    .button-group.stack > li > button, .button-group.stack > li .button {
      border-top: 1px solid;
      border-color: rgba(255, 255, 255, 0.5);
      border-left-width: 0;
      margin: 0;
      display: block; }
    .button-group.stack > li > button {
      width: 100%; }
    .button-group.stack > li:first-child button, .button-group.stack > li:first-child .button {
      border-top: 0; }
  .button-group.stack-for-small > li {
    margin: 0 -2px;
    display: inline-block; }
    .button-group.stack-for-small > li > button, .button-group.stack-for-small > li .button {
      border-left: 1px solid;
      border-color: rgba(255, 255, 255, 0.5); }
    .button-group.stack-for-small > li:first-child button, .button-group.stack-for-small > li:first-child .button {
      border-left: 0; }
    @media only screen and (max-width: 39.9375em) {
      .button-group.stack-for-small > li {
        margin: 0 -2px;
        display: inline-block;
        display: block;
        margin: 0; }
        .button-group.stack-for-small > li > button, .button-group.stack-for-small > li .button {
          border-left: 1px solid;
          border-color: rgba(255, 255, 255, 0.5); }
        .button-group.stack-for-small > li:first-child button, .button-group.stack-for-small > li:first-child .button {
          border-left: 0; }
        .button-group.stack-for-small > li > button, .button-group.stack-for-small > li .button {
          border-top: 1px solid;
          border-color: rgba(255, 255, 255, 0.5);
          border-left-width: 0;
          margin: 0;
          display: block; }
        .button-group.stack-for-small > li > button {
          width: 100%; }
        .button-group.stack-for-small > li:first-child button, .button-group.stack-for-small > li:first-child .button {
          border-top: 0; } }
  .button-group.radius > * {
    margin: 0 -2px;
    display: inline-block; }
    .button-group.radius > * > button, .button-group.radius > * .button {
      border-left: 1px solid;
      border-color: rgba(255, 255, 255, 0.5); }
    .button-group.radius > *:first-child button, .button-group.radius > *:first-child .button {
      border-left: 0; }
    .button-group.radius > *,
    .button-group.radius > * > a,
    .button-group.radius > * > button,
    .button-group.radius > * > .button {
      border-radius: 0; }
    .button-group.radius > *:first-child,
    .button-group.radius > *:first-child > a,
    .button-group.radius > *:first-child > button,
    .button-group.radius > *:first-child > .button {
      -webkit-border-bottom-left-radius: 0px;
      -webkit-border-top-left-radius: 0px;
      border-bottom-left-radius: 0px;
      border-top-left-radius: 0px; }
    .button-group.radius > *:last-child,
    .button-group.radius > *:last-child > a,
    .button-group.radius > *:last-child > button,
    .button-group.radius > *:last-child > .button {
      -webkit-border-bottom-right-radius: 0px;
      -webkit-border-top-right-radius: 0px;
      border-bottom-right-radius: 0px;
      border-top-right-radius: 0px; }
  .button-group.radius.stack > * {
    margin: 0 -2px;
    display: inline-block;
    display: block;
    margin: 0; }
    .button-group.radius.stack > * > button, .button-group.radius.stack > * .button {
      border-left: 1px solid;
      border-color: rgba(255, 255, 255, 0.5); }
    .button-group.radius.stack > *:first-child button, .button-group.radius.stack > *:first-child .button {
      border-left: 0; }
    .button-group.radius.stack > * > button, .button-group.radius.stack > * .button {
      border-top: 1px solid;
      border-color: rgba(255, 255, 255, 0.5);
      border-left-width: 0;
      margin: 0;
      display: block; }
    .button-group.radius.stack > * > button {
      width: 100%; }
    .button-group.radius.stack > *:first-child button, .button-group.radius.stack > *:first-child .button {
      border-top: 0; }
    .button-group.radius.stack > *,
    .button-group.radius.stack > * > a,
    .button-group.radius.stack > * > button,
    .button-group.radius.stack > * > .button {
      border-radius: 0; }
    .button-group.radius.stack > *:first-child,
    .button-group.radius.stack > *:first-child > a,
    .button-group.radius.stack > *:first-child > button,
    .button-group.radius.stack > *:first-child > .button {
      -webkit-top-left-radius: 0px;
      -webkit-top-right-radius: 0px;
      border-top-left-radius: 0px;
      border-top-right-radius: 0px; }
    .button-group.radius.stack > *:last-child,
    .button-group.radius.stack > *:last-child > a,
    .button-group.radius.stack > *:last-child > button,
    .button-group.radius.stack > *:last-child > .button {
      -webkit-bottom-left-radius: 0px;
      -webkit-bottom-right-radius: 0px;
      border-bottom-left-radius: 0px;
      border-bottom-right-radius: 0px; }
  @media only screen and (min-width: 40em) {
    .button-group.radius.stack-for-small > * {
      margin: 0 -2px;
      display: inline-block; }
      .button-group.radius.stack-for-small > * > button, .button-group.radius.stack-for-small > * .button {
        border-left: 1px solid;
        border-color: rgba(255, 255, 255, 0.5); }
      .button-group.radius.stack-for-small > *:first-child button, .button-group.radius.stack-for-small > *:first-child .button {
        border-left: 0; }
      .button-group.radius.stack-for-small > *,
      .button-group.radius.stack-for-small > * > a,
      .button-group.radius.stack-for-small > * > button,
      .button-group.radius.stack-for-small > * > .button {
        border-radius: 0; }
      .button-group.radius.stack-for-small > *:first-child,
      .button-group.radius.stack-for-small > *:first-child > a,
      .button-group.radius.stack-for-small > *:first-child > button,
      .button-group.radius.stack-for-small > *:first-child > .button {
        -webkit-border-bottom-left-radius: 0px;
        -webkit-border-top-left-radius: 0px;
        border-bottom-left-radius: 0px;
        border-top-left-radius: 0px; }
      .button-group.radius.stack-for-small > *:last-child,
      .button-group.radius.stack-for-small > *:last-child > a,
      .button-group.radius.stack-for-small > *:last-child > button,
      .button-group.radius.stack-for-small > *:last-child > .button {
        -webkit-border-bottom-right-radius: 0px;
        -webkit-border-top-right-radius: 0px;
        border-bottom-right-radius: 0px;
        border-top-right-radius: 0px; } }
  @media only screen and (max-width: 39.9375em) {
    .button-group.radius.stack-for-small > * {
      margin: 0 -2px;
      display: inline-block;
      display: block;
      margin: 0; }
      .button-group.radius.stack-for-small > * > button, .button-group.radius.stack-for-small > * .button {
        border-left: 1px solid;
        border-color: rgba(255, 255, 255, 0.5); }
      .button-group.radius.stack-for-small > *:first-child button, .button-group.radius.stack-for-small > *:first-child .button {
        border-left: 0; }
      .button-group.radius.stack-for-small > * > button, .button-group.radius.stack-for-small > * .button {
        border-top: 1px solid;
        border-color: rgba(255, 255, 255, 0.5);
        border-left-width: 0;
        margin: 0;
        display: block; }
      .button-group.radius.stack-for-small > * > button {
        width: 100%; }
      .button-group.radius.stack-for-small > *:first-child button, .button-group.radius.stack-for-small > *:first-child .button {
        border-top: 0; }
      .button-group.radius.stack-for-small > *,
      .button-group.radius.stack-for-small > * > a,
      .button-group.radius.stack-for-small > * > button,
      .button-group.radius.stack-for-small > * > .button {
        border-radius: 0; }
      .button-group.radius.stack-for-small > *:first-child,
      .button-group.radius.stack-for-small > *:first-child > a,
      .button-group.radius.stack-for-small > *:first-child > button,
      .button-group.radius.stack-for-small > *:first-child > .button {
        -webkit-top-left-radius: 0px;
        -webkit-top-right-radius: 0px;
        border-top-left-radius: 0px;
        border-top-right-radius: 0px; }
      .button-group.radius.stack-for-small > *:last-child,
      .button-group.radius.stack-for-small > *:last-child > a,
      .button-group.radius.stack-for-small > *:last-child > button,
      .button-group.radius.stack-for-small > *:last-child > .button {
        -webkit-bottom-left-radius: 0px;
        -webkit-bottom-right-radius: 0px;
        border-bottom-left-radius: 0px;
        border-bottom-right-radius: 0px; } }
  .button-group.round > * {
    margin: 0 -2px;
    display: inline-block; }
    .button-group.round > * > button, .button-group.round > * .button {
      border-left: 1px solid;
      border-color: rgba(255, 255, 255, 0.5); }
    .button-group.round > *:first-child button, .button-group.round > *:first-child .button {
      border-left: 0; }
    .button-group.round > *,
    .button-group.round > * > a,
    .button-group.round > * > button,
    .button-group.round > * > .button {
      border-radius: 0; }
    .button-group.round > *:first-child,
    .button-group.round > *:first-child > a,
    .button-group.round > *:first-child > button,
    .button-group.round > *:first-child > .button {
      -webkit-border-bottom-left-radius: 1000px;
      -webkit-border-top-left-radius: 1000px;
      border-bottom-left-radius: 1000px;
      border-top-left-radius: 1000px; }
    .button-group.round > *:last-child,
    .button-group.round > *:last-child > a,
    .button-group.round > *:last-child > button,
    .button-group.round > *:last-child > .button {
      -webkit-border-bottom-right-radius: 1000px;
      -webkit-border-top-right-radius: 1000px;
      border-bottom-right-radius: 1000px;
      border-top-right-radius: 1000px; }
  .button-group.round.stack > * {
    margin: 0 -2px;
    display: inline-block;
    display: block;
    margin: 0; }
    .button-group.round.stack > * > button, .button-group.round.stack > * .button {
      border-left: 1px solid;
      border-color: rgba(255, 255, 255, 0.5); }
    .button-group.round.stack > *:first-child button, .button-group.round.stack > *:first-child .button {
      border-left: 0; }
    .button-group.round.stack > * > button, .button-group.round.stack > * .button {
      border-top: 1px solid;
      border-color: rgba(255, 255, 255, 0.5);
      border-left-width: 0;
      margin: 0;
      display: block; }
    .button-group.round.stack > * > button {
      width: 100%; }
    .button-group.round.stack > *:first-child button, .button-group.round.stack > *:first-child .button {
      border-top: 0; }
    .button-group.round.stack > *,
    .button-group.round.stack > * > a,
    .button-group.round.stack > * > button,
    .button-group.round.stack > * > .button {
      border-radius: 0; }
    .button-group.round.stack > *:first-child,
    .button-group.round.stack > *:first-child > a,
    .button-group.round.stack > *:first-child > button,
    .button-group.round.stack > *:first-child > .button {
      -webkit-top-left-radius: 1rem;
      -webkit-top-right-radius: 1rem;
      border-top-left-radius: 1rem;
      border-top-right-radius: 1rem; }
    .button-group.round.stack > *:last-child,
    .button-group.round.stack > *:last-child > a,
    .button-group.round.stack > *:last-child > button,
    .button-group.round.stack > *:last-child > .button {
      -webkit-bottom-left-radius: 1rem;
      -webkit-bottom-right-radius: 1rem;
      border-bottom-left-radius: 1rem;
      border-bottom-right-radius: 1rem; }
  @media only screen and (min-width: 40em) {
    .button-group.round.stack-for-small > * {
      margin: 0 -2px;
      display: inline-block; }
      .button-group.round.stack-for-small > * > button, .button-group.round.stack-for-small > * .button {
        border-left: 1px solid;
        border-color: rgba(255, 255, 255, 0.5); }
      .button-group.round.stack-for-small > *:first-child button, .button-group.round.stack-for-small > *:first-child .button {
        border-left: 0; }
      .button-group.round.stack-for-small > *,
      .button-group.round.stack-for-small > * > a,
      .button-group.round.stack-for-small > * > button,
      .button-group.round.stack-for-small > * > .button {
        border-radius: 0; }
      .button-group.round.stack-for-small > *:first-child,
      .button-group.round.stack-for-small > *:first-child > a,
      .button-group.round.stack-for-small > *:first-child > button,
      .button-group.round.stack-for-small > *:first-child > .button {
        -webkit-border-bottom-left-radius: 1000px;
        -webkit-border-top-left-radius: 1000px;
        border-bottom-left-radius: 1000px;
        border-top-left-radius: 1000px; }
      .button-group.round.stack-for-small > *:last-child,
      .button-group.round.stack-for-small > *:last-child > a,
      .button-group.round.stack-for-small > *:last-child > button,
      .button-group.round.stack-for-small > *:last-child > .button {
        -webkit-border-bottom-right-radius: 1000px;
        -webkit-border-top-right-radius: 1000px;
        border-bottom-right-radius: 1000px;
        border-top-right-radius: 1000px; } }
  @media only screen and (max-width: 39.9375em) {
    .button-group.round.stack-for-small > * {
      margin: 0 -2px;
      display: inline-block;
      display: block;
      margin: 0; }
      .button-group.round.stack-for-small > * > button, .button-group.round.stack-for-small > * .button {
        border-left: 1px solid;
        border-color: rgba(255, 255, 255, 0.5); }
      .button-group.round.stack-for-small > *:first-child button, .button-group.round.stack-for-small > *:first-child .button {
        border-left: 0; }
      .button-group.round.stack-for-small > * > button, .button-group.round.stack-for-small > * .button {
        border-top: 1px solid;
        border-color: rgba(255, 255, 255, 0.5);
        border-left-width: 0;
        margin: 0;
        display: block; }
      .button-group.round.stack-for-small > * > button {
        width: 100%; }
      .button-group.round.stack-for-small > *:first-child button, .button-group.round.stack-for-small > *:first-child .button {
        border-top: 0; }
      .button-group.round.stack-for-small > *,
      .button-group.round.stack-for-small > * > a,
      .button-group.round.stack-for-small > * > button,
      .button-group.round.stack-for-small > * > .button {
        border-radius: 0; }
      .button-group.round.stack-for-small > *:first-child,
      .button-group.round.stack-for-small > *:first-child > a,
      .button-group.round.stack-for-small > *:first-child > button,
      .button-group.round.stack-for-small > *:first-child > .button {
        -webkit-top-left-radius: 1rem;
        -webkit-top-right-radius: 1rem;
        border-top-left-radius: 1rem;
        border-top-right-radius: 1rem; }
      .button-group.round.stack-for-small > *:last-child,
      .button-group.round.stack-for-small > *:last-child > a,
      .button-group.round.stack-for-small > *:last-child > button,
      .button-group.round.stack-for-small > *:last-child > .button {
        -webkit-bottom-left-radius: 1rem;
        -webkit-bottom-right-radius: 1rem;
        border-bottom-left-radius: 1rem;
        border-bottom-right-radius: 1rem; } }

.button-bar:before, .button-bar:after {
  content: " ";
  display: table; }

.button-bar:after {
  clear: both; }

.button-bar .button-group {
  float: left;
  margin-right: 0.625rem; }
  .button-bar .button-group div {
    overflow: hidden; }

.nav--horizontal, .pagination {
  list-style: none;
  margin: 0; }

.nav--horizontal > li, .pagination > li, .nav--horizontal > li > a, .pagination > li > a {
  display: inline-block; }

.pagination-wrapper {
  width: 100%;
  clear: both;
  text-align: center; }

.pagination__item {
  margin-right: 0.5rem;
  background-color: rgba(255, 255, 255, 0);
  transition: all 0.3s ease;
  border-radius: 0px; }
  .pagination .pagination__item {
    display: none; }
  .pagination__item:last-child {
    margin-right: 0; }
  .pagination__item a {
    line-height: 2.75rem;
    color: #333333;
    padding: 0 1rem; }
  .pagination__item:hover, .pagination__item:focus {
    background-color: #cc2626;
    border-color: #cc2626; }
    .pagination__item:hover a,
    .pagination__item:hover a:hover,
    .pagination__item:hover a:focus, .pagination__item:focus a,
    .pagination__item:focus a:hover,
    .pagination__item:focus a:focus {
      color: #fff; }

.pagination .pagination__item--next,
.pagination .pagination__item--previous {
  display: inline-block; }

.pagination__item--current {
  line-height: 2.75rem;
  background-color: #cc2626;
  border-color: #cc2626;
  color: #fff;
  padding: 0 1rem;
  border-radius: 0px; }
  .pagination__item--current:hover, .pagination__item--current:focus {
    background-color: #cc2626;
    border-color: #cc2626;
    color: #fff; }

@media only screen and (min-width: 50rem) {
  .pagination .pagination__item {
    display: inline-block; } }

/**
 * IcoMoon generated icons
 * See the theme assets/fonts folder for font files
 * and json file to use on icomoon to develop this
 * font further
 *
 * This icon font is largely based on a custom selection
 * of icons from the Material Design icon pack.
 */
@font-face {
  font-family: 'pioneer';
  src: url("/assets2/fonts/pioneer/pioneer.eot?tl2cf7");
  src: url("/assets2/fonts/pioneer/pioneer.eot?tl2cf7#iefix") format("embedded-opentype"), url("/assets2/fonts/pioneer/pioneer.ttf?tl2cf7") format("truetype"), url("/assets2/fonts/pioneer/pioneer.woff?tl2cf7") format("woff"), url("/assets2/fonts/pioneer/pioneer.svg?tl2cf7#pioneer") format("svg");
  font-weight: normal;
  font-style: normal; }

[class^="icon-"],
[class*=" icon-"] {
  /* use !important to prevent issues with browser extensions that change fonts */
  font-family: 'pioneer' !important;
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

.icon-medium:before, .rating label:before {
  font-size: 1.25em;
  vertical-align: -7.5%; }

.icon-large:before {
  font-size: 1.5em;
  vertical-align: -15%; }

.icon-xlarge:before {
  font-size: 2em;
  vertical-align: -15%; }

.icon-local-shipping:before {
  content: ""; }

.icon-stockexchange:before {
  content: ""; }

.icon-credit-card:before {
  content: ""; }

.icon-place:before {
  content: ""; }

.icon-wallet-giftcard:before {
  content: ""; }

.icon-flight:before {
  content: ""; }

.icon-add-shopping-cart:before {
  content: ""; }

.icon-delete:before {
  content: ""; }

.icon-exit-to-app:before {
  content: ""; }

.icon-favorite:before {
  content: ""; }

.icon-home:before {
  content: ""; }

.icon-info:before {
  content: ""; }

.icon-language:before {
  content: ""; }

.icon-print:before {
  content: ""; }

.icon-search:before {
  content: ""; }

.icon-shopping-cart:before {
  content: ""; }

.icon-error:before {
  content: ""; }

.icon-warning:before {
  content: ""; }

.icon-call:before {
  content: ""; }

.icon-vpn-key:before {
  content: ""; }

.icon-add:before {
  content: ""; }

.icon-mail:before {
  content: ""; }

.icon-attach-money:before {
  content: ""; }

.icon-keyboard-arrow-down:before, .main-nav__item.parent.level-1 > a:after {
  content: ""; }

.icon-brightness-1:before {
  content: ""; }

.icon-check:before {
  content: ""; }

.icon-chevron-left:before {
  content: ""; }

.icon-chevron-right:before {
  content: ""; }

.icon-close:before {
  content: ""; }

.icon-menu:before {
  content: ""; }

.icon-refresh:before {
  content: ""; }

.icon-person:before {
  content: ""; }

.icon-star:before {
  content: ""; }

.icon-star-half:before {
  content: ""; }

.icon-star-outline:before {
  content: ""; }

.icon-googleplus:before {
  content: ""; }

.icon-facebook:before {
  content: ""; }

.icon-ello:before {
  content: ""; }

.icon-instagram:before {
  content: ""; }

.icon-twitter:before {
  content: ""; }

.icon-youtube:before {
  content: ""; }

.icon-vimeo:before {
  content: ""; }

.icon-flickr:before {
  content: ""; }

.icon-blogger:before {
  content: ""; }

.icon-linkedin:before {
  content: ""; }

.icon-pinterest:before {
  content: ""; }

@media only screen and (max-width: 39.9375em) {
  html {
    font-size: 87.5%; } }

.vertical-pos-helper {
  display: inline-block;
  height: 100%;
  vertical-align: middle; }

.is-hidden {
  display: none; }

@media only screen and (max-width: 63.9375em) {
  .hide_on_mobile {
    display: none; } }

#main-content:focus {
  outline: none; }

.sr-only {
  border: none;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px; }

#utils-nav {
  font-family:  'Noto Sans', sans-serif; }
  #utils-nav .icon {
    margin-right: 4px;
    font-size: 1.2em;
    vertical-align: -7%; }

.user-nav__separator {
  color: rgba(114, 114, 114, 0.5); }

#user-nav.right li:last-child a {
  padding-right: 0.5rem; }

#user-nav a {
  color: #727272;
  transition: color 150ms ease-out; }
  #user-nav a:hover, #user-nav a:focus {
    color: #cc2626; }

#user-nav a:not(.setting__button) {
  display: inline; }

#user-nav .subtle, #user-nav #kasse_one_form .subtaxes, #kasse_one_form #user-nav .subtaxes, #user-nav .product__main-images .bx-caption, .product__main-images #user-nav .bx-caption, #user-nav .product__meta-numbers, #user-nav .product .price--original, .product #user-nav .price--original, #user-nav .product .vat-info, .product #user-nav .vat-info, #user-nav .product__stockstatus, #user-nav .rating input:checked ~ label, .rating #user-nav input:checked ~ label, #user-nav .rating label:hover ~ label, .rating #user-nav label:hover ~ label {
  color: #727272; }

@media only screen and (max-width: 39.9375em) {
  #user-nav .icon {
    display: inline-block !important;
    font-size: 1.375rem;
    line-height: 3rem;
    margin-right: 0; } }

@media only screen and (min-width: 40em) {
  #utils-nav span.hide-for-small {
    display: inline !important; } }

#tools-nav {
  overflow: visible; }

.piped-nav {
  margin: 0;
  font-size: 0.875rem;
  height: 3rem; }
  .piped-nav li {
    margin: 0;
    line-height: 3rem;
    height: 3rem; }
  .piped-nav.left li:first-child a {
    padding-left: 0; }
  .piped-nav.right li:last-child a {
    padding-right: 0; }
  .piped-nav.no-separator a {
    border-left: none; }
  .piped-nav a {
    padding: 0 0.5rem; }

body {
  position: relative;
  width: 100%;
  min-width: 20em; }

#outer-wrap {
  position: relative;
  overflow: hidden;
  width: 100%; }

#inner-wrap {
  position: relative;
  width: 100%; }

.block {
  position: relative; }

.block-title {
  border: none;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px; }

@media only screen and (max-width: 63.9375em) {
  #nav {
    z-index: 200;
    position: absolute;
    overflow: hidden;
    padding-top: 3rem;
    top: 9.75rem; }
    #nav:not(:target) {
      z-index: -1;
      height: 0;
      padding-top: 0; }
    #nav:target {
      background: #757575; }
      #nav:target .main-nav__close-btn {
        display: block; }
    #nav .block {
      position: relative;
      z-index: 2;
      padding: 0; }
    #nav .columns {
      padding: 0; }
    #nav ul:before, #nav ul:after {
      content: "";
      display: table; }
    #nav ul:after {
      clear: both; }
  .js-ready #nav {
    height: 100%;
    width: 70%;
    left: -70%;
    background: #757575;
    -moz-box-shadow: inset -1.5em 0 1.5em -0.75em rgba(0, 0, 0, 0.25);
    box-shadow: inset -1.5em 0 1.5em -0.75em rgba(0, 0, 0, 0.25);
    top: 0;
    padding-top: 3rem; }
    .js-ready #nav .block {
      background: transparent; }
  .js-ready #inner-wrap {
    left: 0; }
  .js-nav #inner-wrap {
    left: 70%; }
  .csstransforms3d.csstransitions.js-ready #nav {
    left: 0;
    -ms-transform: translate(-100%, 0);
    -webkit-transform: translate3d(-100%, 0, 0);
    -moz-transform: translate3d(-100%, 0, 0);
    -ms-transform: translate3d(-100%, 0, 0);
    -o-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0);
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden; }
  .csstransforms3d.csstransitions.js-ready #inner-wrap {
    left: 0 !important;
    -webkit-transition: all 500ms ease;
    -moz-transition: all 500ms ease;
    transition: all 500ms ease; }
  .csstransforms3d.csstransitions.js-nav #inner-wrap {
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    -ms-transform: translate(70%, 0) scale3d(1, 1, 1);
    -webkit-transform: translate3d(70%, 0, 0) scale3d(1, 1, 1);
    -moz-transform: translate3d(70%, 0, 0) scale3d(1, 1, 1);
    -ms-transform: translate3d(70%, 0, 0) scale3d(1, 1, 1);
    -o-transform: translate3d(70%, 0, 0) scale3d(1, 1, 1);
    transform: translate3d(70%, 0, 0) scale3d(1, 1, 1); }
  .csstransforms3d.csstransitions.js-ready #nav .block {
    opacity: 0.7;
    -webkit-transition: opacity 300ms 100ms ease, -webkit-transform 500ms ease, visibility 500ms ease;
    -moz-transition: opacity 300ms 100ms ease, -moz-transform 500ms ease, visibility 500ms ease;
    -o-transition: opacity 300ms 100ms ease, -o-transform 500ms ease, visibility 500ms ease;
    transition: opacity 300ms 100ms ease, transform 500ms ease, visibility 500ms ease;
    -ms-transform: translate(70%, 0) scale3d(0.9, 0.9, 0.9);
    -webkit-transform: translate3d(70%, 0, 0) scale3d(0.9, 0.9, 0.9);
    -moz-transform: translate3d(70%, 0, 0) scale3d(0.9, 0.9, 0.9);
    -ms-transform: translate3d(70%, 0, 0) scale3d(0.9, 0.9, 0.9);
    -o-transform: translate3d(70%, 0, 0) scale3d(0.9, 0.9, 0.9);
    transform: translate3d(70%, 0, 0) scale3d(0.9, 0.9, 0.9);
    -webkit-transform-origin: 50% 0%;
    -moz-transform-origin: 50% 0%;
    -ms-transform-origin: 50% 0%;
    -o-transform-origin: 50% 0%;
    transform-origin: 50% 0%; }
  .csstransforms3d.csstransitions.js-nav #nav .block {
    opacity: 1;
    -ms-transform: translate(0, 0);
    -webkit-transform: translate3d(0, 0, 0);
    -moz-transform: translate3d(0, 0, 0);
    -ms-transform: translate3d(0, 0, 0);
    -o-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); }
  .csstransforms3d.csstransitions #nav {
    visibility: hidden;
    -webkit-transition: visibility 500ms ease;
    -moz-transition: visibility 500ms ease;
    transition: visibility 500ms ease; }
  .csstransforms3d.csstransitions.js-nav #nav {
    visibility: visible; } }

@media only screen and (min-width: 40em) and (max-width: 63.9375em) {
  .js-ready #nav {
    width: 50%;
    left: -50%; }
  .js-nav #inner-wrap {
    left: 50%; }
  .csstransforms3d.csstransitions.js-nav #inner-wrap {
    -ms-transform: translate(50%, 0) scale3d(1, 1, 1);
    -webkit-transform: translate3d(50%, 0, 0) scale3d(1, 1, 1);
    -moz-transform: translate3d(50%, 0, 0) scale3d(1, 1, 1);
    -ms-transform: translate3d(50%, 0, 0) scale3d(1, 1, 1);
    -o-transform: translate3d(50%, 0, 0) scale3d(1, 1, 1);
    transform: translate3d(50%, 0, 0) scale3d(1, 1, 1); } }

#logo-row {
  padding: 1.5rem 0; }

#logo a {
  text-decoration: none; }

#logo h1 {
  margin: 0;
  font-size: 2.75rem; }

#logo img {
  vertical-align: middle; }

#extra-nav .cart-and-checkout {
  padding-top: 0.71875rem; }
  #extra-nav .cart-and-checkout.right {
    margin-right: 0; }

#extra-nav form input, #extra-nav form .button {
  margin-bottom: 0; }

#extra-nav form input {
  -webkit-border-bottom-left-radius: 0px;
  -webkit-border-top-left-radius: 0px;
  border-bottom-left-radius: 0px;
  border-top-left-radius: 0px; }

#extra-nav form button {
  -webkit-border-bottom-right-radius: 0px;
  -webkit-border-top-right-radius: 0px;
  border-bottom-right-radius: 0px;
  border-top-right-radius: 0px; }

#extra-nav .button:hover, #extra-nav .button:focus {
  background-color: #cc2626;
  color: #fff; }

#contact-nav {
  width: 100%;
  clear: both; }
  #contact-nav li {
    padding: 0; }
  #contact-nav a {
    font-size: 0.75rem;
    height: 1.4375rem;
    line-height: 1em; }

@media only screen and (min-width: 64em) {
  #logo-row {
    padding: 2.5rem 0; }
  #extra-nav .cart-and-checkout {
    padding-top: 1.34375rem; }
  #extra-nav .piped-nav li:first-child a {
    padding-left: 0; }
  #logo h1 {
    line-height: 5rem; }
  #contact-nav {
    height: 1.34375rem;
    line-height: 1.34375rem; } }

/**
 * We're using two menu concepts here
 * Off canvas navigation, as seen on http://www.smashingmagazine.com/2013/01/15/off-canvas-navigation-for-responsive-website/
 * Smart menus, as seen on http://www.smartmenus.org/
 */
.main-nav {
  width: 100%;
  z-index: 200;
  font-family:  'Noto Sans', sans-serif; }
  .main-nav ul {
    margin: 0;
    list-style-type: none;
    direction: ltr; }
  .main-nav a {
    color: #757575;
    transition: background-color 150ms ease-out; }
  .main-nav .icon-menu:before {
    vertical-align: -12%; }

.sm .scroll-up, .sm .scroll-down {
  display: none !important; }

.main-nav__item a, a.main-nav__close-btn {
  color: #fff; }

.main-nav__close-btn {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  padding: 0 1rem;
  border: 0;
  outline: none;
  width: 100%;
  opacity: 0.7;
  text-align: right;
  line-height: 3rem;
  height: 3rem;
  -webkit-tap-highlight-color: transparent; }
  .main-nav__close-btn:focus, .main-nav__close-btn:hover, .main-nav__close-btn.highlighted {
    color: #fff !important;
    background: #cc2626;
    opacity: 1; }
  .main-nav__close-btn i {
    font-size: 0.75rem;
    padding-left: .4rem; }

.nav-compact li {
  height: 3.5rem; }

.nav-compact a {
  color: #757575;
  display: block;
  line-height: 3.5rem;
  font-weight: bold; }

#nav-open-btn {
  padding: 0; }
  #nav-open-btn:hover {
    background-color: transparent;
    color: inherit; }

.nav-offcanvas li {
  position: relative;
  width: 100%;
  display: block;
  border-top: 1px solid rgba(255, 255, 255, 0.25); }
  .nav-offcanvas li li {
    border-top-style: dotted; }

.main-nav__item {
  direction: ltr; }
  .main-nav__item a {
    outline: none;
    padding: 0 1rem;
    display: block;
    width: 100%; }
    .main-nav__item a:focus, .main-nav__item a:hover, .main-nav__item a.highlighted {
      background: #fff;
      color: #cc2626; }
    .main-nav__item a .disabled {
      cursor: default; }
  .main-nav__item.current > a, .main-nav__item.selected > a {
    background: #f5d4d4;
    color: #bb2323; }
    .main-nav__item.current > a:hover, .main-nav__item.current > a:focus, .main-nav__item.selected > a:hover, .main-nav__item.selected > a:focus {
      background: #f5d4d4;
      color: #5e5e5e; }
  .main-nav__item.parent > a:after {
    /* use !important to prevent issues with browser extensions that change fonts */
    font-family: 'pioneer' !important;
    speak: none;
    font-style: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
    /* Better Font Rendering =========== */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    content: "";
    padding-left: 0.4rem;
    -webkit-transition: -webkit-transform, 400ms;
    -moz-transition: -moz-transform, 400ms;
    transition: transform, 400ms;
    float: right; }
  .main-nav__item.parent > a.highlighted ~ ul {
    border: none;
    clip: auto;
    height: auto;
    margin: 0;
    overflow: visible;
    padding: 0;
    position: relative;
    width: auto;
    width: 100%; }
  .main-nav__item.parent > a.highlighted:after {
    -webkit-transform: rotatex(180deg);
    -moz-transform: rotatex(180deg);
    -ms-transform: rotatex(180deg);
    -o-transform: rotatex(180deg);
    transform: rotatex(180deg); }

/**
 * Nav items should have padding and a low line height
 * If not, multi-line items will be huge
 */
.main-nav__list {
  -webkit-tap-highlight-color: transparent; }
  .main-nav__list a {
    line-height: 1.2rem;
    padding: 0.775rem 1rem; }
  .main-nav__list.level-0 > li:last-child {
    border-bottom: 1px solid rgba(255, 255, 255, 0.25); }

.main-nav__submenu {
  width: 100%;
  z-index: 201;
  border: none;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px; }
  .main-nav__submenu a {
    font-size: 0.875rem;
    padding-left: 2rem; }
  html.no-js .main-nav__submenu.active {
    border: none;
    clip: auto;
    height: auto;
    margin: 0;
    overflow: visible;
    padding: 0;
    position: relative;
    width: auto; }

.main-nav__submenu.level-2 a {
  padding-left: 3.5rem; }
  .main-nav__submenu.level-2 a:before {
    /* use !important to prevent issues with browser extensions that change fonts */
    font-family: 'pioneer' !important;
    speak: none;
    font-style: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
    /* Better Font Rendering =========== */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    content: "";
    opacity: .5;
    font-size: 0.75rem;
    line-height: 1.2rem;
    padding-right: 0.4rem; }

.js-nav #outer-wrap {
  background-color: #000; }

.js-nav .content-wrapper > *:not(#nav) {
  opacity: .4;
  -webkit-transition: opacity, 500ms;
  -moz-transition: opacity, 500ms;
  transition: opacity, 500ms; }

/* Fix weird bug in Chrome where menu disappears on hover */
.main-nav__item,
.main-nav__submenu {
  -webkit-transform: translate3d(0px, 0px, 0px); }

.block-nav__item.parent {
  position: relative; }

.main-nav__toggle {
  display: block;
  position: absolute;
  top: 0;
  right: 0;
  height: 2.1875rem;
  width: 2.1875rem;
  line-height: 2.1875rem;
  text-align: center;
  -webkit-transition: all 300ms ease;
  -moz-transition: all 300ms ease;
  transition: all 300ms ease; }
  .main-nav__toggle:before {
    font-size: 1rem;
    height: 2.1875rem;
    width: 2.1875rem;
    line-height: inherit !important;
    display: block;
    position: absolute; }
  .main-nav__toggle, .main-nav__toggle:before {
    color: rgba(204, 38, 38, 0.9) !important; }
  .main-nav__toggle.toggled:before {
    color: rgba(117, 117, 117, 0.7) !important; }
  .main-nav__toggle:hover {
    cursor: pointer;
    background: #dddddd; }
    .main-nav__toggle:hover, .main-nav__toggle:hover:before {
      color: rgba(187, 35, 35, 0.9) !important; }
  .footer-bg .main-nav__toggle, .footer-bg .main-nav__toggle:before {
    color: rgba(204, 38, 38, 0.9) !important; }
  .footer-bg .main-nav__toggle.toggled:before {
    color: rgba(112, 112, 112, 0.7) !important; }
  .footer-bg .main-nav__toggle:hover {
    cursor: pointer;
    background: #dddddd; }
    .footer-bg .main-nav__toggle:hover, .footer-bg .main-nav__toggle:hover:before {
      color: rgba(187, 35, 35, 0.9) !important; }

.current > .main-nav__toggle:before {
  color: rgba(255, 255, 255, 0.75) !important; }
  .footer-bg .current > .main-nav__toggle:before {
    color: rgba(112, 112, 112, 0.75) !important; }

.current > .main-nav__toggle:hover {
  background-color: #dd4848; }
  .current > .main-nav__toggle:hover:before {
    color: white !important; }

.block-nav__item.selected.parent > .main-nav__toggle:before, .block-nav__item.current.parent > .main-nav__toggle:before {
  -webkit-transform: rotate(135deg);
  -moz-transform: rotate(135deg);
  -ms-transform: rotate(135deg);
  -o-transform: rotate(135deg);
  transform: rotate(135deg); }

.block-nav__item.selected.parent > .main-nav__toggle.toggled:before, .block-nav__item.current.parent > .main-nav__toggle.toggled:before {
  -webkit-transform: rotate(0deg);
  -moz-transform: rotate(0deg);
  -ms-transform: rotate(0deg);
  -o-transform: rotate(0deg);
  transform: rotate(0deg); }

@media only screen and (max-width: 63.9375em) {
  .main-nav__item.parent > a.highlighted ~ ul {
    margin-left: 0 !important;
    margin-top: 0 !important; } }

/* Increase padding in menu items on medium screens */
@media only screen and (min-width: 40em) and (max-width: 63.9375em) {
  .main-nav__list a {
    padding-left: 1.5rem;
    padding-right: 1.5rem; }
  .main-nav__submenu a {
    padding-left: 2.5rem; }
  .main-nav__close-btn {
    padding: 0 1.5rem; } }

@media only screen and (min-width: 64em) {
  .main-nav__frontpage-link .icon-home {
    font-size: 1.25rem; }
  .main-nav__item a {
    width: auto;
    padding-left: 1rem;
    padding-right: 1rem;
    white-space: normal;
    color: #757575; }
  .main-nav__item.level-0 {
    display: inline-block;
    border-bottom: none;
    z-index: 101;
    margin-right: 0; }
    .main-nav__item.level-0:hover {
      z-index: 102; }
    .main-nav__item.level-0 > a {
      padding-left: 1rem;
      padding-right: 1rem;
      line-height: 3.5rem;
      padding-top: 0;
      padding-bottom: 0;
      font-weight: bold;
      text-transform: none;
      font-size: 1rem; }
    .main-nav__item.level-0.parent > a:after {
      line-height: 3.5rem;
      float: none; }
  .main-nav__item.parent > a.highlighted ~ ul {
    position: absolute;
    min-width: 15em;
    max-width: 20em;
    box-shadow: 1px 0 0 #e0e0e0, 0 1px 0 #e0e0e0, -1px 0 0 #e0e0e0, 0 -1px 0 #e0e0e0;
    box-shadow: 0 0 0 1px #e0e0e0; }
  .nav-offcanvas li {
    width: auto;
    border-top: none; }
    .nav-offcanvas li li {
      border-top: none; }
    .nav-offcanvas li *,
    .nav-offcanvas li *:before,
    .nav-offcanvas li *:after {
      -webkit-box-sizing: content-box;
      -moz-box-sizing: content-box;
      box-sizing: content-box; }
  .main-nav__close-btn {
    border: none;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px; }
  .main-nav__submenu {
    position: absolute;
    top: -999999px;
    left: -800px;
    background: #fff; }
    .main-nav__submenu a {
      color: #757575; }
  .main-nav__item {
    float: none;
    border-bottom: 1px solid #e0e0e0; }
    .main-nav__item:last-child {
      border-bottom: none; }
  /**
     * On menu level 1 we use plus sign as parent indicator, since level 2
     * submenus may pop up both to the left and to the right
     */
  .main-nav__item.level-1.parent > a:after {
    content: "";
    font-size: 0.75rem;
    padding-left: 0;
    -webkit-transition: -webkit-transform, 300ms;
    -moz-transition: -moz-transform, 300ms;
    transition: transform, 300ms;
    opacity: .6;
    float: right;
    line-height: inherit; }
  .main-nav__item.level-1.parent > a.highlighted:after {
    -webkit-transform: rotate(135deg);
    -moz-transform: rotate(135deg);
    -ms-transform: rotate(135deg);
    -o-transform: rotate(135deg);
    transform: rotate(135deg);
    opacity: 1; }
  .main-nav__item.level-2.parent > a:after {
    content: "";
    font-size: 0.75rem;
    padding-left: 0;
    -webkit-transition: -webkit-transform, 300ms;
    -moz-transition: -moz-transform, 300ms;
    transition: transform, 300ms;
    opacity: .6;
    float: right;
    line-height: inherit; }
  .main-nav__item.level-2.parent > a.highlighted:after {
    -webkit-transform: rotate(135deg);
    -moz-transform: rotate(135deg);
    -ms-transform: rotate(135deg);
    -o-transform: rotate(135deg);
    transform: rotate(135deg);
    opacity: 1; }
  .main-nav__item.level-3.parent > a:after {
    content: "";
    font-size: 0.75rem;
    padding-left: 0;
    -webkit-transition: -webkit-transform, 300ms;
    -moz-transition: -moz-transform, 300ms;
    transition: transform, 300ms;
    opacity: .6;
    float: right;
    line-height: inherit; }
  .main-nav__item.level-3.parent > a.highlighted:after {
    -webkit-transform: rotate(135deg);
    -moz-transform: rotate(135deg);
    -ms-transform: rotate(135deg);
    -o-transform: rotate(135deg);
    transform: rotate(135deg);
    opacity: 1; }
  .main-nav__item.level-4.parent > a:after {
    content: "";
    font-size: 0.75rem;
    padding-left: 0;
    -webkit-transition: -webkit-transform, 300ms;
    -moz-transition: -moz-transform, 300ms;
    transition: transform, 300ms;
    opacity: .6;
    float: right;
    line-height: inherit; }
  .main-nav__item.level-4.parent > a.highlighted:after {
    -webkit-transform: rotate(135deg);
    -moz-transform: rotate(135deg);
    -ms-transform: rotate(135deg);
    -o-transform: rotate(135deg);
    transform: rotate(135deg);
    opacity: 1; }
  .main-nav__item.level-5.parent > a:after {
    content: "";
    font-size: 0.75rem;
    padding-left: 0;
    -webkit-transition: -webkit-transform, 300ms;
    -moz-transition: -moz-transform, 300ms;
    transition: transform, 300ms;
    opacity: .6;
    float: right;
    line-height: inherit; }
  .main-nav__item.level-5.parent > a.highlighted:after {
    -webkit-transform: rotate(135deg);
    -moz-transform: rotate(135deg);
    -ms-transform: rotate(135deg);
    -o-transform: rotate(135deg);
    transform: rotate(135deg);
    opacity: 1; }
  .main-nav__submenu.level-2 a {
    padding-left: 1rem; }
    .main-nav__submenu.level-2 a:before {
      display: none; } }

.setting__form {
  position: relative;
  z-index: 100; }
  .setting__form i.fa {
    width: .9rem; }

.setting__button:focus {
  outline: none; }

.setting__select {
  display: none;
  position: absolute;
  opacity: .3;
  width: 15rem;
  z-index: 2;
  background-color: #fff;
  border: 1px solid #dddddd;
  padding: 1rem;
  -ms-transform: translate(0, -1rem) scale3d(0.9, 0.9, 0.9);
  -webkit-transform: translate3d(0, -1rem, 0) scale3d(0.9, 0.9, 0.9);
  -moz-transform: translate3d(0, -1rem, 0) scale3d(0.9, 0.9, 0.9);
  -ms-transform: translate3d(0, -1rem, 0) scale3d(0.9, 0.9, 0.9);
  -o-transform: translate3d(0, -1rem, 0) scale3d(0.9, 0.9, 0.9);
  transform: translate3d(0, -1rem, 0) scale3d(0.9, 0.9, 0.9);
  -webkit-transition: opacity 150ms, -webkit-transform 150ms ease;
  -webkit-transition-delay: ease, 0s;
  -moz-transition: opacity 150ms ease, -moz-transform 150ms ease;
  -o-transition: opacity 150ms ease, -o-transform 150ms ease;
  transition: opacity 150ms ease, transform 150ms ease; }
  .setting__select > * {
    margin-bottom: 0; }
  .setting__select select {
    float: left;
    width: 65%; }
  .setting__select input[type=submit] {
    float: right;
    width: 30%;
    line-height: 2.3125rem;
    height: 2.3125rem;
    padding: 0 .5rem; }

#language-show,
#currency-show {
  display: block; }

#language-close,
#currency-close {
  display: none; }

#language-show:target,
#currency-show:target {
  display: block; }

#language-show:target + #language-close,
#currency-show:target + #currency-close {
  display: none; }

#language-close:target,
#currency-close:target {
  display: block; }

#language-close:target + #language-show,
#currency-close:target + #currency-show {
  display: none; }

#language-close:target ~ #language,
#currency-close:target ~ #currency {
  display: block;
  opacity: 1;
  -ms-transform: translate(0, 0) scale3d(1, 1, 1);
  -webkit-transform: translate3d(0, 0, 0) scale3d(1, 1, 1);
  -moz-transform: translate3d(0, 0, 0) scale3d(1, 1, 1);
  -ms-transform: translate3d(0, 0, 0) scale3d(1, 1, 1);
  -o-transform: translate3d(0, 0, 0) scale3d(1, 1, 1);
  transform: translate3d(0, 0, 0) scale3d(1, 1, 1); }

.js-nav #language,
.js-nav #currency {
  display: none; }

.hfx--cover--light,
.hfx--cover--dark, .hfx--show-title, .hfx--tilt--right,
.hfx--tilt--left {
  position: relative;
  display: block;
  width: 100%;
  height: 100%; }

.hfx--blur:hover img {
  -webkit-filter: blur(2px);
  filter: blur(2px); }

.hfx--cover--light::before, .hfx--cover--light::after,
.hfx--cover--dark::before,
.hfx--cover--dark::after {
  position: absolute;
  width: 100%;
  height: 100%;
  opacity: 0;
  z-index: 1;
  -webkit-transition: opacity 0.3s ease;
  -moz-transition: opacity 0.3s ease;
  transition: opacity 0.3s ease; }

.hfx--cover--light::before,
.hfx--cover--dark::before {
  content: "";
  background-color: rgba(255, 255, 255, 0.65); }

.hfx--cover--light::after,
.hfx--cover--dark::after {
  display: inline-block;
  vertical-align: middle;
  /* use !important to prevent issues with browser extensions that change fonts */
  font-family: 'pioneer' !important;
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "";
  font-size: 1.875rem;
  line-height: 1;
  color: rgba(0, 0, 0, 0.65);
  top: 50%;
  left: 0;
  text-align: center;
  margin-top: -0.9375rem;
  height: 1em;
  z-index: 2; }

.hfx--cover--light:hover::before, .hfx--cover--light:hover::after,
.hfx--cover--dark:hover::before,
.hfx--cover--dark:hover::after {
  opacity: 1; }

.hfx--cover--dark::before {
  background-color: rgba(0, 0, 0, 0.65); }

.hfx--cover--dark::after {
  color: rgba(255, 255, 255, 0.75); }

.hfx--figcaption {
  margin: 0;
  position: relative;
  font-size: 1.5625rem;
  text-transform: uppercase;
  font-weight: bold;
  line-height: 1; }
  .hfx--figcaption figcaption {
    opacity: 0;
    position: absolute;
    padding: .5em;
    z-index: 2;
    -webkit-transition: opacity 0.3s ease-in-out, color 0.3s ease-in-out;
    -moz-transition: opacity 0.3s ease-in-out, color 0.3s ease-in-out;
    transition: opacity 0.3s ease-in-out, color 0.3s ease-in-out; }
  .hfx--figcaption .hfx--figcaption--bottom-left {
    bottom: 0;
    left: 0; }
  .hfx--figcaption .hfx--figcaption--bottom-right {
    bottom: 0;
    right: 0; }
  .hfx--figcaption .hfx--figcaption--top-left {
    top: 0;
    left: 0; }
  .hfx--figcaption .hfx--figcaption--top-right {
    top: 0;
    right: 0; }
  .hfx--figcaption .background--light {
    opacity: 1;
    color: rgba(0, 0, 0, 0.9); }
    .hfx--cover--dark:hover .hfx--figcaption .background--light,
    .hfx--cover--dark:focus .hfx--figcaption .background--light {
      color: rgba(255, 255, 255, 0.9); }
  .hfx--figcaption .background--dark {
    opacity: 1;
    color: rgba(255, 255, 255, 0.9); }
    .hfx--cover--light:hover .hfx--figcaption .background--dark,
    .hfx--cover--light:focus .hfx--figcaption .background--dark {
      color: rgba(0, 0, 0, 0.9); }

.hfx--levitate img {
  -webkit-transition: -webkit-transform, box-shadow;
  -moz-transition: -moz-transform, box-shadow;
  transition: transform, box-shadow; }

.hfx--levitate:hover img {
  -webkit-transform: scale(1.1) translatez(0);
  -moz-transform: scale(1.1) translatez(0);
  -ms-transform: scale(1.1) translatez(0);
  -o-transform: scale(1.1) translatez(0);
  transform: scale(1.1) translatez(0);
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.25); }

.hfx--show-title {
  overflow: hidden; }
  .hfx--show-title img {
    opacity: 1;
    -webkit-transition: opacity 0.25s ease;
    -moz-transition: opacity 0.25s ease;
    transition: opacity 0.25s ease; }
  .hfx--show-title:after {
    content: attr(title);
    position: absolute;
    color: #333;
    bottom: -100%;
    background: rgba(255, 255, 255, 0.75);
    left: 0;
    width: 100%;
    padding: 1rem;
    -webkit-transition: bottom 0.25s ease;
    -moz-transition: bottom 0.25s ease;
    transition: bottom 0.25s ease; }
  .hfx--show-title:hover img {
    opacity: 0.3; }
  .hfx--show-title:hover:after {
    bottom: 0; }

.hfx--tilt--right,
.hfx--tilt--left {
  overflow: visible; }
  .hfx--tilt--right img,
  .hfx--tilt--left img {
    position: absolute;
    -webkit-transition: -webkit-transform;
    -moz-transition: -moz-transform;
    transition: transform; }

.hfx--tilt--right:hover img {
  -webkit-transform: rotate(5deg) translatez(0);
  -moz-transform: rotate(5deg) translatez(0);
  -ms-transform: rotate(5deg) translatez(0);
  -o-transform: rotate(5deg) translatez(0);
  transform: rotate(5deg) translatez(0); }

.hfx--tilt--left:hover img {
  -webkit-transform: rotate(-5deg) translatez(0);
  -moz-transform: rotate(-5deg) translatez(0);
  -ms-transform: rotate(-5deg) translatez(0);
  -o-transform: rotate(-5deg) translatez(0);
  transform: rotate(-5deg) translatez(0); }

a[class^="hfx--"],
a[class*=" hfx--"] {
  text-decoration: none; }

.alert-box {
  border-style: solid;
  border-width: 1px;
  display: block;
  font-weight: normal;
  margin-bottom: 0;
  position: relative;
  padding: 1rem 1.625rem 1rem 1rem;
  font-size: 0.875rem;
  transition: opacity 300ms ease-out;
  border: none;
  border-left: 2rem solid #cc2626;
  background-color: #fff;
  color: #333333;
  line-height: 1.3125;
  box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.4); }
  .alert-box.alert-box--withclose {
    padding-right: 2.4375rem; }
  .alert-box > p:last-child {
    margin-bottom: 0; }
  .alert-box .close {
    font-size: 1.375rem;
    padding: 0 6px 4px;
    line-height: .9;
    position: absolute;
    top: 1rem;
    margin-top: -0.6875rem;
    right: 0.25rem;
    color: #333333;
    opacity: 0.3;
    background: inherit; }
    .alert-box .close:hover, .alert-box .close:focus {
      opacity: 0.5; }
  .alert-box.radius {
    border-radius: 4px; }
  .alert-box.round {
    border-radius: 1000px; }
  .alert-box.success, .alert-box.alert-success {
    border: none;
    border-left: 2rem solid #5cb85c;
    background-color: #fff;
    color: #333333; }
  .alert-box.alert, .alert-box.alert-alert {
    border: none;
    border-left: 2rem solid #e03114;
    background-color: #fff;
    color: #333333; }
  .alert-box.secondary, .alert-box.alert-secondary {
    border: none;
    border-left: 2rem solid #e7e7e7;
    background-color: #fff;
    color: #333333; }
  .alert-box.warning, .alert-box.alert-warning {
    border: none;
    border-left: 2rem solid #ffa200;
    background-color: #fff;
    color: #333333; }
  .alert-box.info, .alert-box.alert-info {
    border: none;
    border-left: 2rem solid #5bc0de;
    background-color: #fff;
    color: #333333; }
  .alert-box.alert-close {
    opacity: 0; }
  .alert-box:focus {
    outline: none; }

.alert-box__icon {
  position: absolute;
  font-size: 1rem;
  top: 1rem;
  left: -1.5rem;
  line-height: 1.3125;
  height: 1.3125rem;
  color: #fff; }

.alert-box__message,
.alert-box__message > * {
  display: block;
  font-size: 0.875rem; }

.alert-box__message strong {
  display: inline;
  white-space: nowrap; }

.alert-box__message :last-child {
  margin-bottom: 0; }

.alert-box--withfooter .alert-box__message {
  margin-bottom: 2.75rem; }

#cart-notify {
  display: none; }

.alert-box__progressbar {
  display: none; }

.alert-box__footer {
  position: absolute;
  bottom: 0;
  width: 100%;
  right: 0;
  height: 2.75rem;
  line-height: 2.75rem; }
  .alert-box__footer a {
    padding: 0 1rem 0 1rem;
    color: #333333; }
    .alert-box__footer a.left .fa {
      padding-right: .3rem; }
    .alert-box__footer a.right .fa {
      padding-left: .3rem; }

@media only screen and (min-width: 40em) {
  .alert-box {
    max-width: 60%; } }

@media only screen and (min-width: 64em) {
  .alert-box {
    max-width: 40%; } }

@media only screen and (min-width: 90em) {
  .alert-box {
    max-width: 30%; } }

/**
 * Borrowed parts of https://github.com/daneden/animate.css
 */
.animated {
  -webkit-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both; }

.animate,
.growl-animated {
  -webkit-transition: all 0.4s ease-in-out;
  -moz-transition: all 0.4s ease-in-out;
  transition: all 0.4s ease-in-out; }

@-webkit-keyframes fadeInDown {
  0% {
    opacity: 0;
    -ms-transform: translate(0, -100%);
    -webkit-transform: translate3d(0, -100%, 0);
    -moz-transform: translate3d(0, -100%, 0);
    -ms-transform: translate3d(0, -100%, 0);
    -o-transform: translate3d(0, -100%, 0);
    transform: translate3d(0, -100%, 0); }
  100% {
    opacity: 1;
    -webkit-transform: none;
    -moz-transform: none;
    -ms-transform: none;
    -o-transform: none;
    transform: none; } }

@-moz-keyframes fadeInDown {
  0% {
    opacity: 0;
    -ms-transform: translate(0, -100%);
    -webkit-transform: translate3d(0, -100%, 0);
    -moz-transform: translate3d(0, -100%, 0);
    -ms-transform: translate3d(0, -100%, 0);
    -o-transform: translate3d(0, -100%, 0);
    transform: translate3d(0, -100%, 0); }
  100% {
    opacity: 1;
    -webkit-transform: none;
    -moz-transform: none;
    -ms-transform: none;
    -o-transform: none;
    transform: none; } }

@keyframes fadeInDown {
  0% {
    opacity: 0;
    -ms-transform: translate(0, -100%);
    -webkit-transform: translate3d(0, -100%, 0);
    -moz-transform: translate3d(0, -100%, 0);
    -ms-transform: translate3d(0, -100%, 0);
    -o-transform: translate3d(0, -100%, 0);
    transform: translate3d(0, -100%, 0); }
  100% {
    opacity: 1;
    -webkit-transform: none;
    -moz-transform: none;
    -ms-transform: none;
    -o-transform: none;
    transform: none; } }

.fadeInDown {
  -webkit-animation-name: fadeInDown;
  animation-name: fadeInDown; }

@-webkit-keyframes fadeOutUp {
  0% {
    opacity: 1; }
  100% {
    opacity: 0;
    -ms-transform: translate(0, -100%);
    -webkit-transform: translate3d(0, -100%, 0);
    -moz-transform: translate3d(0, -100%, 0);
    -ms-transform: translate3d(0, -100%, 0);
    -o-transform: translate3d(0, -100%, 0);
    transform: translate3d(0, -100%, 0); } }

@-moz-keyframes fadeOutUp {
  0% {
    opacity: 1; }
  100% {
    opacity: 0;
    -ms-transform: translate(0, -100%);
    -webkit-transform: translate3d(0, -100%, 0);
    -moz-transform: translate3d(0, -100%, 0);
    -ms-transform: translate3d(0, -100%, 0);
    -o-transform: translate3d(0, -100%, 0);
    transform: translate3d(0, -100%, 0); } }

@keyframes fadeOutUp {
  0% {
    opacity: 1; }
  100% {
    opacity: 0;
    -ms-transform: translate(0, -100%);
    -webkit-transform: translate3d(0, -100%, 0);
    -moz-transform: translate3d(0, -100%, 0);
    -ms-transform: translate3d(0, -100%, 0);
    -o-transform: translate3d(0, -100%, 0);
    transform: translate3d(0, -100%, 0); } }

.fadeOutUp {
  -webkit-animation-name: fadeOutUp;
  animation-name: fadeOutUp; }

.block-image-grid {
  display: block;
  padding: 0;
  margin: 0; }
  .block-image-grid:before, .block-image-grid:after {
    content: " ";
    display: table; }
  .block-image-grid:after {
    clear: both; }
  .block-image-grid > li {
    display: block;
    height: auto;
    float: left;
    padding: 0 0.9375rem 1.875rem; }
  .block-image-grid > li {
    width: 33.33333%;
    padding: 0 0.9375rem 1.875rem;
    list-style: none; }
    .block-image-grid > li:nth-of-type(1n) {
      clear: none; }
    .block-image-grid > li:nth-of-type(3n+1) {
      clear: both; }
    .block-image-grid > li:nth-of-type(3n+1) {
      padding-left: 0rem;
      padding-right: 1.25rem; }
    .block-image-grid > li:nth-of-type(3n+2) {
      padding-left: 0.625rem;
      padding-right: 0.625rem; }
    .block-image-grid > li:nth-of-type(3n) {
      padding-left: 1.25rem;
      padding-right: 0rem; }

.equal-height-columns {
  display: block; }
  .flexbox .equal-height-columns {
    display: -webkit-box;
    display: -moz-box;
    display: box;
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-lines: multiple;
    -moz-box-lines: multiple;
    box-lines: multiple;
    -webkit-flex-wrap: wrap;
    -moz-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap; }
  .equal-height-columns [class*="column"] + [class*="column"]:last-child {
    float: left; }

.equal-height-column {
  display: block;
  float: left;
  width: 100%;
  padding: 0.9375rem; }
  .flexbox .equal-height-column {
    display: -webkit-box;
    display: -moz-box;
    display: box;
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flexbox;
    display: flex; }

.equal-height-column-innerwrap {
  padding: 0.9375rem;
  width: 100%;
  display: block;
  height: 100%; }

.flexbox .equal-height-column-innerwrap,
.no-js .equal-height-column-innerwrap {
  height: auto; }

.equal-height-column__image {
  width: 100%;
  height: 250px;
  text-align: center;
  margin-bottom: .75rem; }
  .equal-height-column__image img {
    max-height: 250px;
    max-width: 100%;
    vertical-align: middle; }

.equal-height-column__readon {
  margin-left: -0.9375rem; }

/* 2 columns */
@media only screen and (min-width: 30em) {
  .equal-height-column {
    width: 50%; }
  .equal-height-column__image {
    width: 100%;
    height: 200px; }
    .equal-height-column__image img {
      max-height: 200px; } }

/* 3 columns */
@media only screen and (min-width: 48em) {
  .equal-height-column {
    width: 33.33333%; } }

/* 4 columns */
@media only screen and (min-width: 64em) {
  .no-split-menu .equal-height-column {
    width: 25%; } }

.block__box--banners, .block__box--banners .block__box__content,
.block__box--banners_right,
.block__box--banners_right .block__box__content,
.block__box--banners_left,
.block__box--banners_left .block__box__content {
  background-color: transparent !important; }

.block__box--banners .block__box__headline-wrapper,
.block__box--banners .block__box__headline,
.block__box--banners_right .block__box__headline-wrapper,
.block__box--banners_right .block__box__headline,
.block__box--banners_left .block__box__headline-wrapper,
.block__box--banners_left .block__box__headline {
  display: none; }

.block__box--banners .wrapper_banner,
.block__box--banners_right .wrapper_banner,
.block__box--banners_left .wrapper_banner {
  text-align: center; }
  .block__box--banners .wrapper_banner > div,
  .block__box--banners_right .wrapper_banner > div,
  .block__box--banners_left .wrapper_banner > div {
    margin-bottom: 1rem; }
    .block__box--banners .wrapper_banner > div img,
    .block__box--banners_right .wrapper_banner > div img,
    .block__box--banners_left .wrapper_banner > div img {
      width: 100%;
      border-radius: -1px; }
    .block__box--banners .wrapper_banner > div:last-child,
    .block__box--banners_right .wrapper_banner > div:last-child,
    .block__box--banners_left .wrapper_banner > div:last-child {
      margin-bottom: 0; }

.bordered, .checkout--kco__custom-intro, .checkout--kco .checkout__step, .bordered--all, .bordered--bottom, .freight-option,
.payment-option, .product__title, .bordered--top, .bordered--left, .bordered--right {
  border-style: solid;
  border-width: 0; }

.bordered--all {
  border-width: 1px; }

.bordered--bottom, .freight-option,
.payment-option, .checkout--kco__custom-intro, .checkout--kco .checkout__step, .product__title {
  border-bottom-width: 1px; }
  .bordered--bottom.bordered__list-item:last-child, .bordered__list-item.freight-option:last-child,
  .bordered__list-item.payment-option:last-child, .bordered__list-item.checkout--kco__custom-intro:last-child, .checkout--kco .bordered__list-item.checkout__step:last-child, .bordered__list-item.product__title:last-child {
    border-bottom-width: 0; }

.bordered--top {
  border-top-width: 1px; }

.bordered--left {
  border-left-width: 1px; }

.bordered--right {
  border-right-width: 1px; }

.bx-wrapper {
  position: relative; }

.bx-controls-direction a {
  position: absolute;
  top: 50%;
  margin-top: -1.375rem;
  outline: 0;
  width: 2.75rem;
  height: 2.75rem;
  text-indent: 100%;
  overflow: hidden;
  text-decoration: none;
  z-index: 100;
  -webkit-transition: opacity 200ms, -webkit-transform 150ms ease;
  -webkit-transition-delay: ease, 0s;
  -moz-transition: opacity 200ms ease, -moz-transform 150ms ease;
  -o-transition: opacity 200ms ease, -o-transform 150ms ease;
  transition: opacity 200ms ease, transform 150ms ease;
  font-size: 1.375rem;
  -ms-border-radius: 1.375rem;
  border-radius: 1.375rem;
  border: 2px solid #fff; }
  .slider__with-nav .bx-controls-direction a {
    margin-top: -2.75rem; }
  .bx-controls-direction a:after {
    position: absolute;
    -webkit-transition: text-indent 200ms ease;
    -moz-transition: text-indent 200ms ease;
    transition: text-indent 200ms ease;
    width: 2.75rem;
    font-size: 1.875rem;
    top: -2px;
    left: -2px;
    z-index: 101;
    text-align: center; }
  .bx-controls-direction a.disabled {
    display: none; }

.bx-controls-direction a {
  color: #fff;
  background-color: rgba(0, 0, 0, 0.4);
  border: 2px solid #fff; }
  .bx-controls-direction a:after {
    color: #fff; }
  .bx-controls-direction a:hover, .bx-controls-direction a:focus {
    background-color: rgba(0, 0, 0, 0.9); }

.bx-next {
  right: 0.9375rem; }
  .bx-next:after {
    /* use !important to prevent issues with browser extensions that change fonts */
    font-family: 'pioneer' !important;
    speak: none;
    font-style: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
    /* Better Font Rendering =========== */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    content: "";
    line-height: inherit;
    text-indent: 3px; }
  .bx-next:hover:after, .bx-next:focus:after {
    text-indent: 9px; }
  .bx-next:active:after {
    text-indent: 0; }

.bx-prev {
  left: 0.9375rem; }
  .bx-prev:after {
    /* use !important to prevent issues with browser extensions that change fonts */
    font-family: 'pioneer' !important;
    speak: none;
    font-style: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
    /* Better Font Rendering =========== */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    content: "";
    line-height: inherit;
    text-indent: -3px; }
  .bx-prev:hover:after, .bx-prev:focus:after {
    text-indent: -9px; }
  .bx-prev:active:after {
    text-indent: 0; }

.bx-pager {
  text-align: center;
  overflow: hidden; }

.bx-pager-item {
  display: inline-block;
  position: relative; }

.bx-pager-link {
  position: relative;
  display: block;
  height: 2.75rem;
  width: 2.75rem;
  line-height: 2.75rem;
  font-size: 0;
  overflow: hidden; }
  .bx-pager-link:after {
    position: absolute;
    top: 0;
    left: 0;
    font-size: .8rem;
    opacity: .25;
    display: block;
    /* use !important to prevent issues with browser extensions that change fonts */
    font-family: 'pioneer' !important;
    speak: none;
    font-style: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
    /* Better Font Rendering =========== */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    content: "";
    background-color: #ffffff;
    color: #000;
    height: 2.75rem;
    width: 2.75rem;
    line-height: inherit;
    text-align: center;
    -webkit-transition: font-size 200ms ease;
    -moz-transition: font-size 200ms ease;
    transition: font-size 200ms ease; }
  .bx-pager-link.active:after {
    opacity: .75;
    font-size: 1rem; }
  .bx-pager-link:hover:after, .bx-pager-link:focus:after {
    font-size: 1rem;
    color: #cc2626;
    opacity: .75; }

@media only screen and (min-width: 90em) {
  .bx-prev {
    left: -4.625rem; }
  .bx-next {
    right: -4.625rem; } }

.cart-button__quantity,
.cart-button__sum,
.cart-button__currency {
  line-height: 1.5rem;
  font-size: 0.75rem;
  height: 1.5rem; }

.cart-button__sum,
.cart-button__currency {
  display: none; }

.cart-button__quantity {
  display: inline-block;
  border-radius: 50%;
  text-align: center;
  width: 1.5rem;
  -webkit-transition: all 200ms ease;
  -moz-transition: all 200ms ease;
  transition: all 200ms ease; }
  .cart-button:hover .cart-button__quantity,
  .cart-button--highlighted .cart-button__quantity {
    background-color: #cc2626 !important;
    color: #fff;
    box-shadow: 0 0 3px 3px rgba(0, 0, 0, 0.1); }

.icon-larger-than:after {
  /* use !important to prevent issues with browser extensions that change fonts */
  font-family: 'pioneer' !important;
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "";
  margin-right: -3px;
  margin-left: -4px; }

.cart-button {
  line-height: 2.3125rem;
  float: left;
  font-size: 0.875rem;
  color: #333333;
  padding-right: 1rem; }
  .cart-button:hover {
    color: #333333; }

.checkout-button {
  float: left;
  padding-top: 0.625rem;
  padding-right: 1.25rem;
  padding-bottom: 0.6875rem;
  padding-left: 1.25rem;
  font-size: 0.6875rem;
  background-color: #EF3A3B;
  border-color: #dc1213;
  color: #FFFFFF;
  border-radius: 0px;
  padding: 0 1rem;
  line-height: 2.3125rem;
  font-size: 0.875rem;
  margin-bottom: 0; }
  .checkout-button:hover, .checkout-button:focus {
    background-color: #dc1213; }
  .checkout-button:hover, .checkout-button:focus {
    color: #FFFFFF; }
  .checkout-button:hover, .checkout-button:focus {
    background-color: #cc2626; }
  .checkout-button .cart-icon:before {
    margin-right: -9px;
    display: inline-block; }

.cart-button--empty {
  padding-right: 0; }
  .cart-button--empty .cart-button__sum,
  .cart-button--empty .cart-button__currency,
  .cart-button--empty ~ .checkout-button {
    display: none !important; }

.cart__icon-cart {
  padding-right: .1rem; }

.cart-button__text {
  display: none; }

.cart__icon-procede {
  font-size: 0.8125rem; }

@media only screen and (min-width: 27em) {
  .cart-button__sum,
  .cart-button__currency {
    display: inline-block; } }

#kasse_one_form .row .row,
#kasse_one_logginn .row .row {
  width: auto;
  margin-left: -0.9375rem;
  margin-right: -0.9375rem;
  margin-top: 0;
  margin-bottom: 0;
  max-width: none; }
  #kasse_one_form .row .row:before, #kasse_one_form .row .row:after,
  #kasse_one_logginn .row .row:before,
  #kasse_one_logginn .row .row:after {
    content: " ";
    display: table; }
  #kasse_one_form .row .row:after,
  #kasse_one_logginn .row .row:after {
    clear: both; }
  #kasse_one_form .row .row .column,
  #kasse_one_form .row .row .columns,
  #kasse_one_logginn .row .row .column,
  #kasse_one_logginn .row .row .columns {
    padding-left: 0.9375rem;
    padding-right: 0.9375rem;
    float: left; }

#kasse_one_form .zebra {
  border-spacing: 0;
  border-collapse: collapse;
  width: 100%; }

#kasse_one_form .zebra tr:last-child td {
  border-bottom: none; }

.checkout__steps {
  background-color: #d9d9d9;
  padding: 2px;
  border-radius: 0px;
  margin-top: 1em; }

/* ENIRO search */
#eniro_fetch {
  text-align: center; }

#eniro_options,
#eniro_message,
#client_options {
  display: none; }

#eniro_message {
  padding: 5px;
  margin-bottom: 1em;
  clear: both;
  line-height: 1.5; }

#eniro_options {
  width: 100%;
  padding: 3px 6px;
  border: 1px solid #bbb; }

.cart-contents .mini-img {
  padding: 0;
  border-right: 0; }

.mini-img img {
  display: none; }

/* buttons */
.button .arrow {
  padding-left: .4rem; }

.checkout__step__contents button,
.checkout__step__contents .button {
  margin-bottom: 0; }

a.dialog_trigger,
a.dialog_trigger:link,
a.dialog_trigger:visited {
  text-decoration: underline; }

.checkout__step__contents .dialog-popup {
  margin-bottom: 1em; }

.dialog-popup h2 {
  margin-top: 0; }

.dialog-popup .kasse_one_logginn_error {
  display: block;
  float: right; }

.dialog-popup .form_submit {
  clear: both;
  margin-bottom: .5em; }

.dialog-popup .forgot_passwd {
  float: left; }

.addon_buttons {
  display: block;
  float: right;
  padding-right: 1.25rem;
  clear: both;
  margin-bottom: .5rem; }
  .addon_buttons .edit_step {
    margin-top: 0;
    font-size: 1rem;
    line-height: 2rem;
    margin-right: 0; }
    .addon_buttons .edit_step.toggled .icon-add {
      -webkit-transform: rotate(-135deg);
      -moz-transform: rotate(-135deg);
      -ms-transform: rotate(-135deg);
      -o-transform: rotate(-135deg);
      transform: rotate(-135deg); }
  .addon_buttons .icon-add {
    display: inline-block;
    height: 1.5rem;
    width: 1rem;
    line-height: 1.5rem;
    text-align: center;
    -webkit-transition: -webkit-transform;
    -moz-transition: -moz-transform;
    transition: transform;
    -webkit-transform: rotate(0deg);
    -moz-transform: rotate(0deg);
    -ms-transform: rotate(0deg);
    -o-transform: rotate(0deg);
    transform: rotate(0deg); }
  .checkout__step--inactive .addon_buttons {
    display: none; }

.next-step-btn .icon {
  margin-left: .5em; }

.edit_step,
.marker_edit_step {
  display: none;
  float: right;
  padding: 0 .5em;
  background-color: #333333;
  color: #fff;
  cursor: pointer;
  border-radius: 0px;
  font-size: 11px; }

.plus-icon {
  font-weight: bold; }

.edit_step:link,
.edit_step:visited {
  color: #fff; }

.checkout .checkout__step--inactive:hover .edit_step,
.checkout .checkout__step--inactive .edit_step:focus,
.checkout .edit_step:hover,
.checkout .edit_step:focus {
  background-color: #4d4d4d;
  color: #f0afaf; }

.edit_step:hover .plus-icon {
  color: #f0afaf; }

.edit_step {
  line-height: 24px;
  font-size: 12px;
  margin: 19px 1.25rem 0 0; }

.marker_edit_step {
  line-height: 20px;
  margin-top: -4px; }

#progress-list .complete .marker_edit_step {
  display: inline-block;
  float: none; }

input.checkout__qty {
  width: 3rem;
  text-align: right;
  float: right;
  margin: 0;
  padding-right: 0; }

.checkout__update-cart-btn .checkout__update-cart-btn__update {
  display: inline; }

.checkout__update-cart-btn .checkout__update-cart-btn__loading {
  display: none; }

.checkout__update-cart-btn:disabled .checkout__update-cart-btn__update {
  display: none; }

.checkout__update-cart-btn:disabled .checkout__update-cart-btn__loading {
  display: inline; }

.ellipsis_one,
.ellipsis_two,
.ellipsis_three {
  font-size: 1.25rem;
  line-height: 1rem;
  opacity: 0;
  -webkit-animation: ellipsis 0.9s infinite;
  -moz-animation: ellipsis 0.9s infinite;
  animation: ellipsis 0.9s infinite;
  -webkit-animation-delay: 0s;
  -moz-animation-delay: 0s;
  animation-delay: 0s; }

.ellipsis_two {
  -webkit-animation-delay: 0.2s;
  -moz-animation-delay: 0.2s;
  animation-delay: 0.2s; }

.ellipsis_three {
  -webkit-animation-delay: 0.3s;
  -moz-animation-delay: 0.3s;
  animation-delay: 0.3s; }

@-webkit-keyframes ellipsis {
  0% {
    opacity: 0; }
  50% {
    opacity: 0; }
  100% {
    opacity: 1; } }

@-moz-keyframes ellipsis {
  0% {
    opacity: 0; }
  50% {
    opacity: 0; }
  100% {
    opacity: 1; } }

@keyframes ellipsis {
  0% {
    opacity: 0; }
  50% {
    opacity: 0; }
  100% {
    opacity: 1; } }

.dialog-popup input[type="email"],
.dialog-popup input[type="password"] {
  background-color: #fff; }

.msgbox {
  display: none;
  padding: 1em 1em 1em 1em;
  float: left;
  width: 100%;
  clear: both;
  background-color: #f2f2f2;
  border-left: 5px solid #e6e6e6;
  margin-bottom: 1em; }
  .msgbox a {
    text-decoration: underline; }
  .msgbox p {
    padding: 0 2em 0 0;
    margin: 0; }

.msgbox__close {
  float: right;
  font-size: 1.3125rem;
  font-weight: bold;
  line-height: 1;
  color: #000;
  text-shadow: 0 1px 0 white;
  opacity: 0.2;
  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
  background-color: transparent !important;
  border-color: transparent;
  padding: 0; }
  .msgbox__close:hover, .msgbox__close:focus {
    text-decoration: none;
    cursor: pointer;
    opacity: 0.5;
    background-color: transparent; }

.checkout__step {
  padding-top: .5em;
  padding-bottom: 2em;
  margin-bottom: 1px;
  background: #ffffff; }

.checkout__step--inactive {
  padding-top: 0; }

#js-checkoutstep__overview .checkout__step__contents {
  display: none; }

#js-checkoutstep__overview .js-toggle-visibility.edit_step,
#js-checkoutstep__paymethod .js-toggle-visibility.edit_step {
  display: block;
  float: right;
  margin-left: 1em; }

.checkout__step:first-child {
  border-radius: -2px -2px 0 0; }

.checkout__step:last-child {
  margin-bottom: 0;
  border-radius: 0 0 -2px -2px; }

/* Inactive step styles */
.checkout__step--inactive {
  padding-bottom: 0;
  background: #ebebeb; }

.checkout__step__mirror,
.checkout__step--inactive .checkout__step__contents {
  display: none; }

.checkout__step--inactive.valid .checkout__step__mirror {
  display: block;
  clear: both; }

#js-checkoutstep__address h2 {
  margin-bottom: 16px; }

#js-checkoutstep__address .checkout__step__mirror {
  display: none; }

.checkout__step__contents {
  padding: 0 1.25rem;
  clear: both; }

#kasse_one_login_question,
#welcome_msg,
#welcome_msg--true {
  line-height: 1.5rem; }

#kasse_one_login_question p.subtle, #kasse_one_login_question #kasse_one_form p.subtaxes, #kasse_one_form #kasse_one_login_question p.subtaxes, #kasse_one_login_question .product__main-images p.bx-caption, .product__main-images #kasse_one_login_question p.bx-caption, #kasse_one_login_question p.product__meta-numbers, #kasse_one_login_question .product p.price--original, .product #kasse_one_login_question p.price--original, #kasse_one_login_question .product p.vat-info, .product #kasse_one_login_question p.vat-info, #kasse_one_login_question p.product__stockstatus {
  margin-top: 0; }

.kasse_one_logginn_error {
  margin-bottom: 1rem; }

.checkout__step--inactive h2 {
  font-weight: normal;
  font-size: 16px;
  color: rgba(51, 51, 51, 0.8); }

.checkout__step__mirror {
  color: #888;
  padding: 0 1.25rem 1.5em 4.3125rem;
  font-size: 13px; }
  .checkout__step__mirror h3 {
    margin: 0 0 .5em 0;
    font-size: 13px; }

.mirror__first-name,
.mirror__last-name,
.mirror__zip,
.mirror__city {
  display: inline; }

/* end inactive step styles */
/* freight options */
.freight-options,
.payment-options {
  margin: 0;
  padding: 0;
  list-style: none; }

.freight-option,
.payment-option {
  float: left;
  clear: both;
  width: 100%; }
  .freight-option:last-child,
  .payment-option:last-child {
    border-bottom: none; }

.payment-option {
  display: table; }
  .payment-option label {
    display: table-row;
    vertical-align: middle;
    width: 100%; }
    .payment-option label > * {
      display: table-cell;
      vertical-align: middle;
      padding: 1em 0 1em 0; }
      .payment-option label > *:first-child {
        padding-left: 5px; }
  .payment-option .payment-option__price {
    padding-left: 1em; }
  .payment-option.test .payment-option__name::after {
    margin-left: .5rem;
    font-size: 1.1rem;
    display: inline;
    /* use !important to prevent issues with browser extensions that change fonts */
    font-family: 'pioneer' !important;
    speak: none;
    font-style: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
    /* Better Font Rendering =========== */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    content: "";
    color: #e03114; }

.freight-option label {
  float: left;
  padding: 1em 5px 1em 1.875rem;
  width: 100%;
  line-height: 20px;
  margin-bottom: 0; }

.freight-option input[type=radio] {
  float: left;
  margin-left: -22px;
  margin-bottom: 0;
  margin-top: 2px;
  margin-right: 5px; }

.freight-option__name {
  width: 62%;
  padding-right: 0;
  padding-left: 3px;
  float: left; }

.freight-option__price {
  width: 29%;
  text-align: right;
  float: right; }

.freight-option__desc,
.payment-option__desc,
.attribute {
  clear: both;
  float: left;
  font-size: 12px;
  color: #999;
  padding: .5em 80px .5em 3px; }

.freight-option__desc {
  width: 100%;
  text-transform: none;
  font-weight: normal;
  padding-bottom: 0; }

.attribute {
  padding: 0; }

.payment-option__name {
  width: 40%; }

.payment-option__input-wrap {
  width: 1.875rem;
  padding-left: 5px; }
  .payment-option__input-wrap .remove_giftcard {
    margin-left: 5px; }
  .payment-option__input-wrap input {
    margin-left: 3px;
    margin-top: 2px;
    margin-bottom: 0; }

.payment-option__price {
  text-align: right;
  padding-right: 5px; }

/* end freight options */
/* edit step button */
.checkout__step--inactive.valid .edit_step {
  display: block; }

.is-toggler {
  cursor: pointer; }

.kasse_main {
  width: 100%;
  float: left; }

.checkout__step__headline {
  float: left;
  line-height: 28px;
  height: 28px;
  margin: 16px 0;
  padding: 0 10px 0 0;
  clear: right;
  font-size: 18px; }

.checkout__step--inactive.valid {
  cursor: pointer; }
  .checkout__step--inactive.valid h2 {
    margin-bottom: 8px; }

.kasse_one_step_number {
  float: left;
  height: 28px;
  width: 28px;
  line-height: 28px;
  font-size: 17px;
  font-weight: normal;
  text-align: center;
  z-index: 1;
  border-radius: 50%;
  background-color: #666666;
  margin: 16px 1.25rem 8px 1.25rem;
  padding: 0;
  color: #e5e5e5; }

button.remove_giftcard,
button.remove_rabatt {
  display: inline;
  margin-left: .5em;
  font-size: 1rem;
  font-weight: bold;
  padding: 0; }
  button.remove_giftcard, button.remove_giftcard:link, button.remove_giftcard:visited, button.remove_giftcard:hover, button.remove_giftcard:active, button.remove_giftcard:focus,
  button.remove_rabatt,
  button.remove_rabatt:link,
  button.remove_rabatt:visited,
  button.remove_rabatt:hover,
  button.remove_rabatt:active,
  button.remove_rabatt:focus {
    color: #e03114;
    background: transparent; }

.kasse_one_step_number--info {
  font-family: Georgia, 'Times New Roman', Times, serif;
  font-style: italic; }

#kasse_one_form label.error {
  display: block;
  clear: both;
  color: #b94a48;
  font-weight: bold;
  line-height: 1.5em;
  padding-bottom: .5em; }

#kasse_one_popup_area {
  position: absolute;
  width: 320px;
  /*height:   155px;*/
  padding: 15px;
  margin: 1em 0 0 0;
  color: #000;
  background: #ffffff;
  /* default background for browsers without gradient support */
  /* css3 */
  background-color: #fff;
  background-image: -webkit-linear-gradient(#fff, #f1f1f1);
  background-image: linear-gradient(#fff, #f1f1f1);
  border-radius: 10px;
  border-style: solid;
  border-width: 1px;
  border-color: #cbcbcb; }

#kasse_one_popup {
  display: none;
  position: absolute;
  z-index: 102; }

#kasse_one_popup_area span {
  font-weight: bold; }

.frakt_wrapper,
.payment_wrapper,
.payment_wrapper > label.error,
.frakt_wrapper > label.error {
  margin-bottom: 1em; }

#kasse_one_ordre_oversikt {
  margin-bottom: 1.5em; }
  #kasse_one_ordre_oversikt tr:nth-of-type(even) {
    background: transparent; }

.subtle, #kasse_one_form .subtaxes, .product__main-images .bx-caption, .product__meta-numbers, .product .price--original, .product .vat-info, .product__stockstatus, .rating input:checked ~ label, .rating label:hover ~ label {
  font-size: 13px; }

#kasse_one_form .subtaxes {
  font-weight: normal;
  font-style: italic; }

#welcome_msg {
  display: none; }

.hasPlaceholder {
  color: #bbb; }

.mini-img {
  text-align: center;
  vertical-align: middle; }

label[for="kjopsbet"] a {
  text-decoration: underline;
  text-transform: lowercase; }
  label[for="kjopsbet"] a:hover {
    cursor: help; }

label[for="kjopsbet"] a b {
  font-weight: normal; }

table.lined {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 1.5em;
  clear: both; }
  table.lined th,
  table.lined td {
    line-height: 1.5em;
    padding: 5px 7px;
    border-right: 1px dotted rgba(51, 51, 51, 0.4); }
    table.lined th:last-child,
    table.lined td:last-child {
      border-right: none; }
  table.lined thead th {
    border-bottom: 1px solid rgba(51, 51, 51, 0.4); }
  table.lined tbody td {
    border-top: 1px dashed rgba(51, 51, 51, 0.4); }
  table.lined tbody tr:first-child td {
    border-top: none; }
  table.lined tfoot {
    font-weight: bold; }
    table.lined tfoot td {
      border-top: 1px solid rgba(51, 51, 51, 0.4);
      line-height: 2em; }
    table.lined tfoot.sum td {
      border-bottom: 3px double rgba(51, 51, 51, 0.4); }
  table.lined .price {
    text-align: right; }

.control-group {
  padding-left: 0.9375rem;
  padding-right: 0.9375rem;
  width: 100%;
  float: left; }
  .row.collapse > .control-group {
    padding-left: 0;
    padding-right: 0; }

.checkout__sum-too-small__errormsg {
  display: none; }
  .checkout__sum-too-small .checkout__sum-too-small__errormsg {
    display: block; }

.checkout__sum-too-small .checkout__sum-too-small__errormsg {
  color: #e03114;
  display: block; }

@media only screen and (min-width: 27em) {
  .control-group {
    width: 83.33333%; }
  .addon_buttons {
    margin-top: 1rem;
    float: right;
    clear: right; } }

@media only screen and (min-width: 40em) {
  .addon_buttons {
    padding-right: 1.875rem; }
  .cart-contents .mini-img {
    padding: 5px 7px; }
  .mini-img img {
    display: block; }
  .checkout__step__contents {
    padding: 0 1.875rem 0 4.3125rem; }
  .control-group {
    width: 100%; }
  .checkout-login {
    font-size: 0.875rem; }
  .checkout__step__contents .next-step-btn {
    padding-top: 1rem;
    padding-right: 2rem;
    padding-bottom: 1.0625rem;
    padding-left: 2rem;
    font-size: 1rem; }
    .checkout__step__contents .next-step-btn .arrow {
      display: inline !important; }
  .checkout__step__contents .close {
    padding: 0; }
  .checkout__step__mirror {
    padding-left: 4.3125rem;
    padding-right: 1.875rem; }
  #js-checkoutstep__address.checkout__step--inactive.valid .checkout__step__mirror {
    display: block; }
  #js-checkoutstep__address.checkout__step--inactive.valid h2 {
    margin-bottom: 8px; }
  .checkout__step__mirror__address {
    margin-bottom: 0; }
  .freight-option input[type=radio] {
    float: left;
    margin-left: -22px;
    margin-bottom: 0;
    margin-top: 2px; } }

@media only screen and (min-width: 64em) {
  .checkout__step__contents,
  .checkout__step__mirror,
  .addon_buttons {
    padding-right: 4.3125rem; } }

.reveal-modal-bg {
  position: fixed;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  background: #000000;
  background: rgba(0, 0, 0, 0.45);
  z-index: 1004;
  display: none;
  left: 0; }

.reveal-modal {
  visibility: hidden;
  display: none;
  position: absolute;
  z-index: 1005;
  width: 100%;
  top: 0;
  border-radius: 0px;
  left: 0;
  background-color: #FFFFFF;
  padding: 1.875rem;
  border: solid 1px #666666;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.4); }
  @media only screen and (max-width: 39.9375em) {
    .reveal-modal {
      min-height: 100vh; } }
  .reveal-modal .column, .reveal-modal .columns {
    min-width: 0; }
  .reveal-modal > :first-child {
    margin-top: 0; }
  .reveal-modal > :last-child {
    margin-bottom: 0; }
  @media only screen and (min-width: 40em) {
    .reveal-modal {
      width: 80%;
      max-width: 80rem;
      left: 0;
      right: 0;
      margin: 0 auto; } }
  @media only screen and (min-width: 40em) {
    .reveal-modal {
      top: 6.25rem; } }
  .reveal-modal.radius {
    border-radius: 0px; }
  .reveal-modal.round {
    border-radius: 1000px; }
  .reveal-modal.collapse {
    padding: 0; }
  @media only screen and (min-width: 40em) {
    .reveal-modal.tiny {
      width: 30%;
      max-width: 80rem;
      left: 0;
      right: 0;
      margin: 0 auto; } }
  @media only screen and (min-width: 40em) {
    .reveal-modal.small {
      width: 40%;
      max-width: 80rem;
      left: 0;
      right: 0;
      margin: 0 auto; } }
  @media only screen and (min-width: 40em) {
    .reveal-modal.medium {
      width: 60%;
      max-width: 80rem;
      left: 0;
      right: 0;
      margin: 0 auto; } }
  @media only screen and (min-width: 40em) {
    .reveal-modal.large {
      width: 70%;
      max-width: 80rem;
      left: 0;
      right: 0;
      margin: 0 auto; } }
  @media only screen and (min-width: 40em) {
    .reveal-modal.xlarge {
      width: 95%;
      max-width: 80rem;
      left: 0;
      right: 0;
      margin: 0 auto; } }
  .reveal-modal.full {
    top: 0;
    left: 0;
    height: 100%;
    height: 100vh;
    min-height: 100vh;
    max-width: none !important;
    margin-left: 0 !important; }
    @media only screen and (min-width: 40em) {
      .reveal-modal.full {
        width: 100%;
        max-width: 80rem;
        left: 0;
        right: 0;
        margin: 0 auto; } }
  .reveal-modal.toback {
    z-index: 1003; }
  .reveal-modal .close-reveal-modal {
    font-size: 2.5rem;
    line-height: 1;
    position: absolute;
    top: 0.625rem;
    right: 1.375rem;
    color: #AAAAAA;
    font-weight: bold;
    cursor: pointer; }

/**
 * React Select
 * ============
 * Created by Jed Watson and Joss Mackison for KeystoneJS, http://www.keystonejs.com/
 * https://twitter.com/jedwatson https://twitter.com/jossmackison https://twitter.com/keystonejs
 * MIT License: https://github.com/keystonejs/react-select
*/
@keyframes Select-animation-spin {
  to {
    transform: rotate(1turn); } }

@-webkit-keyframes Select-animation-spin {
  to {
    -webkit-transform: rotate(1turn); } }

.Select {
  position: relative; }
  .Select,
  .Select div,
  .Select input,
  .Select span {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box; }
  .Select.is-disabled > .Select-control {
    background-color: #f9f9f9; }
    .Select.is-disabled > .Select-control:hover {
      box-shadow: none; }
  .Select.is-disabled .Select-arrow-zone {
    cursor: default;
    pointer-events: none; }

.Select-control {
  background-color: #FAFAFA;
  border-color: #d9d9d9 #ccc #b3b3b3;
  border-radius: 3px;
  border: 0px solid #ccc;
  color: #333;
  cursor: default;
  display: table;
  border-spacing: 0;
  border-collapse: separate;
  height: 36px;
  outline: none;
  overflow: hidden;
  position: relative;
  width: 100%; }
  .Select-control:hover {
    box-shadow: 0 1px 0 rgba(0, 0, 0, 0.06); }

.is-searchable.is-open > .Select-control {
  cursor: text; }

.is-open > .Select-control {
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
  background: #FAFAFA;
  border-color: #b3b3b3 #ccc #d9d9d9; }
  .is-open > .Select-control > .Select-arrow {
    border-color: transparent transparent #999;
    border-width: 0 5px 5px; }

.is-searchable.is-focused:not(.is-open) > .Select-control {
  cursor: text; }

.is-focused:not(.is-open) > .Select-control {
  border-color: #08c #0099e6 #0099e6;
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 0 5px -1px fade(#08c, 50%); }

.Select-placeholder,
:not(.Select--multi) > .Select-control .Select-value {
  bottom: 0;
  color: #aaa;
  left: 0;
  line-height: 36px;
  padding-left: 10px;
  padding-right: 10px;
  position: absolute;
  right: 0;
  top: 0;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap; }

.has-value:not(.Select--multi):not(.is-focused) > .Select-control > .Select-value .Select-value-label,
.has-value.is-pseudo-focused:not(.Select--multi) > .Select-control > .Select-value .Select-value-label {
  color: #333; }

.has-value:not(.Select--multi):not(.is-focused) > .Select-control > .Select-value a.Select-value-label,
.has-value.is-pseudo-focused:not(.Select--multi) > .Select-control > .Select-value a.Select-value-label {
  cursor: pointer;
  text-decoration: none; }
  .has-value:not(.Select--multi):not(.is-focused) > .Select-control > .Select-value a.Select-value-label:hover,
  .has-value.is-pseudo-focused:not(.Select--multi) > .Select-control > .Select-value a.Select-value-label:hover {
    color: #08c;
    text-decoration: underline; }

.Select-input {
  height: 36px;
  padding-left: 10px;
  padding-right: 10px;
  vertical-align: middle; }
  .Select-input > input {
    background: none transparent;
    border: 0 none;
    box-shadow: none;
    cursor: default;
    display: inline-block;
    font-family: inherit;
    font-size: inherit;
    height: 36px;
    margin: 0;
    outline: none;
    padding: 0;
    -webkit-appearance: none; }
    .is-focused .Select-input > input {
      cursor: text; }

.has-value.is-pseudo-focused .Select-input {
  opacity: 0; }

.Select-control:not(.is-searchable) > .Select-input {
  outline: none; }

.Select-loading-zone {
  cursor: pointer;
  display: table-cell;
  position: relative;
  text-align: center;
  vertical-align: middle;
  width: 16px; }

.Select-loading {
  -webkit-animation: Select-animation-spin 400ms infinite linear;
  -o-animation: Select-animation-spin 400ms infinite linear;
  animation: Select-animation-spin 400ms infinite linear;
  width: 16px;
  height: 16px;
  box-sizing: border-box;
  border-radius: 50%;
  border: 2px solid #ccc;
  border-right-color: #333;
  display: inline-block;
  position: relative;
  vertical-align: middle; }

.Select-clear-zone {
  -webkit-animation: Select-animation-fadeIn 200ms;
  -o-animation: Select-animation-fadeIn 200ms;
  animation: Select-animation-fadeIn 200ms;
  color: #999;
  cursor: pointer;
  display: table-cell;
  position: relative;
  text-align: center;
  vertical-align: middle;
  width: 18px; }
  .Select-clear-zone:hover {
    color: #D0021B; }

.Select-clear {
  display: inline-block;
  font-size: 18px;
  line-height: 1; }

.Select--multi .Select-clear-zone {
  width: 18px; }

.Select-arrow-zone {
  cursor: pointer;
  display: table-cell;
  position: relative;
  text-align: center;
  vertical-align: middle;
  width: 25px;
  padding-right: 5px; }

.Select-arrow {
  border-color: #999 transparent transparent;
  border-style: solid;
  border-width: 5px 5px 2.5px;
  display: inline-block;
  height: 0;
  width: 0; }

.is-open .Select-arrow,
.Select-arrow-zone:hover > .Select-arrow {
  border-top-color: #666; }

@-webkit-keyframes Select-animation-fadeIn {
  from {
    opacity: 0; }
  to {
    opacity: 1; } }

@keyframes Select-animation-fadeIn {
  from {
    opacity: 0; }
  to {
    opacity: 1; } }

.Select-menu-outer {
  border-bottom-right-radius: 3px;
  border-bottom-left-radius: 3px;
  background-color: #FAFAFA;
  border: 1px solid #ccc;
  border-top-color: #e3e3e3;
  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.06);
  box-sizing: border-box;
  margin-top: -1px;
  max-height: 200px;
  position: absolute;
  top: 100%;
  width: 100%;
  z-index: 1000;
  -webkit-overflow-scrolling: touch; }

.Select-menu {
  max-height: 198px;
  overflow-y: auto; }

.Select-option {
  box-sizing: border-box;
  background-color: #FAFAFA;
  color: #666666;
  cursor: pointer;
  display: block;
  padding: 8px 10px; }
  .Select-option:last-child {
    border-bottom-right-radius: 3px;
    border-bottom-left-radius: 3px; }
  .Select-option.is-focused {
    background-color: #cc2626;
    color: white; }
  .Select-option.is-selected {
    background-color: #FAFAFA;
    color: rgba(0, 0, 0, 0.75); }
  .Select-option.is-disabled {
    color: #cccccc;
    cursor: default; }

.Select-noresults {
  box-sizing: border-box;
  color: #999999;
  cursor: default;
  display: block;
  padding: 8px 10px; }

.Select--multi .Select-input {
  vertical-align: middle;
  margin-left: 10px;
  padding: 0; }

.Select--multi.has-value .Select-input {
  margin-left: 5px; }

.Select--multi .Select-value {
  background-color: #f2f9fc;
  border-radius: 2px;
  border: 1px solid #c9e6f2;
  color: #08c;
  display: inline-block;
  font-size: 0.9em;
  margin-left: 5px;
  margin-top: 5px;
  vertical-align: top; }

.Select--multi .Select-value-icon,
.Select--multi .Select-value-label {
  display: inline-block;
  vertical-align: middle; }

.Select--multi .Select-value-label {
  border-bottom-right-radius: 2px;
  border-top-right-radius: 2px;
  cursor: default;
  padding: 2px 5px; }

.Select--multi a.Select-value-label {
  color: #08c;
  cursor: pointer;
  text-decoration: none; }
  .Select--multi a.Select-value-label:hover {
    text-decoration: underline; }

.Select--multi .Select-value-icon {
  cursor: pointer;
  border-bottom-left-radius: 2px;
  border-top-left-radius: 2px;
  border-right: 1px solid #c9e6f2;
  padding: 1px 5px 3px; }
  .Select--multi .Select-value-icon:hover, .Select--multi .Select-value-icon:focus {
    background-color: #ddeff7;
    color: #0077b3; }
  .Select--multi .Select-value-icon:active {
    background-color: #c9e6f2; }

.Select--multi.is-disabled .Select-value {
  background-color: #fcfcfc;
  border: 1px solid #e3e3e3;
  color: #333; }

.Select--multi.is-disabled .Select-value-icon {
  cursor: not-allowed;
  border-right: 1px solid #e3e3e3; }
  .Select--multi.is-disabled .Select-value-icon:hover, .Select--multi.is-disabled .Select-value-icon:focus, .Select--multi.is-disabled .Select-value-icon:active {
    background-color: #fcfcfc; }

@keyframes Select-animation-spin {
  to {
    transform: rotate(1turn); } }

@-webkit-keyframes Select-animation-spin {
  to {
    -webkit-transform: rotate(1turn); } }

table.checkout--kco__cart th.price,
table.checkout--kco__cart td.price, table.checkout--kco__cart .checkout__qty {
  font-variant-numeric: tabular-nums;
  -moz-font-feature-settings: "tnum";
  -webkit-font-feature-settings: "tnum";
  font-feature-settings: "tnum"; }

.freight-option > label input[type="radio"], .checkout__payment-methods-list .payment-method label input[type="radio"] {
  opacity: 0; }

.freight-option > label input[type="radio"] + span, .checkout__payment-methods-list .payment-method label input[type="radio"] + span {
  position: relative; }
  .freight-option > label input[type="radio"] + span:before, .checkout__payment-methods-list .payment-method label input[type="radio"] + span:before, .freight-option > label input[type="radio"] + span:after, .checkout__payment-methods-list .payment-method label input[type="radio"] + span:after {
    content: '.';
    box-sizing: content-box;
    color: transparent;
    display: block;
    position: absolute;
    overflow: hidden;
    top: 50%;
    margin-top: -7px;
    left: -1.375rem;
    width: 14px;
    height: 14px;
    border-radius: 1000px;
    opacity: 1;
    -webkit-transition: all 300ms cubic-bezier(0.65, 0.05, 0.36, 1);
    -moz-transition: all 300ms cubic-bezier(0.65, 0.05, 0.36, 1);
    transition: all 300ms cubic-bezier(0.65, 0.05, 0.36, 1); }
  .freight-option > label input[type="radio"] + span:before, .checkout__payment-methods-list .payment-method label input[type="radio"] + span:before {
    background-color: #cc2626;
    -webkit-transform: scale(0.8);
    -moz-transform: scale(0.8);
    -ms-transform: scale(0.8);
    transform: scale(0.8); }
  .freight-option > label input[type="radio"] + span:after, .checkout__payment-methods-list .payment-method label input[type="radio"] + span:after {
    background-color: white;
    box-shadow: black 0 0 1px, inset black 0 0 1px;
    -webkit-transform: scale(1);
    -moz-transform: scale(1);
    -ms-transform: scale(1);
    transform: scale(1); }

.freight-option > label input[type="radio"]:checked + span:before, .checkout__payment-methods-list .payment-method label input[type="radio"]:checked + span:before {
  -webkit-transform: scale(1);
  -moz-transform: scale(1);
  -ms-transform: scale(1);
  transform: scale(1); }

.freight-option > label input[type="radio"]:checked + span:after, .checkout__payment-methods-list .payment-method label input[type="radio"]:checked + span:after {
  -webkit-transform: scale(0.4);
  -moz-transform: scale(0.4);
  -ms-transform: scale(0.4);
  transform: scale(0.4);
  box-shadow: transparent 0 0 1px, inset transparent 0 0 1px; }

input[type="radio"][disabled] + span .freight-option > label:before, input[type="radio"][disabled] + span .checkout__payment-methods-list .payment-method label:before, .checkout__payment-methods-list .payment-method input[type="radio"][disabled] + span label:before {
  background-color: #767676; }

form:invalid .js-kasse-one-submit {
  color: white;
  background-color: #767676;
  pointer-events: none;
  -ms-user-select: none;
  /* IE/Edge */
  user-select: none;
  opacity: 0.6; }

.checkout__step--shipping {
  position: relative;
  z-index: 2; }

.freight--pickup-point {
  clear: both; }

.Select-control {
  font-size: 0.875rem;
  margin-bottom: 1rem;
  margin-left: 1px;
  margin-right: 1px;
  box-shadow: #cccccc 0 0 0 1px; }
  .Select-control:hover {
    box-shadow: #cccccc 0 0 0 1px, rgba(0, 0, 0, 0.1) 0 5px 10px; }

.Select-option {
  position: relative;
  font-size: 0.875rem;
  padding-left: 1.6em; }

.Select-option.is-selected:before {
  content: '✓';
  transform: scale(1.2);
  position: absolute;
  top: 0.5rem;
  text-align: center;
  left: 0;
  width: 1.6em; }

.Select-option.is-selected:hover {
  color: white;
  background-color: #cc2626; }

.Select-menu-outer {
  border-width: 0px;
  margin-left: 1px;
  margin-right: 1px; }

.Select-menu {
  border-bottom-right-radius: 3px;
  border-bottom-left-radius: 3px;
  box-shadow: #cccccc 0 0 0 1px, rgba(0, 0, 0, 0.1) 0 5px 10px; }

.checkout--kco .js-attach_comment {
  padding-left: 0; }
  .checkout--kco .js-attach_comment:before {
    /* use !important to prevent issues with browser extensions that change fonts */
    font-family: 'pioneer' !important;
    speak: none;
    font-style: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
    /* Better Font Rendering =========== */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    content: ""; }

#klarna-checkout-container {
  position: relative;
  max-width: 664px;
  background-color: white; }

.checkout--kco__overlay {
  display: block;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  color: #757575;
  text-align: center;
  -webkit-user-select: none;
  user-select: none;
  z-index: 1; }
  .checkout--kco__overlay, .checkout--kco__overlay + * {
    -webkit-transform-origin: 50% 0%;
    -moz-transform-origin: 50% 0%;
    -ms-transform-origin: 50% 0%;
    -o-transform-origin: 50% 0%;
    transform-origin: 50% 0%; }
  .checkout--kco__overlay em {
    display: block;
    font-size: 1rem;
    position: absolute;
    top: 0;
    left: 0.625rem;
    right: 0.625rem; }

.freight-option {
  position: relative; }
  .freight-option:before {
    border: 1px rgba(204, 38, 38, 0.6) solid;
    border-radius: 6px;
    content: '';
    display: block;
    position: absolute;
    top: -0.46875rem;
    left: 0;
    right: 0;
    bottom: -0.23438rem;
    opacity: 0;
    -webkit-transform: scaleX(0.98) scaleY(0.8);
    -moz-transform: scaleX(0.98) scaleY(0.8);
    -ms-transform: scaleX(0.98) scaleY(0.8);
    transform: scaleX(0.98) scaleY(0.8);
    -webkit-transition: all 300ms cubic-bezier(0.65, 0.05, 0.36, 1);
    -moz-transition: all 300ms cubic-bezier(0.65, 0.05, 0.36, 1);
    transition: all 300ms cubic-bezier(0.65, 0.05, 0.36, 1); }
  .freight-option.active:before {
    opacity: 1;
    -webkit-transform: scaleX(1) scaleY(1);
    -moz-transform: scaleX(1) scaleY(1);
    -ms-transform: scaleX(1) scaleY(1);
    transform: scaleX(1) scaleY(1); }
  .freight-option > label {
    position: relative; }
  .freight-option.inactive > * {
    opacity: 0.3; }

.kco_shipping_show_more_options {
  display: block;
  font-size: 0.875rem;
  margin-left: 3px;
  padding-bottom: .5rem;
  padding-top: .75rem;
  padding-left: 1.5rem; }

.checkout--kco__payment-options .control-group, .customer-type .control-group {
  padding-bottom: 0.2rem;
  box-shadow-bottom: 0 1px 0 rgba(51, 51, 51, 0.2);
  width: 100%; }
  .checkout--kco__payment-options .control-group label, .customer-type .control-group label {
    -webkit-transition: all 150ms ease;
    -moz-transition: all 150ms ease;
    transition: all 150ms ease;
    font-weight: bold;
    opacity: 0.6;
    margin-right: 0.5rem; }
  .checkout--kco__payment-options .control-group :checked + label, .customer-type .control-group :checked + label {
    opacity: 1;
    text-decoration: underline; }

.reveal-modal {
  position: fixed;
  top: 16px;
  background-color: #ffffff; }
  .reveal-modal .close-reveal-modal {
    color: #757575; }
    .reveal-modal .close-reveal-modal:hover {
      color: #eb0000; }
  @media only screen and (max-width: 39.9375em) {
    .reveal-modal {
      min-height: initial !important; } }

.checkout--kco__page-header {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; }

.checkout--kco__custom-intro {
  position: relative;
  margin-bottom: 2em; }
  .checkout--kco__custom-intro:last-child {
    border: none; }

.checkout--kco {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; }
  .checkout--kco .price-diff {
    position: relative;
    white-space: nowrap; }
  .checkout--kco .current-price {
    position: relative;
    opacity: 0.75; }
  .checkout--kco .pending-price {
    position: absolute;
    right: 0;
    top: 100%;
    line-height: 1em;
    height: 1em; }
  .checkout--kco .checkout__step__headline {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; }
  .checkout--kco.checkout__steps {
    padding: 0;
    background-color: transparent; }
  .checkout--kco .checkout__step {
    padding-top: 1rem;
    padding-bottom: 1rem; }
    .checkout--kco .checkout__step:last-child {
      border: none; }
  .checkout--kco .checkout__bottom-toolbar > .columns {
    margin-bottom: 0.5em; }
  .checkout--kco .checkout__step__headline {
    font-weight: bold;
    width: 100%;
    margin: 0 0 .5rem 0;
    padding: 0 0 .5rem 0;
    height: auto; }
  .checkout--kco .kasse_one_step_number {
    margin-top: 0;
    margin-bottom: 0; }
  .checkout--kco .addon_buttons {
    text-align: right; }
    .checkout--kco .addon_buttons .edit_step {
      float: none;
      display: inline-block;
      text-decoration: none;
      margin-left: .5rem;
      padding-right: 1rem;
      background-color: #e7e7e7;
      border-color: #747474;
      color: #535353;
      -webkit-transition: all 300ms ease;
      -moz-transition: all 300ms ease;
      transition: all 300ms ease; }
      .checkout--kco .addon_buttons .edit_step:hover {
        background-color: #b1b1b1;
        color: #2f2f2f; }
      .checkout--kco .addon_buttons .edit_step:first-child {
        margin-left: 0; }
  .checkout--kco .checkout-kco__address-form input, .checkout--kco .checkout-kco__address-form button, .checkout--kco .checkout-kco__address-form select {
    border-radius: 3px; }
  .checkout--kco .checkout-kco__address-form .checkout--kco__shipping-country select[disabled] {
    display: none; }
  .checkout--kco button,
  .checkout--kco .button,
  .checkout--kco input[type="number"],
  .checkout--kco .edit_step {
    border-radius: 3px; }
  .checkout--kco button:not(.remove_rabatt):not(.remove_giftcard),
  .checkout--kco .button:not(.remove_rabatt):not(.remove_giftcard),
  .checkout--kco input[type=submit]:not(.remove_rabatt):not(.remove_giftcard),
  .checkout--kco .edit_step:not(.remove_rabatt):not(.remove_giftcard) {
    font-weight: bold;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), inset 0 -3px 0 rgba(0, 0, 0, 0.1), 0 2px 5px rgba(0, 0, 0, 0.1); }
    .checkout--kco button:not(.remove_rabatt):not(.remove_giftcard):active,
    .checkout--kco .button:not(.remove_rabatt):not(.remove_giftcard):active,
    .checkout--kco input[type=submit]:not(.remove_rabatt):not(.remove_giftcard):active,
    .checkout--kco .edit_step:not(.remove_rabatt):not(.remove_giftcard):active {
      box-shadow: inset 0 3px 0 rgba(0, 0, 0, 0.1);
      outline: none; }
  .checkout--kco .next-step-btn {
    font-size: 0.875rem; }
  .checkout--kco .edit_step {
    font-size: 0.8125rem; }
    .checkout--kco .edit_step .icon-add {
      line-height: 1.6rem;
      /* to fixed a messed up rotate animation */
      -webkit-transition: all 150ms ease;
      -moz-transition: all 150ms ease;
      transition: all 150ms ease; }
    .checkout--kco .edit_step.disabled {
      display: none;
      opacity: 0.3;
      pointer-events: none;
      -ms-user-select: none;
      /* IE/Edge */
      user-select: none; }
  .checkout--kco input[type="text"]:focus, .checkout--kco input[type="text"].focus,
  .checkout--kco input[type="number"]:focus,
  .checkout--kco input[type="number"].focus,
  .checkout--kco input[type="tel"]:focus,
  .checkout--kco input[type="tel"].focus,
  .checkout--kco input[type="email"]:focus,
  .checkout--kco input[type="email"].focus {
    border: 1px solid #007bbb;
    box-shadow: inset 0 1px 1px 0 rgba(0, 0, 0, 0.17), inset 0 1px 3px rgba(0, 0, 0, 0.06), 0 0 3px 1px #007bbb; }
  .checkout--kco .zip::-webkit-inner-spin-button, .checkout--kco .zip::-webkit-outer-spin-button {
    -webkit-appearance: none;
    margin: 0; }

.checkout--kco__shipping-zip {
  position: relative; }
  .checkout--kco__shipping-zip label {
    position: absolute;
    right: 1.5rem;
    top: 50%;
    text-transform: uppercase;
    margin-top: -1.125rem;
    font-size: 0.875rem;
    font-weight: 500;
    opacity: 0.5;
    pointer-events: none;
    color: rgba(0, 0, 0, 0.5);
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
    left: 5em;
    left: 7ch;
    text-align: right;
    -webkit-transform-origin: 90% 50%;
    -moz-transform-origin: 90% 50%;
    -ms-transform-origin: 90% 50%;
    -o-transform-origin: 90% 50%;
    transform-origin: 90% 50%; }
  .checkout--kco__shipping-zip input.invalid:not(:focus) {
    border: 1px solid #eb0000;
    color: #eb0000;
    box-shadow: inset 0 1px 1px 0 rgba(0, 0, 0, 0.17), inset 0 1px 3px rgba(0, 0, 0, 0.06), 0 0 3px 1px #eb0000; }

.checkout__step--kco-window:only-child .checkout__step__contents {
  max-width: none;
  padding: 0; }

.kco-payment-wrapper, .alternate-payment-wrapper {
  min-height: 300px; }

.kco-payment-wrapper {
  position: relative;
  margin: -20px -12px -12px -12px; }

.alternate-payment-wrapper .checkout__step__headline {
  margin-left: 0.5625rem; }

.checkout__steps--iconized .kasse_one_step_number {
  width: 2.5rem;
  height: 2.5rem;
  line-height: 2.5rem;
  margin-left: 1.25rem;
  margin-right: 1rem;
  box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.5);
  position: relative; }
  .checkout__steps--iconized .kasse_one_step_number span {
    display: inline-block;
    position: absolute;
    top: 7px;
    left: 7px;
    right: 7px;
    bottom: 7px;
    z-index: 1; }
  .checkout__steps--iconized .kasse_one_step_number .icon-loading-indicator {
    display: block;
    height: 100%;
    width: 100%; }
    .checkout__steps--iconized .kasse_one_step_number .icon-loading-indicator:before {
      margin: 0px;
      height: 100%;
      width: 100%; }
  .checkout__steps--iconized .kasse_one_step_number i {
    text-shadow: 0 0 5px rgba(0, 0, 0, 0.5);
    color: #ffffff;
    display: inline-block; }

.checkout__steps--iconized .checkout__step__headline {
  line-height: 2.5rem; }

.checkout--kco__wrapper {
  position: relative;
  min-height: 210px;
  min-height: 50vh; }
  .checkout--kco__wrapper .activity-indicator {
    pointer-events: none;
    -ms-user-select: none;
    /* IE/Edge */
    user-select: none;
    position: fixed;
    opacity: 0;
    top: 50%;
    left: 50%;
    z-index: 300;
    height: 38px;
    width: 38px;
    border-radius: 1000px;
    box-shadow: rgba(0, 0, 0, 0.5) 0 0 1px, rgba(0, 0, 0, 0.3) 0 2px 6px;
    background-color: #cc2626;
    padding: 4px;
    z-index: 400;
    margin-top: -19px;
    margin-left: -19px;
    will-change: opacity, transform;
    -webkit-transform: scale(0.6);
    -moz-transform: scale(0.6);
    -ms-transform: scale(0.6);
    transform: scale(0.6);
    -webkit-transition: all 300ms cubic-bezier(0.65, 0.05, 0.36, 1);
    -moz-transition: all 300ms cubic-bezier(0.65, 0.05, 0.36, 1);
    transition: all 300ms cubic-bezier(0.65, 0.05, 0.36, 1); }
    .checkout--kco__wrapper .activity-indicator .svg {
      display: block;
      height: 100%;
      width: 100%;
      -webkit-animation: activity-rotate 600ms linear infinite;
      -o-animation: activity-rotate 600ms linear infinite;
      animation: activity-rotate 600ms linear infinite; }
      .checkout--kco__wrapper .activity-indicator .svg:before {
        /* We cannot run this using sassc yet
    @include svg((
        viewBox: 0 0 24 24
      )) {
        @include svg('defs') {
          @include svg('radialGradient', (
            cx: '25%',
            cy: '25%',
            id: 'a'
          )) {
                @include svg('stop', (
                  stop-color: $activity-color,
                  offset: '10%'
                ));
                @include svg('stop', (
                  stop-color: $activity-color,
                  stop-opacity: 0.1,
                  offset: '100%'
                ));
          };
        }
        @include svg('circle', (
            fill: none,
            cx: 12,
            cy: 12,
            r: 10,
            //stroke-width: 2,
            stroke: "url(#a)"
        ));
      }
      //*/
        content: url("data:image/svg+xml;charset=utf8,%3Csvg%20viewBox%3D%220%200%2024%2024%22%20xmlns%3D%22http%3A%2F%2Fwww%2Ew3%2Eorg%2F2000%2Fsvg%22%3E%3Cdefs%20%3E%3CradialGradient%20cx%3D%2225%25%22%20cy%3D%2225%25%22%20id%3D%22a%22%3E%3Cstop%20stop%2Dcolor%3D%22%23FFFFFF%22%20offset%3D%2210%25%22%2F%3E%3Cstop%20stop%2Dcolor%3D%22%23FFFFFF%22%20stop%2Dopacity%3D%220%2E1%22%20offset%3D%22100%25%22%2F%3E%3C%2FradialGradient%3E%3C%2Fdefs%3E%3Ccircle%20fill%3D%22none%22%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%2210%22%20stroke%3D%22url%28%23a%29%22%2F%3E%3C%2Fsvg%3E"); }
    .checkout--kco__wrapper .activity-indicator + div {
      -webkit-transition: opacity 300ms cubic-bezier(0.65, 0.05, 0.36, 1);
      -moz-transition: opacity 300ms cubic-bezier(0.65, 0.05, 0.36, 1);
      transition: opacity 300ms cubic-bezier(0.65, 0.05, 0.36, 1);
      opacity: 1; }
  .checkout--kco__wrapper.is-loading, .checkout--kco__wrapper.is-uploading {
    cursor: progress; }
    .checkout--kco__wrapper.is-loading .activity-indicator, .checkout--kco__wrapper.is-uploading .activity-indicator {
      -webkit-transform: scale(1);
      -moz-transform: scale(1);
      -ms-transform: scale(1);
      transform: scale(1);
      opacity: 1; }
      .checkout--kco__wrapper.is-loading .activity-indicator + div, .checkout--kco__wrapper.is-uploading .activity-indicator + div {
        -webkit-transition: opacity 3000ms ease-out;
        -moz-transition: opacity 3000ms ease-out;
        transition: opacity 3000ms ease-out;
        pointer-events: none;
        -ms-user-select: none;
        /* IE/Edge */
        user-select: none;
        opacity: 0.25; }

.kasse_one_step_number {
  position: relative; }

.icon-loading-indicator.is-loading {
  -webkit-animation: activity-rotate 600ms linear infinite;
  -o-animation: activity-rotate 600ms linear infinite;
  animation: activity-rotate 600ms linear infinite;
  display: inline-block;
  /*width: 2rem;
    width: rem-calc(24);
    height: 2rem;
    height: rem-calc(24);
    font-size: 1rem;
    font-size: rem-calc(12);
    line-height: 2rem;
    line-height: rem-calc(24);
    */ }
  .icon-loading-indicator.is-loading:before {
    display: inline-block;
    height: 1em;
    width: 1em;
    margin: .3em;
    /* We cannot run this using sassc yet
    @include svg((
        viewBox: 0 0 24 24
      )) {
        @include svg('defs') {
          @include svg('radialGradient', (
            cx: '25%',
            cy: '25%',
            id: 'a'
          )) {
                @include svg('stop', (
                  stop-color: $activity-color,
                  offset: '10%'
                ));
                @include svg('stop', (
                  stop-color: $activity-color,
                  stop-opacity: 0.1,
                  offset: '100%'
                ));
          };
        }
        @include svg('circle', (
            fill: none,
            cx: 12,
            cy: 12,
            r: 10,
            //stroke-width: 2,
            stroke: "url(#a)"
        ));
      }
      //*/
    content: url("data:image/svg+xml;charset=utf8,%3Csvg%20viewBox%3D%220%200%2024%2024%22%20xmlns%3D%22http%3A%2F%2Fwww%2Ew3%2Eorg%2F2000%2Fsvg%22%3E%3Cdefs%20%3E%3CradialGradient%20cx%3D%2225%25%22%20cy%3D%2225%25%22%20id%3D%22a%22%3E%3Cstop%20stop%2Dcolor%3D%22%23FFFFFF%22%20offset%3D%2210%25%22%2F%3E%3Cstop%20stop%2Dcolor%3D%22%23FFFFFF%22%20stop%2Dopacity%3D%220%2E1%22%20offset%3D%22100%25%22%2F%3E%3C%2FradialGradient%3E%3C%2Fdefs%3E%3Ccircle%20fill%3D%22none%22%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%2210%22%20stroke%3D%22url%28%23a%29%22%2F%3E%3C%2Fsvg%3E"); }

table.checkout--kco__cart {
  outline: 1px solid rgba(51, 51, 51, 0.1); }
  table.checkout--kco__cart th,
  table.checkout--kco__cart td {
    font-size: 0.8125rem;
    line-height: 1.5;
    padding: 0.5rem 0.75rem;
    border: 1px solid rgba(51, 51, 51, 0.05); }
    table.checkout--kco__cart th:first-child,
    table.checkout--kco__cart td:first-child {
      border-left: none; }
    table.checkout--kco__cart th.price,
    table.checkout--kco__cart td.price {
      white-space: nowrap;
      width: 1px; }
  table.checkout--kco__cart thead th {
    box-shadow: 0 3px 0 rgba(0, 0, 0, 0.04);
    padding: .75rem;
    border-bottom: 1px solid rgba(51, 51, 51, 0.05);
    border-top: 1px solid rgba(255, 255, 255, 0.5); }
  table.checkout--kco__cart tbody tr:last-child td {
    box-shadow: 0 3px 0 rgba(0, 0, 0, 0.02); }
  table.checkout--kco__cart tfoot.sum td {
    border-top: 1px solid rgba(255, 255, 255, 0.5);
    border-bottom: none;
    box-shadow: 0 3px 0 rgba(0, 0, 0, 0.04); }
  table.checkout--kco__cart .mini-img {
    text-align: center;
    border-right: none;
    display: inline-block;
    width: 0;
    padding: 0; }
    table.checkout--kco__cart .mini-img img {
      height: 2.21875rem;
      margin: 0; }
  table.checkout--kco__cart .discount .mini-img,
  table.checkout--kco__cart .shipping .mini-img,
  table.checkout--kco__cart .giftcard .mini-img {
    position: relative; }
    table.checkout--kco__cart .discount .mini-img [class^="icon-"],
    table.checkout--kco__cart .shipping .mini-img [class^="icon-"],
    table.checkout--kco__cart .giftcard .mini-img [class^="icon-"] {
      position: absolute;
      left: 0.75rem;
      top: 1px; }
  table.checkout--kco__cart .discount .product-name,
  table.checkout--kco__cart .shipping .product-name,
  table.checkout--kco__cart .giftcard .product-name {
    text-indent: 1.5rem; }
  table.checkout--kco__cart .discount__rate {
    border-radius: 4px;
    font-size: 0.6875rem;
    font-weight: normal;
    display: inline-block;
    margin: -0.375rem 0.375rem 0 0.375rem;
    padding: 0.125rem 0.3125rem;
    color: #e81314;
    background-color: rgba(232, 19, 20, 0.25); }
  table.checkout--kco__cart .attributes {
    font-weight: normal; }
  table.checkout--kco__cart .product-name {
    border-left: none;
    position: relative; }
  table.checkout--kco__cart .checkout__qty {
    height: 2rem;
    padding: .25rem 0 .25rem .25rem;
    box-shadow: none;
    text-align: center;
    -webkit-transition: all 300ms ease;
    -moz-transition: all 300ms ease;
    transition: all 300ms ease; }
    table.checkout--kco__cart .checkout__qty.primary-color-bg:focus {
      border-color: #cc2626;
      box-shadow: inset 0 1px 1px 0 rgba(0, 0, 0, 0.17), inset 0 1px 3px rgba(0, 0, 0, 0.06), 0 0 3px 1px #cc2626; }
  table.checkout--kco__cart .subtaxes {
    opacity: 0.6;
    font-style: italic;
    font-weight: normal; }
  table.checkout--kco__cart .service td,
  table.checkout--kco__cart .discount td,
  table.checkout--kco__cart .giftcard td,
  table.checkout--kco__cart .shipping td {
    border-right: none;
    border-left: none; }

.checkout--kco__freight-protip {
  bottom: 100%;
  font-size: 12px;
  color: #616161;
  background-color: #e0e0e0;
  border-radius: 5px;
  margin-bottom: -0.5rem;
  padding: 4px 7px;
  position: relative; }
  .checkout--kco__freight-protip strong {
    color: #4f4f4f;
    white-space: nowrap; }
  .checkout--kco__freight-protip:after {
    content: "";
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    border-color: #e0e0e0 transparent transparent transparent;
    border-top-style: solid;
    position: absolute;
    top: 100%;
    left: 8px; }

.checkout--kco__payment-notice {
  font-style: italic; }

.checkout__product-name-wrap {
  display: none; }

.product-name--has-attributes:after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  z-index: 2;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 0 0.625rem 0.625rem 0;
  border-color: transparent #e81314 transparent transparent; }

.product-name--has-attributes:hover, .product-name--has-attributes:focus {
  outline: none; }
  .product-name--has-attributes:hover .checkout__product-name-wrap, .product-name--has-attributes:focus .checkout__product-name-wrap {
    display: block;
    position: absolute;
    z-index: 3;
    top: 0;
    left: 0;
    width: 100%;
    padding: 0.82812rem 0.6875rem;
    border: 1px solid whitesmoke;
    background: #ffffff;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); }

.checkout--kco__corporate-link {
  margin-bottom: 1rem; }

.checkout--kco__keep-shopping {
  margin-left: .5rem; }

.checkout--kco__payment-notice {
  display: block;
  padding-top: 0.4375rem;
  padding-bottom: 0.4375rem; }

.kco_shipping_options {
  margin-top: 0.46875rem;
  margin-bottom: 0.46875rem; }
  .kco_shipping_options .freight-option {
    border-bottom: none; }
    .kco_shipping_options .freight-option label {
      padding-bottom: 0.9375rem;
      padding-top: 0.9375rem;
      padding-left: 1.8125rem;
      padding-right: 0.9375rem; }

.checkout__payment-methods-list {
  list-style: none; }
  .checkout__payment-methods-list > :first-child {
    margin-bottom: 0.23438rem; }
  .checkout__payment-methods-list .payment-method {
    display: block;
    position: relative; }
    .checkout__payment-methods-list .payment-method:first-of-type {
      -webkit-transition: box-shadow 300ms cubic-bezier(0.65, 0.05, 0.36, 1);
      -moz-transition: box-shadow 300ms cubic-bezier(0.65, 0.05, 0.36, 1);
      transition: box-shadow 300ms cubic-bezier(0.65, 0.05, 0.36, 1);
      box-shadow: 0 -1px 0 rgba(51, 51, 51, 0); }
      .checkout__payment-methods-list .payment-method:first-of-type:first-of-type:not(.payment-method--active) {
        box-shadow: 0 -1px 0 rgba(51, 51, 51, 0.2); }
    .checkout__payment-methods-list .payment-method:before {
      border: 1px rgba(204, 38, 38, 0.6) solid;
      border-radius: 6px;
      content: '';
      background: #ffffff;
      display: block;
      position: absolute;
      top: -0.23438rem;
      left: 0;
      right: 0;
      bottom: -0.23438rem;
      opacity: 0;
      -webkit-transform: scaleX(0.98) scaleY(0.8);
      -moz-transform: scaleX(0.98) scaleY(0.8);
      -ms-transform: scaleX(0.98) scaleY(0.8);
      transform: scaleX(0.98) scaleY(0.8);
      -webkit-transition: all 300ms cubic-bezier(0.65, 0.05, 0.36, 1);
      -moz-transition: all 300ms cubic-bezier(0.65, 0.05, 0.36, 1);
      transition: all 300ms cubic-bezier(0.65, 0.05, 0.36, 1); }
    .checkout__payment-methods-list .payment-method.payment-method--active:before {
      opacity: 1;
      -webkit-transform: scaleX(1) scaleY(1);
      -moz-transform: scaleX(1) scaleY(1);
      -ms-transform: scaleX(1) scaleY(1);
      transform: scaleX(1) scaleY(1); }
    .checkout__payment-methods-list .payment-method label {
      display: block;
      padding-left: 1.8125rem;
      padding-right: 1.875rem;
      padding-top: 0.46875rem;
      padding-bottom: 0.46875rem;
      position: relative; }
      .checkout__payment-methods-list .payment-method label span {
        height: 1.375rem;
        display: inline-block; }
      .checkout__payment-methods-list .payment-method label input {
        display: none; }
    .checkout__payment-methods-list .payment-method img {
      max-width: 150px;
      max-height: 30px;
      margin-right: 0.2rem; }
  .checkout__payment-methods-list input[type="radio"] {
    margin-bottom: 0;
    margin-right: .5rem; }

.checkout__payment-methods-prefix, .payment-method {
  font-size: 0.9375rem; }

.checkout--kco__alternate-payment input.check-validity:invalid:not(:focus), .checkout--kco__alternate-payment input.check-validity.invalid:not(:focus) {
  border: 1px solid #eb0000;
  color: #eb0000;
  box-shadow: inset 0 1px 1px 0 rgba(0, 0, 0, 0.17), inset 0 1px 3px rgba(0, 0, 0, 0.06), 0 0 3px 1px #eb0000; }

.kco-payment-wrapper {
  margin-top: 0; }

@media only screen and (max-width: 39.9375em) {
  .checkout__bottom-toolbar-right button.js-checkout_update {
    top: -0.9375rem !important; }
  .checkout__payment-methods-list {
    padding-left: 0.9375rem;
    padding-right: 0.9375rem; } }

@media only screen and (min-width: 27em) {
  .checkout--kco__payment .control-group {
    width: 100%; }
  .checkout--kcos .addon_buttons {
    margin: 0;
    position: absolute;
    top: 1.4375rem;
    right: 0; }
    .checkout--kcos .addon_buttons .edit_step.disabled {
      display: inline-block !important; } }

@media only screen and (min-width: 40em) {
  .row .row.checkout-kco__address-form {
    padding-right: 0.9375rem; }
  .row .checkout--kco__freight-options {
    padding-left: 0.9375rem; }
  .checkout--kco__freight {
    box-shadow: inset 1px 0 0 rgba(51, 51, 51, 0.2);
    margin-bottom: 0.9375rem; }
  .checkout--kco__payment-alternatives {
    margin-left: 0.9375rem;
    margin-right: 0.9375rem; }
  .checkout__payment-methods-list {
    padding-left: 0.9375rem;
    padding-right: 0.9375rem; }
  .checkout--kco .addon_buttons {
    top: 1.375rem;
    padding-right: 1.875rem; }
  table.checkout--kco__cart .mini-img {
    width: 75px;
    display: table-cell; }
    table.checkout--kco__cart .mini-img img {
      display: inline-block; }
  table.checkout--kco__cart .discount .mini-img [class^="icon-"],
  table.checkout--kco__cart .shipping .mini-img [class^="icon-"],
  table.checkout--kco__cart .giftcard .mini-img [class^="icon-"] {
    position: relative;
    left: auto;
    top: auto; }
  table.checkout--kco__cart .discount .product-name,
  table.checkout--kco__cart .shipping .product-name,
  table.checkout--kco__cart .giftcard .product-name {
    text-indent: 0; }
  table.checkout--kco__cart .product-name {
    font-weight: bold; }
  .checkout__step__contents {
    padding: 0 1.25rem 0 1.25rem; }
  .checkout--kco__overlay {
    left: 1.8125rem; }
  .checkout--kco__payment {
    box-shadow: inset #ffffff 0 30px 0, inset #ffffff 0 -30px 0, inset rgba(51, 51, 51, 0.2) 1px 1px 0; }
  .kco-payment-bordered-wrapper {
    margin-left: .5rem;
    margin-top: -1.15rem;
    min-height: 300px; }
  .kco-payment-wrapper, .alternate-payment-wrapper {
    min-height: 300px;
    background-color: #ffffff;
    margin: 0; }
  .alternate-payment-wrapper {
    margin-top: -1.5rem; }
    .alternate-payment-wrapper .checkout__step__headline {
      margin-top: -2rem;
      margin-bottom: 0.3125rem;
      margin-left: 0.5625rem; } }

.js-attach_comment {
  display: block; }

.checkout__bottom-toolbar-right {
  position: relative; }
  .checkout__bottom-toolbar-right button.js-checkout_update {
    position: absolute;
    top: 0px;
    right: 0.9375rem; }

.checkout--kco__freight-options {
  position: relative;
  min-height: 6rem;
  margin-top: 0; }

@media only screen and (min-width: 64em) {
  .row .row.checkout-kco__address-form, .checkout__payment-methods-list {
    padding-right: 1.875rem; }
  .row .checkout--kco__freight-options, .alternate-payment-wrapper {
    padding-left: 1.875rem; }
  .submit-freight-details {
    width: 100%; }
  .checkout--kco__corporate-link {
    margin-bottom: 0; } }

/**
 * Comments styling, courtesy of
 * http://refills.bourbon.io/
 */
.comment {
  display: table;
  width: 100%;
  margin-bottom: 1.5rem;
  padding-bottom: 1em;
  border-bottom: 1px solid rgba(51, 51, 51, 0.1); }
  .comment:hover .comment-avatar {
    border: 1px solid #919191; }

.comment-image,
.comment-content {
  display: table-cell;
  vertical-align: top; }

.comment-image {
  padding-right: 0.7em; }
  .comment-image img {
    width: 30px;
    height: auto;
    display: block;
    max-width: none; }

/**
 * Circular avatars
 * Courtesy of http://codepen.io/bradenhamm/pen/yDuka
 */
.comment-avatar {
  line-height: 0;
  /* remove line-height */
  display: inline-block;
  /* circle wraps image */
  border-radius: 50%;
  /* relative value */
  -webkit-transition: border 300ms ease;
  -moz-transition: border 300ms ease;
  transition: border 300ms ease;
  height: 38px;
  width: 38px;
  border: 1px solid #ddd;
  padding: 3px; }

.comment-avatar img {
  border-radius: 50%;
  /* relative value for
                   adjustable image size */ }

.comment-content {
  width: 100%; }
  .comment-content .comment-content__title {
    font-size: 1.25rem;
    margin-bottom: .5em; }
  .comment-content p {
    margin-bottom: .5em; }
  .comment-content .comment-detail {
    font-style: italic;
    font-size: .9em;
    color: rgba(51, 51, 51, 0.5); }

.comment-star-rating i {
  color: #EF3A3B;
  margin-right: -2px; }

.comment-star-rating {
  display: inline;
  margin: 0; }
  .comment-star-rating figcaption {
    display: inline; }

.comment-star-rating-count {
  display: none; }

.comment-detail .comment-star-rating {
  opacity: .5; }
  .comment-detail .comment-star-rating figcaption {
    display: none; }

.comments-form {
  padding-top: 1rem; }

.comments-form-wrapper {
  padding-bottom: 1rem; }

.comments-form-error:empty,
.comment-form-validation-errors:empty {
  display: none; }

.comments-guidelines {
  font-size: 0.875rem;
  border-top: 1px solid #dddddd;
  padding-top: 2rem; }
  .comments-guidelines p, .comments-guidelines li {
    font-size: 0.875rem; }

#produkt_anmeldelser_form_validert {
  width: 100%;
  max-width: none; }

@media only screen and (min-width: 40em) {
  .comment-image img {
    width: 60px; }
  .comment-avatar {
    height: 68px;
    width: 68px; } }

.cookie_notice {
  background-color: #000;
  position: fixed;
  width: 390px;
  z-index: 9999999;
  max-height: 95%;
  right: 20px;
  bottom: 20px; }

.cookie_notice_area {
  margin-left: 5%;
  margin-right: 5%;
  margin-bottom: 5%; }

#cookie_notice_text {
  padding: 1rem 0;
  color: white; }

#cookie_buttons a {
  padding: 8px; }
  #cookie_buttons a:visited, #cookie_buttons a:active {
    color: white; }
  #cookie_buttons a:hover {
    text-decoration: underline;
    color: white; }

#cookie_buttons span {
  margin-bottom: 0; }

/*! fancyBox v2.1.5 fancyapps.com | fancyapps.com/fancybox/#license */
.fancybox-wrap,
.fancybox-skin,
.fancybox-outer,
.fancybox-inner,
.fancybox-image,
.fancybox-wrap iframe,
.fancybox-wrap object,
.fancybox-nav,
.fancybox-nav span,
.fancybox-tmp {
  padding: 0;
  margin: 0;
  border: 0;
  outline: none;
  vertical-align: top; }

.fancybox-wrap {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 8020; }

.fancybox-skin {
  position: relative;
  background: #f9f9f9;
  color: #444;
  text-shadow: none;
  -moz-border-radius: 4px;
  border-radius: 4px; }

.fancybox-opened {
  z-index: 8030; }

.fancybox-opened .fancybox-skin {
  -moz-box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5);
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5); }

.fancybox-outer, .fancybox-inner {
  position: relative; }

.fancybox-inner {
  overflow: hidden; }

.fancybox-type-iframe .fancybox-inner {
  -webkit-overflow-scrolling: touch; }

.fancybox-error {
  color: #444;
  margin: 0;
  padding: 15px;
  white-space: nowrap; }

.fancybox-image, .fancybox-iframe {
  display: block;
  width: 100%;
  height: 100%; }

.fancybox-image {
  max-width: 100%;
  max-height: 100%; }

#fancybox-loading, .fancybox-close, .fancybox-prev span, .fancybox-next span {
  background-image: url("/assets/img/fancybox_sprite.png"); }

#fancybox-loading {
  position: fixed;
  top: 50%;
  left: 50%;
  margin-top: -22px;
  margin-left: -22px;
  background-position: 0 -108px;
  opacity: 0.8;
  cursor: pointer;
  z-index: 8060; }

#fancybox-loading div {
  width: 44px;
  height: 44px;
  background: url("/assets/img/fancybox_loading.gif") center center no-repeat; }

.fancybox-close {
  position: absolute;
  top: -18px;
  right: -18px;
  width: 36px;
  height: 36px;
  cursor: pointer;
  z-index: 8040; }

.fancybox-nav {
  position: absolute;
  top: 0;
  width: 40%;
  height: 100%;
  cursor: pointer;
  text-decoration: none;
  -webkit-tap-highlight-color: transparent;
  z-index: 8040; }

.fancybox-prev {
  left: 0; }

.fancybox-next {
  right: 0; }

.fancybox-nav span {
  position: absolute;
  top: 50%;
  width: 36px;
  height: 34px;
  margin-top: -18px;
  cursor: pointer;
  z-index: 8040;
  visibility: hidden; }

.fancybox-prev span {
  left: 10px;
  background-position: 0 -36px; }

.fancybox-next span {
  right: 10px;
  background-position: 0 -72px; }

.fancybox-nav:hover span {
  visibility: visible; }

.fancybox-tmp {
  position: absolute;
  top: -99999px;
  left: -99999px;
  visibility: hidden;
  max-width: 99999px;
  max-height: 99999px;
  overflow: visible !important; }

/* Overlay helper */
.fancybox-lock {
  overflow: hidden !important;
  width: auto; }

.fancybox-lock body {
  overflow: hidden !important; }

.fancybox-lock-test {
  overflow-y: hidden !important; }

.fancybox-overlay {
  position: absolute;
  top: 0;
  left: 0;
  overflow: hidden;
  display: none;
  z-index: 8010;
  background-color: rgba(0, 0, 0, 0.75); }

.fancybox-overlay-fixed {
  position: fixed;
  bottom: 0;
  right: 0; }

.fancybox-lock .fancybox-overlay {
  overflow: auto;
  overflow-y: scroll; }

/* Title helper */
.fancybox-title {
  visibility: hidden;
  position: relative;
  text-shadow: none;
  z-index: 8050; }

.fancybox-opened .fancybox-title {
  visibility: visible; }

.fancybox-title-float-wrap {
  position: absolute;
  bottom: 0;
  right: 50%;
  margin-bottom: -35px;
  z-index: 8050;
  text-align: center; }

.fancybox-title-float-wrap .child {
  display: inline-block;
  margin-right: -100%;
  padding: 2px 20px;
  background: transparent;
  /* Fallback for web browsers that doesn't support RGBa */
  background: rgba(0, 0, 0, 0.8);
  -moz-border-radius: 15px;
  border-radius: 15px;
  text-shadow: 0 1px 2px #222;
  color: #FFF;
  font-weight: bold;
  line-height: 24px;
  white-space: nowrap; }

.fancybox-title-outside-wrap {
  position: relative;
  margin-top: 10px;
  color: #fff; }

.fancybox-title-inside-wrap {
  padding-top: 10px; }

.fancybox-title-over-wrap {
  position: absolute;
  bottom: 0;
  left: 0;
  color: #fff;
  padding: 10px;
  background: #000;
  background: rgba(0, 0, 0, 0.8); }

/*Retina graphics!*/
@media only screen and (-webkit-min-device-pixel-ratio: 1.5), only screen and (min--moz-device-pixel-ratio: 1.5), only screen and (min-device-pixel-ratio: 1.5) {
  #fancybox-loading, .fancybox-close, .fancybox-prev span, .fancybox-next span {
    background-image: url("/assets/img/fancybox_sprite_2x.png");
    background-size: 44px 152px;
    /*The size of the normal image, half the size of the hi-res image*/ }
  #fancybox-loading div {
    background-image: url("/assets/img/fancybox_loading_2x.gif");
    background-size: 24px 24px;
    /*The size of the normal image, half the size of the hi-res image*/ } }

label {
  color: inherit; }

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

.error-msg {
  color: #e03114;
  line-height: 1.5em;
  padding-bottom: .5em; }

input[type=search] {
  padding-left: 0;
  text-indent: .5rem; }

/* We use this to get basic styling on all basic form elements */
input[type="text"],
input[type="password"],
input[type="date"],
input[type="datetime"],
input[type="datetime-local"],
input[type="month"],
input[type="week"],
input[type="email"],
input[type="number"],
input[type="search"],
input[type="tel"],
input[type="time"],
input[type="url"],
textarea,
select {
  border-radius: 0px; }

/* Foundation hardcodes radius to 0, this fixes it */
input[type="submit"] {
  border-radius: 0px; }

.prefix-radius.row.collapse input, .prefix-radius.row.collapse textarea, .prefix-radius.row.collapse select {
  border-radius: 0;
  -webkit-border-bottom-right-radius: 0px;
  -webkit-border-top-right-radius: 0px;
  border-bottom-right-radius: 0px;
  border-top-right-radius: 0px; }

.postfix-radius.row.collapse input, .postfix-radius.row.collapse textarea, .postfix-radius.row.collapse select {
  border-radius: 0;
  -webkit-border-bottom-left-radius: 0px;
  -webkit-border-top-left-radius: 0px;
  border-bottom-left-radius: 0px;
  border-top-left-radius: 0px; }

@-moz-document url-prefix() {
  select {
    background-image: none; } }

.klarna_boks {
  margin-bottom: 1rem;
  max-height: 100px;
  overflow: hidden; }

.klarna-info .klarna-info__badge {
  float: right;
  margin-left: .5rem; }

.klarna-widget {
  height: 70px; }

#knappe-menu_kjop {
  list-style: none;
  margin: 0; }
  #knappe-menu_kjop li {
    display: inline-block;
    margin-right: 1rem; }

.frontpage__custom-content {
  margin-bottom: 1.875rem; }

.receipt__header {
  float: left; }

.button.receipt__print {
  float: right;
  margin-bottom: 0;
  margin-top: .15rem; }

.receipt__thanks {
  font-weight: bold; }

.receipt__order-overview,
.receipt__customer-info {
  width: 100%; }

@media only screen and (min-width: 40em) {
  .receipt__print {
    margin-top: .5rem; }
  .receipt__order-overview,
  .receipt__customer-info {
    width: auto;
    min-width: 60%; } }

@media only screen and (min-width: 64em) {
  .receipt__order-overview,
  .receipt__customer-info {
    min-width: 50%; } }

html.placeholder .has-placeholder label {
  display: none; }

.login-column, .register-column {
  text-align: center; }
  .login-column > form, .register-column > form {
    display: inline-block;
    text-align: left;
    max-width: 360px;
    width: 100%; }

.icon-log-out a:after {
  /* use !important to prevent issues with browser extensions that change fonts */
  font-family: 'pioneer' !important;
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: ""; }

.account-tabs {
  margin-bottom: 1rem !important; }
  .account-tabs .tab-title a {
    padding: 0 .6rem;
    line-height: 2.5rem; }
    .touch .account-tabs .tab-title a {
      line-height: 2.75rem; }

.edit-account-page fieldset,
.gift-certificate-page fieldset {
  border-right: none;
  border-left: none;
  border-bottom: none;
  padding-left: 0;
  padding-right: 0;
  margin-bottom: 0; }

.edit-account-page form .row .row,
.gift-certificate-page form .row .row {
  width: auto;
  margin-left: -0.9375rem;
  margin-right: -0.9375rem;
  margin-top: 0;
  margin-bottom: 0;
  max-width: none; }
  .edit-account-page form .row .row:before, .edit-account-page form .row .row:after,
  .gift-certificate-page form .row .row:before,
  .gift-certificate-page form .row .row:after {
    content: " ";
    display: table; }
  .edit-account-page form .row .row:after,
  .gift-certificate-page form .row .row:after {
    clear: both; }
  .edit-account-page form .row .row .column,
  .edit-account-page form .row .row .columns,
  .gift-certificate-page form .row .row .column,
  .gift-certificate-page form .row .row .columns {
    padding-left: 0.9375rem;
    padding-right: 0.9375rem;
    float: left; }

.edit-account-page form .control-group .control-group,
.gift-certificate-page form .control-group .control-group {
  width: 100%; }

.edit-account__buttons {
  list-style: none;
  margin: 0; }
  .edit-account__buttons .icon {
    float: left;
    display: inline-block;
    margin-top: 2px;
    padding-right: .5rem; }

.kasse_one_logginn_error {
  display: block;
  color: #e03114;
  margin-bottom: 1.5rem; }

@media only screen and (max-width: 39.9375em) {
  .login-column {
    border-right: 1px solid #dddddd; }
  .icon-log-out a span {
    display: none; }
  .tabs .icon-log-out > a {
    background: none; } }

@media only screen and (min-width: 27em) {
  .tabs .tab-title > a {
    padding-right: 1rem;
    padding-left: 1rem; }
  .tabs .icon-log-out > a {
    background: none;
    padding-right: 0; }
    .tabs .icon-log-out > a:after {
      padding-left: .5rem; }
    .tabs .icon-log-out > a:hover {
      background: none;
      color: #e03114; }
    .tabs .icon-log-out > a span {
      display: inline; } }

@media only screen and (min-width: 40em) {
  .edit-account__buttons {
    text-align: right; }
    .edit-account__buttons .icon {
      float: none;
      display: inline;
      margin-top: 0;
      padding-right: 0; } }

#wishlist_table {
  min-width: 100%; }

.wishlist__product-name p:last-child {
  margin-bottom: 0; }

.wishlist__button-cell {
  vertical-align: middle; }
  .wishlist__button-cell input[type=submit] {
    margin-bottom: 0; }

.wishlist__delete,
.wishlist__delete:hover {
  color: #e03114; }

@media only screen and (min-width: 40em) {
  #wishlist_table {
    min-width: 80%; } }

@media only screen and (min-width: 64em) {
  #wishlist_table {
    min-width: 60%; } }

.product__images.invisible {
  visibility: hidden; }
  .product__images.invisible.slider-loaded {
    visibility: visible; }

.product__main-images {
  text-align: center; }
  .product__main-images img {
    max-width: 100%;
    max-height: 30rem; }
  .product__main-images ul {
    list-style-type: none;
    margin: 0; }
  .product__main-images .readon-icon__container {
    display: none; }
  .product__main-images .bx-caption {
    font-size: 0.875rem;
    text-align: left;
    font-style: italic;
    line-height: 1.5;
    padding: 0.5rem 0; }
  .product__main-images .bx-prev {
    left: 0; }
  .product__main-images .bx-next {
    right: 0; }

.product__breadcrumbs .current {
  display: none; }

.product__breadcrumbs .breadcrumbs {
  padding: 0;
  height: auto; }

.product__meta-numbers {
  font-size: 0.75rem;
  margin-bottom: 0.75rem;
  float: left;
  width: 100%; }
  .product__meta-numbers .comment-star-rating .icon-star:before,
  .product__meta-numbers .comment-star-rating .icon-star-half:before,
  .product__meta-numbers .comment-star-rating .icon-star-outline:before {
    vertical-align: -1px; }
  .product__meta-numbers .comment-star-rating .comment-star-rating-avg {
    display: none; }
  .product__meta-numbers .comment-star-rating .comment-star-rating-count {
    display: inline; }
  .product__meta-numbers > * {
    padding-bottom: .5rem;
    float: left; }

.product__art-nr-label,
.product__ean-label {
  padding-right: .25rem; }

.product__meta-numbers__value {
  padding-right: 1rem; }

.product__aside-addon {
  margin-bottom: 1.25rem; }

.product .price {
  font-size: 2.25rem;
  font-weight: bold;
  font-family:  'Noto Sans', sans-serif;
  display: block;
  clear: both; }

.product .price--original {
  display: block;
  clear: both; }
  .product .price--original .currency {
    display: none; }

.product .vat-info,
.product .price--original {
  line-height: 1.5; }

.product .discount {
  display: none; }

.product .vat-info {
  font-size: 0.875rem; }

.product .currency {
  padding-right: .5rem; }

.product .price__saleprice-text {
  padding-right: .5rem; }

.product .offers {
  margin-bottom: 1.25rem; }

.product__buy-button.button i {
  padding-right: .5rem; }

.product__stockstatus {
  font-size: 0.875rem;
  margin-bottom: 1.25rem;
  line-height: 2.25rem; }

.product__stockstatus__number {
  color: #398439; }

.product__stockstatus--sold-out .product__stockstatus__number {
  color: #e03114; }

.product__stockstatus--has-extrainfo {
  line-height: normal; }

.product__main-images__link {
  display: block;
  width: 100%;
  height: 100%;
  outline: none; }
  .product__main-images__link:hover {
    cursor: default; }

.product__quantum-discounts {
  width: 100%; }

.product__attributes,
.product__extrafield {
  width: auto;
  margin-left: -0.9375rem;
  margin-right: -0.9375rem;
  margin-top: 0;
  margin-bottom: 0;
  max-width: none; }
  .product__attributes:before, .product__attributes:after,
  .product__extrafield:before,
  .product__extrafield:after {
    content: " ";
    display: table; }
  .product__attributes:after,
  .product__extrafield:after {
    clear: both; }

.product__extrafield__wrap {
  padding-left: 0.9375rem;
  padding-right: 0.9375rem;
  width: 100%;
  float: left; }

.product__attribute,
.product__quantity {
  padding-left: 0.9375rem;
  padding-right: 0.9375rem;
  width: 50%;
  float: left; }

.product__extrafield__priceinfo {
  font-size: 0.875rem; }

.product__related-products {
  padding-top: 1.875rem;
  padding-bottom: 1.875rem; }

@media only screen and (max-width: 39.9375em) {
  .product__main-images .bx-caption {
    text-align: center; } }

@media only screen and (max-width: 39.9375em) {
  .product__imagegallery {
    list-style-type: none;
    margin: 0;
    text-align: center; }
    .product__imagegallery li {
      display: inline-block; }
    .product__imagegallery .th {
      box-shadow: none;
      height: 2.75rem;
      width: 2.75rem;
      line-height: 2.75rem;
      border: none;
      text-decoration: none; }
      .product__imagegallery .th:hover, .product__imagegallery .th:focus {
        outline: none; }
        .product__imagegallery .th:hover:after, .product__imagegallery .th:focus:after {
          color: #cc2626;
          opacity: .75;
          font-size: 1rem; }
      .product__imagegallery .th > * {
        display: none; }
      .product__imagegallery .th:after {
        /* use !important to prevent issues with browser extensions that change fonts */
        font-family: 'pioneer' !important;
        speak: none;
        font-style: normal;
        font-weight: normal;
        font-variant: normal;
        text-transform: none;
        line-height: 1;
        /* Better Font Rendering =========== */
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale;
        content: "";
        color: #000;
        opacity: .25;
        height: 2.75rem;
        width: 2.75rem;
        line-height: 2.75rem;
        text-align: center;
        font-size: .8rem;
        -webkit-transition: font-size 200ms ease;
        -moz-transition: font-size 200ms ease;
        transition: font-size 200ms ease; }
      .product__imagegallery .th.active:after {
        opacity: .75;
        font-size: 1rem; } }

@media only screen and (max-width: 39.9375em) {
  .product__title {
    padding-top: 1rem; } }

@media only screen and (min-width: 27em) and (max-width: 39.9375em) {
  .product__info,
  .product__about,
  .product__imagegallery__wrapper,
  .product__related-products {
    padding-left: 0.9375rem;
    padding-right: 0.9375rem;
    width: 83.33333%;
    float: left; }
  .product .price {
    font-size: 2.25rem; }
  .product__stockstatus:not(.product__stockstatus--has-extrainfo) {
    line-height: 2.25rem; } }

@media only screen and (min-width: 40em) {
  .product__info {
    padding-left: 0.9375rem;
    padding-right: 0.9375rem;
    width: 50%;
    float: left; }
  .product__about,
  .product__imagegallery__wrapper {
    padding-left: 0.9375rem;
    padding-right: 0.9375rem;
    width: 100%;
    float: left; }
  .product__images,
  .product__info,
  .product__main-images {
    margin-bottom: 1.875rem; }
  .product__breadcrumbs .current {
    display: list-item; }
  .product__main-images img {
    width: auto;
    max-width: 100%; }
  .product__main-images .readon-icon__container {
    display: block; }
  .product__main-images__link:hover {
    cursor: pointer; }
  .product__imagegallery {
    display: block;
    padding: 0;
    margin: 0; }
    .product__imagegallery:before, .product__imagegallery:after {
      content: " ";
      display: table; }
    .product__imagegallery:after {
      clear: both; }
    .product__imagegallery > li {
      display: block;
      height: auto;
      float: left;
      padding: 0 0.9375rem 1.875rem; }
    .product__imagegallery > li {
      width: 25%;
      padding: 0 0.9375rem 1.875rem;
      list-style: none; }
      .product__imagegallery > li:nth-of-type(1n) {
        clear: none; }
      .product__imagegallery > li:nth-of-type(4n+1) {
        clear: both; }
      .product__imagegallery > li:nth-of-type(4n+1) {
        padding-left: 0rem;
        padding-right: 1.40625rem; }
      .product__imagegallery > li:nth-of-type(4n+2) {
        padding-left: 0.46875rem;
        padding-right: 0.9375rem; }
      .product__imagegallery > li:nth-of-type(4n+3) {
        padding-left: 0.9375rem;
        padding-right: 0.46875rem; }
      .product__imagegallery > li:nth-of-type(4n) {
        padding-left: 1.40625rem;
        padding-right: 0rem; }
  li.product__imagegallery__imagewrap {
    height: 5.75rem; }
    li.product__imagegallery__imagewrap img {
      max-height: 100%; }
    li.product__imagegallery__imagewrap .th {
      height: 100%;
      width: 100%;
      text-align: center;
      background-color: #FFFFFF;
      box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.2);
      opacity: .8; }
      li.product__imagegallery__imagewrap .th:hover, li.product__imagegallery__imagewrap .th:focus, li.product__imagegallery__imagewrap .th.active {
        box-shadow: 0 0 6px 1px rgba(140, 26, 26, 0.5);
        opacity: 1; }
      li.product__imagegallery__imagewrap .th:after {
        display: none; }
  .product__title {
    font-size: 1.875rem; }
  .product__ingress {
    font-size: 0.875rem; }
  .product__stockstatus:not(.product__stockstatus--has-extrainfo) {
    line-height: 1.5rem; }
  .product__buy-button.button,
  .product__wishlist-button.button {
    font-size: 1rem;
    border-radius: 0px; } }

@media only screen and (min-width: 64em) {
  .product__title {
    font-size: 2.75rem; }
  .product__ingress {
    font-size: 1rem; }
  .product__stockstatus:not(.product__stockstatus--has-extrainfo) {
    line-height: 2.25rem; }
  .product__about.medium-uncentered:last-child {
    float: right; }
  .product__imagegallery {
    display: block;
    padding: 0;
    margin: 0; }
    .product__imagegallery:before, .product__imagegallery:after {
      content: " ";
      display: table; }
    .product__imagegallery:after {
      clear: both; }
    .product__imagegallery > li {
      display: block;
      height: auto;
      float: left;
      padding: 0 0.9375rem 1.875rem; }
    .product__imagegallery > li {
      width: 20%;
      padding: 0 0.9375rem 1.875rem;
      list-style: none; }
      .product__imagegallery > li:nth-of-type(1n) {
        clear: none; }
      .product__imagegallery > li:nth-of-type(5n+1) {
        clear: both; }
      .product__imagegallery > li:nth-of-type(5n+1) {
        padding-left: 0rem;
        padding-right: 1.5rem; }
      .product__imagegallery > li:nth-of-type(5n+2) {
        padding-left: 0.375rem;
        padding-right: 1.125rem; }
      .product__imagegallery > li:nth-of-type(5n+3) {
        padding-left: 0.75rem;
        padding-right: 0.75rem; }
      .product__imagegallery > li:nth-of-type(5n+4) {
        padding-left: 1.125rem;
        padding-right: 0.375rem; }
      .product__imagegallery > li:nth-of-type(5n) {
        padding-left: 1.5rem;
        padding-right: 0rem; }
  li.product__imagegallery__imagewrap {
    height: 6rem; }
  .product__attribute,
  .product__quantity {
    padding-left: 0.9375rem;
    padding-right: 0.9375rem;
    width: 33.33333%;
    float: left; }
  .product__extrafield__wrap {
    padding-left: 0.9375rem;
    padding-right: 0.9375rem;
    width: 66.66667%;
    float: left; }
  .product .product__buy-button.button,
  .product .product__wishlist-button.button {
    font-size: 1.375rem; } }

.product-search {
  position: relative;
  z-index: 200; }

.product-search-results {
  opacity: .95;
  position: absolute;
  width: 100%;
  background-color: #ffffff;
  z-index: 200;
  border: 1px solid #dddddd;
  visibility: visible;
  -webkit-transition: all 0.25s ease;
  -moz-transition: all 0.25s ease;
  transition: all 0.25s ease; }
  .product-search-results .product-search__output {
    margin: 0;
    list-style: none;
    padding: 0.25rem 0; }
  .product-search-results.is-hidden {
    opacity: 0;
    display: block;
    -webkit-transform: rotateX(-90deg) scale(0.8);
    -moz-transform: rotateX(-90deg) scale(0.8);
    -ms-transform: rotateX(-90deg) scale(0.8);
    transform: rotateX(-90deg) scale(0.8);
    -webkit-transform-origin: 50% 0;
    -moz-transform-origin: 50% 0;
    -ms-transform-origin: 50% 0;
    -o-transform-origin: 50% 0;
    transform-origin: 50% 0; }

.product-search__no-hits:not(.is-hidden) + .product-search__container {
  display: none !important; }

.product-search__element a {
  padding: 0.25rem 1rem;
  display: block;
  width: 100%; }
  .product-search__element a:hover {
    color: white !important;
    background-color: #cc2626 !important; }
  html.touch .product-search__element a {
    padding: 0.625rem 1rem; }

.product-search__extra-hits {
  margin: 0; }
  .product-search__extra-hits a {
    line-height: 2rem;
    display: block;
    width: 100%;
    margin: 0;
    padding: 0.25rem 1rem; }
    html.touch .product-search__extra-hits a {
      padding: 1.125rem 1rem; }

.product-search__no-hits {
  margin: 0;
  padding: 0.25rem 1rem;
  color: #757575; }

.rating {
  position: relative;
  height: 2.75rem;
  margin-bottom: 1rem; }
  .rating label.star {
    position: absolute;
    left: 0;
    top: 0;
    color: gold;
    display: inline-block;
    font-size: 1.375rem !important;
    width: 2.75rem;
    height: 2.75rem;
    line-height: 2.75rem;
    overflow: hidden;
    text-align: center;
    margin: 0;
    z-index: 4; }
  .rating input.star-checkbox {
    position: absolute;
    width: 2.75rem;
    height: 2.75rem;
    left: 0;
    right: 0;
    outline: none;
    z-index: 1; }
  .rating .rating-checkbox-hider {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: #ffffff;
    z-index: 2; }
    .resp-tabs-container .rating .rating-checkbox-hider {
      background-color: #f7f7f7; }
  .rating label.star-2,
  .rating input.star-checkbox-2 {
    left: 2.75rem; }
  .rating label.star-3,
  .rating input.star-checkbox-3 {
    left: 5.5rem; }
  .rating label.star-4,
  .rating input.star-checkbox-4 {
    left: 8.25rem; }
  .rating label.star-5,
  .rating input.star-checkbox-5 {
    left: 11rem; }
  .rating label.star-6,
  .rating input.star-checkbox-6 {
    left: 13.75rem; }
  .rating .stars-label {
    border: none;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px; }
  .rating label:before {
    /* use !important to prevent issues with browser extensions that change fonts */
    font-family: 'pioneer' !important;
    speak: none;
    font-style: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
    /* Better Font Rendering =========== */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    content: ""; }
  .rating label:hover,
  .rating input:checked ~ label:hover {
    color: gold; }

.readon-icon__container {
  opacity: 0;
  position: absolute;
  top: 0;
  width: 100%;
  height: 100%;
  background: rgba(255, 255, 255, 0.5);
  text-align: center;
  -webkit-transition: opacity 150ms ease;
  -moz-transition: opacity 150ms ease;
  transition: opacity 150ms ease; }
  .touch .readon-icon__container {
    display: none; }

.readon-icon {
  -ms-transform: translate(0, 0) scale3d(0.5, 0.5, 0.5);
  -webkit-transform: translate3d(0, 0, 0) scale3d(0.5, 0.5, 0.5);
  -moz-transform: translate3d(0, 0, 0) scale3d(0.5, 0.5, 0.5);
  -ms-transform: translate3d(0, 0, 0) scale3d(0.5, 0.5, 0.5);
  transform: translate3d(0, 0, 0) scale3d(0.5, 0.5, 0.5);
  -webkit-transition: opacity 200ms, -webkit-transform 150ms ease;
  -webkit-transition-delay: ease, 0s;
  -moz-transition: opacity 200ms ease, -moz-transform 150ms ease;
  -o-transition: opacity 200ms ease, -o-transform 150ms ease;
  transition: opacity 200ms ease, transform 150ms ease;
  position: relative;
  vertical-align: middle;
  line-height: 2.75rem;
  width: 2.75rem;
  height: 2.75rem;
  font-size: 1.75rem;
  color: #fff;
  opacity: .6;
  background-color: #000;
  display: inline-block;
  -ms-border-radius: 1.375rem;
  border-radius: 1.375rem; }
  .readon-icon:hover {
    opacity: .9; }

.readon-icon__wrapper {
  position: relative; }
  .readon-icon__wrapper:hover, .readon-icon__wrapper:focus {
    outline: none; }
    .readon-icon__wrapper:hover .readon-icon__container, .readon-icon__wrapper:focus .readon-icon__container {
      opacity: 1; }
    .readon-icon__wrapper:hover .readon-icon, .readon-icon__wrapper:focus .readon-icon {
      -ms-transform: translate(0, 0) scale3d(1, 1, 1);
      -webkit-transform: translate3d(0, 0, 0) scale3d(1, 1, 1);
      -moz-transform: translate3d(0, 0, 0) scale3d(1, 1, 1);
      -ms-transform: translate3d(0, 0, 0) scale3d(1, 1, 1);
      transform: translate3d(0, 0, 0) scale3d(1, 1, 1); }

.slider {
  margin: 0;
  list-style: none;
  height: 100%; }

.slider__wrapper {
  margin-bottom: 1.875rem;
  margin-right: -0.9375rem;
  margin-left: -0.9375rem; }

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

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

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

.slide:not(:first-child) {
  display: none; }
  .bx-wrapper .slide:not(:first-child) {
    display: inherit; }

.slide img {
  vertical-align: middle; }

@media only screen and (min-width: 90em) {
  .slider__wrapper {
    margin-right: 0;
    margin-left: 0; } }

/* SPINNER, used in checkout while cart is loading for instance */
#spinner-container {
  position: relative;
  width: 100%;
  height: 120px; }

html.lt-ie10 #spinner-container {
  display: none; }

#spinner {
  position: absolute;
  left: 50%;
  margin-left: -30px;
  bottom: 0; }

#floatingCirclesG {
  position: relative;
  width: 60px;
  height: 60px;
  -webkit-transform: scale(0.6);
  -moz-transform: scale(0.6);
  -ms-transform: scale(0.6);
  transform: scale(0.6); }

.f_circleG {
  position: absolute;
  background-color: #FFFFFF;
  height: 11px;
  width: 11px;
  border-radius: 5px;
  -webkit-animation-name: f_fadeG;
  -moz-animation-name: f_fadeG;
  animation-name: f_fadeG;
  -webkit-animation-duration: 0.8s;
  -moz-animation-duration: 0.8s;
  animation-duration: 0.8s;
  -webkit-animation-iteration-count: infinite;
  -moz-animation-iteration-count: infinite;
  animation-iteration-count: infinite;
  -webkit-animation-direction: normal;
  -moz-animation-direction: normal;
  animation-direction: normal; }

#frotateG_01 {
  left: 0;
  top: 25px;
  -webkit-animation-delay: 0.3s;
  -moz-animation-delay: 0.3s;
  animation-delay: 0.3s; }

#frotateG_02 {
  left: 7px;
  top: 7px;
  -webkit-animation-delay: 0.4s;
  -moz-animation-delay: 0.4s;
  animation-delay: 0.4s; }

#frotateG_03 {
  left: 25px;
  top: 0;
  -webkit-animation-delay: 0.5s;
  -moz-animation-delay: 0.5s;
  animation-delay: 0.5s; }

#frotateG_04 {
  right: 7px;
  top: 7px;
  -webkit-animation-delay: 0.6s;
  -moz-animation-delay: 0.6s;
  animation-delay: 0.6s; }

#frotateG_05 {
  right: 0;
  top: 25px;
  -webkit-animation-delay: 0.7s;
  -moz-animation-delay: 0.7s;
  animation-delay: 0.7s; }

#frotateG_06 {
  right: 7px;
  bottom: 7px;
  -webkit-animation-delay: 0.8s;
  -moz-animation-delay: 0.8s;
  animation-delay: 0.8s; }

#frotateG_07 {
  left: 25px;
  bottom: 0;
  -webkit-animation-delay: 0.9s;
  -moz-animation-delay: 0.9s;
  animation-delay: 0.9s; }

#frotateG_08 {
  left: 7px;
  bottom: 7px;
  -webkit-animation-delay: 1s;
  -moz-animation-delay: 1s;
  animation-delay: 1s; }

@-moz-keyframes f_fadeG {
  0% {
    background-color: #000000; }
  100% {
    background-color: #FFFFFF; } }

@-webkit-keyframes f_fadeG {
  0% {
    background-color: #000000; }
  100% {
    background-color: #FFFFFF; } }

@-ms-keyframes f_fadeG {
  0% {
    background-color: #000000; }
  100% {
    background-color: #FFFFFF; } }

@-o-keyframes f_fadeG {
  0% {
    background-color: #000000; }
  100% {
    background-color: #FFFFFF; } }

@keyframes f_fadeG {
  0% {
    background-color: #000000; }
  100% {
    background-color: #FFFFFF; } }

table td.pris,
table th.pris {
  text-align: right; }

tr.sum {
  border-top: 1px solid #333333;
  border-bottom: 3px double #333333; }

table tr.even, table tr.alt, table tr:nth-of-type(even) {
  color: #333333; }

.tabs {
  border-bottom: 1px solid #000; }

.js-tabs {
  padding-top: 2rem; }

.resp-tabs-list {
  margin: 0px;
  padding: 0px;
  list-style-type: none; }

.resp-tab-item {
  font-family:  'Noto Sans', sans-serif;
  display: inline-block;
  cursor: pointer;
  float: left;
  margin-right: 2px; }

.resp-tab-item,
.resp-accordion {
  outline: none;
  color: #1a1a1a;
  background-color: #e6e6e6;
  padding: 0 1rem;
  line-height: 2.75rem;
  margin-bottom: 0;
  -webkit-transition: all 200ms ease;
  -moz-transition: all 200ms ease;
  transition: all 200ms ease; }
  .resp-tab-item:after,
  .resp-accordion:after {
    /* use !important to prevent issues with browser extensions that change fonts */
    font-family: 'pioneer' !important;
    speak: none;
    font-style: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
    /* Better Font Rendering =========== */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    content: "";
    padding-left: .5rem;
    display: inline-block;
    -webkit-transition: -webkit-transform;
    -moz-transition: -moz-transform;
    transition: transform; }
  .resp-tab-item:hover, .resp-tab-item:focus,
  .resp-accordion:hover,
  .resp-accordion:focus {
    color: #1a1a1a;
    background-color: #bfbfbf; }

.resp-tabs-container {
  padding: 0;
  background-color: #f7f7f7;
  clear: left; }

.resp-accordion {
  cursor: pointer;
  display: none; }

.resp-tab-content {
  display: none;
  padding: 1rem; }
  .resp-tab-content > :last-child {
    margin-bottom: 0; }

.resp-tab-active,
.resp-accordion.resp-tab-active {
  color: white;
  background-color: #000; }
  .resp-tab-active:after,
  .resp-accordion.resp-tab-active:after {
    -webkit-transform: rotatex(180deg);
    -moz-transform: rotatex(180deg);
    -ms-transform: rotatex(180deg);
    transform: rotatex(180deg); }
  .resp-tab-active:hover, .resp-tab-active:focus,
  .resp-accordion.resp-tab-active:hover,
  .resp-accordion.resp-tab-active:focus {
    color: white;
    background-color: #262626; }

.resp-content-active,
.resp-accordion-active {
  display: block; }

.resp-easy-accordion .resp-accordion {
  display: block; }

.resp-jfit {
  width: 100%;
  margin: 0px; }

.resp-tab-content-active {
  display: block; }

/*Here your can change the breakpoint to set the accordion, when screen resolution changed*/
@media only screen and (max-width: 39.9375em) {
  .js-tabs {
    border-top: 1px solid #dddddd; }
  .resp-tabs-list {
    display: none; }
  .resp-accordion {
    display: block;
    padding: 0 1rem;
    font-size: 1rem; }
  .resp-vtabs .resp-tabs-container {
    border: none;
    float: none;
    width: 100%;
    min-height: initial;
    clear: none; }
  .resp-accordion-closed {
    display: none !important; } }

@media only screen and (min-width: 40em) {
  .resp-tab-content-active {
    border-top: 1px solid #000; } }

@media only screen and (min-width: 64em) {
  .js-tabs {
    border-top: 1px solid #dddddd;
    padding-top: 2rem; } }

a.themed-nav {
  color: #333333; }
  a.themed-nav:hover, a.themed-nav:focus, a.themed-nav.active {
    color: #fff;
    background-color: #cc2626; }

.subtle, #kasse_one_form .subtaxes, .product__main-images .bx-caption, .product__meta-numbers, .product .price--original, .product .vat-info, .product__stockstatus, .rating input:checked ~ label, .rating label:hover ~ label {
  opacity: .6; }

/**
 * Expanding search input field
 *
 * Code courtesy of http://codepen.io/sdaitzman/pen/rmqfB
 */
.search-box__container {
  padding: 0.5rem 0;
  height: 3.5rem;
  min-width: 2.5rem;
  position: relative; }

.search-box__submit.hidden {
  display: none; }

input.search-box__input {
  transition: width 0.3s, border-radius 0.3s, background 0.3s, box-shadow 0.3s;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 1.25rem;
  border: none;
  cursor: pointer;
  background: #cc2626;
  margin-bottom: 0;
  display: inline-block;
  right: 0; }
  input.search-box__input::-ms-clear {
    display: none; }
  input.search-box__input ~ label {
    position: absolute;
    right: 0;
    top: 0;
    display: block;
    height: 3.5rem;
    line-height: 2.5rem;
    padding: 0.5rem 0;
    width: 2.5rem;
    text-align: center;
    z-index: 2; }
    input.search-box__input ~ label .icon-search {
      color: #000; }
      input.search-box__input ~ label .icon-search:before {
        display: inline-block; }
  input.search-box__input ~ .search-box__submit {
    position: absolute;
    right: 0;
    top: 0;
    display: block;
    height: 3.5rem;
    width: 2.5rem;
    opacity: 0; }
    input.search-box__input ~ .search-box__submit ~ label:before {
      content: '.';
      color: transparent;
      display: block;
      position: absolute;
      top: 0.5rem;
      left: 0px;
      right: 0px;
      bottom: 0.5rem;
      background: #cc2626;
      border-radius: 50%;
      margin: 2px;
      opacity: 0;
      -webkit-transition: opacity 150ms ease;
      -moz-transition: opacity 150ms ease;
      transition: opacity 150ms ease; }
    input.search-box__input ~ .search-box__submit:hover ~ label .icon-search {
      color: white; }
    input.search-box__input ~ .search-box__submit:hover ~ label:before {
      opacity: 1; }
  input.search-box__input:hover {
    color: white;
    background: #cc2626;
    box-shadow: 0 0 0 2px #611212; }
    input.search-box__input:hover ~ label .icon-search {
      color: white; }
  input.search-box__input:focus, input.search-box__input.active {
    transition: width 0.3s cubic-bezier(0.6, 0, 0.4, 1), border-radius 0.3s, background 0.3s;
    border: none;
    outline: none;
    box-shadow: none;
    padding-left: 1rem;
    cursor: text;
    width: 200px;
    border-radius: auto;
    background: #cc2626;
    color: #6e6e6e; }
    input.search-box__input:focus::-webkit-input-placeholder, input.search-box__input.active::-webkit-input-placeholder {
      color: rgba(251, 235, 235, 0.75); }
    input.search-box__input:focus::-moz-placeholder, input.search-box__input.active::-moz-placeholder {
      color: rgba(251, 235, 235, 0.75); }
    input.search-box__input:focus:-moz-placeholder, input.search-box__input.active:-moz-placeholder {
      color: rgba(251, 235, 235, 0.75); }
    input.search-box__input:focus:-ms-input-placeholder, input.search-box__input.active:-ms-input-placeholder {
      color: rgba(251, 235, 235, 0.75); }
    input.search-box__input:focus ~ label .icon-search, input.search-box__input.active ~ label .icon-search {
      color: #6e6e6e; }
    input.search-box__input:focus ~ .search-box__submit, input.search-box__input.active ~ .search-box__submit {
      z-index: 3; }
  input.search-box__input:not(:focus):not(.active) {
    color: transparent; }
    input.search-box__input:not(:focus):not(.active)::-webkit-input-placeholder {
      color: transparent; }
    input.search-box__input:not(:focus):not(.active)::-moz-placeholder {
      color: transparent; }
    input.search-box__input:not(:focus):not(.active):-moz-placeholder {
      color: transparent; }
    input.search-box__input:not(:focus):not(.active):-ms-input-placeholder {
      color: transparent; }

@-webkit-keyframes activity-rotate {
  0% {
    -webkit-transform: rotate(0deg);
    -moz-transform: rotate(0deg);
    -ms-transform: rotate(0deg);
    transform: rotate(0deg); }
  100% {
    -webkit-transform: rotate(360deg);
    -moz-transform: rotate(360deg);
    -ms-transform: rotate(360deg);
    transform: rotate(360deg); } }

@-moz-keyframes activity-rotate {
  0% {
    -webkit-transform: rotate(0deg);
    -moz-transform: rotate(0deg);
    -ms-transform: rotate(0deg);
    transform: rotate(0deg); }
  100% {
    -webkit-transform: rotate(360deg);
    -moz-transform: rotate(360deg);
    -ms-transform: rotate(360deg);
    transform: rotate(360deg); } }

@keyframes activity-rotate {
  0% {
    -webkit-transform: rotate(0deg);
    -moz-transform: rotate(0deg);
    -ms-transform: rotate(0deg);
    transform: rotate(0deg); }
  100% {
    -webkit-transform: rotate(360deg);
    -moz-transform: rotate(360deg);
    -ms-transform: rotate(360deg);
    transform: rotate(360deg); } }

.search-box__label .icon-search::before, .search-box__label .icon-search::after {
  -webkit-transition: -webkit-transform, opacity;
  -moz-transition: -moz-transform, opacity;
  transition: transform, opacity; }

.search-box__label .icon-search::after {
  position: absolute;
  top: 50%;
  left: 50%;
  margin-left: -0.4375rem;
  margin-top: -0.4375rem;
  -webkit-transform: scale(0);
  -moz-transform: scale(0);
  -ms-transform: scale(0);
  transform: scale(0);
  opacity: 0; }

.search-box--loading .search-box__label .icon-search::before {
  -webkit-transform: scale(0);
  -moz-transform: scale(0);
  -ms-transform: scale(0);
  transform: scale(0);
  opacity: 0; }

.search-box--loading .search-box__label .icon-search::after {
  opacity: 1;
  -webkit-transform: scale(1);
  -moz-transform: scale(1);
  -ms-transform: scale(1);
  transform: scale(1);
  -webkit-animation: activity-rotate 1s 150ms linear infinite;
  -o-animation: activity-rotate 1s 150ms linear infinite;
  animation: activity-rotate 1s 150ms linear infinite; }

#search-submit {
  border: none;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px; }

.search-box__container .icon-search {
  position: relative;
  width: 2.5rem;
  color: white;
  cursor: pointer; }

@media only screen and (min-width: 27em) {
  input.search-box__input:focus, input.search-box__input.active {
    width: 300px; } }

@media only screen and (min-width: 40em) {
  input.search-box__input:focus, input.search-box__input.active {
    width: 350px; } }

a.search-modal-link.neutral-link:hover {
  background-color: transparent; }

.search-box__container {
  padding: 0px; }
  .search-box__container input.search-box__input {
    z-index: 1;
    position: relative;
    background: transparent;
    box-shadow: 0 0 0 1px rgba(110, 110, 110, 0);
    top: 0px;
    margin: 0px 0.125rem;
    padding-left: 2rem;
    height: 30px;
    border-radius: 0px;
    width: 1.3rem;
    -webkit-transition: all 600ms cubic-bezier(0.19, 1, 0.22, 1);
    -moz-transition: all 600ms cubic-bezier(0.19, 1, 0.22, 1);
    transition: all 600ms cubic-bezier(0.19, 1, 0.22, 1); }
    .search-box__container input.search-box__input:not(:focus):not(.active):not(.not-collapsible) {
      color: rgba(110, 110, 110, 0); }
      .search-box__container input.search-box__input:not(:focus):not(.active):not(.not-collapsible)::-webkit-input-placeholder {
        color: rgba(110, 110, 110, 0);
        -webkit-transition: color 600ms cubic-bezier(0.19, 1, 0.22, 1);
        -moz-transition: color 600ms cubic-bezier(0.19, 1, 0.22, 1);
        transition: color 600ms cubic-bezier(0.19, 1, 0.22, 1); }
      .search-box__container input.search-box__input:not(:focus):not(.active):not(.not-collapsible)::-moz-placeholder {
        color: rgba(110, 110, 110, 0);
        -webkit-transition: color 600ms cubic-bezier(0.19, 1, 0.22, 1);
        -moz-transition: color 600ms cubic-bezier(0.19, 1, 0.22, 1);
        transition: color 600ms cubic-bezier(0.19, 1, 0.22, 1); }
      .search-box__container input.search-box__input:not(:focus):not(.active):not(.not-collapsible):-moz-placeholder {
        color: rgba(110, 110, 110, 0);
        -webkit-transition: color 600ms cubic-bezier(0.19, 1, 0.22, 1);
        -moz-transition: color 600ms cubic-bezier(0.19, 1, 0.22, 1);
        transition: color 600ms cubic-bezier(0.19, 1, 0.22, 1); }
      .search-box__container input.search-box__input:not(:focus):not(.active):not(.not-collapsible):-ms-input-placeholder {
        color: rgba(110, 110, 110, 0);
        -webkit-transition: color 600ms cubic-bezier(0.19, 1, 0.22, 1);
        -moz-transition: color 600ms cubic-bezier(0.19, 1, 0.22, 1);
        transition: color 600ms cubic-bezier(0.19, 1, 0.22, 1); }
    .search-box__container input.search-box__input:focus, .search-box__container input.search-box__input.active, .search-box__container input.search-box__input.not-collapsible {
      background: #cc2626;
      margin-left: 0;
      width: 18.75rem; }
      .search-box__container input.search-box__input:focus::-webkit-input-placeholder, .search-box__container input.search-box__input.active::-webkit-input-placeholder, .search-box__container input.search-box__input.not-collapsible::-webkit-input-placeholder {
        color: rgba(110, 110, 110, 0.75);
        -webkit-transition: color 600ms cubic-bezier(0.19, 1, 0.22, 1);
        -moz-transition: color 600ms cubic-bezier(0.19, 1, 0.22, 1);
        transition: color 600ms cubic-bezier(0.19, 1, 0.22, 1); }
      .search-box__container input.search-box__input:focus::-moz-placeholder, .search-box__container input.search-box__input.active::-moz-placeholder, .search-box__container input.search-box__input.not-collapsible::-moz-placeholder {
        color: rgba(110, 110, 110, 0.75);
        -webkit-transition: color 600ms cubic-bezier(0.19, 1, 0.22, 1);
        -moz-transition: color 600ms cubic-bezier(0.19, 1, 0.22, 1);
        transition: color 600ms cubic-bezier(0.19, 1, 0.22, 1); }
      .search-box__container input.search-box__input:focus:-moz-placeholder, .search-box__container input.search-box__input.active:-moz-placeholder, .search-box__container input.search-box__input.not-collapsible:-moz-placeholder {
        color: rgba(110, 110, 110, 0.75);
        -webkit-transition: color 600ms cubic-bezier(0.19, 1, 0.22, 1);
        -moz-transition: color 600ms cubic-bezier(0.19, 1, 0.22, 1);
        transition: color 600ms cubic-bezier(0.19, 1, 0.22, 1); }
      .search-box__container input.search-box__input:focus:-ms-input-placeholder, .search-box__container input.search-box__input.active:-ms-input-placeholder, .search-box__container input.search-box__input.not-collapsible:-ms-input-placeholder {
        color: rgba(110, 110, 110, 0.75);
        -webkit-transition: color 600ms cubic-bezier(0.19, 1, 0.22, 1);
        -moz-transition: color 600ms cubic-bezier(0.19, 1, 0.22, 1);
        transition: color 600ms cubic-bezier(0.19, 1, 0.22, 1); }
      .search-box__container input.search-box__input:focus ~ label, .search-box__container input.search-box__input.active ~ label, .search-box__container input.search-box__input.not-collapsible ~ label {
        -webkit-transition: width 600ms cubic-bezier(0.19, 1, 0.22, 1);
        -moz-transition: width 600ms cubic-bezier(0.19, 1, 0.22, 1);
        transition: width 600ms cubic-bezier(0.19, 1, 0.22, 1);
        width: 2rem; }
        .search-box__container input.search-box__input:focus ~ label .icon-search, .search-box__container input.search-box__input.active ~ label .icon-search, .search-box__container input.search-box__input.not-collapsible ~ label .icon-search {
          -webkit-transition: color 600ms cubic-bezier(0.19, 1, 0.22, 1);
          -moz-transition: color 600ms cubic-bezier(0.19, 1, 0.22, 1);
          transition: color 600ms cubic-bezier(0.19, 1, 0.22, 1);
          color: #6e6e6e; }
      .search-box__container input.search-box__input:focus ~ .search-box__submit, .search-box__container input.search-box__input.active ~ .search-box__submit, .search-box__container input.search-box__input.not-collapsible ~ .search-box__submit {
        right: auto;
        left: 0;
        bottom: 0px;
        height: auto;
        width: 30px; }
        .search-box__container input.search-box__input:focus ~ .search-box__submit ~ label:before, .search-box__container input.search-box__input.active ~ .search-box__submit ~ label:before, .search-box__container input.search-box__input.not-collapsible ~ .search-box__submit ~ label:before {
          border-radius: 0px;
          top: 0px;
          bottom: 0px; }
        .search-box__container input.search-box__input:focus ~ .search-box__submit ~ label .icon-search, .search-box__container input.search-box__input.active ~ .search-box__submit ~ label .icon-search, .search-box__container input.search-box__input.not-collapsible ~ .search-box__submit ~ label .icon-search {
          color: rgba(255, 255, 255, 0.9); }
        .search-box__container input.search-box__input:focus ~ .search-box__submit:hover ~ label .icon-search, .search-box__container input.search-box__input.active ~ .search-box__submit:hover ~ label .icon-search, .search-box__container input.search-box__input.not-collapsible ~ .search-box__submit:hover ~ label .icon-search {
          color: #fff; }
    .search-box__container input.search-box__input ~ label {
      padding: 0px;
      right: auto;
      left: 0.9375rem;
      left: 0px;
      right: auto;
      z-index: 2;
      width: 2.9375rem;
      line-height: 30px;
      box-shadow: inset 0 3px 0 rgba(110, 110, 110, 0);
      height: 30px;
      -webkit-transition: box-shadow 0.3s, width 600ms cubic-bezier(0.19, 1, 0.22, 1);
      -moz-transition: box-shadow 0.3s, width 600ms cubic-bezier(0.19, 1, 0.22, 1);
      transition: box-shadow 0.3s, width 600ms cubic-bezier(0.19, 1, 0.22, 1); }
      .search-box__container input.search-box__input ~ label:after {
        color: transparent;
        content: '.';
        display: block;
        background: #6e6e6e;
        position: absolute;
        border-radius: 50%;
        top: 0px;
        right: 50%;
        margin-right: -1rem;
        width: 2rem;
        height: 2rem;
        -webkit-transform: scale(0);
        -moz-transform: scale(0);
        -ms-transform: scale(0);
        transform: scale(0);
        opacity: 0;
        transition: all 0.3s ease; }
      .search-box__container input.search-box__input ~ label .icon-search {
        -webkit-transition: color 600ms cubic-bezier(0.19, 1, 0.22, 1);
        -moz-transition: color 600ms cubic-bezier(0.19, 1, 0.22, 1);
        transition: color 600ms cubic-bezier(0.19, 1, 0.22, 1);
        color: #cc2626; }
    .search-box__container input.search-box__input:not(:focus):not(.active):not(.not-collapsible) ~ label:hover:after {
      -webkit-transform: scale(1);
      -moz-transform: scale(1);
      -ms-transform: scale(1);
      transform: scale(1);
      opacity: 1; }
    .search-box__container input.search-box__input:not(:focus):not(.active):not(.not-collapsible) ~ label:hover .icon-search {
      color: white;
      position: relative;
      z-index: 3; }
    .search-box__container input.search-box__input ~ .search-box__submit {
      right: auto;
      left: 0;
      bottom: 0px;
      height: auto;
      width: 30px; }
      .search-box__container input.search-box__input ~ .search-box__submit ~ label:before {
        border-radius: 0px;
        top: 0px;
        bottom: 0px; }

.js-product-search-results {
  min-width: 250px;
  background: #cc2626;
  border-color: #6e6e6e;
  border-width: 1px;
  border-radius: 0px;
  font-size: 0.875rem; }

.product-search__extra-hits .themed-nav, .product-search__no-hits {
  color: #6e6e6e; }

.product-search__element {
  float: none;
  font-size: 0.875rem; }
  .product-search__element:first-child {
    border-top-left-radius: -1px;
    border-top-right-radius: -1px; }
  .product-search__element:last-child {
    border-bottom-left-radius: -1px;
    border-bottom-right-radius: -1px; }
  .product-search__element .themed-nav {
    border-radius: -1px;
    line-height: 45px !important;
    color: #6e6e6e; }
    .product-search__element .themed-nav.active, .product-search__element .themed-nav:hover {
      background: #6e6e6e;
      color: white !important; }

.product-search__extra-hits {
  border-bottom-left-radius: -1px;
  border-bottom-right-radius: -1px; }
  .product-search__extra-hits > .themed-nav {
    border-radius: -1px; }

.cart-and-checkout a, #nav-open-btn {
  color: rgba(255, 255, 255, 0.9) !important;
  border-radius: 0px;
  background: #cc2626 !important;
  line-height: 30px !important;
  padding: 0 10px;
  -webkit-transition: background, color, box-shadow;
  -moz-transition: background, color, box-shadow;
  transition: background, color, box-shadow;
  -webkit-transition-duration: 0.3s;
  -moz-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-transition-timing-function: cubic-bezier(0.7, 0, 0.3, 1);
  -moz-transition-timing-function: cubic-bezier(0.7, 0, 0.3, 1);
  transition-timing-function: cubic-bezier(0.7, 0, 0.3, 1); }
  .cart-and-checkout a:hover, #nav-open-btn:hover {
    color: #fbebeb !important;
    background: #cc2626 !important; }

.cart-and-checkout {
  position: relative; }
  .cart-and-checkout a {
    position: relative; }
    .cart-and-checkout a:hover .cart-button__quantity {
      background: #fff !important;
      color: #cc2626 !important;
      box-shadow: 0 0 0 1px #cc2626 !important; }
    .cart-and-checkout a:hover .cart-button__text, .cart-and-checkout a:hover .cart-button__sum, .cart-and-checkout a:hover .cart-button__currency {
      color: white; }
  .cart-and-checkout .cart-button__icon {
    position: relative;
    z-index: 10; }
    .cart-and-checkout .cart-button__icon.icon-shopping-cart::after {
      content: "";
      opacity: .05;
      right: -95px;
      top: 3px;
      position: absolute;
      transform: scale(3);
      display: none; }
  .cart-and-checkout .cart-button__text {
    display: none;
    text-transform: uppercase;
    font-size: 0.5rem;
    line-height: 1.1rem;
    color: #9E9E9E;
    position: relative;
    top: 5px; }
  .cart-and-checkout .cart-button__sum, .cart-and-checkout .cart-button__currency {
    line-height: 1.875rem;
    font-size: .75rem;
    transition: color 0.3s ease;
    height: 2.85rem;
    height: 1.875rem;
    position: relative;
    top: 0px;
    z-index: 20; }
  .cart-and-checkout .cart-button__currency {
    display: none; }
  .cart-and-checkout .checkout-button {
    display: none !important; }
  .cart-and-checkout .cart-button__quantity {
    border-radius: 0px;
    font-size: 0.75rem;
    min-width: 0.625rem;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-align: center;
    width: auto;
    padding: 0.0625rem 0.125rem;
    height: 0.8125rem;
    line-height: 0.75rem;
    position: absolute;
    z-index: 20;
    left: -0.375rem;
    top: -0.375rem;
    background: #fff;
    color: #cc2626;
    box-shadow: 0 0 0 1px #cc2626 !important; }
  .cart-and-checkout a.cart-button--empty .cart-button__text, .cart-and-checkout a.cart-button--empty .cart-button__quantity {
    display: none; }

.social-buttons-list {
  list-style: none;
  margin: 0;
  text-align: left; }

.social-buttons-list--product {
  margin-bottom: 1rem; }

.social-button {
  display: inline-block;
  line-height: 3rem;
  margin-bottom: 0; }
  .social-buttons-list--product .social-button {
    margin-bottom: 0;
    line-height: 1.875rem; }
  .social-button .social-button__link {
    display: block;
    height: 1.875rem;
    width: 1.875rem;
    opacity: 1;
    -webkit-transition: all 0.2s ease;
    -moz-transition: all 0.2s ease;
    transition: all 0.2s ease;
    border-radius: 50%;
    color: #727272;
    font-size: 1.25rem;
    text-align: center; }
    .social-buttons-list--product .social-button .social-button__link {
      color: #333333; }
      .social-buttons-list--product .social-button .social-button__link .icon-facebook {
        background: #333333;
        color: #ffffff; }
    .social-button .social-button__link:hover, .social-button .social-button__link:focus, .social-button .social-button__link:active {
      color: #f0f0f0;
      opacity: 1; }
      .social-button .social-button__link:hover .icon-facebook, .social-button .social-button__link:focus .icon-facebook, .social-button .social-button__link:active .icon-facebook {
        background: #3b5998;
        color: white; }

.social-buttons__headline-wrapper {
  display: none; }

.social-button--facebook .icon-facebook {
  border-radius: 2px;
  color: #f9f9f9;
  background: #727272;
  -webkit-transition: all 0.2s ease;
  -moz-transition: all 0.2s ease;
  transition: all 0.2s ease; }

.social-button--blogger:hover .social-button__link, .social-button--blogger:focus .social-button__link, .social-button--blogger:active .social-button__link {
  color: #fc9948;
  border-color: #fc9948; }

.social-button--ello:hover .social-button__link, .social-button--ello:focus .social-button__link, .social-button--ello:active .social-button__link {
  color: #000;
  border-color: rgba(0, 0, 0, 0.1); }

.social-button--facebook:hover .social-button__link, .social-button--facebook:focus .social-button__link, .social-button--facebook:active .social-button__link {
  color: #3b5998;
  border-color: #3b5998; }

.social-button--facebook:hover .icon-facebook, .social-button--facebook:focus .icon-facebook, .social-button--facebook:active .icon-facebook {
  background: #3b5998;
  color: white; }

.social-button--flickr:hover .social-button__link, .social-button--flickr:focus .social-button__link, .social-button--flickr:active .social-button__link {
  color: #ff0084;
  border-color: #ff0084; }

.social-button--googleplus:hover .social-button__link, .social-button--googleplus:focus .social-button__link, .social-button--googleplus:active .social-button__link {
  color: #dd4b39;
  border-color: #dd4b39; }

.social-button--instagram:hover .social-button__link, .social-button--instagram:focus .social-button__link, .social-button--instagram:active .social-button__link {
  color: #517fa4;
  border-color: #517fa4; }

.social-button--linkedin:hover .social-button__link, .social-button--linkedin:focus .social-button__link, .social-button--linkedin:active .social-button__link {
  color: #007bb6;
  border-color: #007bb6; }

.social-button--mail:hover .social-button__link, .social-button--mail:focus .social-button__link, .social-button--mail:active .social-button__link {
  color: #333;
  border-color: #333; }

.social-button--pinterest:hover .social-button__link, .social-button--pinterest:focus .social-button__link, .social-button--pinterest:active .social-button__link {
  color: #cb2027;
  border-color: #cb2027; }

.social-button--twitter:hover .social-button__link, .social-button--twitter:focus .social-button__link, .social-button--twitter:active .social-button__link {
  color: #00aced;
  border-color: #00aced; }

.social-button--vimeo:hover .social-button__link, .social-button--vimeo:focus .social-button__link, .social-button--vimeo:active .social-button__link {
  color: #45bcf9;
  border-color: #45bcf9; }

.social-button--youtube:hover .social-button__link, .social-button--youtube:focus .social-button__link, .social-button--youtube:active .social-button__link {
  color: #cc181e;
  border-color: #cc181e; }

@media only screen and (min-width: 40em) {
  .social-buttons-list--product {
    margin-bottom: 0; } }

@media only screen and (min-width: 90em) {
  .social-buttons-list--product {
    position: absolute;
    right: -3rem;
    top: 1rem;
    width: 1.875rem; }
    .social-buttons-list--product .social-button {
      margin-bottom: .5rem; }
    #pageframe .social-buttons-list--product {
      right: -4.5rem; } }

.block__box__headline {
  text-transform: uppercase;
  font-size: 1.375rem;
  padding: 0.5rem 0.9375rem 0.5rem 0.9375rem;
  margin: 0; }

.block__box__content {
  padding: 0.5rem 0.9375rem 1.875rem 0.9375rem; }

.block__box ul {
  list-style: none;
  margin: 0; }
  .block__box ul ul li {
    padding-left: 1rem; }

.block__box li a {
  display: block;
  width: 100; }

.block__box li.parent > a:before {
  -webkit-transition: -webkit-transform, 150ms;
  -moz-transition: -moz-transform, 150ms;
  transition: transform, 150ms;
  /* use !important to prevent issues with browser extensions that change fonts */
  font-family: 'pioneer' !important;
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: ""; }

.block__box li.parent > a.toggled:before {
  -webkit-transform: rotate(45deg);
  -moz-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  transform: rotate(45deg);
  color: #e03114; }

.block__box li.parent > ul {
  display: none; }

.block__box.block__box--logo_list a:before {
  display: none; }

.block__login__forgotpassword {
  padding-top: 0.875rem;
  padding-right: 1.75rem;
  padding-bottom: 0.9375rem;
  padding-left: 1.75rem;
  font-size: 0.8125rem;
  padding-left: 0;
  padding-right: 0; }

#footer .block__box__headline {
  font-size: 1rem; }

#footer .footer-block:last-child {
  margin-bottom: 1.875rem; }
  #footer .footer-block:last-child .block__box:last-child {
    border-bottom: none; }

#footer .block__box a {
  font-size: 0.875rem;
  line-height: 1.618; }

#footer .block__box li a.neutral-link:before,
#footer .block__box li.neutral-link > a:before {
  color: #cc2626; }

#footer .block__box li a.toggled:before {
  color: #e03114; }

@media only screen and (min-width: 40em) {
  #footer .footer-block:first-child .block__box:last-child,
  #footer .footer-block:nth-last-child(2) .block__box:last-child {
    border-bottom-width: 0; }
  #footer .footer-block:first-child .block__box:first-child,
  #footer .footer-block:nth-last-child(2) .block__box:first-child {
    border-bottom-width: 1px; } }

@media only screen and (min-width: 64em) {
  #footer .footer-block {
    margin-bottom: 1.875rem; }
    #footer .footer-block .block__box:last-child {
      border-bottom: none; }
  .block__box__headline {
    padding-left: 0;
    padding-right: 0; }
    .block__box__headline:after {
      display: none; }
    .block__box__headline:hover {
      cursor: inherit; }
    .block__box__headline.toggled {
      background-color: transparent; }
  .block__box__content {
    display: block !important;
    height: auto !important;
    opacity: 1 !important;
    padding-left: 0;
    padding-right: 0; } }

.nav-side {
  margin-top: -0.875rem;
  padding: 0; }

.nav-side__header {
  margin: 0;
  padding: 1.3375rem 0 0.25rem;
  font-size: 1.4375rem;
  border-bottom: 2px solid #dddddd;
  border-bottom-color: currentcolor; }

.splitmenu.level-0 {
  list-style-type: none; }

.splitmenu .level-0.selected, .splitmenu .level-0.current {
  display: block; }

.splitmenu .level-1 {
  list-style-type: none; }

.splitmenu .level-2 a {
  font-size: 0.875rem; }

.splitmenu__item {
  line-height: 1.25rem; }
  .splitmenu__item ul {
    color: #545454;
    list-style: none;
    white-space: normal; }
  .splitmenu__item a {
    display: block;
    width: 100%;
    padding: 0.625rem 0.6875rem;
    padding-left: 0; }
    .no-touch .splitmenu__item a {
      padding: 0.46875rem 0.6875rem;
      padding-left: 0; }
    .splitmenu__item a:focus, .splitmenu__item a:hover {
      color: #cc2626; }
  .splitmenu__item.current > a {
    background: #fff;
    color: #cc2626; }
    .splitmenu__item.current > a:focus, .splitmenu__item.current > a:hover {
      color: #cc2626; }
  .splitmenu__item.selected > a {
    font-weight: bold; }
  .splitmenu__item.level-0 {
    padding: 0; }
    .splitmenu__item.level-0 > ul:after {
      display: block;
      content: '';
      height: 1px;
      background-image: -webkit-gradient(linear, left center, right center, from(rgba(129, 129, 129, 0)), color-stop(0.175, rgba(129, 129, 129, 0.2)), color-stop(0.825, rgba(129, 129, 129, 0.2)), to(rgba(129, 129, 129, 0)));
      background-image: -webkit-linear-gradient(left, rgba(129, 129, 129, 0) 0%, rgba(129, 129, 129, 0.2) 17.5%, rgba(129, 129, 129, 0.2) 82.5%, rgba(129, 129, 129, 0) 100%);
      background-image: linear-gradient(to right, rgba(129, 129, 129, 0) 0%, rgba(129, 129, 129, 0.2) 17.5%, rgba(129, 129, 129, 0.2) 82.5%, rgba(129, 129, 129, 0) 100%);
      background-image: linear-gradient(to right, rgba(129, 129, 129, 0) 0%, rgba(129, 129, 129, 0.2) 17.5%, rgba(129, 129, 129, 0.2) 82.5%, rgba(129, 129, 129, 0) 100%); }
    .splitmenu__item.level-0 > ul:before {
      display: block;
      content: '';
      height: 1px;
      background-image: -webkit-gradient(linear, left center, right center, from(rgba(129, 129, 129, 0)), color-stop(0.175, rgba(129, 129, 129, 0.2)), color-stop(0.825, rgba(129, 129, 129, 0.2)), to(rgba(129, 129, 129, 0)));
      background-image: -webkit-linear-gradient(left, rgba(129, 129, 129, 0) 0%, rgba(129, 129, 129, 0.2) 17.5%, rgba(129, 129, 129, 0.2) 82.5%, rgba(129, 129, 129, 0) 100%);
      background-image: linear-gradient(to right, rgba(129, 129, 129, 0) 0%, rgba(129, 129, 129, 0.2) 17.5%, rgba(129, 129, 129, 0.2) 82.5%, rgba(129, 129, 129, 0) 100%);
      background-image: linear-gradient(to right, rgba(129, 129, 129, 0) 0%, rgba(129, 129, 129, 0.2) 17.5%, rgba(129, 129, 129, 0.2) 82.5%, rgba(129, 129, 129, 0) 100%); }
  .splitmenu__item.level-1:last-child:after {
    display: none; }

.nav-side .main-nav__toggle, .nav-side .main-nav__toggle:before {
  color: rgba(204, 38, 38, 0.9) !important; }

.nav-side .main-nav__toggle.toggled:before {
  color: rgba(117, 117, 117, 0.7) !important; }

.nav-side .main-nav__toggle:hover {
  cursor: pointer;
  background: #ffffff; }
  .nav-side .main-nav__toggle:hover, .nav-side .main-nav__toggle:hover:before {
    color: rgba(204, 38, 38, 0.9) !important; }

.nav-side .main-nav__toggle:before {
  /* use !important to prevent issues with browser extensions that change fonts */
  font-family: 'pioneer' !important;
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: ""; }

.nav-side .parent {
  position: relative; }
  .nav-side .parent > a:after {
    line-height: 2.1875rem;
    position: absolute;
    top: 0.1rem;
    right: 0.4rem;
    font-size: 1.25rem;
    -webkit-transition: -webkit-transform, 400ms;
    -moz-transition: -moz-transform, 400ms;
    transition: transform, 400ms; }
  .nav-side .parent > a.toggled:after {
    -webkit-transform: rotatex(180deg);
    -moz-transform: rotatex(180deg);
    -ms-transform: rotatex(180deg);
    transform: rotatex(180deg); }
  .nav-side .parent.current > ul, .nav-side .parent.selected > ul {
    display: block; }
    .nav-side .parent.current > ul a, .nav-side .parent.selected > ul a {
      position: relative;
      background-color: rgba(240, 240, 240, 0.125); }
      .nav-side .parent.current > ul a:before, .nav-side .parent.current > ul a:after, .nav-side .parent.selected > ul a:before, .nav-side .parent.selected > ul a:after {
        position: absolute;
        left: 0;
        right: 0;
        -webkit-transition: opacity, 300ms ease;
        -moz-transition: opacity, 300ms ease;
        transition: opacity, 300ms ease;
        opacity: 0; }
      .nav-side .parent.current > ul a:after, .nav-side .parent.selected > ul a:after {
        display: block;
        content: '';
        height: 1px;
        background-image: -webkit-gradient(linear, left center, right center, from(rgba(204, 38, 38, 0)), color-stop(0.175, rgba(204, 38, 38, 0.2)), color-stop(0.825, rgba(204, 38, 38, 0.2)), to(rgba(204, 38, 38, 0)));
        background-image: -webkit-linear-gradient(left, rgba(204, 38, 38, 0) 0%, rgba(204, 38, 38, 0.2) 17.5%, rgba(204, 38, 38, 0.2) 82.5%, rgba(204, 38, 38, 0) 100%);
        background-image: linear-gradient(to right, rgba(204, 38, 38, 0) 0%, rgba(204, 38, 38, 0.2) 17.5%, rgba(204, 38, 38, 0.2) 82.5%, rgba(204, 38, 38, 0) 100%);
        background-image: linear-gradient(to right, rgba(204, 38, 38, 0) 0%, rgba(204, 38, 38, 0.2) 17.5%, rgba(204, 38, 38, 0.2) 82.5%, rgba(204, 38, 38, 0) 100%);
        top: 0; }
      .nav-side .parent.current > ul a:before, .nav-side .parent.selected > ul a:before {
        display: block;
        content: '';
        height: 1px;
        background-image: -webkit-gradient(linear, left center, right center, from(rgba(204, 38, 38, 0)), color-stop(0.175, rgba(204, 38, 38, 0.2)), color-stop(0.825, rgba(204, 38, 38, 0.2)), to(rgba(204, 38, 38, 0)));
        background-image: -webkit-linear-gradient(left, rgba(204, 38, 38, 0) 0%, rgba(204, 38, 38, 0.2) 17.5%, rgba(204, 38, 38, 0.2) 82.5%, rgba(204, 38, 38, 0) 100%);
        background-image: linear-gradient(to right, rgba(204, 38, 38, 0) 0%, rgba(204, 38, 38, 0.2) 17.5%, rgba(204, 38, 38, 0.2) 82.5%, rgba(204, 38, 38, 0) 100%);
        background-image: linear-gradient(to right, rgba(204, 38, 38, 0) 0%, rgba(204, 38, 38, 0.2) 17.5%, rgba(204, 38, 38, 0.2) 82.5%, rgba(204, 38, 38, 0) 100%);
        bottom: 0; }
    .nav-side .parent.current > ul a:hover:before, .nav-side .parent.current > ul a:hover:after, .nav-side .parent.selected > ul a:hover:before, .nav-side .parent.selected > ul a:hover:after {
      opacity: 0.8; }
  .nav-side .parent.current > a:after, .nav-side .parent.selected > a:after {
    -webkit-transform: rotatex(180deg);
    -moz-transform: rotatex(180deg);
    -ms-transform: rotatex(180deg);
    transform: rotatex(180deg); }
  .nav-side .parent.current > a.toggled:after, .nav-side .parent.selected > a.toggled:after {
    -webkit-transform: rotatex(0deg);
    -moz-transform: rotatex(0deg);
    -ms-transform: rotatex(0deg);
    transform: rotatex(0deg); }

.nav-side ul.level-0 {
  padding: 0; }

.nav-side ul.level-1 {
  padding: 0; }

.nav-side .level-1 a {
  padding-left: 1.5rem; }

.nav-side .level-2 a {
  padding-left: 2.25rem; }

.nav-side .level-3 a {
  padding-left: 3rem; }

.nav-side .level-4 a {
  padding-left: 3.75rem; }

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

.js-nav .content-wrapper > .header-row {
  opacity: 1 !important; }

.js-nav .header-row > *:not(#nav) {
  opacity: 0.4 !important;
  -webkit-transition: opacity, 500ms;
  -moz-transition: opacity, 500ms;
  transition: opacity, 500ms; }

.main-nav ul {
  white-space: initial; }

.main-nav__list {
  text-align: left; }
  .main-nav__list .main-nav__item.selected > a, .main-nav__list .main-nav__item.current > a {
    background-color: #fff; }
  .main-nav__list:after {
    display: block;
    content: '';
    height: 1px;
    background-image: -webkit-gradient(linear, left center, right center, from(rgba(145, 145, 145, 0)), color-stop(0.35, rgba(145, 145, 145, 0.2)), color-stop(0.65, rgba(145, 145, 145, 0.2)), to(rgba(145, 145, 145, 0)));
    background-image: -webkit-linear-gradient(left, rgba(145, 145, 145, 0) 0%, rgba(145, 145, 145, 0.2) 35%, rgba(145, 145, 145, 0.2) 65%, rgba(145, 145, 145, 0) 100%);
    background-image: linear-gradient(to right, rgba(145, 145, 145, 0) 0%, rgba(145, 145, 145, 0.2) 35%, rgba(145, 145, 145, 0.2) 65%, rgba(145, 145, 145, 0) 100%);
    background-image: linear-gradient(to right, rgba(145, 145, 145, 0) 0%, rgba(145, 145, 145, 0.2) 35%, rgba(145, 145, 145, 0.2) 65%, rgba(145, 145, 145, 0) 100%); }
  .main-nav__list:hover:after {
    display: block;
    content: '';
    height: 1px;
    background-image: -webkit-gradient(linear, left center, right center, from(rgba(204, 38, 38, 0)), color-stop(0.35, rgba(204, 38, 38, 0.2)), color-stop(0.65, rgba(204, 38, 38, 0.2)), to(rgba(204, 38, 38, 0)));
    background-image: -webkit-linear-gradient(left, rgba(204, 38, 38, 0) 0%, rgba(204, 38, 38, 0.2) 35%, rgba(204, 38, 38, 0.2) 65%, rgba(204, 38, 38, 0) 100%);
    background-image: linear-gradient(to right, rgba(204, 38, 38, 0) 0%, rgba(204, 38, 38, 0.2) 35%, rgba(204, 38, 38, 0.2) 65%, rgba(204, 38, 38, 0) 100%);
    background-image: linear-gradient(to right, rgba(204, 38, 38, 0) 0%, rgba(204, 38, 38, 0.2) 35%, rgba(204, 38, 38, 0.2) 65%, rgba(204, 38, 38, 0) 100%); }

@media only screen and (min-width: 64em) {
  .main-nav__list {
    text-align: center; } }

.main-nav__item.level-0 {
  border-bottom-width: 0px !important; }
  .main-nav__item.level-0 > a {
    font-weight: normal; }

.logo-wrapper {
  margin-bottom: 1.875rem; }

@media only screen and (min-width: 64em) {
  .logo-wrapper {
    margin-bottom: 0; }
  .row--space-between {
    display: -webkit-box;
    display: -moz-box;
    display: box;
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -moz-box-align: center;
    box-align: center;
    -webkit-align-items: center;
    -moz-align-items: center;
    -ms-align-items: center;
    -o-align-items: center;
    align-items: center;
    -ms-flex-align: center;
    -webkit-box-pack: justify;
    -moz-box-pack: justify;
    box-pack: justify;
    -webkit-justify-content: space-between;
    -moz-justify-content: space-between;
    -ms-justify-content: space-between;
    -o-justify-content: space-between;
    justify-content: space-between;
    -ms-flex-pack: justify; } }

.main-nav__submenu.level-1 {
  margin-bottom: -1px; }

.content-bg .main-nav a {
  color: #757575; }
  .content-bg .main-nav a:hover {
    color: #cc2626; }

.main-nav__item.level-1 {
  text-align: left; }

#search-box__input {
  background: #fff;
  box-shadow: inset #f9f9f9 0 0 0 19px, inset rgba(204, 38, 38, 0) 0 0 0 20px;
  border: none; }
  #search-box__input:focus {
    box-shadow: inset #fff 0 0 0 0, inset #cc2626 0 0 0 1px;
    border: none; }

#extra-nav-large input.search-box__input {
  border: 1px solid rgba(110, 110, 110, 0.3);
  background-color: #fff;
  text-indent: .4rem; }
  #extra-nav-large input.search-box__input:hover {
    border-color: rgba(110, 110, 110, 0.5); }
  #extra-nav-large input.search-box__input:focus, #extra-nav-large input.search-box__input:active {
    border-color: rgba(110, 110, 110, 0.7); }

#extra-nav-large input.search-box__input ~ .search-box__submit ~ label {
  background: #cc2626; }

#extra-nav-large input.search-box__input ~ .search-box__submit ~ label:before {
  opacity: 1; }

#user-nav {
  overflow: visible; }

#tools-nav .currency-name, #user-nav .currency-name {
  display: none !important; }

#tools-nav .setting__select, #user-nav .setting__select {
  top: 0px;
  right: 0px; }

#tools-nav .icon, #user-nav .icon {
  color: #727272;
  -webkit-transition: all 0.2s ease;
  -moz-transition: all 0.2s ease;
  transition: all 0.2s ease; }
  #tools-nav .icon:hover, #tools-nav .icon:focus, #user-nav .icon:hover, #user-nav .icon:focus {
    color: #cc2626; }

.readon-icon__container {
  background: transparent; }

.productlist__product-wrap, .categorylist__category-wrap {
  border-width: 2px !important;
  -webkit-transition: border-color 150ms ease;
  -moz-transition: border-color 150ms ease;
  transition: border-color 150ms ease;
  border-color: #c9c9c9 !important;
  border-radius: 0px; }
  .productlist__product-wrap:hover, .categorylist__category-wrap:hover {
    border-color: rgba(204, 38, 38, 0.3) !important; }
  .productlist__product-wrap > :not(.equal-height-column__readon), .categorylist__category-wrap > :not(.equal-height-column__readon) {
    -webkit-transition: all 150ms ease;
    -moz-transition: all 150ms ease;
    transition: all 150ms ease; }
  .productlist__product-wrap:hover > :not(.equal-height-column__readon):not(.offers), .categorylist__category-wrap:hover > :not(.equal-height-column__readon):not(.offers) {
    -webkit-filter: saturate(0%);
    filter: saturate(0%);
    opacity: 0.6; }

.productlist__product-wrap:hover .discount {
  background-color: #df5555;
  color: #ffffff; }

.productlist__product-wrap .currency {
  margin-right: 0.3rem; }

.on-sale .productlist__product-wrap .price--original, .productlist__product-wrap .vat-info, .productlist__product-wrap .price__saleprice-text, .productlist__product-wrap .price--original .currency {
  display: none; }

.productlist__product-wrap .price--original {
  text-decoration: line-through;
  opacity: 0.6;
  font-size: 13px;
  line-height: 2.5rem; }

.productlist__product-wrap .discount {
  border-radius: 0px;
  display: inline-block;
  color: #cc2626;
  position: absolute;
  top: -6px;
  right: -6px;
  background: #ffffff;
  border: 2px #cc2626 solid;
  padding: 0 2px;
  box-shadow: rgba(255, 255, 255, 0) 0 0 0 2px;
  -webkit-transition: all 150ms ease;
  -moz-transition: all 150ms ease;
  transition: all 150ms ease; }

.productlist__product-wrap .button-group {
  display: inline-block; }

.productlist__product__button-wrap {
  display: inline-block; }

.product__breadcrumbs .breadcrumbs {
  padding: 10px; }

.search-box__container {
  height: auto; }

.search-box__input {
  width: 100% !important; }
  .search-box__input.is-results {
    border-bottom-left-radius: 0px !important;
    border-bottom-right-radius: 0px !important; }

.js-product-search-results {
  border-top-left-radius: 0px;
  border-top-right-radius: 0px; }

@media only screen and (min-width: 40em) and (max-width: 63.9375em) {
  .js-product-search-results {
    border-top-right-radius: 0px; } }

.header-row .cart-and-checkout .cart-button {
  float: right; }

#main {
  padding: 20px 0; }

#footer {
  padding: 20px 0 0 0; }

#end {
  padding: 10px 0 20px 0; }

#footer .block__box--newsletter .block__box__headline {
  font-size: 1.5625rem; }

.footer-bg input[type="text"], .footer-bg input[type="password"] {
  background-color: #dadada;
  color: #5d5d5d; }
  .footer-bg input[type="text"]::-webkit-input-placeholder, .footer-bg input[type="password"]::-webkit-input-placeholder {
    color: rgba(93, 93, 93, 0.75); }
  .footer-bg input[type="text"]::-moz-placeholder, .footer-bg input[type="password"]::-moz-placeholder {
    color: rgba(93, 93, 93, 0.75); }
  .footer-bg input[type="text"]:-moz-placeholder, .footer-bg input[type="password"]:-moz-placeholder {
    color: rgba(93, 93, 93, 0.75); }
  .footer-bg input[type="text"]:-ms-input-placeholder, .footer-bg input[type="password"]:-ms-input-placeholder {
    color: rgba(93, 93, 93, 0.75); }

.footer2-bg input[type="text"], .footer2-bg input[type="password"] {
  background-color: #d6d6d6;
  color: #5c5c5c; }
  .footer2-bg input[type="text"]::-webkit-input-placeholder, .footer2-bg input[type="password"]::-webkit-input-placeholder {
    color: rgba(92, 92, 92, 0.75); }
  .footer2-bg input[type="text"]::-moz-placeholder, .footer2-bg input[type="password"]::-moz-placeholder {
    color: rgba(92, 92, 92, 0.75); }
  .footer2-bg input[type="text"]:-moz-placeholder, .footer2-bg input[type="password"]:-moz-placeholder {
    color: rgba(92, 92, 92, 0.75); }
  .footer2-bg input[type="text"]:-ms-input-placeholder, .footer2-bg input[type="password"]:-ms-input-placeholder {
    color: rgba(92, 92, 92, 0.75); }

#epost_newsletter {
  border-bottom-right-radius: 0px;
  border-top-right-radius: 0px; }

.nav-open-btn__container {
  display: block; }

#nav-open-btn {
  font-size: 0.875rem;
  display: inline-block; }

#footer .my-account__email-field label, #footer .my-account__password-field label, #footer .block__box--tip-a-friend label {
  display: none; }

ul.partner-logos {
  list-style: none;
  margin: 0; }

.partner-logo {
  display: inline-block; }
  .partner-logo img {
    max-width: 55px;
    margin: 0 .5rem;
    opacity: .75;
    -webkit-transition: opacity 0.25s ease;
    -moz-transition: opacity 0.25s ease;
    transition: opacity 0.25s ease; }
  .partner-logo:hover img {
    opacity: 1; }
  .partner-logo:first-child {
    margin-left: 0; }
  .partner-logo:last-child {
    margin-right: 0; }

#bestseller__list {
  margin: 0;
  list-style: none; }
  #bestseller__list a:before {
    display: none; }

.bestseller {
  width: 100%;
  padding: .25rem 0; }
  .bestseller .row {
    position: relative; }

.bestseller__title {
  font-size: 0.8125rem;
  font-weight: normal;
  margin: 0;
  padding: .25rem 0 .25rem 0; }

.bestseller__image {
  width: 25%; }
  .bestseller__image img {
    width: 100%;
    max-width: 100%;
    padding: 2px;
    border-width: 1px;
    border-style: solid;
    border-radius: 0px; }

.bestseller__price {
  font-size: 1.25rem;
  font-weight: normal; }

.bestseller__currency {
  font-weight: normal;
  display: none; }

.content-bg .bestseller--on-sale .price {
  color: #e81314; }

.footer-bg2 .bestseller--on-sale .price {
  color: #da1213; }

.bestseller__price--original {
  font-size: 0.875rem;
  margin-left: 0.5rem;
  text-decoration: line-through; }

.splitmenu ul.toggled {
  display: none; }

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWZ0ZXJidXJuZXIuY3NzIiwic291cmNlcyI6WyJhZnRlcmJ1cm5lci5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvX19kZWJ1Zy9fbWFzdGVyLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9mb3VuZGF0aW9uL19mdW5jdGlvbnMuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL2JvdXJib24vZnVuY3Rpb25zL19tb2R1bGFyLXNjYWxlLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9fZnVuY3Rpb25zLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9mdW5jdGlvbnMvX2NvbG9yLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9mdW5jdGlvbnMvX21hdGguc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2Z1bmN0aW9ucy9tYXRoL19jb25zdGFudHMuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2Z1bmN0aW9ucy9tYXRoL19hYnMuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2Z1bmN0aW9ucy9tYXRoL19leHAuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2Z1bmN0aW9ucy9tYXRoL19mYWN0LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9mdW5jdGlvbnMvbWF0aC9fZnJleHAuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2Z1bmN0aW9ucy9tYXRoL19sZGV4cC5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvZnVuY3Rpb25zL21hdGgvX2xvZy5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvZnVuY3Rpb25zL21hdGgvX2x1bWluYW5jZS1wcmVjYWxjLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9mdW5jdGlvbnMvbWF0aC9fcG93LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9mdW5jdGlvbnMvbWF0aC9fbnRoLXJvb3Quc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2Z1bmN0aW9ucy9tYXRoL19zcXJ0LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9mdW5jdGlvbnMvbWF0aC9fdHJpZ29ub21ldHJ5LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9mdW5jdGlvbnMvX3JlcGxhY2UtbnRoLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9mdW5jdGlvbnMvX3N0cmluZ3Muc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2Z1bmN0aW9ucy9zdHJpbmdzL19zdHItZXhwbG9kZS5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvZnVuY3Rpb25zL191bml0cy5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L3N0eWxlcy9fZm9udHMuc2NzcyIsInN0eWxlcy9fc2V0dGluZ3Muc2NzcyIsInN0eWxlcy9fY29sb3Itc2V0dGluZ3Muc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9zZXR0aW5ncy9fYmFzZS1zZXR0aW5ncy5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L3NldHRpbmdzL19iYXNlLWNvbG9yLXNldHRpbmdzLnNjc3MiLCJzdHlsZXMvX2Jhc2UtY29sb3Itc2V0dGluZ3Muc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9zdHlsZXMvX2NvbG9yLWNvbnRyYXN0LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9fbm9ybWFsaXplLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9fbWl4aW5zLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9taXhpbnMvX2FjY2Vzc2liaWxpdHkuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L21peGlucy9fY2VudGVyLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9taXhpbnMvX2hhaXJsaW5lLWJvcmRlci5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbWl4aW5zL19udGgtY2hpbGRyZW4uc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L21peGlucy9fdHJhbnNmb3JtLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9ib3VyYm9uL3NldHRpbmdzL19wcmVmaXhlci5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvYm91cmJvbi9hZGRvbnMvX3ByZWZpeGVyLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9ib3VyYm9uL2NzczMvX2FuaW1hdGlvbi5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvYm91cmJvbi9jc3MzL19iYWNrZmFjZS12aXNpYmlsaXR5LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9ib3VyYm9uL2NzczMvX2JvcmRlci1yYWRpdXMuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL2JvdXJib24vY3NzMy9fZmxleC1ib3guc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL2JvdXJib24vY3NzMy9fa2V5ZnJhbWVzLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9ib3VyYm9uL2NzczMvX2JhY2tncm91bmQtaW1hZ2Uuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL2JvdXJib24vY3NzMy9fbGluZWFyLWdyYWRpZW50LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9ib3VyYm9uL2NzczMvX3BlcnNwZWN0aXZlLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9ib3VyYm9uL2NzczMvX3RyYW5zZm9ybS5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvYm91cmJvbi9jc3MzL190cmFuc2l0aW9uLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9ib3VyYm9uL2NzczMvX2ZpbHRlci5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvYm91cmJvbi9jc3MzL19wbGFjZWhvbGRlci5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvZm91bmRhdGlvbi9jb21wb25lbnRzL19hbGVydC1ib3hlcy5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvZm91bmRhdGlvbi9jb21wb25lbnRzL19nbG9iYWwuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL2ZvdW5kYXRpb24vX2Z1bmN0aW9ucy5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvZm91bmRhdGlvbi9jb21wb25lbnRzL19ibG9jay1ncmlkLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9mb3VuZGF0aW9uL2NvbXBvbmVudHMvX2JyZWFkY3J1bWJzLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9mb3VuZGF0aW9uL2NvbXBvbmVudHMvX2Zvcm1zLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9mb3VuZGF0aW9uL2NvbXBvbmVudHMvX2J1dHRvbnMuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL2ZvdW5kYXRpb24vY29tcG9uZW50cy9fZ3JpZC5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvZm91bmRhdGlvbi9jb21wb25lbnRzL19pbmxpbmUtbGlzdHMuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL2ZvdW5kYXRpb24vY29tcG9uZW50cy9fdGFibGVzLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9mb3VuZGF0aW9uL2NvbXBvbmVudHMvX3RhYnMuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL2ZvdW5kYXRpb24vY29tcG9uZW50cy9fZ3JpZC5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvZm91bmRhdGlvbi9jb21wb25lbnRzL190aHVtYnMuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL2ZvdW5kYXRpb24vY29tcG9uZW50cy9fdHlwZS5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvZm91bmRhdGlvbi9jb21wb25lbnRzL192aXNpYmlsaXR5LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9mb3VuZGF0aW9uL2NvbXBvbmVudHMvX2J1dHRvbi1ncm91cHMuc2NzcyIsIm1peGlucy9fZ3JhZGllbnQtYm9yZGVyLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9ibG9ja3MvX3BhZ2luYXRpb24uc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2Jsb2Nrcy9uYXYvX2hvcml6b250YWwuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2Jsb2Nrcy9uYXYvX25hdi5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L19pY29ucy5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L19pY29uLXZhcnMuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9sYXlvdXQvX2dyaWQtZXh0cmFzLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvbGF5b3V0L19iYXNlLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvX2FjY2Vzc2liaWxpdHkuc2NzcyIsImxheW91dC9faGVhZGVyLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvbGF5b3V0L2hlYWRlci9fc2V0dGluZ3Muc2NzcyIsImxheW91dC9oZWFkZXIvX3V0aWxzLW5hdi5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L2xheW91dC9oZWFkZXIvX29mZmNhbnZhcy1uYXYuc2NzcyIsImxheW91dC9oZWFkZXIvX2xvZ28tbGluZS5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L2xheW91dC9oZWFkZXIvX21haW4tbmF2LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvX2xhbmd1YWdlLWN1cnJlbmN5LnNjc3MiLCJfY29tcG9uZW50cy5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvY29tcG9uZW50cy9faG92ZXJmeC5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvY29tcG9uZW50cy9ob3ZlcmZ4L19iYXNlLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9jb21wb25lbnRzL2hvdmVyZngvX2JsdXIuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2NvbXBvbmVudHMvaG92ZXJmeC9fY292ZXIuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2NvbXBvbmVudHMvaG92ZXJmeC9fZmlnY2FwdGlvbi5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvY29tcG9uZW50cy9ob3ZlcmZ4L19sZXZpdGF0ZS5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvY29tcG9uZW50cy9ob3ZlcmZ4L19zaG93dGl0bGUuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2NvbXBvbmVudHMvaG92ZXJmeC9fdGlsdC5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L19hbGVydC1ib3hlcy5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L19hbmltYXRpb24uc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9fYmxvY2staW1hZ2UtZ3JpZC5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L19lcXVhbC1oZWlnaHQtY29sdW1ucy5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L19ibG9ja3MtYmFubmVycy5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L19ib3JkZXJlZC5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L19idXR0b25zLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvX2J4c2xpZGVyLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvX2NhcnRfYnV0dG9uLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvX2NhcnQtYnV0dG9uLWZ1bGwuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9fY2FydC1idXR0b24tc2ltcGxlLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvX2NoZWNrb3V0LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvX2NoZWNrb3V0X2tjby5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvZm91bmRhdGlvbi9jb21wb25lbnRzL19yZXZlYWwuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2NvbXBvbmVudHMvX3JlYWN0LXNlbGVjdC5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvY29tcG9uZW50cy9yZWFjdC1zZWxlY3Qvc2VsZWN0LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9jb21wb25lbnRzL3JlYWN0LXNlbGVjdC9jb250cm9sLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9jb21wb25lbnRzL3JlYWN0LXNlbGVjdC9zcGlubmVyLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9jb21wb25lbnRzL3JlYWN0LXNlbGVjdC9taXhpbnMuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2NvbXBvbmVudHMvcmVhY3Qtc2VsZWN0L21lbnUuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2NvbXBvbmVudHMvcmVhY3Qtc2VsZWN0L211bHRpLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvX2NvbW1lbnRzLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvX2Nvb2tpZS1ub3RpY2Uuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9fZmFuY3lib3guc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9fZm9ybXMuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9fa2xhcm5hLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvX3BhZ2VzLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvcGFnZXMvX2NhcnQuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9wYWdlcy9fZnJvbnRwYWdlLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvcGFnZXMvX3JlY2VpcHQuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9wYWdlcy9fcmVnaXN0ZXItYWNjb3VudC5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L3BhZ2VzL193aXNobGlzdC5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L19wcm9kdWN0LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvX3Byb2R1Y3Qtc2VhcmNoLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvX3JhdGluZy5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L19yZWFkb24taWNvbi1jZW50ZXJlZC1vbi1ob3Zlci5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L19zbGlkZXIuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9fc3Bpbm5lci5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L190YWJsZXMuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9fdGFicy5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L190aGVtZWQtbmF2aWdhdGlvbi5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L190eXBvZ3JhcGh5LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvX3NlYXJjaC1ib3gtLWNvbXBhY3Quc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9fc2VhcmNoLWJveC5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L19jaGVja291dC1jYXJ0LS1jb21wYWN0LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9fY29tbW9uLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9jb21wb25lbnRzL19zdGlja3ktZm9vdGVyLW1lbnUuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2NvbXBvbmVudHMvX3NsaWRlLWluLW1lbnUuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2NvbXBvbmVudHMvX3NlYXJjaC1tb2RhbC5zY3NzIiwiY29tcG9uZW50cy9fc29jaWFsLWJ1dHRvbnMuc2NzcyIsImNvbXBvbmVudHMvX2Jsb2Nrcy5zY3NzIiwiY29tcG9uZW50cy9fc3BsaXRtZW51LnNjc3MiXSwic291cmNlc0NvbnRlbnQiOlsiQGltcG9ydCAncXVpY2tmaXgvX19kZWJ1Zy9tYXN0ZXInO1xuXG4kZm9udC1jb21ibzogXCJOb3RvK1NhbnM6NDAwLDcwMHxCaXR0ZXI6NDAwLDcwMCw0MDBpdGFsaWM7ICdCaXR0ZXInLCBzZXJpZjsgJ05vdG8gU2FucycsIHNhbnMtc2VyaWZcIiAhZGVmYXVsdDsgLy8gTXVzdCBiZSBzZXQgYmVmb3JlIHBpb25lZXIvc3R5bGVzL2ZvbnRzIGlzIGxvYWRlZFxuXG4vLyBQaW9uZWVyIGJhc2VcbkBpbXBvcnQgXCJmb3VuZGF0aW9uL2Z1bmN0aW9uc1wiO1xuQGltcG9ydCBcImJvdXJib24vZnVuY3Rpb25zL21vZHVsYXItc2NhbGVcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvc3R5bGVzL2ZvbnRzXCI7XG5cbi8vIEFmdGVyYnVybmVyIHNldHRpbmdzXG5AaW1wb3J0IFwic3R5bGVzL3NldHRpbmdzXCI7XG5AaW1wb3J0IFwic3R5bGVzL2NvbG9yLXNldHRpbmdzXCI7XG5cbi8vIFBpb25lZXIgc2V0dGluZ3MsIGJhc2lzXG5AaW1wb3J0IFwicXVpY2tmaXgvbGVnYWN5L3NldHRpbmdzL2Jhc2Utc2V0dGluZ3NcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvc2V0dGluZ3MvYmFzZS1jb2xvci1zZXR0aW5nc1wiO1xuLy9KdXN0IGFuIGFkZGl0aW9uXG5AaW1wb3J0IFwic3R5bGVzL2Jhc2UtY29sb3Itc2V0dGluZ3NcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvc3R5bGVzL2NvbG9yLWNvbnRyYXN0XCI7XG5cbkBpbXBvcnQgXCJxdWlja2ZpeC9ub3JtYWxpemVcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9taXhpbnNcIjtcblxuLy8gQm91cmJvblxuQGltcG9ydCBcImJvdXJib24vc2V0dGluZ3MvcHJlZml4ZXJcIjtcbkBpbXBvcnQgXCJib3VyYm9uL2FkZG9ucy9wcmVmaXhlclwiO1xuQGltcG9ydCBcImJvdXJib24vY3NzMy9hbmltYXRpb25cIjtcbkBpbXBvcnQgXCJib3VyYm9uL2NzczMvYmFja2ZhY2UtdmlzaWJpbGl0eVwiO1xuQGltcG9ydCBcImJvdXJib24vY3NzMy9ib3JkZXItcmFkaXVzXCI7XG5AaW1wb3J0IFwiYm91cmJvbi9jc3MzL2ZsZXgtYm94XCI7XG5AaW1wb3J0IFwiYm91cmJvbi9jc3MzL2tleWZyYW1lc1wiO1xuQGltcG9ydCBcImJvdXJib24vY3NzMy9iYWNrZ3JvdW5kLWltYWdlXCI7XG5AaW1wb3J0IFwiYm91cmJvbi9jc3MzL2xpbmVhci1ncmFkaWVudFwiO1xuQGltcG9ydCBcImJvdXJib24vY3NzMy9wZXJzcGVjdGl2ZVwiO1xuQGltcG9ydCBcImJvdXJib24vY3NzMy90cmFuc2Zvcm1cIjtcbkBpbXBvcnQgXCJib3VyYm9uL2NzczMvdHJhbnNpdGlvblwiO1xuQGltcG9ydCBcImJvdXJib24vY3NzMy9maWx0ZXJcIjtcbkBpbXBvcnQgXCJib3VyYm9uL2NzczMvcGxhY2Vob2xkZXJcIjtcblxuLy8gRm91bmRhdGlvblxuQGltcG9ydCBcImZvdW5kYXRpb24vY29tcG9uZW50cy9hbGVydC1ib3hlc1wiO1xuQGltcG9ydCBcImZvdW5kYXRpb24vY29tcG9uZW50cy9ibG9jay1ncmlkXCI7XG5AaW1wb3J0IFwiZm91bmRhdGlvbi9jb21wb25lbnRzL2JyZWFkY3J1bWJzXCI7XG5AaW1wb3J0IFwiZm91bmRhdGlvbi9jb21wb25lbnRzL2Zvcm1zXCI7XG5AaW1wb3J0IFwiZm91bmRhdGlvbi9jb21wb25lbnRzL2dyaWRcIjtcbkBpbXBvcnQgXCJmb3VuZGF0aW9uL2NvbXBvbmVudHMvaW5saW5lLWxpc3RzXCI7XG5AaW1wb3J0IFwiZm91bmRhdGlvbi9jb21wb25lbnRzL3RhYmxlc1wiO1xuQGltcG9ydCBcImZvdW5kYXRpb24vY29tcG9uZW50cy90YWJzXCI7XG5AaW1wb3J0IFwiZm91bmRhdGlvbi9jb21wb25lbnRzL3RodW1ic1wiO1xuQGltcG9ydCBcImZvdW5kYXRpb24vY29tcG9uZW50cy90eXBlXCI7XG5AaW1wb3J0IFwiZm91bmRhdGlvbi9jb21wb25lbnRzL3Zpc2liaWxpdHlcIjtcbkBpbXBvcnQgXCJmb3VuZGF0aW9uL2NvbXBvbmVudHMvYnV0dG9uLWdyb3Vwc1wiO1xuXG5AaW1wb3J0IFwibWl4aW5zL2dyYWRpZW50LWJvcmRlclwiO1xuXG5AaW1wb3J0IFwicXVpY2tmaXgvYmxvY2tzL3BhZ2luYXRpb25cIjtcblxuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS9pY29uc1wiO1xuXG4vLyBQaW9uZWVyIHN0eWxpbmdcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvbGF5b3V0L2dyaWQtZXh0cmFzXCI7XG5AaW1wb3J0IFwicXVpY2tmaXgvbGVnYWN5L2xheW91dC9iYXNlXCI7XG5AaW1wb3J0IFwicXVpY2tmaXgvbGVnYWN5L2FjY2Vzc2liaWxpdHlcIjtcbkBpbXBvcnQgXCJsYXlvdXQvaGVhZGVyXCI7XG5AaW1wb3J0IFwicXVpY2tmaXgvbGVnYWN5L2xhbmd1YWdlLWN1cnJlbmN5XCI7XG5cblxuLy8gQWZ0ZXJidXJuZXIgc3R5bGluZ1xuQGltcG9ydCBcImNvbXBvbmVudHNcIjtcblxuLy9AVE9ETyBzcGxpdCBjc3MgYmVsb3cgaW50byBzZXBhcmF0ZSBmaWxlc1xuLy9fbG9nby5zY3NzXG4ubG9nby13cmFwcGVyIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi8vX21haW4tbmF2LnNjc3Ncbi5qcy1uYXYge1xuICAgIC5jb250ZW50LXdyYXBwZXIgPiAuaGVhZGVyLXJvdyB7XG4gICAgICAgIG9wYWNpdHk6IDEhaW1wb3J0YW50O1xuICAgIH1cbiAgICAuaGVhZGVyLXJvdyA+ICo6bm90KCNuYXYpIHtcbiAgICAgICAgb3BhY2l0eTogLjQhaW1wb3J0YW50O1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKG9wYWNpdHksIDUwMG1zKTtcbiAgICB9XG59XG5cbi8vbWFpbi1tZW51LnNjc3Ncbi8vdmVyeSBiYWQgaWRlYSwgZm9yY2VkIHRvIG92ZXJyaWRlXG4ubWFpbi1uYXYgdWwge1xuICAgIHdoaXRlLXNwYWNlOiBpbml0aWFsOyBcbn1cblxuLm1haW4tbmF2X19saXN0IHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIFxuICAgIEBpZiAkbmF2aWdhdGlvbi1iZyAhPSAkaGVhZGVyLWJnIHtcbiAgICAgICAgQGluY2x1ZGUgZ3JhZGllbnQtYm9yZGVyKCRiYWNrZ3JvdW5kLWNvbG9yOiAkbmF2aWdhdGlvbi1iZywgJGNvbG9yOiAkbmF2aWdhdGlvbi1iZywgJHBvc2l0aW9uOiBiZWZvcmUpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgICAubWFpbi1uYXZfX2l0ZW0uc2VsZWN0ZWQgPiBhLCAubWFpbi1uYXZfX2l0ZW0uY3VycmVudCA+IGEge1xuICAgIC8vICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbmF2aWdhdGlvbi1iZztcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRuYXZpZ2F0aW9uLWJnO1xuICAgICAgICAgICAgLy9iYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCByZ2JhKCRtZW51LWl0ZW0tYWN0aXZlLWJnLCAwKSwgcmdiYSgkbWVudS1pdGVtLWFjdGl2ZS1iZywgMC4yNSkpO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgIH1cbiAgICBcbiAgICBAaW5jbHVkZSBncmFkaWVudC1ib3JkZXIoJGJhY2tncm91bmQtY29sb3I6ICRuYXZpZ2F0aW9uLWJnLCAkY29sb3I6ICRuYXZpZ2F0aW9uLWJnKTtcbiAgICAmOmhvdmVyIHtcbiAgICAgICAgQGluY2x1ZGUgZ3JhZGllbnQtYm9yZGVyKCRjb2xvcjogJHByaW1hcnktY29sb3IsICRiYWNrZ3JvdW5kLWNvbG9yOiAkbmF2aWdhdGlvbi1iZyk7XG4gICAgfVxufVxuQG1lZGlhICN7JGxhcmdlLXVwfSB7XG4gICAgLm1haW4tbmF2X19saXN0IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cbn1cbi5tYWluLW5hdl9faXRlbS5sZXZlbC0wIHtcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwcHghaW1wb3J0YW50O1xuICAgIFxuICAgID4gYSB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgfVxufVxuXG4ubG9nby13cmFwcGVyIHtcbiAgICBtYXJnaW4tYm90dG9tOiAkY29sdW1uLWd1dHRlcjtcbn1cblxuQG1lZGlhICN7JGxhcmdlLXVwfSB7XG4gICAgLmxvZ28td3JhcHBlciB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICAgIFxuICAgIC5yb3ctLXNwYWNlLWJldHdlZW4ge1xuICAgICAgICBAaW5jbHVkZSBkaXNwbGF5KGZsZXgpO1xuICAgICAgICBAaW5jbHVkZSBhbGlnbi1pdGVtcyhjZW50ZXIpO1xuICAgICAgICBAaW5jbHVkZSBqdXN0aWZ5LWNvbnRlbnQoc3BhY2UtYmV0d2Vlbik7XG4gICAgfVxufVxuXG4ubWFpbi1uYXZfX3N1Ym1lbnUubGV2ZWwtMSB7XG4gICAgbWFyZ2luLWJvdHRvbTogLTFweDtcbn1cblxuLmNvbnRlbnQtYmcgLm1haW4tbmF2IGEge1xuICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkY29udGVudC1iZywgJGNvbnRlbnQtYmcpO1xuICAgIFxuICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJHByaW1hcnktY29sb3IsICRjb250ZW50LWJnKTtcbiAgICB9XG59XG5cbi5tYWluLW5hdl9faXRlbS5sZXZlbC0xIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4vL3NlYXJjaC1ib3guc2Nzc1xuI3NlYXJjaC1ib3hfX2lucHV0IHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJveC1zaGFkb3c6IGluc2V0ICNmOWY5ZjkgMCAwIDAgMTlweCwgaW5zZXQgcmdiYSgkcHJpbWFyeS1jb2xvciwgMCkgMCAwIDAgMjBweDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgXG4gICAgJjpmb2N1cyB7XG4gICAgICAgIGJveC1zaGFkb3c6IGluc2V0ICNmZmYgMCAwIDAgMCwgaW5zZXQgJHByaW1hcnktY29sb3IgMCAwIDAgMXB4O1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgfVxufVxuXG4jZXh0cmEtbmF2LWxhcmdlIHtcbiAgICBpbnB1dC5zZWFyY2gtYm94X19pbnB1dCB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoJHNlYXJjaC1jb2xvciwgLjMpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaGVhZGVyLWJnO1xuICAgICAgICB0ZXh0LWluZGVudDogLjRyZW07XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKCRzZWFyY2gtY29sb3IsIC41KTtcbiAgICAgICAgfVxuICAgICAgICAmOmZvY3VzLCAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoJHNlYXJjaC1jb2xvciwgLjcpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGlucHV0LnNlYXJjaC1ib3hfX2lucHV0IH4gLnNlYXJjaC1ib3hfX3N1Ym1pdCB+IGxhYmVsIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHNlYXJjaC1iZztcbiAgICB9XG4gICAgaW5wdXQuc2VhcmNoLWJveF9faW5wdXQgfiAuc2VhcmNoLWJveF9fc3VibWl0IH4gbGFiZWw6YmVmb3JlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG59XG5cblxuLy8gLmxhbmd1YWdlLWN1cnJlbmN5LnNjc3NcbiN1c2VyLW5hdiB7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG4jdG9vbHMtbmF2LCAjdXNlci1uYXYge1xuICAgIFxuICAgIC5jdXJyZW5jeS1uYW1lIHtcbiAgICAgICAgZGlzcGxheTogbm9uZSFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIC5zZXR0aW5nX19zZWxlY3Qge1xuICAgICAgICB0b3A6IDBweDtcbiAgICAgICAgcmlnaHQ6IDBweDtcbiAgICB9XG4gICAgLmljb24ge1xuICAgICAgICBjb2xvcjogJHNvY2lhbC1pY29uLWJnO1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAuMnMgZWFzZSk7XG4gICAgICAgIFxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkaG92ZXItY29sb3IsICR0b3AtYmcpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyBwcm9kdWN0IHZpZXcgb3ZlcnJpZGVcbi5yZWFkb24taWNvbl9fY29udGFpbmVyIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cbiVhZnRlcmJ1cm5lci1ib3gtd3JhcCB7XG4gICAgYm9yZGVyLXdpZHRoOiAycHghaW1wb3J0YW50O1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIDE1MG1zIGVhc2UpO1xuICAgIGJvcmRlci1jb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGNvbnRlbnQtYmcsICRjb250ZW50LWJnLCAxLjU4KSFpbXBvcnRhbnQ7XG4gICAgXG4gICAgQGlmICRnbG9iYWwtcmFkaXVzID4gMCB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICogMjtcbiAgICB9XG4gICAgXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UocmdiYSgkcHJpbWFyeS1jb2xvciwgMC4zKSwgJGNvbnRlbnQtYmcpICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIFxuICAgID4gOm5vdCguZXF1YWwtaGVpZ2h0LWNvbHVtbl9fcmVhZG9uKSB7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIDE1MG1zIGVhc2UpO1xuICAgIH1cbiAgICAmOmhvdmVyID4gOm5vdCguZXF1YWwtaGVpZ2h0LWNvbHVtbl9fcmVhZG9uKTpub3QoLm9mZmVycykge1xuICAgICAgICBAaW5jbHVkZSBmaWx0ZXIoc2F0dXJhdGUoMCUpKTtcbiAgICAgICAgb3BhY2l0eTogMC42O1xuICAgIH1cbn1cbi5wcm9kdWN0bGlzdF9fcHJvZHVjdC13cmFwIHtcbiAgICBcbiAgICAkX2Rpc2NvdW50LWNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkcHJpbWFyeS1jb2xvciwgJGNvbnRlbnQtYmcpO1xuICAgIFxuICAgIEBleHRlbmQgJWFmdGVyYnVybmVyLWJveC13cmFwO1xuICAgIFxuICAgICY6aG92ZXIgeyAgICAgICAgXG4gICAgICAgIC5kaXNjb3VudCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZShhZGp1c3QtY29sb3IoJF9kaXNjb3VudC1jb2xvciwgJGxpZ2h0bmVzczogMTMlKSwgJGNvbnRlbnQtYmcsIDMpO1xuICAgICAgICAgICAgY29sb3I6ICRjb250ZW50LWJnO1xuICAgICAgICB9XG4gICAgfVxuICAgIFxuICAgIC5jdXJyZW5jeSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMC4zcmVtO1xuICAgIH1cbiAgICBcbiAgICAub24tc2FsZSAmIC5wcmljZS0tb3JpZ2luYWwsIC52YXQtaW5mbywgLnByaWNlX19zYWxlcHJpY2UtdGV4dCwgLnByaWNlLS1vcmlnaW5hbCAuY3VycmVuY3kge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgICAucHJpY2UtLW9yaWdpbmFsIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgIG9wYWNpdHk6IDAuNjtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICBsaW5lLWhlaWdodDogMi41cmVtO1xuICAgIH1cbiAgICAuZGlzY291bnQge1xuICAgICAgICBcbiAgICAgICAgQGlmICRnbG9iYWwtcmFkaXVzID4gMCB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBjb2xvcjogJF9kaXNjb3VudC1jb2xvcjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IC02cHg7XG4gICAgICAgIHJpZ2h0OiAtNnB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAkY29udGVudC1iZztcbiAgICAgICAgYm9yZGVyOiAycHggJF9kaXNjb3VudC1jb2xvciBzb2xpZDtcbiAgICAgICAgcGFkZGluZzogMCAycHg7XG4gICAgICAgIGJveC1zaGFkb3c6IHJnYmEod2hpdGUsIDApIDAgMCAwIDJweDtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgMTUwbXMgZWFzZSk7XG4gICAgfVxuICAgIFxuICAgIC5idXR0b24tZ3JvdXAge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgfVxufVxuLnByb2R1Y3RsaXN0X19wcm9kdWN0X19idXR0b24td3JhcCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4vL2JyZWFkY3J1bWJzLnNjc3Ncbi5wcm9kdWN0X19icmVhZGNydW1icyAuYnJlYWRjcnVtYnMge1xuICAgIHBhZGRpbmc6IDEwcHg7XG59XG5cbi8vc2VhcmNoLWJveC5zY3NzXG4uc2VhcmNoLWJveF9fY29udGFpbmVyIHtcbiAgICBoZWlnaHQ6IGF1dG87XG59XG4uc2VhcmNoLWJveF9faW5wdXQge1xuICAgIHdpZHRoOiAxMDAlIWltcG9ydGFudDtcbiAgICBcbiAgICBcbiAgICAmLmlzLXJlc3VsdHMge1xuICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwcHghaW1wb3J0YW50O1xuICAgICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMHB4IWltcG9ydGFudDtcbiAgICB9XG59XG4uanMtcHJvZHVjdC1zZWFyY2gtcmVzdWx0cyB7XG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMHB4O1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbn1cbkBtZWRpYSAjeyRtZWRpdW0tb25seX0ge1xuICAgIC5qcy1wcm9kdWN0LXNlYXJjaC1yZXN1bHRzIHtcbiAgICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDBweDtcbiAgICB9XG59XG5cbi8vY2hlY2tvdXQtY2FydC0tY29tcGFjdC5zY3NzXG4uaGVhZGVyLXJvdyAuY2FydC1hbmQtY2hlY2tvdXQgLmNhcnQtYnV0dG9uIHtcbiAgICBmbG9hdDogcmlnaHQ7XG59XG5cbiNtYWluIHtcbiAgICBwYWRkaW5nOiAyMHB4IDA7XG59XG4jZm9vdGVyIHtcbiAgICBwYWRkaW5nOiAyMHB4IDAgMCAwO1xufVxuXG4jZW5kIHtcbiAgICBwYWRkaW5nOiAxMHB4IDAgMjBweCAwO1xufVxuXG4jZm9vdGVyIC5ibG9ja19fYm94LS1uZXdzbGV0dGVyIC5ibG9ja19fYm94X19oZWFkbGluZSB7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygyNSk7XG59XG5cbi5mb290ZXItYmcge1xuICAgICRlbGVtZW50LWJnOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkZm9vdGVyLWJnLCAkZm9vdGVyLWJnLCAxLjEpO1xuICAgICRlbGVtZW50LWNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkZWxlbWVudC1iZywgJGVsZW1lbnQtYmcpO1xuICAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLCBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZWxlbWVudC1iZztcbiAgICAgICAgY29sb3I6ICRlbGVtZW50LWNvbG9yO1xuICAgICAgICBcbiAgICAgICAgQGluY2x1ZGUgcGxhY2Vob2xkZXJ7XG4gICAgICAgICAgICBjb2xvcjogcmdiYSgkZWxlbWVudC1jb2xvciwgMC43NSk7XG4gICAgICAgIH07XG4gICAgfVxufVxuLmZvb3RlcjItYmcge1xuICAgICRlbGVtZW50LWJnOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkZm9vdGVyMi1iZywgJGZvb3RlcjItYmcsIDEuMSk7XG4gICAgJGVsZW1lbnQtY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRlbGVtZW50LWJnLCAkZWxlbWVudC1iZyk7XG4gICAgaW5wdXRbdHlwZT1cInRleHRcIl0sIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRlbGVtZW50LWJnO1xuICAgICAgICBjb2xvcjogJGVsZW1lbnQtY29sb3I7XG4gICAgICAgIFxuICAgICAgICBAaW5jbHVkZSBwbGFjZWhvbGRlcntcbiAgICAgICAgICAgIGNvbG9yOiByZ2JhKCRlbGVtZW50LWNvbG9yLCAwLjc1KTtcbiAgICAgICAgfTtcbiAgICB9XG59XG5cbkBpZiAkZ2xvYmFsLXJhZGl1cyA+IDAge1xuICAgICNlcG9zdF9uZXdzbGV0dGVyIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDBweDtcbiAgICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDBweDtcbiAgICB9XG59XG5cbi5uYXYtb3Blbi1idG5fX2NvbnRhaW5lciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG4jbmF2LW9wZW4tYnRuIHtcbiAgICBAZXh0ZW5kICVjYXJ0LWJ1dHRvbjtcbiAgICBcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbiNmb290ZXIge1xuICAgIC5teS1hY2NvdW50X19lbWFpbC1maWVsZCwgLm15LWFjY291bnRfX3Bhc3N3b3JkLWZpZWxkLCAuYmxvY2tfX2JveC0tdGlwLWEtZnJpZW5kIHtcbiAgICAgICAgbGFiZWwge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTsgICAgICAgICAgICBcbiAgICAgICAgfVxuICAgIH1cbn1cblxudWwucGFydG5lci1sb2dvcyB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBtYXJnaW46IDA7XG59XG5cbi5wYXJ0bmVyLWxvZ28ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBpbWcge1xuICAgICAgICBtYXgtd2lkdGg6IDU1cHg7XG4gICAgICAgIG1hcmdpbjogMCAuNXJlbTtcbiAgICAgICAgb3BhY2l0eTogLjc1O1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKG9wYWNpdHkgMC4yNXMgZWFzZSk7XG4gICAgfVxuXG4gICAgJjpob3ZlciBpbWcge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICB9XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgfVxufVxuXG4kYmVzdHNlbGxlci1pbWFnZS1zaXplOiAkdG91Y2gtZnJpZW5kbHktc2l6ZSAhZGVmYXVsdDtcbiRkaXNjb3VudC1wcmljZS1tYXJnaW46IC41cmVtICFkZWZhdWx0O1xuXG4jYmVzdHNlbGxlcl9fbGlzdCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG5cbiAgICBhOmJlZm9yZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG4uYmVzdHNlbGxlciB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogLjI1cmVtIDA7XG5cbiAgICAucm93IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cbn1cblxuLmJlc3RzZWxsZXJfX3RpdGxlIHtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDEzKTtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAuMjVyZW0gMCAuMjVyZW0gMDtcbn1cblxuLmJlc3RzZWxsZXJfX2ltYWdlIHtcbiAgICB3aWR0aDogMjUlO1xuXG4gICAgaW1nIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgcGFkZGluZzogMnB4O1xuICAgICAgICBib3JkZXItd2lkdGg6IDFweDtcbiAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcblxuICAgICAgICBAaWYgJGdsb2JhbC1yYWRpdXMgPiAwIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uYmVzdHNlbGxlcl9fcHJpY2Uge1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMjApO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG59XG5cbi5iZXN0c2VsbGVyX19jdXJyZW5jeSB7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4uYmVzdHNlbGxlci0tb24tc2FsZSAucHJpY2Uge1xuICAgIC5jb250ZW50LWJnICYge1xuICAgICAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGNhbGwtdG8tYWN0aW9uLWNvbG9yLCAkY29udGVudC1iZyk7XG4gICAgfVxuXG4gICAgLmZvb3Rlci1iZzIgJiB7XG4gICAgICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkY2FsbC10by1hY3Rpb24tY29sb3IsICRmb290ZXIyLWJnKTtcbiAgICB9XG59XG5cbi5iZXN0c2VsbGVyX19wcmljZS0tb3JpZ2luYWwge1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuICAgIG1hcmdpbi1sZWZ0OiAkZGlzY291bnQtcHJpY2UtbWFyZ2luO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xufVxuXG4uc3BsaXRtZW51IHVsLnRvZ2dsZWQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5jYXRlZ29yeWxpc3RfX2NhdGVnb3J5LXdyYXAge1xuICAgIEBleHRlbmQgJWFmdGVyYnVybmVyLWJveC13cmFwO1xufSIsIi8vIFRoaXMgaXMgaWYgeW91IHdhbnQgdG8gcGxheSBtYWVzdHJvXG4vLyRwcmltYXJ5LWNvbG9yOiAjODA4MDgwO1xuLy9AaW1wb3J0ICdiYXNlJztcblxuLy8kY29udGVudC1iZzogIzdBN0E3QTtcbi8vJGNhbGwtdG8tYWN0aW9uLWNvbG9yOiAjYmY1NzJlOyIsIi8vIEZvdW5kYXRpb24gYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vIFRoaXMgaXMgdGhlIGRlZmF1bHQgaHRtbCBhbmQgYm9keSBmb250LXNpemUgZm9yIHRoZSBiYXNlIHJlbSB2YWx1ZS5cbiRyZW0tYmFzZTogMTZweCAhZGVmYXVsdDtcblxuLy8gSU1QT1JUIE9OQ0Vcbi8vIFdlIHVzZSB0aGlzIHRvIHByZXZlbnQgc3R5bGVzIGZyb20gYmVpbmcgbG9hZGVkIG11bHRpcGxlIHRpbWVzIGZvciBjb21wb25lbnRzIHRoYXQgcmVseSBvbiBvdGhlciBjb21wb25lbnRzLlxuJG1vZHVsZXM6ICgpICFkZWZhdWx0O1xuQG1peGluIGV4cG9ydHMoJG5hbWUpIHtcbiAgLy8gSW1wb3J0IGZyb20gZ2xvYmFsIHNjb3BlXG4gICRtb2R1bGVzOiAkbW9kdWxlcyAhZ2xvYmFsO1xuICAvLyBDaGVjayBpZiBhIG1vZHVsZSBpcyBhbHJlYWR5IG9uIHRoZSBsaXN0XG4gICRtb2R1bGVfaW5kZXg6IGluZGV4KCRtb2R1bGVzLCAkbmFtZSk7XG4gIEBpZiAoKCRtb2R1bGVfaW5kZXggPT0gbnVsbCkgb3IgKCRtb2R1bGVfaW5kZXggPT0gZmFsc2UpKSB7XG4gICAgJG1vZHVsZXM6IGFwcGVuZCgkbW9kdWxlcywgJG5hbWUpICFnbG9iYWw7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy9cbi8vIEBmdW5jdGlvbnNcbi8vXG5cblxuLy8gUkFOR0VTXG4vLyBXZSB1c2UgdGhlc2UgZnVuY3Rpb25zIHRvIGRlZmluZSByYW5nZXMgZm9yIHZhcmlvdXMgdGhpbmdzLCBsaWtlIG1lZGlhIHF1ZXJpZXMuXG5AZnVuY3Rpb24gbG93ZXItYm91bmQoJHJhbmdlKXtcbiAgQGlmIGxlbmd0aCgkcmFuZ2UpIDw9IDAge1xuICAgIEByZXR1cm4gMDtcbiAgfVxuICBAcmV0dXJuIG50aCgkcmFuZ2UsMSk7XG59XG5cbkBmdW5jdGlvbiB1cHBlci1ib3VuZCgkcmFuZ2UpIHtcbiAgQGlmIGxlbmd0aCgkcmFuZ2UpIDwgMiB7XG4gICAgQHJldHVybiA5OTk5OTk5OTk5OTk7XG4gIH1cbiAgQHJldHVybiBudGgoJHJhbmdlLCAyKTtcbn1cblxuLy8gU1RSSVAgVU5JVFxuLy8gSXQgc3RyaXBzIHRoZSB1bml0IG9mIG1lYXN1cmUgYW5kIHJldHVybnMgaXRcbkBmdW5jdGlvbiBzdHJpcC11bml0KCRudW0pIHtcbiAgQHJldHVybiAkbnVtIC8gKCRudW0gKiAwICsgMSk7XG59XG5cbi8vIFRFWFQgSU5QVVQgVFlQRVNcblxuQGZ1bmN0aW9uIHRleHQtaW5wdXRzKCAkdHlwZXM6IGFsbCwgJHNlbGVjdG9yOiBpbnB1dCApIHtcblxuICAgICRyZXR1cm46ICgpO1xuXG4gICAgJGFsbC10ZXh0LWlucHV0LXR5cGVzOlxuICAgICAgdGV4dFxuICAgICAgcGFzc3dvcmRcbiAgICAgIGRhdGVcbiAgICAgIGRhdGV0aW1lXG4gICAgICBkYXRldGltZS1sb2NhbFxuICAgICAgbW9udGhcbiAgICAgIHdlZWtcbiAgICAgIGVtYWlsXG4gICAgICBudW1iZXJcbiAgICAgIHNlYXJjaFxuICAgICAgdGVsXG4gICAgICB0aW1lXG4gICAgICB1cmxcbiAgICAgIGNvbG9yXG4gICAgICB0ZXh0YXJlYTtcblxuICAgIEBpZiAkdHlwZXMgPT0gYWxsIHsgJHR5cGVzOiAkYWxsLXRleHQtaW5wdXQtdHlwZXM7IH1cblxuICAgIEBlYWNoICR0eXBlIGluICR0eXBlcyB7XG4gICAgICAgIEBpZiAkdHlwZSA9PSB0ZXh0YXJlYSB7XG4gICAgICAgICAgICBAaWYgJHNlbGVjdG9yID09IGlucHV0IHtcbiAgICAgICAgICAgICAgJHJldHVybjogYXBwZW5kKCRyZXR1cm4sIHVucXVvdGUoJyN7JHR5cGV9JyksIGNvbW1hKVxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICRyZXR1cm46IGFwcGVuZCgkcmV0dXJuLCB1bnF1b3RlKCcjeyR0eXBlfSN7JHNlbGVjdG9yfScpLCBjb21tYSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAkcmV0dXJuOiBhcHBlbmQoJHJldHVybiwgdW5xdW90ZSgnI3skc2VsZWN0b3J9W3R5cGU9XCIjeyR0eXBlfVwiXScpLCBjb21tYSlcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEByZXR1cm4gJHJldHVybjtcblxufVxuXG4vLyBDT05WRVJUIFRPIFJFTVxuQGZ1bmN0aW9uIGNvbnZlcnQtdG8tcmVtKCR2YWx1ZSwgJGJhc2UtdmFsdWU6ICRyZW0tYmFzZSkgIHtcbiAgJHZhbHVlOiBzdHJpcC11bml0KCR2YWx1ZSkgLyBzdHJpcC11bml0KCRiYXNlLXZhbHVlKSAqIDFyZW07XG4gIEBpZiAoJHZhbHVlID09IDByZW0pIHsgJHZhbHVlOiAwOyB9IC8vIFR1cm4gMHJlbSBpbnRvIDBcbiAgQHJldHVybiAkdmFsdWU7XG59XG5cbkBmdW5jdGlvbiBkYXRhKCRhdHRyKSB7XG4gIEBpZiAkbmFtZXNwYWNlIHtcbiAgICBAcmV0dXJuICdbZGF0YS0nICsgJG5hbWVzcGFjZSArICctJyArICRhdHRyICsgJ10nO1xuICB9XG5cbiAgQHJldHVybiAnW2RhdGEtJyArICRhdHRyICsgJ10nO1xufVxuXG4vLyBSRU0gQ0FMQ1xuXG4vLyBOZXcgU3ludGF4LCBhbGxvd3MgdG8gb3B0aW9uYWxseSBjYWxjdWxhdGUgb24gYSBkaWZmZXJlbnQgYmFzZSB2YWx1ZSB0byBjb3VudGVyIGNvbXBvdW5kaW5nIGVmZmVjdCBvZiByZW0ncy5cbi8vIENhbGwgd2l0aCAxLCAyLCAzIG9yIDQgcGFyYW1ldGVycywgJ3B4JyBpcyBub3QgcmVxdWlyZWQgYnV0IHN1cHBvcnRlZDpcbi8vXG4vLyAgIHJlbS1jYWxjKDEwIDIwIDMwcHggNDApO1xuLy9cbi8vIFNwYWNlIGRlbGltaXRlZCwgaWYgeW91IHdhbnQgdG8gZGVsaW1pdCB1c2luZyBjb21tYSdzLCB3cmFwIGl0IGluIGFub3RoZXIgcGFpciBvZiBicmFja2V0c1xuLy9cbi8vICAgcmVtLWNhbGMoKDEwLCAyMCwgMzAsIDQwcHgpKTtcbi8vXG4vLyBPcHRpb25hbGx5IGNhbGwgd2l0aCBhIGRpZmZlcmVudCBiYXNlIChlZzogOHB4KSB0byBjYWxjdWxhdGUgcmVtLlxuLy9cbi8vICAgcmVtLWNhbGMoMTZweCAzMnB4IDQ4cHgsIDhweCk7XG4vL1xuLy8gSWYgeW91IHJlcXVpcmUgdG8gY29tbWEgc2VwYXJhdGUgeW91ciBsaXN0XG4vL1xuLy8gICByZW0tY2FsYygoMTZweCwgMzJweCwgNDgpLCA4cHgpO1xuXG5AZnVuY3Rpb24gcmVtLWNhbGMoJHZhbHVlcywgJGJhc2UtdmFsdWU6ICRyZW0tYmFzZSkge1xuICAkbWF4OiBsZW5ndGgoJHZhbHVlcyk7XG5cbiAgQGlmICRtYXggPT0gMSB7IEByZXR1cm4gY29udmVydC10by1yZW0obnRoKCR2YWx1ZXMsIDEpLCAkYmFzZS12YWx1ZSk7IH1cblxuICAkcmVtVmFsdWVzOiAoKTtcbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbWF4IHtcbiAgICAkcmVtVmFsdWVzOiBhcHBlbmQoJHJlbVZhbHVlcywgY29udmVydC10by1yZW0obnRoKCR2YWx1ZXMsICRpKSwgJGJhc2UtdmFsdWUpKTtcbiAgfVxuICBAcmV0dXJuICRyZW1WYWx1ZXM7XG59XG5cbi8vIE9MRCBFTSBDQUxDXG4vLyBEZXByZWNhdGVkOiBXZSdsbCBkcm9wIHN1cHBvcnQgZm9yIHRoaXMgaW4gNS4xLjAsIHVzZSByZW0tY2FsYygpXG5AZnVuY3Rpb24gZW1DYWxjKCR2YWx1ZXMpe1xuICBAcmV0dXJuIHJlbS1jYWxjKCR2YWx1ZXMpO1xufVxuXG4vLyBPTEQgRU0gQ0FMQ1xuLy8gRGVwcmVjYXRlZDogV2UnbGwgZHJvcCBzdXBwb3J0IGZvciB0aGlzIGluIDUuMS4wLCB1c2UgcmVtLWNhbGMoKVxuQGZ1bmN0aW9uIGVtLWNhbGMoJHZhbHVlcyl7XG4gIEByZXR1cm4gcmVtLWNhbGMoJHZhbHVlcyk7XG59XG4iLCIvLyBTY2FsaW5nIFZhcmlhYmxlc1xuJGdvbGRlbjogICAgICAgICAgIDEuNjE4O1xuJG1pbm9yLXNlY29uZDogICAgIDEuMDY3O1xuJG1ham9yLXNlY29uZDogICAgIDEuMTI1O1xuJG1pbm9yLXRoaXJkOiAgICAgIDEuMjtcbiRtYWpvci10aGlyZDogICAgICAxLjI1O1xuJHBlcmZlY3QtZm91cnRoOiAgIDEuMzMzO1xuJGF1Z21lbnRlZC1mb3VydGg6IDEuNDE0O1xuJHBlcmZlY3QtZmlmdGg6ICAgIDEuNTtcbiRtaW5vci1zaXh0aDogICAgICAxLjY7XG4kbWFqb3Itc2l4dGg6ICAgICAgMS42Njc7XG4kbWlub3Itc2V2ZW50aDogICAgMS43Nzg7XG4kbWFqb3Itc2V2ZW50aDogICAgMS44NzU7XG4kb2N0YXZlOiAgICAgICAgICAgMjtcbiRtYWpvci10ZW50aDogICAgICAyLjU7XG4kbWFqb3ItZWxldmVudGg6ICAgMi42Njc7XG4kbWFqb3ItdHdlbGZ0aDogICAgMztcbiRkb3VibGUtb2N0YXZlOiAgICA0O1xuXG5AZnVuY3Rpb24gbW9kdWxhci1zY2FsZSgkdmFsdWUsICRpbmNyZW1lbnQsICRyYXRpbykge1xuICAkdjE6IG50aCgkdmFsdWUsIDEpO1xuICAkdjI6IG50aCgkdmFsdWUsIGxlbmd0aCgkdmFsdWUpKTtcbiAgJHZhbHVlOiAkdjE7XG5cbiAgLy8gc2NhbGUgJHYyIHRvIGp1c3QgYWJvdmUgJHYxXG4gIEB3aGlsZSAkdjIgPiAkdjEge1xuICAgICR2MjogKCR2MiAvICRyYXRpbyk7IC8vIHdpbGwgYmUgb2ZmLWJ5LTFcbiAgfVxuICBAd2hpbGUgJHYyIDwgJHYxIHtcbiAgICAkdjI6ICgkdjIgKiAkcmF0aW8pOyAvLyB3aWxsIGZpeCBvZmYtYnktMVxuICB9XG5cbiAgLy8gY2hlY2sgQUZURVIgc2NhbGluZyAkdjIgdG8gcHJldmVudCBkb3VibGUtY291bnRpbmcgY29ybmVyLWNhc2VcbiAgJGRvdWJsZS1zdHJhbmRlZDogJHYyID4gJHYxO1xuXG4gIEBpZiAkaW5jcmVtZW50ID4gMCB7XG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkaW5jcmVtZW50IHtcbiAgICAgIEBpZiAkZG91YmxlLXN0cmFuZGVkIGFuZCAoJHYxICogJHJhdGlvKSA+ICR2MiB7XG4gICAgICAgICR2YWx1ZTogJHYyO1xuICAgICAgICAkdjI6ICgkdjIgKiAkcmF0aW8pO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgICR2MTogKCR2MSAqICRyYXRpbyk7XG4gICAgICAgICR2YWx1ZTogJHYxO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpZiAkaW5jcmVtZW50IDwgMCB7XG4gICAgLy8gYWRqdXN0ICR2MiB0byBqdXN0IGJlbG93ICR2MVxuICAgIEBpZiAkZG91YmxlLXN0cmFuZGVkIHtcbiAgICAgICR2MjogKCR2MiAvICRyYXRpbyk7XG4gICAgfVxuXG4gICAgQGZvciAkaSBmcm9tICRpbmNyZW1lbnQgdGhyb3VnaCAtMSB7XG4gICAgICBAaWYgJGRvdWJsZS1zdHJhbmRlZCBhbmQgKCR2MSAvICRyYXRpbykgPCAkdjIge1xuICAgICAgICAkdmFsdWU6ICR2MjtcbiAgICAgICAgJHYyOiAoJHYyIC8gJHJhdGlvKTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICAkdjE6ICgkdjEgLyAkcmF0aW8pO1xuICAgICAgICAkdmFsdWU6ICR2MTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZTtcbn1cbiIsIkBpbXBvcnQgXCJmdW5jdGlvbnMvY29sb3JcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvbWF0aFwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9yZXBsYWNlLW50aFwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9zdHJpbmdzXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL3VuaXRzXCI7IiwiLyoqXG4gKiBLdWRvcyB0byBodHRwOi8vbWFkZWJ5bWlrZS5jb20uYXUvd3JpdGluZy9hY2Nlc3NpYmxlLWNvbnRyYXN0LXdpdGgtbGVzcy1hbmQtc2Fzcy9cbiAqL1xuXG5AaW1wb3J0IFwibWF0aFwiO1xuXG4vLyBHZXQgdGhlIGx1bWlub3NpdHkgb2YgYSBjb2xvciBvbiBhIHNjYWxlIGZyb20gMCAoZGFya2VzdCkgdG8gMTAwIChsaWdodGVzdClcbkBmdW5jdGlvbiBsdW1hKCRjb2xvcil7XG4gICAgLy8gVGhhbmtzIHZveHBlbGxpIGZvciBhIHZlcnkgY29uY2lzZSBpbXBsZW1lbnRhdGlvbiBvZiBsdW1pbmFuY2UgbWVhc3VyZSBpbiBzYXNzXG4gICAgLy8gQWRhcHRlZCBmcm9tOiBodHRwczovL2dpc3QuZ2l0aHViLmNvbS92b3hwZWxsaS82MzA0ODEyXG4gICAgJHJnYmE6IHJlZCgkY29sb3IpLCBncmVlbigkY29sb3IpLCBibHVlKCRjb2xvcik7XG4gICAgJHJnYmEyOiAoKTtcblxuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggMyB7XG4gICAgICAgICRyZ2I6IG50aCgkcmdiYSwgJGkpO1xuICAgICAgICAkcmdiOiBtYXgoMCwgcm91bmQoJHJnYikpO1xuICAgICAgICAkcmdiOiBtaW4oMjU1LCByb3VuZCgkcmdiKSk7XG4gICAgICAgIC8vIE9sZCBBbGdvcml0aG06XG4gICAgICAgIC8vICRyZ2I6ICRyZ2IgLyAyNTU7XG4gICAgICAgIC8vICRyZ2I6IGlmKCRyZ2IgPCAuMDM5MjgsICRyZ2IgLyAxMi45MiwgcG93KCgkcmdiICsgLjA1NSkgLyAxLjA1NSwgMi40KSk7XG4gICAgICAgIC8vXG4gICAgICAgIC8vIFJlcGxhY2VkIHRoaXMgd2l0aCBMT1ZFTFkgcHJlY2FsY3VsYXRlZCBudW1iZXJzLCBmb3Igc3BlZWQsIHNpbmNlIHBvdyh4LCAyLjQpIGlzIHNsb3cgYXMgSEVMTCBpbiBTYXNzLlxuICAgICAgICAkcmdiOiBudGgoJGx1bWluYW5jZS1wcmVjYWxjLCAkcmdiICsgMSk7XG4gICAgICAgICRyZ2JhMjogYXBwZW5kKCRyZ2JhMiwgJHJnYik7XG4gICAgfVxuXG4gICAgQHJldHVybiAoLjIxMjYgKiBudGgoJHJnYmEyLCAxKSArIC43MTUyICogbnRoKCRyZ2JhMiwgMikgKyAwLjA3MjIgKiBudGgoJHJnYmEyLCAzKSkqMTAwO1xufVxuXG4vLyBSZXR1cm5zIGEgbnVtYmVyIGZyb20gMSAobG93IGNvbnRyYXN0KSB0byAyMSAoaGlnaCBjb250cmFzdClcbkBmdW5jdGlvbiBjb250cmFzdC1yYXRpbygkY29sb3IxLCAkY29sb3IyKSB7XG4gICAgJGx1bWExOiBsdW1hKCRjb2xvcjEpICsgNTtcbiAgICAkbHVtYTI6IGx1bWEoJGNvbG9yMikgKyA1O1xuICAgICRyYXRpbzogJGx1bWExIC8gJGx1bWEyO1xuICAgIEBpZiAkbHVtYTEgPCAkbHVtYTIge1xuICAgICAgICAkcmF0aW86IDEgLyAkcmF0aW87XG4gICAgfVxuXG4gICAgQHJldHVybiAkcmF0aW87XG59XG5cbi8qKlxuICogSXMgJGNvbG9yMSBsaWdodGVyIHRoYW4gJGNvbG9yMj9cbiAqL1xuQGZ1bmN0aW9uIGlzLWxpZ2h0ZXIoJGNvbG9yMSwgJGNvbG9yMikge1xuICAgIEByZXR1cm4gbHVtYSgkY29sb3IxKSA+IGx1bWEoJGNvbG9yMik7XG59XG5cbi8qKlxuICogSXMgJGNvbG9yMSBkYXJrZXIgdGhhbiAkY29sb3IyP1xuICovXG5AZnVuY3Rpb24gaXMtZGFya2VyKCRjb2xvcjEsICRjb2xvcjIpIHtcbiAgICBAcmV0dXJuIGx1bWEoJGNvbG9yMSkgPCBsdW1hKCRjb2xvcjIpO1xufVxuXG4vKipcbiAqIEZpbmQgYmVzdCBsaWdodG5lc3MgYWRqdXN0IG1ldGhvZFxuICpcbiAqIElkZWFsbHkgd2Ugc2hvdWxkIG9ubHkgaW5jcmVhc2UgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgY29sb3JzLiBJZiAkY29sb3IxXG4gKiBpcyBsaWdodGVyIHRoYW4gJGNvbG9yMiBidXQgdGhlIGNvbnRyYXN0IGlzIG5vdCBhY2Nlc3NpYmxlLCB0aGVuIHdlIHNob3VsZCB0cnkgdG9cbiAqIG1ha2UgaXQgbGlnaHRlciByYXRoZXIgdGhhbiBkYXJrZXIuXG4gKi9cbkBmdW5jdGlvbiBmaW5kLWxpZ2h0bmVzcy1hZGp1c3QtbWV0aG9kKCRjb2xvcjEsICRjb2xvcjIsICR0aHJlc2hvbGQ6ICRjb2xvci1jb250cmFzdC10aHJlc2hvbGQpIHtcbiAgICAkY29udHJhc3QtdG8td2hpdGU6IGNvbnRyYXN0LXJhdGlvKCNmZmZmZmYsICRjb2xvcjIpO1xuICAgICRjb250cmFzdC10by1ibGFjazogY29udHJhc3QtcmF0aW8oIzAwMDAwMCwgJGNvbG9yMik7XG5cbiAgICBAaWYgaXMtbGlnaHRlcigkY29sb3IxLCAkY29sb3IyKSB7XG4gICAgICAgIEBpZiAkY29udHJhc3QtdG8td2hpdGUgPj0gJHRocmVzaG9sZCB7IC8vIGxpZ2h0ZW4gYSBsaWdodGVyIGNvbG9yIHdpbGwgd29ya1xuICAgICAgICAgICAgQHJldHVybiAnbGlnaHRlbic7XG4gICAgICAgIH0gQGVsc2VpZiAkY29udHJhc3QtdG8tYmxhY2sgPj0gJHRocmVzaG9sZCB7XG4gICAgICAgICAgICBAcmV0dXJuICdkYXJrZW4nO1xuICAgICAgICB9XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIEBpZiAkY29udHJhc3QtdG8tYmxhY2sgPj0gJHRocmVzaG9sZCB7IC8vIGRhcmtlbiBhIGRhcmtlciBjb2xvciB3aWxsIHdvcmtcbiAgICAgICAgICAgIEByZXR1cm4gJ2Rhcmtlbic7XG4gICAgICAgIH0gQGVsc2VpZiAkY29udHJhc3QtdG8td2hpdGUgPj0gJHRocmVzaG9sZCB7XG4gICAgICAgICAgICBAcmV0dXJuICdsaWdodGVuJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIE5vIGFjY2VwdGFibGUgY29udHJhc3QgZm91bmQsIGdvIHdpdGggdGhlIGJlc3Qgb25lXG4gICAgQGlmICgkY29udHJhc3QtdG8td2hpdGUgPiAkY29udHJhc3QtdG8tYmxhY2spIHtcbiAgICAgICAgQHJldHVybiAjZmZmO1xuICAgIH0gQGVsc2Uge1xuICAgICAgICBAcmV0dXJuICMwMDA7XG4gICAgfVxufVxuXG4vLyBMaWdodGVuIG9yIGRhcmtlbiAkY29sb3IxIHVudGlsIGl0IGhhcyBzdWZmaWNpZW50IGNvbnRyYXN0IHRvICRjb2xvcjJcbi8vIFRPRE86IFJlbW92ZSAkaXRlcmF0aW9ucyB2YXJpYmxlLCBmaW5kIGEgbW9yZSBjbGV2ZXIgd2F5IHRvIGNoZWNrIGlmIHdlIGFyZSBhdCByb2FkcyBlbmRcbkBmdW5jdGlvbiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkY29sb3IxLCAkY29sb3IyLCAkdGhyZXNob2xkOiAkY29sb3ItY29udHJhc3QtdGhyZXNob2xkLCAkdG9sZXJhbmNlOiAwLjI1KSB7XG5cbiAgICAvLyBSZXR1cm4gZGlyZWN0bHkgaWYgY29udHJhc3QgaXMgZ29vZFxuICAgICRjYW5kaWRhdGUtY29udHJhc3Q6IGNvbnRyYXN0LXJhdGlvKCRjb2xvcjEsICRjb2xvcjIpO1xuICAgIEBpZiAkY2FuZGlkYXRlLWNvbnRyYXN0ID49ICR0aHJlc2hvbGQge1xuICAgICAgICBAcmV0dXJuICRjb2xvcjE7XG4gICAgfVxuXG4gICAgLy8gRmluZCBvdXQgaWYgd2UgbmVlZCB0byBkYXJrZW4gb3IgbGlnaHRlblxuICAgICRtZXRob2Q6IGZpbmQtbGlnaHRuZXNzLWFkanVzdC1tZXRob2QoJGNvbG9yMSwgJGNvbG9yMik7XG5cbiAgICAvLyBJZiB3ZSB3b24ndCBiZSBhYmxlIHRvIGZpbmQgYW4gYWNjZXNzaWJsZSBjb250cmFzdCBhdCBhbGwsIGp1c3QgcmV0dXJuIGJsYWNrIG9yIHdoaXRlIGRpcmVjdGx5XG4gICAgQGlmICRtZXRob2QgIT0gJ2xpZ2h0ZW4nIGFuZCAkbWV0aG9kICE9ICdkYXJrZW4nIHtcbiAgICAgICAgQHJldHVybiAkbWV0aG9kO1xuICAgIH1cblxuICAgIC8vIEJpbmFyeSBzZWFyY2ggdW50aWwgd2UgZmluZCBhIGdvb2QgbGlnaHRuZXNzIGNoYW5nZVxuICAgICRyYW5nZS1zdGFydDogMSU7XG4gICAgJHJhbmdlLWVuZDogMTAwJTtcblxuICAgICRpdGVyYXRpb25zIDogMDtcbiAgICAkY2FuZGlkYXRlOiB1bmRlZmluZWQ7XG5cbiAgICAvLyBXaGlsZSBjb250cmFzdCBpcyBvdXQgb2YgcmFuZ2UsIGtlZXAgc2VhcmNoaW5nXG4gICAgQHdoaWxlICRpdGVyYXRpb25zIDwgNyBhbmQgKCgkY2FuZGlkYXRlLWNvbnRyYXN0IDwgJHRocmVzaG9sZCkgb3IgKCRjYW5kaWRhdGUtY29udHJhc3QgPiAkdGhyZXNob2xkICsgJHRvbGVyYW5jZSkpIHtcbiAgICAgICAgJHJhbmdlLW1pZDogJHJhbmdlLWVuZCAtIHJvdW5kKCgoJHJhbmdlLWVuZCAtICRyYW5nZS1zdGFydCkvMikpO1xuXG4gICAgICAgICRjYW5kaWRhdGU6IGlmKCRtZXRob2QgPT0gJ2xpZ2h0ZW4nLCBsaWdodGVuKCRjb2xvcjEsICRyYW5nZS1taWQpLCBkYXJrZW4oJGNvbG9yMSwgJHJhbmdlLW1pZCkpO1xuXG4gICAgICAgICRjYW5kaWRhdGUtY29udHJhc3Q6IGNvbnRyYXN0LXJhdGlvKCRjYW5kaWRhdGUsICRjb2xvcjIpO1xuXG4gICAgICAgIEBpZiAoJGNhbmRpZGF0ZS1jb250cmFzdCA+PSAkdGhyZXNob2xkKSBhbmQgKCRjYW5kaWRhdGUtY29udHJhc3QgPD0gJHRocmVzaG9sZCArICR0b2xlcmFuY2UpIHtcbiAgICAgICAgICAgIEByZXR1cm4gJGNhbmRpZGF0ZTtcbiAgICAgICAgfSBAZWxzZWlmICRjYW5kaWRhdGUtY29udHJhc3QgPCAkdGhyZXNob2xkIHtcbiAgICAgICAgICAgICRyYW5nZS1zdGFydDogbWluKCRyYW5nZS1taWQgKyAxJSwgMTAwJSk7XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgJHJhbmdlLWVuZDogbWF4KCRyYW5nZS1taWQgLSAxJSwgMSUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJGl0ZXJhdGlvbnM6ICRpdGVyYXRpb25zICsgMTtcbiAgICB9XG5cbiAgICBAcmV0dXJuICRjYW5kaWRhdGU7XG59XG5cbi8vIEZpbmQgd2hpY2ggJGJnY29sb3IgdG8gdXNlIHdpdGggZ2l2ZW4gdGV4dCBjb2xvciAkY29sb3Jcbi8vIERlZmF1bHRzIHRvIGxpZ2h0ZXIgb3IgZGFya2VyIChtb25vY2hyb21lKSBiYWNrZ3JvdW5kXG5AZnVuY3Rpb24gdGV4dC1jb250cmFzdCgkY29sb3IsICRiZ2NvbG9yOiAkY29sb3IsICR0aHJlc2hvbGQ6IDQuNSkge1xuICAgIEByZXR1cm4gYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGJnY29sb3IsICRjb2xvciwgJHRocmVzaG9sZCk7XG59IiwiLy8gQmlnIGt1ZG9zIHRvOiBodHRwczovL2dpdGh1Yi5jb20vdGVya2VsL21hdGhzYXNzXG5cbkBpbXBvcnQgXCJtYXRoL2NvbnN0YW50c1wiO1xuQGltcG9ydCBcIm1hdGgvYWJzXCI7XG5AaW1wb3J0IFwibWF0aC9leHBcIjtcbkBpbXBvcnQgXCJtYXRoL2ZhY3RcIjtcbkBpbXBvcnQgXCJtYXRoL2ZyZXhwXCI7XG5AaW1wb3J0IFwibWF0aC9sZGV4cFwiO1xuQGltcG9ydCBcIm1hdGgvbG9nXCI7XG5AaW1wb3J0IFwibWF0aC9sdW1pbmFuY2UtcHJlY2FsY1wiO1xuQGltcG9ydCBcIm1hdGgvcG93XCI7XG5AaW1wb3J0IFwibWF0aC9udGgtcm9vdFwiO1xuQGltcG9ydCBcIm1hdGgvc3FydFwiO1xuQGltcG9ydCBcIm1hdGgvdHJpZ29ub21ldHJ5XCI7IiwiJEU6ICAgICAyLjcxODI4MTgyODQ1OTA0NTtcbiRQSTogICAgMy4xNDE1OTI2NTM1ODk3OTM7XG4kTE4yOiAgIDAuNjkzMTQ3MTgwNTU5OTQ1MztcbiRTUVJUMjogMS40MTQyMTM1NjIzNzMwOTUxOyIsIiIsIi8vIFJldHVybnMgRV54LCB3aGVyZSB4IGlzIHRoZSBhcmd1bWVudCwgYW5kIEUgaXMgRXVsZXIncyBjb25zdGFudCwgdGhlIGJhc2Ugb2YgdGhlIG5hdHVyYWwgbG9nYXJpdGhtcy5cbi8vIEBwYXJhbSB7TnVtYmVyfSAkeFxuLy8gQGV4YW1wbGVcbi8vICAgICBleHAoMSkgIC8vIDIuNzE4Mjhcbi8vICAgICBleHAoLTEpIC8vIDAuMzY3ODhcbkBmdW5jdGlvbiBleHAoJHgpIHtcbiAgICAkcmV0OiAwO1xuICAgIEBmb3IgJG4gZnJvbSAwIHRvIDI0IHtcbiAgICAgICAgJHJldDogJHJldCArIHBvdygkeCwgJG4pIC8gZmFjdCgkbik7XG4gICAgfVxuICAgIEByZXR1cm4gJHJldDtcbn0iLCIvLyBSZXR1cm5zIHRoZSBmYWN0b3JpYWwgb2YgYSBub24tbmVnYXRpdmUgaW50ZWdlci5cbi8vIEBwYXJhbSB7TnVtYmVyfSAkeCBBIG5vbi1uZWdhdGl2ZSBpbnRlZ2VyLlxuLy8gQHJldHVybiB7TnVtYmVyfVxuLy8gQGV4YW1wbGVcbi8vICAgICBmYWN0KDApIC8vIDFcbi8vICAgICBmYWN0KDgpIC8vIDQwMzIwXG5AZnVuY3Rpb24gZmFjdCgkeCkge1xuICAgIEBpZiAkeCA8IDAgb3IgICR4ICE9IGZsb29yKCR4KSB7XG4gICAgICAgIEB3YXJuIFwiQXJndW1lbnQgZm9yIGBmYWN0KClgIG11c3QgYmUgYSBwb3NpdGl2ZSBpbnRlZ2VyLlwiO1xuICAgICAgICBAcmV0dXJuIG51bGw7XG4gICAgfVxuICAgICRyZXQ6IDE7XG4gICAgQHdoaWxlICR4ID4gMCB7XG4gICAgICAgICRyZXQ6ICRyZXQgKiAkeDtcbiAgICAgICAgJHg6ICR4IC0gMTtcbiAgICB9XG4gICAgQHJldHVybiAkcmV0O1xufSIsIi8vIFJldHVybnMgYSB0d28tZWxlbWVudCBsaXN0IGNvbnRhaW5pbmcgdGhlIG5vcm1hbGl6ZWQgZnJhY3Rpb24gYW5kIGV4cG9uZW50IG9mIG51bWJlci5cbi8vIEBwYXJhbSB7TnVtYmVyfSAkeFxuLy8gQHJldHVybiB7TGlzdH0gZnJhY3Rpb24sIGV4cG9uZW50XG5AZnVuY3Rpb24gZnJleHAoJHgpIHtcbiAgICAkZXhwOiAwO1xuICAgIEBpZiAkeCA8IDAge1xuICAgICAgICAkeDogJHggKiAtMTtcbiAgICB9XG4gICAgQGlmICR4IDwgMC41IHtcbiAgICAgICAgQHdoaWxlICR4IDwgMC41IHtcbiAgICAgICAgICAgICR4OiAkeCAqIDI7XG4gICAgICAgICAgICAkZXhwOiAkZXhwIC0gMTtcbiAgICAgICAgfVxuICAgIH0gQGVsc2UgaWYgJHggPj0gMSB7XG4gICAgICAgIEB3aGlsZSAkeCA+PSAxIHtcbiAgICAgICAgICAgICR4OiAkeCAvIDI7XG4gICAgICAgICAgICAkZXhwOiAkZXhwICsgMTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBAcmV0dXJuICR4LCAkZXhwO1xufSIsIi8vIFJldHVybnMgJHggKiAyXiRleHBcbi8vIEBwYXJhbSB7TnVtYmVyfSAkeFxuLy8gQHBhcmFtIHtOdW1iZXJ9ICRleHBcbkBmdW5jdGlvbiBsZGV4cCgkeCwgJGV4cCkge1xuICAgICRiOiBpZigkZXhwID49IDAsIDIsIDEgLyAyKTtcbiAgICBAaWYgJGV4cCA8IDAge1xuICAgICAgICAkZXhwOiAkZXhwICogLTE7XG4gICAgfVxuICAgIEB3aGlsZSAkZXhwID4gMCB7XG4gICAgICAgIEBpZiAkZXhwICUgMiA9PSAxIHtcbiAgICAgICAgICAgICR4OiAkeCAqICRiO1xuICAgICAgICB9XG4gICAgICAgICRiOiAkYiAqICRiO1xuICAgICAgICAkZXhwOiBmbG9vcigkZXhwICogMC41KTtcbiAgICB9XG4gICAgQHJldHVybiAkeDtcbn0iLCIvLyBSZXR1cm5zIHRoZSBuYXR1cmFsIGxvZ2FyaXRobSBvZiBhIG51bWJlci5cbi8vIEBwYXJhbSB7TnVtYmVyfSAkeFxuLy8gQGV4YW1wbGVcbi8vICAgICBsb2coMikgIC8vIDAuNjkzMTVcbi8vICAgICBsb2coMTApIC8vIDIuMzAyNTlcbkBmdW5jdGlvbiBsb2coJHgpIHtcbiAgICBAaWYgJHggPD0gMCB7XG4gICAgICAgIEByZXR1cm4gMCAvIDA7XG4gICAgfVxuICAgICRrOiBudGgoZnJleHAoJHggLyAkU1FSVDIpLCAyKTtcbiAgICAkeDogJHggLyBsZGV4cCgxLCAkayk7XG4gICAgJHg6ICgkeCAtIDEpIC8gKCR4ICsgMSk7XG4gICAgJHgyOiAkeCAqICR4O1xuICAgICRpOiAxO1xuICAgICRzOiAkeDtcbiAgICAkc3A6IG51bGw7XG4gICAgQHdoaWxlICRzcCAhPSAkcyB7XG4gICAgICAgICR4OiAkeCAqICR4MjtcbiAgICAgICAgJGk6ICRpICsgMjtcbiAgICAgICAgJHNwOiAkcztcbiAgICAgICAgJHM6ICRzICsgJHggLyAkaTtcbiAgICB9XG4gICAgQHJldHVybiAkTE4yICogJGsgKyAyICogJHM7XG59IiwiLy8gVXNlZnVsIE9OTFkgd2hlbiBjYWxjdWxhdGluZyBsaWdodG5lc3Mgb24gYSBjb2xvci5cbi8vIFxuLy8gV2UgYXJlIHJlcGxhY2luZyB0aGlzIGNhbGN1bGF0aW9uOlxuLy8gJHJnYjogaWYoJHJnYiA8IC4wMzkyOCwgJHJnYiAvIDEyLjkyLCBwb3coKCRyZ2IgKyAuMDU1KSAvIDEuMDU1LCAyLjQpKTtcbi8vICgkcmdiID0gYSBudW1iZXIgYmV0d2VlbiAwIGFuZCAyNTUgZGl2aWRlZCBieSAyNTUpLlxuXG4kbHVtaW5hbmNlLXByZWNhbGM6IFxuMCwgMC4wMDAzMDM1MjY5ODM1LCAwLjAwMDYwNzA1Mzk2NzEsIDAuMDAwOTEwNTgwOTUwNiwgMC4wMDEyMTQxMDc5MzQsIDAuMDAxNTE3NjM0OTE4LCAwLjAwMTgyMTE2MTkwMSwgMC4wMDIxMjQ2ODg4ODUsIDAuMDAyNDI4MjE1ODY4LCAwLjAwMjczMTc0Mjg1MiwgXG4wLjAwMzAzNTI2OTgzNSwgMC4wMDMzNDY1MzU3NjQsIDAuMDAzNjc2NTA3MzI0LCAwLjAwNDAyNDcxNzAxOCwgMC4wMDQzOTE0NDIwMzcsIDAuMDA0Nzc2OTUzNDgxLCAwLjAwNTE4MTUxNjcwMiwgMC4wMDU2MDUzOTE2MjQsIDAuMDA2MDQ4ODMzMDIzLCBcbjAuMDA2NTEyMDkwNzkzLCAwLjAwNjk5NTQxMDE4NywgMC4wMDc0OTkwMzIwNDMsIDAuMDA4MDIzMTkyOTg1LCAwLjAwODU2ODEyNTYxOCwgMC4wMDkxMzQwNTg3MDIsIDAuMDA5NzIxMjE3MzIsIDAuMDEwMzI5ODIzMDMsIDAuMDEwOTYwMDk0MDEsIFxuMC4wMTE2MTIyNDUxOCwgMC4wMTIyODY0ODgzNiwgMC4wMTI5ODMwMzIzNCwgMC4wMTM3MDIwODMwNSwgMC4wMTQ0NDM4NDM2LCAwLjAxNTIwODUxNDQyLCAwLjAxNTk5NjI5MzM3LCAwLjAxNjgwNzM3NTc1LCAwLjAxNzY0MTk1NDQ5LCBcbjAuMDE4NTAwMjIwMTMsIDAuMDE5MzgyMzYwOTYsIDAuMDIwMjg4NTYzMDYsIDAuMDIxMjE5MDEwMzgsIDAuMDIyMTczODg0NzksIDAuMDIzMTUzMzY2MTgsIDAuMDI0MTU3NjMyNDUsIDAuMDI1MTg2ODU5NjMsIDAuMDI2MjQxMjIxODksIFxuMC4wMjczMjA4OTE2NCwgMC4wMjg0MjYwMzk1LCAwLjAyOTU1NjgzNDQ0LCAwLjAzMDcxMzQ0MzczLCAwLjAzMTg5NjAzMzA3LCAwLjAzMzEwNDc2NjU3LCAwLjAzNDMzOTgwNjgxLCAwLjAzNTYwMTMxNDg4LCAwLjAzNjg4OTQ1MDQsIFxuMC4wMzgyMDQzNzE2LCAwLjAzOTU0NjIzNTI4LCAwLjA0MDkxNTE5NjkxLCAwLjA0MjMxMTQxMDYyLCAwLjA0MzczNTAyOTI2LCAwLjA0NTE4NjIwNDM5LCAwLjA0NjY2NTA4NjM0LCAwLjA0ODE3MTgyNDIzLCAwLjA0OTcwNjU2NTk4LCBcbjAuMDUxMjY5NDU4MzcsIDAuMDUyODYwNjQ3MDIsIDAuMDU0NDgwMjc2NDQsIDAuMDU2MTI4NDkwMDUsIDAuMDU3ODA1NDMwMTksIDAuMDU5NTExMjM4MTYsIDAuMDYxMjQ2MDU0MjMsIDAuMDYzMDEwMDE3NjUsIDAuMDY0ODAzMjY2NjksIFxuMC4wNjY2MjU5Mzg2NCwgMC4wNjg0NzgxNjk4NCwgMC4wNzAzNjAwOTU3LCAwLjA3MjI3MTg1MDY4LCAwLjA3NDIxMzU2ODM4LCAwLjA3NjE4NTM4MTQ4LCAwLjA3ODE4NzQyMTgxLCAwLjA4MDIxOTgyMDMxLCAwLjA4MjI4MjcwNzEzLCBcbjAuMDg0Mzc2MjExNTQsIDAuMDg2NTAwNDYyMDQsIDAuMDg4NjU1NTg2MjksIDAuMDkwODQxNzExMTgsIDAuMDkzMDU4OTYyODUsIDAuMDk1MzA3NDY2NjMsIDAuMDk3NTg3MzQ3MTQsIDAuMDk5ODk4NzI4MjUsIDAuMTAyMjQxNzMzMSwgXG4wLjEwNDYxNjQ4NDEsIDAuMTA3MDIzMTAzLCAwLjEwOTQ2MTcxMDgsIDAuMTExOTMyNDI3OCwgMC4xMTQ0MzUzNzM4LCAwLjExNjk3MDY2NzgsIDAuMTE5NTM4NDI4LCAwLjEyMjEzODc3MjIsIDAuMTI0NzcxODE3NiwgMC4xMjc0Mzc2ODA0LCBcbjAuMTMwMTM2NDc2NywgMC4xMzI4NjgzMjE2LCAwLjEzNTYzMzMyOTcsIDAuMTM4NDMxNjE1LCAwLjE0MTI2MzI5MTEsIDAuMTQ0MTI4NDcwOSwgMC4xNDcwMjcyNjY1LCAwLjE0OTk1OTc4OTgsIDAuMTUyOTI2MTUyLCAwLjE1NTkyNjQ2MzcsIFxuMC4xNTg5NjA4MzUxLCAwLjE2MjAyOTM3NTYsIDAuMTY1MTMyMTk0NSwgMC4xNjgyNjk0MDAyLCAwLjE3MTQ0MTEwMDcsIDAuMTc0NjQ3NDAzNywgMC4xNzc4ODg0MTYsIDAuMTgxMTY0MjQ0MiwgMC4xODQ0NzQ5OTQ1LCAwLjE4NzgyMDc3MjMsIFxuMC4xOTEyMDE2ODI3LCAwLjE5NDYxNzgzMDQsIDAuMTk4MDY5MzE5NiwgMC4yMDE1NTYyNTM4LCAwLjIwNTA3ODczNjQsIDAuMjA4NjM2ODcwMSwgMC4yMTIyMzA3NTc0LCAwLjIxNTg2MDUwMDEsIDAuMjE5NTI2MTk5NywgMC4yMjMyMjc5NTczLCBcbjAuMjI2OTY1ODczNSwgMC4yMzA3NDAwNDg1LCAwLjIzNDU1MDU4MjIsIDAuMjM4Mzk3NTczOCwgMC4yNDIyODExMjI1LCAwLjI0NjIwMTMyNjcsIDAuMjUwMTU4Mjg0NywgMC4yNTQxNTIwOTQzLCAwLjI1ODE4Mjg1MjksIDAuMjYyMjUwNjU3NSwgXG4wLjI2NjM1NTYwNDgsIDAuMjcwNDk3NzkxLCAwLjI3NDY3NzMxMjEsIDAuMjc4ODk0MjYzNSwgMC4yODMxNDg3NDA0LCAwLjI4NzQ0MDgzNzcsIDAuMjkxNzcwNjQ5OCwgMC4yOTYxMzgyNzA4LCAwLjMwMDU0Mzc5NDQsIDAuMzA0OTg3MzE0MSwgXG4wLjMwOTQ2ODkyMjgsIDAuMzEzOTg4NzEzNCwgMC4zMTg1NDY3NzgxLCAwLjMyMzE0MzIwOTEsIDAuMzI3Nzc4MDk4MSwgMC4zMzI0NTE1MzYzLCAwLjMzNzE2MzYxNSwgMC4zNDE5MTQ0MjQ5LCAwLjM0NjcwNDA1NjQsIDAuMzUxNTMyNTk5NSwgXG4wLjM1NjQwMDE0NDEsIDAuMzYxMzA2Nzc5OCwgMC4zNjYyNTI1OTU2LCAwLjM3MTIzNzY4MDUsIDAuMzc2MjYyMTIzLCAwLjM4MTMyNjAxMTQsIDAuMzg2NDI5NDMzOCwgMC4zOTE1NzI0Nzc3LCAwLjM5Njc1NTIzMDcsIDAuNDAxOTc3Nzc5OCwgXG4wLjQwNzI0MDIxMTksIDAuNDEyNTQyNjEzNSwgMC40MTc4ODUwNzA4LCAwLjQyMzI2NzY3LCAwLjQyODY5MDQ5NjYsIDAuNDM0MTUzNjM2MiwgMC40Mzk2NTcxNzM4LCAwLjQ0NTIwMTE5NDUsIDAuNDUwNzg1NzgyOCwgMC40NTY0MTEwMjMyLCBcbjAuNDYyMDc2OTk5NywgMC40Njc3ODM3OTYxLCAwLjQ3MzUzMTQ5NjEsIDAuNDc5MzIwMTgzMSwgMC40ODUxNDk5NDAxLCAwLjQ5MTAyMDg0OTgsIDAuNDk2OTMyOTk1MSwgMC41MDI4ODY0NTgsIDAuNTA4ODgxMzIwOSwgMC41MTQ5MTc2NjU0LCBcbjAuNTIwOTk1NTczMiwgMC41MjcxMTUxMjU3LCAwLjUzMzI3NjQwNCwgMC41Mzk0Nzk0ODksIDAuNTQ1NzI0NDYxNCwgMC41NTIwMTE0MDE1LCAwLjU1ODM0MDM4OTYsIDAuNTY0NzExNTA1NywgMC41NzExMjQ4Mjk1LCAwLjU3NzU4MDQ0MDQsIFxuMC41ODQwNzg0MTc5LCAwLjU5MDYxODg0MDksIDAuNTk3MjAxNzg4NCwgMC42MDM4MjczMzg5LCAwLjYxMDQ5NTU3MDgsIDAuNjE3MjA2NTYyNCwgMC42MjM5NjAzOTE3LCAwLjYzMDc1NzEzNjMsIDAuNjM3NTk2ODc0LCAwLjY0NDQ3OTY4MiwgXG4wLjY1MTQwNTYzNzQsIDAuNjU4Mzc0ODE3MywgMC42NjUzODcyOTgzLCAwLjY3MjQ0MzE1NywgMC42Nzk1NDI0Njk2LCAwLjY4NjY4NTMxMjQsIDAuNjkzODcxNzYxMywgMC43MDExMDE4OTE5LCAwLjcwODM3NTc3OTksIDAuNzE1NjkzNTAwNSwgXG4wLjcyMzA1NTEyODksIDAuNzMwNDYwNzQwMSwgMC43Mzc5MTA0MDg4LCAwLjc0NTQwNDIwOTUsIDAuNzUyOTQyMjE2OCwgMC43NjA1MjQ1MDQ3LCAwLjc2ODE1MTE0NzIsIDAuNzc1ODIyMjE4MywgMC43ODM1Mzc3OTE1LCAwLjc5MTI5Nzk0MDMsIFxuMC43OTkxMDI3MzgsIDAuODA2OTUyMjU3NywgMC44MTQ4NDY1NzIyLCAwLjgyMjc4NTc1NDQsIDAuODMwNzY5ODc2OCwgMC44Mzg3OTkwMTE3LCAwLjg0Njg3MzIzMTUsIDAuODU0OTkyNjA4MSwgMC44NjMxNTcyMTM1LCAwLjg3MTM2NzExOTIsIFxuMC44Nzk2MjIzOTY5LCAwLjg4NzkyMzExNzksIDAuODk2MjY5MzUzNCwgMC45MDQ2NjExNzQ0LCAwLjkxMzA5ODY1MTgsIDAuOTIxNTgxODU2MywgMC45MzAxMTA4NTg0LCAwLjkzODY4NTcyODUsIDAuOTQ3MzA2NTM2NywgMC45NTU5NzMzNTMyLCBcbjAuOTY0Njg2MjQ3OSwgMC45NzM0NDUyOTA0LCAwLjk4MjI1MDU1MDMsIDAuOTkxMTAyMDk3MSwgMTsiLCIvLyBSZXR1cm5zIGJhc2UgdG8gdGhlIGV4cG9uZW50IHBvd2VyLlxuLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXNlIFRoZSBiYXNlIG51bWJlclxuLy8gQHBhcmFtIHtOdW1iZXJ9ICRleHAgVGhlIGV4cG9uZW50IHRvIHdoaWNoIHRvIHJhaXNlIGJhc2Vcbi8vIEByZXR1cm4ge051bWJlcn1cbi8vIEBleGFtcGxlXG4vLyAgICAgcG93KDQsIDIpICAgLy8gMTZcbi8vICAgICBwb3coNCwgLTIpICAvLyAwLjA2MjVcbi8vICAgICBwb3coNCwgMC4yKSAvLyAxLjMxOTUxXG4vLyBAZnVuY3Rpb24gcG93KCRiYXNlLCAkZXhwKSB7XG4vLyAgICAgQGlmICRleHAgPT0gZmxvb3IoJGV4cCkge1xuLy8gICAgICAgICAkcjogMTtcbi8vICAgICAgICAgJHM6IDA7XG4vLyAgICAgICAgIEBpZiAkZXhwIDwgMCB7XG4vLyAgICAgICAgICAgICAkZXhwOiAkZXhwICogLTE7XG4vLyAgICAgICAgICAgICAkczogMTtcbi8vICAgICAgICAgfVxuLy8gICAgICAgICBAd2hpbGUgJGV4cCA+IDAge1xuLy8gICAgICAgICAgICAgQGlmICRleHAgJSAyID09IDEge1xuLy8gICAgICAgICAgICAgICAgICRyOiAkciAqICRiYXNlO1xuLy8gICAgICAgICAgICAgfVxuLy8gICAgICAgICAgICAgJGV4cDogZmxvb3IoJGV4cCAqIDAuNSk7XG4vLyAgICAgICAgICAgICAkYmFzZTogJGJhc2UgKiAkYmFzZTtcbi8vICAgICAgICAgfVxuLy8gICAgICAgICBAcmV0dXJuIGlmKCRzICE9IDAsIDEgLyAkciwgJHIpO1xuLy8gICAgIH0gQGVsc2Uge1xuLy8gICAgICAgICBAcmV0dXJuIGV4cChsb2coJGJhc2UpICogJGV4cCk7XG4vLyAgICAgfVxuLy8gfVxuXG4vLyBTaW1wbGVyIFBPVygpLCBmb3Igc3BlZWQhXG5AZnVuY3Rpb24gcG93KCRudW1iZXIsICRleHApIHtcbiAgJHZhbHVlOiAkbnVtYmVyO1xuICBAaWYgJGV4cCA+IDAge1xuICAgIC8vIElmIHRoZSBleHBvbmVudCBpcyBwb3NpdGl2ZSwgbXVsdGlwbHkuXG4gICAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkZXhwIHtcbiAgICAgICR2YWx1ZTogJHZhbHVlICogJG51bWJlcjtcbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJGV4cCA8IDAge1xuICAgIC8vIElmIHRoZSBleHBvbmVudCBpcyBuZWdhdGl2ZSwgZGl2aWRlLlxuICAgIEBmb3IgJGkgZnJvbSAwIHRocm91Z2ggLSgkZXhwKSB7XG4gICAgICAkdmFsdWU6ICR2YWx1ZSAvICRudW1iZXI7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICAvLyBJZiB0aGUgZXhwb25lbnQgaXMgemVybywganVzdCByZXR1cm4gMS5cbiAgICAkdmFsdWU6IDE7XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZTtcbn0iLCJAZnVuY3Rpb24gbnRoLXJvb3QtZXN0aW1hdGUoJG51bWJlciwgJGd1ZXNzLCAkbikge1xuICBAcmV0dXJuIDEvJG4gKiAoKCRudW1iZXIvcG93KCRndWVzcywgJG4gLSAxKSkgLSAkZ3Vlc3MpO1xufVxuXG5AZnVuY3Rpb24gbnRoLXJvb3QoJG51bWJlciwgJGRlZ3JlZSwgJHByZWNpc2lvbjogNSkge1xuICAkZ3Vlc3M6IDIuNztcbiAgJHByZXZpb3VzLWd1ZXNzOiAwO1xuICBcbiAgLy8gV2hpbGUgcHJlY2lzaW9uIGhhcyBub3QgYmVlbiBtZXQsIGtlZXAgZ3Vlc3NpbmdcbiAgQHdoaWxlIHJvdW5kKCRwcmV2aW91cy1ndWVzcyAqIHBvdygxMCwgJHByZWNpc2lvbikpICE9IHJvdW5kKCRndWVzcyAqIHBvdygxMCwgJHByZWNpc2lvbikpIHtcbiAgICAkcHJldmlvdXMtZ3Vlc3M6ICRndWVzcztcbiAgICAkZ3Vlc3M6ICRndWVzcyArIG50aC1yb290LWVzdGltYXRlKCRudW1iZXIsICRndWVzcywgNSk7XG4gIH1cbiAgXG4gIEByZXR1cm4gJGd1ZXNzO1xufSIsIi8vIFJldHVybnMgdGhlIHNxdWFyZSByb290IG9mIGEgbnVtYmVyLlxuLy8gQHBhcmFtIHtOdW1iZXJ9ICR4XG4vLyBAZXhhbXBsZVxuLy8gICAgIHNxcnQoMikgLy8gMS40MTQyMVxuLy8gICAgIHNxcnQoNSkgLy8gMi4yMzYwN1xuQGZ1bmN0aW9uIHNxcnQgKCR4KSB7XG4gICAgQGlmICR4IDwgMCB7XG4gICAgICAgIEB3YXJuIFwiQXJndW1lbnQgZm9yIGBzcXJ0KClgIG11c3QgYmUgYSBwb3NpdGl2ZSBudW1iZXIuXCI7XG4gICAgICAgIEByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgJHJldDogMTtcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIDI0IHtcbiAgICAgICAgJHJldDogJHJldCAtIChwb3coJHJldCwgMikgLSAkeCkgLyAoMiAqICRyZXQpO1xuICAgIH1cbiAgICBAcmV0dXJuICRyZXQ7XG59IiwiQGZ1bmN0aW9uIHBpKCkge1xuICAgIEByZXR1cm4gMy4xNDE1OTI2NTM1OTtcbn1cblxuQGZ1bmN0aW9uIHJhZCgkYW5nbGUpIHtcbiAgICAkdW5pdDogdW5pdCgkYW5nbGUpO1xuICAgICR1bml0bGVzczogJGFuZ2xlIC8gKCRhbmdsZSAqIDAgKyAxKTtcbiAgICAvLyBJZiB0aGUgYW5nbGUgaGFzICdkZWcnIGFzIHVuaXQsIGNvbnZlcnQgdG8gcmFkaWFucy5cbiAgICBAaWYgJHVuaXQgPT0gZGVnIHtcbiAgICAgICAgJHVuaXRsZXNzOiAkdW5pdGxlc3MgLyAxODAgKiBwaSgpO1xuICAgIH1cbiAgICBAcmV0dXJuICR1bml0bGVzcztcbn1cblxuQGZ1bmN0aW9uIHNpbigkYW5nbGUpIHtcbiAgICAkc2luOiAwO1xuICAgICRhbmdsZTogcmFkKCRhbmdsZSk7XG4gICAgLy8gSXRlcmF0ZSBhIGJ1bmNoIG9mIHRpbWVzLlxuICAgIEBmb3IgJGkgZnJvbSAwIHRocm91Z2ggMTAge1xuICAgICAgICAkc2luOiAkc2luICsgcG93KC0xLCAkaSkgKiBwb3coJGFuZ2xlLCAoMiAqICRpICsgMSkpIC8gZmFjdCgyICogJGkgKyAxKTtcbiAgICB9XG4gICAgQHJldHVybiAkc2luO1xufVxuXG5AZnVuY3Rpb24gY29zKCRhbmdsZSkge1xuICAgICRjb3M6IDA7XG4gICAgJGFuZ2xlOiByYWQoJGFuZ2xlKTtcbiAgICAvLyBJdGVyYXRlIGEgYnVuY2ggb2YgdGltZXMuXG4gICAgQGZvciAkaSBmcm9tIDAgdGhyb3VnaCAxMCB7XG4gICAgICAgICRjb3M6ICRjb3MgKyBwb3coLTEsICRpKSAqIHBvdygkYW5nbGUsIDIgKiAkaSkgLyBmYWN0KDIgKiAkaSk7XG4gICAgfVxuICAgIEByZXR1cm4gJGNvcztcbn1cblxuQGZ1bmN0aW9uIHRhbigkYW5nbGUpIHtcbiAgICBAcmV0dXJuIHNpbigkYW5nbGUpIC8gY29zKCRhbmdsZSk7XG59XG5cbi8qKlxuICogb24tY2lyY2xlIHRha2VzIGEgcmFkaXVzLCBwb3NpdGlvbiBvbiBhIGNpcmNsZSwgbnVtYmVyIG9mIHBvc3NpYmxlIHBvc2l0aW9ucyBhbmQgcmV0dXJucyB0b3AgYW5kIGxlZnQgcHJvcGVydGllc1xuICpcbiAqICRvcmRpbmFsUG9zaXRpb24ge051bWJlcn0gdGhlIHBvc2l0aW9uIG9mIHRoZSBpdGVtIG9uIHRoZSBjaXJjbGUsIGNvdW50aW5nIGZyb20gMSAoTm9ydGgpIHRocm91Z2ggTlxuICogJHJhZGl1cyB7TnVtYmVyfSAgICByYWRpdXMgb2YgdGhlIGNpcmNsZSBpbiBwaXhlbHNcbiAqICRwb3NpdGlvbnMge051bWJlcn0gICB0aGUgbnVtYmVyIG9mIHBvc2l0aW9ucyBvbiB0aGUgY2lyY2xlXG4gKiAkb3JpZ2luWCB7TnVtYmVyfSAgIG9wdGlvbmFsIFggb3JpZ2luIHBvaW50IGZvciB0aGUgY2lyY2xlLCBkZWZhdWx0cyB0byB0aGUgcmFkaXVzXG4gKiAkb3JpZ2luWSB7TnVtYmVyfSAgIG9wdGlvbmFsIFkgb3JpZ2luIHBvaW50IGZvciB0aGUgY2lyY2xlLCBkZWZhdWx0cyB0byB0aGUgcmFkaXVzXG4gKiAkb2Zmc2V0WCB7TnVtYmVyfSAgIG9wdGlvbmFsIFggb2Zmc2V0IGZvciB0aGUgaXRlbSwgeW91IG1pZ2h0IHVzZSAxLzIgb2YgdGhlIHdpZHRoIG9mIGFuIGl0ZW0sIGRlZmF1bHQgaXMgMFxuICogJG9mZnNldFkge051bWJlcn0gICBvcHRpb25hbCBZIG9mZnNldCBmb3IgdGhlIGl0ZW0sIHlvdSBtaWdodCB1c2UgMS8yIG9mIHRoZSBoZWlnaHQgb2YgYW4gaXRlbSwgZGVmYXVsdCBpcyAwXG4gKi9cbkBmdW5jdGlvbiBvbi1jaXJjbGUoJG9yZGluYWxQb3NpdGlvbiwgJHJhZGl1czogMTgwLCAkcG9zaXRpb25zOiAxMywgJG9yaWdpblg6ICRyYWRpdXMsICRvcmlnaW5ZOiAkcmFkaXVzLCAkb2Zmc2V0WDogMCwgJG9mZnNldFk6IDAsICRjaXJjbGVTaXplOiAzNjAsICRzdGFydFBvczogOTAsICRyZXZlcnNlT3JkZXI6IHRydWUpIHtcblxuICAgIEBpZiAkcmV2ZXJzZU9yZGVyIHtcbiAgICAgICAgJHBvc2l0aW9uQW5nbGVEZWdyZWVzOiAtMSAqICgkb3JkaW5hbFBvc2l0aW9uIC0gMSkgKiAkY2lyY2xlU2l6ZSAvICRwb3NpdGlvbnMgKyAkc3RhcnRQb3M7XG4gICAgfSBAZWxzZSB7XG4gICAgICAgICRwb3NpdGlvbkFuZ2xlRGVncmVlczogKCRvcmRpbmFsUG9zaXRpb24gLSAxKSAqICRjaXJjbGVTaXplIC8gJHBvc2l0aW9ucyArICRzdGFydFBvcztcbiAgICB9XG5cbiAgICAkcG9zaXRpb25BbmdsZVJhZGlhbnM6ICRwb3NpdGlvbkFuZ2xlRGVncmVlcyAqIHBpKCkgLyAxODA7XG5cbiAgICAkY2lyY2xlWHBvczogI3tyb3VuZCgkb3JpZ2luWCArICRvZmZzZXRYICsgJHJhZGl1cyAqIGNvcygkcG9zaXRpb25BbmdsZVJhZGlhbnMpKX1weDtcbiAgICAkY2lyY2xlWXBvczogI3tyb3VuZCgkb3JpZ2luWSArICRvZmZzZXRZICsgJHJhZGl1cyAqIHNpbigkcG9zaXRpb25BbmdsZVJhZGlhbnMpKX1weDtcblxuICAgIEByZXR1cm4gKCRjaXJjbGVYcG9zLCAkY2lyY2xlWXBvcyk7XG5cbn0iLCIvLyBLdWRvczogaHR0cDovL2h1Z29naXJhdWRlbC5jb20vMjAxMy8wOC8wOC9hZHZhbmNlZC1zYXNzLWxpc3QtZnVuY3Rpb25zL1xuXG5AZnVuY3Rpb24gcmVwbGFjZS1udGgoJGxpc3QsICRpbmRleCwgJHZhbHVlKSB7XG4gICRyZXN1bHQ6IG51bGw7XG4gICAgICBcbiAgQGlmIHR5cGUtb2YoJGluZGV4KSAhPSBudW1iZXIge1xuICAgIEB3YXJuIFwiJGluZGV4OiAje3F1b3RlKCRpbmRleCl9IGlzIG5vdCBhIG51bWJlciBmb3IgYHJlcGxhY2UtbnRoYC5cIjtcbiAgfVxuXG4gIEBlbHNlIGlmICRpbmRleCA9PSAwIHtcbiAgICBAd2FybiBcIkxpc3QgaW5kZXggMCBtdXN0IGJlIGEgbm9uLXplcm8gaW50ZWdlciBmb3IgYHJlcGxhY2UtbnRoYC5cIjtcbiAgfVxuICAgICAgXG4gIEBlbHNlIGlmIGFicygkaW5kZXgpID4gbGVuZ3RoKCRsaXN0KSB7XG4gICAgQHdhcm4gXCJMaXN0IGluZGV4IGlzICN7JGluZGV4fSBidXQgbGlzdCBpcyBvbmx5ICN7bGVuZ3RoKCRsaXN0KX0gaXRlbSBsb25nIGZvciBgcmVwbGFjZS1udGhgLlwiO1xuICB9XG5cbiAgQGVsc2Uge1xuICAgICRyZXN1bHQ6ICgpO1xuICAgICRpbmRleDogaWYoJGluZGV4IDwgMCwgbGVuZ3RoKCRsaXN0KSArICRpbmRleCArIDEsICRpbmRleCk7ICBcblxuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggbGVuZ3RoKCRsaXN0KSB7XG4gICAgICBAaWYgJGkgPT0gJGluZGV4IHtcbiAgICAgICAgJHJlc3VsdDogYXBwZW5kKCRyZXN1bHQsICR2YWx1ZSk7XG4gICAgICB9XG4gICAgXG4gICAgICBAZWxzZSB7XG4gICAgICAgICRyZXN1bHQ6IGFwcGVuZCgkcmVzdWx0LCBudGgoJGxpc3QsICRpKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gXG4gIEByZXR1cm4gJHJlc3VsdDtcbn0iLCJAaW1wb3J0IFwic3RyaW5ncy9zdHItZXhwbG9kZVwiOyIsIi8vLyBTcGxpdCBgJHN0cmluZ2AgaW50byBzZXZlcmFsIHBhcnRzIHVzaW5nIGAkZGVsaW1pdGVyYC5cbi8vLyBAc2luY2UgMS4yLjBcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHN0cmluZyAgICAtIHN0cmluZyB0byBzcGxpdFxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZGVsaW1pdGVyICgnJykgLSBzdHJpbmcgdG8gdXNlIGFzIGEgZGVsaW1pdGVyIHRvIHNwbGl0IGAkc3RyaW5nYFxuLy8vIEByZXR1cm4ge0xpc3R9XG5AZnVuY3Rpb24gX3NzLXN0ci1leHBsb2RlKCRzdHJpbmcsICRkZWxpbWl0ZXI6IFwiXCIpIHtcbiAgICAkcmVzdWx0OiAoKTtcbiAgICAkbGVuZ3RoOiBzdHItbGVuZ3RoKCRzdHJpbmcpO1xuICAgIFxuICAgIEBpZiBzdHItbGVuZ3RoKCRkZWxpbWl0ZXIpID09IDAge1xuICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgJHJlc3VsdDogYXBwZW5kKCRyZXN1bHQsIHN0ci1zbGljZSgkc3RyaW5nLCAkaSwgJGkpKTtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgQHJldHVybiAkcmVzdWx0O1xuICAgIH1cbiAgICBcbiAgICAkcnVubmluZzogdHJ1ZTtcbiAgICAkcmVtYWluaW5nOiAkc3RyaW5nO1xuICAgIFxuICAgIEB3aGlsZSAkcnVubmluZyB7XG4gICAgICAgICRpbmRleDogc3RyLWluZGV4KCRyZW1haW5pbmcsICRkZWxpbWl0ZXIpO1xuICAgICAgICBcbiAgICAgICAgQGlmICRpbmRleCB7XG4gICAgICAgICAgICAkc2xpY2U6IHN0ci1zbGljZSgkcmVtYWluaW5nLCAxLCAkaW5kZXggLSAxKTtcbiAgICAgICAgICAgICRyZXN1bHQ6IGFwcGVuZCgkcmVzdWx0LCAkc2xpY2UpO1xuICAgICAgICAgICAgJHJlbWFpbmluZzogc3RyLXNsaWNlKCRyZW1haW5pbmcsICRpbmRleCArIHN0ci1sZW5ndGgoJGRlbGltaXRlcikpO1xuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICRydW5uaW5nOiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBcbiAgICBAcmV0dXJuIGFwcGVuZCgkcmVzdWx0LCAkcmVtYWluaW5nKTtcbn1cblxuQGZ1bmN0aW9uIHN0ci1leHBsb2RlKCRzdHJpbmcsICRkZWxpbWl0ZXI6ICcnKSB7XG4gICAgLy9AaWYgdHlwZS1vZigkc3RyaW5nKSAhPSBcInN0cmluZ1wiIHtcbiAgICAvLyAgICBAZXJyb3IgXCJgZXhwbG9kZWAgZnVuY3Rpb24gZXhwZWN0aW5nIGEgc3RyaW5nOyAje3R5cGUtb2YoJHN0cmluZyl9IGdpdmVuLlwiO1xuICAgIC8vfVxuICAgIFxuICAgIC8vQGlmIHR5cGUtb2YoJGRlbGltaXRlcikgIT0gXCJzdHJpbmdcIiB7XG4gICAgLy8gICAgQGVycm9yIFwiYGV4cGxvZGVgIGZ1bmN0aW9uIGV4cGVjdGluZyBhIHN0cmluZzsgI3t0eXBlLW9mKCRkZWxpbWl0ZXIpfSBnaXZlbi5cIjtcbiAgICAvL31cbiAgICBcbiAgICBAcmV0dXJuIF9zcy1zdHItZXhwbG9kZSgkc3RyaW5nLCAkZGVsaW1pdGVyKTtcbn0iLCJAZnVuY3Rpb24gc3RyaXAtdW5pdHMoJG51bWJlcikge1xuICAgIEByZXR1cm4gJG51bWJlciAvICgkbnVtYmVyICogMCArIDEpO1xufSIsIi8vTm90ZSB0aGF0IDsgaXMgdGhlIEBpbXBvcnQgc2VwYXJhdG9yXG4kZm9udC1jb21ibzogXCJUaXRpbGxpdW0rV2ViOjQwMCw3MDA7ICdIZWx2ZXRpY2EgTmV1ZScsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7ICdUaXRpbGxpdW0gV2ViJywgc2Fucy1zZXJpZlwiICFkZWZhdWx0O1xuXG4kZm9udC1wYXJ0czogc3RyLWV4cGxvZGUoJGZvbnQtY29tYm8sICc7Jyk7XG5cbkBpZiBsZW5ndGgoJGZvbnQtcGFydHMpIDwgMiB7XG4gICAgJGZvbnQtcGFydHM6IHN0ci1leHBsb2RlKFwiVGl0aWxsaXVtK1dlYjo0MDAsNzAwOyAnSGVsdmV0aWNhIE5ldWUnLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmOyAnVGl0aWxsaXVtIFdlYicsIHNhbnMtc2VyaWZcIiwgJzsnKTtcbn1cblxuQGlmIGxlbmd0aCgkZm9udC1wYXJ0cykgPiAyIHtcbiAgICAkZm9udC1pbXBvcnQ6IHVucXVvdGUobnRoKCRmb250LXBhcnRzLCAxKSk7XG4gICAgJGZvbnQtaXMtaW1wb3J0ZWQ6IGZhbHNlICFkZWZhdWx0ICFnbG9iYWw7XG5cbiAgICBAaWYgJGZvbnQtaXMtaW1wb3J0ZWQgIT0gdHJ1ZSB7XG4gICAgICAgIEBpbXBvcnQgdXJsKCcvL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2Nzcz9mYW1pbHk9I3skZm9udC1pbXBvcnR9Jyk7XG4gICAgICAgICRmb250LWlzLWltcG9ydGVkOiB0cnVlO1xuICAgIH1cblxuICAgICRib2R5LWZvbnQtZmFtaWx5OiB1bnF1b3RlKG50aCgkZm9udC1wYXJ0cywgMikpO1xuICAgICRoZWFkZXItZm9udC1mYW1pbHk6IHVucXVvdGUobnRoKCRmb250LXBhcnRzLCAzKSk7XG59IEBlbHNlIHtcbiAgICAkYm9keS1mb250LWZhbWlseTogdW5xdW90ZShudGgoJGZvbnQtcGFydHMsIDEpKTtcbiAgICAkaGVhZGVyLWZvbnQtZmFtaWx5OiB1bnF1b3RlKG50aCgkZm9udC1wYXJ0cywgMikpO1xufVxuXG5AaWYgKHN0ci1pbmRleCgkZm9udC1jb21ibywgJ05vdG8gU2FucycpKSB7XG4gICAgJG1lbnUtZm9udC1mYW1pbHk6ICRoZWFkZXItZm9udC1mYW1pbHkgIWRlZmF1bHQ7XG4gICAgJHV0aWxzLW5hdi1mb250LWZhbWlseTogJGhlYWRlci1mb250LWZhbWlseSAhZGVmYXVsdDtcbn0iLCIvLyBMYXlvdXQgc2V0dGluZ3NcbiRtZW51LXR5cGU6ICdjb21ibycgIWRlZmF1bHQ7IC8vIE11c3QgbWF0Y2ggdGhlIGRlZmF1bHQgc2V0dGluZyBpbiB0aGUgY29uZmlnLnBocC1maWxlXG4kcGFnZS1sYXlvdXQ6ICdmdWxsJyAhZGVmYXVsdDsgICAvLyAnZnJhbWVkJyBvciAnZnVsbCdcblxuJHNvY2lhbC1pY29uLXNpemU6IHJlbS1jYWxjKDMwKTtcbiRoMi1mb250LXNpemU6IHJlbS1jYWxjKDIyKSAhZGVmYXVsdDtcbiRjcnVtYi1mb250LXNpemU6IG1vZHVsYXItc2NhbGUoJHZhbHVlOiAxcmVtLCAkaW5jcmVtZW50OiAtMSwgJHJhdGlvOiAkcGVyZmVjdC1mb3VydGgpO1xuXG4kZ2xvYmFsLXJhZGl1czogMHB4ICFkZWZhdWx0O1xuXG4kaW5wdXQtYm9yZGVyLXdpZHRoOiAxcHggIWRlZmF1bHQ7XG5cbiRidXR0b24tYm9yZGVyLXdpZHRoOiAwcHggIWRlZmF1bHQ7XG5cbiRuYXYtdG9nZ2xlci1zaXplOiByZW0tY2FsYygzNSk7IiwiJHByaW1hcnktY29sb3I6ICNjYzI2MjYgIWRlZmF1bHQ7XG4kaG92ZXItY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4kdG9wLWJnOiAjZjlmOWY5ICFkZWZhdWx0O1xuJGhlYWRlci1iZzogI2ZmZiAhZGVmYXVsdDtcbiRuYXZpZ2F0aW9uLWJnOiAjZmZmICFkZWZhdWx0O1xuJGZvb3Rlci1iZzogI2Y5ZjlmOSAhZGVmYXVsdDtcbiRjb250ZW50LWJnOiAjZmZmZmZmICFkZWZhdWx0O1xuJGZvb3RlcjItYmc6ICNmNWY1ZjUgIWRlZmF1bHQ7XG4kZW5kLWJnOiAjZjBmMGYwICFkZWZhdWx0O1xuXG4kY3J1bWItYmc6ICRjb250ZW50LWJnO1xuJGNvbG9yLWNvbnRyYXN0LXRocmVzaG9sZDogNC41ICFkZWZhdWx0OyAgLy8gNC41ID0gV0NBRyBBQSwgNz0gV0NBRyBBQUFcblxuJGNydW1iLWZvbnQtY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRwcmltYXJ5LWNvbG9yLCAkY3J1bWItYmcpICFkZWZhdWx0O1xuJGNydW1iLWZvbnQtY29sb3ItY3VycmVudDogYWNjZXNzaWJsZS1sdW1pbmFuY2UoI0FBQUFBQSwgJGNydW1iLWJnLCA3KSAhZGVmYXVsdDtcbiRjcnVtYi1zbGFzaC1jb2xvcjogcmdiYShhY2Nlc3NpYmxlLWx1bWluYW5jZSgjQUFBQUFBLCAkY3J1bWItYmcsIDEwKSwgMC43NSkgIWRlZmF1bHQ7XG5cbiRzZWFyY2gtYmc6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuJHNlYXJjaC1iZzogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJHNlYXJjaC1iZywgJGhlYWRlci1iZywgNSk7XG4kc2VhcmNoLWJveC1pbnB1dC1iZzogJHNlYXJjaC1iZyAhZGVmYXVsdDtcbiRzZWFyY2gtYm94LWlucHV0LWhvdmVyLWJnOiAkc2VhcmNoLWJnICFkZWZhdWx0O1xuJHNlYXJjaC1ib3gtaW5wdXQtYWN0aXZlLWJnOiAkc2VhcmNoLWJnICFkZWZhdWx0OyBcblxuLy8kaW5wdXQtYmctY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRzZWFyY2gtYmcsICRjb250ZW50LWJnKSAhZGVmYXVsdDtcbi8vJGlucHV0LWZvbnQtY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRpbnB1dC1iZy1jb2xvciwgJGlucHV0LWJnLWNvbG9yKSAhZGVmYXVsdDtcbi8vJHNlbGVjdC1iZy1jb2xvcjogJGlucHV0LWJnLWNvbG9yICFkZWZhdWx0O1xuXG5cblxuJHNlYXJjaC1jb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGhlYWRlci1iZywgJGhlYWRlci1iZywgNSk7XG4kc2VhcmNoLWJveF9jb250YWluZXItcGxhY2Vob2xkZXItY29sb3I6ICRzZWFyY2gtY29sb3I7XG4kc2VhcmNoLWJveC1pbnB1dC1hY3RpdmUtY29sb3I6ICRzZWFyY2gtY29sb3I7XG4kc2VhcmNoLWJveF9jb250YWluZXItaWNvbi1jb2xvcjogcmdiYSgkaGVhZGVyLWJnLCAuOSk7XG4kc2VhcmNoLWJveF9jb250YWluZXItaWNvbi1ob3Zlci1jb2xvcjogJGhlYWRlci1iZztcbiRjYXJ0LWJ1dHRvbi1pY29uLWNvbG9yOiAkc2VhcmNoLWJveF9jb250YWluZXItaWNvbi1jb2xvcjtcbiRjYXJ0LWJ1dHRvbi1pY29uLWhvdmVyLWNvbG9yOiAkc2VhcmNoLWJveF9jb250YWluZXItaWNvbi1ob3Zlci1jb2xvcjtcbiRjYXJ0LWJ1dHRvbi1xdWFudGl0eS1iZzogJGhlYWRlci1iZztcbiRjYXJ0LWJ1dHRvbi1xdWFudGl0eS1ob3Zlci1iZzogJGhlYWRlci1iZztcbiRjYXJ0LWJ1dHRvbi1xdWFudGl0eS1jb2xvcjogJHNlYXJjaC1iZztcbiRjYXJ0LWJ1dHRvbi1xdWFudGl0eS1zaGFkb3ctY29sb3I6ICRzZWFyY2gtYmc7XG5cbiRtZW51LWl0ZW0tY29udHJhc3QtY29sb3IgIDogaW52ZXJ0KCRuYXZpZ2F0aW9uLWJnKSAhZGVmYXVsdDsgLy8gdHJpY2sgdGhlIGNvbG9yIGNvZGUgdG8gZ2l2ZSB1cyBhIHdoaXRlIGJnIG9uIHRoZSBidXR0b25cbiRtZW51LWl0ZW0taG92ZXItY29sb3IgICAgIDogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGhvdmVyLWNvbG9yLCAkbmF2aWdhdGlvbi1iZykgIWRlZmF1bHQ7XG4kbWVudS1pdGVtLWhvdmVyLWJnICAgICAgICA6ICRuYXZpZ2F0aW9uLWJnICFkZWZhdWx0O1xuJG1lbnUtZHJvcGRvd24tYmcgICAgICAgICAgOiAkbmF2aWdhdGlvbi1iZyAhZGVmYXVsdDtcblxuJG1lbnUtaXRlbS1hY3RpdmUtYmcgICAgICAgOiBtaXgoJGhvdmVyLWNvbG9yLCAkbmF2aWdhdGlvbi1iZywgMjAlKSAhZGVmYXVsdDtcbiRtZW51LWl0ZW0tYWN0aXZlLWNvbG9yICAgIDogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGhvdmVyLWNvbG9yLCAkbWVudS1pdGVtLWFjdGl2ZS1iZykgIWRlZmF1bHQ7XG4kbWVudS1pdGVtLWFjdGl2ZS1ob3Zlci1jb2xvcjogJG1lbnUtaXRlbS1hY3RpdmUtY29sb3IgIWRlZmF1bHQ7XG4kbWVudS1pdGVtLWFjdGl2ZS1ob3Zlci1iZyA6ICRtZW51LWl0ZW0tYWN0aXZlLWJnICFkZWZhdWx0O1xuJGFjdGl2ZS1ob3Zlci1iZyAgICAgICAgICAgOiAkbWVudS1pdGVtLWFjdGl2ZS1iZyAhZGVmYXVsdDtcbiRuYXYtc3VibWVudS1ib3JkZXItY29sb3IgIDogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJG1lbnUtZHJvcGRvd24tYmcsICRtZW51LWRyb3Bkb3duLWJnLCAxLjEpICFkZWZhdWx0O1xuJG1lbnUtbmF2aWdhdGlvbi1saW5rLWNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkbmF2aWdhdGlvbi1iZywgJG5hdmlnYXRpb24tYmcpICFkZWZhdWx0O1xuJG1lbnUtZHJvcGRvd24tbGluay1jb2xvciAgOiAkbWVudS1uYXZpZ2F0aW9uLWxpbmstY29sb3IgIWRlZmF1bHQ7XG4kb2ZmLWNhbnZhcy1iYWNrZ3JvdW5kICAgICA6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRuYXZpZ2F0aW9uLWJnLCAkbmF2aWdhdGlvbi1iZykgIWRlZmF1bHQ7XG4kb2ZmLWNhbnZhcy1saW5rLWNvbG9yICAgICA6ICRuYXZpZ2F0aW9uLWJnICFkZWZhdWx0O1xuJG9mZi1jYW52YXMtaXRlbS1saW5lLWNvbG9yOiByZ2JhKCRvZmYtY2FudmFzLWxpbmstY29sb3IsIDAuMjUpICFkZWZhdWx0O1xuXG4kbGVnZW5kLWJnOiAkY29udGVudC1iZyAhZGVmYXVsdDtcbiRmaWVsZHNldC1ib3JkZXItY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRsZWdlbmQtYmcsICRsZWdlbmQtYmcsIDIpICFkZWZhdWx0OyIsIi8vIFRoZXNlIGFyZSB0aGUgb2xkIFBJT05FRVIgc2V0dGluZ3MsIHdoaWNoIHdhcyBUaGUgVGhlbWUgVGhhdCBTdGFydGVkIEl0IEFsbCDihKJcblxuLy8gR2xvYmFsIHNldHRpbmdzXG4kdG91Y2gtZnJpZW5kbHktc2l6ZTogcmVtLWNhbGMoNDQpICFkZWZhdWx0O1xuJGdsb2JhbC1yYWRpdXM6IDAgIWRlZmF1bHQ7XG5cbi8vIEZvbnQgc2V0dGluZ3NcbiRwYXJhZ3JhcGgtbGluZS1oZWlnaHQ6IDEuNSAhZGVmYXVsdDtcbiRzbWFsbC1mb250LXNpemU6IDgwJSAhZGVmYXVsdDtcbiRwYWdlLXRpdGxlLXBhZGRpbmc6IDAuNXJlbSAhZGVmYXVsdDtcblxuLy8gTGF5b3V0IHNldHRpbmdzXG4kbWVudS10eXBlOiAnZHJvcGRvd24nICFkZWZhdWx0OyAvLyBNdXN0IG1hdGNoIHRoZSBkZWZhdWx0IHNldHRpbmcgaW4gdGhlIGNvbmZpZy5waHAtZmlsZVxuJHBhZ2UtbGF5b3V0OiAnZnVsbCcgIWRlZmF1bHQ7ICAgLy8gJ2ZyYW1lZCcgb3IgJ2Z1bGwnXG4kb2ZmLWNhbnZhcy1wb3NpdGlvbjogbGVmdCAhZGVmYXVsdDtcblxuLy8gQWxlcnQgYm94IHNldHRpbmdzXG4kaW5jbHVkZS1odG1sLWFsZXJ0LWNsYXNzZXM6IGZhbHNlO1xuJGFsZXJ0LXBhZGRpbmctdG9wOiAxcmVtICFkZWZhdWx0O1xuJGFsZXJ0LWNsb3NlLXRvcDogMXJlbSAhZGVmYXVsdDtcbiRhbGVydC1mb250LXNpemU6IHJlbS1jYWxjKDE0KSAhZGVmYXVsdDtcbiRhbGVydC1saW5lLWhlaWdodDogJGFsZXJ0LWZvbnQtc2l6ZS8xcmVtICogJHBhcmFncmFwaC1saW5lLWhlaWdodDtcbiRhbGVydC1zaWRlLWJvcmRlci1zaXplOiAycmVtICFkZWZhdWx0O1xuJGFsZXJ0LXJhZGl1czogNHB4ICFkZWZhdWx0O1xuJGFsZXJ0LWJvdHRvbS1tYXJnaW46IDAgIWRlZmF1bHQ7XG5cbi8vIEdyaWQgc2V0dGluZ3NcbiRyb3ctd2lkdGg6IHJlbS1jYWxjKDEyODApICFkZWZhdWx0O1xuJHRvdGFsLWNvbHVtbnM6IDEyICFkZWZhdWx0O1xuJGNvbHVtbi1ndXR0ZXI6IHJlbS1jYWxjKDMwKSAhZGVmYXVsdDtcblxuLy8gRXF1YWwgY29sdW1uIGhlaWdodCBncmlkIHNldHRpbmdcbiRlcXVhbC1jb2wtaW5uZXItcGFkZGluZzogJGNvbHVtbi1ndXR0ZXIvMiAhZGVmYXVsdDtcblxuLy8gQmxvY2sgZ3JpZCBzZXR0aW5nc1xuJGluY2x1ZGUtaHRtbC1ibG9jay1ncmlkLWNsYXNzZXM6IHRydWUgIWRlZmF1bHQ7XG4kYmxvY2stZ3JpZC1lbGVtZW50czogNSAhZGVmYXVsdDtcbiRhbGlnbi1ibG9jay1ncmlkLXRvLWdyaWQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8vIE1lZGlhIHF1ZXJ5IHJhbmdlc1xuJHNtYWxsLXJhbmdlOiAoMGVtLCAzOS45Mzc1ZW0pICFkZWZhdWx0O1xuJG1lZGl1bS1yYW5nZTogKDQwZW0sIDYzLjkzNzVlbSkgIWRlZmF1bHQ7XG4kbGFyZ2UtcmFuZ2U6ICg2NGVtLCA4OS45Mzc1ZW0pICFkZWZhdWx0O1xuJHhsYXJnZS1yYW5nZTogKDkwZW0sIDExOS45Mzc1ZW0pICFkZWZhdWx0O1xuJHh4bGFyZ2UtcmFuZ2U6ICgxMjBlbSwgOTk5OTk5OTllbSkgIWRlZmF1bHQ7XG5cbi8vIEJyZWFkY3J1bWJzIHNldHRpbmdzXG4kY3J1bWItYmc6ICNmZmYgIWRlZmF1bHQ7XG4kY3J1bWItcGFkZGluZzogMCAhZGVmYXVsdDtcbiRjcnVtYi1ib3JkZXItc2l6ZTogMCAhZGVmYXVsdDtcbiRjcnVtYi1mb250LXRyYW5zZm9ybTogbm9uZSAhZGVmYXVsdDtcbiRjcnVtYi1mb250LXNpemU6IHJlbS1jYWxjKDE2KSAhZGVmYXVsdDtcbiRjcnVtYi1mb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHkgIWRlZmF1bHQ7XG4kY3J1bWItc2lkZS1wYWRkaW5nOiAuNXJlbSAhZGVmYXVsdDtcblxuLy8gVGFibGUgc3R5bGluZ1xuJHRhYmxlLWJvcmRlci1zaXplOiAwO1xuXG4vLyBUYWJzIHN0eWxpbmdcbiR0YWJzLW5hdmlnYXRpb24tcGFkZGluZzogMC40cmVtICFkZWZhdWx0O1xuJHRhYnMtbmF2aWdhdGlvbi1mb250LXNpemU6IHJlbS1jYWxjKDE2KSAhZGVmYXVsdDtcbiR0YWJzLW5hdmlnYXRpb24tZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5ICFkZWZhdWx0O1xuJHRhYnMtY29udGVudC1tYXJnaW4tYm90dG9tOiByZW0tY2FsYygyNCkgIWRlZmF1bHQ7XG4kdGFicy1jb250ZW50LXBhZGRpbmc6IC41cmVtICFkZWZhdWx0O1xuJHRhYnMtdmVydGljYWwtbmF2aWdhdGlvbi1tYXJnaW4tYm90dG9tOiAxLjI1cmVtICFkZWZhdWx0O1xuXG4vLyBTb2NpYWwgaWNvbnNcbiRzb2NpYWwtaWNvbi1zaXplOiAkdG91Y2gtZnJpZW5kbHktc2l6ZSAhZGVmYXVsdDtcblxuLy8gQnV0dG9uc1xuJGJ1dHRvbi1zaXplOiByZW0tY2FsYygzNykgIWRlZmF1bHQ7XG4kYnV0dG9uLWZvbnQtd2VpZ2h0OiBub3JtYWwgIWRlZmF1bHQ7XG5cbi8vIFBhZ2luYXRpb24gc2V0dGluZ3NcbiRwYWdpbmF0aW9uLWl0ZW0taGVpZ2h0OiAgICAgICAgJHRvdWNoLWZyaWVuZGx5LXNpemUgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1pdGVtLXNpZGUtcGFkZGluZzogIDFyZW0gIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1pdGVtLXNwYWNpbmc6ICAgICAgIC41cmVtICFkZWZhdWx0O1xuJHBhZ2luYXRpb24taXRlbS1ib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWl0ZW0tYm9yZGVyLXNpemU6ICAgMCAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWZ1bGwtYnJlYWtwb2ludDogICAgXCJvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTByZW0pXCIgIWRlZmF1bHQ7XG4iLCIvLyBNYWluIGNvbG9ycyBzdHVmZlxuJHByaW1hcnktY29sb3IgICAgICAgICAgICAgICA6ICMzMzMzMzMgIWRlZmF1bHQ7XG4kc2Vjb25kYXJ5LWNvbG9yICAgICAgICAgICAgIDogI2U3ZTdlNyAhZGVmYXVsdDtcbiRjYWxsLXRvLWFjdGlvbi1jb2xvciAgICAgICAgOiAjRUYzQTNCICFkZWZhdWx0O1xuJGhvdmVyLWNvbG9yICAgICAgICAgICAgICAgICA6ICNFRjNBM0IgIWRlZmF1bHQ7XG4kYm9yZGVyLWNvbG9yICAgICAgICAgICAgICAgIDogI2RkZGRkZCAhZGVmYXVsdDtcblxuJGFsZXJ0LWNvbG9yICAgICAgICAgICAgICAgICA6ICNlMDMxMTQgIWRlZmF1bHQ7XG4kc3VjY2Vzcy1jb2xvciAgICAgICAgICAgICAgIDogIzVjYjg1YyAhZGVmYXVsdDtcbiR3YXJuaW5nLWNvbG9yICAgICAgICAgICAgICAgOiAjZmZhMjAwICFkZWZhdWx0O1xuJGluZm8tY29sb3IgICAgICAgICAgICAgICAgICA6ICM1YmMwZGUgIWRlZmF1bHQ7XG4kZGFuZ2VyLWNvbG9yICAgICAgICAgICAgICAgIDogI2Q5NTM0ZiAhZGVmYXVsdDtcblxuLy8gQmFja2dyb3VuZCBjb2xvcnNcbiRib2R5LWJnICAgICAgICAgICAgICAgICAgICAgOiAjRkZGRkZGICFkZWZhdWx0O1xuJHRvcC1iZyAgICAgICAgICAgICAgICAgICAgICA6ICNmNWY1ZjUgIWRlZmF1bHQ7XG4kaGVhZGVyLWJnICAgICAgICAgICAgICAgICAgIDogIzMzMzMzMyAhZGVmYXVsdDtcbiRuYXZpZ2F0aW9uLWJnICAgICAgICAgICAgICAgOiAjMjEyMTIxICFkZWZhdWx0O1xuJGNvbnRlbnQtYmcgICAgICAgICAgICAgICAgICA6ICNmZmZmZmYgIWRlZmF1bHQ7XG4kZm9vdGVyLWJnICAgICAgICAgICAgICAgICAgIDogIzMzMzMzMyAhZGVmYXVsdDtcbiRlbmQtYmcgICAgICAgICAgICAgICAgICAgICAgOiAjMzMzMzMzICFkZWZhdWx0O1xuXG4vLyBGb250IGNvbG9yc1xuJGJvZHktZm9udC1jb2xvciAgICAgICAgICAgICA6ICMzMzMzMzMgIWRlZmF1bHQ7XG4kaGVhZGVyLWZvbnQtY29sb3IgICAgICAgICAgIDogZGFya2VuKCRib2R5LWZvbnQtY29sb3IsIDclKSAhZGVmYXVsdDtcbiRhbHRlcm5hdGl2ZS1mb250LWNvbG9yICAgICAgOiAjY2NjY2NjICFkZWZhdWx0O1xuXG4vLyBDb2xvciBjb250cmFzdCBhbmFseXNpcyB2YXJpYWJsZXMsIHNlZSBmdW5jdGlvbnMvY29sb3JcbiRjb2xvci1jb250cmFzdC10aHJlc2hvbGQgICAgOiA0LjUgIWRlZmF1bHQ7ICAvLyA0LjUgPSBXQ0FHIEFBLCA3PSBXQ0FHIEFBQVxuJGRhcmstYm9keS10ZXh0ICAgICAgICAgICAgICA6ICRib2R5LWZvbnQtY29sb3IgIWRlZmF1bHQ7XG4kbGlnaHQtYm9keS10ZXh0ICAgICAgICAgICAgIDogJGFsdGVybmF0aXZlLWZvbnQtY29sb3IgIWRlZmF1bHQ7XG5cbi8vIEVsZW1lbnQgYW5kIHNlY3Rpb24gY29sb3Igc2V0dGluZ3Ncbi8vIEBUT0RPOiBXaGVuIHdlIGNhbiB1c2UgU2FzcyAzLjMsIGNsZWFuIHRoaXMgdXAgaW50byBtYXBzIHdpdGgga2V5L3ZhbHVlIHBhaXJzIVxuJGNvbG9yLWVsZW1lbnRzICAgICAgICAgICAgICA6IFwicHJpbWFyeS1jb2xvclwiLCBcInNlY29uZGFyeS1jb2xvclwiLCBcImNhbGwtdG8tYWN0aW9uLWNvbG9yXCIgIWRlZmF1bHQ7XG4kY29sb3ItZWxlbWVudHMtY29sb3JzICAgICAgIDogJHByaW1hcnktY29sb3IsICRzZWNvbmRhcnktY29sb3IsICRjYWxsLXRvLWFjdGlvbi1jb2xvciAhZGVmYXVsdDsgLy8gbGlzdCBsZW5ndGggc2hvdWxkIG1hdGNoIHRoYXQgb2YgJGNvbG9yLWVsZW1lbnRzXG4kc2VjdGlvbnMgICAgICAgICAgICAgICAgICAgIDogXCJ0b3BcIiwgXCJuYXZpZ2F0aW9uXCIsIFwiaGVhZGVyXCIsIFwiY29udGVudFwiLCBcImZvb3RlclwiLCBcImVuZFwiICFkZWZhdWx0O1xuJHNlY3Rpb24tc2VsZWN0b3JzICAgICAgICAgICA6IFwiLnRvcC1iZ1wiLCBcIi5uYXZpZ2F0aW9uLWJnXCIsIFwiLmhlYWRlci1iZ1wiLCBcIi5jb250ZW50LWJnXCIsIFwiLmZvb3Rlci1iZ1wiLCBcIi5lbmQtYmdcIiAhZGVmYXVsdDsgLy8gbGlzdCBsZW5ndGggc2hvdWxkIG1hdGNoIHRoYXQgb2YgJHNlY3Rpb25zXG4kc2VjdGlvbi1iYWNrZ3JvdW5kcyAgICAgICAgIDogJHRvcC1iZywgJG5hdmlnYXRpb24tYmcsICRoZWFkZXItYmcsICRjb250ZW50LWJnLCAkZm9vdGVyLWJnLCAkZW5kLWJnICFkZWZhdWx0OyAvLyBsaXN0IGxlbmd0aCBzaG91bGQgbWF0Y2ggdGhhdCBvZiAkc2VjdGlvbnNcblxuLy8gU2V0IHNvbWUgZXh0cmEgY29sb3IgdmFyaWFibGVzXG4kY29udGVudC1iZy1pcy1kYXJrICAgICAgICAgIDogaWYobHVtYSgkY29udGVudC1iZykgPCA1MCwgdHJ1ZSwgZmFsc2UpICFkZWZhdWx0O1xuJGhvdmVyLWJnLXRleHQtY29sb3IgICAgICAgICA6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCNmZmYsICRob3Zlci1jb2xvcikgIWRlZmF1bHQ7XG4kY3J1bWItZm9udC1jb2xvciAgICAgICAgICAgIDogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJHByaW1hcnktY29sb3IsICRjb250ZW50LWJnKSAhZGVmYXVsdDtcbiRjb250ZW50LXRleHQtY29sb3IgICAgICAgICAgOiBpZigkY29udGVudC1iZy1pcy1kYXJrLCBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkbGlnaHQtYm9keS10ZXh0LCAkY29udGVudC1iZyksIGFjY2Vzc2libGUtbHVtaW5hbmNlKCRkYXJrLWJvZHktdGV4dCwgJGNvbnRlbnQtYmcpKSAhZGVmYXVsdDtcbiRjcnVtYi1mb250LWNvbG9yLWN1cnJlbnQgICAgOiAkY29udGVudC10ZXh0LWNvbG9yICFkZWZhdWx0O1xuXG4vLyBUYWJzIHNldHRpbmdzXG4kdGFicy1vbi1kYXJrLWJnICAgICAgICAgICAgIDogaWYoJGNvbnRlbnQtYmctaXMtZGFyaywgdHJ1ZSwgZmFsc2UpICFkZWZhdWx0O1xuJHRhYnMtYmctY29sb3IgICAgICAgICAgICAgICA6IGlmKCR0YWJzLW9uLWRhcmstYmcsIGxpZ2h0ZW4oJGNvbnRlbnQtYmcsIDEwJSksIGRhcmtlbigkY29udGVudC1iZywgMTAlKSkgIWRlZmF1bHQ7XG4kdGFicy1mb250LWNvbG9yICAgICAgICAgICAgIDogaW52ZXJ0KCR0YWJzLWJnLWNvbG9yKSAhZGVmYXVsdDtcbiR0YWJzLWFjdGl2ZS1iZy1jb2xvciAgICAgICAgOiBpZigkdGFicy1vbi1kYXJrLWJnLCAjZmZmLCAjMDAwKSAhZGVmYXVsdDtcbiR0YWJzLWFjdGl2ZS1mb250LWNvbG9yICAgICAgOiBpbnZlcnQoJHRhYnMtYWN0aXZlLWJnLWNvbG9yKSAhZGVmYXVsdDtcbiR0YWJzLWNvbnRhaW5lci1iZyAgICAgICAgICAgOiBpZigkdGFicy1vbi1kYXJrLWJnLCBsaWdodGVuKCRjb250ZW50LWJnLCAzJSksIGRhcmtlbigkY29udGVudC1iZywgMyUpKSAhZGVmYXVsdDtcblxuLy8gU2V0dGluZ3MgZm9yIHRhYmxlc1xuJHRhYmxlLWJnICAgICAgICAgICAgICAgICAgICA6ICRjb250ZW50LWJnICFkZWZhdWx0O1xuJHRhYmxlLWV2ZW4tcm93LWJnICAgICAgICAgICA6IGlmKCRjb250ZW50LWJnLWlzLWRhcmssIGxpZ2h0ZW4oJGNvbnRlbnQtYmcsIDUlKSwgIGRhcmtlbigkY29udGVudC1iZywgNSUpKSAhZGVmYXVsdDtcbiR0YWJsZS1ib3JkZXItY29sb3IgICAgICAgICAgOiBpZigkY29udGVudC1iZy1pcy1kYXJrLCByZ2JhKCRsaWdodC1ib2R5LXRleHQsIDAuNCksIHJnYmEoJGRhcmstYm9keS10ZXh0LCAwLjQpKSAhZGVmYXVsdDtcbiR0YWJsZS1zdWJ0bGUtYm9yZGVyLWNvbG9yICAgOiBpZigkY29udGVudC1iZy1pcy1kYXJrLCByZ2JhKCRsaWdodC1ib2R5LXRleHQsIDAuNCksIHJnYmEoJGRhcmstYm9keS10ZXh0LCAwLjQpKSAhZGVmYXVsdDtcbiR0YWJsZS1oZWFkLWJnICAgICAgICAgICAgICAgOiBpZigkY29udGVudC1iZy1pcy1kYXJrLCBsaWdodGVuKCRjb250ZW50LWJnLCAzJSksIGRhcmtlbigkY29udGVudC1iZywgMyUpKSAhZGVmYXVsdDtcbiR0YWJsZS1oZWFkLWZvbnQtY29sb3IgICAgICAgOiBpZigkY29udGVudC1iZy1pcy1kYXJrLCBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkbGlnaHQtYm9keS10ZXh0LCAkdGFibGUtaGVhZC1iZyksIGFjY2Vzc2libGUtbHVtaW5hbmNlKCRkYXJrLWJvZHktdGV4dCwgJHRhYmxlLWhlYWQtYmcpKSAhZGVmYXVsdDtcbiR0YWJsZS1ldmVuLXJvdy10ZXh0LWNvbG9yICAgOiBpZigkY29udGVudC1iZy1pcy1kYXJrLCBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkbGlnaHQtYm9keS10ZXh0LCAkdGFibGUtZXZlbi1yb3ctYmcgKSwgYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGRhcmstYm9keS10ZXh0LCAkdGFibGUtZXZlbi1yb3ctYmcgKSkgIWRlZmF1bHQ7XG4kdGFibGUtcm93LWZvbnQtY29sb3IgICAgICAgIDogJGNvbnRlbnQtdGV4dC1jb2xvciAhZGVmYXVsdDtcblxuLy8gQ2hlY2tvdXQgY29sb3JzXG4kY2hlY2tvdXQtc3RlcHMtYmcgICAgICAgICAgIDogaWYoJGNvbnRlbnQtYmctaXMtZGFyaywgbGlnaHRlbigkY29udGVudC1iZywgMTUlKSwgZGFya2VuKCRjb250ZW50LWJnLCAxNSUpKSAhZGVmYXVsdDtcbiRjaGVja291dC1zdGVwLWluYWN0aXZlLWJnICAgOiBpZigkY29udGVudC1iZy1pcy1kYXJrLCBsaWdodGVuKCRjb250ZW50LWJnLCA4JSksIGRhcmtlbigkY29udGVudC1iZywgOCUpKSAhZGVmYXVsdDtcbiRlZGl0LXN0ZXAtYnV0dG9uLWJnICAgICAgICAgOiAkY29udGVudC10ZXh0LWNvbG9yICFkZWZhdWx0O1xuJGVkaXQtc3RlcC1idXR0b24tdGV4dC1jb2xvciA6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCNmZmYsICRlZGl0LXN0ZXAtYnV0dG9uLWJnKSAhZGVmYXVsdDtcbiRlZGl0LXN0ZXAtaG92ZXItYmcgICAgICAgICAgOiBpZigkY29udGVudC1iZy1pcy1kYXJrLCBkYXJrZW4oJGVkaXQtc3RlcC1idXR0b24tYmcsIDEwJSksIGxpZ2h0ZW4oJGVkaXQtc3RlcC1idXR0b24tYmcsIDEwJSkpICFkZWZhdWx0O1xuJGVkaXQtc3RlcC1ob3Zlci10ZXh0LWNvbG9yICA6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRwcmltYXJ5LWNvbG9yLCAkZWRpdC1zdGVwLWhvdmVyLWJnKSAhZGVmYXVsdDtcbiRzdGVwLW51bWJlci1iZyAgICAgICAgICAgICAgOiBpZigkY29udGVudC1iZy1pcy1kYXJrLCBkYXJrZW4oJGVkaXQtc3RlcC1idXR0b24tYmcsIDIwJSksIGxpZ2h0ZW4oJGVkaXQtc3RlcC1idXR0b24tYmcsIDIwJSkpICFkZWZhdWx0O1xuJHN0ZXAtbnVtYmVyLXRleHQtY29sb3IgICAgICA6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCNkZGQsICRzdGVwLW51bWJlci1iZykgIWRlZmF1bHQ7XG5cbi8vIE1lc3NhZ2Vib3gvYWxlcnRzXG4kbXNnYm94LWJnICAgICAgICAgICAgICAgICAgIDogaWYoJGNvbnRlbnQtYmctaXMtZGFyaywgbGlnaHRlbigkY29udGVudC1iZywgNSUpLCBkYXJrZW4oJGNvbnRlbnQtYmcsIDUlKSkgIWRlZmF1bHQ7XG4kbXNnYm94LWJvcmRlci1jb2xvciAgICAgICAgIDogaWYoJGNvbnRlbnQtYmctaXMtZGFyaywgbGlnaHRlbigkbXNnYm94LWJnLCAxMCUpLCBkYXJrZW4oJGNvbnRlbnQtYmcsIDEwJSkpICFkZWZhdWx0O1xuJG1zZ2JveC1jbG9zZS10ZXh0LWNvbG9yICAgICA6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCMwMDAsICRtc2dib3gtYmcpICFkZWZhdWx0O1xuJG1zZ2JveC1jbG9zZS1zaGFkb3ctY29sb3IgICA6IGludmVydCgkbXNnYm94LWNsb3NlLXRleHQtY29sb3IpICFkZWZhdWx0O1xuJGFsZXJ0LWZvbnQtY29sb3ItYWx0ICAgICAgICA6ICRib2R5LWZvbnQtY29sb3IgIWRlZmF1bHQ7XG5cbi8vIFRhYnMgbmF2aWdhdGlvbiBjb2xvciAobmVlZHMgZml4aW5nKVxuJHRhYnMtbmF2aWdhdGlvbi1iZy1jb2xvciAgICAgICAgICA6ICR0YWJzLWJnLWNvbG9yICFkZWZhdWx0O1xuJHRhYnMtbmF2aWdhdGlvbi1hY3RpdmUtYmctY29sb3IgICA6ICR0YWJzLWFjdGl2ZS1iZy1jb2xvciAhZGVmYXVsdDtcbiR0YWJzLW5hdmlnYXRpb24taG92ZXItYmctY29sb3IgICAgOiBzY2FsZS1jb2xvcigkdGFicy1uYXZpZ2F0aW9uLWJnLWNvbG9yLCAkbGlnaHRuZXNzOiAtMTYuNiUpICFkZWZhdWx0O1xuJHRhYnMtbmF2aWdhdGlvbi1mb250LWNvbG9yICAgICAgICA6ICR0YWJzLWZvbnQtY29sb3IgIWRlZmF1bHQ7XG4kdGFicy1uYXZpZ2F0aW9uLWFjdGl2ZS1mb250LWNvbG9yIDogJHRhYnMtYWN0aXZlLWZvbnQtY29sb3IgIWRlZmF1bHQ7XG5cbi8vIEJvcmRlcnNcbiRib3JkZXItZGVmYXVsdC1vcGFjaXR5OiAwLjIgIWRlZmF1bHQ7XG4kYm9yZGVyLWRlZmF1bHQtaG92ZXItb3BhY2l0eTogMC40ICFkZWZhdWx0O1xuJGJvcmRlci1oYXJkLW9wYWNpdHk6IDAuNSAhZGVmYXVsdDtcbiRib3JkZXItaGFyZC1ob3Zlci1vcGFjaXR5OiAwLjcgIWRlZmF1bHQ7XG5cbi8vIFNvY2lhbCBpY29uIGNvbG9yc1xuJHNvY2lhbC1jb2xvci1ibG9nZ2VyOiAjZmM5OTQ4ICFkZWZhdWx0O1xuJHNvY2lhbC1jb2xvci1lbGxvOiByZ2JhKCMwMDAsIC4xKSAhZGVmYXVsdDtcbiRzb2NpYWwtY29sb3ItZmFjZWJvb2s6ICMzYjU5OTggIWRlZmF1bHQ7XG4kc29jaWFsLWNvbG9yLWZsaWNrcjogI2ZmMDA4NCAhZGVmYXVsdDtcbiRzb2NpYWwtY29sb3ItZ29vZ2xlcGx1czogI2RkNGIzOSAhZGVmYXVsdDtcbiRzb2NpYWwtY29sb3ItaW5zdGFncmFtOiAjNTE3ZmE0ICFkZWZhdWx0O1xuJHNvY2lhbC1jb2xvci1saW5rZWRpbjogIzAwN2JiNiAhZGVmYXVsdDtcbiRzb2NpYWwtY29sb3ItbWFpbDogIzMzMyAhZGVmYXVsdDtcbiRzb2NpYWwtY29sb3ItcGludGVyZXN0OiAjY2IyMDI3ICFkZWZhdWx0O1xuJHNvY2lhbC1jb2xvci10d2l0dGVyOiAjMDBhY2VkICFkZWZhdWx0O1xuJHNvY2lhbC1jb2xvci12aW1lbzogIzQ1YmNmOSAhZGVmYXVsdDtcbiRzb2NpYWwtY29sb3IteW91dHViZTogI2NjMTgxZSAhZGVmYXVsdDtcblxuLy8gUGFnaW5hdGlvbiBjb2xvcnNcbiRwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZDogICAgICAgICAgICByZ2JhKCRjb250ZW50LWJnLCAwKSAhZGVmYXVsdDsgLy8gdHJhbnNwYXJlbnRcbiRwYWdpbmF0aW9uLWl0ZW0tYm9yZGVyLWNvbG9yOiAgICAgICAgICAkcGFnaW5hdGlvbi1pdGVtLWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1pdGVtLWNvbG9yOiAgICAgICAgICAgICAgICAgJGNvbnRlbnQtdGV4dC1jb2xvcjtcblxuJHBhZ2luYXRpb24tY3VycmVudC1pdGVtLWJhY2tncm91bmQ6ICAgICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tY3VycmVudC1pdGVtLWJvcmRlci1jb2xvcjogICRwYWdpbmF0aW9uLWN1cnJlbnQtaXRlbS1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tY3VycmVudC1pdGVtLWNvbG9yOiAgICAgICAgIGFjY2Vzc2libGUtbHVtaW5hbmNlKGlmKGx1bWEoJHBhZ2luYXRpb24tY3VycmVudC1pdGVtLWJhY2tncm91bmQpIDwgNTAsICNmZmYsICMwMDApLCAkcGFnaW5hdGlvbi1jdXJyZW50LWl0ZW0tYmFja2dyb3VuZCkgIWRlZmF1bHQ7XG5cbiRwYWdpbmF0aW9uLWhvdmVyLWl0ZW0tYmFja2dyb3VuZDogICAgICAkaG92ZXItY29sb3IgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1ob3Zlci1pdGVtLWJvcmRlci1jb2xvcjogICAgJHBhZ2luYXRpb24taG92ZXItaXRlbS1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJHBhZ2luYXRpb24taG92ZXItaXRlbS1jb2xvcjogICAgICAgICAgIGFjY2Vzc2libGUtbHVtaW5hbmNlKGlmKGx1bWEoJHBhZ2luYXRpb24taG92ZXItaXRlbS1iYWNrZ3JvdW5kKSA8IDUwLCAjZmZmLCAjMDAwKSwgJHBhZ2luYXRpb24taG92ZXItaXRlbS1iYWNrZ3JvdW5kKSAhZGVmYXVsdDsiLCIvLyBFbGVtZW50IGFuZCBzZWN0aW9uIGNvbG9yIHNldHRpbmdzXG4vLyBAVE9ETzogV2hlbiB3ZSBjYW4gdXNlIFNhc3MgMy4zLCBjbGVhbiB0aGlzIHVwIGludG8gbWFwcyB3aXRoIGtleS92YWx1ZSBwYWlycyFcbiRzZWN0aW9ucyAgICAgICAgICAgICAgICAgICAgOiBcInRvcFwiLCBcIm5hdmlnYXRpb25cIiwgXCJoZWFkZXJcIiwgXCJjb250ZW50XCIsIFwiZm9vdGVyXCIsIFwiZm9vdGVyMlwiLCBcImVuZFwiO1xuJHNlY3Rpb24tc2VsZWN0b3JzICAgICAgICAgICA6IFwiLnRvcC1iZ1wiLCBcIi5uYXZpZ2F0aW9uLWJnXCIsIFwiLmhlYWRlci1iZ1wiLCBcIi5jb250ZW50LWJnXCIsIFwiLmZvb3Rlci1iZ1wiLCBcIi5mb290ZXIyLWJnXCIsIFwiLmVuZC1iZ1wiOyAvLyBsaXN0IGxlbmd0aCBzaG91bGQgbWF0Y2ggdGhhdCBvZiAkc2VjdGlvbnNcbiRzZWN0aW9uLWJhY2tncm91bmRzICAgICAgICAgOiAkdG9wLWJnLCAkbmF2aWdhdGlvbi1iZywgJGhlYWRlci1iZywgJGNvbnRlbnQtYmcsICRmb290ZXItYmcsICRmb290ZXIyLWJnLCAkZW5kLWJnOyAvLyBsaXN0IGxlbmd0aCBzaG91bGQgbWF0Y2ggdGhhdCBvZiAkc2VjdGlvbnMiLCJAaWYgbGVuZ3RoKCRjb2xvci1lbGVtZW50cykgIT0gbGVuZ3RoKCRjb2xvci1lbGVtZW50cy1jb2xvcnMpIHtcbiAgICBAd2FybiBcIkxlbmd0aCBvZiAkY29sb3ItZWxlbWVudHMgZG9lcyBub3QgbWF0Y2ggbGVuZ3RoIG9mICRjb2xvci1lbGVtZW50cy1jb2xvcnNcIjtcbn1cblxuQGlmIGxlbmd0aCgkc2VjdGlvbi1zZWxlY3RvcnMpICE9IGxlbmd0aCgkc2VjdGlvbi1iYWNrZ3JvdW5kcykge1xuICAgIEB3YXJuIFwiTGVuZ3RoIG9mICRzZWN0aW9uLXNlbGVjdG9ycyBkb2VzIG5vdCBtYXRjaCBsZW5ndGggb2YgJHNlY3Rpb24tYmFja2dyb3VuZHNcIjtcbn1cblxuLyoqXG4gKiBDcmVhdGUgYW4gZWxlbWVudCB3aXRoIGEgY29sb3JlZCBiYWNrZ3JvdW5kXG4gKlxuICogVGhpcyBtaXhpbiBvdXRwdXRzIGEgY29sb3IgYW5kIGEgYmFja2dyb3VuZCBjb2xvclxuICogXG4gKiBAcGFyYW0gIHN0cmluZyAkY29sb3IgICAgICAgICAgICAgICAgICAgIFRoZSBiYWNrZ3JvdW5kIGNvbG9yIHlvdSB3YW50IHRvIHVzZSwgZm9yIGluc3RhbmNlICNmZmNjMDBcbiAqIEBwYXJhbSAgc3RyaW5nICRmb3JlZ3JvdW5kLWNvbG9yOiAjZmZmICAgVGhlIGZvcmVncm91bmQvdGV4dCBjb2xvciB5b3Ugd2FudCB0byB1c2UuIFRoaXMgd2lsbCBoYXZlIGFuIGFjY2Vzc2libGUgbHVtaW5hbmNlLCBhZGp1c3RlZCB0byB3b3JrIHdpdGggJGNvbG9yXG4gKiBAcGFyYW0gIHN0cmluZyAkYmFja2dyb3VuZC1jb2xvcjogI2ZmZiAgIFRoZSBiYWNrZ3JvdW5kIG9uIHdoaWNoIHRoZSBlbGVtZW50IGlzIHNpdHVhdGVkIChlbGVtZW50cyBiYWNrZ3JvdW5kIHdpbGwgYmUgYWRqdXN0ZWQgdG8gaGF2ZSBhdCBsZWFzdCBhIHNtYWxsIGNvbnRyYXN0IHRvIHRoaXMpXG4gKi9cbkBtaXhpbiBjb2xvcmVkLWJnLWVsZW1lbnQoJGNvbG9yLCAkZm9yZWdyb3VuZC1jb2xvcjogI2ZmZiwgJGJhY2tncm91bmQtY29sb3I6ICNmZmYpIHtcbiAgICAkY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRjb2xvciwgJGJhY2tncm91bmQtY29sb3IsIDEuNSk7XG4gICAgYmFja2dyb3VuZDogJGNvbG9yO1xuICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkZm9yZWdyb3VuZC1jb2xvciwgJGNvbG9yKTtcbn1cblxuLy8gQ2FuIHdlIGNvbWJpbmUgdGhlIHN0eWxlcyBmb3Igc29tZSBvZiB0aGUgaGVhZGVycyB0byByZWR1Y2UgdGhlIHNpemUgb2Ygb3VyIGNzcz9cbiR1bmlxdWUtc2VjdGlvbnM6ICgpO1xuJHVuaXF1ZS1iYWNrZ3JvdW5kczogKCk7XG4kdW5pcXVlLXNlbGVjdG9yczogKCk7XG4kc2hhcmVkLXNlY3Rpb25zOiAoKTtcblxuQGZvciAkaSBmcm9tIDEgdGhyb3VnaCBsZW5ndGgoJHNlY3Rpb24tYmFja2dyb3VuZHMpIHtcbiAgICAkdGVzdGluZy1iYWNrZ3JvdW5kOiBudGgoJHNlY3Rpb24tYmFja2dyb3VuZHMsICRpKTtcbiAgICAkYmFja2dyb3VuZC1wb3NpdGlvbjogaW5kZXgoJHVuaXF1ZS1iYWNrZ3JvdW5kcywgJHRlc3RpbmctYmFja2dyb3VuZCk7XG4gICAgXG4gICAgQGlmICRiYWNrZ3JvdW5kLXBvc2l0aW9uID09IGZhbHNlIG9yICRiYWNrZ3JvdW5kLXBvc2l0aW9uID09IG51bGwge1xuICAgICAgICAkdW5pcXVlLWJhY2tncm91bmRzOiBhcHBlbmQoJHVuaXF1ZS1iYWNrZ3JvdW5kcywgJHRlc3RpbmctYmFja2dyb3VuZCk7XG4gICAgICAgICR1bmlxdWUtc2VsZWN0b3JzOiBhcHBlbmQoJHVuaXF1ZS1zZWxlY3RvcnMsIG50aCgkc2VjdGlvbi1zZWxlY3RvcnMsICRpKSk7XG4gICAgICAgICR1bmlxdWUtc2VjdGlvbnM6IGFwcGVuZCgkdW5pcXVlLXNlY3Rpb25zLCBudGgoJHNlY3Rpb25zLCAkaSkpO1xuICAgICAgICAkc2hhcmVkLXNlY3Rpb25zOiBhcHBlbmQoJHNoYXJlZC1zZWN0aW9ucywgbnRoKCRzZWN0aW9ucywgJGkpKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICAgJGV4aXN0aW5nLWJnLXBvc2l0aW9uOiBpbmRleCgkdW5pcXVlLWJhY2tncm91bmRzLCAkdGVzdGluZy1iYWNrZ3JvdW5kKTtcbiAgICAgICAgJHNoYXJlZC1zZWN0aW9uczogYXBwZW5kKCRzaGFyZWQtc2VjdGlvbnMsIG50aCgkdW5pcXVlLXNlY3Rpb25zLCAkZXhpc3RpbmctYmctcG9zaXRpb24pKTtcbiAgICB9XG59XG5cbiRjb250ZW50LXNlY3Rpb24tZG9uZTogZmFsc2U7XG5cbi8vIE91dHB1dCBzZWN0aW9ucyB3aXRoIHRoZWlyIGNvbG9ycywgYm9yZGVycyBhbmQgYmFja2dyb3VuZHNcbkBmb3IgJGkgZnJvbSAxIHRocm91Z2ggbGVuZ3RoKCR1bmlxdWUtc2VjdGlvbnMpIHtcbiAgICAkc2VjdGlvbi1iYWNrZ3JvdW5kOiBudGgoJHVuaXF1ZS1iYWNrZ3JvdW5kcywgJGkpO1xuICAgICRzZWN0aW9uLWxpbmstY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRwcmltYXJ5LWNvbG9yLCAkc2VjdGlvbi1iYWNrZ3JvdW5kKTtcblxuICAgIC8vIFNldCB0ZXh0IGNvbG9yXG4gICAgJHNlY3Rpb24tdGV4dC1jb2xvcjogaWYoXG4gICAgICAgIGx1bWEoJHNlY3Rpb24tYmFja2dyb3VuZCkgPCA1MCxcbiAgICAgICAgYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGxpZ2h0LWJvZHktdGV4dCwgJHNlY3Rpb24tYmFja2dyb3VuZCksXG4gICAgICAgIGFjY2Vzc2libGUtbHVtaW5hbmNlKCRkYXJrLWJvZHktdGV4dCwgJHNlY3Rpb24tYmFja2dyb3VuZClcbiAgICApO1xuXG4gICAgLy8gRW1waGFzaXMgdGV4dCBjb2xvciBzaG91bGQgYmUgb2YgY3JlYXRlciBjb250cmFzdCB0aGFuIHRoZSB0ZXh0IGNvbG9yXG4gICAgJHNlY3Rpb24tZW1waGFzaXMtdGV4dC1jb2xvcjogaWYoXG4gICAgICAgIGx1bWEoJHNlY3Rpb24tdGV4dC1jb2xvcikgPiBsdW1hKCRzZWN0aW9uLWJhY2tncm91bmQpLFxuICAgICAgICBsaWdodGVuKCRzZWN0aW9uLXRleHQtY29sb3IsIDclKSxcbiAgICAgICAgZGFya2VuKCRzZWN0aW9uLXRleHQtY29sb3IsIDclKVxuICAgICk7XG5cbiAgICAvLyBMaW5rIGhvdmVyIGNvbG9yIHNob3VsZCBiZSBvZiBncmVhdGVyIGNvbnRyYXN0IHRoYW4gdGhlIGxpbmsgY29sb3JcbiAgICAkc2VjdGlvbi1saW5rLWhvdmVyLWNvbG9yOiBpZihcbiAgICAgICAgbHVtYSgkc2VjdGlvbi1saW5rLWNvbG9yKSA+IGx1bWEoJHNlY3Rpb24tYmFja2dyb3VuZCksXG4gICAgICAgIGxpZ2h0ZW4oJHNlY3Rpb24tbGluay1jb2xvciwgMTAlKSxcbiAgICAgICAgZGFya2VuKCRzZWN0aW9uLWxpbmstY29sb3IsIDEwJSlcbiAgICApO1xuXG4gICAgJSN7bnRoKCR1bmlxdWUtc2VjdGlvbnMsICRpKX0tcGxhY2Vob2xkZXJfX3N1YnRsZSB7XG4gICAgICAgIGNvbG9yOiAkc2VjdGlvbi10ZXh0LWNvbG9yO1xuICAgIH1cblxuICAgICUje250aCgkdW5pcXVlLXNlY3Rpb25zLCAkaSl9LXBsYWNlaG9sZGVyX19uZXV0cmFsLWxpbmsge1xuICAgICAgICBjb2xvcjogJHNlY3Rpb24tdGV4dC1jb2xvcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzLFxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNlY3Rpb24tZW1waGFzaXMtdGV4dC1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICUje250aCgkdW5pcXVlLXNlY3Rpb25zLCAkaSl9LXBsYWNlaG9sZGVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNlY3Rpb24tYmFja2dyb3VuZDtcbiAgICAgICAgY29sb3I6ICRzZWN0aW9uLXRleHQtY29sb3I7XG5cbiAgICAgICAgaDEsIGgyLCBoMywgaDQsIGg1LCBoNiB7XG4gICAgICAgICAgICBjb2xvcjogJHNlY3Rpb24tZW1waGFzaXMtdGV4dC1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIExpbmtzIG5vdCBvbiBhIGNvbG9yZWQgYmFja2dyb3VuZCBhbmQgbm90IHNldCB0byBuZXV0cmFsIHNob3VsZCBiZSBhY2Nlc3NpYmxlXG4gICAgICAgIGEge1xuICAgICAgICAgICAgY29sb3I6ICRzZWN0aW9uLWxpbmstY29sb3I7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNlY3Rpb24tbGluay1ob3Zlci1jb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5zdWJ0bGUge1xuICAgICAgICAgICAgY29sb3I6ICRzZWN0aW9uLXRleHQtY29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICAuYm9yZGVyZWQge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKCRzZWN0aW9uLXRleHQtY29sb3IsICRib3JkZXItZGVmYXVsdC1vcGFjaXR5KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5ib3JkZXJlZC0taGFyZCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoJHNlY3Rpb24tdGV4dC1jb2xvciwgJGJvcmRlci1kZWZhdWx0LWhvdmVyLW9wYWNpdHkpO1xuICAgICAgICB9XG5cbiAgICAgICAgYS5ib3JkZXJlZDpob3ZlcixcbiAgICAgICAgYS5ib3JkZXJlZDpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoJHNlY3Rpb24tdGV4dC1jb2xvciwgJGJvcmRlci1oYXJkLW9wYWNpdHkpO1xuICAgICAgICB9XG5cbiAgICAgICAgYS5ib3JkZXJlZC0taGFyZDpob3ZlcixcbiAgICAgICAgYS5ib3JkZXJlZC0taGFyZDpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoJHNlY3Rpb24tdGV4dC1jb2xvciwgJGJvcmRlci1oYXJkLWhvdmVyLW9wYWNpdHkpO1xuICAgICAgICB9XG5cbiAgICAgICAgLm5ldXRyYWwtbGluayxcbiAgICAgICAgLm5ldXRyYWwtbGluayA+IGEge1xuICAgICAgICAgICAgY29sb3I6ICRzZWN0aW9uLXRleHQtY29sb3I7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2VjdGlvbi1lbXBoYXNpcy10ZXh0LWNvbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gRGVmaW5lIC5wcmltYXJ5LWNvbG9yLCAuc2Vjb25kYXJ5LWNvbG9yIGV0Yy5cbiAgICAgICAgQGZvciAkaiBmcm9tIDEgdGhyb3VnaCBsZW5ndGgoJGNvbG9yLWVsZW1lbnRzKSB7XG4gICAgICAgICAgICAkY29sb3ItZWxlbWVudC1iZzogYWNjZXNzaWJsZS1sdW1pbmFuY2UobnRoKCRjb2xvci1lbGVtZW50cy1jb2xvcnMsICRqKSwgJHNlY3Rpb24tYmFja2dyb3VuZCwgMS41KTtcbiAgICAgICAgICAgICRjb2xvci1lbGVtZW50LWJnLWxpbms6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCNmZmYsICRjb2xvci1lbGVtZW50LWJnKTtcblxuICAgICAgICAgICAgLiN7bnRoKCRjb2xvci1lbGVtZW50cywgJGopfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKG50aCgkY29sb3ItZWxlbWVudHMtY29sb3JzLCAkaiksICRzZWN0aW9uLWJhY2tncm91bmQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBOZWVkIGxlc3MgY29udHJhc3QgYWRqdXN0bWVudCBmb3IgaXRlbXMgd2l0aCBsYXJnZSB0ZXh0ICgxOHB4IG9yIG1vcmUpXG4gICAgICAgICAgICAuI3tudGgoJGNvbG9yLWVsZW1lbnRzLCAkail9LWJpZyB7XG4gICAgICAgICAgICAgICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKG50aCgkY29sb3ItZWxlbWVudHMtY29sb3JzLCAkaiksICRzZWN0aW9uLWJhY2tncm91bmQsIDMpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuI3tudGgoJGNvbG9yLWVsZW1lbnRzLCAkail9LWJnIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItZWxlbWVudC1iZztcbiAgICAgICAgICAgICAgICBjb2xvcjogJGNvbG9yLWVsZW1lbnQtYmctbGluaztcblxuICAgICAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGNvbG9yLWVsZW1lbnQtYmctbGluaztcblxuICAgICAgICAgICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkY29sb3ItZWxlbWVudC1iZy1saW5rO1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbigkY29sb3ItZWxlbWVudC1iZywgMTAlKVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRjb2xvci1lbGVtZW50LWJnLWxpbms7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oJGNvbG9yLWVsZW1lbnQtYmcsIDEwJSlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIC8vIEZvdW5kYXRpb24gYnV0dG9uIGNvbXBvbmVudHMgdXNlIHByaW1hcnkgYmcgYnkgZGVmYXVsdCBvbiBidXR0b25zXG4gICAgICAgIGJ1dHRvbiwgLmJ1dHRvbiB7XG4gICAgICAgICAgICAvLyBUaGlzIGlzIGhvdyB0aGUgdmFyaWFibGUgaXMgZGVmaW5lZCBpbnRlcm5hbGx5IGluIEZvdW5kYXRpb25cbiAgICAgICAgICAgIC8vIFdlIGRvbid0IGRlZmluZSB0aGlzIHZhcmlhYmxlIGluIG91ciB0aGVtZXMgeWV0LCBzbyB3ZSBoYXZlIGl0IGhlcmUgaWYvdW50aWwgd2UgZG9cbiAgICAgICAgICAgICRidXR0b24tY29sb3ItYmc6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuICAgICAgICAgICAgXG4gICAgICAgICAgICAkX2J1dHRvbi1jb2xvci1iZzogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGJ1dHRvbi1jb2xvci1iZywgJHNlY3Rpb24tYmFja2dyb3VuZCwgMS41KTtcbiAgICAgICAgICAgICRfYnV0dG9uLWNvbG9yLWZvbnQ6IGFjY2Vzc2libGUtbHVtaW5hbmNlKGlmKGx1bWEoJF9idXR0b24tY29sb3ItYmcpIDwgNTAsICNmZmYsICMwMDApLCAkX2J1dHRvbi1jb2xvci1iZyk7XG4gICAgICAgICAgICAkX2J1dHRvbi1ob3Zlci1jb2xvci1iZzogYWNjZXNzaWJsZS1sdW1pbmFuY2UoYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGhvdmVyLWNvbG9yLCAkX2J1dHRvbi1jb2xvci1iZywgMS4yNSksICRzZWN0aW9uLWJhY2tncm91bmQsIDIpO1xuICAgICAgICAgICAgJF9idXR0b24taG92ZXItY29sb3ItdGV4dDogYWNjZXNzaWJsZS1sdW1pbmFuY2UoaWYobHVtYSgkX2J1dHRvbi1ob3Zlci1jb2xvci1iZykgPCA1MCwgI2ZmZiwgIzAwMCksICRfYnV0dG9uLWhvdmVyLWNvbG9yLWJnKTtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgJiwgXG4gICAgICAgICAgICAmLmRpc2FibGVkLFxuICAgICAgICAgICAgJi5kaXNhYmxlZDpob3ZlcixcbiAgICAgICAgICAgICYuZGlzYWJsZWQ6Zm9jdXMsIFxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmW2Rpc2FibGVkXTpob3ZlcixcbiAgICAgICAgICAgICZbZGlzYWJsZWRdOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkX2J1dHRvbi1jb2xvci1iZztcbiAgICAgICAgICAgICAgICBjb2xvcjogJF9idXR0b24tY29sb3ItZm9udDtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJGJ1dHRvbi1mb250LXdlaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkX2J1dHRvbi1ob3Zlci1jb2xvci10ZXh0O1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRfYnV0dG9uLWhvdmVyLWNvbG9yLWJnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIFxuICAgIC8vIFBsYWNlaG9sZGVycyBzZWxlY3RvcnMgeW91IGNhbiB1c2UgdmlhIEBleHRlbmQgJTxwbGFjZWhvbGRlciBuYW1lPiBpbiB5b3VyIGNvbnRlbnQgc2VjdGlvbi5cbiAgICBAaWYgJGNvbnRlbnQtc2VjdGlvbi1kb25lID09IGZhbHNlIGFuZCAkc2VjdGlvbi1iYWNrZ3JvdW5kID09ICRjb250ZW50LWJnIHtcbiAgICAgICAgJWNvbnRlbnRfX2JvcmRlcmVkIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgkc2VjdGlvbi10ZXh0LWNvbG9yLCAwLjIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJWNvbnRlbnRfX2JvcmRlcmVkLS1oYXJkIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgkc2VjdGlvbi10ZXh0LWNvbG9yLCAwLjUpO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAvLyBDb2xvciBlbGVtZW50cyBwbGFjZWhvbGRlcnNcbiAgICAgICAgQGZvciAkaiBmcm9tIDEgdGhyb3VnaCBsZW5ndGgoJGNvbG9yLWVsZW1lbnRzKSB7XG4gICAgICAgICAgICAkY29sb3ItZWxlbWVudC1iZzogYWNjZXNzaWJsZS1sdW1pbmFuY2UobnRoKCRjb2xvci1lbGVtZW50cy1jb2xvcnMsICRqKSwgJGNvbnRlbnQtYmcsIDEuNSk7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgICVjb250ZW50X18je250aCgkY29sb3ItZWxlbWVudHMsICRqKX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZShudGgoJGNvbG9yLWVsZW1lbnRzLWNvbG9ycywgJGopLCAkY29udGVudC1iZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICVjb250ZW50X18je250aCgkY29sb3ItZWxlbWVudHMsICRqKX0tYmlnIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UobnRoKCRjb2xvci1lbGVtZW50cy1jb2xvcnMsICRqKSwgJGNvbnRlbnQtYmcsIDMpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAlY29udGVudF9fI3tudGgoJGNvbG9yLWVsZW1lbnRzLCAkail9LWJnIHtcbiAgICAgICAgICAgICAgICAkY29sb3ItZWxlbWVudC1jb2xvcjogaWYobHVtYSgkY29sb3ItZWxlbWVudC1iZykgPCA1MCwgI2ZmZiwgIzAwMCk7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWVsZW1lbnQtYmc7XG4gICAgICAgICAgICAgICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRjb2xvci1lbGVtZW50LWNvbG9yLCAkY29sb3ItZWxlbWVudC1iZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAkY29udGVudC1zZWN0aW9uLWRvbmU6IHRydWU7XG4gICAgfVxufVxuXG4vLyBFYXRpbmcgb3VyIG93biBkb2dmb29kLCB5b3UgY2FuIEBleHRlbmQgJWNvbnRlbnQtcGxhY2Vob2xkZXIgd2hlcmV2ZXIgeW91IHdhbnRcbkBmb3IgJGkgZnJvbSAxIHRocm91Z2ggbGVuZ3RoKCRzZWN0aW9uLXNlbGVjdG9ycykge1xuICAgIFxuICAgICN7bnRoKCRzZWN0aW9uLXNlbGVjdG9ycywgJGkpfSB7XG4gICAgICAgIEBleHRlbmQgJSN7bnRoKCRzaGFyZWQtc2VjdGlvbnMsICRpKX0tcGxhY2Vob2xkZXI7XG4gICAgfVxuXG4gICAgQGlmIG50aCgkc2hhcmVkLXNlY3Rpb25zLCAkaSkgIT0gbnRoKCRzZWN0aW9ucywgJGkpIHtcbiAgICAgICAgLy8gQWxsb3dpbmcgY29tYmluZWQgcGxhY2Vob2xkZXJzIHRvIGJlIHVzZWRcbiAgICAgICAgJSN7bnRoKCRzZWN0aW9ucywgJGkpfS1wbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBAZXh0ZW5kICUje250aCgkc2hhcmVkLXNlY3Rpb25zLCAkaSl9LXBsYWNlaG9sZGVyO1xuICAgICAgICB9XG4gICAgICAgICUje250aCgkc2VjdGlvbnMsICRpKX0tcGxhY2Vob2xkZXJfX3N1YnRsZSB7XG4gICAgICAgICAgICBAZXh0ZW5kICUje250aCgkc2hhcmVkLXNlY3Rpb25zLCAkaSl9LXBsYWNlaG9sZGVyX19zdWJ0bGU7XG4gICAgICAgIH1cbiAgICAgICAgJSN7bnRoKCRzZWN0aW9ucywgJGkpfS1wbGFjZWhvbGRlcl9fbmV1dHJhbC1saW5rIHtcbiAgICAgICAgICAgIEBleHRlbmQgJSN7bnRoKCRzaGFyZWQtc2VjdGlvbnMsICRpKX0tcGxhY2Vob2xkZXJfX25ldXRyYWwtbGluaztcbiAgICAgICAgfVxuICAgIH1cblxufVxuIiwiLyohIG5vcm1hbGl6ZS5jc3MgdjMuMC4yIHwgTUlUIExpY2Vuc2UgfCBnaXQuaW8vbm9ybWFsaXplICovXG5cbi8qKlxuICogMS4gU2V0IGRlZmF1bHQgZm9udCBmYW1pbHkgdG8gc2Fucy1zZXJpZi5cbiAqIDIuIFByZXZlbnQgaU9TIHRleHQgc2l6ZSBhZGp1c3QgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlLCB3aXRob3V0IGRpc2FibGluZ1xuICogICAgdXNlciB6b29tLlxuICovXG5cbmh0bWwge1xuICBmb250LWZhbWlseTogc2Fucy1zZXJpZjsgLyogMSAqL1xuICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgZGVmYXVsdCBtYXJnaW4uXG4gKi9cblxuYm9keSB7XG4gIG1hcmdpbjogMDtcbn1cblxuLyogSFRNTDUgZGlzcGxheSBkZWZpbml0aW9uc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYW55IEhUTUw1IGVsZW1lbnQgaW4gSUUgOC85LlxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGBkZXRhaWxzYCBvciBgc3VtbWFyeWAgaW4gSUUgMTAvMTFcbiAqIGFuZCBGaXJlZm94LlxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGBtYWluYCBpbiBJRSAxMS5cbiAqL1xuXG5hcnRpY2xlLFxuYXNpZGUsXG5kZXRhaWxzLFxuZmlnY2FwdGlvbixcbmZpZ3VyZSxcbmZvb3RlcixcbmhlYWRlcixcbmhncm91cCxcbm1haW4sXG5tZW51LFxubmF2LFxuc2VjdGlvbixcbnN1bW1hcnkge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IGBpbmxpbmUtYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgaW4gSUUgOC85LlxuICogMi4gTm9ybWFsaXplIHZlcnRpY2FsIGFsaWdubWVudCBvZiBgcHJvZ3Jlc3NgIGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuICovXG5cbmF1ZGlvLFxuY2FudmFzLFxucHJvZ3Jlc3MsXG52aWRlbyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgLyogMSAqL1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBQcmV2ZW50IG1vZGVybiBicm93c2VycyBmcm9tIGRpc3BsYXlpbmcgYGF1ZGlvYCB3aXRob3V0IGNvbnRyb2xzLlxuICogUmVtb3ZlIGV4Y2VzcyBoZWlnaHQgaW4gaU9TIDUgZGV2aWNlcy5cbiAqL1xuXG5hdWRpbzpub3QoW2NvbnRyb2xzXSkge1xuICBkaXNwbGF5OiBub25lO1xuICBoZWlnaHQ6IDA7XG59XG5cbi8qKlxuICogQWRkcmVzcyBgW2hpZGRlbl1gIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LzEwLlxuICogSGlkZSB0aGUgYHRlbXBsYXRlYCBlbGVtZW50IGluIElFIDgvOS8xMSwgU2FmYXJpLCBhbmQgRmlyZWZveCA8IDIyLlxuICovXG5cbltoaWRkZW5dLFxudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vKiBMaW5rc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBjb2xvciBmcm9tIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cbiAqL1xuXG5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi8qKlxuICogSW1wcm92ZSByZWFkYWJpbGl0eSB3aGVuIGZvY3VzZWQgYW5kIGFsc28gbW91c2UgaG92ZXJlZCBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuYTphY3RpdmUsXG5hOmhvdmVyIHtcbiAgb3V0bGluZTogMDtcbn1cblxuLyogVGV4dC1sZXZlbCBzZW1hbnRpY3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS8xMC8xMSwgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICovXG5cbmFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxlIHNldCB0byBgYm9sZGVyYCBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cblxuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBTYWZhcmkgYW5kIENocm9tZS5cbiAqL1xuXG5kZm4ge1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbi8qKlxuICogQWRkcmVzcyB2YXJpYWJsZSBgaDFgIGZvbnQtc2l6ZSBhbmQgbWFyZ2luIHdpdGhpbiBgc2VjdGlvbmAgYW5kIGBhcnRpY2xlYFxuICogY29udGV4dHMgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICovXG5cbmgxIHtcbiAgZm9udC1zaXplOiAyZW07XG4gIG1hcmdpbjogMC42N2VtIDA7XG59XG5cbi8qKlxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS5cbiAqL1xuXG5tYXJrIHtcbiAgYmFja2dyb3VuZDogI2ZmMDtcbiAgY29sb3I6ICMwMDA7XG59XG5cbi8qKlxuICogQWRkcmVzcyBpbmNvbnNpc3RlbnQgYW5kIHZhcmlhYmxlIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc21hbGwge1xuICBmb250LXNpemU6IDgwJTtcbn1cblxuLyoqXG4gKiBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBhZmZlY3RpbmcgYGxpbmUtaGVpZ2h0YCBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuc3VwIHtcbiAgdG9wOiAtMC41ZW07XG59XG5cbnN1YiB7XG4gIGJvdHRvbTogLTAuMjVlbTtcbn1cblxuLyogRW1iZWRkZWQgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgYm9yZGVyIHdoZW4gaW5zaWRlIGBhYCBlbGVtZW50IGluIElFIDgvOS8xMC5cbiAqL1xuXG5pbWcge1xuICBib3JkZXI6IDA7XG59XG5cbi8qKlxuICogQ29ycmVjdCBvdmVyZmxvdyBub3QgaGlkZGVuIGluIElFIDkvMTAvMTEuXG4gKi9cblxuc3ZnOm5vdCg6cm9vdCkge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4vKiBHcm91cGluZyBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEFkZHJlc3MgbWFyZ2luIG5vdCBwcmVzZW50IGluIElFIDgvOSBhbmQgU2FmYXJpLlxuICovXG5cbmZpZ3VyZSB7XG4gIG1hcmdpbjogMWVtIDQwcHg7XG59XG5cbi8qKlxuICogQWRkcmVzcyBkaWZmZXJlbmNlcyBiZXR3ZWVuIEZpcmVmb3ggYW5kIG90aGVyIGJyb3dzZXJzLlxuICovXG5cbmhyIHtcbiAgLW1vei1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIGhlaWdodDogMDtcbn1cblxuLyoqXG4gKiBDb250YWluIG92ZXJmbG93IGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5wcmUge1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuLyoqXG4gKiBBZGRyZXNzIG9kZCBgZW1gLXVuaXQgZm9udCBzaXplIHJlbmRlcmluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuY29kZSxcbmtiZCxcbnByZSxcbnNhbXAge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuXG4vKiBGb3Jtc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBLbm93biBsaW1pdGF0aW9uOiBieSBkZWZhdWx0LCBDaHJvbWUgYW5kIFNhZmFyaSBvbiBPUyBYIGFsbG93IHZlcnkgbGltaXRlZFxuICogc3R5bGluZyBvZiBgc2VsZWN0YCwgdW5sZXNzIGEgYGJvcmRlcmAgcHJvcGVydHkgaXMgc2V0LlxuICovXG5cbi8qKlxuICogMS4gQ29ycmVjdCBjb2xvciBub3QgYmVpbmcgaW5oZXJpdGVkLlxuICogICAgS25vd24gaXNzdWU6IGFmZmVjdHMgY29sb3Igb2YgZGlzYWJsZWQgZWxlbWVudHMuXG4gKiAyLiBDb3JyZWN0IGZvbnQgcHJvcGVydGllcyBub3QgYmVpbmcgaW5oZXJpdGVkLlxuICogMy4gQWRkcmVzcyBtYXJnaW5zIHNldCBkaWZmZXJlbnRseSBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cblxuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgY29sb3I6IGluaGVyaXQ7IC8qIDEgKi9cbiAgZm9udDogaW5oZXJpdDsgLyogMiAqL1xuICBtYXJnaW46IDA7IC8qIDMgKi9cbn1cblxuLyoqXG4gKiBBZGRyZXNzIGBvdmVyZmxvd2Agc2V0IHRvIGBoaWRkZW5gIGluIElFIDgvOS8xMC8xMS5cbiAqL1xuXG5idXR0b24ge1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIGluY29uc2lzdGVudCBgdGV4dC10cmFuc2Zvcm1gIGluaGVyaXRhbmNlIGZvciBgYnV0dG9uYCBhbmQgYHNlbGVjdGAuXG4gKiBBbGwgb3RoZXIgZm9ybSBjb250cm9sIGVsZW1lbnRzIGRvIG5vdCBpbmhlcml0IGB0ZXh0LXRyYW5zZm9ybWAgdmFsdWVzLlxuICogQ29ycmVjdCBgYnV0dG9uYCBzdHlsZSBpbmhlcml0YW5jZSBpbiBGaXJlZm94LCBJRSA4LzkvMTAvMTEsIGFuZCBPcGVyYS5cbiAqIENvcnJlY3QgYHNlbGVjdGAgc3R5bGUgaW5oZXJpdGFuY2UgaW4gRmlyZWZveC5cbiAqL1xuXG5idXR0b24sXG5zZWxlY3Qge1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLyoqXG4gKiAxLiBBdm9pZCB0aGUgV2ViS2l0IGJ1ZyBpbiBBbmRyb2lkIDQuMC4qIHdoZXJlICgyKSBkZXN0cm95cyBuYXRpdmUgYGF1ZGlvYFxuICogICAgYW5kIGB2aWRlb2AgY29udHJvbHMuXG4gKiAyLiBDb3JyZWN0IGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgYGlucHV0YCB0eXBlcyBpbiBpT1MuXG4gKiAzLiBJbXByb3ZlIHVzYWJpbGl0eSBhbmQgY29uc2lzdGVuY3kgb2YgY3Vyc29yIHN0eWxlIGJldHdlZW4gaW1hZ2UtdHlwZVxuICogICAgYGlucHV0YCBhbmQgb3RoZXJzLlxuICovXG5cbmJ1dHRvbixcbmh0bWwgaW5wdXRbdHlwZT1cImJ1dHRvblwiXSwgLyogMSAqL1xuaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxuaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAyICovXG4gIGN1cnNvcjogcG9pbnRlcjsgLyogMyAqL1xufVxuXG4vKipcbiAqIFJlLXNldCBkZWZhdWx0IGN1cnNvciBmb3IgZGlzYWJsZWQgZWxlbWVudHMuXG4gKi9cblxuYnV0dG9uW2Rpc2FibGVkXSxcbmh0bWwgaW5wdXRbZGlzYWJsZWRdIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4vKipcbiAqIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBib3JkZXIgaW4gRmlyZWZveCA0Ky5cbiAqL1xuXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5pbnB1dDo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlcjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIEZpcmVmb3ggNCsgc2V0dGluZyBgbGluZS1oZWlnaHRgIG9uIGBpbnB1dGAgdXNpbmcgYCFpbXBvcnRhbnRgIGluXG4gKiB0aGUgVUEgc3R5bGVzaGVldC5cbiAqL1xuXG5pbnB1dCB7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG59XG5cbi8qKlxuICogSXQncyByZWNvbW1lbmRlZCB0aGF0IHlvdSBkb24ndCBhdHRlbXB0IHRvIHN0eWxlIHRoZXNlIGVsZW1lbnRzLlxuICogRmlyZWZveCdzIGltcGxlbWVudGF0aW9uIGRvZXNuJ3QgcmVzcGVjdCBib3gtc2l6aW5nLCBwYWRkaW5nLCBvciB3aWR0aC5cbiAqXG4gKiAxLiBBZGRyZXNzIGJveCBzaXppbmcgc2V0IHRvIGBjb250ZW50LWJveGAgaW4gSUUgOC85LzEwLlxuICogMi4gUmVtb3ZlIGV4Y2VzcyBwYWRkaW5nIGluIElFIDgvOS8xMC5cbiAqL1xuXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sXG5pbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gIHBhZGRpbmc6IDA7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBGaXggdGhlIGN1cnNvciBzdHlsZSBmb3IgQ2hyb21lJ3MgaW5jcmVtZW50L2RlY3JlbWVudCBidXR0b25zLiBGb3IgY2VydGFpblxuICogYGZvbnQtc2l6ZWAgdmFsdWVzIG9mIHRoZSBgaW5wdXRgLCBpdCBjYXVzZXMgdGhlIGN1cnNvciBzdHlsZSBvZiB0aGVcbiAqIGRlY3JlbWVudCBidXR0b24gdG8gY2hhbmdlIGZyb20gYGRlZmF1bHRgIHRvIGB0ZXh0YC5cbiAqL1xuXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bztcbn1cblxuLyoqXG4gKiAxLiBBZGRyZXNzIGBhcHBlYXJhbmNlYCBzZXQgdG8gYHNlYXJjaGZpZWxkYCBpbiBTYWZhcmkgYW5kIENocm9tZS5cbiAqIDIuIEFkZHJlc3MgYGJveC1zaXppbmdgIHNldCB0byBgYm9yZGVyLWJveGAgaW4gU2FmYXJpIGFuZCBDaHJvbWVcbiAqICAgIChpbmNsdWRlIGAtbW96YCB0byBmdXR1cmUtcHJvb2YpLlxuICovXG5cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLyogMSAqL1xuICAtbW96LWJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAtd2Via2l0LWJveC1zaXppbmc6IGNvbnRlbnQtYm94OyAvKiAyICovXG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xufVxuXG4vKipcbiAqIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBzZWFyY2ggY2FuY2VsIGJ1dHRvbiBpbiBTYWZhcmkgYW5kIENocm9tZSBvbiBPUyBYLlxuICogU2FmYXJpIChidXQgbm90IENocm9tZSkgY2xpcHMgdGhlIGNhbmNlbCBidXR0b24gd2hlbiB0aGUgc2VhcmNoIGlucHV0IGhhc1xuICogcGFkZGluZyAoYW5kIGB0ZXh0ZmllbGRgIGFwcGVhcmFuY2UpLlxuICovXG5cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuXG4vKipcbiAqIERlZmluZSBjb25zaXN0ZW50IGJvcmRlciwgbWFyZ2luLCBhbmQgcGFkZGluZy5cbiAqL1xuXG5maWVsZHNldCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjMGMwYzA7XG4gIG1hcmdpbjogMCAycHg7XG4gIHBhZGRpbmc6IDAuMzVlbSAwLjYyNWVtIDAuNzVlbTtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IGBjb2xvcmAgbm90IGJlaW5nIGluaGVyaXRlZCBpbiBJRSA4LzkvMTAvMTEuXG4gKiAyLiBSZW1vdmUgcGFkZGluZyBzbyBwZW9wbGUgYXJlbid0IGNhdWdodCBvdXQgaWYgdGhleSB6ZXJvIG91dCBmaWVsZHNldHMuXG4gKi9cblxubGVnZW5kIHtcbiAgYm9yZGVyOiAwOyAvKiAxICovXG4gIHBhZGRpbmc6IDA7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUgOC85LzEwLzExLlxuICovXG5cbnRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi8qKlxuICogRG9uJ3QgaW5oZXJpdCB0aGUgYGZvbnQtd2VpZ2h0YCAoYXBwbGllZCBieSBhIHJ1bGUgYWJvdmUpLlxuICogTk9URTogdGhlIGRlZmF1bHQgY2Fubm90IHNhZmVseSBiZSBjaGFuZ2VkIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIE9TIFguXG4gKi9cblxub3B0Z3JvdXAge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLyogVGFibGVzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSBtb3N0IHNwYWNpbmcgYmV0d2VlbiB0YWJsZSBjZWxscy5cbiAqL1xuXG50YWJsZSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIGJvcmRlci1zcGFjaW5nOiAwO1xufVxuXG50ZCxcbnRoIHtcbiAgcGFkZGluZzogMDtcbn1cbiIsIkBpbXBvcnQgXCJtaXhpbnMvYWNjZXNzaWJpbGl0eVwiO1xuQGltcG9ydCBcIm1peGlucy9jZW50ZXJcIjtcbkBpbXBvcnQgXCJtaXhpbnMvaGFpcmxpbmUtYm9yZGVyXCI7XG5AaW1wb3J0IFwibWl4aW5zL250aC1jaGlsZHJlblwiO1xuQGltcG9ydCBcIm1peGlucy90cmFuc2Zvcm1cIjsiLCJAbWl4aW4gYWNjZXNzaWJsZS1oaWRlKCkge1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICAgIGhlaWdodDogMXB4O1xuICAgIG1hcmdpbjogLTFweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxcHg7XG59XG5cbkBtaXhpbiBhY2Nlc3NpYmxlLXNob3coJGNsaXA6IGF1dG8sICRoZWlnaHQ6IGF1dG8sICRtYXJnaW46IDAsICRvdmVyZmxvdzogdmlzaWJsZSwgJHBvc2l0aW9uOiByZWxhdGl2ZSwgJHdpZHRoOiBhdXRvLCAkcGFkZGluZzogMCwgJGJvcmRlcjogbm9uZSkge1xuICAgIGJvcmRlcjogJGJvcmRlcjtcbiAgICBjbGlwOiAkY2xpcDtcbiAgICBoZWlnaHQ6ICRoZWlnaHQ7XG4gICAgbWFyZ2luOiAkbWFyZ2luO1xuICAgIG92ZXJmbG93OiAkb3ZlcmZsb3c7XG4gICAgcGFkZGluZzogJHBhZGRpbmc7XG4gICAgcG9zaXRpb246ICRwb3NpdGlvbjtcbiAgICB3aWR0aDogJHdpZHRoO1xufSIsIkBtaXhpbiBjZW50ZXIoJHh5Onh5KSB7XG4gIEBpZiAkeHkgPT0geHkge1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0b3A6IDUwJTtcbiAgICBib3R0b206IGF1dG87XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNTAlKSk7XG4gIH1cbiAgQGVsc2UgaWYgJHh5ID09IHgge1xuICAgIGxlZnQ6IDUwJTtcbiAgICByaWdodDogYXV0bztcbiAgICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWCgtNTAlKSk7XG4gIH1cbiAgQGVsc2UgaWYgJHh5ID09IHkge1xuICAgIHRvcDogNTAlO1xuICAgIGJvdHRvbTogYXV0bztcbiAgICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWSgtNTAlKSk7XG4gIH1cbn0iLCIvLyAxcHggb24gcmV0aW5hLCBhbmQgMXB4IG9uIG5vbi1yZXRpbmEsIHNpbmNlIGJvcmRlci13aWR0aDogMC41cHg7IGRvZXMgbm90IHdvcmsgaW4gQ1NTXG5AbWl4aW4gaGFpcmxpbmUtYm9yZGVyKCRoYWlybGluZS1jb2xvciwgJHBvc2l0aW9uOiB0b3AgbGVmdCwgJHZlcnRpY2FsOiBmYWxzZSkge1xuICAgIFxuICAgIGJhY2tncm91bmQtcG9zaXRpb246ICRwb3NpdGlvbjsgXG4gICAgQGlmICR2ZXJ0aWNhbCB7XG4gICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteTtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScxJyBoZWlnaHQ9JzEwMCc+PHJlY3QgZmlsbD0nI3skaGFpcmxpbmUtY29sb3J9JyB4PScwJyB5PScwJyB3aWR0aD0nMC41JyBoZWlnaHQ9JzEwMCcvPjwvc3ZnPlwiKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzEwMCcgaGVpZ2h0PScxJz48cmVjdCBmaWxsPScjeyRoYWlybGluZS1jb2xvcn0nIHg9JzAnIHk9JzAnIHdpZHRoPScxMDAnIGhlaWdodD0nMC41Jy8+PC9zdmc+XCIpO1xuICAgIH1cbiAgICBcbn0iLCIvLyBVc2UgdGhpcyB0byBzZWxlY3QgaXRlbXMgZGVwZW5kaW5nIG9uIGhvdyBtYW55IHNpYmxpbmdzIHRoZXJlIGFyZS5cbi8vIFZlcnkgdXNlZnVsIHRvIHN0eWxlIGl0ZW1zIGRlcGVuZGluZyBvbiBob3cgbWFueSBpdGVtcyB0aGVyZSBhcmVcbi8vIGZvciBpbnN0YW5jZSwgMSBpdGVtIG50aC1jaGlsZHJlbigxKSwgbW9yZSB0aGFuIDUgbnRoLWNoaWxkcmVuKFwibis1XCIpXG5cbkBtaXhpbiBudGgtY2hpbGRyZW4oJG50aCkge1xuICAgICY6Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoI3skbnRofSksXG4gICAgJjpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCgjeyRudGh9KSB+ICYge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG4iLCJAbWl4aW4gdHJhbnNsYXRlM2QoJHR4OjAsJHR5OjAsJHR6OjAsICRwZXJzcGVjdGl2ZTpmYWxzZSkge1xuICAgIFxuICAgIEBpZiAkcGVyc3BlY3RpdmUge1xuICAgICAgICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2Zvcm0sIHRyYW5zbGF0ZSgkdHgsJHR5KSAkcGVyc3BlY3RpdmUsIG1zKTtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZTNkKCR0eCwgJHR5LCAkdHopICRwZXJzcGVjdGl2ZSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zZm9ybSwgdHJhbnNsYXRlKCR0eCwkdHkpLCBtcyk7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGUzZCgkdHgsICR0eSwgJHR6KSk7XG4gICAgfVxufSIsIi8vIFZhcmlhYmxlIHNldHRpbmdzIGZvciAvYWRkb25zL3ByZWZpeGVyLnNjc3NcbiRwcmVmaXgtZm9yLXdlYmtpdDogICAgdHJ1ZSAhZGVmYXVsdDtcbiRwcmVmaXgtZm9yLW1vemlsbGE6ICAgdHJ1ZSAhZGVmYXVsdDtcbiRwcmVmaXgtZm9yLW1pY3Jvc29mdDogdHJ1ZSAhZGVmYXVsdDtcbiRwcmVmaXgtZm9yLW9wZXJhOiAgICAgdHJ1ZSAhZGVmYXVsdDtcbiRwcmVmaXgtZm9yLXNwZWM6ICAgICAgdHJ1ZSAhZGVmYXVsdDsgLy8gcmVxdWlyZWQgZm9yIGtleWZyYW1lIG1peGluXG4iLCIvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4vLyBFeGFtcGxlOiBAaW5jbHVkZSBwcmVmaXhlcihib3JkZXItcmFkaXVzLCAkcmFkaWksIHdlYmtpdCBtcyBzcGVjKTtcbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbi8vIFZhcmlhYmxlcyBsb2NhdGVkIGluIC9zZXR0aW5ncy9fcHJlZml4ZXIuc2Nzc1xuXG5AbWl4aW4gcHJlZml4ZXIgKCRwcm9wZXJ0eSwgJHZhbHVlLCAkcHJlZml4ZXMpIHtcbiAgQGVhY2ggJHByZWZpeCBpbiAkcHJlZml4ZXMge1xuICAgIEBpZiAkcHJlZml4ID09IHdlYmtpdCB7XG4gICAgICBAaWYgJHByZWZpeC1mb3Itd2Via2l0IHtcbiAgICAgICAgLXdlYmtpdC0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2UgaWYgJHByZWZpeCA9PSBtb3oge1xuICAgICAgQGlmICRwcmVmaXgtZm9yLW1vemlsbGEge1xuICAgICAgICAtbW96LSN7JHByb3BlcnR5fTogJHZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSBpZiAkcHJlZml4ID09IG1zIHtcbiAgICAgIEBpZiAkcHJlZml4LWZvci1taWNyb3NvZnQge1xuICAgICAgICAtbXMtI3skcHJvcGVydHl9OiAkdmFsdWU7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIGlmICRwcmVmaXggPT0gbyB7XG4gICAgICBAaWYgJHByZWZpeC1mb3Itb3BlcmEge1xuICAgICAgICAtby0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2UgaWYgJHByZWZpeCA9PSBzcGVjIHtcbiAgICAgIEBpZiAkcHJlZml4LWZvci1zcGVjIHtcbiAgICAgICAgI3skcHJvcGVydHl9OiAkdmFsdWU7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlICB7XG4gICAgICBAd2FybiBcIlVucmVjb2duaXplZCBwcmVmaXg6ICN7JHByZWZpeH1cIjtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGRpc2FibGUtcHJlZml4LWZvci1hbGwoKSB7XG4gICRwcmVmaXgtZm9yLXdlYmtpdDogICAgZmFsc2U7XG4gICRwcmVmaXgtZm9yLW1vemlsbGE6ICAgZmFsc2U7XG4gICRwcmVmaXgtZm9yLW1pY3Jvc29mdDogZmFsc2U7XG4gICRwcmVmaXgtZm9yLW9wZXJhOiAgICAgZmFsc2U7XG4gICRwcmVmaXgtZm9yLXNwZWM6ICAgICAgZmFsc2U7XG59XG4iLCIvLyBodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLWFuaW1hdGlvbnMvI3RoZS1hbmltYXRpb24tbmFtZS1wcm9wZXJ0eS1cbi8vIEVhY2ggb2YgdGhlc2UgbWl4aW5zIHN1cHBvcnQgY29tbWEgc2VwYXJhdGVkIGxpc3RzIG9mIHZhbHVlcywgd2hpY2ggYWxsb3dzIGRpZmZlcmVudCB0cmFuc2l0aW9ucyBmb3IgaW5kaXZpZHVhbCBwcm9wZXJ0aWVzIHRvIGJlIGRlc2NyaWJlZCBpbiBhIHNpbmdsZSBzdHlsZSBydWxlLiBFYWNoIHZhbHVlIGluIHRoZSBsaXN0IGNvcnJlc3BvbmRzIHRvIHRoZSB2YWx1ZSBhdCB0aGF0IHNhbWUgcG9zaXRpb24gaW4gdGhlIG90aGVyIHByb3BlcnRpZXMuXG5cbi8vIE9mZmljaWFsIGFuaW1hdGlvbiBzaG9ydGhhbmQgcHJvcGVydHkuXG5AbWl4aW4gYW5pbWF0aW9uICgkYW5pbWF0aW9ucy4uLikge1xuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24sICRhbmltYXRpb25zLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG4vLyBJbmRpdmlkdWFsIEFuaW1hdGlvbiBQcm9wZXJ0aWVzXG5AbWl4aW4gYW5pbWF0aW9uLW5hbWUgKCRuYW1lcy4uLikge1xuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tbmFtZSwgJG5hbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5cbkBtaXhpbiBhbmltYXRpb24tZHVyYXRpb24gKCR0aW1lcy4uLikge1xuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tZHVyYXRpb24sICR0aW1lcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuXG5AbWl4aW4gYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbiAoJG1vdGlvbnMuLi4pIHtcbi8vIGVhc2UgfCBsaW5lYXIgfCBlYXNlLWluIHwgZWFzZS1vdXQgfCBlYXNlLWluLW91dFxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uLCAkbW90aW9ucywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuXG5AbWl4aW4gYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCAoJHZhbHVlcy4uLikge1xuLy8gaW5maW5pdGUgfCA8bnVtYmVyPlxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24taXRlcmF0aW9uLWNvdW50LCAkdmFsdWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5cbkBtaXhpbiBhbmltYXRpb24tZGlyZWN0aW9uICgkZGlyZWN0aW9ucy4uLikge1xuLy8gbm9ybWFsIHwgYWx0ZXJuYXRlXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1kaXJlY3Rpb24sICRkaXJlY3Rpb25zLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5cbkBtaXhpbiBhbmltYXRpb24tcGxheS1zdGF0ZSAoJHN0YXRlcy4uLikge1xuLy8gcnVubmluZyB8IHBhdXNlZFxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tcGxheS1zdGF0ZSwgJHN0YXRlcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuXG5AbWl4aW4gYW5pbWF0aW9uLWRlbGF5ICgkdGltZXMuLi4pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWRlbGF5LCAkdGltZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cblxuQG1peGluIGFuaW1hdGlvbi1maWxsLW1vZGUgKCRtb2Rlcy4uLikge1xuLy8gbm9uZSB8IGZvcndhcmRzIHwgYmFja3dhcmRzIHwgYm90aFxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tZmlsbC1tb2RlLCAkbW9kZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG4iLCIvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4vLyBCYWNrZmFjZS12aXNpYmlsaXR5IG1peGluXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG5AbWl4aW4gYmFja2ZhY2UtdmlzaWJpbGl0eSgkdmlzaWJpbGl0eSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihiYWNrZmFjZS12aXNpYmlsaXR5LCAkdmlzaWJpbGl0eSwgd2Via2l0IHNwZWMpO1xufVxuIiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuLy8gU2hvcnRoYW5kIEJvcmRlci1yYWRpdXMgbWl4aW5zXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG5AbWl4aW4gYm9yZGVyLXRvcC1yYWRpdXMoJHJhZGlpKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJvcmRlci10b3AtbGVmdC1yYWRpdXMsICRyYWRpaSwgc3BlYyk7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJvcmRlci10b3AtcmlnaHQtcmFkaXVzLCAkcmFkaWksIHNwZWMpO1xufVxuXG5AbWl4aW4gYm9yZGVyLWJvdHRvbS1yYWRpdXMoJHJhZGlpKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXMsICRyYWRpaSwgc3BlYyk7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzLCAkcmFkaWksIHNwZWMpO1xufVxuXG5AbWl4aW4gYm9yZGVyLWxlZnQtcmFkaXVzKCRyYWRpaSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3JkZXItdG9wLWxlZnQtcmFkaXVzLCAkcmFkaWksIHNwZWMpO1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzLCAkcmFkaWksIHNwZWMpO1xufVxuXG5AbWl4aW4gYm9yZGVyLXJpZ2h0LXJhZGl1cygkcmFkaWkpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm9yZGVyLXRvcC1yaWdodC1yYWRpdXMsICRyYWRpaSwgc3BlYyk7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzLCAkcmFkaWksIHNwZWMpO1xufVxuIiwiLy8gQ1NTMyBGbGV4aWJsZSBCb3ggTW9kZWwgYW5kIHByb3BlcnR5IGRlZmF1bHRzXG5cbi8vIEN1c3RvbSBzaG9ydGhhbmQgbm90YXRpb24gZm9yIGZsZXhib3hcbkBtaXhpbiBib3goJG9yaWVudDogaW5saW5lLWF4aXMsICRwYWNrOiBzdGFydCwgJGFsaWduOiBzdHJldGNoKSB7XG4gIEBpbmNsdWRlIGRpc3BsYXktYm94O1xuICBAaW5jbHVkZSBib3gtb3JpZW50KCRvcmllbnQpO1xuICBAaW5jbHVkZSBib3gtcGFjaygkcGFjayk7XG4gIEBpbmNsdWRlIGJveC1hbGlnbigkYWxpZ24pO1xufVxuXG5AbWl4aW4gZGlzcGxheS1ib3gge1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgZGlzcGxheTogLW1vei1ib3g7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94OyAvLyBJRSAxMFxuICBkaXNwbGF5OiBib3g7XG59XG5cbkBtaXhpbiBib3gtb3JpZW50KCRvcmllbnQ6IGlubGluZS1heGlzKSB7XG4vLyBob3Jpem9udGFsfHZlcnRpY2FsfGlubGluZS1heGlzfGJsb2NrLWF4aXN8aW5oZXJpdFxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtb3JpZW50LCAkb3JpZW50LCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYm94LXBhY2soJHBhY2s6IHN0YXJ0KSB7XG4vLyBzdGFydHxlbmR8Y2VudGVyfGp1c3RpZnlcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LXBhY2ssICRwYWNrLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1wYWNrOiAkcGFjazsgLy8gSUUgMTBcbn1cblxuQG1peGluIGJveC1hbGlnbigkYWxpZ246IHN0cmV0Y2gpIHtcbi8vIHN0YXJ0fGVuZHxjZW50ZXJ8YmFzZWxpbmV8c3RyZXRjaFxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtYWxpZ24sICRhbGlnbiwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtYWxpZ246ICRhbGlnbjsgLy8gSUUgMTBcbn1cblxuQG1peGluIGJveC1kaXJlY3Rpb24oJGRpcmVjdGlvbjogbm9ybWFsKSB7XG4vLyBub3JtYWx8cmV2ZXJzZXxpbmhlcml0XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1kaXJlY3Rpb24sICRkaXJlY3Rpb24sIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LWRpcmVjdGlvbjogJGRpcmVjdGlvbjsgLy8gSUUgMTBcbn1cblxuQG1peGluIGJveC1saW5lcygkbGluZXM6IHNpbmdsZSkge1xuLy8gc2luZ2xlfG11bHRpcGxlXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1saW5lcywgJGxpbmVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYm94LW9yZGluYWwtZ3JvdXAoJGludDogMSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtb3JkaW5hbC1ncm91cCwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtb3JkZXI6ICRpbnQ7IC8vIElFIDEwXG59XG5cbkBtaXhpbiBib3gtZmxleCgkdmFsdWU6IDAuMCkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZmxleCwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleDogJHZhbHVlOyAvLyBJRSAxMFxufVxuXG5AbWl4aW4gYm94LWZsZXgtZ3JvdXAoJGludDogMSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZmxleC1ncm91cCwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuLy8gQ1NTMyBGbGV4aWJsZSBCb3ggTW9kZWwgYW5kIHByb3BlcnR5IGRlZmF1bHRzXG4vLyBVbmlmaWVkIGF0dHJpYnV0ZXMgZm9yIDIwMDksIDIwMTEsIGFuZCAyMDEyIGZsYXZvdXJzLlxuXG4vLyAyMDA5IC0gZGlzcGxheSAoYm94IHwgaW5saW5lLWJveClcbi8vIDIwMTEgLSBkaXNwbGF5IChmbGV4Ym94IHwgaW5saW5lLWZsZXhib3gpXG4vLyAyMDEyIC0gZGlzcGxheSAoZmxleCB8IGlubGluZS1mbGV4KVxuQG1peGluIGRpc3BsYXkoJHZhbHVlKSB7XG4vLyAgZmxleCB8IGlubGluZS1mbGV4XG4gICAgQGlmICR2YWx1ZSA9PSBcImZsZXhcIiB7XG4gICAgICAgIC8vIDIwMDlcbiAgICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgICAgIGRpc3BsYXk6IC1tb3otYm94O1xuICAgICAgICBkaXNwbGF5OiBib3g7XG5cbiAgICAgICAgLy8gMjAxMlxuICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gICAgICAgIGRpc3BsYXk6IC1tb3otZmxleDtcbiAgICAgICAgZGlzcGxheTogLW1zLWZsZXhib3g7IC8vIDIwMTEgKElFIDEwKVxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgIH1cblxuICAgIEBlbHNlaWYgJHZhbHVlID09IFwiaW5saW5lLWZsZXhcIiB7XG4gICAgICAgIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWJveDtcbiAgICAgICAgZGlzcGxheTogLW1vei1pbmxpbmUtYm94O1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYm94O1xuXG4gICAgICAgIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWZsZXg7XG4gICAgICAgIGRpc3BsYXk6IC1tb3otaW5saW5lLWZsZXg7XG4gICAgICAgIGRpc3BsYXk6IC1tcy1pbmxpbmUtZmxleGJveDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgfVxuXG4gICAgQGVsc2Uge1xuICAgICAgICBkaXNwbGF5OiAkdmFsdWU7XG4gICAgfVxufVxuXG4vLyAyMDA5IC0gYm94LWZsZXggKGludGVnZXIpXG4vLyAyMDExIC0gZmxleCAoZGVjaW1hbCB8IHdpZHRoIGRlY2ltYWwpXG4vLyAyMDEyIC0gZmxleCAoaW50ZWdlciBpbnRlZ2VyIHdpZHRoKVxuQG1peGluIGZsZXgoJHZhbHVlKSB7XG5cbiAgICAvLyBHcmFiIGZsZXgtZ3JvdyBmb3Igb2xkZXIgYnJvd3NlcnMuXG4gICAgJGZsZXgtZ3JvdzogbnRoKCR2YWx1ZSwgMSk7XG5cbiAgICAvLyAyMDA5XG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWZsZXgsICRmbGV4LWdyb3csIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgICAvLyAyMDExIChJRSAxMCksIDIwMTJcbiAgICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgc3BlYyk7XG59XG5cbi8vIDIwMDkgLSBib3gtb3JpZW50ICggaG9yaXpvbnRhbCB8IHZlcnRpY2FsIHwgaW5saW5lLWF4aXMgfCBibG9jay1heGlzKVxuLy8gICAgICAtIGJveC1kaXJlY3Rpb24gKG5vcm1hbCB8IHJldmVyc2UpICAgICAgXG4vLyAyMDExIC0gZmxleC1kaXJlY3Rpb24gKHJvdyB8IHJvdy1yZXZlcnNlIHwgY29sdW1uIHwgY29sdW1uLXJldmVyc2UpXG4vLyAyMDEyIC0gZmxleC1kaXJlY3Rpb24gKHJvdyB8IHJvdy1yZXZlcnNlIHwgY29sdW1uIHwgY29sdW1uLXJldmVyc2UpXG5AbWl4aW4gZmxleC1kaXJlY3Rpb24oJHZhbHVlOiByb3cpIHtcblxuICAgIC8vIEFsdCB2YWx1ZXMuXG4gICAgJHZhbHVlLTIwMDk6ICR2YWx1ZTtcbiAgICAkdmFsdWUtMjAxMTogJHZhbHVlO1xuICAgICRkaXJlY3Rpb246IFwibm9ybWFsXCI7XG5cbiAgICBAaWYgJHZhbHVlID09IHJvdyB7XG4gICAgICAgICR2YWx1ZS0yMDA5OiBob3Jpem9udGFsO1xuICAgIH1cblxuICAgIEBlbHNlaWYgJHZhbHVlID09IFwicm93LXJldmVyc2VcIiB7XG4gICAgICAgICR2YWx1ZS0yMDA5OiBob3Jpem9udGFsO1xuICAgICAgICAkZGlyZWN0aW9uOiByZXZlcnNlO1xuICAgIH1cblxuICAgIEBlbHNlaWYgJHZhbHVlID09IGNvbHVtbiB7XG4gICAgICAgICR2YWx1ZS0yMDA5OiB2ZXJ0aWNhbDtcbiAgICB9XG5cbiAgICBAZWxzZWlmICR2YWx1ZSA9PSBcImNvbHVtbi1yZXZlcnNlXCIge1xuICAgICAgICAkdmFsdWUtMjAwOTogdmVydGljYWw7XG4gICAgICAgICRkaXJlY3Rpb246IHJldmVyc2U7XG4gICAgfVxuXG4gICAgLy8gMjAwOVxuICAgIEBpbmNsdWRlIHByZWZpeGVyKGJveC1vcmllbnQsICR2YWx1ZS0yMDA5LCB3ZWJraXQgbW96IHNwZWMpO1xuICAgIEBpZiAkZGlyZWN0aW9uID09IFwicmV2ZXJzZVwiIHtcbiAgICAgICAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWRpcmVjdGlvbiwgJGRpcmVjdGlvbiwgd2Via2l0IG1veiBzcGVjKTtcbiAgICB9XG5cbiAgICAvLyAyMDEyXG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1kaXJlY3Rpb24sICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcblxuICAgIC8vIDIwMTEgKElFIDEwKVxuICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xufVxuXG4vLyAyMDA5IC0gYm94LWxpbmVzIChzaW5nbGUgfCBtdWx0aXBsZSlcbi8vIDIwMTEgLSBmbGV4LXdyYXAgKG5vd3JhcCB8IHdyYXAgfCB3cmFwLXJldmVyc2UpXG4vLyAyMDEyIC0gZmxleC13cmFwIChub3dyYXAgfCB3cmFwIHwgd3JhcC1yZXZlcnNlKVxuQG1peGluIGZsZXgtd3JhcCgkdmFsdWU6IG5vd3JhcCkge1xuXG4gICAgLy8gQWx0IHZhbHVlcy5cbiAgICAkYWx0LXZhbHVlOiAkdmFsdWU7XG4gICAgQGlmICR2YWx1ZSA9PSBub3dyYXAge1xuICAgICAgICAkYWx0LXZhbHVlOiBzaW5nbGU7XG4gICAgfVxuXG4gICAgQGVsc2VpZiAkdmFsdWUgPT0gd3JhcCB7XG4gICAgICAgICRhbHQtdmFsdWU6IG11bHRpcGxlO1xuICAgIH1cblxuICAgIEBlbHNlaWYgJHZhbHVlID09IFwid3JhcC1yZXZlcnNlXCIge1xuICAgICAgICAkYWx0LXZhbHVlOiBtdWx0aXBsZTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBwcmVmaXhlcihib3gtbGluZXMsICRhbHQtdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC13cmFwLCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgc3BlYyk7XG59XG5cbi8vIDIwMDkgLSBUT0RPOiBwYXJzZSB2YWx1ZXMgaW50byBmbGV4LWRpcmVjdGlvbi9mbGV4LXdyYXBcbi8vIDIwMTEgLSBUT0RPOiBwYXJzZSB2YWx1ZXMgaW50byBmbGV4LWRpcmVjdGlvbi9mbGV4LXdyYXBcbi8vIDIwMTIgLSBmbGV4LWZsb3cgKGZsZXgtZGlyZWN0aW9uIHx8IGZsZXgtd3JhcClcbkBtaXhpbiBmbGV4LWZsb3coJHZhbHVlKSB7XG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1mbG93LCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbi8vIDIwMDkgLSBib3gtb3JkaW5hbC1ncm91cCAoaW50ZWdlcilcbi8vIDIwMTEgLSBmbGV4LW9yZGVyIChpbnRlZ2VyKVxuLy8gMjAxMiAtIG9yZGVyIChpbnRlZ2VyKVxuQG1peGluIG9yZGVyKCRpbnQ6IDApIHtcbiAgICAvLyAyMDA5XG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LW9yZGluYWwtZ3JvdXAsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgICAvLyAyMDEyXG4gICAgQGluY2x1ZGUgcHJlZml4ZXIob3JkZXIsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgICAvLyAyMDExIChJRSAxMClcbiAgICAtbXMtZmxleC1vcmRlcjogJGludDtcbn1cblxuLy8gMjAxMiAtIGZsZXgtZ3JvdyAobnVtYmVyKVxuQG1peGluIGZsZXgtZ3JvdygkbnVtYmVyOiAwKSB7XG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1ncm93LCAkbnVtYmVyLCB3ZWJraXQgbW96IHNwZWMpO1xuICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAkbnVtYmVyO1xufVxuXG4vLyAyMDEyIC0gZmxleC1zaHJpbmsgKG51bWJlcilcbkBtaXhpbiBmbGV4LXNocmluaygkbnVtYmVyOiAxKSB7XG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1zaHJpbmssICRudW1iZXIsIHdlYmtpdCBtb3ogc3BlYyk7XG4gICAgLW1zLWZsZXgtbmVnYXRpdmU6ICRudW1iZXI7XG59XG5cbi8vIDIwMTIgLSBmbGV4LWJhc2lzIChudW1iZXIpXG5AbWl4aW4gZmxleC1iYXNpcygkd2lkdGg6IGF1dG8pIHtcbiAgICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LWJhc2lzLCAkd2lkdGgsIHdlYmtpdCBtb3ogc3BlYyk7XG4gICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6ICR3aWR0aDtcbn1cblxuLy8gMjAwOSAtIGJveC1wYWNrIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGp1c3RpZnkpXG4vLyAyMDExIC0gZmxleC1wYWNrIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGp1c3RpZnkpXG4vLyAyMDEyIC0ganVzdGlmeS1jb250ZW50IChmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBzcGFjZS1iZXR3ZWVuIHwgc3BhY2UtYXJvdW5kKVxuQG1peGluIGp1c3RpZnktY29udGVudCAoJHZhbHVlOiBmbGV4LXN0YXJ0KSB7XG5cbiAgICAvLyBBbHQgdmFsdWVzLlxuICAgICRhbHQtdmFsdWU6ICR2YWx1ZTtcbiAgICBAaWYgJHZhbHVlID09IFwiZmxleC1zdGFydFwiIHtcbiAgICAgICAgJGFsdC12YWx1ZTogc3RhcnQ7XG4gICAgfVxuXG4gICAgQGVsc2VpZiAkdmFsdWUgPT0gXCJmbGV4LWVuZFwiIHtcbiAgICAgICAgJGFsdC12YWx1ZTogZW5kO1xuICAgIH1cblxuICAgIEBlbHNlaWYgJHZhbHVlID09IFwic3BhY2UtYmV0d2VlblwiIHtcbiAgICAgICAgJGFsdC12YWx1ZToganVzdGlmeTtcbiAgICB9XG5cbiAgICBAZWxzZWlmICR2YWx1ZSA9PSBcInNwYWNlLWFyb3VuZFwiIHtcbiAgICAgICAgJGFsdC12YWx1ZTogY2VudGVyO1xuICAgIH1cblxuICAgIC8vIDIwMDlcbiAgICBAaW5jbHVkZSBwcmVmaXhlcihib3gtcGFjaywgJGFsdC12YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcblxuICAgIC8vIDIwMTJcbiAgICBAaW5jbHVkZSBwcmVmaXhlcihqdXN0aWZ5LWNvbnRlbnQsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xuXG4gICAgLy8gMjAxMSAoSUUgMTApXG4gICAgLW1zLWZsZXgtcGFjazogJGFsdC12YWx1ZTtcbn1cblxuLy8gMjAwOSAtIGJveC1hbGlnbiAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXG4vLyAyMDExIC0gZmxleC1hbGlnbiAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXG4vLyAyMDEyIC0gYWxpZ24taXRlbXMgKGZsZXgtc3RhcnQgfCBmbGV4LWVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcbkBtaXhpbiBhbGlnbi1pdGVtcygkdmFsdWU6IHN0cmV0Y2gpIHtcblxuICAgICRhbHQtdmFsdWU6ICR2YWx1ZTtcblxuICAgIEBpZiAkdmFsdWUgPT0gXCJmbGV4LXN0YXJ0XCIge1xuICAgICAgICAkYWx0LXZhbHVlOiBzdGFydDtcbiAgICB9ICAgIFxuXG4gICAgQGVsc2VpZiAkdmFsdWUgPT0gXCJmbGV4LWVuZFwiIHtcbiAgICAgICAgJGFsdC12YWx1ZTogZW5kO1xuICAgIH1cblxuICAgIC8vIDIwMDlcbiAgICBAaW5jbHVkZSBwcmVmaXhlcihib3gtYWxpZ24sICRhbHQtdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgICAvLyAyMDEyXG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoYWxpZ24taXRlbXMsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xuICAgIFxuICAgIC8vIDIwMTEgKElFIDEwKVxuICAgIC1tcy1mbGV4LWFsaWduOiAkYWx0LXZhbHVlOyAgICBcbn1cblxuLy8gMjAxMSAtIGZsZXgtaXRlbS1hbGlnbiAoYXV0byB8IHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxuLy8gMjAxMiAtIGFsaWduLXNlbGYgKGF1dG8gfCBmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXG5AbWl4aW4gYWxpZ24tc2VsZigkdmFsdWU6IGF1dG8pIHtcblxuICAgICR2YWx1ZS0yMDExOiAkdmFsdWU7XG4gICAgQGlmICR2YWx1ZSA9PSBcImZsZXgtc3RhcnRcIiB7XG4gICAgICAgICR2YWx1ZS0yMDExOiBzdGFydDtcbiAgICB9ICAgIFxuXG4gICAgQGVsc2VpZiAkdmFsdWUgPT0gXCJmbGV4LWVuZFwiIHtcbiAgICAgICAgJHZhbHVlLTIwMTE6IGVuZDtcbiAgICB9XG5cbiAgICAvLyAyMDEyXG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoYWxpZ24tc2VsZiwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gICAgLy8gMjAxMSAoSUUgMTApXG4gICAgLW1zLWZsZXgtaXRlbS1hbGlnbjogJHZhbHVlLTIwMTE7XG59XG5cbi8vIDIwMTEgLSBmbGV4LWxpbmUtcGFjayAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBqdXN0aWZ5IHwgZGlzdHJpYnV0ZSB8IHN0cmV0Y2gpXG4vLyAyMDEyIC0gYWxpZ24tY29udGVudCAoZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgc3BhY2UtYmV0d2VlbiB8IHNwYWNlLWFyb3VuZCB8IHN0cmV0Y2gpXG5AbWl4aW4gYWxpZ24tY29udGVudCgkdmFsdWU6IHN0cmV0Y2gpIHtcblxuICAgICR2YWx1ZS0yMDExOiAkdmFsdWU7XG4gICAgQGlmICR2YWx1ZSA9PSBcImZsZXgtc3RhcnRcIiB7XG4gICAgICAgICR2YWx1ZS0yMDExOiBzdGFydDtcbiAgICB9ICAgIFxuXG4gICAgQGVsc2VpZiAkdmFsdWUgPT0gXCJmbGV4LWVuZFwiIHtcbiAgICAgICAgJHZhbHVlLTIwMTE6IGVuZDtcbiAgICB9XG5cbiAgICBAZWxzZWlmICR2YWx1ZSA9PSBcInNwYWNlLWJldHdlZW5cIiB7XG4gICAgICAgICR2YWx1ZS0yMDExOiBqdXN0aWZ5O1xuICAgIH1cblxuICAgIEBlbHNlaWYgJHZhbHVlID09IFwic3BhY2UtYXJvdW5kXCIge1xuICAgICAgICAkdmFsdWUtMjAxMTogZGlzdHJpYnV0ZTtcbiAgICB9XG5cbiAgICAvLyAyMDEyXG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoYWxpZ24tY29udGVudCwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gICAgLy8gMjAxMSAoSUUgMTApXG4gICAgLW1zLWZsZXgtbGluZS1wYWNrOiAkdmFsdWUtMjAxMTtcbn1cblxuIiwiLy8gQWRkcyBrZXlmcmFtZXMgYmxvY2tzIGZvciBzdXBwb3J0ZWQgcHJlZml4ZXMsIHJlbW92aW5nIHJlZHVuZGFudCBwcmVmaXhlcyBpbiB0aGUgYmxvY2sncyBjb250ZW50XG5AbWl4aW4ga2V5ZnJhbWVzKCRuYW1lKSB7XG4gICRvcmlnaW5hbC1wcmVmaXgtZm9yLXdlYmtpdDogICAgJHByZWZpeC1mb3Itd2Via2l0O1xuICAkb3JpZ2luYWwtcHJlZml4LWZvci1tb3ppbGxhOiAgICRwcmVmaXgtZm9yLW1vemlsbGE7XG4gICRvcmlnaW5hbC1wcmVmaXgtZm9yLW1pY3Jvc29mdDogJHByZWZpeC1mb3ItbWljcm9zb2Z0O1xuICAkb3JpZ2luYWwtcHJlZml4LWZvci1vcGVyYTogICAgICRwcmVmaXgtZm9yLW9wZXJhO1xuICAkb3JpZ2luYWwtcHJlZml4LWZvci1zcGVjOiAgICAgICRwcmVmaXgtZm9yLXNwZWM7XG5cbiAgQGlmICRvcmlnaW5hbC1wcmVmaXgtZm9yLXdlYmtpdCB7XG4gICAgQGluY2x1ZGUgZGlzYWJsZS1wcmVmaXgtZm9yLWFsbCgpO1xuICAgICRwcmVmaXgtZm9yLXdlYmtpdDogdHJ1ZTtcbiAgICBALXdlYmtpdC1rZXlmcmFtZXMgI3skbmFtZX0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG4gIEBpZiAkb3JpZ2luYWwtcHJlZml4LWZvci1tb3ppbGxhIHtcbiAgICBAaW5jbHVkZSBkaXNhYmxlLXByZWZpeC1mb3ItYWxsKCk7XG4gICAgJHByZWZpeC1mb3ItbW96aWxsYTogdHJ1ZTtcbiAgICBALW1vei1rZXlmcmFtZXMgI3skbmFtZX0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG5cbiAgJHByZWZpeC1mb3Itd2Via2l0OiAgICAkb3JpZ2luYWwtcHJlZml4LWZvci13ZWJraXQ7XG4gICRwcmVmaXgtZm9yLW1vemlsbGE6ICAgJG9yaWdpbmFsLXByZWZpeC1mb3ItbW96aWxsYTtcbiAgJHByZWZpeC1mb3ItbWljcm9zb2Z0OiAkb3JpZ2luYWwtcHJlZml4LWZvci1taWNyb3NvZnQ7XG4gICRwcmVmaXgtZm9yLW9wZXJhOiAgICAgJG9yaWdpbmFsLXByZWZpeC1mb3Itb3BlcmE7XG4gICRwcmVmaXgtZm9yLXNwZWM6ICAgICAgJG9yaWdpbmFsLXByZWZpeC1mb3Itc3BlYztcblxuICBAaWYgJG9yaWdpbmFsLXByZWZpeC1mb3Itc3BlYyB7XG4gICAgQGtleWZyYW1lcyAjeyRuYW1lfSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbi8vIEJhY2tncm91bmQtaW1hZ2UgcHJvcGVydHkgZm9yIGFkZGluZyBtdWx0aXBsZSBiYWNrZ3JvdW5kIGltYWdlcyB3aXRoXG4vLyBncmFkaWVudHMsIG9yIGZvciBzdHJpbmdpbmcgbXVsdGlwbGUgZ3JhZGllbnRzIHRvZ2V0aGVyLlxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuXG5AbWl4aW4gYmFja2dyb3VuZC1pbWFnZSgkaW1hZ2VzLi4uKSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IF9hZGQtcHJlZml4KCRpbWFnZXMsIHdlYmtpdCk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IF9hZGQtcHJlZml4KCRpbWFnZXMpO1xufVxuXG5AZnVuY3Rpb24gX2FkZC1wcmVmaXgoJGltYWdlcywgJHZlbmRvcjogZmFsc2UpIHtcbiAgJGltYWdlcy1wcmVmaXhlZDogKCk7XG4gICRncmFkaWVudC1wb3NpdGlvbnM6IGZhbHNlO1xuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIGxlbmd0aCgkaW1hZ2VzKSB7XG4gICAgJHR5cGU6IHR5cGUtb2YobnRoKCRpbWFnZXMsICRpKSk7IC8vIEdldCB0eXBlIG9mIHZhcmlhYmxlIC0gTGlzdCBvciBTdHJpbmdcblxuICAgIC8vIElmIHZhcmlhYmxlIGlzIGEgbGlzdCAtIEdyYWRpZW50XG4gICAgQGlmICR0eXBlID09IGxpc3Qge1xuICAgICAgJGdyYWRpZW50LXR5cGU6IG50aChudGgoJGltYWdlcywgJGkpLCAxKTsgLy8gbGluZWFyIG9yIHJhZGlhbFxuICAgICAgJGdyYWRpZW50LXBvczogbnVsbDtcbiAgICAgICRncmFkaWVudC1hcmdzOiBudWxsO1xuXG4gICAgICBAaWYgKCRncmFkaWVudC10eXBlID09IGxpbmVhcikgb3IgKCRncmFkaWVudC10eXBlID09IHJhZGlhbCkge1xuICAgICAgICAkZ3JhZGllbnQtcG9zOiAgbnRoKG50aCgkaW1hZ2VzLCAkaSksIDIpOyAvLyBHZXQgZ3JhZGllbnQgcG9zaXRpb25cbiAgICAgICAgJGdyYWRpZW50LWFyZ3M6IG50aChudGgoJGltYWdlcywgJGkpLCAzKTsgLy8gR2V0IGFjdHVhbCBncmFkaWVudCAocmVkLCBibHVlKVxuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAkZ3JhZGllbnQtYXJnczogbnRoKG50aCgkaW1hZ2VzLCAkaSksIDIpOyAvLyBHZXQgYWN0dWFsIGdyYWRpZW50IChyZWQsIGJsdWUpXG4gICAgICB9XG5cbiAgICAgICRncmFkaWVudC1wb3NpdGlvbnM6IF9ncmFkaWVudC1wb3NpdGlvbnMtcGFyc2VyKCRncmFkaWVudC10eXBlLCAkZ3JhZGllbnQtcG9zKTtcbiAgICAgICRncmFkaWVudDogX3JlbmRlci1ncmFkaWVudHMoJGdyYWRpZW50LXBvc2l0aW9ucywgJGdyYWRpZW50LWFyZ3MsICRncmFkaWVudC10eXBlLCAkdmVuZG9yKTtcbiAgICAgICRpbWFnZXMtcHJlZml4ZWQ6IGFwcGVuZCgkaW1hZ2VzLXByZWZpeGVkLCAkZ3JhZGllbnQsIGNvbW1hKTtcbiAgICB9XG4gICAgLy8gSWYgdmFyaWFibGUgaXMgYSBzdHJpbmcgLSBJbWFnZVxuICAgIEBlbHNlIGlmICR0eXBlID09IHN0cmluZyB7XG4gICAgICAkaW1hZ2VzLXByZWZpeGVkOiBqb2luKCRpbWFnZXMtcHJlZml4ZWQsIG50aCgkaW1hZ2VzLCAkaSksIGNvbW1hKTtcbiAgICB9XG4gIH1cbiAgQHJldHVybiAkaW1hZ2VzLXByZWZpeGVkO1xufVxuXG4vL0V4YW1wbGVzOlxuICAvL0BpbmNsdWRlIGJhY2tncm91bmQtaW1hZ2UobGluZWFyLWdyYWRpZW50KHRvcCwgb3JhbmdlLCByZWQpKTtcbiAgLy9AaW5jbHVkZSBiYWNrZ3JvdW5kLWltYWdlKHJhZGlhbC1ncmFkaWVudCg1MCUgNTAlLCBjb3ZlciBjaXJjbGUsIG9yYW5nZSwgcmVkKSk7XG4gIC8vQGluY2x1ZGUgYmFja2dyb3VuZC1pbWFnZSh1cmwoXCIvaW1hZ2VzL2EucG5nXCIpLCBsaW5lYXItZ3JhZGllbnQob3JhbmdlLCByZWQpKTtcbiAgLy9AaW5jbHVkZSBiYWNrZ3JvdW5kLWltYWdlKHVybChcImltYWdlLnBuZ1wiKSwgbGluZWFyLWdyYWRpZW50KG9yYW5nZSwgcmVkKSwgdXJsKFwiaW1hZ2UucG5nXCIpKTtcbiAgLy9AaW5jbHVkZSBiYWNrZ3JvdW5kLWltYWdlKGxpbmVhci1ncmFkaWVudChoc2xhKDAsIDEwMCUsIDEwMCUsIDAuMjUpIDAlLCBoc2xhKDAsIDEwMCUsIDEwMCUsIDAuMDgpIDUwJSwgdHJhbnNwYXJlbnQgNTAlKSwgbGluZWFyLWdyYWRpZW50KG9yYW5nZSwgcmVkKSk7XG4iLCJAbWl4aW4gbGluZWFyLWdyYWRpZW50KCRwb3MsICRHMSwgJEcyOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkRzM6IG51bGwsICRHNDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJEc1OiBudWxsLCAkRzY6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRHNzogbnVsbCwgJEc4OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkRzk6IG51bGwsICRHMTA6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRmYWxsYmFjazogbnVsbCkge1xuICAvLyBEZXRlY3Qgd2hhdCB0eXBlIG9mIHZhbHVlIGV4aXN0cyBpbiAkcG9zXG4gICRwb3MtdHlwZTogdHlwZS1vZihudGgoJHBvcywgMSkpO1xuICAkcG9zLXNwZWM6IG51bGw7XG4gICRwb3MtZGVncmVlOiBudWxsO1xuXG4gIC8vIElmICRwb3MgaXMgbWlzc2luZyBmcm9tIG1peGluLCByZWFzc2lnbiB2YXJzIGFuZCBhZGQgZGVmYXVsdCBwb3NpdGlvblxuICBAaWYgKCRwb3MtdHlwZSA9PSBjb2xvcikgb3IgKG50aCgkcG9zLCAxKSA9PSBcInRyYW5zcGFyZW50XCIpICB7XG4gICAgJEcxMDogJEc5OyAkRzk6ICRHODsgJEc4OiAkRzc7ICRHNzogJEc2OyAkRzY6ICRHNTtcbiAgICAgJEc1OiAkRzQ7ICRHNDogJEczOyAkRzM6ICRHMjsgJEcyOiAkRzE7ICRHMTogJHBvcztcbiAgICAgJHBvczogbnVsbDtcbiAgfVxuXG4gIEBpZiAkcG9zIHtcbiAgICAkcG9zaXRpb25zOiBfbGluZWFyLXBvc2l0aW9ucy1wYXJzZXIoJHBvcyk7XG4gICAgJHBvcy1kZWdyZWU6IG50aCgkcG9zaXRpb25zLCAxKTtcbiAgICAkcG9zLXNwZWM6ICAgbnRoKCRwb3NpdGlvbnMsIDIpO1xuICB9XG5cbiAgJGZ1bGw6ICRHMSwgJEcyLCAkRzMsICRHNCwgJEc1LCAkRzYsICRHNywgJEc4LCAkRzksICRHMTA7XG5cbiAgLy8gU2V0ICRHMSBhcyB0aGUgZGVmYXVsdCBmYWxsYmFjayBjb2xvclxuICAkZmFsbGJhY2stY29sb3I6IG50aCgkRzEsIDEpO1xuXG4gIC8vIElmICRmYWxsYmFjayBpcyBhIGNvbG9yIHVzZSB0aGF0IGNvbG9yIGFzIHRoZSBmYWxsYmFjayBjb2xvclxuICBAaWYgKHR5cGUtb2YoJGZhbGxiYWNrKSA9PSBjb2xvcikgb3IgKCRmYWxsYmFjayA9PSBcInRyYW5zcGFyZW50XCIpIHtcbiAgICAkZmFsbGJhY2stY29sb3I6ICRmYWxsYmFjaztcbiAgfVxuXG4gIGJhY2tncm91bmQtY29sb3I6ICRmYWxsYmFjay1jb2xvcjtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoJHBvcy1kZWdyZWUgJGZ1bGwpOyAvLyBTYWZhcmkgNS4xKywgQ2hyb21lXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVucXVvdGUoXCJsaW5lYXItZ3JhZGllbnQoI3skcG9zLXNwZWN9I3skZnVsbH0pXCIpO1xufVxuIiwiQG1peGluIHBlcnNwZWN0aXZlKCRkZXB0aDogbm9uZSkge1xuICAvLyBub25lIHwgPGxlbmd0aD5cbiAgQGluY2x1ZGUgcHJlZml4ZXIocGVyc3BlY3RpdmUsICRkZXB0aCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIHBlcnNwZWN0aXZlLW9yaWdpbigkdmFsdWU6IDUwJSA1MCUpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIocGVyc3BlY3RpdmUtb3JpZ2luLCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG4iLCJAbWl4aW4gdHJhbnNmb3JtKCRwcm9wZXJ0eTogbm9uZSkge1xuLy8gIG5vbmUgfCA8dHJhbnNmb3JtLWZ1bmN0aW9uPlxuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2Zvcm0sICRwcm9wZXJ0eSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xufVxuXG5AbWl4aW4gdHJhbnNmb3JtLW9yaWdpbigkYXhlczogNTAlKSB7XG4vLyB4LWF4aXMgLSBsZWZ0IHwgY2VudGVyIHwgcmlnaHQgIHwgbGVuZ3RoIHwgJVxuLy8geS1heGlzIC0gdG9wICB8IGNlbnRlciB8IGJvdHRvbSB8IGxlbmd0aCB8ICVcbi8vIHotYXhpcyAtICAgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGhcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNmb3JtLW9yaWdpbiwgJGF4ZXMsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcbn1cblxuQG1peGluIHRyYW5zZm9ybS1zdHlsZSAoJHN0eWxlOiBmbGF0KSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zZm9ybS1zdHlsZSwgJHN0eWxlLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG59XG4iLCIvLyBTaG9ydGhhbmQgbWl4aW4uIFN1cHBvcnRzIG11bHRpcGxlIHBhcmVudGhlc2VzLWRlbGltaW5hdGVkIHZhbHVlcyBmb3IgZWFjaCB2YXJpYWJsZS5cbi8vIEV4YW1wbGU6IEBpbmNsdWRlIHRyYW5zaXRpb24gKGFsbCAycyBlYXNlLWluLW91dCk7XG4vLyAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uIChvcGFjaXR5IDFzIGVhc2UtaW4gMnMsIHdpZHRoIDJzIGVhc2Utb3V0KTtcbi8vICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tcHJvcGVydHkgKHRyYW5zZm9ybSwgb3BhY2l0eSk7XG5cbkBtaXhpbiB0cmFuc2l0aW9uKCRwcm9wZXJ0aWVzLi4uKSB7XG4gIC8vIEZpeCBmb3IgdmVuZG9yLXByZWZpeCB0cmFuc2Zvcm0gcHJvcGVydHlcbiAgJG5lZWRzLXByZWZpeGVzOiBmYWxzZTtcbiAgJHdlYmtpdDogKCk7XG4gICRtb3o6ICgpO1xuICAkc3BlYzogKCk7XG5cbiAgLy8gQ3JlYXRlIGxpc3RzIGZvciB2ZW5kb3ItcHJlZml4ZWQgdHJhbnNmb3JtXG4gIEBlYWNoICRsaXN0IGluICRwcm9wZXJ0aWVzIHtcbiAgICBAaWYgbnRoKCRsaXN0LCAxKSA9PSBcInRyYW5zZm9ybVwiIHtcbiAgICAgICRuZWVkcy1wcmVmaXhlczogdHJ1ZTtcbiAgICAgICRsaXN0MTogLXdlYmtpdC10cmFuc2Zvcm07XG4gICAgICAkbGlzdDI6IC1tb3otdHJhbnNmb3JtO1xuICAgICAgJGxpc3QzOiAoKTtcblxuICAgICAgQGVhY2ggJHZhciBpbiAkbGlzdCB7XG4gICAgICAgICRsaXN0Mzogam9pbigkbGlzdDMsICR2YXIpO1xuXG4gICAgICAgIEBpZiAkdmFyICE9IFwidHJhbnNmb3JtXCIge1xuICAgICAgICAgICRsaXN0MTogam9pbigkbGlzdDEsICR2YXIpO1xuICAgICAgICAgICRsaXN0Mjogam9pbigkbGlzdDIsICR2YXIpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICR3ZWJraXQ6IGFwcGVuZCgkd2Via2l0LCAkbGlzdDEpO1xuICAgICAgJG1vejogICAgYXBwZW5kKCRtb3osICAgICRsaXN0Mik7XG4gICAgICAkc3BlYzogICBhcHBlbmQoJHNwZWMsICAgJGxpc3QzKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICR3ZWJraXQ6IGFwcGVuZCgkd2Via2l0LCAkbGlzdCwgY29tbWEpO1xuICAgICAgJG1vejogICAgYXBwZW5kKCRtb3osICAgICRsaXN0LCBjb21tYSk7XG4gICAgICAkc3BlYzogICBhcHBlbmQoJHNwZWMsICAgJGxpc3QsIGNvbW1hKTtcbiAgICB9XG4gIH1cblxuICBAaWYgJG5lZWRzLXByZWZpeGVzIHtcbiAgICAtd2Via2l0LXRyYW5zaXRpb246ICR3ZWJraXQ7XG4gICAgICAgLW1vei10cmFuc2l0aW9uOiAkbW96O1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogJHNwZWM7XG4gIH0gQGVsc2Uge1xuICAgIEBpZiBsZW5ndGgoJHByb3BlcnRpZXMpID49IDEge1xuICAgICAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbiwgJHByb3BlcnRpZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkcHJvcGVydGllczogYWxsIDAuMTVzIGVhc2Utb3V0IDBzO1xuICAgICAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbiwgJHByb3BlcnRpZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiB0cmFuc2l0aW9uLXByb3BlcnR5KCRwcm9wZXJ0aWVzLi4uKSB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygkcHJvcGVydGllcywgXCJ3ZWJraXRcIik7XG4gICAgIC1tb3otdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygkcHJvcGVydGllcywgXCJtb3pcIik7XG4gICAgICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygkcHJvcGVydGllcywgZmFsc2UpO1xufVxuXG5AbWl4aW4gdHJhbnNpdGlvbi1kdXJhdGlvbigkdGltZXMuLi4pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbi1kdXJhdGlvbiwgJHRpbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24oJG1vdGlvbnMuLi4pIHtcbiAgLy8gZWFzZSB8IGxpbmVhciB8IGVhc2UtaW4gfCBlYXNlLW91dCB8IGVhc2UtaW4tb3V0IHwgY3ViaWMtYmV6aWVyKClcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24sICRtb3Rpb25zLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gdHJhbnNpdGlvbi1kZWxheSgkdGltZXMuLi4pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbi1kZWxheSwgJHRpbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufSIsIkBtaXhpbiBmaWx0ZXIoJGZ1bmN0aW9uOiBub25lKSB7XG4gIC8vIDxmaWx0ZXItZnVuY3Rpb24+IFs8ZmlsdGVyLWZ1bmN0aW9uXSogfCBub25lXG4gIEBpbmNsdWRlIHByZWZpeGVyKGZpbHRlciwgJGZ1bmN0aW9uLCB3ZWJraXQgc3BlYyk7XG59XG5cbiIsIkBtaXhpbiBwbGFjZWhvbGRlciB7XG4gICRwbGFjZWhvbGRlcnM6IFwiOi13ZWJraXQtaW5wdXRcIiBcIjotbW96XCIgXCItbW96XCIgXCItbXMtaW5wdXRcIjtcbiAgQGVhY2ggJHBsYWNlaG9sZGVyIGluICRwbGFjZWhvbGRlcnMge1xuICAgICY6I3skcGxhY2Vob2xkZXJ9LXBsYWNlaG9sZGVyIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQGltcG9ydCBcImdsb2JhbFwiO1xuXG4vL1xuLy8gQWxlcnQgQm94IFZhcmlhYmxlc1xuLy9cbiRpbmNsdWRlLWh0bWwtYWxlcnQtY2xhc3NlczogJGluY2x1ZGUtaHRtbC1jbGFzc2VzICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhpcyB0byBjb250cm9sIGFsZXJ0IHBhZGRpbmcuXG4kYWxlcnQtcGFkZGluZy10b3A6IHJlbS1jYWxjKDE0KSAhZGVmYXVsdDtcbiRhbGVydC1wYWRkaW5nLWRlZmF1bHQtZmxvYXQ6ICRhbGVydC1wYWRkaW5nLXRvcCAhZGVmYXVsdDtcbiRhbGVydC1wYWRkaW5nLW9wcG9zaXRlLWRpcmVjdGlvbjogJGFsZXJ0LXBhZGRpbmctdG9wICsgcmVtLWNhbGMoMTApICFkZWZhdWx0O1xuJGFsZXJ0LXBhZGRpbmctYm90dG9tOiAkYWxlcnQtcGFkZGluZy10b3AgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIHRleHQgc3R5bGUuXG4kYWxlcnQtZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG4kYWxlcnQtZm9udC1zaXplOiByZW0tY2FsYygxMykgIWRlZmF1bHQ7XG4kYWxlcnQtZm9udC1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuJGFsZXJ0LWZvbnQtY29sb3ItYWx0OiBzY2FsZS1jb2xvcigkc2Vjb25kYXJ5LWNvbG9yLCAkbGlnaHRuZXNzOiAtNjYlKSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoaXMgZm9yIGNsb3NlIGhvdmVyIGVmZmVjdC5cbiRhbGVydC1mdW5jdGlvbi1mYWN0b3I6IC0xNCUgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIGJvcmRlciBzdHlsZXMuXG4kYWxlcnQtYm9yZGVyLXN0eWxlOiBzb2xpZCAhZGVmYXVsdDtcbiRhbGVydC1ib3JkZXItd2lkdGg6IDFweCAhZGVmYXVsdDtcbiRhbGVydC1ib3JkZXItY29sb3I6IHNjYWxlLWNvbG9yKCRwcmltYXJ5LWNvbG9yLCAkbGlnaHRuZXNzOiAkYWxlcnQtZnVuY3Rpb24tZmFjdG9yKSAhZGVmYXVsdDtcbiRhbGVydC1ib3R0b20tbWFyZ2luOiByZW0tY2FsYygyMCkgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBzdHlsZSB0aGUgY2xvc2UgYnV0dG9uc1xuJGFsZXJ0LWNsb3NlLWNvbG9yOiAkb2lsICFkZWZhdWx0O1xuJGFsZXJ0LWNsb3NlLXRvcDogNTAlICFkZWZhdWx0O1xuJGFsZXJ0LWNsb3NlLXBvc2l0aW9uOiByZW0tY2FsYyg0KSAhZGVmYXVsdDtcbiRhbGVydC1jbG9zZS1mb250LXNpemU6IHJlbS1jYWxjKDIyKSAhZGVmYXVsdDtcbiRhbGVydC1jbG9zZS1vcGFjaXR5OiAwLjMgIWRlZmF1bHQ7XG4kYWxlcnQtY2xvc2Utb3BhY2l0eS1ob3ZlcjogMC41ICFkZWZhdWx0O1xuJGFsZXJ0LWNsb3NlLXBhZGRpbmc6IDAgNnB4IDRweCAhZGVmYXVsdDtcbiRhbGVydC1jbG9zZS1iYWNrZ3JvdW5kOiBpbmhlcml0ICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhpcyB0byBjb250cm9sIGJvcmRlciByYWRpdXNcbiRhbGVydC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4kYWxlcnQtdHJhbnNpdGlvbi1zcGVlZDogMzAwbXMgIWRlZmF1bHQ7XG4kYWxlcnQtdHJhbnNpdGlvbi1lYXNlOiBlYXNlLW91dCAhZGVmYXVsdDtcblxuLy9cbi8vIEFsZXJ0IE1peGluc1xuLy9cblxuLy8gV2UgdXNlIHRoaXMgbWl4aW4gdG8gY3JlYXRlIGEgZGVmYXVsdCBhbGVydCBiYXNlLlxuQG1peGluIGFsZXJ0LWJhc2Uge1xuICBib3JkZXItc3R5bGU6ICRhbGVydC1ib3JkZXItc3R5bGU7XG4gIGJvcmRlci13aWR0aDogJGFsZXJ0LWJvcmRlci13aWR0aDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtd2VpZ2h0OiAkYWxlcnQtZm9udC13ZWlnaHQ7XG4gIG1hcmdpbi1ib3R0b206ICRhbGVydC1ib3R0b20tbWFyZ2luO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6ICRhbGVydC1wYWRkaW5nLXRvcCAkYWxlcnQtcGFkZGluZy1vcHBvc2l0ZS1kaXJlY3Rpb24gJGFsZXJ0LXBhZGRpbmctYm90dG9tICRhbGVydC1wYWRkaW5nLWRlZmF1bHQtZmxvYXQ7XG4gIGZvbnQtc2l6ZTogJGFsZXJ0LWZvbnQtc2l6ZTtcbiAgQGluY2x1ZGUgc2luZ2xlLXRyYW5zaXRpb24ob3BhY2l0eSwgJGFsZXJ0LXRyYW5zaXRpb24tc3BlZWQsICRhbGVydC10cmFuc2l0aW9uLWVhc2UpXG59XG5cbi8vIFdlIHVzZSB0aGlzIG1peGluIHRvIGFkZCBhbGVydCBzdHlsZXNcbi8vXG4vLyAkYmcgLSBUaGUgYmFja2dyb3VuZCBvZiB0aGUgYWxlcnQuIERlZmF1bHQ6ICRwcmltYXJ5LWNvbG9yLlxuQG1peGluIGFsZXJ0LXN0eWxlKCRiZzokcHJpbWFyeS1jb2xvcikge1xuXG4gIC8vIFRoaXMgZmluZHMgdGhlIGxpZ2h0bmVzcyBwZXJjZW50YWdlIG9mIHRoZSBiYWNrZ3JvdW5kIGNvbG9yLlxuICAkYmctbGlnaHRuZXNzOiBsaWdodG5lc3MoJGJnKTtcblxuICAvLyBXZSBjb250cm9sIHdoaWNoIGJhY2tncm91bmQgY29sb3IgYW5kIGJvcmRlciBjb21lIHRocm91Z2guXG4gIGJhY2tncm91bmQtY29sb3I6ICRiZztcbiAgYm9yZGVyLWNvbG9yOiBzY2FsZS1jb2xvcigkYmcsICRsaWdodG5lc3M6ICRhbGVydC1mdW5jdGlvbi1mYWN0b3IpO1xuXG4gIC8vIFdlIGNvbnRyb2wgdGhlIHRleHQgY29sb3IgZm9yIHlvdSBiYXNlZCBvbiB0aGUgYmFja2dyb3VuZCBjb2xvci5cbiAgQGlmICRiZy1saWdodG5lc3MgPiA3MCUgeyBjb2xvcjogJGFsZXJ0LWZvbnQtY29sb3ItYWx0OyB9XG4gIEBlbHNlICAgICAgICAgICAgICAgICAgIHsgY29sb3I6ICRhbGVydC1mb250LWNvbG9yOyB9XG5cbn1cblxuLy8gV2UgdXNlIHRoaXMgdG8gY3JlYXRlIHRoZSBjbG9zZSBidXR0b24uXG5AbWl4aW4gYWxlcnQtY2xvc2Uge1xuICBmb250LXNpemU6ICRhbGVydC1jbG9zZS1mb250LXNpemU7XG4gIHBhZGRpbmc6ICRhbGVydC1jbG9zZS1wYWRkaW5nO1xuICBsaW5lLWhlaWdodDogLjk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAkYWxlcnQtY2xvc2UtdG9wO1xuICBtYXJnaW4tdG9wOiAtKCRhbGVydC1jbG9zZS1mb250LXNpemUgLyAyKTtcbiAgI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogJGFsZXJ0LWNsb3NlLXBvc2l0aW9uO1xuICBjb2xvcjogJGFsZXJ0LWNsb3NlLWNvbG9yO1xuICBvcGFjaXR5OiAkYWxlcnQtY2xvc2Utb3BhY2l0eTtcbiAgYmFja2dyb3VuZDogJGFsZXJ0LWNsb3NlLWJhY2tncm91bmQ7XG4gICY6aG92ZXIsXG4gICY6Zm9jdXMgeyBvcGFjaXR5OiAkYWxlcnQtY2xvc2Utb3BhY2l0eS1ob3ZlcjsgfVxufVxuXG4vLyBXZSB1c2UgdGhpcyB0byBxdWlja2x5IGNyZWF0ZSBhbGVydHMgd2l0aCBhIHNpbmdsZSBtaXhpbi5cbi8vXG4vLyAkYmcgLSBCYWNrZ3JvdW5kIG9mIGFsZXJ0LiBEZWZhdWx0OiAkcHJpbWFyeS1jb2xvci5cbi8vICRyYWRpdXMgLSBSYWRpdXMgb2YgYWxlcnQgYm94LiBEZWZhdWx0OiBmYWxzZS5cbkBtaXhpbiBhbGVydCgkYmc6JHByaW1hcnktY29sb3IsICRyYWRpdXM6ZmFsc2UpIHtcbiAgQGluY2x1ZGUgYWxlcnQtYmFzZTtcbiAgQGluY2x1ZGUgYWxlcnQtc3R5bGUoJGJnKTtcbiAgQGluY2x1ZGUgcmFkaXVzKCRyYWRpdXMpO1xufVxuXG5AaW5jbHVkZSBleHBvcnRzKFwiYWxlcnQtYm94XCIpIHtcbiAgQGlmICRpbmNsdWRlLWh0bWwtYWxlcnQtY2xhc3NlcyB7XG4gICAgLmFsZXJ0LWJveCB7XG4gICAgICBAaW5jbHVkZSBhbGVydDtcblxuICAgICAgLmNsb3NlICAgICAgeyBAaW5jbHVkZSBhbGVydC1jbG9zZTsgfVxuXG4gICAgICAmLnJhZGl1cyAgICB7IEBpbmNsdWRlIHJhZGl1cygkYWxlcnQtcmFkaXVzKTsgfVxuICAgICAgJi5yb3VuZCAgICAgeyBAaW5jbHVkZSByYWRpdXMoJGdsb2JhbC1yb3VuZGVkKTsgfVxuXG4gICAgICAmLnN1Y2Nlc3MgICB7IEBpbmNsdWRlIGFsZXJ0LXN0eWxlKCRzdWNjZXNzLWNvbG9yKTsgfVxuICAgICAgJi5hbGVydCAgICAgeyBAaW5jbHVkZSBhbGVydC1zdHlsZSgkYWxlcnQtY29sb3IpOyB9XG4gICAgICAmLnNlY29uZGFyeSB7IEBpbmNsdWRlIGFsZXJ0LXN0eWxlKCRzZWNvbmRhcnktY29sb3IpOyB9XG4gICAgICAmLndhcm5pbmcgeyBAaW5jbHVkZSBhbGVydC1zdHlsZSgkd2FybmluZy1jb2xvcik7IH1cbiAgICAgICYuaW5mbyB7IEBpbmNsdWRlIGFsZXJ0LXN0eWxlKCRpbmZvLWNvbG9yKTsgfVxuICAgICAgJi5hbGVydC1jbG9zZSB7IG9wYWNpdHk6IDB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AaW1wb3J0IFwiLi4vZnVuY3Rpb25zXCI7XG4vL1xuLy8gRm91bmRhdGlvbiBWYXJpYWJsZXNcbi8vXG5cbi8vIERhdGEgYXR0cmlidXRlIG5hbWVzcGFjZVxuLy8gc3R5bGVzIGdldCBhcHBsaWVkIHRvIFtkYXRhLW15c2l0ZS1wbHVnaW5dLCBldGNcbiRuYW1lc3BhY2U6IGZhbHNlICFkZWZhdWx0O1xuXG4vLyBUaGUgZGVmYXVsdCBmb250LXNpemUgaXMgc2V0IHRvIDEwMCUgb2YgdGhlIGJyb3dzZXIgc3R5bGUgc2hlZXQgKHVzdWFsbHkgMTZweClcbi8vIGZvciBjb21wYXRpYmlsaXR5IHdpdGggYnJvd3Nlci1iYXNlZCB0ZXh0IHpvb20gb3IgdXNlci1zZXQgZGVmYXVsdHMuXG5cbi8vIFNpbmNlIHRoZSB0eXBpY2FsIGRlZmF1bHQgYnJvd3NlciBmb250LXNpemUgaXMgMTZweCwgdGhhdCBtYWtlcyB0aGUgY2FsY3VsYXRpb24gZm9yIGdyaWQgc2l6ZS5cbi8vIElmIHlvdSB3YW50IHlvdXIgYmFzZSBmb250LXNpemUgdG8gYmUgZGlmZmVyZW50IGFuZCBub3QgaGF2ZSBpdCBhZmZlY3QgdGhlIGdyaWQgYnJlYWtwb2ludHMsXG4vLyBzZXQgJHJlbS1iYXNlIHRvICRiYXNlLWZvbnQtc2l6ZSBhbmQgbWFrZSBzdXJlICRiYXNlLWZvbnQtc2l6ZSBpcyBhIHB4IHZhbHVlLlxuJGJhc2UtZm9udC1zaXplOiAxMDAlICFkZWZhdWx0O1xuXG4vLyAkYmFzZS1saW5lLWhlaWdodCBpcyAyNHB4IHdoaWxlICRiYXNlLWZvbnQtc2l6ZSBpcyAxNnB4XG4kYmFzZS1saW5lLWhlaWdodDogMS41ICFkZWZhdWx0O1xuXG4vL1xuLy8gR2xvYmFsIEZvdW5kYXRpb24gTWl4aW5zXG4vL1xuXG4vLyBAbWl4aW5zXG4vL1xuLy8gV2UgdXNlIHRoaXMgdG8gY29udHJvbCBib3JkZXIgcmFkaXVzLlxuLy8gJHJhZGl1cyAtIERlZmF1bHQ6ICRnbG9iYWwtcmFkaXVzIHx8IDRweFxuQG1peGluIHJhZGl1cygkcmFkaXVzOiRnbG9iYWwtcmFkaXVzKSB7XG4gIEBpZiAkcmFkaXVzIHtcbiAgICBib3JkZXItcmFkaXVzOiAkcmFkaXVzO1xuICB9XG59XG5cbi8vIEBtaXhpbnNcbi8vXG4vLyBXZSB1c2UgdGhpcyB0byBjcmVhdGUgZXF1YWwgc2lkZSBib3JkZXIgcmFkaXVzIG9uIGVsZW1lbnRzLlxuLy8gJHNpZGUgLSBPcHRpb25zOiBsZWZ0LCByaWdodCwgdG9wLCBib3R0b21cbkBtaXhpbiBzaWRlLXJhZGl1cygkc2lkZSwgJHJhZGl1czokZ2xvYmFsLXJhZGl1cykge1xuICBAaWYgKCRzaWRlID09IGxlZnQgb3IgJHNpZGUgPT0gcmlnaHQpIHtcbiAgICAtd2Via2l0LWJvcmRlci1ib3R0b20tI3skc2lkZX0tcmFkaXVzOiAkcmFkaXVzO1xuICAgIC13ZWJraXQtYm9yZGVyLXRvcC0jeyRzaWRlfS1yYWRpdXM6ICRyYWRpdXM7XG4gICAgYm9yZGVyLWJvdHRvbS0jeyRzaWRlfS1yYWRpdXM6ICRyYWRpdXM7XG4gICAgYm9yZGVyLXRvcC0jeyRzaWRlfS1yYWRpdXM6ICRyYWRpdXM7XG4gIH0gQGVsc2Uge1xuICAgIC13ZWJraXQtI3skc2lkZX0tbGVmdC1yYWRpdXM6ICRyYWRpdXM7XG4gICAgLXdlYmtpdC0jeyRzaWRlfS1yaWdodC1yYWRpdXM6ICRyYWRpdXM7XG4gICAgYm9yZGVyLSN7JHNpZGV9LWxlZnQtcmFkaXVzOiAkcmFkaXVzO1xuICAgIGJvcmRlci0jeyRzaWRlfS1yaWdodC1yYWRpdXM6ICRyYWRpdXM7XG4gIH1cbn1cblxuLy8gQG1peGluc1xuLy9cbi8vIFdlIGNhbiBjb250cm9sIHdoZXRoZXIgb3Igbm90IHdlIGhhdmUgaW5zZXQgc2hhZG93cyBlZGdlcy5cbi8vICRhY3RpdmUgLSBEZWZhdWx0OiB0cnVlLCBPcHRpb25zOiBmYWxzZVxuQG1peGluIGluc2V0LXNoYWRvdygkYWN0aXZlOnRydWUpIHtcbiAgYm94LXNoYWRvdzogJHNoaW55LWVkZ2Utc2l6ZSAkc2hpbnktZWRnZS1jb2xvciBpbnNldDtcblxuICBAaWYgJGFjdGl2ZSB7ICY6YWN0aXZlIHtcbiAgICBib3gtc2hhZG93OiAkc2hpbnktZWRnZS1zaXplICRzaGlueS1lZGdlLWFjdGl2ZS1jb2xvciBpbnNldDsgfSB9XG59XG5cbi8vIEBtaXhpbnNcbi8vXG4vLyBXZSB1c2UgdGhpcyB0byBhZGQgdHJhbnNpdGlvbnMgdG8gZWxlbWVudHNcbi8vICRwcm9wZXJ0eSAtIERlZmF1bHQ6IGFsbCwgT3B0aW9uczogaHR0cDovL3d3dy53My5vcmcvVFIvY3NzMy10cmFuc2l0aW9ucy8jYW5pbWF0YWJsZS1wcm9wZXJ0aWVzXG4vLyAkc3BlZWQgLSBEZWZhdWx0OiAzMDBtc1xuLy8gJGVhc2UgLSBEZWZhdWx0OmVhc2Utb3V0LCBPcHRpb25zOiBodHRwOi8vY3NzLXRyaWNrcy5jb20vYWxtYW5hYy9wcm9wZXJ0aWVzL3QvdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24vXG5AbWl4aW4gc2luZ2xlLXRyYW5zaXRpb24oJHByb3BlcnR5OmFsbCwgJHNwZWVkOjMwMG1zLCAkZWFzZTplYXNlLW91dCkge1xuICB0cmFuc2l0aW9uOiAkcHJvcGVydHkgJHNwZWVkICRlYXNlO1xufVxuXG4vLyBAbWl4aW5zXG4vL1xuLy8gV2UgdXNlIHRoaXMgdG8gYWRkIGJveC1zaXppbmcgYWNyb3NzIGJyb3dzZXIgcHJlZml4ZXNcbkBtaXhpbiBib3gtc2l6aW5nKCR0eXBlOmJvcmRlci1ib3gpIHtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiAkdHlwZTsgLy8gQW5kcm9pZCA8IDIuMywgaU9TIDwgNFxuICAgICAtbW96LWJveC1zaXppbmc6ICR0eXBlOyAvLyBGaXJlZm94IDwgMjlcbiAgICAgICAgICBib3gtc2l6aW5nOiAkdHlwZTsgLy8gQ2hyb21lLCBJRSA4KywgT3BlcmEsIFNhZmFyaSA1LjFcbn1cblxuLy8gQG1peGluc1xuLy9cbi8vIFdlIHVzZSB0aGlzIHRvIGNyZWF0ZSBpc29zY2VsZXMgdHJpYW5nbGVzXG4vLyAkdHJpYW5nbGUtc2l6ZSAtIFVzZWQgdG8gc2V0IGJvcmRlci1zaXplLiBObyBkZWZhdWx0LCBzZXQgYSBweCBvciBlbSBzaXplLlxuLy8gJHRyaWFuZ2xlLWNvbG9yIC0gVXNlZCB0byBzZXQgYm9yZGVyLWNvbG9yIHdoaWNoIG1ha2VzIHVwIHRyaWFuZ2xlLiBObyBkZWZhdWx0XG4vLyAkdHJpYW5nbGUtZGlyZWN0aW9uIC0gVXNlZCB0byBkZXRlcm1pbmUgd2hpY2ggZGlyZWN0aW9uIHRyaWFuZ2xlIHBvaW50cy4gT3B0aW9uczogdG9wLCBib3R0b20sIGxlZnQsIHJpZ2h0XG5AbWl4aW4gY3NzLXRyaWFuZ2xlKCR0cmlhbmdsZS1zaXplLCAkdHJpYW5nbGUtY29sb3IsICR0cmlhbmdsZS1kaXJlY3Rpb24pIHtcbiAgY29udGVudDogXCJcIjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGJvcmRlcjogaW5zZXQgJHRyaWFuZ2xlLXNpemU7XG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSB0b3ApIHtcbiAgICBib3JkZXItY29sb3I6ICR0cmlhbmdsZS1jb2xvciB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDtcbiAgfVxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gYm90dG9tKSB7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAkdHJpYW5nbGUtY29sb3IgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XG4gIH1cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IGxlZnQpIHtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICR0cmlhbmdsZS1jb2xvcjtcbiAgICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XG4gIH1cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IHJpZ2h0KSB7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAkdHJpYW5nbGUtY29sb3IgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXJpZ2h0LXN0eWxlOiBzb2xpZDtcbiAgfVxufVxuXG4vLyBAbWl4aW5zXG4vL1xuLy8gV2UgdXNlIHRoaXMgdG8gY3JlYXRlIHRoZSBpY29uIHdpdGggdGhyZWUgbGluZXMgYWthIHRoZSBoYW1idXJnZXIgaWNvbiwgdGhlIG1lbnUtaWNvbiBvciB0aGUgbmF2aWNvblxuLy8gJHdpZHRoIC0gV2lkdGggb2YgaGFtYnVyZ2VyIGljb24gaW4gcmVtXG4vLyAkbGVmdCAtIElmIGZhbHNlLCBpY29uIHdpbGwgYmUgY2VudGVyZWQgaG9yaXpvbnRhbGx5IHx8IGV4cGxpY2l0bHkgc2V0IHZhbHVlIGluIHJlbVxuLy8gJHRvcCAtIElmIGZhbHNlLCBpY29uIHdpbGwgYmUgY2VudGVyZWQgdmVydGljYWxseSB8fCBleHBsaWNpdGx5IHNldCB2YWx1ZSBpbiByZW1cbi8vICR0aGlja25lc3MgLSB0aGlja25lc3Mgb2YgbGluZXMgaW4gaGFtYnVyZ2VyIGljb24sIHNldCB2YWx1ZSBpbiBweFxuLy8gJGdhcCAtIHNwYWNpbmcgYmV0d2VlbiB0aGUgbGluZXMgaW4gaGFtYnVyZ2VyIGljb24sIHNldCB2YWx1ZSBpbiBweFxuLy8gJGNvbG9yIC0gaWNvbiBjb2xvclxuLy8gJGhvdmVyLWNvbG9yIC0gaWNvbiBjb2xvciBkdXJpbmcgaG92ZXJcbi8vICRvZmZjYW52YXMgLSBTZXQgdG8gdHJ1ZSBvZiBAaW5jbHVkZSBpbiBvZmZjYW52YXNcbkBtaXhpbiBoYW1idXJnZXIoJHdpZHRoLCAkbGVmdCwgJHRvcCwgJHRoaWNrbmVzcywgJGdhcCwgJGNvbG9yLCAkaG92ZXItY29sb3IsICRvZmZjYW52YXMpIHtcbiAgc3Bhbjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogMDtcblxuICAgIEBpZiAkb2ZmY2FudmFzIHtcbiAgICAgIEBpZiAkdG9wIHtcbiAgICAgICAgdG9wOiAkdG9wO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbWFyZ2luLXRvcDogKC0kd2lkdGgvMik7XG4gICAgICB9XG4gICAgICBAaWYgJGxlZnQge1xuICAgICAgICBsZWZ0OiAkbGVmdDtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgbGVmdDogKCR0YWJiYXItbWVudS1pY29uLXdpZHRoIC0gJHdpZHRoKS8yO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIG1hcmdpbi10b3A6IC0oJHdpZHRoLzIpO1xuICAgICAgI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogJHRvcGJhci1saW5rLXBhZGRpbmc7XG4gICAgfVxuXG4gICAgYm94LXNoYWRvdzpcbiAgICAgIDAgMCAwICR0aGlja25lc3MgJGNvbG9yLFxuICAgICAgMCAkZ2FwICsgJHRoaWNrbmVzcyAwICR0aGlja25lc3MgJGNvbG9yLFxuICAgICAgMCAoMiAqICRnYXAgKyAyKiR0aGlja25lc3MpIDAgJHRoaWNrbmVzcyAkY29sb3I7XG4gICAgd2lkdGg6ICR3aWR0aDtcbiAgfVxuICBzcGFuOmhvdmVyOmFmdGVyIHtcbiAgICBib3gtc2hhZG93OlxuICAgICAgMCAwIDAgJHRoaWNrbmVzcyAkaG92ZXItY29sb3IsXG4gICAgICAwICRnYXAgKyAkdGhpY2tuZXNzIDAgJHRoaWNrbmVzcyAkaG92ZXItY29sb3IsXG4gICAgICAwICgyICogJGdhcCArIDIqJHRoaWNrbmVzcykgMCAkdGhpY2tuZXNzICRob3Zlci1jb2xvcjtcbiAgfVxufVxuXG4vLyBXZSB1c2UgdGhpcyB0byBkbyBjbGVhciBmbG9hdHNcbkBtaXhpbiBjbGVhcmZpeCB7XG4gICY6YmVmb3JlLCAmOmFmdGVyIHsgY29udGVudDogXCIgXCI7IGRpc3BsYXk6IHRhYmxlOyB9XG4gICY6YWZ0ZXIgeyBjbGVhcjogYm90aDsgfVxufVxuXG4vLyBAbWl4aW5zXG4vL1xuLy8gV2UgdXNlIHRoaXMgdG8gYWRkIGEgZ2xvd2luZyBlZmZlY3QgdG8gYmxvY2sgZWxlbWVudHNcbi8vICRzZWxlY3RvciAtIFVzZWQgZm9yIHNlbGVjdG9yIHN0YXRlLiBEZWZhdWx0OiBmb2N1cywgT3B0aW9uczogaG92ZXIsIGFjdGl2ZSwgdmlzaXRlZFxuLy8gJGZhZGUtdGltZSAtIERlZmF1bHQ6IDMwMG1zXG4vLyAkZ2xvd2luZy1lZmZlY3QtY29sb3IgLSBEZWZhdWx0OiBmYWRlLW91dCgkcHJpbWFyeS1jb2xvciwgLjI1KVxuQG1peGluIGJsb2NrLWdsb3dpbmctZWZmZWN0KCRzZWxlY3Rvcjpmb2N1cywgJGZhZGUtdGltZTozMDBtcywgJGdsb3dpbmctZWZmZWN0LWNvbG9yOmZhZGUtb3V0KCRwcmltYXJ5LWNvbG9yLCAuMjUpKSB7XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgJGZhZGUtdGltZSwgYm9yZGVyLWNvbG9yICRmYWRlLXRpbWUgZWFzZS1pbi1vdXQ7XG5cbiAgJjojeyRzZWxlY3Rvcn0ge1xuICAgIGJveC1zaGFkb3c6IDAgMCA1cHggJGdsb3dpbmctZWZmZWN0LWNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGdsb3dpbmctZWZmZWN0LWNvbG9yO1xuICB9XG59XG5cbi8vIEBtaXhpbnNcbi8vXG4vLyBXZSB1c2UgdGhpcyB0byB0cmFuc2xhdGUgZWxlbWVudHMgaW4gMkRcbi8vICRob3Jpem9udGFsOiBEZWZhdWx0OiAwXG4vLyAkdmVydGljYWw6IERlZmF1bHQ6IDBcbkBtaXhpbiB0cmFuc2xhdGUyZCgkaG9yaXpvbnRhbDowLCAkdmVydGljYWw6MCkge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgkaG9yaXpvbnRhbCwkdmVydGljYWwpXG59XG5cbi8vIEBtaXhpbnNcbi8vXG4vLyBNYWtlcyBhbiBlbGVtZW50IHZpc3VhbGx5IGhpZGRlbiwgYnV0IGFjY2Vzc2libGUuXG4vLyBAc2VlIGh0dHA6Ly9zbm9vay5jYS9hcmNoaXZlcy9odG1sX2FuZF9jc3MvaGlkaW5nLWNvbnRlbnQtZm9yLWFjY2Vzc2liaWxpdHlcbkBtaXhpbiBlbGVtZW50LWludmlzaWJsZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDFweDtcbiAgd2lkdGg6IDFweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY2xpcDogcmVjdCgxcHgsIDFweCwgMXB4LCAxcHgpO1xufVxuXG4vLyBAbWl4aW5zXG4vL1xuLy8gVHVybnMgb2ZmIHRoZSBlbGVtZW50LWludmlzaWJsZSBlZmZlY3QuXG5AbWl4aW4gZWxlbWVudC1pbnZpc2libGUtb2ZmIHtcbiAgcG9zaXRpb246IHN0YXRpYyAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IGF1dG87XG4gIHdpZHRoOiBhdXRvO1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgY2xpcDogYXV0bztcbn1cblxuJHdoaXRlICAgICAgICAgOiAjRkZGRkZGICFkZWZhdWx0O1xuJGdob3N0ICAgICAgICAgOiAjRkFGQUZBICFkZWZhdWx0O1xuJHNub3cgICAgICAgICAgOiAjRjlGOUY5ICFkZWZhdWx0O1xuJHZhcG9yICAgICAgICAgOiAjRjZGNkY2ICFkZWZhdWx0O1xuJHdoaXRlLXNtb2tlICAgOiAjRjVGNUY1ICFkZWZhdWx0O1xuJHNpbHZlciAgICAgICAgOiAjRUZFRkVGICFkZWZhdWx0O1xuJHNtb2tlICAgICAgICAgOiAjRUVFRUVFICFkZWZhdWx0O1xuJGdhaW5zYm9ybyAgICAgOiAjREREREREICFkZWZhdWx0O1xuJGlyb24gICAgICAgICAgOiAjQ0NDQ0NDICFkZWZhdWx0O1xuJGJhc2UgICAgICAgICAgOiAjQUFBQUFBICFkZWZhdWx0O1xuJGFsdW1pbnVtICAgICAgOiAjOTk5OTk5ICFkZWZhdWx0O1xuJGp1bWJvICAgICAgICAgOiAjODg4ODg4ICFkZWZhdWx0O1xuJG1vbnNvb24gICAgICAgOiAjNzc3Nzc3ICFkZWZhdWx0O1xuJHN0ZWVsICAgICAgICAgOiAjNjY2NjY2ICFkZWZhdWx0O1xuJGNoYXJjb2FsICAgICAgOiAjNTU1NTU1ICFkZWZhdWx0O1xuJHR1YXRhcmEgICAgICAgOiAjNDQ0NDQ0ICFkZWZhdWx0O1xuJG9pbCAgICAgICAgICAgOiAjMzMzMzMzICFkZWZhdWx0O1xuJGpldCAgICAgICAgICAgOiAjMjIyMjIyICFkZWZhdWx0O1xuJGJsYWNrICAgICAgICAgOiAjMDAwMDAwICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgYXMgZGVmYXVsdCBjb2xvcnMgdGhyb3VnaG91dFxuJHByaW1hcnktY29sb3I6ICMwMDhDQkEgIWRlZmF1bHQ7ICAgLy8gYm9uZGktYmx1ZVxuJHNlY29uZGFyeS1jb2xvcjogI2U3ZTdlNyAhZGVmYXVsdDsgLy8gd2hpdGUtbGlsYWNcbiRhbGVydC1jb2xvcjogI2YwNDEyNCAhZGVmYXVsdDsgICAgIC8vIGNpbm5hYmFyXG4kc3VjY2Vzcy1jb2xvcjogIzQzQUM2QSAhZGVmYXVsdDsgICAvLyBzZWEtZ3JlZW5cbiR3YXJuaW5nLWNvbG9yOiAjZjA4YTI0ICFkZWZhdWx0OyAgIC8vIGNhcnJvdFxuJGluZm8tY29sb3I6ICNhMGQzZTggIWRlZmF1bHQ7ICAgICAgLy8gY29ybmZsb3dlclxuXG4vLyBXZSB1c2UgdGhlc2UgdG8gZGVmaW5lIGRlZmF1bHQgZm9udCBzdGFja3NcbiRmb250LWZhbWlseS1zYW5zLXNlcmlmOiBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgUm9ib3RvLCBBcmlhbCwgc2Fucy1zZXJpZiAhZGVmYXVsdDtcbiRmb250LWZhbWlseS1zZXJpZjogR2VvcmdpYSwgQ2FtYnJpYSwgXCJUaW1lcyBOZXcgUm9tYW5cIiwgVGltZXMsIHNlcmlmICFkZWZhdWx0O1xuJGZvbnQtZmFtaWx5LW1vbm9zcGFjZTogQ29uc29sYXMsIFwiTGliZXJhdGlvbiBNb25vXCIsIENvdXJpZXIsIG1vbm9zcGFjZSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGRlZmluZSBkZWZhdWx0IGZvbnQgd2VpZ2h0c1xuJGZvbnQtd2VpZ2h0LW5vcm1hbDogbm9ybWFsICFkZWZhdWx0O1xuJGZvbnQtd2VpZ2h0LWJvbGQ6IGJvbGQgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIHZhcmlvdXMgZ2xvYmFsIHN0eWxlc1xuJGJvZHktYmc6ICNmZmYgIWRlZmF1bHQ7XG4kYm9keS1mb250LWNvbG9yOiAjMjIyICFkZWZhdWx0O1xuJGJvZHktZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1zYW5zLXNlcmlmICFkZWZhdWx0O1xuJGJvZHktZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG4kYm9keS1mb250LXN0eWxlOiBub3JtYWwgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGlzIHRvIGNvbnRyb2wgZm9udC1zbW9vdGhpbmdcbiRmb250LXNtb290aGluZzogYW50aWFsaWFzZWQgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIHRleHQgZGlyZWN0aW9uIHNldHRpbmdzXG4kdGV4dC1kaXJlY3Rpb246IGx0ciAhZGVmYXVsdDtcbiRkZWZhdWx0LWZsb2F0OiBsZWZ0ICFkZWZhdWx0O1xuJG9wcG9zaXRlLWRpcmVjdGlvbjogcmlnaHQgIWRlZmF1bHQ7XG5AaWYgJHRleHQtZGlyZWN0aW9uID09IGx0ciB7XG4gICRkZWZhdWx0LWZsb2F0OiBsZWZ0O1xuICAkb3Bwb3NpdGUtZGlyZWN0aW9uOiByaWdodDtcbn0gQGVsc2Uge1xuICAkZGVmYXVsdC1mbG9hdDogcmlnaHQ7XG4gICRvcHBvc2l0ZS1kaXJlY3Rpb246IGxlZnQ7XG59XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBtYWtlIHN1cmUgYm9yZGVyIHJhZGl1cyBtYXRjaGVzIHVubGVzcyB3ZSB3YW50IGl0IGRpZmZlcmVudC5cbiRnbG9iYWwtcmFkaXVzOiAzcHggIWRlZmF1bHQ7XG4kZ2xvYmFsLXJvdW5kZWQ6IDEwMDBweCAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgaW5zZXQgc2hhZG93IHNoaW55IGVkZ2VzIGFuZCBkZXByZXNzaW9ucy5cbiRzaGlueS1lZGdlLXNpemU6IDAgMXB4IDAgIWRlZmF1bHQ7XG4kc2hpbnktZWRnZS1jb2xvcjogcmdiYSgjZmZmLCAuNSkgIWRlZmF1bHQ7XG4kc2hpbnktZWRnZS1hY3RpdmUtY29sb3I6IHJnYmEoIzAwMCwgLjIpICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhpcyB0byBjb250cm9sIHdoZXRoZXIgb3Igbm90IENTUyBjbGFzc2VzIGNvbWUgdGhyb3VnaCBpbiB0aGUgZ2VtIGZpbGVzLlxuJGluY2x1ZGUtaHRtbC1jbGFzc2VzOiB0cnVlICFkZWZhdWx0O1xuJGluY2x1ZGUtcHJpbnQtc3R5bGVzOiB0cnVlICFkZWZhdWx0O1xuJGluY2x1ZGUtaHRtbC1nbG9iYWwtY2xhc3NlczogJGluY2x1ZGUtaHRtbC1jbGFzc2VzICFkZWZhdWx0O1xuXG4kY29sdW1uLWd1dHRlcjogcmVtLWNhbGMoMzApICFkZWZhdWx0O1xuXG4vLyBNZWRpYSBRdWVyeSBSYW5nZXNcbiRzbWFsbC1yYW5nZTogKDAsIDQwZW0pICFkZWZhdWx0O1xuJG1lZGl1bS1yYW5nZTogKDQwLjA2M2VtLCA2NGVtKSAhZGVmYXVsdDtcbiRsYXJnZS1yYW5nZTogKDY0LjA2M2VtLCA5MGVtKSAhZGVmYXVsdDtcbiR4bGFyZ2UtcmFuZ2U6ICg5MC4wNjNlbSwgMTIwZW0pICFkZWZhdWx0O1xuJHh4bGFyZ2UtcmFuZ2U6ICgxMjAuMDYzZW0sIDk5OTk5OTk5ZW0pICFkZWZhdWx0O1xuXG5cbiRzY3JlZW46IFwib25seSBzY3JlZW5cIiAhZGVmYXVsdDtcblxuJGxhbmRzY2FwZTogXCIjeyRzY3JlZW59IGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSlcIiAhZGVmYXVsdDtcbiRwb3J0cmFpdDogXCIjeyRzY3JlZW59IGFuZCAob3JpZW50YXRpb246IHBvcnRyYWl0KVwiICFkZWZhdWx0O1xuXG4kc21hbGwtdXA6ICRzY3JlZW4gIWRlZmF1bHQ7XG4kc21hbGwtb25seTogXCIjeyRzY3JlZW59IGFuZCAobWF4LXdpZHRoOiAje3VwcGVyLWJvdW5kKCRzbWFsbC1yYW5nZSl9KVwiICFkZWZhdWx0O1xuXG4kbWVkaXVtLXVwOiBcIiN7JHNjcmVlbn0gYW5kIChtaW4td2lkdGg6I3tsb3dlci1ib3VuZCgkbWVkaXVtLXJhbmdlKX0pXCIgIWRlZmF1bHQ7XG4kbWVkaXVtLW9ubHk6IFwiI3skc2NyZWVufSBhbmQgKG1pbi13aWR0aDoje2xvd2VyLWJvdW5kKCRtZWRpdW0tcmFuZ2UpfSkgYW5kIChtYXgtd2lkdGg6I3t1cHBlci1ib3VuZCgkbWVkaXVtLXJhbmdlKX0pXCIgIWRlZmF1bHQ7XG5cbiRsYXJnZS11cDogXCIjeyRzY3JlZW59IGFuZCAobWluLXdpZHRoOiN7bG93ZXItYm91bmQoJGxhcmdlLXJhbmdlKX0pXCIgIWRlZmF1bHQ7XG4kbGFyZ2Utb25seTogXCIjeyRzY3JlZW59IGFuZCAobWluLXdpZHRoOiN7bG93ZXItYm91bmQoJGxhcmdlLXJhbmdlKX0pIGFuZCAobWF4LXdpZHRoOiN7dXBwZXItYm91bmQoJGxhcmdlLXJhbmdlKX0pXCIgIWRlZmF1bHQ7XG5cbiR4bGFyZ2UtdXA6IFwiI3skc2NyZWVufSBhbmQgKG1pbi13aWR0aDoje2xvd2VyLWJvdW5kKCR4bGFyZ2UtcmFuZ2UpfSlcIiAhZGVmYXVsdDtcbiR4bGFyZ2Utb25seTogXCIjeyRzY3JlZW59IGFuZCAobWluLXdpZHRoOiN7bG93ZXItYm91bmQoJHhsYXJnZS1yYW5nZSl9KSBhbmQgKG1heC13aWR0aDoje3VwcGVyLWJvdW5kKCR4bGFyZ2UtcmFuZ2UpfSlcIiAhZGVmYXVsdDtcblxuJHh4bGFyZ2UtdXA6IFwiI3skc2NyZWVufSBhbmQgKG1pbi13aWR0aDoje2xvd2VyLWJvdW5kKCR4eGxhcmdlLXJhbmdlKX0pXCIgIWRlZmF1bHQ7XG4keHhsYXJnZS1vbmx5OiBcIiN7JHNjcmVlbn0gYW5kIChtaW4td2lkdGg6I3tsb3dlci1ib3VuZCgkeHhsYXJnZS1yYW5nZSl9KSBhbmQgKG1heC13aWR0aDoje3VwcGVyLWJvdW5kKCR4eGxhcmdlLXJhbmdlKX0pXCIgIWRlZmF1bHQ7XG5cbi8vIExlZ2FjeVxuJHNtYWxsOiAkbWVkaXVtLXVwO1xuJG1lZGl1bTogJG1lZGl1bS11cDtcbiRsYXJnZTogJGxhcmdlLXVwO1xuXG5cbi8vV2UgdXNlIHRoaXMgYXMgY3Vyc29ycyB2YWx1ZXMgZm9yIGVuYWJsaW5nIHRoZSBvcHRpb24gb2YgaGF2aW5nIGN1c3RvbSBjdXJzb3JzIGluIHRoZSB3aG9sZSBzaXRlJ3Mgc3R5bGVzaGVldFxuJGN1cnNvci1hdXRvLXZhbHVlOiBhdXRvICFkZWZhdWx0O1xuJGN1cnNvci1jcm9zc2hhaXItdmFsdWU6IGNyb3NzaGFpciAhZGVmYXVsdDtcbiRjdXJzb3ItZGVmYXVsdC12YWx1ZTogZGVmYXVsdCAhZGVmYXVsdDtcbiRjdXJzb3ItZGlzYWJsZWQtdmFsdWU6IG5vdC1hbGxvd2VkICFkZWZhdWx0O1xuJGN1cnNvci1wb2ludGVyLXZhbHVlOiBwb2ludGVyICFkZWZhdWx0O1xuJGN1cnNvci1oZWxwLXZhbHVlOiBoZWxwICFkZWZhdWx0O1xuJGN1cnNvci10ZXh0LXZhbHVlOiB0ZXh0ICFkZWZhdWx0O1xuXG5cbkBpbmNsdWRlIGV4cG9ydHMoXCJnbG9iYWxcIikge1xuXG4gIC8vIE1ldGEgc3R5bGVzIGFyZSBpbmNsdWRlZCBpbiBhbGwgYnVpbGRzLCBhcyB0aGV5IGFyZSBhIGRlcGVuZGFuY3kgb2YgdGhlIEphdmFzY3JpcHQuXG4gIC8vIFVzZWQgdG8gcHJvdmlkZSBtZWRpYSBxdWVyeSB2YWx1ZXMgZm9yIGphdmFzY3JpcHQgY29tcG9uZW50cy5cbiAgLy8gRm9yd2FyZCBzbGFzaCBwbGFjZWQgYXJvdW5kIGV2ZXJ5dGhpbmcgdG8gY29udmluY2UgUGhhbnRvbUpTIHRvIHJlYWQgdGhlIHZhbHVlLlxuXG4gIG1ldGEuZm91bmRhdGlvbi12ZXJzaW9uIHtcbiAgICBmb250LWZhbWlseTogXCIvNS41LjEvXCI7XG4gIH1cblxuICBtZXRhLmZvdW5kYXRpb24tbXEtc21hbGwge1xuICAgIGZvbnQtZmFtaWx5OiBcIi9cIiArIHVucXVvdGUoJHNtYWxsLXVwKSArIFwiL1wiO1xuICAgIHdpZHRoOiBsb3dlci1ib3VuZCgkc21hbGwtcmFuZ2UpO1xuICB9XG5cbiAgbWV0YS5mb3VuZGF0aW9uLW1xLXNtYWxsLW9ubHkge1xuICAgIGZvbnQtZmFtaWx5OiBcIi9cIiArIHVucXVvdGUoJHNtYWxsLW9ubHkpICsgXCIvXCI7XG4gICAgd2lkdGg6IGxvd2VyLWJvdW5kKCRzbWFsbC1yYW5nZSk7XG4gIH1cblxuICBtZXRhLmZvdW5kYXRpb24tbXEtbWVkaXVtIHtcbiAgICBmb250LWZhbWlseTogXCIvXCIgKyB1bnF1b3RlKCRtZWRpdW0tdXApICsgXCIvXCI7XG4gICAgd2lkdGg6IGxvd2VyLWJvdW5kKCRtZWRpdW0tcmFuZ2UpO1xuICB9XG5cbiAgbWV0YS5mb3VuZGF0aW9uLW1xLW1lZGl1bS1vbmx5IHtcbiAgICBmb250LWZhbWlseTogXCIvXCIgKyB1bnF1b3RlKCRtZWRpdW0tb25seSkgKyBcIi9cIjtcbiAgICB3aWR0aDogbG93ZXItYm91bmQoJG1lZGl1bS1yYW5nZSk7XG4gIH1cblxuICBtZXRhLmZvdW5kYXRpb24tbXEtbGFyZ2Uge1xuICAgIGZvbnQtZmFtaWx5OiBcIi9cIiArIHVucXVvdGUoJGxhcmdlLXVwKSArIFwiL1wiO1xuICAgIHdpZHRoOiBsb3dlci1ib3VuZCgkbGFyZ2UtcmFuZ2UpO1xuICB9XG5cbiAgbWV0YS5mb3VuZGF0aW9uLW1xLWxhcmdlLW9ubHkge1xuICAgIGZvbnQtZmFtaWx5OiBcIi9cIiArIHVucXVvdGUoJGxhcmdlLW9ubHkpICsgXCIvXCI7XG4gICAgd2lkdGg6IGxvd2VyLWJvdW5kKCRsYXJnZS1yYW5nZSk7XG4gIH1cblxuICBtZXRhLmZvdW5kYXRpb24tbXEteGxhcmdlIHtcbiAgICBmb250LWZhbWlseTogXCIvXCIgKyB1bnF1b3RlKCR4bGFyZ2UtdXApICsgXCIvXCI7XG4gICAgd2lkdGg6IGxvd2VyLWJvdW5kKCR4bGFyZ2UtcmFuZ2UpO1xuICB9XG5cbiAgbWV0YS5mb3VuZGF0aW9uLW1xLXhsYXJnZS1vbmx5IHtcbiAgICBmb250LWZhbWlseTogXCIvXCIgKyB1bnF1b3RlKCR4bGFyZ2Utb25seSkgKyBcIi9cIjtcbiAgICB3aWR0aDogbG93ZXItYm91bmQoJHhsYXJnZS1yYW5nZSk7XG4gIH1cblxuICBtZXRhLmZvdW5kYXRpb24tbXEteHhsYXJnZSB7XG4gICAgZm9udC1mYW1pbHk6IFwiL1wiICsgdW5xdW90ZSgkeHhsYXJnZS11cCkgKyBcIi9cIjtcbiAgICB3aWR0aDogbG93ZXItYm91bmQoJHh4bGFyZ2UtcmFuZ2UpO1xuICB9XG5cbiAgbWV0YS5mb3VuZGF0aW9uLWRhdGEtYXR0cmlidXRlLW5hbWVzcGFjZSB7XG4gICAgZm9udC1mYW1pbHk6ICN7JG5hbWVzcGFjZX07XG4gIH1cblxuICBAaWYgJGluY2x1ZGUtaHRtbC1nbG9iYWwtY2xhc3NlcyB7XG5cbiAgICAvLyBNdXN0IGJlIDEwMCUgZm9yIG9mZiBjYW52YXMgdG8gd29ya1xuICAgIGh0bWwsIGJvZHkgeyBoZWlnaHQ6IDEwMCU7IH1cblxuICAgIC8vIFNldCBib3gtc2l6aW5nIGdsb2JhbGx5IHRvIGhhbmRsZSBwYWRkaW5nIGFuZCBib3JkZXIgd2lkdGhzXG4gICAgKixcbiAgICAqOmJlZm9yZSxcbiAgICAqOmFmdGVyIHtcbiAgICAgIEBpbmNsdWRlIGJveC1zaXppbmcoYm9yZGVyLWJveCk7XG4gICAgfVxuXG4gICAgaHRtbCxcbiAgICBib2R5IHsgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemU7IH1cblxuICAgIC8vIERlZmF1bHQgYm9keSBzdHlsZXNcbiAgICBib2R5IHtcbiAgICAgIGJhY2tncm91bmQ6ICRib2R5LWJnO1xuICAgICAgY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5O1xuICAgICAgZm9udC13ZWlnaHQ6ICRib2R5LWZvbnQtd2VpZ2h0O1xuICAgICAgZm9udC1zdHlsZTogJGJvZHktZm9udC1zdHlsZTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAkYmFzZS1saW5lLWhlaWdodDsgLy8gU2V0IHRvICRiYXNlLWxpbmUtaGVpZ2h0IHRvIHRha2Ugb24gYnJvd3NlciBkZWZhdWx0IG9mIDE1MCVcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGN1cnNvcjogJGN1cnNvci1hdXRvLXZhbHVlO1xuICAgIH1cblxuICBhOmhvdmVyIHsgY3Vyc29yOiAkY3Vyc29yLXBvaW50ZXItdmFsdWU7IH1cblxuICAgIC8vIEdyaWQgRGVmYXVsdHMgdG8gZ2V0IGltYWdlcyBhbmQgZW1iZWRzIHRvIHdvcmsgcHJvcGVybHlcbiAgICBpbWcgeyBtYXgtd2lkdGg6IDEwMCU7IGhlaWdodDogYXV0bzsgfVxuXG4gICAgaW1nIHsgLW1zLWludGVycG9sYXRpb24tbW9kZTogYmljdWJpYzsgfVxuXG4gICAgI21hcF9jYW52YXMsXG4gICAgLm1hcF9jYW52YXMge1xuICAgICAgaW1nLFxuICAgICAgZW1iZWQsXG4gICAgICBvYmplY3QgeyBtYXgtd2lkdGg6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBNaXNjZWxsYW5lb3VzIHVzZWZ1bCBIVE1MIGNsYXNzZXNcbiAgICAubGVmdCB7IGZsb2F0OiBsZWZ0ICFpbXBvcnRhbnQ7IH1cbiAgICAucmlnaHQgeyBmbG9hdDogcmlnaHQgIWltcG9ydGFudDsgfVxuICAgIC5jbGVhcmZpeCB7IEBpbmNsdWRlIGNsZWFyZml4OyB9XG5cbiAgICAvLyBIaWRlIHZpc3VhbGx5IGFuZCBmcm9tIHNjcmVlbiByZWFkZXJzXG4gICAgLmhpZGUge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAvLyBIaWRlIHZpc3VhbGx5IGFuZCBmcm9tIHNjcmVlbiByZWFkZXJzLCBidXQgbWFpbnRhaW4gbGF5b3V0XG4gICAgLmludmlzaWJsZSB7IHZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG4gICAgLy8gRm9udCBzbW9vdGhpbmdcbiAgICAvLyBBbnRpYWxpYXNlZCBmb250IHNtb290aGluZyB3b3JrcyBiZXN0IGZvciBsaWdodCB0ZXh0IG9uIGEgZGFyayBiYWNrZ3JvdW5kLlxuICAgIC8vIEFwcGx5IHRvIHNpbmdsZSBlbGVtZW50cyBpbnN0ZWFkIG9mIGdsb2JhbGx5IHRvIGJvZHkuXG4gICAgLy8gTm90ZSB0aGlzIG9ubHkgYXBwbGllcyB0byB3ZWJraXQtYmFzZWQgZGVza3RvcCBicm93c2VycyBhbmQgRmlyZWZveCAyNSAoYW5kIGxhdGVyKSBvbiB0aGUgTWFjLlxuICAgIC5hbnRpYWxpYXNlZCB7IC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkOyAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlOyB9XG5cbiAgICAvLyBHZXQgcmlkIG9mIGdhcCB1bmRlciBpbWFnZXMgYnkgbWFraW5nIHRoZW0gZGlzcGxheTogaW5saW5lLWJsb2NrOyBieSBkZWZhdWx0XG4gICAgaW1nIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuXG4gICAgLy9cbiAgICAvLyBHbG9iYWwgcmVzZXRzIGZvciBmb3Jtc1xuICAgIC8vXG5cbiAgICAvLyBNYWtlIHN1cmUgdGV4dGFyZWEgdGFrZXMgb24gaGVpZ2h0IGF1dG9tYXRpY2FsbHlcbiAgICB0ZXh0YXJlYSB7IGhlaWdodDogYXV0bzsgbWluLWhlaWdodDogNTBweDsgfVxuXG4gICAgLy8gTWFrZSBzZWxlY3QgZWxlbWVudHMgMTAwJSB3aWR0aCBieSBkZWZhdWx0XG4gICAgc2VsZWN0IHsgd2lkdGg6IDEwMCU7IH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8gVGhpcyBpcyB0aGUgZGVmYXVsdCBodG1sIGFuZCBib2R5IGZvbnQtc2l6ZSBmb3IgdGhlIGJhc2UgcmVtIHZhbHVlLlxuJHJlbS1iYXNlOiAxNnB4ICFkZWZhdWx0O1xuXG4vLyBJTVBPUlQgT05DRVxuLy8gV2UgdXNlIHRoaXMgdG8gcHJldmVudCBzdHlsZXMgZnJvbSBiZWluZyBsb2FkZWQgbXVsdGlwbGUgdGltZXMgZm9yIGNvbXBvbmVudHMgdGhhdCByZWx5IG9uIG90aGVyIGNvbXBvbmVudHMuXG4kbW9kdWxlczogKCkgIWRlZmF1bHQ7XG5AbWl4aW4gZXhwb3J0cygkbmFtZSkge1xuICAvLyBJbXBvcnQgZnJvbSBnbG9iYWwgc2NvcGVcbiAgJG1vZHVsZXM6ICRtb2R1bGVzICFnbG9iYWw7XG4gIC8vIENoZWNrIGlmIGEgbW9kdWxlIGlzIGFscmVhZHkgb24gdGhlIGxpc3RcbiAgJG1vZHVsZV9pbmRleDogaW5kZXgoJG1vZHVsZXMsICRuYW1lKTtcbiAgQGlmICgoJG1vZHVsZV9pbmRleCA9PSBudWxsKSBvciAoJG1vZHVsZV9pbmRleCA9PSBmYWxzZSkpIHtcbiAgICAkbW9kdWxlczogYXBwZW5kKCRtb2R1bGVzLCAkbmFtZSkgIWdsb2JhbDtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vL1xuLy8gQGZ1bmN0aW9uc1xuLy9cblxuXG4vLyBSQU5HRVNcbi8vIFdlIHVzZSB0aGVzZSBmdW5jdGlvbnMgdG8gZGVmaW5lIHJhbmdlcyBmb3IgdmFyaW91cyB0aGluZ3MsIGxpa2UgbWVkaWEgcXVlcmllcy5cbkBmdW5jdGlvbiBsb3dlci1ib3VuZCgkcmFuZ2Upe1xuICBAaWYgbGVuZ3RoKCRyYW5nZSkgPD0gMCB7XG4gICAgQHJldHVybiAwO1xuICB9XG4gIEByZXR1cm4gbnRoKCRyYW5nZSwxKTtcbn1cblxuQGZ1bmN0aW9uIHVwcGVyLWJvdW5kKCRyYW5nZSkge1xuICBAaWYgbGVuZ3RoKCRyYW5nZSkgPCAyIHtcbiAgICBAcmV0dXJuIDk5OTk5OTk5OTk5OTtcbiAgfVxuICBAcmV0dXJuIG50aCgkcmFuZ2UsIDIpO1xufVxuXG4vLyBTVFJJUCBVTklUXG4vLyBJdCBzdHJpcHMgdGhlIHVuaXQgb2YgbWVhc3VyZSBhbmQgcmV0dXJucyBpdFxuQGZ1bmN0aW9uIHN0cmlwLXVuaXQoJG51bSkge1xuICBAcmV0dXJuICRudW0gLyAoJG51bSAqIDAgKyAxKTtcbn1cblxuLy8gVEVYVCBJTlBVVCBUWVBFU1xuXG5AZnVuY3Rpb24gdGV4dC1pbnB1dHMoICR0eXBlczogYWxsLCAkc2VsZWN0b3I6IGlucHV0ICkge1xuXG4gICAgJHJldHVybjogKCk7XG5cbiAgICAkYWxsLXRleHQtaW5wdXQtdHlwZXM6XG4gICAgICB0ZXh0XG4gICAgICBwYXNzd29yZFxuICAgICAgZGF0ZVxuICAgICAgZGF0ZXRpbWVcbiAgICAgIGRhdGV0aW1lLWxvY2FsXG4gICAgICBtb250aFxuICAgICAgd2Vla1xuICAgICAgZW1haWxcbiAgICAgIG51bWJlclxuICAgICAgc2VhcmNoXG4gICAgICB0ZWxcbiAgICAgIHRpbWVcbiAgICAgIHVybFxuICAgICAgY29sb3JcbiAgICAgIHRleHRhcmVhO1xuXG4gICAgQGlmICR0eXBlcyA9PSBhbGwgeyAkdHlwZXM6ICRhbGwtdGV4dC1pbnB1dC10eXBlczsgfVxuXG4gICAgQGVhY2ggJHR5cGUgaW4gJHR5cGVzIHtcbiAgICAgICAgQGlmICR0eXBlID09IHRleHRhcmVhIHtcbiAgICAgICAgICAgIEBpZiAkc2VsZWN0b3IgPT0gaW5wdXQge1xuICAgICAgICAgICAgICAkcmV0dXJuOiBhcHBlbmQoJHJldHVybiwgdW5xdW90ZSgnI3skdHlwZX0nKSwgY29tbWEpXG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgJHJldHVybjogYXBwZW5kKCRyZXR1cm4sIHVucXVvdGUoJyN7JHR5cGV9I3skc2VsZWN0b3J9JyksIGNvbW1hKVxuICAgICAgICAgICAgfVxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICRyZXR1cm46IGFwcGVuZCgkcmV0dXJuLCB1bnF1b3RlKCcjeyRzZWxlY3Rvcn1bdHlwZT1cIiN7JHR5cGV9XCJdJyksIGNvbW1hKVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgQHJldHVybiAkcmV0dXJuO1xuXG59XG5cbi8vIENPTlZFUlQgVE8gUkVNXG5AZnVuY3Rpb24gY29udmVydC10by1yZW0oJHZhbHVlLCAkYmFzZS12YWx1ZTogJHJlbS1iYXNlKSAge1xuICAkdmFsdWU6IHN0cmlwLXVuaXQoJHZhbHVlKSAvIHN0cmlwLXVuaXQoJGJhc2UtdmFsdWUpICogMXJlbTtcbiAgQGlmICgkdmFsdWUgPT0gMHJlbSkgeyAkdmFsdWU6IDA7IH0gLy8gVHVybiAwcmVtIGludG8gMFxuICBAcmV0dXJuICR2YWx1ZTtcbn1cblxuQGZ1bmN0aW9uIGRhdGEoJGF0dHIpIHtcbiAgQGlmICRuYW1lc3BhY2Uge1xuICAgIEByZXR1cm4gJ1tkYXRhLScgKyAkbmFtZXNwYWNlICsgJy0nICsgJGF0dHIgKyAnXSc7XG4gIH1cblxuICBAcmV0dXJuICdbZGF0YS0nICsgJGF0dHIgKyAnXSc7XG59XG5cbi8vIFJFTSBDQUxDXG5cbi8vIE5ldyBTeW50YXgsIGFsbG93cyB0byBvcHRpb25hbGx5IGNhbGN1bGF0ZSBvbiBhIGRpZmZlcmVudCBiYXNlIHZhbHVlIHRvIGNvdW50ZXIgY29tcG91bmRpbmcgZWZmZWN0IG9mIHJlbSdzLlxuLy8gQ2FsbCB3aXRoIDEsIDIsIDMgb3IgNCBwYXJhbWV0ZXJzLCAncHgnIGlzIG5vdCByZXF1aXJlZCBidXQgc3VwcG9ydGVkOlxuLy9cbi8vICAgcmVtLWNhbGMoMTAgMjAgMzBweCA0MCk7XG4vL1xuLy8gU3BhY2UgZGVsaW1pdGVkLCBpZiB5b3Ugd2FudCB0byBkZWxpbWl0IHVzaW5nIGNvbW1hJ3MsIHdyYXAgaXQgaW4gYW5vdGhlciBwYWlyIG9mIGJyYWNrZXRzXG4vL1xuLy8gICByZW0tY2FsYygoMTAsIDIwLCAzMCwgNDBweCkpO1xuLy9cbi8vIE9wdGlvbmFsbHkgY2FsbCB3aXRoIGEgZGlmZmVyZW50IGJhc2UgKGVnOiA4cHgpIHRvIGNhbGN1bGF0ZSByZW0uXG4vL1xuLy8gICByZW0tY2FsYygxNnB4IDMycHggNDhweCwgOHB4KTtcbi8vXG4vLyBJZiB5b3UgcmVxdWlyZSB0byBjb21tYSBzZXBhcmF0ZSB5b3VyIGxpc3Rcbi8vXG4vLyAgIHJlbS1jYWxjKCgxNnB4LCAzMnB4LCA0OCksIDhweCk7XG5cbkBmdW5jdGlvbiByZW0tY2FsYygkdmFsdWVzLCAkYmFzZS12YWx1ZTogJHJlbS1iYXNlKSB7XG4gICRtYXg6IGxlbmd0aCgkdmFsdWVzKTtcblxuICBAaWYgJG1heCA9PSAxIHsgQHJldHVybiBjb252ZXJ0LXRvLXJlbShudGgoJHZhbHVlcywgMSksICRiYXNlLXZhbHVlKTsgfVxuXG4gICRyZW1WYWx1ZXM6ICgpO1xuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRtYXgge1xuICAgICRyZW1WYWx1ZXM6IGFwcGVuZCgkcmVtVmFsdWVzLCBjb252ZXJ0LXRvLXJlbShudGgoJHZhbHVlcywgJGkpLCAkYmFzZS12YWx1ZSkpO1xuICB9XG4gIEByZXR1cm4gJHJlbVZhbHVlcztcbn1cblxuLy8gT0xEIEVNIENBTENcbi8vIERlcHJlY2F0ZWQ6IFdlJ2xsIGRyb3Agc3VwcG9ydCBmb3IgdGhpcyBpbiA1LjEuMCwgdXNlIHJlbS1jYWxjKClcbkBmdW5jdGlvbiBlbUNhbGMoJHZhbHVlcyl7XG4gIEByZXR1cm4gcmVtLWNhbGMoJHZhbHVlcyk7XG59XG5cbi8vIE9MRCBFTSBDQUxDXG4vLyBEZXByZWNhdGVkOiBXZSdsbCBkcm9wIHN1cHBvcnQgZm9yIHRoaXMgaW4gNS4xLjAsIHVzZSByZW0tY2FsYygpXG5AZnVuY3Rpb24gZW0tY2FsYygkdmFsdWVzKXtcbiAgQHJldHVybiByZW0tY2FsYygkdmFsdWVzKTtcbn1cbiIsIi8vIEZvdW5kYXRpb24gYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBpbXBvcnQgXCJnbG9iYWxcIjtcblxuLy9cbi8vIEJsb2NrIEdyaWQgVmFyaWFibGVzXG4vL1xuJGluY2x1ZGUtaHRtbC1ibG9jay1ncmlkLWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcyAhZGVmYXVsdDtcbiRpbmNsdWRlLXhsLWh0bWwtYmxvY2stZ3JpZC1jbGFzc2VzOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoaXMgdG8gY29udHJvbCB0aGUgbWF4aW11bSBudW1iZXIgb2YgYmxvY2sgZ3JpZCBlbGVtZW50cyBwZXIgcm93XG4kYmxvY2stZ3JpZC1lbGVtZW50czogMTIgIWRlZmF1bHQ7XG4kYmxvY2stZ3JpZC1kZWZhdWx0LXNwYWNpbmc6IHJlbS1jYWxjKDIwKSAhZGVmYXVsdDtcblxuJGFsaWduLWJsb2NrLWdyaWQtdG8tZ3JpZDogZmFsc2UgIWRlZmF1bHQ7XG5AaWYgJGFsaWduLWJsb2NrLWdyaWQtdG8tZ3JpZCB7XG4gICRibG9jay1ncmlkLWRlZmF1bHQtc3BhY2luZzogJGNvbHVtbi1ndXR0ZXI7XG59XG5cbi8vIEVuYWJsZXMgbWVkaWEgcXVlcmllcyBmb3IgYmxvY2stZ3JpZCBjbGFzc2VzLiBTZXQgdG8gZmFsc2UgaWYgd3JpdGluZyBzZW1hbnRpYyBIVE1MLlxuJGJsb2NrLWdyaWQtbWVkaWEtcXVlcmllczogdHJ1ZSAhZGVmYXVsdDtcblxuLy9cbi8vIEJsb2NrIEdyaWQgTWl4aW5zXG4vL1xuXG4vLyBDcmVhdGUgYSBjdXN0b20gYmxvY2sgZ3JpZFxuLy9cbi8vICRwZXItcm93IC0gIyBvZiBpdGVtcyB0byBkaXNwbGF5IHBlciByb3cuIERlZmF1bHQ6IGZhbHNlLlxuLy8gJHNwYWNpbmcgLSAjIG9mIGVtcyB0byB1c2UgYXMgcGFkZGluZyBvbiBlYWNoIGJsb2NrIGl0ZW0uIERlZmF1bHQ6IHJlbS1jYWxjKDIwKS5cbi8vICRpbmNsdWRlLXNwYWNpbmcgLSBBZGRzIHBhZGRpbmcgdG8gb3VyIGxpc3QgaXRlbS4gRGVmYXVsdDogdHJ1ZS5cbi8vICRiYXNlLXN0eWxlIC0gQXBwbHkgYSBiYXNlIHN0eWxlIHRvIGJsb2NrIGdyaWQuIERlZmF1bHQ6IHRydWUuXG5AbWl4aW4gYmxvY2stZ3JpZChcbiAgJHBlci1yb3c6ZmFsc2UsXG4gICRzcGFjaW5nOiRibG9jay1ncmlkLWRlZmF1bHQtc3BhY2luZyxcbiAgJGluY2x1ZGUtc3BhY2luZzp0cnVlLFxuICAkYmFzZS1zdHlsZTp0cnVlKSB7XG5cbiAgQGlmICRiYXNlLXN0eWxlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAwO1xuICAgIEBpZiAkYWxpZ24tYmxvY2stZ3JpZC10by1ncmlkIHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICB9IEBlbHNlIHtcbiAgICAgIG1hcmdpbjogMCAoLSRzcGFjaW5nLzIpO1xuICAgIH1cbiAgICBAaW5jbHVkZSBjbGVhcmZpeDtcblxuICAgICY+bGkge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBmbG9hdDogJGRlZmF1bHQtZmxvYXQ7XG4gICAgICBAaWYgJGluY2x1ZGUtc3BhY2luZyB7XG4gICAgICAgIHBhZGRpbmc6IDAgKCRzcGFjaW5nLzIpICRzcGFjaW5nO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpZiAkcGVyLXJvdyB7XG4gICAgJj5saSB7XG4gICAgICB3aWR0aDogMTAwJS8kcGVyLXJvdztcbiAgICAgIEBpZiAkaW5jbHVkZS1zcGFjaW5nIHtcbiAgICAgICAgcGFkZGluZzogMCAoJHNwYWNpbmcvMikgJHNwYWNpbmc7XG4gICAgICB9XG4gICAgICBsaXN0LXN0eWxlOiBub25lO1xuXG4gICAgICAmOm50aC1vZi10eXBlKDFuKSB7IGNsZWFyOiBub25lOyB9XG4gICAgICAmOm50aC1vZi10eXBlKCN7JHBlci1yb3d9bisxKSB7IGNsZWFyOiBib3RoOyB9XG4gICAgICBAaWYgJGFsaWduLWJsb2NrLWdyaWQtdG8tZ3JpZCB7XG4gICAgICAgIEBpbmNsdWRlIGJsb2NrLWdyaWQtYWxpZ25lZCgkcGVyLXJvdywgJHNwYWNpbmcpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gYmxvY2stZ3JpZC1hbGlnbmVkKCRwZXItcm93LCAkc3BhY2luZykge1xuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRibG9jay1ncmlkLWVsZW1lbnRzIHtcbiAgICBAaWYgJHBlci1yb3cgPj0gJGkge1xuICAgICAgJGdyaWQtY29sdW1uOiAnKycgKyAkaTtcbiAgICAgIEBpZiAkcGVyLXJvdyA9PSAkaSB7XG4gICAgICAgICRncmlkLWNvbHVtbjogJyc7XG4gICAgICB9XG4gICAgICAmOm50aC1vZi10eXBlKCN7JHBlci1yb3d9biN7dW5xdW90ZSgkZ3JpZC1jb2x1bW4pfSkge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6ICgkc3BhY2luZyAtICgoJHNwYWNpbmcgLyAkcGVyLXJvdykgKiAoJHBlci1yb3cgLSAoJGkgLSAxKSkpKTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogKCRzcGFjaW5nIC0gKCgkc3BhY2luZyAvICRwZXItcm93KSAqICRpKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIEdlbmVyYXRlIHByZXNlbnRhdGlvbmFsIG1hcmt1cCBmb3IgYmxvY2sgZ3JpZC5cbi8vXG4vLyAkc2l6ZSAtIE5hbWUgb2YgY2xhc3MgdG8gdXNlLCBpLmUuIFwibGFyZ2VcIiB3aWxsIGdlbmVyYXRlIC5sYXJnZS1ibG9jay1ncmlkLTEsIC5sYXJnZS1ibG9jay1ncmlkLTIsIGV0Yy5cbkBtaXhpbiBibG9jay1ncmlkLWh0bWwtY2xhc3Nlcygkc2l6ZSwkaW5jbHVkZS1zcGFjaW5nKSB7XG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGJsb2NrLWdyaWQtZWxlbWVudHMge1xuICAgIC4jeyRzaXplfS1ibG9jay1ncmlkLSN7KCRpKX0ge1xuICAgICAgQGluY2x1ZGUgYmxvY2stZ3JpZCgkaSwkYmxvY2stZ3JpZC1kZWZhdWx0LXNwYWNpbmcsJGluY2x1ZGUtc3BhY2luZyxmYWxzZSk7XG4gICAgfVxuICB9XG59XG5cbkBpbmNsdWRlIGV4cG9ydHMoXCJibG9jay1ncmlkXCIpIHtcbiAgQGlmICRpbmNsdWRlLWh0bWwtYmxvY2stZ3JpZC1jbGFzc2VzIHtcblxuICAgIFtjbGFzcyo9XCJibG9jay1ncmlkLVwiXSB7IEBpbmNsdWRlIGJsb2NrLWdyaWQ7IH1cblxuICAgIEBpZiAkYmxvY2stZ3JpZC1tZWRpYS1xdWVyaWVzIHtcbiAgICAgIEBtZWRpYSAjeyRzbWFsbC11cH0ge1xuICAgICAgICBAaW5jbHVkZSBibG9jay1ncmlkLWh0bWwtY2xhc3Nlcygkc2l6ZTpzbWFsbCwkaW5jbHVkZS1zcGFjaW5nOmZhbHNlKTtcbiAgICAgIH1cblxuICAgICAgQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgICAgICBAaW5jbHVkZSBibG9jay1ncmlkLWh0bWwtY2xhc3Nlcygkc2l6ZTptZWRpdW0sJGluY2x1ZGUtc3BhY2luZzpmYWxzZSk7XG4gICAgICB9XG5cbiAgICAgIEBtZWRpYSAjeyRsYXJnZS11cH0ge1xuICAgICAgICBAaW5jbHVkZSBibG9jay1ncmlkLWh0bWwtY2xhc3Nlcygkc2l6ZTpsYXJnZSwkaW5jbHVkZS1zcGFjaW5nOmZhbHNlKTtcbiAgICAgIH1cblxuICAgICAgQGlmICRpbmNsdWRlLXhsLWh0bWwtYmxvY2stZ3JpZC1jbGFzc2VzIHtcbiAgICAgICAgQG1lZGlhICN7JHhsYXJnZS11cH0ge1xuICAgICAgICAgIEBpbmNsdWRlIGJsb2NrLWdyaWQtaHRtbC1jbGFzc2VzKCRzaXplOnhsYXJnZSwkaW5jbHVkZS1zcGFjaW5nOmZhbHNlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBtZWRpYSAjeyR4eGxhcmdlLXVwfSB7XG4gICAgICAgICAgQGluY2x1ZGUgYmxvY2stZ3JpZC1odG1sLWNsYXNzZXMoJHNpemU6eHhsYXJnZSwkaW5jbHVkZS1zcGFjaW5nOmZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQGltcG9ydCBcImdsb2JhbFwiO1xuXG4vL1xuLy8gQnJlYWRjcnVtYiBWYXJpYWJsZXNcbi8vXG4kaW5jbHVkZS1odG1sLW5hdi1jbGFzc2VzOiAkaW5jbHVkZS1odG1sLWNsYXNzZXMgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGlzIHRvIHNldCB0aGUgYmFja2dyb3VuZCBjb2xvciBmb3IgdGhlIGJyZWFkY3J1bWIgY29udGFpbmVyLlxuJGNydW1iLWJnOiBzY2FsZS1jb2xvcigkc2Vjb25kYXJ5LWNvbG9yLCAkbGlnaHRuZXNzOiA1NSUpICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gc2V0IHRoZSBwYWRkaW5nIGFyb3VuZCB0aGUgYnJlYWRjcnVtYnMuXG4kY3J1bWItcGFkZGluZzogcmVtLWNhbGMoOSAxNCA5KSAhZGVmYXVsdDtcbiRjcnVtYi1zaWRlLXBhZGRpbmc6IHJlbS1jYWxjKDEyKSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgYm9yZGVyIHN0eWxlcy5cbiRjcnVtYi1mdW5jdGlvbi1mYWN0b3I6IC0xMCUgIWRlZmF1bHQ7XG4kY3J1bWItYm9yZGVyLXNpemU6IDFweCAhZGVmYXVsdDtcbiRjcnVtYi1ib3JkZXItc3R5bGU6IHNvbGlkICFkZWZhdWx0O1xuJGNydW1iLWJvcmRlci1jb2xvcjogc2NhbGUtY29sb3IoJGNydW1iLWJnLCAkbGlnaHRuZXNzOiAkY3J1bWItZnVuY3Rpb24tZmFjdG9yKSAhZGVmYXVsdDtcbiRjcnVtYi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gc2V0IHZhcmlvdXMgdGV4dCBzdHlsZXMgZm9yIGJyZWFkY3J1bWJzLlxuJGNydW1iLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTEpICFkZWZhdWx0O1xuJGNydW1iLWZvbnQtY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuJGNydW1iLWZvbnQtY29sb3ItY3VycmVudDogJG9pbCAhZGVmYXVsdDtcbiRjcnVtYi1mb250LWNvbG9yLXVuYXZhaWxhYmxlOiAkYWx1bWludW0gIWRlZmF1bHQ7XG4kY3J1bWItZm9udC10cmFuc2Zvcm06IHVwcGVyY2FzZSAhZGVmYXVsdDtcbiRjcnVtYi1saW5rLWRlY29yOiB1bmRlcmxpbmUgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIHRoZSBzbGFzaCBiZXR3ZWVuIGJyZWFkY3J1bWJzXG4kY3J1bWItc2xhc2gtY29sb3I6ICRiYXNlICFkZWZhdWx0O1xuJGNydW1iLXNsYXNoOiBcIi9cIiAhZGVmYXVsdDtcblxuLy9cbi8vIEJyZWFkY3J1bWIgTWl4aW5zXG4vL1xuXG4vLyBXZSB1c2UgdGhpcyBtaXhpbiB0byBjcmVhdGUgYSBjb250YWluZXIgYXJvdW5kIG91ciBicmVhZGNydW1ic1xuQG1peGluIGNydW1iLWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAkY3J1bWItcGFkZGluZztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBib3JkZXItc3R5bGU6ICRjcnVtYi1ib3JkZXItc3R5bGU7XG4gIGJvcmRlci13aWR0aDogJGNydW1iLWJvcmRlci1zaXplO1xuXG4gIC8vIFdlIGNvbnRyb2wgd2hpY2ggYmFja2dyb3VuZCBjb2xvciBhbmQgYm9yZGVyIGNvbWUgdGhyb3VnaC5cbiAgYmFja2dyb3VuZC1jb2xvcjogJGNydW1iLWJnO1xuICBib3JkZXItY29sb3I6ICRjcnVtYi1ib3JkZXItY29sb3I7XG59XG5cbi8vIFdlIHVzZSB0aGlzIG1peGluIHRvIGNyZWF0ZSBicmVhZGNydW1iIHN0eWxlcyBmcm9tIGxpc3QgaXRlbXMuXG5AbWl4aW4gY3J1bWJzIHtcblxuICAvLyBBIG5vcm1hbCBzdGF0ZSB3aWxsIG1ha2UgdGhlIGxpbmtzIGxvb2sgYW5kIGFjdCBsaWtlIGNsaWNrYWJsZSBicmVhZGNydW1icy5cbiAgbWFyZ2luOiAwO1xuICBmbG9hdDogJGRlZmF1bHQtZmxvYXQ7XG4gIGZvbnQtc2l6ZTogJGNydW1iLWZvbnQtc2l6ZTtcbiAgbGluZS1oZWlnaHQ6ICRjcnVtYi1mb250LXNpemU7XG4gIHRleHQtdHJhbnNmb3JtOiAkY3J1bWItZm9udC10cmFuc2Zvcm07XG4gIGNvbG9yOiAkY3J1bWItZm9udC1jb2xvcjtcblxuICAmOmhvdmVyIGEsICY6Zm9jdXMgYSB7IHRleHQtZGVjb3JhdGlvbjogJGNydW1iLWxpbmstZGVjb3I7IH1cblxuICBhIHtcbiAgICBjb2xvcjogJGNydW1iLWZvbnQtY29sb3I7XG4gIH1cblxuICAvLyBDdXJyZW50IGlzIGZvciB0aGUgbGluayBvZiB0aGUgY3VycmVudCBwYWdlXG4gICYuY3VycmVudCB7XG4gICAgY3Vyc29yOiAkY3Vyc29yLWRlZmF1bHQtdmFsdWU7XG4gICAgY29sb3I6ICRjcnVtYi1mb250LWNvbG9yLWN1cnJlbnQ7XG4gICAgYSB7XG4gICAgICBjdXJzb3I6ICRjdXJzb3ItZGVmYXVsdC12YWx1ZTtcbiAgICAgIGNvbG9yOiAkY3J1bWItZm9udC1jb2xvci1jdXJyZW50O1xuICAgIH1cblxuICAgICY6aG92ZXIsICY6aG92ZXIgYSxcbiAgICAmOmZvY3VzLCAmOmZvY3VzIGEgeyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgfVxuXG4gIC8vIFVuYXZhaWxhYmxlIHJlbW92ZWQgY29sb3IgYW5kIGxpbmsgc3R5bGVzIHNvIGl0IGxvb2tzIGluYWN0aXZlLlxuICAmLnVuYXZhaWxhYmxlIHtcbiAgICBjb2xvcjogJGNydW1iLWZvbnQtY29sb3ItdW5hdmFpbGFibGU7XG4gICAgYSB7IGNvbG9yOiAkY3J1bWItZm9udC1jb2xvci11bmF2YWlsYWJsZTsgfVxuXG4gICAgJjpob3ZlcixcbiAgICAmOmhvdmVyIGEsXG4gICAgJjpmb2N1cyxcbiAgICBhOmZvY3VzIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGNvbG9yOiAkY3J1bWItZm9udC1jb2xvci11bmF2YWlsYWJsZTtcbiAgICAgIGN1cnNvcjogJGN1cnNvci1kaXNhYmxlZC12YWx1ZTtcbiAgICB9XG4gIH1cblxuICAmOmJlZm9yZSB7XG4gICAgY29udGVudDogXCIjeyRjcnVtYi1zbGFzaH1cIjtcbiAgICBjb2xvcjogJGNydW1iLXNsYXNoLWNvbG9yO1xuICAgIG1hcmdpbjogMCAkY3J1bWItc2lkZS1wYWRkaW5nO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDFweDtcbiAgfVxuXG4gICY6Zmlyc3QtY2hpbGQ6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIiBcIjtcbiAgICBtYXJnaW46IDA7XG4gIH1cbn1cblxuQGluY2x1ZGUgZXhwb3J0cyhcImJyZWFkY3J1bWJzXCIpIHtcbiAgQGlmICRpbmNsdWRlLWh0bWwtbmF2LWNsYXNzZXMge1xuICAgIC5icmVhZGNydW1icyB7XG4gICAgICBAaW5jbHVkZSBjcnVtYi1jb250YWluZXI7XG4gICAgICBAaW5jbHVkZSByYWRpdXMoJGNydW1iLXJhZGl1cyk7XG5cbiAgICAgICY+KiB7XG4gICAgICAgIEBpbmNsdWRlIGNydW1icztcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLyogQWNjZXNzaWJpbGl0eSAtIGhpZGVzIHRoZSBmb3J3YXJkIHNsYXNoICovXG5bYXJpYS1sYWJlbD1cImJyZWFkY3J1bWJzXCJdIFthcmlhLWhpZGRlbj1cInRydWVcIl06YWZ0ZXIge1xuICBjb250ZW50OiBcIi9cIjtcbiAgfVxuIiwiLy8gRm91bmRhdGlvbiBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQGltcG9ydCBcImdsb2JhbFwiO1xuQGltcG9ydCBcImJ1dHRvbnNcIjtcblxuLy9cbi8vIEB2YXJpYWJsZXNcbi8vXG4kaW5jbHVkZS1odG1sLWZvcm0tY2xhc3NlczogJGluY2x1ZGUtaHRtbC1jbGFzc2VzICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhpcyB0byBzZXQgdGhlIGJhc2UgZm9yIGxvdHMgb2YgZm9ybSBzcGFjaW5nIGFuZCBwb3NpdGlvbmluZyBzdHlsZXNcbiRmb3JtLXNwYWNpbmc6IHJlbS1jYWxjKDE2KSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHN0eWxlIHRoZSBsYWJlbHMgaW4gZGlmZmVyZW50IHdheXNcbiRmb3JtLWxhYmVsLXBvaW50ZXI6IHBvaW50ZXIgIWRlZmF1bHQ7XG4kZm9ybS1sYWJlbC1mb250LXNpemU6IHJlbS1jYWxjKDE0KSAhZGVmYXVsdDtcbiRmb3JtLWxhYmVsLWZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuJGZvcm0tbGFiZWwtbGluZS1oZWlnaHQ6IDEuNSAhZGVmYXVsdDtcbiRmb3JtLWxhYmVsLWZvbnQtY29sb3I6IHNjYWxlLWNvbG9yKCRibGFjaywgJGxpZ2h0bmVzczogMzAlKSAhZGVmYXVsdDtcbiRmb3JtLWxhYmVsLXNtYWxsLXRyYW5zZm9ybTogY2FwaXRhbGl6ZSAhZGVmYXVsdDtcbiRmb3JtLWxhYmVsLWJvdHRvbS1tYXJnaW46IDAgIWRlZmF1bHQ7XG4kaW5wdXQtZm9udC1mYW1pbHk6IGluaGVyaXQgIWRlZmF1bHQ7XG4kaW5wdXQtZm9udC1jb2xvcjogcmdiYSgwLDAsMCwwLjc1KSAhZGVmYXVsdDtcbiRpbnB1dC1mb250LXNpemU6IHJlbS1jYWxjKDE0KSAhZGVmYXVsdDtcbiRpbnB1dC1iZy1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuJGlucHV0LWZvY3VzLWJnLWNvbG9yOiBzY2FsZS1jb2xvcigkd2hpdGUsICRsaWdodG5lc3M6IC0yJSkgIWRlZmF1bHQ7XG4kaW5wdXQtYm9yZGVyLWNvbG9yOiBzY2FsZS1jb2xvcigkd2hpdGUsICRsaWdodG5lc3M6IC0yMCUpICFkZWZhdWx0O1xuJGlucHV0LWZvY3VzLWJvcmRlci1jb2xvcjogc2NhbGUtY29sb3IoJHdoaXRlLCAkbGlnaHRuZXNzOiAtNDAlKSAhZGVmYXVsdDtcbiRpbnB1dC1ib3JkZXItc3R5bGU6IHNvbGlkICFkZWZhdWx0O1xuJGlucHV0LWJvcmRlci13aWR0aDogMXB4ICFkZWZhdWx0O1xuJGlucHV0LWJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuJGlucHV0LWRpc2FibGVkLWJnOiAkZ2FpbnNib3JvICFkZWZhdWx0O1xuJGlucHV0LWRpc2FibGVkLWN1cnNvcjogJGN1cnNvci1kZWZhdWx0LXZhbHVlICFkZWZhdWx0O1xuJGlucHV0LWJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDJweCByZ2JhKDAsMCwwLDAuMSkgIWRlZmF1bHQ7XG4kaW5wdXQtaW5jbHVkZS1nbG93aW5nLWVmZmVjdDogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBzdHlsZSB0aGUgZmllbGRzZXQgYm9yZGVyIGFuZCBzcGFjaW5nLlxuJGZpZWxkc2V0LWJvcmRlci1zdHlsZTogc29saWQgIWRlZmF1bHQ7XG4kZmllbGRzZXQtYm9yZGVyLXdpZHRoOiAxcHggIWRlZmF1bHQ7XG4kZmllbGRzZXQtYm9yZGVyLWNvbG9yOiAkZ2FpbnNib3JvICFkZWZhdWx0O1xuJGZpZWxkc2V0LXBhZGRpbmc6IHJlbS1jYWxjKDIwKSAhZGVmYXVsdDtcbiRmaWVsZHNldC1tYXJnaW46IHJlbS1jYWxjKDE4IDApICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gc3R5bGUgdGhlIGxlZ2VuZHMgd2hlbiB5b3UgdXNlIHRoZW1cbiRsZWdlbmQtYmc6ICR3aGl0ZSAhZGVmYXVsdDtcbiRsZWdlbmQtZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ib2xkICFkZWZhdWx0O1xuJGxlZ2VuZC1wYWRkaW5nOiByZW0tY2FsYygwIDMpICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gc3R5bGUgdGhlIHByZWZpeCBhbmQgcG9zdGZpeCBpbnB1dCBlbGVtZW50c1xuJGlucHV0LXByZWZpeC1iZzogc2NhbGUtY29sb3IoJHdoaXRlLCAkbGlnaHRuZXNzOiAtNSUpICFkZWZhdWx0O1xuJGlucHV0LXByZWZpeC1ib3JkZXItY29sb3I6IHNjYWxlLWNvbG9yKCR3aGl0ZSwgJGxpZ2h0bmVzczogLTIwJSkgIWRlZmF1bHQ7XG4kaW5wdXQtcHJlZml4LWJvcmRlci1zaXplOiAxcHggIWRlZmF1bHQ7XG4kaW5wdXQtcHJlZml4LWJvcmRlci10eXBlOiBzb2xpZCAhZGVmYXVsdDtcbiRpbnB1dC1wcmVmaXgtb3ZlcmZsb3c6IHZpc2libGUgIWRlZmF1bHQ7XG4kaW5wdXQtcHJlZml4LWZvbnQtY29sb3I6ICRvaWwgIWRlZmF1bHQ7XG4kaW5wdXQtcHJlZml4LWZvbnQtY29sb3ItYWx0OiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGlzIHNldHRpbmcgdG8gdHVybiBvbi9vZmYgSFRNTDUgbnVtYmVyIHNwaW5uZXJzICh0aGUgdXAvZG93biBhcnJvd3MpXG4kaW5wdXQtbnVtYmVyLXNwaW5uZXJzOiB0cnVlICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gc3R5bGUgdGhlIGVycm9yIHN0YXRlcyBmb3IgaW5wdXRzIGFuZCBsYWJlbHNcbiRpbnB1dC1lcnJvci1tZXNzYWdlLXBhZGRpbmc6IHJlbS1jYWxjKDYgOSA5KSAhZGVmYXVsdDtcbiRpbnB1dC1lcnJvci1tZXNzYWdlLXRvcDogLTFweCAhZGVmYXVsdDtcbiRpbnB1dC1lcnJvci1tZXNzYWdlLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpICFkZWZhdWx0O1xuJGlucHV0LWVycm9yLW1lc3NhZ2UtZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG4kaW5wdXQtZXJyb3ItbWVzc2FnZS1mb250LXN0eWxlOiBpdGFsaWMgIWRlZmF1bHQ7XG4kaW5wdXQtZXJyb3ItbWVzc2FnZS1mb250LWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG4kaW5wdXQtZXJyb3ItbWVzc2FnZS1iZy1jb2xvcjogJGFsZXJ0LWNvbG9yICFkZWZhdWx0O1xuJGlucHV0LWVycm9yLW1lc3NhZ2UtZm9udC1jb2xvci1hbHQ6ICRvaWwgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGlzIHRvIHN0eWxlIHRoZSBnbG93aW5nIGVmZmVjdCBvZiBpbnB1dHMgd2hlbiBmb2N1c2VkXG4kZ2xvd2luZy1lZmZlY3QtZmFkZS10aW1lOiAwLjQ1cyAhZGVmYXVsdDtcbiRnbG93aW5nLWVmZmVjdC1jb2xvcjogJGlucHV0LWZvY3VzLWJvcmRlci1jb2xvciAhZGVmYXVsdDtcblxuLy8gU2VsZWN0IHZhcmlhYmxlc1xuJHNlbGVjdC1iZy1jb2xvcjogJGdob3N0ICFkZWZhdWx0O1xuJHNlbGVjdC1ob3Zlci1iZy1jb2xvcjogc2NhbGUtY29sb3IoJHNlbGVjdC1iZy1jb2xvciwgJGxpZ2h0bmVzczogLTMlKSAhZGVmYXVsdDtcblxuLy9cbi8vIEBNSVhJTlNcbi8vXG5cbi8vIFdlIHVzZSB0aGlzIG1peGluIHRvIGdpdmUgdXMgZm9ybSBzdHlsZXMgZm9yIHJvd3MgaW5zaWRlIG9mIGZvcm1zXG5AbWl4aW4gZm9ybS1yb3ctYmFzZSB7XG4gIC5yb3cgeyBtYXJnaW46IDAgKCgtJGZvcm0tc3BhY2luZykgLyAyKTtcblxuICAgIC5jb2x1bW4sXG4gICAgLmNvbHVtbnMgeyBwYWRkaW5nOiAwICgkZm9ybS1zcGFjaW5nIC8gMik7IH1cblxuICAgIC8vIFVzZSB0aGlzIHRvIGNvbGxhcHNlIHRoZSBtYXJnaW5zIG9mIGEgZm9ybSByb3dcbiAgICAmLmNvbGxhcHNlIHsgbWFyZ2luOiAwO1xuXG4gICAgICAuY29sdW1uLFxuICAgICAgLmNvbHVtbnMgeyBwYWRkaW5nOiAwOyB9XG4gICAgICBpbnB1dCB7XG4gICAgICAgIEBpbmNsdWRlIHNpZGUtcmFkaXVzKCRvcHBvc2l0ZS1kaXJlY3Rpb24sIDApO1xuICAgICAgfVxuXG4gICAgfVxuICB9XG4gIGlucHV0LmNvbHVtbixcbiAgaW5wdXQuY29sdW1ucyxcbiAgdGV4dGFyZWEuY29sdW1uLFxuICB0ZXh0YXJlYS5jb2x1bW5zIHsgcGFkZGluZy0jeyRkZWZhdWx0LWZsb2F0fTogKCRmb3JtLXNwYWNpbmcgLyAyKTsgfVxufVxuXG4vLyBATUlYSU5cbi8vXG4vLyBXZSB1c2UgdGhpcyBtaXhpbiB0byBnaXZlIGFsbCBiYXNpYyBmb3JtIGVsZW1lbnRzIHRoZWlyIHN0eWxlXG5AbWl4aW4gZm9ybS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWJnLWNvbG9yO1xuICBmb250LWZhbWlseTogJGlucHV0LWZvbnQtZmFtaWx5O1xuICBib3JkZXI6IHtcbiAgICBzdHlsZTogJGlucHV0LWJvcmRlci1zdHlsZTtcbiAgICB3aWR0aDogJGlucHV0LWJvcmRlci13aWR0aDtcbiAgICBjb2xvcjogJGlucHV0LWJvcmRlci1jb2xvcjtcbiAgfVxuICBib3gtc2hhZG93OiAkaW5wdXQtYm94LXNoYWRvdztcbiAgY29sb3I6ICRpbnB1dC1mb250LWNvbG9yO1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAkaW5wdXQtZm9udC1zaXplO1xuICBtYXJnaW46IDAgMCAkZm9ybS1zcGFjaW5nIDA7XG4gIHBhZGRpbmc6ICRmb3JtLXNwYWNpbmcgLyAyO1xuICBoZWlnaHQ6ICgkaW5wdXQtZm9udC1zaXplICsgKCRmb3JtLXNwYWNpbmcgKiAxLjUpIC0gcmVtLWNhbGMoMSkpO1xuICB3aWR0aDogMTAwJTtcbiAgQGluY2x1ZGUgYm94LXNpemluZyhib3JkZXItYm94KTtcbiAgQGlmICRpbnB1dC1pbmNsdWRlLWdsb3dpbmctZWZmZWN0IHtcbiAgICBAaW5jbHVkZSBibG9jay1nbG93aW5nLWVmZmVjdChmb2N1cywgJGdsb3dpbmctZWZmZWN0LWZhZGUtdGltZSwgJGdsb3dpbmctZWZmZWN0LWNvbG9yKTtcbiAgfVxuICAvLyBCYXNpYyBmb2N1cyBzdHlsZXNcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZDogJGlucHV0LWZvY3VzLWJnLWNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGlucHV0LWZvY3VzLWJvcmRlci1jb2xvcjtcbiAgICBvdXRsaW5lOiBub25lO1xuICB9XG4gIC8vIERpc2JhbGVkIFN0eWxlc1xuICAmOmRpc2FibGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtZGlzYWJsZWQtYmc7XG4gICAgY3Vyc29yOiAkaW5wdXQtZGlzYWJsZWQtY3Vyc29yO1xuICB9XG5cbiAgLy8gRGlzYWJsZWQgYmFja2dyb3VuZCBpbnB1dCBiYWNrZ3JvdW5kIGNvbG9yXG4gICZbZGlzYWJsZWRdLFxuICAmW3JlYWRvbmx5XSxcbiAgZmllbGRzZXRbZGlzYWJsZWRdICYge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1kaXNhYmxlZC1iZztcbiAgICBjdXJzb3I6ICRpbnB1dC1kaXNhYmxlZC1jdXJzb3I7XG4gIH1cbn1cblxuLy8gQE1JWElOXG4vL1xuLy8gV2UgdXNlIHRoaXMgbWl4aW4gdG8gY3JlYXRlIGZvcm0gbGFiZWxzXG4vL1xuLy8gJGFsaWdubWVudCAtIEFsaWdubWVudCBvcHRpb25zLiBEZWZhdWx0OiBmYWxzZS4gT3B0aW9uczogW3JpZ2h0LCBpbmxpbmUsIGZhbHNlXVxuLy8gJGJhc2Utc3R5bGUgLSBDb250cm9sIHdoZXRoZXIgb3Igbm90IHRoZSBiYXNlIHN0eWxlcyBjb21lIHRocm91Z2guIERlZmF1bHQ6IHRydWUuXG5AbWl4aW4gZm9ybS1sYWJlbCgkYWxpZ25tZW50OmZhbHNlLCAkYmFzZS1zdHlsZTp0cnVlKSB7XG5cbiAgLy8gQ29udHJvbCB3aGV0aGVyIG9yIG5vdCB0aGUgYmFzZSBzdHlsZXMgY29tZSB0aHJvdWdoLlxuICBAaWYgJGJhc2Utc3R5bGUge1xuICAgIGZvbnQtc2l6ZTogJGZvcm0tbGFiZWwtZm9udC1zaXplO1xuICAgIGNvbG9yOiAkZm9ybS1sYWJlbC1mb250LWNvbG9yO1xuICAgIGN1cnNvcjogJGZvcm0tbGFiZWwtcG9pbnRlcjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXdlaWdodDogJGZvcm0tbGFiZWwtZm9udC13ZWlnaHQ7XG4gICAgbGluZS1oZWlnaHQ6ICRmb3JtLWxhYmVsLWxpbmUtaGVpZ2h0O1xuICAgIG1hcmdpbi1ib3R0b206ICRmb3JtLWxhYmVsLWJvdHRvbS1tYXJnaW47XG4gIH1cblxuICAvLyBBbGlnbm1lbnQgb3B0aW9uc1xuICBAaWYgJGFsaWdubWVudCA9PSByaWdodCB7XG4gICAgZmxvYXQ6IG5vbmUgIWltcG9ydGFudDtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgfVxuICBAZWxzZSBpZiAkYWxpZ25tZW50ID09IGlubGluZSB7XG4gICAgbWFyZ2luOiAwIDAgJGZvcm0tc3BhY2luZyAwO1xuICAgIHBhZGRpbmc6ICRmb3JtLXNwYWNpbmcgLyAyICsgcmVtLWNhbGMoJGlucHV0LWJvcmRlci13aWR0aCkgMDtcbiAgfVxufVxuXG4vLyBXZSB1c2UgdGhpcyBtaXhpbiB0byBjcmVhdGUgcG9zdGZpeC9wcmVmaXggZm9ybSBMYWJlbHNcbkBtaXhpbiBwcmVmaXgtcG9zdGZpeC1iYXNlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZy10b3A6IDA7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xuICBib3JkZXItc3R5bGU6ICRpbnB1dC1wcmVmaXgtYm9yZGVyLXR5cGU7XG4gIGJvcmRlci13aWR0aDogJGlucHV0LXByZWZpeC1ib3JkZXItc2l6ZTtcbiAgb3ZlcmZsb3c6ICRpbnB1dC1wcmVmaXgtb3ZlcmZsb3c7XG4gIGZvbnQtc2l6ZTogJGZvcm0tbGFiZWwtZm9udC1zaXplO1xuICBoZWlnaHQ6ICgkaW5wdXQtZm9udC1zaXplICsgKCRmb3JtLXNwYWNpbmcgKiAxLjUpIC0gcmVtLWNhbGMoMSkpO1xuICBsaW5lLWhlaWdodDogKCRpbnB1dC1mb250LXNpemUgKyAoJGZvcm0tc3BhY2luZyAqIDEuNSkgLSByZW0tY2FsYygxKSk7XG59XG5cbi8vIEBNSVhJTlxuLy9cbi8vIFdlIHVzZSB0aGlzIG1peGluIHRvIGNyZWF0ZSBwcmVmaXggbGFiZWwgc3R5bGVzXG4vLyAkYmcgLSBEZWZhdWx0OiRpbnB1dC1wcmVmaXgtYmcgfHwgc2NhbGUtY29sb3IoJHdoaXRlLCAkbGlnaHRuZXNzOiAtNSUpICFkZWZhdWx0O1xuLy8gJGlzLWJ1dHRvbiAtIFRvZ2dsZSBwb3NpdGlvbiBzZXR0aW5ncyBpZiBwcmVmaXggaXMgYSBidXR0b24uIERlZmF1bHQ6ZmFsc2Vcbi8vXG5AbWl4aW4gcHJlZml4KCRiZzokaW5wdXQtcHJlZml4LWJnLCAkYm9yZGVyOiRpbnB1dC1wcmVmaXgtYm9yZGVyLWNvbG9yLCAkaXMtYnV0dG9uOmZhbHNlKSB7XG5cbiAgQGlmICRiZyB7XG4gICAgJGJnLWxpZ2h0bmVzczogbGlnaHRuZXNzKCRiZyk7XG4gICAgYmFja2dyb3VuZDogJGJnO1xuICAgIGJvcmRlci0jeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiBub25lO1xuXG4gICAgLy8gQ29udHJvbCB0aGUgZm9udCBjb2xvciBiYXNlZCBvbiBiYWNrZ3JvdW5kIGJyaWdodG5lc3NcbiAgICBAaWYgJGJnLWxpZ2h0bmVzcyA+IDcwJSBvciAkYmcgPT0geWVsbG93IHsgY29sb3I6ICRpbnB1dC1wcmVmaXgtZm9udC1jb2xvcjsgfVxuICAgIEBlbHNlIHsgY29sb3I6ICRpbnB1dC1wcmVmaXgtZm9udC1jb2xvci1hbHQ7IH1cbiAgfVxuXG4gIEBpZiAkYm9yZGVyIHtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXI7XG4gIH1cblxuICBAaWYgJGlzLWJ1dHRvbiB7XG4gICAgcGFkZGluZy0jeyRkZWZhdWx0LWZsb2F0fTogMDtcbiAgICBwYWRkaW5nLSN7JG9wcG9zaXRlLWRpcmVjdGlvbn06IDA7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgfVxuXG59XG5cbi8vIEBNSVhJTlxuLy9cbi8vIFdlIHVzZSB0aGlzIG1peGluIHRvIGNyZWF0ZSBwb3N0Zml4IGxhYmVsIHN0eWxlc1xuLy8gJGJnIC0gRGVmYXVsdDokaW5wdXQtcHJlZml4LWJnIHx8IHNjYWxlLWNvbG9yKCR3aGl0ZSwgJGxpZ2h0bmVzczogLTUlKSAhZGVmYXVsdDtcbi8vICRpcy1idXR0b24gLSBUb2dnbGUgcG9zaXRpb24gc2V0dGluZ3MgaWYgcHJlZml4IGlzIGEgYnV0dG9uLiBEZWZhdWx0OiBmYWxzZVxuQG1peGluIHBvc3RmaXgoJGJnOiRpbnB1dC1wcmVmaXgtYmcsICRib3JkZXI6JGlucHV0LXByZWZpeC1ib3JkZXItY29sb3IsICRpcy1idXR0b246ZmFsc2UpIHtcblxuICBAaWYgJGJnIHtcbiAgICAkYmctbGlnaHRuZXNzOiBsaWdodG5lc3MoJGJnKTtcbiAgICBiYWNrZ3JvdW5kOiAkYmc7XG4gICAgYm9yZGVyLSN7JGRlZmF1bHQtZmxvYXR9OiBub25lO1xuXG4gICAgLy8gQ29udHJvbCB0aGUgZm9udCBjb2xvciBiYXNlZCBvbiBiYWNrZ3JvdW5kIGJyaWdodG5lc3NcbiAgICBAaWYgJGJnLWxpZ2h0bmVzcyA+IDcwJSAgb3IgJGJnID09IHllbGxvdyB7IGNvbG9yOiAkaW5wdXQtcHJlZml4LWZvbnQtY29sb3I7IH1cbiAgICBAZWxzZSB7IGNvbG9yOiAkaW5wdXQtcHJlZml4LWZvbnQtY29sb3ItYWx0OyB9XG4gIH1cblxuICBAaWYgJGJvcmRlciB7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyO1xuICB9XG5cbiAgQGlmICRpcy1idXR0b24ge1xuICAgIHBhZGRpbmctI3skZGVmYXVsdC1mbG9hdH06IDA7XG4gICAgcGFkZGluZy0jeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAwO1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBib3JkZXI6IG5vbmU7XG4gIH1cblxufVxuXG4vLyBXZSB1c2UgdGhpcyBtaXhpbiB0byBzdHlsZSBmaWVsZHNldHNcbkBtaXhpbiBmaWVsZHNldCB7XG4gIGJvcmRlcjogJGZpZWxkc2V0LWJvcmRlci13aWR0aCAkZmllbGRzZXQtYm9yZGVyLXN0eWxlICRmaWVsZHNldC1ib3JkZXItY29sb3I7XG4gIHBhZGRpbmc6ICRmaWVsZHNldC1wYWRkaW5nO1xuICBtYXJnaW46ICRmaWVsZHNldC1tYXJnaW47XG5cbiAgLy8gYW5kIGxlZ2VuZCBzdHlsZXNcbiAgbGVnZW5kIHtcbiAgICBmb250LXdlaWdodDogJGxlZ2VuZC1mb250LXdlaWdodDtcbiAgICBiYWNrZ3JvdW5kOiAkbGVnZW5kLWJnO1xuICAgIHBhZGRpbmc6ICRsZWdlbmQtcGFkZGluZztcbiAgICBtYXJnaW46IDA7XG4gICAgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiByZW0tY2FsYygtMyk7XG4gIH1cbn1cblxuLy8gQE1JWElOXG4vL1xuLy8gV2UgdXNlIHRoaXMgbWl4aW4gdG8gY29udHJvbCBib3JkZXIgYW5kIGJhY2tncm91bmQgY29sb3Igb2YgZXJyb3IgaW5wdXRzXG4vLyAkY29sb3IgLSBEZWZhdWx0OiAkYWxlcnQtY29sb3IgKGZvdW5kIGluIHNldHRpbmdzIGZpbGUpXG5AbWl4aW4gZm9ybS1lcnJvci1jb2xvcigkY29sb3I6JGFsZXJ0LWNvbG9yKSB7XG4gIGJvcmRlci1jb2xvcjogJGNvbG9yO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRjb2xvciwgMC4xKTtcblxuICAvLyBHbyBiYWNrIHRvIG5vcm1hbCBvbiBmb2N1c1xuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kOiAkaW5wdXQtZm9jdXMtYmctY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkaW5wdXQtZm9jdXMtYm9yZGVyLWNvbG9yO1xuICB9XG59XG5cbi8vIEBNSVhJTlxuLy9cbi8vIFdlIHVzZSB0aGlzIHNpbXBsZSBtaXhpbiB0byBzdHlsZSBsYWJlbHMgZm9yIGVycm9yIGlucHV0c1xuLy8gJGNvbG9yIC0gRGVmYXVsdDokYWxlcnQtY29sb3IuIEZvdW5kIGluIHNldHRpbmdzIGZpbGVcbkBtaXhpbiBmb3JtLWxhYmVsLWVycm9yLWNvbG9yKCRjb2xvcjokYWxlcnQtY29sb3IpIHsgY29sb3I6ICRjb2xvcjsgfVxuXG4vLyBATUlYSU5cbi8vXG4vLyBXZSB1c2UgdGhpcyBtaXhpbiB0byBjcmVhdGUgZXJyb3IgbWVzc2FnZSBzdHlsZXNcbi8vICRiZyAtIERlZmF1bHQ6ICRhbGVydC1jb2xvciAoRm91bmQgaW4gc2V0dGluZ3MgZmlsZSlcbkBtaXhpbiBmb3JtLWVycm9yLW1lc3NhZ2UoJGJnOiRpbnB1dC1lcnJvci1tZXNzYWdlLWJnLWNvbG9yKSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAkaW5wdXQtZXJyb3ItbWVzc2FnZS1wYWRkaW5nO1xuICBtYXJnaW4tdG9wOiAkaW5wdXQtZXJyb3ItbWVzc2FnZS10b3A7XG4gIG1hcmdpbi1ib3R0b206ICRmb3JtLXNwYWNpbmc7XG4gIGZvbnQtc2l6ZTogJGlucHV0LWVycm9yLW1lc3NhZ2UtZm9udC1zaXplO1xuICBmb250LXdlaWdodDogJGlucHV0LWVycm9yLW1lc3NhZ2UtZm9udC13ZWlnaHQ7XG4gIGZvbnQtc3R5bGU6ICRpbnB1dC1lcnJvci1tZXNzYWdlLWZvbnQtc3R5bGU7XG5cbiAgLy8gV2UgY2FuIGNvbnRyb2wgdGhlIHRleHQgY29sb3IgYmFzZWQgb24gdGhlIGJyaWdodG5lc3Mgb2YgdGhlIGJhY2tncm91bmQuXG4gICRiZy1saWdodG5lc3M6IGxpZ2h0bmVzcygkYmcpO1xuICBiYWNrZ3JvdW5kOiAkYmc7XG4gIEBpZiAkYmctbGlnaHRuZXNzIDwgNzAlIG9yICRiZyA9PSB5ZWxsb3cgeyBjb2xvcjogJGlucHV0LWVycm9yLW1lc3NhZ2UtZm9udC1jb2xvcjsgfVxuICBAZWxzZSB7IGNvbG9yOiAkaW5wdXQtZXJyb3ItbWVzc2FnZS1mb250LWNvbG9yLWFsdDsgfVxufVxuXG4vLyBXZSB1c2UgdGhpcyBtaXhpbiB0byBzdHlsZSBzZWxlY3QgZWxlbWVudHNcbkBtaXhpbiBmb3JtLXNlbGVjdCAge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmUgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHNlbGVjdC1iZy1jb2xvcjtcblxuICAvLyBIaWRlIHRoZSBkcm9wZG93biBhcnJvdyBzaG93biBpbiBuZXdlciBJRSB2ZXJzaW9uc1xuICAmOjotbXMtZXhwYW5kIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLy8gVGhlIGN1c3RvbSBhcnJvdyBoYXMgc29tZSBmYWtlIGhvcml6b250YWwgcGFkZGluZyBzbyB3ZSBjYW4gYWxpZ24gaXRcbiAgLy8gZnJvbSB0aGUgcmlnaHQgc2lkZSBvZiB0aGUgZWxlbWVudCB3aXRob3V0IHJlbHlpbmcgb24gQ1NTM1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlCNGJXeHVjejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TWpBd01DOXpkbWNpSUhabGNuTnBiMjQ5SWpFdU1TSWdlRDBpTVRKd2VDSWdlVDBpTUhCNElpQjNhV1IwYUQwaU1qUndlQ0lnYUdWcFoyaDBQU0l6Y0hnaUlIWnBaWGRDYjNnOUlqQWdNQ0EySURNaUlHVnVZV0pzWlMxaVlXTnJaM0p2ZFc1a1BTSnVaWGNnTUNBd0lEWWdNeUlnZUcxc09uTndZV05sUFNKd2NtVnpaWEoyWlNJK1BIQnZiSGxuYjI0Z2NHOXBiblJ6UFNJMUxqazVNaXd3SURJdU9Ua3lMRE1nTFRBdU1EQTRMREFnSWk4K1BDOXpkbWMrKTtcblxuICAvLyBXZSBjYW4gc2FmZWx5IHVzZSBsZWZ0bW9zdCBhbmQgcmlnaHRtb3N0IG5vd1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBpZigkdGV4dC1kaXJlY3Rpb24gPT0gJ3J0bCcsIDAlLCAxMDAlKSBjZW50ZXI7XG5cbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYm9yZGVyOiB7XG4gICAgc3R5bGU6ICRpbnB1dC1ib3JkZXItc3R5bGU7XG4gICAgd2lkdGg6ICRpbnB1dC1ib3JkZXItd2lkdGg7XG4gICAgY29sb3I6ICRpbnB1dC1ib3JkZXItY29sb3I7XG4gIH1cbiAgcGFkZGluZzogKCRmb3JtLXNwYWNpbmcgLyAyKTtcbiAgZm9udC1zaXplOiAkaW5wdXQtZm9udC1zaXplO1xuICBmb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHk7XG4gIGNvbG9yOiAkaW5wdXQtZm9udC1jb2xvcjtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgQGluY2x1ZGUgcmFkaXVzKDApO1xuICAmLnJhZGl1cyB7IEBpbmNsdWRlIHJhZGl1cygkZ2xvYmFsLXJhZGl1cyk7IH1cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHNlbGVjdC1ob3Zlci1iZy1jb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRpbnB1dC1mb2N1cy1ib3JkZXItY29sb3I7XG4gIH1cbiAgLy8gRGlzYWJsZWQgU3R5bGVzXG4gICY6ZGlzYWJsZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1kaXNhYmxlZC1iZztcbiAgICBjdXJzb3I6ICRpbnB1dC1kaXNhYmxlZC1jdXJzb3I7XG4gIH1cbn1cblxuLy8gV2UgdXNlIHRoaXMgbWl4aW4gdG8gdHVybiBvbi9vZmYgSFRNTDUgbnVtYmVyIHNwaW5uZXJzXG5AbWl4aW4gaHRtbDVudW1iZXIoJGJyb3dzZXIsICRvbjp0cnVlKSB7XG4gIEBpZiAkb249PWZhbHNlIHtcbiAgICAgIEBpZiAkYnJvd3Nlcj09d2Via2l0IHtcbiAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICB9IEBlbHNlIGlmICRicm93c2VyPT1tb3oge1xuICAgICAgICAtbW96LWFwcGVhcmFuY2U6IHRleHRmaWVsZDtcbiAgICAgIH1cbiAgfVxufVxuXG5AaW5jbHVkZSBleHBvcnRzKFwiZm9ybVwiKSB7XG4gIEBpZiAkaW5jbHVkZS1odG1sLWZvcm0tY2xhc3NlcyB7XG4gICAgLyogU3RhbmRhcmQgRm9ybXMgKi9cbiAgICBmb3JtIHsgbWFyZ2luOiAwIDAgJGZvcm0tc3BhY2luZzsgfVxuXG4gICAgLyogVXNpbmcgZm9ybXMgd2l0aGluIHJvd3MsIHdlIG5lZWQgdG8gc2V0IHNvbWUgZGVmYXVsdHMgKi9cbiAgICBmb3JtIC5yb3cgeyBAaW5jbHVkZSBmb3JtLXJvdy1iYXNlOyB9XG5cbiAgICAvKiBMYWJlbCBTdHlsZXMgKi9cbiAgICBsYWJlbCB7IEBpbmNsdWRlIGZvcm0tbGFiZWw7XG4gICAgICAmLnJpZ2h0IHsgQGluY2x1ZGUgZm9ybS1sYWJlbChyaWdodCxmYWxzZSk7IH1cbiAgICAgICYuaW5saW5lIHsgQGluY2x1ZGUgZm9ybS1sYWJlbChpbmxpbmUsZmFsc2UpOyB9XG4gICAgICAvKiBTdHlsZXMgZm9yIHJlcXVpcmVkIGlucHV0cyAqL1xuICAgICAgc21hbGwge1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogJGZvcm0tbGFiZWwtc21hbGwtdHJhbnNmb3JtO1xuICAgICAgICBjb2xvcjogc2NhbGUtY29sb3IoJGZvcm0tbGFiZWwtZm9udC1jb2xvciwgJGxpZ2h0bmVzczogMTUlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBBdHRhY2ggZWxlbWVudHMgdG8gdGhlIGJlZ2lubmluZyBvciBlbmQgb2YgYW4gaW5wdXQgKi9cbiAgICAucHJlZml4LFxuICAgIC5wb3N0Zml4IHsgQGluY2x1ZGUgcHJlZml4LXBvc3RmaXgtYmFzZTsgfVxuXG4gICAgLyogQWRqdXN0IHBhZGRpbmcsIGFsaWdubWVudCBhbmQgcmFkaXVzIGlmIHByZS9wb3N0IGVsZW1lbnQgaXMgYSBidXR0b24gKi9cbiAgICAucG9zdGZpeC5idXR0b24geyBAaW5jbHVkZSBidXR0b24tc2l6ZShmYWxzZSxmYWxzZSk7IEBpbmNsdWRlIHBvc3RmaXgoZmFsc2UsIGZhbHNlLCB0cnVlKTsgfVxuICAgIC5wcmVmaXguYnV0dG9uIHsgQGluY2x1ZGUgYnV0dG9uLXNpemUoZmFsc2UsZmFsc2UpOyBAaW5jbHVkZSBwcmVmaXgoZmFsc2UsIGZhbHNlLCB0cnVlKTsgfVxuXG4gICAgLnByZWZpeC5idXR0b24ucmFkaXVzIHsgQGluY2x1ZGUgcmFkaXVzKDApOyBAaW5jbHVkZSBzaWRlLXJhZGl1cygkZGVmYXVsdC1mbG9hdCwgJGJ1dHRvbi1yYWRpdXMpOyB9XG4gICAgLnBvc3RmaXguYnV0dG9uLnJhZGl1cyB7IEBpbmNsdWRlIHJhZGl1cygwKTsgQGluY2x1ZGUgc2lkZS1yYWRpdXMoJG9wcG9zaXRlLWRpcmVjdGlvbiwgJGJ1dHRvbi1yYWRpdXMpOyB9XG4gICAgLnByZWZpeC5idXR0b24ucm91bmQgeyBAaW5jbHVkZSByYWRpdXMoMCk7IEBpbmNsdWRlIHNpZGUtcmFkaXVzKCRkZWZhdWx0LWZsb2F0LCAkYnV0dG9uLXJvdW5kKTsgfVxuICAgIC5wb3N0Zml4LmJ1dHRvbi5yb3VuZCB7IEBpbmNsdWRlIHJhZGl1cygwKTsgQGluY2x1ZGUgc2lkZS1yYWRpdXMoJG9wcG9zaXRlLWRpcmVjdGlvbiwgJGJ1dHRvbi1yb3VuZCk7IH1cblxuICAgIC8qIFNlcGFyYXRlIHByZWZpeCBhbmQgcG9zdGZpeCBzdHlsZXMgd2hlbiBvbiBzcGFuIG9yIGxhYmVsIHNvIGJ1dHRvbnMga2VlcCB0aGVpciBvd24gKi9cbiAgICBzcGFuLnByZWZpeCxsYWJlbC5wcmVmaXggeyBAaW5jbHVkZSBwcmVmaXgoKTsgfVxuICAgIHNwYW4ucG9zdGZpeCxsYWJlbC5wb3N0Zml4IHsgQGluY2x1ZGUgcG9zdGZpeCgpOyB9XG5cbiAgICAvKiBXZSB1c2UgdGhpcyB0byBnZXQgYmFzaWMgc3R5bGluZyBvbiBhbGwgYmFzaWMgZm9ybSBlbGVtZW50cyAqL1xuICAgICN7dGV4dC1pbnB1dHMoYWxsLCAnaW5wdXQnKX0ge1xuICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgIEBpbmNsdWRlIGZvcm0tZWxlbWVudDtcbiAgICAgIEBpZiAkaW5wdXQtaW5jbHVkZS1nbG93aW5nLWVmZmVjdCA9PSBmYWxzZSB7XG4gICAgICAgICAgQGluY2x1ZGUgc2luZ2xlLXRyYW5zaXRpb24oYWxsLCAwLjE1cywgbGluZWFyKTtcbiAgICAgIH1cbiAgICAgICYucmFkaXVzIHtcbiAgICAgICAgQGluY2x1ZGUgcmFkaXVzKCRpbnB1dC1ib3JkZXItcmFkaXVzKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmb3JtIHtcbiAgICAgIC5yb3cge1xuICAgICAgICAucHJlZml4LXJhZGl1cy5yb3cuY29sbGFwc2Uge1xuICAgICAgICAgIGlucHV0LFxuICAgICAgICAgIHRleHRhcmVhLFxuICAgICAgICAgIHNlbGVjdCxcbiAgICAgICAgICBidXR0b24geyBAaW5jbHVkZSByYWRpdXMoMCk7IEBpbmNsdWRlIHNpZGUtcmFkaXVzKCRvcHBvc2l0ZS1kaXJlY3Rpb24sICRidXR0b24tcmFkaXVzKTsgfVxuICAgICAgICAgIC5wcmVmaXggeyBAaW5jbHVkZSByYWRpdXMoMCk7IEBpbmNsdWRlIHNpZGUtcmFkaXVzKCRkZWZhdWx0LWZsb2F0LCAkYnV0dG9uLXJhZGl1cyk7IH1cbiAgICAgICAgfVxuICAgICAgICAucG9zdGZpeC1yYWRpdXMucm93LmNvbGxhcHNlIHtcbiAgICAgICAgICBpbnB1dCxcbiAgICAgICAgICB0ZXh0YXJlYSxcbiAgICAgICAgICBzZWxlY3QsXG4gICAgICAgICAgYnV0dG9uIHsgQGluY2x1ZGUgcmFkaXVzKDApOyBAaW5jbHVkZSBzaWRlLXJhZGl1cygkZGVmYXVsdC1mbG9hdCwgJGJ1dHRvbi1yYWRpdXMpOyB9XG4gICAgICAgICAgLnBvc3RmaXggeyBAaW5jbHVkZSByYWRpdXMoMCk7IEBpbmNsdWRlIHNpZGUtcmFkaXVzKCRvcHBvc2l0ZS1kaXJlY3Rpb24sICRidXR0b24tcmFkaXVzKTsgfVxuICAgICAgICB9XG4gICAgICAgIC5wcmVmaXgtcm91bmQucm93LmNvbGxhcHNlIHtcbiAgICAgICAgICBpbnB1dCxcbiAgICAgICAgICB0ZXh0YXJlYSxcbiAgICAgICAgICBzZWxlY3QsXG4gICAgICAgICAgYnV0dG9uIHsgQGluY2x1ZGUgcmFkaXVzKDApOyBAaW5jbHVkZSBzaWRlLXJhZGl1cygkb3Bwb3NpdGUtZGlyZWN0aW9uLCAkYnV0dG9uLXJvdW5kKTsgfVxuICAgICAgICAgIC5wcmVmaXggeyBAaW5jbHVkZSByYWRpdXMoMCk7IEBpbmNsdWRlIHNpZGUtcmFkaXVzKCRkZWZhdWx0LWZsb2F0LCAkYnV0dG9uLXJvdW5kKTsgfVxuICAgICAgICB9XG4gICAgICAgIC5wb3N0Zml4LXJvdW5kLnJvdy5jb2xsYXBzZSB7XG4gICAgICAgICAgaW5wdXQsXG4gICAgICAgICAgdGV4dGFyZWEsXG4gICAgICAgICAgc2VsZWN0LFxuICAgICAgICAgIGJ1dHRvbiB7IEBpbmNsdWRlIHJhZGl1cygwKTsgQGluY2x1ZGUgc2lkZS1yYWRpdXMoJGRlZmF1bHQtZmxvYXQsICRidXR0b24tcm91bmQpOyB9XG4gICAgICAgICAgLnBvc3RmaXggeyBAaW5jbHVkZSByYWRpdXMoMCk7IEBpbmNsdWRlIHNpZGUtcmFkaXVzKCRvcHBvc2l0ZS1kaXJlY3Rpb24sICRidXR0b24tcm91bmQpOyB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgfVxuXG4gICAgLyogUmVzcGVjdCBlbmZvcmNlZCBhbW91bnQgb2Ygcm93cyBmb3IgdGV4dGFyZWEgKi9cbiAgICB0ZXh0YXJlYVtyb3dzXSB7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgfVxuXG5cdC8qIE5vdCBhbGxvdyByZXNpemUgb3V0IG9mIHBhcmVudCAqL1xuXHR0ZXh0YXJlYSB7XG5cdFx0bWF4LXdpZHRoOiAxMDAlO1xuXHR9XG5cbiAgICAvKiBBZGQgaGVpZ2h0IHZhbHVlIGZvciBzZWxlY3QgZWxlbWVudHMgdG8gbWF0Y2ggdGV4dCBpbnB1dCBoZWlnaHQgKi9cbiAgICBzZWxlY3Qge1xuICAgICAgQGluY2x1ZGUgZm9ybS1zZWxlY3Q7XG4gICAgICBoZWlnaHQ6ICgkaW5wdXQtZm9udC1zaXplICsgKCRmb3JtLXNwYWNpbmcgKiAxLjUpIC0gcmVtLWNhbGMoMSkpO1xuICAgICAgJlttdWx0aXBsZV0ge1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyogQWRqdXN0IG1hcmdpbiBmb3IgZm9ybSBlbGVtZW50cyBiZWxvdyAqL1xuICAgIGlucHV0W3R5cGU9XCJmaWxlXCJdLFxuICAgIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSxcbiAgICBpbnB1dFt0eXBlPVwicmFkaW9cIl0sXG4gICAgc2VsZWN0IHtcbiAgICAgIG1hcmdpbjogMCAwICRmb3JtLXNwYWNpbmcgMDtcbiAgICB9XG5cbiAgICBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0gKyBsYWJlbCxcbiAgICBpbnB1dFt0eXBlPVwicmFkaW9cIl0gKyBsYWJlbCB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06ICRmb3JtLXNwYWNpbmcgKiAuNTtcbiAgICAgIG1hcmdpbi0jeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAkZm9ybS1zcGFjaW5nO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgICB9XG5cbiAgICAvKiBOb3JtYWxpemUgZmlsZSBpbnB1dCB3aWR0aCAqL1xuICAgIGlucHV0W3R5cGU9XCJmaWxlXCJdIHtcbiAgICAgIHdpZHRoOjEwMCU7XG4gICAgfVxuXG4gICAgLyogSFRNTDUgTnVtYmVyIHNwaW5uZXJzIHNldHRpbmdzICovXG4gICAgaW5wdXRbdHlwZT1udW1iZXJdIHtcbiAgICAgIEBpbmNsdWRlIGh0bWw1bnVtYmVyKG1veiwgJGlucHV0LW51bWJlci1zcGlubmVycylcbiAgICB9XG4gICAgaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbiAgICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgICAgIEBpbmNsdWRlIGh0bWw1bnVtYmVyKHdlYmtpdCwgJGlucHV0LW51bWJlci1zcGlubmVycyk7XG4gICAgfVxuXG4gICAgLyogV2UgYWRkIGJhc2ljIGZpZWxkc2V0IHN0eWxpbmcgKi9cbiAgICBmaWVsZHNldCB7XG4gICAgICBAaW5jbHVkZSBmaWVsZHNldDtcbiAgICB9XG5cbiAgICAvKiBFcnJvciBIYW5kbGluZyAqL1xuXG4gICAgI3tkYXRhKCdhYmlkZScpfSB7XG4gICAgICAuZXJyb3Igc21hbGwuZXJyb3IsIC5lcnJvciBzcGFuLmVycm9yLCBzcGFuLmVycm9yLCBzbWFsbC5lcnJvciB7XG4gICAgICAgIEBpbmNsdWRlIGZvcm0tZXJyb3ItbWVzc2FnZTtcbiAgICAgIH1cbiAgICAgIHNwYW4uZXJyb3IsIHNtYWxsLmVycm9yIHsgZGlzcGxheTogbm9uZTsgfVxuICAgIH1cblxuICAgIHNwYW4uZXJyb3IsIHNtYWxsLmVycm9yIHtcbiAgICAgIEBpbmNsdWRlIGZvcm0tZXJyb3ItbWVzc2FnZTtcbiAgICB9XG5cbiAgICAuZXJyb3Ige1xuICAgICAgaW5wdXQsXG4gICAgICB0ZXh0YXJlYSxcbiAgICAgIHNlbGVjdCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICB9XG5cbiAgICAgIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSxcbiAgICAgIGlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRmb3JtLXNwYWNpbmdcbiAgICAgIH1cblxuICAgICAgbGFiZWwsXG4gICAgICBsYWJlbC5lcnJvciB7XG4gICAgICAgIEBpbmNsdWRlIGZvcm0tbGFiZWwtZXJyb3ItY29sb3I7XG4gICAgICB9XG5cbiAgICAgIHNtYWxsLmVycm9yIHtcbiAgICAgICAgQGluY2x1ZGUgZm9ybS1lcnJvci1tZXNzYWdlO1xuICAgICAgfVxuXG4gICAgICA+IGxhYmVsIHtcbiAgICAgICAgPiBzbWFsbCB7XG4gICAgICAgICAgY29sb3I6IHNjYWxlLWNvbG9yKCRmb3JtLWxhYmVsLWZvbnQtY29sb3IsICRsaWdodG5lc3M6IDE1JSk7XG4gICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogJGZvcm0tbGFiZWwtc21hbGwtdHJhbnNmb3JtO1xuICAgICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgICAgICBmb250LXNpemU6IDYwJTtcbiAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHNwYW4uZXJyb3ItbWVzc2FnZSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlucHV0LmVycm9yLFxuICAgIHRleHRhcmVhLmVycm9yLFxuICAgIHNlbGVjdC5lcnJvciB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgICBsYWJlbC5lcnJvciB7IEBpbmNsdWRlIGZvcm0tbGFiZWwtZXJyb3ItY29sb3I7IH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQGltcG9ydCBcImdsb2JhbFwiO1xuXG4vL1xuLy8gQHZhcmlhYmxlc1xuLy9cbiRpbmNsdWRlLWh0bWwtYnV0dG9uLWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcyAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGJ1aWxkIHBhZGRpbmcgZm9yIGJ1dHRvbnMuXG4kYnV0dG9uLXRueTogcmVtLWNhbGMoMTApICFkZWZhdWx0O1xuJGJ1dHRvbi1zbWw6IHJlbS1jYWxjKDE0KSAhZGVmYXVsdDtcbiRidXR0b24tbWVkOiByZW0tY2FsYygxNikgIWRlZmF1bHQ7XG4kYnV0dG9uLWxyZzogcmVtLWNhbGMoMTgpICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhpcyB0byBjb250cm9sIHRoZSBkaXNwbGF5IHByb3BlcnR5LlxuJGJ1dHRvbi1kaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWRlZmF1bHQ7XG4kYnV0dG9uLW1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDIwKSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgYnV0dG9uIHRleHQgc3R5bGVzLlxuJGJ1dHRvbi1mb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHkgIWRlZmF1bHQ7XG4kYnV0dG9uLWZvbnQtY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcbiRidXR0b24tZm9udC1jb2xvci1hbHQ6ICRvaWwgIWRlZmF1bHQ7XG4kYnV0dG9uLWZvbnQtdG55OiByZW0tY2FsYygxMSkgIWRlZmF1bHQ7XG4kYnV0dG9uLWZvbnQtc21sOiByZW0tY2FsYygxMykgIWRlZmF1bHQ7XG4kYnV0dG9uLWZvbnQtbWVkOiByZW0tY2FsYygxNikgIWRlZmF1bHQ7XG4kYnV0dG9uLWZvbnQtbHJnOiByZW0tY2FsYygyMCkgIWRlZmF1bHQ7XG4kYnV0dG9uLWZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuJGJ1dHRvbi1mb250LWFsaWduOiBjZW50ZXIgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIHZhcmlvdXMgaG92ZXIgZWZmZWN0cy5cbiRidXR0b24tZnVuY3Rpb24tZmFjdG9yOiAtMjAlICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCBidXR0b24gYm9yZGVyIHN0eWxlcy5cbiRidXR0b24tYm9yZGVyLXdpZHRoOiAwICFkZWZhdWx0O1xuJGJ1dHRvbi1ib3JkZXItc3R5bGU6IHNvbGlkICFkZWZhdWx0O1xuJGJ1dHRvbi1iZy1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG4kYnV0dG9uLWJnLWhvdmVyOiBzY2FsZS1jb2xvcigkYnV0dG9uLWJnLWNvbG9yLCAkbGlnaHRuZXNzOiAkYnV0dG9uLWZ1bmN0aW9uLWZhY3RvcikgIWRlZmF1bHQ7XG4kYnV0dG9uLWJvcmRlci1jb2xvcjogJGJ1dHRvbi1iZy1ob3ZlciAhZGVmYXVsdDtcbiRzZWNvbmRhcnktYnV0dG9uLWJnLWhvdmVyOiBzY2FsZS1jb2xvcigkc2Vjb25kYXJ5LWNvbG9yLCAkbGlnaHRuZXNzOiAkYnV0dG9uLWZ1bmN0aW9uLWZhY3RvcikgIWRlZmF1bHQ7XG4kc2Vjb25kYXJ5LWJ1dHRvbi1ib3JkZXItY29sb3I6ICRzZWNvbmRhcnktYnV0dG9uLWJnLWhvdmVyICFkZWZhdWx0O1xuJHN1Y2Nlc3MtYnV0dG9uLWJnLWhvdmVyOiBzY2FsZS1jb2xvcigkc3VjY2Vzcy1jb2xvciwgJGxpZ2h0bmVzczogJGJ1dHRvbi1mdW5jdGlvbi1mYWN0b3IpICFkZWZhdWx0O1xuJHN1Y2Nlc3MtYnV0dG9uLWJvcmRlci1jb2xvcjogJHN1Y2Nlc3MtYnV0dG9uLWJnLWhvdmVyICFkZWZhdWx0O1xuJGFsZXJ0LWJ1dHRvbi1iZy1ob3Zlcjogc2NhbGUtY29sb3IoJGFsZXJ0LWNvbG9yLCAkbGlnaHRuZXNzOiAkYnV0dG9uLWZ1bmN0aW9uLWZhY3RvcikgIWRlZmF1bHQ7XG4kYWxlcnQtYnV0dG9uLWJvcmRlci1jb2xvcjogJGFsZXJ0LWJ1dHRvbi1iZy1ob3ZlciAhZGVmYXVsdDtcbiR3YXJuaW5nLWJ1dHRvbi1iZy1ob3Zlcjogc2NhbGUtY29sb3IoJHdhcm5pbmctY29sb3IsICRsaWdodG5lc3M6ICRidXR0b24tZnVuY3Rpb24tZmFjdG9yKSAhZGVmYXVsdDtcbiR3YXJuaW5nLWJ1dHRvbi1ib3JkZXItY29sb3I6ICR3YXJuaW5nLWJ1dHRvbi1iZy1ob3ZlciAhZGVmYXVsdDtcbiRpbmZvLWJ1dHRvbi1iZy1ob3Zlcjogc2NhbGUtY29sb3IoJGluZm8tY29sb3IsICRsaWdodG5lc3M6ICRidXR0b24tZnVuY3Rpb24tZmFjdG9yKSAhZGVmYXVsdDtcbiRpbmZvLWJ1dHRvbi1ib3JkZXItY29sb3I6ICRpbmZvLWJ1dHRvbi1iZy1ob3ZlciAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoaXMgdG8gc2V0IHRoZSBkZWZhdWx0IHJhZGl1cyB1c2VkIHRocm91Z2hvdXQgdGhlIGNvcmUuXG4kYnV0dG9uLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG4kYnV0dG9uLXJvdW5kOiAkZ2xvYmFsLXJvdW5kZWQgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGlzIHRvIHNldCBkZWZhdWx0IG9wYWNpdHkgYW5kIGN1cnNvciBmb3IgZGlzYWJsZWQgYnV0dG9ucy5cbiRidXR0b24tZGlzYWJsZWQtb3BhY2l0eTogMC43ICFkZWZhdWx0O1xuJGJ1dHRvbi1kaXNhYmxlZC1jdXJzb3I6ICRjdXJzb3ItZGVmYXVsdC12YWx1ZSAhZGVmYXVsdDtcblxuXG4vL1xuLy8gQE1JWElOXG4vL1xuLy8gV2UgdXNlIHRoaXMgbWl4aW4gdG8gY3JlYXRlIGEgZGVmYXVsdCBidXR0b24gYmFzZS5cbi8vXG4vLyAkc3R5bGUgLSBTZXRzIGJhc2Ugc3R5bGVzLiBDYW4gYmUgc2V0IHRvIGZhbHNlLiBEZWZhdWx0OiB0cnVlLlxuLy8gJGRpc3BsYXkgLSBVc2VkIHRvIGNvbnRyb2wgZGlzcGxheSBwcm9wZXJ0eS4gRGVmYXVsdDogJGJ1dHRvbi1kaXNwbGF5IHx8IGlubGluZS1ibG9ja1xuXG5AbWl4aW4gYnV0dG9uLWJhc2UoJHN0eWxlOnRydWUsICRkaXNwbGF5OiRidXR0b24tZGlzcGxheSkge1xuICBAaWYgJHN0eWxlIHtcbiAgICBib3JkZXItc3R5bGU6ICRidXR0b24tYm9yZGVyLXN0eWxlO1xuICAgIGJvcmRlci13aWR0aDogJGJ1dHRvbi1ib3JkZXItd2lkdGg7XG4gICAgY3Vyc29yOiAkY3Vyc29yLXBvaW50ZXItdmFsdWU7XG4gICAgZm9udC1mYW1pbHk6ICRidXR0b24tZm9udC1mYW1pbHk7XG4gICAgZm9udC13ZWlnaHQ6ICRidXR0b24tZm9udC13ZWlnaHQ7XG4gICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgICBtYXJnaW46IDAgMCAkYnV0dG9uLW1hcmdpbi1ib3R0b207XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB0ZXh0LWFsaWduOiAkYnV0dG9uLWZvbnQtYWxpZ247XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOjA7XG4gIH1cbiAgQGlmICRkaXNwbGF5IHsgZGlzcGxheTogJGRpc3BsYXk7IH1cbn1cblxuLy8gQE1JWElOXG4vL1xuLy8gV2UgdXNlIHRoaXMgbWl4aW4gdG8gYWRkIGJ1dHRvbiBzaXplIHN0eWxlc1xuLy9cbi8vICRwYWRkaW5nIC0gVXNlZCB0byBidWlsZCBwYWRkaW5nIGZvciBidXR0b25zIERlZmF1bHQ6ICRidXR0b24tbWVkIHx8PSByZW0tY2FsYygxMilcbi8vICRmdWxsLXdpZHRoIC0gV2UgY2FuIHNldCAkZnVsbC13aWR0aDp0cnVlIHRvIHJlbW92ZSBzaWRlIHBhZGRpbmcgZXh0ZW5kIHdpZHRoIC0gRGVmYXVsdDogZmFsc2VcblxuQG1peGluIGJ1dHRvbi1zaXplKCRwYWRkaW5nOiRidXR0b24tbWVkLCAkZnVsbC13aWR0aDpmYWxzZSkge1xuXG4gIC8vIFdlIGNvbnRyb2wgd2hpY2ggcGFkZGluZyBzdHlsZXMgY29tZSB0aHJvdWdoLFxuICAvLyB0aGVzZSBjYW4gYmUgdHVybmVkIG9mZiBieSBzZXR0aW5nICRwYWRkaW5nOmZhbHNlXG4gIEBpZiAkcGFkZGluZyB7XG4gICAgcGFkZGluZy10b3A6ICRwYWRkaW5nO1xuICAgIHBhZGRpbmctI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogJHBhZGRpbmcgKiAyO1xuICAgIHBhZGRpbmctYm90dG9tOiAkcGFkZGluZyArIHJlbS1jYWxjKDEpO1xuICAgIHBhZGRpbmctI3skZGVmYXVsdC1mbG9hdH06ICRwYWRkaW5nICogMjtcblxuICAgIC8vIFdlIGNvbnRyb2wgdGhlIGZvbnQtc2l6ZSBiYXNlZCBvbiBtaXhpbiBpbnB1dC5cbiAgICBAaWYgICAgICAkcGFkZGluZyA9PSAkYnV0dG9uLW1lZCB7IGZvbnQtc2l6ZTogJGJ1dHRvbi1mb250LW1lZDsgfVxuICAgIEBlbHNlIGlmICRwYWRkaW5nID09ICRidXR0b24tdG55IHsgZm9udC1zaXplOiAkYnV0dG9uLWZvbnQtdG55OyB9XG4gICAgQGVsc2UgaWYgJHBhZGRpbmcgPT0gJGJ1dHRvbi1zbWwgeyBmb250LXNpemU6ICRidXR0b24tZm9udC1zbWw7IH1cbiAgICBAZWxzZSBpZiAkcGFkZGluZyA9PSAkYnV0dG9uLWxyZyB7IGZvbnQtc2l6ZTogJGJ1dHRvbi1mb250LWxyZzsgfVxuICB9XG5cbiAgLy8gV2UgY2FuIHNldCAkZnVsbC13aWR0aDp0cnVlIHRvIHJlbW92ZSBzaWRlIHBhZGRpbmcgZXh0ZW5kIHdpZHRoLlxuICBAaWYgJGZ1bGwtd2lkdGgge1xuICAgIC8vIFdlIHN0aWxsIG5lZWQgdG8gY2hlY2sgaWYgJHBhZGRpbmcgaXMgc2V0LlxuICAgIEBpZiAkcGFkZGluZyB7XG4gICAgcGFkZGluZy10b3A6ICRwYWRkaW5nO1xuICAgIHBhZGRpbmctYm90dG9tOiAkcGFkZGluZyArIHJlbS1jYWxjKDEpO1xuICAgIH0gQGVsc2UgaWYgJHBhZGRpbmcgPT0gZmFsc2Uge1xuICAgICAgcGFkZGluZy10b3A6MDtcbiAgICAgIHBhZGRpbmctYm90dG9tOjA7XG4gICAgfVxuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG5cbi8vIEBNSVhJTlxuLy9cbi8vIHdlIHVzZSB0aGlzIG1peGluIHRvIGNyZWF0ZSB0aGUgYnV0dG9uIGhvdmVyIGFuZCBib3JkZXIgY29sb3JzXG5cbi8vIEBNSVhJTlxuLy9cbi8vIFdlIHVzZSB0aGlzIG1peGluIHRvIGFkZCBidXR0b24gY29sb3Igc3R5bGVzXG4vL1xuLy8gJGJnIC0gQmFja2dyb3VuZCBjb2xvci4gV2UgY2FuIHNldCAkYmc6ZmFsc2UgZm9yIGEgdHJhbnNwYXJlbnQgYmFja2dyb3VuZC4gRGVmYXVsdDogJHByaW1hcnktY29sb3IuXG4vLyAkcmFkaXVzIC0gSWYgdHJ1ZSwgc2V0IHRvIGJ1dHRvbiByYWRpdXMgd2hpY2ggaXMgJGJ1dHRvbi1yYWRpdXMgfHwgZXhwbGljaXRseSBzZXQgcmFkaXVzIGFtb3VudCBpbiBweCAoZXguICRyYWRpdXM6MTBweCkuIERlZmF1bHQ6IGZhbHNlXG4vLyAkZGlzYWJsZWQgLSBXZSBjYW4gc2V0ICRkaXNhYmxlZDp0cnVlIHRvIGNyZWF0ZSBhIGRpc2FibGVkIHRyYW5zcGFyZW50IGJ1dHRvbi4gRGVmYXVsdDogZmFsc2Vcbi8vICRiZy1ob3ZlciAtIEJ1dHRvbiBIb3ZlciBCYWNrZ3JvdW5kIENvbG9yLiBEZWZhdWx0OiAkYnV0dG9uLWJnLWhvdmVyXG4vLyAkYm9yZGVyLWNvbG9yIC0gQnV0dG9uIEJvcmRlciBDb2xvci4gRGVmYXVsdDogJGJ1dHRvbi1ib3JkZXItY29sb3JcbkBtaXhpbiBidXR0b24tc3R5bGUoJGJnOiRidXR0b24tYmctY29sb3IsICRyYWRpdXM6ZmFsc2UsICRkaXNhYmxlZDpmYWxzZSwgJGJnLWhvdmVyOm51bGwsICRib3JkZXItY29sb3I6bnVsbCkge1xuXG4gIC8vIFdlIGNvbnRyb2wgd2hpY2ggYmFja2dyb3VuZCBzdHlsZXMgYXJlIHVzZWQsXG4gIC8vIHRoZXNlIGNhbiBiZSByZW1vdmVkIGJ5IHNldHRpbmcgJGJnOmZhbHNlXG4gIEBpZiAkYmcge1xuXG4gICAgQGlmICRiZy1ob3ZlciA9PSBudWxsIHtcbiAgICAgICRiZy1ob3ZlcjogaWYoJGJnID09ICRidXR0b24tYmctY29sb3IsICRidXR0b24tYmctaG92ZXIsIHNjYWxlLWNvbG9yKCRiZywgJGxpZ2h0bmVzczogJGJ1dHRvbi1mdW5jdGlvbi1mYWN0b3IpKTtcbiAgICB9XG5cbiAgICBAaWYgJGJvcmRlci1jb2xvciA9PSBudWxsIHtcbiAgICAgICRib3JkZXItY29sb3I6IGlmKCRiZyA9PSAkYnV0dG9uLWJnLWNvbG9yLCAkYnV0dG9uLWJvcmRlci1jb2xvciwgc2NhbGUtY29sb3IoJGJnLCAkbGlnaHRuZXNzOiAkYnV0dG9uLWZ1bmN0aW9uLWZhY3RvcikpO1xuICAgIH1cblxuICAgIC8vIFRoaXMgZmluZCB0aGUgbGlnaHRuZXNzIHBlcmNlbnRhZ2Ugb2YgdGhlIGJhY2tncm91bmQgY29sb3IuXG4gICAgJGJnLWxpZ2h0bmVzczogbGlnaHRuZXNzKCRiZyk7XG4gICAgJGJnLWhvdmVyLWxpZ2h0bmVzczogbGlnaHRuZXNzKCRiZy1ob3Zlcik7XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmc7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7IGJhY2tncm91bmQtY29sb3I6ICRiZy1ob3ZlcjsgfVxuXG4gICAgLy8gV2UgY29udHJvbCB0aGUgdGV4dCBjb2xvciBmb3IgeW91IGJhc2VkIG9uIHRoZSBiYWNrZ3JvdW5kIGNvbG9yLlxuICAgIGNvbG9yOiBpZigkYmctbGlnaHRuZXNzID4gNzAlLCAkYnV0dG9uLWZvbnQtY29sb3ItYWx0LCAkYnV0dG9uLWZvbnQtY29sb3IpO1xuXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIGNvbG9yOiBpZigkYmctaG92ZXItbGlnaHRuZXNzID4gNzAlLCAkYnV0dG9uLWZvbnQtY29sb3ItYWx0LCAkYnV0dG9uLWZvbnQtY29sb3IpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFdlIGNhbiBzZXQgJGRpc2FibGVkOnRydWUgdG8gY3JlYXRlIGEgZGlzYWJsZWQgdHJhbnNwYXJlbnQgYnV0dG9uLlxuICBAaWYgJGRpc2FibGVkIHtcbiAgICBjdXJzb3I6ICRidXR0b24tZGlzYWJsZWQtY3Vyc29yO1xuICAgIG9wYWNpdHk6ICRidXR0b24tZGlzYWJsZWQtb3BhY2l0eTtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7IGJhY2tncm91bmQtY29sb3I6ICRiZzsgfVxuICB9XG5cbiAgLy8gV2UgY2FuIGNvbnRyb2wgaG93IG11Y2ggYnV0dG9uIHJhZGl1cyBpcyB1c2VkLlxuICBAaWYgJHJhZGl1cyA9PSB0cnVlIHsgQGluY2x1ZGUgcmFkaXVzKCRidXR0b24tcmFkaXVzKTsgfVxuICBAZWxzZSBpZiAkcmFkaXVzIHsgQGluY2x1ZGUgcmFkaXVzKCRyYWRpdXMpOyB9XG5cbn1cblxuLy8gQE1JWElOXG4vL1xuLy8gV2UgdXNlIHRoaXMgdG8gcXVpY2tseSBjcmVhdGUgYnV0dG9ucyB3aXRoIGEgc2luZ2xlIG1peGluLiBBcyBAamFyZWRoYXJkeSBwdXRzIGl0LCBcInRoZSBraXRjaGVuIHNpbmsgbWl4aW5cIlxuLy9cbi8vICRwYWRkaW5nIC0gVXNlZCB0byBidWlsZCBwYWRkaW5nIGZvciBidXR0b25zIERlZmF1bHQ6ICRidXR0b24tbWVkIHx8PSByZW0tY2FsYygxMilcbi8vICRiZyAtIFByaW1hcnkgY29sb3Igc2V0IGluIHNldHRpbmdzIGZpbGUuIERlZmF1bHQ6ICRidXR0b24tYmcuXG4vLyAkcmFkaXVzIC0gSWYgdHJ1ZSwgc2V0IHRvIGJ1dHRvbiByYWRpdXMgd2hpY2ggaXMgJGdsb2JhbC1yYWRpdXMgfHwgZXhwbGljaXRseSBzZXQgcmFkaXVzIGFtb3VudCBpbiBweCAoZXguICRyYWRpdXM6MTBweCkuIERlZmF1bHQ6ZmFsc2UuXG4vLyAkZnVsbC13aWR0aCAtIFdlIGNhbiBzZXQgJGZ1bGwtd2lkdGg6dHJ1ZSB0byByZW1vdmUgc2lkZSBwYWRkaW5nIGV4dGVuZCB3aWR0aC4gRGVmYXVsdDpmYWxzZS5cbi8vICRkaXNhYmxlZCAtIFdlIGNhbiBzZXQgJGRpc2FibGVkOnRydWUgdG8gY3JlYXRlIGEgZGlzYWJsZWQgdHJhbnNwYXJlbnQgYnV0dG9uLiBEZWZhdWx0OmZhbHNlLlxuLy8gJGlzLXByZWZpeCAtIE5vdCB1c2VkPyBEZWZhdWx0OmZhbHNlLlxuLy8gJGJnLWhvdmVyIC0gQnV0dG9uIEhvdmVyIENvbG9yIC0gRGVmYXVsdCBudWxsIC0gc2VlIGJ1dHRvbi1zdHlsZSBtaXhpblxuLy8gJGJvcmRlci1jb2xvciAtIEJ1dHRvbiBCb3JkZXIgQ29sb3IgLSBEZWZhdWx0IG51bGwgLSBzZWUgYnV0dG9uLXN0eWxlIG1peGluXG4vLyAkdHJhbnNpdGlvbiAtIFdlIGNhbiBjb250cm9sIHdoZXRoZXIgb3Igbm90IHRvIGluY2x1ZGUgdGhlIGJhY2tncm91bmQtY29sb3IgdHJhbnNpdGlvbiBwcm9wZXJ0eSAtIERlZmF1bHQ6dHJ1ZS5cbkBtaXhpbiBidXR0b24oJHBhZGRpbmc6JGJ1dHRvbi1tZWQsICRiZzokYnV0dG9uLWJnLWNvbG9yLCAkcmFkaXVzOmZhbHNlLCAkZnVsbC13aWR0aDpmYWxzZSwgJGRpc2FibGVkOmZhbHNlLCAkaXMtcHJlZml4OmZhbHNlLCAkYmctaG92ZXI6bnVsbCwgJGJvcmRlci1jb2xvcjpudWxsLCAkdHJhbnNpdGlvbjogdHJ1ZSkge1xuICBAaW5jbHVkZSBidXR0b24tYmFzZTtcbiAgQGluY2x1ZGUgYnV0dG9uLXNpemUoJHBhZGRpbmcsICRmdWxsLXdpZHRoKTtcbiAgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRiZywgJHJhZGl1cywgJGRpc2FibGVkLCAkYmctaG92ZXIsICRib3JkZXItY29sb3IpO1xuXG4gIEBpZiAkdHJhbnNpdGlvbiB7XG4gICAgQGluY2x1ZGUgc2luZ2xlLXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvcik7XG4gIH1cbn1cblxuXG5AaW5jbHVkZSBleHBvcnRzKFwiYnV0dG9uXCIpIHtcbiAgQGlmICRpbmNsdWRlLWh0bWwtYnV0dG9uLWNsYXNzZXMge1xuXG4gICAgLy8gRGVmYXVsdCBzdHlsZXMgYXBwbGllZCBvdXRzaWRlIG9mIG1lZGlhIHF1ZXJ5XG4gICAgYnV0dG9uLCAuYnV0dG9uIHtcbiAgICAgIEBpbmNsdWRlIGJ1dHRvbi1iYXNlO1xuICAgICAgQGluY2x1ZGUgYnV0dG9uLXNpemU7XG4gICAgICBAaW5jbHVkZSBidXR0b24tc3R5bGU7XG5cbiAgICAgIEBpbmNsdWRlIHNpbmdsZS10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IpO1xuXG4gICAgICAmLnNlY29uZGFyeSB7IEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkYmc6JHNlY29uZGFyeS1jb2xvciwgJGJnLWhvdmVyOiRzZWNvbmRhcnktYnV0dG9uLWJnLWhvdmVyLCAkYm9yZGVyLWNvbG9yOiRzZWNvbmRhcnktYnV0dG9uLWJvcmRlci1jb2xvcik7IH1cbiAgICAgICYuc3VjY2VzcyAgIHsgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRiZzokc3VjY2Vzcy1jb2xvciwgJGJnLWhvdmVyOiRzdWNjZXNzLWJ1dHRvbi1iZy1ob3ZlciwgJGJvcmRlci1jb2xvcjokc3VjY2Vzcy1idXR0b24tYm9yZGVyLWNvbG9yKTsgfVxuICAgICAgJi5hbGVydCAgICAgeyBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGJnOiRhbGVydC1jb2xvciwgJGJnLWhvdmVyOiRhbGVydC1idXR0b24tYmctaG92ZXIsICRib3JkZXItY29sb3I6JGFsZXJ0LWJ1dHRvbi1ib3JkZXItY29sb3IpOyB9XG4gICAgICAmLndhcm5pbmcgICB7IEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkYmc6JHdhcm5pbmctY29sb3IsICRiZy1ob3Zlcjokd2FybmluZy1idXR0b24tYmctaG92ZXIsICRib3JkZXItY29sb3I6JHdhcm5pbmctYnV0dG9uLWJvcmRlci1jb2xvcik7IH1cbiAgICAgICYuaW5mbyAgICAgIHsgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRiZzokaW5mby1jb2xvciwgJGJnLWhvdmVyOiRpbmZvLWJ1dHRvbi1iZy1ob3ZlciwgJGJvcmRlci1jb2xvcjokaW5mby1idXR0b24tYm9yZGVyLWNvbG9yKTsgfVxuXG4gICAgICAmLmxhcmdlICB7IEBpbmNsdWRlIGJ1dHRvbi1zaXplKCRwYWRkaW5nOiRidXR0b24tbHJnKTsgfVxuICAgICAgJi5zbWFsbCAgeyBAaW5jbHVkZSBidXR0b24tc2l6ZSgkcGFkZGluZzokYnV0dG9uLXNtbCk7IH1cbiAgICAgICYudGlueSAgIHsgQGluY2x1ZGUgYnV0dG9uLXNpemUoJHBhZGRpbmc6JGJ1dHRvbi10bnkpOyB9XG4gICAgICAmLmV4cGFuZCB7IEBpbmNsdWRlIGJ1dHRvbi1zaXplKCRwYWRkaW5nOm51bGwsJGZ1bGwtd2lkdGg6dHJ1ZSk7IH1cblxuICAgICAgJi5sZWZ0LWFsaWduICB7IHRleHQtYWxpZ246IGxlZnQ7IHRleHQtaW5kZW50OiByZW0tY2FsYygxMik7IH1cbiAgICAgICYucmlnaHQtYWxpZ24geyB0ZXh0LWFsaWduOiByaWdodDsgcGFkZGluZy1yaWdodDogcmVtLWNhbGMoMTIpOyB9XG5cbiAgICAgICYucmFkaXVzIHsgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRiZzpmYWxzZSwgJHJhZGl1czp0cnVlKTsgfVxuICAgICAgJi5yb3VuZCAgeyBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGJnOmZhbHNlLCAkcmFkaXVzOiRidXR0b24tcm91bmQpOyB9XG5cbiAgICAgICYuZGlzYWJsZWQsICZbZGlzYWJsZWRdIHsgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRiZzokYnV0dG9uLWJnLWNvbG9yLCAkZGlzYWJsZWQ6dHJ1ZSwgJGJnLWhvdmVyOiRidXR0b24tYmctaG92ZXIsICRib3JkZXItY29sb3I6JGJ1dHRvbi1ib3JkZXItY29sb3IpO1xuICAgICAgICAmLnNlY29uZGFyeSB7IEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkYmc6JHNlY29uZGFyeS1jb2xvciwgJGRpc2FibGVkOnRydWUsICRiZy1ob3Zlcjokc2Vjb25kYXJ5LWJ1dHRvbi1iZy1ob3ZlciwgJGJvcmRlci1jb2xvcjokc2Vjb25kYXJ5LWJ1dHRvbi1ib3JkZXItY29sb3IpOyB9XG4gICAgICAgICYuc3VjY2VzcyB7IEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkYmc6JHN1Y2Nlc3MtY29sb3IsICRkaXNhYmxlZDp0cnVlLCAkYmctaG92ZXI6JHN1Y2Nlc3MtYnV0dG9uLWJnLWhvdmVyLCAkYm9yZGVyLWNvbG9yOiRzdWNjZXNzLWJ1dHRvbi1ib3JkZXItY29sb3IpOyB9XG4gICAgICAgICYuYWxlcnQgeyBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGJnOiRhbGVydC1jb2xvciwgJGRpc2FibGVkOnRydWUsICRiZy1ob3ZlcjokYWxlcnQtYnV0dG9uLWJnLWhvdmVyLCAkYm9yZGVyLWNvbG9yOiRhbGVydC1idXR0b24tYm9yZGVyLWNvbG9yKTsgfVxuICAgICAgICAmLndhcm5pbmcgeyBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGJnOiR3YXJuaW5nLWNvbG9yLCAkZGlzYWJsZWQ6dHJ1ZSwgJGJnLWhvdmVyOiR3YXJuaW5nLWJ1dHRvbi1iZy1ob3ZlciwgJGJvcmRlci1jb2xvcjokd2FybmluZy1idXR0b24tYm9yZGVyLWNvbG9yKTsgfVxuICAgICAgICAmLmluZm8geyBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGJnOiRpbmZvLWNvbG9yLCAkZGlzYWJsZWQ6dHJ1ZSwgJGJnLWhvdmVyOiRpbmZvLWJ1dHRvbi1iZy1ob3ZlciwgJGJvcmRlci1jb2xvcjokaW5mby1idXR0b24tYm9yZGVyLWNvbG9yKTsgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vZmlyZWZveCAycHggZml4XG4gICAgYnV0dG9uOjotbW96LWZvY3VzLWlubmVyIHtib3JkZXI6MDsgcGFkZGluZzowO31cblxuICAgIEBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAgIGJ1dHRvbiwgLmJ1dHRvbiB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1iYXNlKCRzdHlsZTpmYWxzZSwgJGRpc3BsYXk6aW5saW5lLWJsb2NrKTtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLXNpemUoJHBhZGRpbmc6ZmFsc2UsICRmdWxsLXdpZHRoOmZhbHNlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBpbXBvcnQgXCJnbG9iYWxcIjtcblxuLy9cbi8vIEB2YXJpYWJsZXNcbi8vXG4kaW5jbHVkZS1odG1sLWdyaWQtY2xhc3NlczogJGluY2x1ZGUtaHRtbC1jbGFzc2VzICFkZWZhdWx0O1xuJGluY2x1ZGUteGwtaHRtbC1ncmlkLWNsYXNzZXM6IGZhbHNlICFkZWZhdWx0O1xuXG4kcm93LXdpZHRoOiByZW0tY2FsYygxMDAwKSAhZGVmYXVsdDtcbiR0b3RhbC1jb2x1bW5zOiAxMiAhZGVmYXVsdDtcblxuJGxhc3QtY2hpbGQtZmxvYXQ6ICRvcHBvc2l0ZS1kaXJlY3Rpb24gIWRlZmF1bHQ7XG5cbi8vXG4vLyBHcmlkIEZ1bmN0aW9uc1xuLy9cblxuLy8gRGVwcmVjYXRlZDogV2UnbGwgZHJvcCBzdXBwb3J0IGZvciB0aGlzIGluIDUuMSwgdXNlIGdyaWQtY2FsYygpXG5AZnVuY3Rpb24gZ3JpZENhbGMoJGNvbE51bWJlciwgJHRvdGFsQ29sdW1ucykge1xuICBAd2FybiBcImdyaWRDYWxjKCkgaXMgZGVwcmVjYXRlZCwgdXNlIGdyaWQtY2FsYygpXCI7XG4gIEByZXR1cm4gZ3JpZC1jYWxjKCRjb2xOdW1iZXIsICR0b3RhbENvbHVtbnMpO1xufVxuXG4vLyBARlVOQ1RJT05cbi8vICRjb2xOdW1iZXIgLSBGb3VuZCBpbiBzZXR0aW5ncyBmaWxlXG4vLyAkdG90YWxDb2x1bW5zIC0gRm91bmQgaW4gc2V0dGluZ3MgZmlsZVxuQGZ1bmN0aW9uIGdyaWQtY2FsYygkY29sTnVtYmVyLCAkdG90YWxDb2x1bW5zKSB7XG4gIEByZXR1cm4gcGVyY2VudGFnZSgoJGNvbE51bWJlciAvICR0b3RhbENvbHVtbnMpKTtcbn1cblxuLy9cbi8vIEBtaXhpbnNcbi8vXG5cbi8vIEZvciBjcmVhdGluZyBjb250YWluZXIsIG5lc3RlZCwgYW5kIGNvbGxhcHNlZCByb3dzLlxuLy9cbi8vXG4vLyAkYmVoYXZpb3IgLSBBbnkgc3BlY2lhbCBiZWhhdmlvciBmb3IgdGhpcyByb3c/IERlZmF1bHQ6IGZhbHNlLiBPcHRpb25zOiBuZXN0LCBjb2xsYXBzZSwgbmVzdC1jb2xsYXBzZSwgZmFsc2UuXG5AbWl4aW4gZ3JpZC1yb3coJGJlaGF2aW9yOiBmYWxzZSkge1xuXG4gIC8vIHVzZSBAaW5jbHVkZSBncmlkLXJvdyhuZXN0KTsgdG8gaW5jbHVkZSBhIG5lc3RlZCByb3dcbiAgQGlmICRiZWhhdmlvciA9PSBuZXN0IHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06IC0oJGNvbHVtbi1ndXR0ZXIvMik7XG4gICAgbWFyZ2luLSN7JG9wcG9zaXRlLWRpcmVjdGlvbn06IC0oJGNvbHVtbi1ndXR0ZXIvMik7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIG1heC13aWR0aDogbm9uZTtcbiAgfVxuXG4gIC8vIHVzZSBAaW5jbHVkZSBncmlkLXJvdyhjb2xsYXBzZSk7IHRvIGNvbGxhcHNlZCBhIGNvbnRhaW5lciByb3cgbWFyZ2luc1xuICBAZWxzZSBpZiAkYmVoYXZpb3IgPT0gY29sbGFwc2Uge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMDtcbiAgICBtYXgtd2lkdGg6ICRyb3ctd2lkdGg7XG4gIH1cblxuICAvLyB1c2UgQGluY2x1ZGUgZ3JpZC1yb3cobmVzdC1jb2xsYXBzZSk7IHRvIGNvbGxhcHNlIG91dGVyIG1hcmdpbnMgb24gYSBuZXN0ZWQgcm93XG4gIEBlbHNlIGlmICRiZWhhdmlvciA9PSBuZXN0LWNvbGxhcHNlIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBtYXJnaW46IDA7XG4gICAgbWF4LXdpZHRoOiBub25lO1xuICB9XG5cbiAgLy8gdXNlIEBpbmNsdWRlIGdyaWQtcm93OyB0byB1c2UgYSBjb250YWluZXIgcm93XG4gIEBlbHNlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06IGF1dG87XG4gICAgbWFyZ2luLSN7JG9wcG9zaXRlLWRpcmVjdGlvbn06IGF1dG87XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIG1heC13aWR0aDogJHJvdy13aWR0aDtcbiAgfVxuXG4gIC8vIENsZWFyZml4IGZvciBhbGwgcm93c1xuICBAaW5jbHVkZSBjbGVhcmZpeCgpO1xufVxuXG4vLyBDcmVhdGVzIGEgY29sdW1uLCBzaG91bGQgYmUgdXNlZCBpbnNpZGUgb2YgYSBtZWRpYSBxdWVyeSB0byBjb250cm9sIGxheW91dHNcbi8vXG4vLyAkY29sdW1ucyAtIFRoZSBudW1iZXIgb2YgY29sdW1ucyB0aGlzIHNob3VsZCBiZVxuLy8gJGxhc3QtY29sdW1uIC0gSXMgdGhpcyB0aGUgbGFzdCBjb2x1bW4/IERlZmF1bHQ6IGZhbHNlLlxuLy8gJGNlbnRlciAtIENlbnRlciB0aGVzZSBjb2x1bW5zPyBEZWZhdWx0OiBmYWxzZS5cbi8vICRvZmZzZXQgLSAjIG9mIGNvbHVtbnMgdG8gb2Zmc2V0LiBEZWZhdWx0OiBmYWxzZS5cbi8vICRwdXNoIC0gIyBvZiBjb2x1bW5zIHRvIHB1c2guIERlZmF1bHQ6IGZhbHNlLlxuLy8gJHB1bGwgLSAjIG9mIGNvbHVtbnMgdG8gcHVsbC4gRGVmYXVsdDogZmFsc2UuXG4vLyAkY29sbGFwc2UgLSBHZXQgcmlkIG9mIGd1dHRlciBwYWRkaW5nIG9uIGNvbHVtbj8gRGVmYXVsdDogZmFsc2UuXG4vLyAkZmxvYXQgLSBTaG91bGQgdGhpcyBmbG9hdD8gRGVmYXVsdDogdHJ1ZS4gT3B0aW9uczogdHJ1ZSwgZmFsc2UsIGxlZnQsIHJpZ2h0LlxuQG1peGluIGdyaWQtY29sdW1uKFxuICAkY29sdW1uczpmYWxzZSxcbiAgJGxhc3QtY29sdW1uOmZhbHNlLFxuICAkY2VudGVyOmZhbHNlLFxuICAkb2Zmc2V0OmZhbHNlLFxuICAkcHVzaDpmYWxzZSxcbiAgJHB1bGw6ZmFsc2UsXG4gICRjb2xsYXBzZTpmYWxzZSxcbiAgJGZsb2F0OnRydWUsXG4gICRwb3NpdGlvbjpmYWxzZSkge1xuXG4gIC8vIElmIHBvc2l0aW9uZWQgZm9yIGRlZmF1bHQgLmNvbHVtbiwgaW5jbHVkZSByZWxhdGl2ZSBwb3NpdGlvblxuICAvLyBwdXNoIGFuZCBwdWxsIHJlcXVpcmUgcG9zaXRpb24gc2V0XG4gIEBpZiAkcG9zaXRpb24gb3IgJHB1c2ggb3IgJHB1bGwge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuXG4gIC8vIElmIGNvbGxhcHNlZCwgZ2V0IHJpZCBvZiBndXR0ZXIgcGFkZGluZ1xuICBAaWYgJGNvbGxhcHNlIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgfVxuXG4gIC8vIEd1dHRlciBwYWRkaW5nIHdoZW5ldmVyIGEgY29sdW1uIGlzbid0IHNldCB0byBjb2xsYXBzZVxuICAvLyAodXNlICRjb2xsYXBzZTpudWxsIHRvIGRvIG5vdGhpbmcpXG4gIEBlbHNlIGlmICRjb2xsYXBzZSA9PSBmYWxzZSB7XG4gICAgcGFkZGluZy1sZWZ0OiAoJGNvbHVtbi1ndXR0ZXIgLyAyKTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAoJGNvbHVtbi1ndXR0ZXIgLyAyKTtcbiAgfVxuXG4gIC8vIElmIGEgY29sdW1uIG51bWJlciBpcyBnaXZlbiwgY2FsY3VsYXRlIHdpZHRoXG4gIEBpZiAkY29sdW1ucyB7XG4gICAgd2lkdGg6IGdyaWQtY2FsYygkY29sdW1ucywgJHRvdGFsLWNvbHVtbnMpO1xuXG4gICAgLy8gSWYgbGFzdCBjb2x1bW4sIGZsb2F0IG5hdHVyYWxseSBpbnN0ZWFkIG9mIHRvIHRoZSByaWdodFxuICAgIEBpZiAkbGFzdC1jb2x1bW4geyBmbG9hdDogJG9wcG9zaXRlLWRpcmVjdGlvbjsgfVxuICB9XG5cbiAgLy8gU291cmNlIE9yZGVyaW5nLCBhZGRzIGxlZnQvcmlnaHQgZGVwZW5kaW5nIG9uIHdoaWNoIHlvdSB1c2UuXG4gIEBpZiAkcHVzaCB7ICN7JGRlZmF1bHQtZmxvYXR9OiBncmlkLWNhbGMoJHB1c2gsICR0b3RhbC1jb2x1bW5zKTsgI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogYXV0bzsgfVxuICBAaWYgJHB1bGwgeyAjeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiBncmlkLWNhbGMoJHB1bGwsICR0b3RhbC1jb2x1bW5zKTsgI3skZGVmYXVsdC1mbG9hdH06IGF1dG87IH1cblxuICBAaWYgJGZsb2F0IHtcbiAgICBAaWYgJGZsb2F0ID09IGxlZnQgb3IgJGZsb2F0ID09IHRydWUgeyBmbG9hdDogJGRlZmF1bHQtZmxvYXQ7IH1cbiAgICBAZWxzZSBpZiAkZmxvYXQgPT0gcmlnaHQgeyBmbG9hdDogJG9wcG9zaXRlLWRpcmVjdGlvbjsgfVxuICAgIEBlbHNlIHsgZmxvYXQ6IG5vbmU7IH1cbiAgfVxuXG4gIC8vIElmIGNlbnRlcmVkLCBnZXQgcmlkIG9mIGZsb2F0IGFuZCBhZGQgYXBwcm9wcmlhdGUgbWFyZ2luc1xuICBAaWYgJGNlbnRlciB7XG4gICAgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiBhdXRvO1xuICAgIG1hcmdpbi0jeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiBhdXRvO1xuICAgIGZsb2F0OiBub25lO1xuICB9XG5cbiAgLy8gSWYgb2Zmc2V0LCBjYWxjdWxhdGUgYXBwcm9wcmlhdGUgbWFyZ2luc1xuICBAaWYgJG9mZnNldCB7IG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogZ3JpZC1jYWxjKCRvZmZzZXQsICR0b3RhbC1jb2x1bW5zKSAhaW1wb3J0YW50OyB9XG5cbn1cblxuLy8gQ3JlYXRlIHByZXNlbnRhdGlvbmFsIGNsYXNzZXMgZm9yIGdyaWRcbi8vXG4vLyAkc2l6ZSAtIE5hbWUgb2YgY2xhc3MgdG8gdXNlLCBpLmUuIFwibGFyZ2VcIiB3aWxsIGdlbmVyYXRlIC5sYXJnZS0xLCAubGFyZ2UtMiwgZXRjLlxuQG1peGluIGdyaWQtaHRtbC1jbGFzc2VzKCRzaXplKSB7XG5cbiAgQGZvciAkaSBmcm9tIDAgdGhyb3VnaCAkdG90YWwtY29sdW1ucyAtIDEge1xuICAgIC4jeyRzaXplfS1wdXNoLSN7JGl9IHtcbiAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKCRwdXNoOiRpLCAkY29sbGFwc2U6bnVsbCwgJGZsb2F0OmZhbHNlKTtcbiAgICB9XG4gICAgLiN7JHNpemV9LXB1bGwtI3skaX0ge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJHB1bGw6JGksICRjb2xsYXBzZTpudWxsLCAkZmxvYXQ6ZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIC5jb2x1bW4sXG4gIC5jb2x1bW5zIHsgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJGNvbHVtbnM6ZmFsc2UsICRwb3NpdGlvbjp0cnVlKTsgfVxuXG5cbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkdG90YWwtY29sdW1ucyB7XG4gICAgLiN7JHNpemV9LSN7JGl9IHsgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJGNvbHVtbnM6JGksJGNvbGxhcHNlOm51bGwsJGZsb2F0OmZhbHNlKTsgfVxuICB9XG5cbiAgQGZvciAkaSBmcm9tIDAgdGhyb3VnaCAkdG90YWwtY29sdW1ucyAtIDEge1xuICAgIC4jeyRzaXplfS1vZmZzZXQtI3skaX0geyBAaW5jbHVkZSBncmlkLWNvbHVtbigkb2Zmc2V0OiRpLCAkY29sbGFwc2U6bnVsbCwkZmxvYXQ6ZmFsc2UpOyB9XG4gIH1cblxuICAuI3skc2l6ZX0tcmVzZXQtb3JkZXIge1xuICAgIG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogMDtcbiAgICBtYXJnaW4tI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogMDtcbiAgICBsZWZ0OiBhdXRvO1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGZsb2F0OiAkZGVmYXVsdC1mbG9hdDtcbiAgfVxuXG4gIC5jb2x1bW4uI3skc2l6ZX0tY2VudGVyZWQsXG4gIC5jb2x1bW5zLiN7JHNpemV9LWNlbnRlcmVkIHsgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJGNlbnRlcjp0cnVlLCAkY29sbGFwc2U6bnVsbCwgJGZsb2F0OmZhbHNlKTsgfVxuXG4gIC5jb2x1bW4uI3skc2l6ZX0tdW5jZW50ZXJlZCxcbiAgLmNvbHVtbnMuI3skc2l6ZX0tdW5jZW50ZXJlZCB7XG4gICAgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiAwO1xuICAgIG1hcmdpbi0jeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAwO1xuICAgIGZsb2F0OiAkZGVmYXVsdC1mbG9hdDtcbiAgfVxuXG4gIC8vIEZpZ2h0aW5nIFtjbGFzcyo9XCJjb2x1bW5cIl0gKyBbY2xhc3MqPVwiY29sdW1uXCJdOmxhc3QtY2hpbGRcbiAgLmNvbHVtbi4jeyRzaXplfS1jZW50ZXJlZDpsYXN0LWNoaWxkLFxuICAuY29sdW1ucy4jeyRzaXplfS1jZW50ZXJlZDpsYXN0LWNoaWxke1xuICAgIGZsb2F0OiBub25lO1xuICB9XG5cbiAgLy8gRmlnaHRpbmcgLmNvbHVtbi48cHJldmlvdXMtc2l6ZT4tY2VudGVyZWQ6bGFzdC1jaGlsZFxuICAuY29sdW1uLiN7JHNpemV9LXVuY2VudGVyZWQ6bGFzdC1jaGlsZCxcbiAgLmNvbHVtbnMuI3skc2l6ZX0tdW5jZW50ZXJlZDpsYXN0LWNoaWxkIHtcbiAgICBmbG9hdDogJGRlZmF1bHQtZmxvYXQ7XG4gIH1cblxuICAuY29sdW1uLiN7JHNpemV9LXVuY2VudGVyZWQub3Bwb3NpdGUsXG4gIC5jb2x1bW5zLiN7JHNpemV9LXVuY2VudGVyZWQub3Bwb3NpdGUge1xuICAgIGZsb2F0OiAkb3Bwb3NpdGUtZGlyZWN0aW9uO1xuICB9XG5cblx0LnJvdyB7XG5cdFx0Ji4jeyRzaXplfS1jb2xsYXBzZSB7XG5cdFx0XHQ+IC5jb2x1bW4sXG5cdFx0XHQ+IC5jb2x1bW5zIHsgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJGNvbGxhcHNlOnRydWUsICRmbG9hdDpmYWxzZSk7IH1cblxuXHRcdFx0LnJvdyB7bWFyZ2luLWxlZnQ6MDsgbWFyZ2luLXJpZ2h0OjA7fVxuXHRcdH1cblx0XHQmLiN7JHNpemV9LXVuY29sbGFwc2Uge1xuXHRcdFx0PiAuY29sdW1uLFxuXHRcdFx0PiAuY29sdW1ucyB7XG5cdFx0XHRcdEBpbmNsdWRlIGdyaWQtY29sdW1uO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG5AaW5jbHVkZSBleHBvcnRzKFwiZ3JpZFwiKSB7XG4gIEBpZiAkaW5jbHVkZS1odG1sLWdyaWQtY2xhc3NlcyB7XG4gICAgLnJvdyB7XG4gICAgICBAaW5jbHVkZSBncmlkLXJvdztcblxuICAgICAgJi5jb2xsYXBzZSB7XG4gICAgICAgICA+IC5jb2x1bW4sXG4gICAgICAgICA+IC5jb2x1bW5zIHsgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJGNvbGxhcHNlOnRydWUsICRmbG9hdDpmYWxzZSk7IH1cblxuICAgICAgICAucm93IHttYXJnaW4tbGVmdDowOyBtYXJnaW4tcmlnaHQ6MDt9XG4gICAgICB9XG5cbiAgICAgIC5yb3cgeyBAaW5jbHVkZSBncmlkLXJvdygkYmVoYXZpb3I6bmVzdCk7XG4gICAgICAgICYuY29sbGFwc2UgeyBAaW5jbHVkZSBncmlkLXJvdygkYmVoYXZpb3I6bmVzdC1jb2xsYXBzZSk7IH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAuY29sdW1uLFxuICAgIC5jb2x1bW5zIHsgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJGNvbHVtbnM6JHRvdGFsLWNvbHVtbnMpOyB9XG5cbiAgICBbY2xhc3MqPVwiY29sdW1uXCJdICsgW2NsYXNzKj1cImNvbHVtblwiXTpsYXN0LWNoaWxkIHsgZmxvYXQ6ICRsYXN0LWNoaWxkLWZsb2F0OyB9XG4gICAgW2NsYXNzKj1cImNvbHVtblwiXSArIFtjbGFzcyo9XCJjb2x1bW5cIl0uZW5kIHsgZmxvYXQ6ICRkZWZhdWx0LWZsb2F0OyB9XG5cbiAgICBAbWVkaWEgI3skc21hbGwtdXB9IHtcbiAgICAgIEBpbmNsdWRlIGdyaWQtaHRtbC1jbGFzc2VzKCRzaXplOnNtYWxsKTtcbiAgICB9XG5cbiAgICBAbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgICBAaW5jbHVkZSBncmlkLWh0bWwtY2xhc3Nlcygkc2l6ZTptZWRpdW0pO1xuICAgICAgLy8gT2xkIHB1c2ggYW5kIHB1bGwgY2xhc3Nlc1xuICAgICAgQGZvciAkaSBmcm9tIDAgdGhyb3VnaCAkdG90YWwtY29sdW1ucyAtIDEge1xuICAgICAgICAucHVzaC0jeyRpfSB7XG4gICAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJHB1c2g6JGksICRjb2xsYXBzZTpudWxsLCAkZmxvYXQ6ZmFsc2UpO1xuICAgICAgICB9XG4gICAgICAgIC5wdWxsLSN7JGl9IHtcbiAgICAgICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigkcHVsbDokaSwgJGNvbGxhcHNlOm51bGwsICRmbG9hdDpmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgQG1lZGlhICN7JGxhcmdlLXVwfSB7XG4gICAgICBAaW5jbHVkZSBncmlkLWh0bWwtY2xhc3Nlcygkc2l6ZTpsYXJnZSk7XG4gICAgICBAZm9yICRpIGZyb20gMCB0aHJvdWdoICR0b3RhbC1jb2x1bW5zIC0gMSB7XG4gICAgICAgIC5wdXNoLSN7JGl9IHtcbiAgICAgICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigkcHVzaDokaSwgJGNvbGxhcHNlOm51bGwsICRmbG9hdDpmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgICAgLnB1bGwtI3skaX0ge1xuICAgICAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKCRwdWxsOiRpLCAkY29sbGFwc2U6bnVsbCwgJGZsb2F0OmZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAaWYgJGluY2x1ZGUteGwtaHRtbC1ncmlkLWNsYXNzZXMge1xuICAgIEBtZWRpYSAjeyR4bGFyZ2UtdXB9IHtcbiAgICAgIEBpbmNsdWRlIGdyaWQtaHRtbC1jbGFzc2VzKCRzaXplOnhsYXJnZSk7XG4gICAgfVxuICAgIEBtZWRpYSAjeyR4eGxhcmdlLXVwfSB7XG4gICAgICBAaW5jbHVkZSBncmlkLWh0bWwtY2xhc3Nlcygkc2l6ZTp4eGxhcmdlKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBpbXBvcnQgXCJnbG9iYWxcIjtcblxuLy9cbi8vIEB2YXJpYWJsZXNcbi8vXG4kaW5jbHVkZS1odG1sLWlubGluZS1saXN0LWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcyAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoaXMgdG8gY29udHJvbCB0aGUgbWFyZ2lucyBhbmQgcGFkZGluZyBvZiB0aGUgaW5saW5lIGxpc3QuXG4kaW5saW5lLWxpc3QtdG9wLW1hcmdpbjogMCAhZGVmYXVsdDtcbiRpbmxpbmUtbGlzdC1vcHBvc2l0ZS1tYXJnaW46IDAgIWRlZmF1bHQ7XG4kaW5saW5lLWxpc3QtYm90dG9tLW1hcmdpbjogcmVtLWNhbGMoMTcpICFkZWZhdWx0O1xuJGlubGluZS1saXN0LWRlZmF1bHQtZmxvYXQtbWFyZ2luOiByZW0tY2FsYygtMjIpICFkZWZhdWx0O1xuJGlubGluZS1saXN0LWRlZmF1bHQtZmxvYXQtbGlzdC1tYXJnaW46IHJlbS1jYWxjKDIyKSAhZGVmYXVsdDtcblxuJGlubGluZS1saXN0LXBhZGRpbmc6IDAgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGlzIHRvIGNvbnRyb2wgdGhlIG92ZXJmbG93IG9mIHRoZSBpbmxpbmUgbGlzdC5cbiRpbmxpbmUtbGlzdC1vdmVyZmxvdzogaGlkZGVuICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhpcyB0byBjb250cm9sIHRoZSBsaXN0IGl0ZW1zXG4kaW5saW5lLWxpc3QtZGlzcGxheTogYmxvY2sgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGlzIHRvIGNvbnRyb2wgYW55IGVsZW1lbnRzIHdpdGhpbiBsaXN0IGl0ZW1zXG4kaW5saW5lLWxpc3QtY2hpbGRyZW4tZGlzcGxheTogYmxvY2sgIWRlZmF1bHQ7XG5cbi8vXG4vLyBAbWl4aW5zXG4vL1xuLy8gV2UgdXNlIHRoaXMgbWl4aW4gdG8gY3JlYXRlIGlubGluZSBsaXN0c1xuQG1peGluIGlubGluZS1saXN0IHtcbiAgbWFyZ2luOiAkaW5saW5lLWxpc3QtdG9wLW1hcmdpbiBhdXRvICRpbmxpbmUtbGlzdC1ib3R0b20tbWFyZ2luIGF1dG87XG4gIG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogJGlubGluZS1saXN0LWRlZmF1bHQtZmxvYXQtbWFyZ2luO1xuICBtYXJnaW4tI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogJGlubGluZS1saXN0LW9wcG9zaXRlLW1hcmdpbjtcbiAgcGFkZGluZzogJGlubGluZS1saXN0LXBhZGRpbmc7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG92ZXJmbG93OiAkaW5saW5lLWxpc3Qtb3ZlcmZsb3c7XG5cbiAgJiA+IGxpIHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIGZsb2F0OiAkZGVmYXVsdC1mbG9hdDtcbiAgICBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06ICRpbmxpbmUtbGlzdC1kZWZhdWx0LWZsb2F0LWxpc3QtbWFyZ2luO1xuICAgIGRpc3BsYXk6ICRpbmxpbmUtbGlzdC1kaXNwbGF5O1xuICAgICY+KiB7IGRpc3BsYXk6ICRpbmxpbmUtbGlzdC1jaGlsZHJlbi1kaXNwbGF5OyB9XG4gIH1cbn1cblxuQGluY2x1ZGUgZXhwb3J0cyhcImlubGluZS1saXN0XCIpIHtcbiAgQGlmICRpbmNsdWRlLWh0bWwtaW5saW5lLWxpc3QtY2xhc3NlcyB7XG4gICAgLmlubGluZS1saXN0IHtcbiAgICAgIEBpbmNsdWRlIGlubGluZS1saXN0KCk7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AaW1wb3J0IFwiZ2xvYmFsXCI7XG5cbi8vXG4vLyBAbmFtZSBfdGFibGVzLnNjc3Ncbi8vIEBkZXBlbmRlbmNpZXMgX2dsb2JhbC5zY3NzXG4vL1xuXG4vL1xuLy8gQHZhcmlhYmxlc1xuLy9cblxuJGluY2x1ZGUtaHRtbC10YWJsZS1jbGFzc2VzOiAkaW5jbHVkZS1odG1sLWNsYXNzZXMgIWRlZmF1bHQ7XG5cbi8vIFRoZXNlIGNvbnRyb2wgdGhlIGJhY2tncm91bmQgY29sb3IgZm9yIHRoZSB0YWJsZSBhbmQgZXZlbiByb3dzXG4kdGFibGUtYmc6ICR3aGl0ZSAhZGVmYXVsdDtcbiR0YWJsZS1ldmVuLXJvdy1iZzogJHNub3cgIWRlZmF1bHQ7XG5cbi8vIFRoZXNlIGNvbnRyb2wgdGhlIHRhYmxlIGNlbGwgYm9yZGVyIHN0eWxlXG4kdGFibGUtYm9yZGVyLXN0eWxlOiBzb2xpZCAhZGVmYXVsdDtcbiR0YWJsZS1ib3JkZXItc2l6ZTogMXB4ICFkZWZhdWx0O1xuJHRhYmxlLWJvcmRlci1jb2xvcjogJGdhaW5zYm9ybyAhZGVmYXVsdDtcblxuLy8gVGhlc2UgY29udHJvbCB0aGUgdGFibGUgaGVhZCBzdHlsZXNcbiR0YWJsZS1oZWFkLWJnOiAkd2hpdGUtc21va2UgIWRlZmF1bHQ7XG4kdGFibGUtaGVhZC1mb250LXNpemU6IHJlbS1jYWxjKDE0KSAhZGVmYXVsdDtcbiR0YWJsZS1oZWFkLWZvbnQtY29sb3I6ICRqZXQgIWRlZmF1bHQ7XG4kdGFibGUtaGVhZC1mb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XG4kdGFibGUtaGVhZC1wYWRkaW5nOiByZW0tY2FsYyg4IDEwIDEwKSAhZGVmYXVsdDtcblxuLy8gVGhlc2UgY29udHJvbCB0aGUgdGFibGUgZm9vdCBzdHlsZXNcbiR0YWJsZS1mb290LWJnOiAkdGFibGUtaGVhZC1iZyAhZGVmYXVsdDtcbiR0YWJsZS1mb290LWZvbnQtc2l6ZTogJHRhYmxlLWhlYWQtZm9udC1zaXplICFkZWZhdWx0O1xuJHRhYmxlLWZvb3QtZm9udC1jb2xvcjogJHRhYmxlLWhlYWQtZm9udC1jb2xvciAhZGVmYXVsdDtcbiR0YWJsZS1mb290LWZvbnQtd2VpZ2h0OiAkdGFibGUtaGVhZC1mb250LXdlaWdodCAhZGVmYXVsdDtcbiR0YWJsZS1mb290LXBhZGRpbmc6ICR0YWJsZS1oZWFkLXBhZGRpbmcgIWRlZmF1bHQ7XG5cbi8vIFRoZXNlIGNvbnRyb2wgdGhlIGNhcHRpb25cbiR0YWJsZS1jYXB0aW9uLWJnOiB0cmFuc3BhcmVudCAhZGVmYXVsdDtcbiR0YWJsZS1jYXB0aW9uLWZvbnQtY29sb3I6ICR0YWJsZS1oZWFkLWZvbnQtY29sb3IgIWRlZmF1bHQ7XG4kdGFibGUtY2FwdGlvbi1mb250LXNpemU6IHJlbS1jYWxjKDE2KSAhZGVmYXVsdDtcbiR0YWJsZS1jYXB0aW9uLWZvbnQtd2VpZ2h0OiBib2xkICFkZWZhdWx0O1xuXG4vLyBUaGVzZSBjb250cm9sIHRoZSByb3cgcGFkZGluZyBhbmQgZm9udCBzdHlsZXNcbiR0YWJsZS1yb3ctcGFkZGluZzogcmVtLWNhbGMoOSAxMCkgIWRlZmF1bHQ7XG4kdGFibGUtcm93LWZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpICFkZWZhdWx0O1xuJHRhYmxlLXJvdy1mb250LWNvbG9yOiAkamV0ICFkZWZhdWx0O1xuJHRhYmxlLWxpbmUtaGVpZ2h0OiByZW0tY2FsYygxOCkgIWRlZmF1bHQ7XG5cbi8vIFRoZXNlIGFyZSBmb3IgY29udHJvbGxpbmcgdGhlIGxheW91dCwgZGlzcGxheSBhbmQgbWFyZ2luIG9mIHRhYmxlc1xuJHRhYmxlLWxheW91dDogYXV0byAhZGVmYXVsdDtcbiR0YWJsZS1kaXNwbGF5OiB0YWJsZS1jZWxsICFkZWZhdWx0O1xuJHRhYmxlLW1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDIwKSAhZGVmYXVsdDtcblxuXG4vL1xuLy8gQG1peGluc1xuLy9cblxuQG1peGluIHRhYmxlIHtcbiAgYmFja2dyb3VuZDogJHRhYmxlLWJnO1xuICBtYXJnaW4tYm90dG9tOiAkdGFibGUtbWFyZ2luLWJvdHRvbTtcbiAgYm9yZGVyOiAkdGFibGUtYm9yZGVyLXN0eWxlICR0YWJsZS1ib3JkZXItc2l6ZSAkdGFibGUtYm9yZGVyLWNvbG9yO1xuICB0YWJsZS1sYXlvdXQ6ICR0YWJsZS1sYXlvdXQ7XG5cbiAgY2FwdGlvbiB7XG4gICAgYmFja2dyb3VuZDogJHRhYmxlLWNhcHRpb24tYmc7XG4gICAgY29sb3I6ICR0YWJsZS1jYXB0aW9uLWZvbnQtY29sb3I7XG4gICAgZm9udDoge1xuICAgICAgc2l6ZTogJHRhYmxlLWNhcHRpb24tZm9udC1zaXplO1xuICAgICAgd2VpZ2h0OiAkdGFibGUtY2FwdGlvbi1mb250LXdlaWdodDtcbiAgICB9XG4gIH1cblxuICB0aGVhZCB7XG4gICAgYmFja2dyb3VuZDogJHRhYmxlLWhlYWQtYmc7XG5cbiAgICB0ciB7XG4gICAgICB0aCxcbiAgICAgIHRkIHtcbiAgICAgICAgcGFkZGluZzogJHRhYmxlLWhlYWQtcGFkZGluZztcbiAgICAgICAgZm9udC1zaXplOiAkdGFibGUtaGVhZC1mb250LXNpemU7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkdGFibGUtaGVhZC1mb250LXdlaWdodDtcbiAgICAgICAgY29sb3I6ICR0YWJsZS1oZWFkLWZvbnQtY29sb3I7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdGZvb3Qge1xuICAgIGJhY2tncm91bmQ6ICR0YWJsZS1mb290LWJnO1xuXG4gICAgdHIge1xuICAgICAgdGgsXG4gICAgICB0ZCB7XG4gICAgICAgIHBhZGRpbmc6ICR0YWJsZS1mb290LXBhZGRpbmc7XG4gICAgICAgIGZvbnQtc2l6ZTogJHRhYmxlLWZvb3QtZm9udC1zaXplO1xuICAgICAgICBmb250LXdlaWdodDogJHRhYmxlLWZvb3QtZm9udC13ZWlnaHQ7XG4gICAgICAgIGNvbG9yOiAkdGFibGUtZm9vdC1mb250LWNvbG9yO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHRyIHtcbiAgICB0aCxcbiAgICB0ZCB7XG4gICAgICBwYWRkaW5nOiAkdGFibGUtcm93LXBhZGRpbmc7XG4gICAgICBmb250LXNpemU6ICR0YWJsZS1yb3ctZm9udC1zaXplO1xuICAgICAgY29sb3I6ICR0YWJsZS1yb3ctZm9udC1jb2xvcjtcbiAgICAgIHRleHQtYWxpZ246ICRkZWZhdWx0LWZsb2F0O1xuICAgIH1cblxuICAgICYuZXZlbixcbiAgICAmLmFsdCxcbiAgICAmOm50aC1vZi10eXBlKGV2ZW4pIHsgYmFja2dyb3VuZDogJHRhYmxlLWV2ZW4tcm93LWJnOyB9XG4gIH1cblxuICB0aGVhZCB0ciB0aCxcbiAgdGZvb3QgdHIgdGgsXG4gIHRmb290IHRyIHRkLFxuICB0Ym9keSB0ciB0aCxcbiAgdGJvZHkgdHIgdGQsXG4gIHRyIHRkIHsgZGlzcGxheTogJHRhYmxlLWRpc3BsYXk7IGxpbmUtaGVpZ2h0OiAkdGFibGUtbGluZS1oZWlnaHQ7IH1cbn1cblxuXG5AaW5jbHVkZSBleHBvcnRzKFwidGFibGVcIikge1xuICBAaWYgJGluY2x1ZGUtaHRtbC10YWJsZS1jbGFzc2VzIHtcbiAgICB0YWJsZSB7XG4gICAgICBAaW5jbHVkZSB0YWJsZTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBpbXBvcnQgXCJnbG9iYWxcIjtcbkBpbXBvcnQgXCJncmlkXCI7XG5cbi8vXG4vLyBAdmFyaWFibGVzXG4vL1xuXG4kaW5jbHVkZS1odG1sLXRhYnMtY2xhc3NlczogJGluY2x1ZGUtaHRtbC1jbGFzc2VzICFkZWZhdWx0O1xuXG4kdGFicy1uYXZpZ2F0aW9uLXBhZGRpbmc6IHJlbS1jYWxjKDE2KSAhZGVmYXVsdDtcbiR0YWJzLW5hdmlnYXRpb24tYmctY29sb3I6ICRzaWx2ZXIgIWRlZmF1bHQ7XG4kdGFicy1uYXZpZ2F0aW9uLWFjdGl2ZS1iZy1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuJHRhYnMtbmF2aWdhdGlvbi1ob3Zlci1iZy1jb2xvcjogc2NhbGUtY29sb3IoJHRhYnMtbmF2aWdhdGlvbi1iZy1jb2xvciwgJGxpZ2h0bmVzczogLTYlKSAhZGVmYXVsdDtcbiR0YWJzLW5hdmlnYXRpb24tZm9udC1jb2xvcjogJGpldCAhZGVmYXVsdDtcbiR0YWJzLW5hdmlnYXRpb24tYWN0aXZlLWZvbnQtY29sb3I6ICR0YWJzLW5hdmlnYXRpb24tZm9udC1jb2xvciAhZGVmYXVsdDtcbiR0YWJzLW5hdmlnYXRpb24tZm9udC1zaXplOiByZW0tY2FsYygxNikgIWRlZmF1bHQ7XG4kdGFicy1uYXZpZ2F0aW9uLWZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseSAhZGVmYXVsdDtcblxuJHRhYnMtY29udGVudC1tYXJnaW4tYm90dG9tOiByZW0tY2FsYygyNCkgIWRlZmF1bHQ7XG4kdGFicy1jb250ZW50LXBhZGRpbmc6ICgkY29sdW1uLWd1dHRlci8yKSAhZGVmYXVsdDtcblxuJHRhYnMtdmVydGljYWwtbmF2aWdhdGlvbi1tYXJnaW4tYm90dG9tOiAxLjI1cmVtICFkZWZhdWx0O1xuXG5AaW5jbHVkZSBleHBvcnRzKFwidGFiXCIpIHtcbiAgQGlmICRpbmNsdWRlLWh0bWwtdGFicy1jbGFzc2VzIHtcbiAgICAudGFicyB7XG4gICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgZGQsIC50YWItdGl0bGUge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgZmxvYXQ6ICRkZWZhdWx0LWZsb2F0O1xuICAgICAgICA+IGEge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIGJhY2tncm91bmQ6IHtcbiAgICAgICAgICAgIGNvbG9yOiAkdGFicy1uYXZpZ2F0aW9uLWJnLWNvbG9yO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb2xvcjogJHRhYnMtbmF2aWdhdGlvbi1mb250LWNvbG9yO1xuICAgICAgICAgIHBhZGRpbmc6ICR0YWJzLW5hdmlnYXRpb24tcGFkZGluZyAkdGFicy1uYXZpZ2F0aW9uLXBhZGRpbmcgKiAyO1xuICAgICAgICAgIGZvbnQtZmFtaWx5OiAkdGFicy1uYXZpZ2F0aW9uLWZvbnQtZmFtaWx5O1xuICAgICAgICAgIGZvbnQtc2l6ZTogJHRhYnMtbmF2aWdhdGlvbi1mb250LXNpemU7XG4gICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB7XG4gICAgICAgICAgICAgIGNvbG9yOiAkdGFicy1uYXZpZ2F0aW9uLWhvdmVyLWJnLWNvbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICAmOmZvY3Vze1xuICAgICAgICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmLmFjdGl2ZSBhIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiB7XG4gICAgICAgICAgICBjb2xvcjogJHRhYnMtbmF2aWdhdGlvbi1hY3RpdmUtYmctY29sb3I7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbG9yOiR0YWJzLW5hdmlnYXRpb24tYWN0aXZlLWZvbnQtY29sb3I7XG4gICAgICAgICAgfVxuICAgICAgfVxuICAgICAgJi5yYWRpdXMge1xuICAgICAgICBkZDpmaXJzdC1jaGlsZCwgLnRhYjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgYSB7IEBpbmNsdWRlIHNpZGUtcmFkaXVzKCRkZWZhdWx0LWZsb2F0LCAkZ2xvYmFsLXJhZGl1cyk7IH1cbiAgICAgICAgfVxuICAgICAgICBkZDpsYXN0LWNoaWxkLCAudGFiOmxhc3QtY2hpbGQge1xuICAgICAgICAgIGEgeyBAaW5jbHVkZSBzaWRlLXJhZGl1cygkb3Bwb3NpdGUtZGlyZWN0aW9uLCAkZ2xvYmFsLXJhZGl1cyk7IH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJi52ZXJ0aWNhbCB7XG4gICAgICAgIGRkLCAudGFiLXRpdGxlIHtcbiAgICAgICAgICBwb3NpdGlvbjogaW5oZXJpdDtcbiAgICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAudGFicy1jb250ZW50IHtcbiAgICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgICAgbWFyZ2luLWJvdHRvbTogJHRhYnMtY29udGVudC1tYXJnaW4tYm90dG9tO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICA+IC5jb250ZW50IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgZmxvYXQ6ICRkZWZhdWx0LWZsb2F0O1xuICAgICAgICBwYWRkaW5nOiAkdGFicy1jb250ZW50LXBhZGRpbmcgMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICYuYWN0aXZlIHsgZGlzcGxheTogYmxvY2s7IGZsb2F0OiBub25lOyB9XG4gICAgICAgICYuY29udGFpbmVkIHsgcGFkZGluZzogJHRhYnMtY29udGVudC1wYWRkaW5nOyB9XG4gICAgICB9XG4gICAgICAmLnZlcnRpY2FsIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgID4gLmNvbnRlbnQgeyBwYWRkaW5nOiAwICR0YWJzLWNvbnRlbnQtcGFkZGluZzsgfVxuICAgICAgfVxuICAgIH1cbiAgICBAbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgICAudGFicyB7XG4gICAgICAgICYudmVydGljYWwge1xuICAgICAgICAgIHdpZHRoOiAyMCU7XG4gICAgICAgICAgbWF4LXdpZHRoOiAyMCU7XG4gICAgICAgICAgZmxvYXQ6ICRkZWZhdWx0LWZsb2F0O1xuICAgICAgICAgIG1hcmdpbjogMCAwICR0YWJzLXZlcnRpY2FsLW5hdmlnYXRpb24tbWFyZ2luLWJvdHRvbTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLnRhYnMtY29udGVudCB7XG4gICAgICAgICYudmVydGljYWwge1xuICAgICAgICAgIHdpZHRoOiA4MCU7XG4gICAgICAgICAgbWF4LXdpZHRoOiA4MCU7XG4gICAgICAgICAgZmxvYXQ6ICRkZWZhdWx0LWZsb2F0O1xuICAgICAgICAgIG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogLTFweDtcbiAgICAgICAgICBwYWRkaW5nLSN7JGRlZmF1bHQtZmxvYXR9OiAxcmVtO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIC5uby1qcyB7XG4gICAgICAudGFicy1jb250ZW50ID4gLmNvbnRlbnQge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AaW1wb3J0IFwiZ2xvYmFsXCI7XG5cbi8vXG4vLyBAdmFyaWFibGVzXG4vL1xuJGluY2x1ZGUtaHRtbC1ncmlkLWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcyAhZGVmYXVsdDtcbiRpbmNsdWRlLXhsLWh0bWwtZ3JpZC1jbGFzc2VzOiBmYWxzZSAhZGVmYXVsdDtcblxuJHJvdy13aWR0aDogcmVtLWNhbGMoMTAwMCkgIWRlZmF1bHQ7XG4kdG90YWwtY29sdW1uczogMTIgIWRlZmF1bHQ7XG5cbiRsYXN0LWNoaWxkLWZsb2F0OiAkb3Bwb3NpdGUtZGlyZWN0aW9uICFkZWZhdWx0O1xuXG4vL1xuLy8gR3JpZCBGdW5jdGlvbnNcbi8vXG5cbi8vIERlcHJlY2F0ZWQ6IFdlJ2xsIGRyb3Agc3VwcG9ydCBmb3IgdGhpcyBpbiA1LjEsIHVzZSBncmlkLWNhbGMoKVxuQGZ1bmN0aW9uIGdyaWRDYWxjKCRjb2xOdW1iZXIsICR0b3RhbENvbHVtbnMpIHtcbiAgQHdhcm4gXCJncmlkQ2FsYygpIGlzIGRlcHJlY2F0ZWQsIHVzZSBncmlkLWNhbGMoKVwiO1xuICBAcmV0dXJuIGdyaWQtY2FsYygkY29sTnVtYmVyLCAkdG90YWxDb2x1bW5zKTtcbn1cblxuLy8gQEZVTkNUSU9OXG4vLyAkY29sTnVtYmVyIC0gRm91bmQgaW4gc2V0dGluZ3MgZmlsZVxuLy8gJHRvdGFsQ29sdW1ucyAtIEZvdW5kIGluIHNldHRpbmdzIGZpbGVcbkBmdW5jdGlvbiBncmlkLWNhbGMoJGNvbE51bWJlciwgJHRvdGFsQ29sdW1ucykge1xuICBAcmV0dXJuIHBlcmNlbnRhZ2UoKCRjb2xOdW1iZXIgLyAkdG90YWxDb2x1bW5zKSk7XG59XG5cbi8vXG4vLyBAbWl4aW5zXG4vL1xuXG4vLyBGb3IgY3JlYXRpbmcgY29udGFpbmVyLCBuZXN0ZWQsIGFuZCBjb2xsYXBzZWQgcm93cy5cbi8vXG4vL1xuLy8gJGJlaGF2aW9yIC0gQW55IHNwZWNpYWwgYmVoYXZpb3IgZm9yIHRoaXMgcm93PyBEZWZhdWx0OiBmYWxzZS4gT3B0aW9uczogbmVzdCwgY29sbGFwc2UsIG5lc3QtY29sbGFwc2UsIGZhbHNlLlxuQG1peGluIGdyaWQtcm93KCRiZWhhdmlvcjogZmFsc2UpIHtcblxuICAvLyB1c2UgQGluY2x1ZGUgZ3JpZC1yb3cobmVzdCk7IHRvIGluY2x1ZGUgYSBuZXN0ZWQgcm93XG4gIEBpZiAkYmVoYXZpb3IgPT0gbmVzdCB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiAtKCRjb2x1bW4tZ3V0dGVyLzIpO1xuICAgIG1hcmdpbi0jeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAtKCRjb2x1bW4tZ3V0dGVyLzIpO1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gIH1cblxuICAvLyB1c2UgQGluY2x1ZGUgZ3JpZC1yb3coY29sbGFwc2UpOyB0byBjb2xsYXBzZWQgYSBjb250YWluZXIgcm93IG1hcmdpbnNcbiAgQGVsc2UgaWYgJGJlaGF2aW9yID09IGNvbGxhcHNlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDA7XG4gICAgbWF4LXdpZHRoOiAkcm93LXdpZHRoO1xuICB9XG5cbiAgLy8gdXNlIEBpbmNsdWRlIGdyaWQtcm93KG5lc3QtY29sbGFwc2UpOyB0byBjb2xsYXBzZSBvdXRlciBtYXJnaW5zIG9uIGEgbmVzdGVkIHJvd1xuICBAZWxzZSBpZiAkYmVoYXZpb3IgPT0gbmVzdC1jb2xsYXBzZSB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWFyZ2luOiAwO1xuICAgIG1heC13aWR0aDogbm9uZTtcbiAgfVxuXG4gIC8vIHVzZSBAaW5jbHVkZSBncmlkLXJvdzsgdG8gdXNlIGEgY29udGFpbmVyIHJvd1xuICBAZWxzZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiBhdXRvO1xuICAgIG1hcmdpbi0jeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiBhdXRvO1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBtYXgtd2lkdGg6ICRyb3ctd2lkdGg7XG4gIH1cblxuICAvLyBDbGVhcmZpeCBmb3IgYWxsIHJvd3NcbiAgQGluY2x1ZGUgY2xlYXJmaXgoKTtcbn1cblxuLy8gQ3JlYXRlcyBhIGNvbHVtbiwgc2hvdWxkIGJlIHVzZWQgaW5zaWRlIG9mIGEgbWVkaWEgcXVlcnkgdG8gY29udHJvbCBsYXlvdXRzXG4vL1xuLy8gJGNvbHVtbnMgLSBUaGUgbnVtYmVyIG9mIGNvbHVtbnMgdGhpcyBzaG91bGQgYmVcbi8vICRsYXN0LWNvbHVtbiAtIElzIHRoaXMgdGhlIGxhc3QgY29sdW1uPyBEZWZhdWx0OiBmYWxzZS5cbi8vICRjZW50ZXIgLSBDZW50ZXIgdGhlc2UgY29sdW1ucz8gRGVmYXVsdDogZmFsc2UuXG4vLyAkb2Zmc2V0IC0gIyBvZiBjb2x1bW5zIHRvIG9mZnNldC4gRGVmYXVsdDogZmFsc2UuXG4vLyAkcHVzaCAtICMgb2YgY29sdW1ucyB0byBwdXNoLiBEZWZhdWx0OiBmYWxzZS5cbi8vICRwdWxsIC0gIyBvZiBjb2x1bW5zIHRvIHB1bGwuIERlZmF1bHQ6IGZhbHNlLlxuLy8gJGNvbGxhcHNlIC0gR2V0IHJpZCBvZiBndXR0ZXIgcGFkZGluZyBvbiBjb2x1bW4/IERlZmF1bHQ6IGZhbHNlLlxuLy8gJGZsb2F0IC0gU2hvdWxkIHRoaXMgZmxvYXQ/IERlZmF1bHQ6IHRydWUuIE9wdGlvbnM6IHRydWUsIGZhbHNlLCBsZWZ0LCByaWdodC5cbkBtaXhpbiBncmlkLWNvbHVtbihcbiAgJGNvbHVtbnM6ZmFsc2UsXG4gICRsYXN0LWNvbHVtbjpmYWxzZSxcbiAgJGNlbnRlcjpmYWxzZSxcbiAgJG9mZnNldDpmYWxzZSxcbiAgJHB1c2g6ZmFsc2UsXG4gICRwdWxsOmZhbHNlLFxuICAkY29sbGFwc2U6ZmFsc2UsXG4gICRmbG9hdDp0cnVlLFxuICAkcG9zaXRpb246ZmFsc2UpIHtcblxuICAvLyBJZiBwb3NpdGlvbmVkIGZvciBkZWZhdWx0IC5jb2x1bW4sIGluY2x1ZGUgcmVsYXRpdmUgcG9zaXRpb25cbiAgLy8gcHVzaCBhbmQgcHVsbCByZXF1aXJlIHBvc2l0aW9uIHNldFxuICBAaWYgJHBvc2l0aW9uIG9yICRwdXNoIG9yICRwdWxsIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cblxuICAvLyBJZiBjb2xsYXBzZWQsIGdldCByaWQgb2YgZ3V0dGVyIHBhZGRpbmdcbiAgQGlmICRjb2xsYXBzZSB7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gIH1cblxuICAvLyBHdXR0ZXIgcGFkZGluZyB3aGVuZXZlciBhIGNvbHVtbiBpc24ndCBzZXQgdG8gY29sbGFwc2VcbiAgLy8gKHVzZSAkY29sbGFwc2U6bnVsbCB0byBkbyBub3RoaW5nKVxuICBAZWxzZSBpZiAkY29sbGFwc2UgPT0gZmFsc2Uge1xuICAgIHBhZGRpbmctbGVmdDogKCRjb2x1bW4tZ3V0dGVyIC8gMik7XG4gICAgcGFkZGluZy1yaWdodDogKCRjb2x1bW4tZ3V0dGVyIC8gMik7XG4gIH1cblxuICAvLyBJZiBhIGNvbHVtbiBudW1iZXIgaXMgZ2l2ZW4sIGNhbGN1bGF0ZSB3aWR0aFxuICBAaWYgJGNvbHVtbnMge1xuICAgIHdpZHRoOiBncmlkLWNhbGMoJGNvbHVtbnMsICR0b3RhbC1jb2x1bW5zKTtcblxuICAgIC8vIElmIGxhc3QgY29sdW1uLCBmbG9hdCBuYXR1cmFsbHkgaW5zdGVhZCBvZiB0byB0aGUgcmlnaHRcbiAgICBAaWYgJGxhc3QtY29sdW1uIHsgZmxvYXQ6ICRvcHBvc2l0ZS1kaXJlY3Rpb247IH1cbiAgfVxuXG4gIC8vIFNvdXJjZSBPcmRlcmluZywgYWRkcyBsZWZ0L3JpZ2h0IGRlcGVuZGluZyBvbiB3aGljaCB5b3UgdXNlLlxuICBAaWYgJHB1c2ggeyAjeyRkZWZhdWx0LWZsb2F0fTogZ3JpZC1jYWxjKCRwdXNoLCAkdG90YWwtY29sdW1ucyk7ICN7JG9wcG9zaXRlLWRpcmVjdGlvbn06IGF1dG87IH1cbiAgQGlmICRwdWxsIHsgI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogZ3JpZC1jYWxjKCRwdWxsLCAkdG90YWwtY29sdW1ucyk7ICN7JGRlZmF1bHQtZmxvYXR9OiBhdXRvOyB9XG5cbiAgQGlmICRmbG9hdCB7XG4gICAgQGlmICRmbG9hdCA9PSBsZWZ0IG9yICRmbG9hdCA9PSB0cnVlIHsgZmxvYXQ6ICRkZWZhdWx0LWZsb2F0OyB9XG4gICAgQGVsc2UgaWYgJGZsb2F0ID09IHJpZ2h0IHsgZmxvYXQ6ICRvcHBvc2l0ZS1kaXJlY3Rpb247IH1cbiAgICBAZWxzZSB7IGZsb2F0OiBub25lOyB9XG4gIH1cblxuICAvLyBJZiBjZW50ZXJlZCwgZ2V0IHJpZCBvZiBmbG9hdCBhbmQgYWRkIGFwcHJvcHJpYXRlIG1hcmdpbnNcbiAgQGlmICRjZW50ZXIge1xuICAgIG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogYXV0bztcbiAgICBtYXJnaW4tI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogYXV0bztcbiAgICBmbG9hdDogbm9uZTtcbiAgfVxuXG4gIC8vIElmIG9mZnNldCwgY2FsY3VsYXRlIGFwcHJvcHJpYXRlIG1hcmdpbnNcbiAgQGlmICRvZmZzZXQgeyBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06IGdyaWQtY2FsYygkb2Zmc2V0LCAkdG90YWwtY29sdW1ucykgIWltcG9ydGFudDsgfVxuXG59XG5cbi8vIENyZWF0ZSBwcmVzZW50YXRpb25hbCBjbGFzc2VzIGZvciBncmlkXG4vL1xuLy8gJHNpemUgLSBOYW1lIG9mIGNsYXNzIHRvIHVzZSwgaS5lLiBcImxhcmdlXCIgd2lsbCBnZW5lcmF0ZSAubGFyZ2UtMSwgLmxhcmdlLTIsIGV0Yy5cbkBtaXhpbiBncmlkLWh0bWwtY2xhc3Nlcygkc2l6ZSkge1xuXG4gIEBmb3IgJGkgZnJvbSAwIHRocm91Z2ggJHRvdGFsLWNvbHVtbnMgLSAxIHtcbiAgICAuI3skc2l6ZX0tcHVzaC0jeyRpfSB7XG4gICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigkcHVzaDokaSwgJGNvbGxhcHNlOm51bGwsICRmbG9hdDpmYWxzZSk7XG4gICAgfVxuICAgIC4jeyRzaXplfS1wdWxsLSN7JGl9IHtcbiAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKCRwdWxsOiRpLCAkY29sbGFwc2U6bnVsbCwgJGZsb2F0OmZhbHNlKTtcbiAgICB9XG4gIH1cblxuICAuY29sdW1uLFxuICAuY29sdW1ucyB7IEBpbmNsdWRlIGdyaWQtY29sdW1uKCRjb2x1bW5zOmZhbHNlLCAkcG9zaXRpb246dHJ1ZSk7IH1cblxuXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJHRvdGFsLWNvbHVtbnMge1xuICAgIC4jeyRzaXplfS0jeyRpfSB7IEBpbmNsdWRlIGdyaWQtY29sdW1uKCRjb2x1bW5zOiRpLCRjb2xsYXBzZTpudWxsLCRmbG9hdDpmYWxzZSk7IH1cbiAgfVxuXG4gIEBmb3IgJGkgZnJvbSAwIHRocm91Z2ggJHRvdGFsLWNvbHVtbnMgLSAxIHtcbiAgICAuI3skc2l6ZX0tb2Zmc2V0LSN7JGl9IHsgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJG9mZnNldDokaSwgJGNvbGxhcHNlOm51bGwsJGZsb2F0OmZhbHNlKTsgfVxuICB9XG5cbiAgLiN7JHNpemV9LXJlc2V0LW9yZGVyIHtcbiAgICBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06IDA7XG4gICAgbWFyZ2luLSN7JG9wcG9zaXRlLWRpcmVjdGlvbn06IDA7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogYXV0bztcbiAgICBmbG9hdDogJGRlZmF1bHQtZmxvYXQ7XG4gIH1cblxuICAuY29sdW1uLiN7JHNpemV9LWNlbnRlcmVkLFxuICAuY29sdW1ucy4jeyRzaXplfS1jZW50ZXJlZCB7IEBpbmNsdWRlIGdyaWQtY29sdW1uKCRjZW50ZXI6dHJ1ZSwgJGNvbGxhcHNlOm51bGwsICRmbG9hdDpmYWxzZSk7IH1cblxuICAuY29sdW1uLiN7JHNpemV9LXVuY2VudGVyZWQsXG4gIC5jb2x1bW5zLiN7JHNpemV9LXVuY2VudGVyZWQge1xuICAgIG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogMDtcbiAgICBtYXJnaW4tI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogMDtcbiAgICBmbG9hdDogJGRlZmF1bHQtZmxvYXQ7XG4gIH1cblxuICAvLyBGaWdodGluZyBbY2xhc3MqPVwiY29sdW1uXCJdICsgW2NsYXNzKj1cImNvbHVtblwiXTpsYXN0LWNoaWxkXG4gIC5jb2x1bW4uI3skc2l6ZX0tY2VudGVyZWQ6bGFzdC1jaGlsZCxcbiAgLmNvbHVtbnMuI3skc2l6ZX0tY2VudGVyZWQ6bGFzdC1jaGlsZHtcbiAgICBmbG9hdDogbm9uZTtcbiAgfVxuXG4gIC8vIEZpZ2h0aW5nIC5jb2x1bW4uPHByZXZpb3VzLXNpemU+LWNlbnRlcmVkOmxhc3QtY2hpbGRcbiAgLmNvbHVtbi4jeyRzaXplfS11bmNlbnRlcmVkOmxhc3QtY2hpbGQsXG4gIC5jb2x1bW5zLiN7JHNpemV9LXVuY2VudGVyZWQ6bGFzdC1jaGlsZCB7XG4gICAgZmxvYXQ6ICRkZWZhdWx0LWZsb2F0O1xuICB9XG5cbiAgLmNvbHVtbi4jeyRzaXplfS11bmNlbnRlcmVkLm9wcG9zaXRlLFxuICAuY29sdW1ucy4jeyRzaXplfS11bmNlbnRlcmVkLm9wcG9zaXRlIHtcbiAgICBmbG9hdDogJG9wcG9zaXRlLWRpcmVjdGlvbjtcbiAgfVxuXG5cdC5yb3cge1xuXHRcdCYuI3skc2l6ZX0tY29sbGFwc2Uge1xuXHRcdFx0PiAuY29sdW1uLFxuXHRcdFx0PiAuY29sdW1ucyB7IEBpbmNsdWRlIGdyaWQtY29sdW1uKCRjb2xsYXBzZTp0cnVlLCAkZmxvYXQ6ZmFsc2UpOyB9XG5cblx0XHRcdC5yb3cge21hcmdpbi1sZWZ0OjA7IG1hcmdpbi1yaWdodDowO31cblx0XHR9XG5cdFx0Ji4jeyRzaXplfS11bmNvbGxhcHNlIHtcblx0XHRcdD4gLmNvbHVtbixcblx0XHRcdD4gLmNvbHVtbnMge1xuXHRcdFx0XHRAaW5jbHVkZSBncmlkLWNvbHVtbjtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuQGluY2x1ZGUgZXhwb3J0cyhcImdyaWRcIikge1xuICBAaWYgJGluY2x1ZGUtaHRtbC1ncmlkLWNsYXNzZXMge1xuICAgIC5yb3cge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1yb3c7XG5cbiAgICAgICYuY29sbGFwc2Uge1xuICAgICAgICAgPiAuY29sdW1uLFxuICAgICAgICAgPiAuY29sdW1ucyB7IEBpbmNsdWRlIGdyaWQtY29sdW1uKCRjb2xsYXBzZTp0cnVlLCAkZmxvYXQ6ZmFsc2UpOyB9XG5cbiAgICAgICAgLnJvdyB7bWFyZ2luLWxlZnQ6MDsgbWFyZ2luLXJpZ2h0OjA7fVxuICAgICAgfVxuXG4gICAgICAucm93IHsgQGluY2x1ZGUgZ3JpZC1yb3coJGJlaGF2aW9yOm5lc3QpO1xuICAgICAgICAmLmNvbGxhcHNlIHsgQGluY2x1ZGUgZ3JpZC1yb3coJGJlaGF2aW9yOm5lc3QtY29sbGFwc2UpOyB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmNvbHVtbixcbiAgICAuY29sdW1ucyB7IEBpbmNsdWRlIGdyaWQtY29sdW1uKCRjb2x1bW5zOiR0b3RhbC1jb2x1bW5zKTsgfVxuXG4gICAgW2NsYXNzKj1cImNvbHVtblwiXSArIFtjbGFzcyo9XCJjb2x1bW5cIl06bGFzdC1jaGlsZCB7IGZsb2F0OiAkbGFzdC1jaGlsZC1mbG9hdDsgfVxuICAgIFtjbGFzcyo9XCJjb2x1bW5cIl0gKyBbY2xhc3MqPVwiY29sdW1uXCJdLmVuZCB7IGZsb2F0OiAkZGVmYXVsdC1mbG9hdDsgfVxuXG4gICAgQG1lZGlhICN7JHNtYWxsLXVwfSB7XG4gICAgICBAaW5jbHVkZSBncmlkLWh0bWwtY2xhc3Nlcygkc2l6ZTpzbWFsbCk7XG4gICAgfVxuXG4gICAgQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1odG1sLWNsYXNzZXMoJHNpemU6bWVkaXVtKTtcbiAgICAgIC8vIE9sZCBwdXNoIGFuZCBwdWxsIGNsYXNzZXNcbiAgICAgIEBmb3IgJGkgZnJvbSAwIHRocm91Z2ggJHRvdGFsLWNvbHVtbnMgLSAxIHtcbiAgICAgICAgLnB1c2gtI3skaX0ge1xuICAgICAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKCRwdXNoOiRpLCAkY29sbGFwc2U6bnVsbCwgJGZsb2F0OmZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgICAucHVsbC0jeyRpfSB7XG4gICAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJHB1bGw6JGksICRjb2xsYXBzZTpudWxsLCAkZmxvYXQ6ZmFsc2UpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIEBtZWRpYSAjeyRsYXJnZS11cH0ge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1odG1sLWNsYXNzZXMoJHNpemU6bGFyZ2UpO1xuICAgICAgQGZvciAkaSBmcm9tIDAgdGhyb3VnaCAkdG90YWwtY29sdW1ucyAtIDEge1xuICAgICAgICAucHVzaC0jeyRpfSB7XG4gICAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJHB1c2g6JGksICRjb2xsYXBzZTpudWxsLCAkZmxvYXQ6ZmFsc2UpO1xuICAgICAgICB9XG4gICAgICAgIC5wdWxsLSN7JGl9IHtcbiAgICAgICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigkcHVsbDokaSwgJGNvbGxhcHNlOm51bGwsICRmbG9hdDpmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGlmICRpbmNsdWRlLXhsLWh0bWwtZ3JpZC1jbGFzc2VzIHtcbiAgICBAbWVkaWEgI3skeGxhcmdlLXVwfSB7XG4gICAgICBAaW5jbHVkZSBncmlkLWh0bWwtY2xhc3Nlcygkc2l6ZTp4bGFyZ2UpO1xuICAgIH1cbiAgICBAbWVkaWEgI3skeHhsYXJnZS11cH0ge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1odG1sLWNsYXNzZXMoJHNpemU6eHhsYXJnZSk7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AaW1wb3J0IFwiZ2xvYmFsXCI7XG5cbi8vXG4vLyBAbmFtZSBfdGh1bWJzLnNjc3Ncbi8vIEBkZXBlbmRlbmNpZXMgX2dsb2JhbHMuc2Nzc1xuLy9cblxuLy9cbi8vIEB2YXJpYWJsZXNcbi8vXG5cbiRpbmNsdWRlLWh0bWwtbWVkaWEtY2xhc3NlczogJGluY2x1ZGUtaHRtbC1jbGFzc2VzICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCBib3JkZXIgc3R5bGVzXG4kdGh1bWItYm9yZGVyLXN0eWxlOiBzb2xpZCAhZGVmYXVsdDtcbiR0aHVtYi1ib3JkZXItd2lkdGg6IDRweCAhZGVmYXVsdDtcbiR0aHVtYi1ib3JkZXItY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcbiR0aHVtYi1ib3gtc2hhZG93OiAwIDAgMCAxcHggcmdiYSgkYmxhY2ssLjIpICFkZWZhdWx0O1xuJHRodW1iLWJveC1zaGFkb3ctaG92ZXI6IDAgMCA2cHggMXB4IHJnYmEoJHByaW1hcnktY29sb3IsMC41KSAhZGVmYXVsdDtcblxuLy8gUmFkaXVzIGFuZCB0cmFuc2l0aW9uIHNwZWVkIGZvciB0aHVtYnNcbiR0aHVtYi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuJHRodW1iLXRyYW5zaXRpb24tc3BlZWQ6IDIwMG1zICFkZWZhdWx0O1xuXG4vL1xuLy8gQG1peGluc1xuLy9cblxuLy8gV2UgdXNlIHRoaXMgdG8gY3JlYXRlIGltYWdlIHRodW1ibmFpbCBzdHlsZXMuXG4vL1xuLy8gJGJvcmRlci13aWR0aCAtIFdpZHRoIG9mIGJvcmRlciBhcm91bmQgdGh1bWJuYWlsLiBEZWZhdWx0OiAkdGh1bWItYm9yZGVyLXdpZHRoLlxuLy8gJGJveC1zaGFkb3cgLSBCb3ggc2hhZG93IHRvIGFwcGx5IHRvIHRodW1ibmFpbC4gRGVmYXVsdDogJHRodW1iLWJveC1zaGFkb3cuXG4vLyAkYm94LXNoYWRvdy1ob3ZlciAtIEJveCBzaGFkb3cgdG8gYXBwbHkgb24gaG92ZXIuIERlZmF1bHQ6ICR0aHVtYi1ib3gtc2hhZG93LWhvdmVyLlxuQG1peGluIHRodW1iKFxuICAkYm9yZGVyLXdpZHRoOiR0aHVtYi1ib3JkZXItd2lkdGgsIFxuICAkYm94LXNoYWRvdzokdGh1bWItYm94LXNoYWRvdywgXG4gICRib3gtc2hhZG93LWhvdmVyOiR0aHVtYi1ib3gtc2hhZG93LWhvdmVyKSB7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJvcmRlcjogJHRodW1iLWJvcmRlci1zdHlsZSAkYm9yZGVyLXdpZHRoICR0aHVtYi1ib3JkZXItY29sb3I7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgYm94LXNoYWRvdzogJGJveC1zaGFkb3c7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYm94LXNoYWRvdzogJGJveC1zaGFkb3ctaG92ZXI7XG4gIH1cbn1cblxuXG5AaW5jbHVkZSBleHBvcnRzKFwidGh1bWJcIikge1xuICBAaWYgJGluY2x1ZGUtaHRtbC1tZWRpYS1jbGFzc2VzIHtcblxuICAgIC8qIEltYWdlIFRodW1ibmFpbHMgKi9cbiAgICAudGgge1xuICAgICAgQGluY2x1ZGUgdGh1bWI7XG4gICAgICBAaW5jbHVkZSBzaW5nbGUtdHJhbnNpdGlvbihhbGwsJHRodW1iLXRyYW5zaXRpb24tc3BlZWQsZWFzZS1vdXQpO1xuXG4gICAgICAmLnJhZGl1cyB7IEBpbmNsdWRlIHJhZGl1cygkdGh1bWItcmFkaXVzKTsgfVxuICAgIH1cbiAgfVxufSIsIi8vIEZvdW5kYXRpb24gYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBpbXBvcnQgXCJnbG9iYWxcIjtcblxuJGluY2x1ZGUtaHRtbC10eXBlLWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcyAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgaGVhZGVyIGZvbnQgc3R5bGVzXG4kaGVhZGVyLWZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseSAhZGVmYXVsdDtcbiRoZWFkZXItZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG4kaGVhZGVyLWZvbnQtc3R5bGU6IG5vcm1hbCAhZGVmYXVsdDtcbiRoZWFkZXItZm9udC1jb2xvcjogJGpldCAhZGVmYXVsdDtcbiRoZWFkZXItbGluZS1oZWlnaHQ6IDEuNCAhZGVmYXVsdDtcbiRoZWFkZXItdG9wLW1hcmdpbjogLjJyZW0gIWRlZmF1bHQ7XG4kaGVhZGVyLWJvdHRvbS1tYXJnaW46IC41cmVtICFkZWZhdWx0O1xuJGhlYWRlci10ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5ICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCBoZWFkZXIgZm9udCBzaXplc1xuJGgxLWZvbnQtc2l6ZTogcmVtLWNhbGMoNDQpICFkZWZhdWx0O1xuJGgyLWZvbnQtc2l6ZTogcmVtLWNhbGMoMzcpICFkZWZhdWx0O1xuJGgzLWZvbnQtc2l6ZTogcmVtLWNhbGMoMjcpICFkZWZhdWx0O1xuJGg0LWZvbnQtc2l6ZTogcmVtLWNhbGMoMjMpICFkZWZhdWx0O1xuJGg1LWZvbnQtc2l6ZTogcmVtLWNhbGMoMTgpICFkZWZhdWx0O1xuJGg2LWZvbnQtc2l6ZTogMXJlbSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgaGVhZGVyIHNpemUgcmVkdWN0aW9uIG9uIHNtYWxsIHNjcmVlbnNcbiRoMS1mb250LXJlZHVjdGlvbjogcmVtLWNhbGMoMTApICFkZWZhdWx0O1xuJGgyLWZvbnQtcmVkdWN0aW9uOiByZW0tY2FsYygxMCkgIWRlZmF1bHQ7XG4kaDMtZm9udC1yZWR1Y3Rpb246IHJlbS1jYWxjKDUpICFkZWZhdWx0O1xuJGg0LWZvbnQtcmVkdWN0aW9uOiByZW0tY2FsYyg1KSAhZGVmYXVsdDtcbiRoNS1mb250LXJlZHVjdGlvbjogMCAhZGVmYXVsdDtcbiRoNi1mb250LXJlZHVjdGlvbjogMCAhZGVmYXVsdDtcblxuLy8gVGhlc2UgY29udHJvbCBob3cgc3ViaGVhZGVycyBhcmUgc3R5bGVkLlxuJHN1YmhlYWRlci1saW5lLWhlaWdodDogMS40ICFkZWZhdWx0O1xuJHN1YmhlYWRlci1mb250LWNvbG9yOiBzY2FsZS1jb2xvcigkaGVhZGVyLWZvbnQtY29sb3IsICRsaWdodG5lc3M6IDM1JSkgIWRlZmF1bHQ7XG4kc3ViaGVhZGVyLWZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuJHN1YmhlYWRlci10b3AtbWFyZ2luOiAuMnJlbSAhZGVmYXVsdDtcbiRzdWJoZWFkZXItYm90dG9tLW1hcmdpbjogLjVyZW0gIWRlZmF1bHQ7XG5cbi8vIEEgZ2VuZXJhbCA8c21hbGw+IHN0eWxpbmdcbiRzbWFsbC1mb250LXNpemU6IDYwJSAhZGVmYXVsdDtcbiRzbWFsbC1mb250LWNvbG9yOiBzY2FsZS1jb2xvcigkaGVhZGVyLWZvbnQtY29sb3IsICRsaWdodG5lc3M6IDM1JSkgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBzdHlsZSBwYXJhZ3JhcGhzXG4kcGFyYWdyYXBoLWZvbnQtZmFtaWx5OiBpbmhlcml0ICFkZWZhdWx0O1xuJHBhcmFncmFwaC1mb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcbiRwYXJhZ3JhcGgtZm9udC1zaXplOiAxcmVtICFkZWZhdWx0O1xuJHBhcmFncmFwaC1saW5lLWhlaWdodDogMS42ICFkZWZhdWx0O1xuJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tOiByZW0tY2FsYygyMCkgIWRlZmF1bHQ7XG4kcGFyYWdyYXBoLWFzaWRlLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpICFkZWZhdWx0O1xuJHBhcmFncmFwaC1hc2lkZS1saW5lLWhlaWdodDogMS4zNSAhZGVmYXVsdDtcbiRwYXJhZ3JhcGgtYXNpZGUtZm9udC1zdHlsZTogaXRhbGljICFkZWZhdWx0O1xuJHBhcmFncmFwaC10ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5ICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gc3R5bGUgPGNvZGU+IHRhZ3NcbiRjb2RlLWNvbG9yOiAkb2lsICFkZWZhdWx0O1xuJGNvZGUtZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1tb25vc3BhY2UgIWRlZmF1bHQ7XG4kY29kZS1mb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcbiRjb2RlLWJhY2tncm91bmQtY29sb3I6IHNjYWxlLWNvbG9yKCRzZWNvbmRhcnktY29sb3IsICRsaWdodG5lc3M6IDcwJSkgIWRlZmF1bHQ7XG4kY29kZS1ib3JkZXItc2l6ZTogMXB4ICFkZWZhdWx0O1xuJGNvZGUtYm9yZGVyLXN0eWxlOiBzb2xpZCAhZGVmYXVsdDtcbiRjb2RlLWJvcmRlci1jb2xvcjogc2NhbGUtY29sb3IoJGNvZGUtYmFja2dyb3VuZC1jb2xvciwgJGxpZ2h0bmVzczogLTEwJSkgIWRlZmF1bHQ7XG4kY29kZS1wYWRkaW5nOiByZW0tY2FsYygyKSByZW0tY2FsYyg1KSByZW0tY2FsYygxKSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHN0eWxlIGFuY2hvcnNcbiRhbmNob3ItdGV4dC1kZWNvcmF0aW9uOiBub25lICFkZWZhdWx0O1xuJGFuY2hvci10ZXh0LWRlY29yYXRpb24taG92ZXI6IG5vbmUgIWRlZmF1bHQ7XG4kYW5jaG9yLWZvbnQtY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuJGFuY2hvci1mb250LWNvbG9yLWhvdmVyOiBzY2FsZS1jb2xvcigkYW5jaG9yLWZvbnQtY29sb3IsICRsaWdodG5lc3M6IC0xNCUpICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gc3R5bGUgdGhlIDxocj4gZWxlbWVudFxuJGhyLWJvcmRlci13aWR0aDogMXB4ICFkZWZhdWx0O1xuJGhyLWJvcmRlci1zdHlsZTogc29saWQgIWRlZmF1bHQ7XG4kaHItYm9yZGVyLWNvbG9yOiAkZ2FpbnNib3JvICFkZWZhdWx0O1xuJGhyLW1hcmdpbjogcmVtLWNhbGMoMjApICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gc3R5bGUgbGlzdHNcbiRsaXN0LWZvbnQtZmFtaWx5OiAkcGFyYWdyYXBoLWZvbnQtZmFtaWx5ICFkZWZhdWx0O1xuJGxpc3QtZm9udC1zaXplOiAkcGFyYWdyYXBoLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRsaXN0LWxpbmUtaGVpZ2h0OiAkcGFyYWdyYXBoLWxpbmUtaGVpZ2h0ICFkZWZhdWx0O1xuJGxpc3QtbWFyZ2luLWJvdHRvbTogJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tICFkZWZhdWx0O1xuJGxpc3Qtc3R5bGUtcG9zaXRpb246IG91dHNpZGUgIWRlZmF1bHQ7XG4kbGlzdC1zaWRlLW1hcmdpbjogMS4xcmVtICFkZWZhdWx0O1xuJGxpc3Qtb3JkZXJlZC1zaWRlLW1hcmdpbjogMS40cmVtICFkZWZhdWx0O1xuJGxpc3Qtc2lkZS1tYXJnaW4tbm8tYnVsbGV0OiAwICFkZWZhdWx0O1xuJGxpc3QtbmVzdGVkLW1hcmdpbjogcmVtLWNhbGMoMjApICFkZWZhdWx0O1xuJGRlZmluaXRpb24tbGlzdC1oZWFkZXItd2VpZ2h0OiAkZm9udC13ZWlnaHQtYm9sZCAhZGVmYXVsdDtcbiRkZWZpbml0aW9uLWxpc3QtaGVhZGVyLW1hcmdpbi1ib3R0b206IC4zcmVtICFkZWZhdWx0O1xuJGRlZmluaXRpb24tbGlzdC1tYXJnaW4tYm90dG9tOiByZW0tY2FsYygxMikgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBzdHlsZSBibG9ja3F1b3Rlc1xuJGJsb2NrcXVvdGUtZm9udC1jb2xvcjogc2NhbGUtY29sb3IoJGhlYWRlci1mb250LWNvbG9yLCAkbGlnaHRuZXNzOiAzNSUpICFkZWZhdWx0O1xuJGJsb2NrcXVvdGUtcGFkZGluZzogcmVtLWNhbGMoOSAyMCAwIDE5KSAhZGVmYXVsdDtcbiRibG9ja3F1b3RlLWJvcmRlcjogMXB4IHNvbGlkICRnYWluc2Jvcm8gIWRlZmF1bHQ7XG4kYmxvY2txdW90ZS1jaXRlLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTMpICFkZWZhdWx0O1xuJGJsb2NrcXVvdGUtY2l0ZS1mb250LWNvbG9yOiBzY2FsZS1jb2xvcigkaGVhZGVyLWZvbnQtY29sb3IsICRsaWdodG5lc3M6IDIzJSkgIWRlZmF1bHQ7XG4kYmxvY2txdW90ZS1jaXRlLWxpbmstY29sb3I6ICRibG9ja3F1b3RlLWNpdGUtZm9udC1jb2xvciAhZGVmYXVsdDtcblxuLy8gQWNyb255bSBzdHlsZXNcbiRhY3JvbnltLXVuZGVybGluZTogMXB4IGRvdHRlZCAkZ2FpbnNib3JvICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCBwYWRkaW5nIGFuZCBtYXJnaW5cbiRtaWNyb2Zvcm1hdC1wYWRkaW5nOiByZW0tY2FsYygxMCAxMikgIWRlZmF1bHQ7XG4kbWljcm9mb3JtYXQtbWFyZ2luOiByZW0tY2FsYygwIDAgMjAgMCkgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIHRoZSBib3JkZXIgc3R5bGVzXG4kbWljcm9mb3JtYXQtYm9yZGVyLXdpZHRoOiAxcHggIWRlZmF1bHQ7XG4kbWljcm9mb3JtYXQtYm9yZGVyLXN0eWxlOiBzb2xpZCAhZGVmYXVsdDtcbiRtaWNyb2Zvcm1hdC1ib3JkZXItY29sb3I6ICRnYWluc2Jvcm8gIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIGZ1bGwgbmFtZSBmb250IHN0eWxlc1xuJG1pY3JvZm9ybWF0LWZ1bGxuYW1lLWZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtYm9sZCAhZGVmYXVsdDtcbiRtaWNyb2Zvcm1hdC1mdWxsbmFtZS1mb250LXNpemU6IHJlbS1jYWxjKDE1KSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoaXMgdG8gY29udHJvbCB0aGUgc3VtbWFyeSBmb250IHN0eWxlc1xuJG1pY3JvZm9ybWF0LXN1bW1hcnktZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ib2xkICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhpcyB0byBjb250cm9sIGFiYnIgcGFkZGluZ1xuJG1pY3JvZm9ybWF0LWFiYnItcGFkZGluZzogcmVtLWNhbGMoMCAxKSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoaXMgdG8gY29udHJvbCBhYmJyIGZvbnQgc3R5bGVzXG4kbWljcm9mb3JtYXQtYWJici1mb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XG4kbWljcm9mb3JtYXQtYWJici1mb250LWRlY29yYXRpb246IG5vbmUgIWRlZmF1bHQ7XG5cbi8vIFRleHQgYWxpZ25tZW50IGNsYXNzIG5hbWVzXG4kYWxpZ24tY2xhc3MtbmFtZXM6XG4gIHNtYWxsLW9ubHksXG4gIHNtYWxsLFxuICBtZWRpdW0tb25seSxcbiAgbWVkaXVtLFxuICBsYXJnZS1vbmx5LFxuICBsYXJnZSxcbiAgeGxhcmdlLW9ubHksXG4gIHhsYXJnZSxcbiAgeHhsYXJnZS1vbmx5LFxuICB4eGxhcmdlO1xuXG4vLyBUZXh0IGFsaWdubWVudCBicmVha3BvaW50c1xuJGFsaWduLWNsYXNzLWJyZWFrcG9pbnRzOlxuICAkc21hbGwtb25seSxcbiAgJHNtYWxsLXVwLFxuICAkbWVkaXVtLW9ubHksXG4gICRtZWRpdW0tdXAsXG4gICRsYXJnZS1vbmx5LFxuICAkbGFyZ2UtdXAsXG4gICR4bGFyZ2Utb25seSxcbiAgJHhsYXJnZS11cCxcbiAgJHh4bGFyZ2Utb25seSxcbiAgJHh4bGFyZ2UtdXA7XG5cbi8vIEdlbmVyYXRlcyB0ZXh0IGFsaWduIGFuZCBqdXN0aWZ5IGNsYXNzZXNcbkBtaXhpbiBhbGlnbi1jbGFzc2Vze1xuICAudGV4dC1sZWZ0ICAgIHsgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50OyB9XG4gIC50ZXh0LXJpZ2h0ICAgeyB0ZXh0LWFsaWduOiByaWdodCAhaW1wb3J0YW50OyB9XG4gIC50ZXh0LWNlbnRlciAgeyB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDsgfVxuICAudGV4dC1qdXN0aWZ5IHsgdGV4dC1hbGlnbjoganVzdGlmeSAhaW1wb3J0YW50OyB9XG5cbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCBsZW5ndGgoJGFsaWduLWNsYXNzLW5hbWVzKSB7XG4gICAgQG1lZGlhICN7KG50aCgkYWxpZ24tY2xhc3MtYnJlYWtwb2ludHMsICRpKSl9IHtcbiAgICAgIC4jeyhudGgoJGFsaWduLWNsYXNzLW5hbWVzLCAkaSkpfS10ZXh0LWxlZnQgeyB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7IH1cbiAgICAgIC4jeyhudGgoJGFsaWduLWNsYXNzLW5hbWVzLCAkaSkpfS10ZXh0LXJpZ2h0ICAgeyB0ZXh0LWFsaWduOiByaWdodCAhaW1wb3J0YW50OyB9XG4gICAgICAuI3sobnRoKCRhbGlnbi1jbGFzcy1uYW1lcywgJGkpKX0tdGV4dC1jZW50ZXIgIHsgdGV4dC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7IH1cbiAgICAgIC4jeyhudGgoJGFsaWduLWNsYXNzLW5hbWVzLCAkaSkpfS10ZXh0LWp1c3RpZnkgeyB0ZXh0LWFsaWduOiBqdXN0aWZ5ICFpbXBvcnRhbnQ7IH1cbiAgICB9XG4gIH1cbn1cblxuLy9cbi8vIFR5cG9ncmFwaHkgUGxhY2Vob2xkZXJzXG4vL1xuXG4vLyBUaGVzZSB3aWxsIHRocm93IGEgZGVwcmVjYXRpb24gd2FybmluZyBpZiB1c2VkIHdpdGhpbiBhIG1lZGlhIHF1ZXJ5LlxuQG1peGluIGxlYWQge1xuICBmb250LXNpemU6ICRwYXJhZ3JhcGgtZm9udC1zaXplICsgcmVtLWNhbGMoMy41KTtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbn1cblxuQG1peGluIHN1YmhlYWRlciB7XG4gIGxpbmUtaGVpZ2h0OiAkc3ViaGVhZGVyLWxpbmUtaGVpZ2h0O1xuICBjb2xvcjogJHN1YmhlYWRlci1mb250LWNvbG9yO1xuICBmb250LXdlaWdodDogJHN1YmhlYWRlci1mb250LXdlaWdodDtcbiAgbWFyZ2luLXRvcDogJHN1YmhlYWRlci10b3AtbWFyZ2luO1xuICBtYXJnaW4tYm90dG9tOiAkc3ViaGVhZGVyLWJvdHRvbS1tYXJnaW47XG59XG5AaW5jbHVkZSBleHBvcnRzKFwidHlwZVwiKSB7XG4gIEBpZiAkaW5jbHVkZS1odG1sLXR5cGUtY2xhc3NlcyB7XG4gICAgLy8gUmVzcG9uc2l2ZSBUZXh0IGFsaWdubWVudFxuICAgIEBpbmNsdWRlIGFsaWduLWNsYXNzZXM7XG5cbiAgICAvKiBUeXBvZ3JhcGh5IHJlc2V0cyAqL1xuICAgIGRpdixcbiAgICBkbCxcbiAgICBkdCxcbiAgICBkZCxcbiAgICB1bCxcbiAgICBvbCxcbiAgICBsaSxcbiAgICBoMSxcbiAgICBoMixcbiAgICBoMyxcbiAgICBoNCxcbiAgICBoNSxcbiAgICBoNixcbiAgICBwcmUsXG4gICAgZm9ybSxcbiAgICBwLFxuICAgIGJsb2NrcXVvdGUsXG4gICAgdGgsXG4gICAgdGQge1xuICAgICAgbWFyZ2luOjA7XG4gICAgICBwYWRkaW5nOjA7XG4gICAgfVxuXG4gICAgLyogRGVmYXVsdCBMaW5rIFN0eWxlcyAqL1xuICAgIGEge1xuICAgICAgY29sb3I6ICRhbmNob3ItZm9udC1jb2xvcjtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogJGFuY2hvci10ZXh0LWRlY29yYXRpb247XG4gICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcblxuICAgICAgJjpob3ZlcixcbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBjb2xvcjogJGFuY2hvci1mb250LWNvbG9yLWhvdmVyO1xuICAgICAgICBAaWYgJGFuY2hvci10ZXh0LWRlY29yYXRpb24taG92ZXIgIT0gJGFuY2hvci10ZXh0LWRlY29yYXRpb24ge1xuICAgICAgICBcdHRleHQtZGVjb3JhdGlvbjogJGFuY2hvci10ZXh0LWRlY29yYXRpb24taG92ZXI7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaW1nIHsgYm9yZGVyOm5vbmU7IH1cbiAgICB9XG5cbiAgICAvKiBEZWZhdWx0IHBhcmFncmFwaCBzdHlsZXMgKi9cbiAgICBwIHtcbiAgICAgIGZvbnQtZmFtaWx5OiAkcGFyYWdyYXBoLWZvbnQtZmFtaWx5O1xuICAgICAgZm9udC13ZWlnaHQ6ICRwYXJhZ3JhcGgtZm9udC13ZWlnaHQ7XG4gICAgICBmb250LXNpemU6ICRwYXJhZ3JhcGgtZm9udC1zaXplO1xuICAgICAgbGluZS1oZWlnaHQ6ICRwYXJhZ3JhcGgtbGluZS1oZWlnaHQ7XG4gICAgICBtYXJnaW4tYm90dG9tOiAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b207XG4gICAgICB0ZXh0LXJlbmRlcmluZzogJHBhcmFncmFwaC10ZXh0LXJlbmRlcmluZztcblxuICAgICAgJi5sZWFkIHsgQGluY2x1ZGUgbGVhZDsgfVxuXG4gICAgICAmIGFzaWRlIHtcbiAgICAgICAgZm9udC1zaXplOiAkcGFyYWdyYXBoLWFzaWRlLWZvbnQtc2l6ZTtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRwYXJhZ3JhcGgtYXNpZGUtbGluZS1oZWlnaHQ7XG4gICAgICAgIGZvbnQtc3R5bGU6ICRwYXJhZ3JhcGgtYXNpZGUtZm9udC1zdHlsZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBEZWZhdWx0IGhlYWRlciBzdHlsZXMgKi9cbiAgICBoMSwgaDIsIGgzLCBoNCwgaDUsIGg2IHtcbiAgICAgIGZvbnQtZmFtaWx5OiAkaGVhZGVyLWZvbnQtZmFtaWx5O1xuICAgICAgZm9udC13ZWlnaHQ6ICRoZWFkZXItZm9udC13ZWlnaHQ7XG4gICAgICBmb250LXN0eWxlOiAkaGVhZGVyLWZvbnQtc3R5bGU7XG4gICAgICBjb2xvcjogJGhlYWRlci1mb250LWNvbG9yO1xuICAgICAgdGV4dC1yZW5kZXJpbmc6ICRoZWFkZXItdGV4dC1yZW5kZXJpbmc7XG4gICAgICBtYXJnaW4tdG9wOiAkaGVhZGVyLXRvcC1tYXJnaW47XG4gICAgICBtYXJnaW4tYm90dG9tOiAkaGVhZGVyLWJvdHRvbS1tYXJnaW47XG4gICAgICBsaW5lLWhlaWdodDogJGhlYWRlci1saW5lLWhlaWdodDtcblxuICAgICAgc21hbGwge1xuICAgICAgICBmb250LXNpemU6ICRzbWFsbC1mb250LXNpemU7XG4gICAgICAgIGNvbG9yOiAkc21hbGwtZm9udC1jb2xvcjtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaDEgeyBmb250LXNpemU6ICRoMS1mb250LXNpemUgLSAkaDEtZm9udC1yZWR1Y3Rpb247IH1cbiAgICBoMiB7IGZvbnQtc2l6ZTogJGgyLWZvbnQtc2l6ZSAtICRoMi1mb250LXJlZHVjdGlvbjsgfVxuICAgIGgzIHsgZm9udC1zaXplOiAkaDMtZm9udC1zaXplIC0gJGgzLWZvbnQtcmVkdWN0aW9uOyB9XG4gICAgaDQgeyBmb250LXNpemU6ICRoNC1mb250LXNpemUgLSAkaDQtZm9udC1yZWR1Y3Rpb247IH1cbiAgICBoNSB7IGZvbnQtc2l6ZTogJGg1LWZvbnQtc2l6ZSAtICRoNS1mb250LXJlZHVjdGlvbjsgfVxuICAgIGg2IHsgZm9udC1zaXplOiAkaDYtZm9udC1zaXplIC0gJGg2LWZvbnQtcmVkdWN0aW9uOyB9XG5cbiAgICAuc3ViaGVhZGVyIHsgQGluY2x1ZGUgc3ViaGVhZGVyOyB9XG5cbiAgICBociB7XG4gICAgICBib3JkZXI6ICRoci1ib3JkZXItc3R5bGUgJGhyLWJvcmRlci1jb2xvcjtcbiAgICAgIGJvcmRlci13aWR0aDogJGhyLWJvcmRlci13aWR0aCAwIDA7XG4gICAgICBjbGVhcjogYm90aDtcbiAgICAgIG1hcmdpbjogJGhyLW1hcmdpbiAwICgkaHItbWFyZ2luIC0gcmVtLWNhbGMoJGhyLWJvcmRlci13aWR0aCkpO1xuICAgICAgaGVpZ2h0OiAwO1xuICAgIH1cblxuICAgIC8qIEhlbHBmdWwgVHlwb2dyYXBoeSBEZWZhdWx0cyAqL1xuICAgIGVtLFxuICAgIGkge1xuICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgfVxuXG4gICAgc3Ryb25nLFxuICAgIGIge1xuICAgICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ib2xkO1xuICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgfVxuXG4gICAgc21hbGwge1xuICAgICAgZm9udC1zaXplOiAkc21hbGwtZm9udC1zaXplO1xuICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgfVxuXG4gICAgY29kZSB7XG4gICAgICBmb250LWZhbWlseTogJGNvZGUtZm9udC1mYW1pbHk7XG4gICAgICBmb250LXdlaWdodDogJGNvZGUtZm9udC13ZWlnaHQ7XG4gICAgICBjb2xvcjogJGNvZGUtY29sb3I7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29kZS1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXdpZHRoOiAkY29kZS1ib3JkZXItc2l6ZTtcbiAgICAgIGJvcmRlci1zdHlsZTogJGNvZGUtYm9yZGVyLXN0eWxlO1xuICAgICAgYm9yZGVyLWNvbG9yOiAkY29kZS1ib3JkZXItY29sb3I7XG4gICAgICBwYWRkaW5nOiAkY29kZS1wYWRkaW5nO1xuICAgIH1cblxuICAgIC8qIExpc3RzICovXG4gICAgdWwsXG4gICAgb2wsXG4gICAgZGwge1xuICAgICAgZm9udC1zaXplOiAkbGlzdC1mb250LXNpemU7XG4gICAgICBsaW5lLWhlaWdodDogJGxpc3QtbGluZS1oZWlnaHQ7XG4gICAgICBtYXJnaW4tYm90dG9tOiAkbGlzdC1tYXJnaW4tYm90dG9tO1xuICAgICAgbGlzdC1zdHlsZS1wb3NpdGlvbjogJGxpc3Qtc3R5bGUtcG9zaXRpb247XG4gICAgICBmb250LWZhbWlseTogJGxpc3QtZm9udC1mYW1pbHk7XG4gICAgfVxuXG4gICAgdWwge1xuICAgICAgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiAkbGlzdC1zaWRlLW1hcmdpbjtcbiAgICAgICYubm8tYnVsbGV0IHtcbiAgICAgICAgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiAkbGlzdC1zaWRlLW1hcmdpbi1uby1idWxsZXQ7XG4gICAgICAgIGxpIHtcbiAgICAgICAgICB1bCxcbiAgICAgICAgICBvbCB7XG4gICAgICAgICAgICBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06ICRsaXN0LW5lc3RlZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBVbm9yZGVyZWQgTGlzdHMgKi9cbiAgICB1bCB7XG4gICAgICBsaSB7XG4gICAgICAgIHVsLFxuICAgICAgICBvbCB7XG4gICAgICAgICAgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiAkbGlzdC1uZXN0ZWQtbWFyZ2luO1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICYuc3F1YXJlLFxuICAgICAgJi5jaXJjbGUsXG4gICAgICAmLmRpc2Mge1xuICAgICAgICBsaSB1bCB7IGxpc3Qtc3R5bGU6IGluaGVyaXQ7IH1cbiAgICAgIH1cblxuICAgICAgJi5zcXVhcmUgeyBsaXN0LXN0eWxlLXR5cGU6IHNxdWFyZTsgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiAkbGlzdC1zaWRlLW1hcmdpbjt9XG4gICAgICAmLmNpcmNsZSB7IGxpc3Qtc3R5bGUtdHlwZTogY2lyY2xlOyBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06ICRsaXN0LXNpZGUtbWFyZ2luO31cbiAgICAgICYuZGlzYyB7IGxpc3Qtc3R5bGUtdHlwZTogZGlzYzsgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiAkbGlzdC1zaWRlLW1hcmdpbjt9XG4gICAgICAmLm5vLWJ1bGxldCB7IGxpc3Qtc3R5bGU6IG5vbmU7IH1cbiAgICB9XG5cbiAgICAvKiBPcmRlcmVkIExpc3RzICovXG4gICAgb2wge1xuICAgICAgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiAkbGlzdC1vcmRlcmVkLXNpZGUtbWFyZ2luO1xuICAgICAgbGkge1xuICAgICAgICB1bCxcbiAgICAgICAgb2wge1xuICAgICAgICAgIG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogJGxpc3QtbmVzdGVkLW1hcmdpbjtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyogRGVmaW5pdGlvbiBMaXN0cyAqL1xuICAgIGRsIHtcbiAgICAgIGR0IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJGRlZmluaXRpb24tbGlzdC1oZWFkZXItbWFyZ2luLWJvdHRvbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRkZWZpbml0aW9uLWxpc3QtaGVhZGVyLXdlaWdodDtcbiAgICAgIH1cbiAgICAgIGRkIHsgbWFyZ2luLWJvdHRvbTogJGRlZmluaXRpb24tbGlzdC1tYXJnaW4tYm90dG9tOyB9XG4gICAgfVxuXG4gICAgLyogQWJicmV2aWF0aW9ucyAqL1xuICAgIGFiYnIsXG4gICAgYWNyb255bSB7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgZm9udC1zaXplOiA5MCU7XG4gICAgICBjb2xvcjogJGJvZHktZm9udC1jb2xvcjtcbiAgICAgIGN1cnNvcjogJGN1cnNvci1oZWxwLXZhbHVlO1xuICAgIH1cbiAgICBhYmJyIHtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgJlt0aXRsZV0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAkYWNyb255bS11bmRlcmxpbmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyogQmxvY2txdW90ZXMgKi9cbiAgICBibG9ja3F1b3RlIHtcbiAgICAgIG1hcmdpbjogMCAwICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTtcbiAgICAgIHBhZGRpbmc6ICRibG9ja3F1b3RlLXBhZGRpbmc7XG4gICAgICBib3JkZXItI3skZGVmYXVsdC1mbG9hdH06ICRibG9ja3F1b3RlLWJvcmRlcjtcblxuICAgICAgY2l0ZSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmb250LXNpemU6ICRibG9ja3F1b3RlLWNpdGUtZm9udC1zaXplO1xuICAgICAgICBjb2xvcjogJGJsb2NrcXVvdGUtY2l0ZS1mb250LWNvbG9yO1xuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgY29udGVudDogXCJcXDIwMTQgXFwwMDIwXCI7XG4gICAgICAgIH1cblxuICAgICAgICBhLFxuICAgICAgICBhOnZpc2l0ZWQge1xuICAgICAgICAgIGNvbG9yOiAkYmxvY2txdW90ZS1jaXRlLWxpbmstY29sb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgYmxvY2txdW90ZSxcbiAgICBibG9ja3F1b3RlIHAge1xuICAgICAgbGluZS1oZWlnaHQ6ICRwYXJhZ3JhcGgtbGluZS1oZWlnaHQ7XG4gICAgICBjb2xvcjogJGJsb2NrcXVvdGUtZm9udC1jb2xvcjtcbiAgICB9XG5cbiAgICAvKiBNaWNyb2Zvcm1hdHMgKi9cbiAgICAudmNhcmQge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbWFyZ2luOiAkbWljcm9mb3JtYXQtbWFyZ2luO1xuICAgICAgYm9yZGVyOiAkbWljcm9mb3JtYXQtYm9yZGVyLXdpZHRoICRtaWNyb2Zvcm1hdC1ib3JkZXItc3R5bGUgJG1pY3JvZm9ybWF0LWJvcmRlci1jb2xvcjtcbiAgICAgIHBhZGRpbmc6ICRtaWNyb2Zvcm1hdC1wYWRkaW5nO1xuXG4gICAgICBsaSB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgICAuZm4ge1xuICAgICAgICBmb250LXdlaWdodDogJG1pY3JvZm9ybWF0LWZ1bGxuYW1lLWZvbnQtd2VpZ2h0O1xuICAgICAgICBmb250LXNpemU6ICRtaWNyb2Zvcm1hdC1mdWxsbmFtZS1mb250LXNpemU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnZldmVudCB7XG4gICAgICAuc3VtbWFyeSB7IGZvbnQtd2VpZ2h0OiAkbWljcm9mb3JtYXQtc3VtbWFyeS1mb250LXdlaWdodDsgfVxuXG4gICAgICBhYmJyIHtcbiAgICAgICAgY3Vyc29yOiAkY3Vyc29yLWRlZmF1bHQtdmFsdWU7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogJG1pY3JvZm9ybWF0LWFiYnItZm9udC1kZWNvcmF0aW9uO1xuICAgICAgICBmb250LXdlaWdodDogJG1pY3JvZm9ybWF0LWFiYnItZm9udC13ZWlnaHQ7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgcGFkZGluZzogJG1pY3JvZm9ybWF0LWFiYnItcGFkZGluZztcbiAgICAgIH1cbiAgICB9XG5cblxuICAgIEBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAgIGgxLGgyLGgzLGg0LGg1LGg2IHsgbGluZS1oZWlnaHQ6ICRoZWFkZXItbGluZS1oZWlnaHQ7IH1cbiAgICAgIGgxIHsgZm9udC1zaXplOiAkaDEtZm9udC1zaXplOyB9XG4gICAgICBoMiB7IGZvbnQtc2l6ZTogJGgyLWZvbnQtc2l6ZTsgfVxuICAgICAgaDMgeyBmb250LXNpemU6ICRoMy1mb250LXNpemU7IH1cbiAgICAgIGg0IHsgZm9udC1zaXplOiAkaDQtZm9udC1zaXplOyB9XG4gICAgICBoNSB7IGZvbnQtc2l6ZTogJGg1LWZvbnQtc2l6ZTsgfVxuICAgICAgaDYgeyBmb250LXNpemU6ICRoNi1mb250LXNpemU7IH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBpbXBvcnQgXCJnbG9iYWxcIjtcblxuLy9cbi8vIEZvdW5kYXRpb24gVmlzaWJpbGl0eSBDbGFzc2VzXG4vL1xuJGluY2x1ZGUtaHRtbC12aXNpYmlsaXR5LWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcyAhZGVmYXVsdDtcbiRpbmNsdWRlLWFjY2Vzc2liaWxpdHktY2xhc3NlczogdHJ1ZSAhZGVmYXVsdDtcbiRpbmNsdWRlLXRhYmxlLXZpc2liaWxpdHktY2xhc3NlczogdHJ1ZSAhZGVmYXVsdDtcbiRpbmNsdWRlLWxlZ2FjeS12aXNpYmlsaXR5LWNsYXNzZXM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vXG4vLyBNZWRpYSBDbGFzcyBOYW1lc1xuLy9cbi8vIFZpc2liaWxpdHkgQnJlYWtwb2ludHNcbiR2aXNpYmlsaXR5LWJyZWFrcG9pbnQtc2l6ZXM6XG4gIHNtYWxsLFxuICBtZWRpdW0sXG4gIGxhcmdlLFxuICB4bGFyZ2UsXG4gIHh4bGFyZ2U7XG5cbiR2aXNpYmlsaXR5LWJyZWFrcG9pbnQtcXVlcmllczpcbiAgdW5xdW90ZSgkc21hbGwtdXApLFxuICB1bnF1b3RlKCRtZWRpdW0tdXApLFxuICB1bnF1b3RlKCRsYXJnZS11cCksXG4gIHVucXVvdGUoJHhsYXJnZS11cCksXG4gIHVucXVvdGUoJHh4bGFyZ2UtdXApO1xuXG5AbWl4aW4gdmlzaWJpbGl0eS1sb29wIHtcbiAgQGVhY2ggJGN1cnJlbnQtdmlzaWJpbGl0eS1icmVha3BvaW50IGluICR2aXNpYmlsaXR5LWJyZWFrcG9pbnQtc2l6ZXMge1xuICAgICR2aXNpYmlsaXR5LWluaGVyaXQtbGlzdDogKCk7XG4gICAgJHZpc2liaWxpdHktbm9uZS1saXN0OiAoKTtcblxuICAgICR2aXNpYmlsaXR5LXZpc2libGUtbGlzdDogKCk7XG4gICAgJHZpc2liaWxpdHktaGlkZGVuLWxpc3Q6ICgpO1xuXG4gICAgJHZpc2liaWxpdHktdGFibGUtbGlzdDogKCk7XG4gICAgJHZpc2liaWxpdHktdGFibGUtaGVhZGVyLWdyb3VwLWxpc3Q6ICgpO1xuICAgICR2aXNpYmlsaXR5LXRhYmxlLXJvdy1ncm91cC1saXN0OiAoKTtcbiAgICAkdmlzaWJpbGl0eS10YWJsZS1yb3ctbGlzdDogKCk7XG4gICAgJHZpc2liaWxpdHktdGFibGUtY2VsbC1saXN0OiAoKTtcblxuICAgIEBlYWNoICR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludCBpbiAkdmlzaWJpbGl0eS1icmVha3BvaW50LXNpemVzIHtcbiAgICAgIEBpZiBpbmRleCgkdmlzaWJpbGl0eS1icmVha3BvaW50LXNpemVzLCAkdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnQpIDwgaW5kZXgoJHZpc2liaWxpdHktYnJlYWtwb2ludC1zaXplcywgJGN1cnJlbnQtdmlzaWJpbGl0eS1icmVha3BvaW50KSB7XG4gICAgICAgIC8vIFNtYWxsZXIgdGhhbiBjdXJyZW50IGJyZWFrcG9pbnRcblxuICAgICAgICAkdmlzaWJpbGl0eS1pbmhlcml0LWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS1pbmhlcml0LWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgJy5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAkdmlzaWJpbGl0eS1ub25lLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS1ub25lLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgJy5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAkdmlzaWJpbGl0eS12aXNpYmxlLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS12aXNpYmxlLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgJy5oaWRkZW4tZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCAudmlzaWJsZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwJ1xuICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICR2aXNpYmlsaXR5LWhpZGRlbi1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktaGlkZGVuLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgJy52aXNpYmxlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgLmhpZGRlbi1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwJ1xuICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICd0YWJsZS5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgdGFibGUuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwJ1xuICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLWhlYWRlci1ncm91cC1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtaGVhZGVyLWdyb3VwLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgJ3RoZWFkLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCB0aGVhZC5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgJHZpc2liaWxpdHktdGFibGUtcm93LWdyb3VwLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1yb3ctZ3JvdXAtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAndGJvZHkuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIHRib2R5LnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1yb3ctbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLXJvdy1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICd0ci5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgdHIuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwJ1xuICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLWNlbGwtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLWNlbGwtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAndGguaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIHRkLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCB0aC5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAsIHRkLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuXG4gICAgICAgIC8vIEZvdW5kYXRpb24gNCBjb21wYXRpYmlsaXR5OlxuICAgICAgICAvLyBJbmNsdWRlIC5zaG93L2hpZGUtZm9yLVtzaXplXSBhbmQgLnNob3cvaGlkZS1mb3ItW3NpemVdLWRvd24gY2xhc3Nlc1xuICAgICAgICAvLyBmb3Igc21hbGwsIG1lZGl1bSwgYW5kIGxhcmdlIGJyZWFrcG9pbnRzIG9ubHlcbiAgICAgICAgQGlmICRpbmNsdWRlLWxlZ2FjeS12aXNpYmlsaXR5LWNsYXNzZXMgYW5kIGluZGV4KChzbWFsbCwgbWVkaXVtLCBsYXJnZSksICR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludCkgIT0gZmFsc2Uge1xuICAgICAgICAgICR2aXNpYmlsaXR5LWluaGVyaXQtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LWluaGVyaXQtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAgICcuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCAuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAgICR2aXNpYmlsaXR5LW5vbmUtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LW5vbmUtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAgICcuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCAuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAgICR2aXNpYmlsaXR5LXZpc2libGUtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXZpc2libGUtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAgICcuaGlkZGVuLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIC5oaWRkZW4tZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgICAkdmlzaWJpbGl0eS1oaWRkZW4tbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LWhpZGRlbi1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICAgJy52aXNpYmxlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIC52aXNpYmxlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93bidcbiAgICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICAgJHZpc2liaWxpdHktdGFibGUtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAndGFibGUuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCB0YWJsZS5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93bidcbiAgICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICAgJHZpc2liaWxpdHktdGFibGUtaGVhZGVyLWdyb3VwLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1oZWFkZXItZ3JvdXAtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAgICd0aGVhZC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIHRoZWFkLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1yb3ctZ3JvdXAtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLXJvdy1ncm91cC1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICAgJ3Rib2R5LmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgdGJvZHkuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLXJvdy1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtcm93LWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAndHIuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCB0ci5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93bidcbiAgICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICAgJHZpc2liaWxpdHktdGFibGUtY2VsbC1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtY2VsbC1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICAgJ3RoLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgdGQuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCB0aC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93biwgdGQuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICB9XG5cbiAgICAgIH0gQGVsc2UgaWYgaW5kZXgoJHZpc2liaWxpdHktYnJlYWtwb2ludC1zaXplcywgJHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50KSA+IGluZGV4KCR2aXNpYmlsaXR5LWJyZWFrcG9pbnQtc2l6ZXMsICRjdXJyZW50LXZpc2liaWxpdHktYnJlYWtwb2ludCkge1xuICAgICAgICAvLyBMYXJnZXIgdGhhbiBjdXJyZW50IGJyZWFrcG9pbnRcblxuICAgICAgICAkdmlzaWJpbGl0eS1pbmhlcml0LWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS1pbmhlcml0LWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgJy5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAkdmlzaWJpbGl0eS1ub25lLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS1ub25lLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgJy5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAkdmlzaWJpbGl0eS12aXNpYmxlLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS12aXNpYmxlLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgJy5oaWRkZW4tZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCAuaGlkZGVuLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgJHZpc2liaWxpdHktaGlkZGVuLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS1oaWRkZW4tbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAnLnZpc2libGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCAudmlzaWJsZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwJ1xuICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICd0YWJsZS5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgdGFibGUuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwJ1xuICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLWhlYWRlci1ncm91cC1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtaGVhZGVyLWdyb3VwLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgJ3RoZWFkLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCB0aGVhZC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgJHZpc2liaWxpdHktdGFibGUtcm93LWdyb3VwLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1yb3ctZ3JvdXAtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAndGJvZHkuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIHRib2R5LmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1yb3ctbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLXJvdy1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICd0ci5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgdHIuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwJ1xuICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLWNlbGwtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLWNlbGwtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAndGguaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIHRkLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCB0aC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAsIHRkLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuXG4gICAgICAgIC8vIEZvdW5kYXRpb24gNCBjb21wYXRpYmlsaXR5OlxuICAgICAgICAvLyBJbmNsdWRlIC5zaG93L2hpZGUtZm9yLVtzaXplXSBhbmQgLnNob3cvaGlkZS1mb3ItW3NpemVdLWRvd24gY2xhc3Nlc1xuICAgICAgICAvLyBmb3Igc21hbGwsIG1lZGl1bSwgYW5kIGxhcmdlIGJyZWFrcG9pbnRzIG9ubHlcbiAgICAgICAgQGlmICRpbmNsdWRlLWxlZ2FjeS12aXNpYmlsaXR5LWNsYXNzZXMgYW5kIGluZGV4KChzbWFsbCwgbWVkaXVtLCBsYXJnZSksICR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludCkgIT0gZmFsc2Uge1xuICAgICAgICAgICR2aXNpYmlsaXR5LWluaGVyaXQtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LWluaGVyaXQtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAgICcuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCAuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAgICR2aXNpYmlsaXR5LW5vbmUtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LW5vbmUtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAgICcuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCAuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAgICR2aXNpYmlsaXR5LXZpc2libGUtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXZpc2libGUtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAgICcuaGlkZGVuLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIC52aXNpYmxlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93bidcbiAgICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICAgJHZpc2liaWxpdHktaGlkZGVuLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS1oaWRkZW4tbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAgICcudmlzaWJsZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCAuaGlkZGVuLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93bidcbiAgICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICAgJHZpc2liaWxpdHktdGFibGUtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAndGFibGUuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCB0YWJsZS5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93bidcbiAgICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICAgJHZpc2liaWxpdHktdGFibGUtaGVhZGVyLWdyb3VwLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1oZWFkZXItZ3JvdXAtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAgICd0aGVhZC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIHRoZWFkLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1yb3ctZ3JvdXAtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLXJvdy1ncm91cC1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICAgJ3Rib2R5LmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgdGJvZHkuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLXJvdy1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtcm93LWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAndHIuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCB0ci5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93bidcbiAgICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICAgJHZpc2liaWxpdHktdGFibGUtY2VsbC1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtY2VsbC1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICAgJ3RoLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgdGQuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCB0aC5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93biwgdGQuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICB9XG5cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICAvLyBDdXJyZW50IGJyZWFrcG9pbnRcblxuICAgICAgICAkdmlzaWJpbGl0eS1pbmhlcml0LWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS1pbmhlcml0LWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgJy5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAkdmlzaWJpbGl0eS1ub25lLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS1ub25lLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgJy5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAkdmlzaWJpbGl0eS12aXNpYmxlLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS12aXNpYmxlLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgJy52aXNpYmxlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgLnZpc2libGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAkdmlzaWJpbGl0eS1oaWRkZW4tbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LWhpZGRlbi1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICcuaGlkZGVuLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgLmhpZGRlbi1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwJ1xuICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICd0YWJsZS5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgdGFibGUuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwJ1xuICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLWhlYWRlci1ncm91cC1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtaGVhZGVyLWdyb3VwLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgJ3RoZWFkLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCB0aGVhZC5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgJHZpc2liaWxpdHktdGFibGUtcm93LWdyb3VwLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1yb3ctZ3JvdXAtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAndGJvZHkuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIHRib2R5LnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1yb3ctbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLXJvdy1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICd0ci5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgdHIuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwJ1xuICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLWNlbGwtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLWNlbGwtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAndGguc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIHRkLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCB0aC5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAsIHRkLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuXG4gICAgICAgIC8vIEZvdW5kYXRpb24gNCBjb21wYXRpYmlsaXR5OlxuICAgICAgICAvLyBJbmNsdWRlIC5zaG93L2hpZGUtZm9yLVtzaXplXSBhbmQgLnNob3cvaGlkZS1mb3ItW3NpemVdLWRvd24gY2xhc3Nlc1xuICAgICAgICAvLyBmb3Igc21hbGwsIG1lZGl1bSwgYW5kIGxhcmdlIGJyZWFrcG9pbnRzIG9ubHlcbiAgICAgICAgQGlmICRpbmNsdWRlLWxlZ2FjeS12aXNpYmlsaXR5LWNsYXNzZXMgYW5kIGluZGV4KChzbWFsbCwgbWVkaXVtLCBsYXJnZSksICR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludCkgIT0gZmFsc2Uge1xuICAgICAgICAgICR2aXNpYmlsaXR5LWluaGVyaXQtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LWluaGVyaXQtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAgICcuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCAuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAgICR2aXNpYmlsaXR5LW5vbmUtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LW5vbmUtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAgICcuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCAuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAgICR2aXNpYmlsaXR5LXZpc2libGUtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXZpc2libGUtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAgICcudmlzaWJsZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCAudmlzaWJsZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAgICR2aXNpYmlsaXR5LWhpZGRlbi1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktaGlkZGVuLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAnLmhpZGRlbi1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCAuaGlkZGVuLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93bidcbiAgICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICAgJHZpc2liaWxpdHktdGFibGUtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAndGFibGUuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCB0YWJsZS5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93bidcbiAgICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICAgJHZpc2liaWxpdHktdGFibGUtaGVhZGVyLWdyb3VwLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1oZWFkZXItZ3JvdXAtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAgICd0aGVhZC5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIHRoZWFkLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1yb3ctZ3JvdXAtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLXJvdy1ncm91cC1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICAgJ3Rib2R5LnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgdGJvZHkuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLXJvdy1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtcm93LWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAndHIuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCB0ci5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93bidcbiAgICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICAgJHZpc2liaWxpdHktdGFibGUtY2VsbC1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtY2VsbC1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICAgJ3RoLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgdGQuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCB0aC5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93biwgdGQuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyogI3skY3VycmVudC12aXNpYmlsaXR5LWJyZWFrcG9pbnR9IGRpc3BsYXlzICovXG4gICAgQG1lZGlhICN7bnRoKCR2aXNpYmlsaXR5LWJyZWFrcG9pbnQtcXVlcmllcywgaW5kZXgoJHZpc2liaWxpdHktYnJlYWtwb2ludC1zaXplcywgJGN1cnJlbnQtdmlzaWJpbGl0eS1icmVha3BvaW50KSl9IHtcbiAgICAgICN7JHZpc2liaWxpdHktaW5oZXJpdC1saXN0fSB7XG4gICAgICAgIGRpc3BsYXk6IGluaGVyaXQgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICAgICN7JHZpc2liaWxpdHktbm9uZS1saXN0fSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICAgIEBpZiAkaW5jbHVkZS1hY2Nlc3NpYmlsaXR5LWNsYXNzZXMgIT0gZmFsc2Uge1xuICAgICAgICAjeyR2aXNpYmlsaXR5LXZpc2libGUtbGlzdH0ge1xuICAgICAgICAgIEBpbmNsdWRlIGVsZW1lbnQtaW52aXNpYmxlLW9mZjtcbiAgICAgICAgfVxuICAgICAgICAjeyR2aXNpYmlsaXR5LWhpZGRlbi1saXN0fSB7XG4gICAgICAgICAgQGluY2x1ZGUgZWxlbWVudC1pbnZpc2libGU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBpZiAkaW5jbHVkZS10YWJsZS12aXNpYmlsaXR5LWNsYXNzZXMgIT0gZmFsc2Uge1xuICAgICAgICAjeyR2aXNpYmlsaXR5LXRhYmxlLWxpc3R9IHtcbiAgICAgICAgICBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICAgICN7JHZpc2liaWxpdHktdGFibGUtaGVhZGVyLWdyb3VwLWxpc3R9IHtcbiAgICAgICAgICBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXAgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgICAjeyR2aXNpYmlsaXR5LXRhYmxlLXJvdy1ncm91cC1saXN0fSB7XG4gICAgICAgICAgZGlzcGxheTogdGFibGUtcm93LWdyb3VwICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgICAgI3skdmlzaWJpbGl0eS10YWJsZS1yb3ctbGlzdH0ge1xuICAgICAgICAgIGRpc3BsYXk6IHRhYmxlLXJvdztcbiAgICAgICAgfVxuICAgICAgICAjeyR2aXNpYmlsaXR5LXRhYmxlLWNlbGwtbGlzdH0ge1xuICAgICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5cbkBpZiAkaW5jbHVkZS1odG1sLXZpc2liaWxpdHktY2xhc3NlcyAhPSBmYWxzZSB7XG5cbiAgQGluY2x1ZGUgdmlzaWJpbGl0eS1sb29wO1xuXG4gIC8qIE9yaWVudGF0aW9uIHRhcmdldGluZyAqL1xuICAuc2hvdy1mb3ItbGFuZHNjYXBlLFxuICAuaGlkZS1mb3ItcG9ydHJhaXQgeyBkaXNwbGF5OiBpbmhlcml0ICFpbXBvcnRhbnQ7IH1cbiAgLmhpZGUtZm9yLWxhbmRzY2FwZSxcbiAgLnNob3ctZm9yLXBvcnRyYWl0IHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbiAgLyogU3BlY2lmaWMgdmlzaWJpbGl0eSBmb3IgdGFibGVzICovXG4gIHRhYmxlIHtcbiAgICAmLmhpZGUtZm9yLWxhbmRzY2FwZSxcbiAgICAmLnNob3ctZm9yLXBvcnRyYWl0IHsgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDsgfVxuICB9XG4gIHRoZWFkIHtcbiAgICAmLmhpZGUtZm9yLWxhbmRzY2FwZSxcbiAgICAmLnNob3ctZm9yLXBvcnRyYWl0IHsgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgfVxuICB0Ym9keSB7XG4gICAgJi5oaWRlLWZvci1sYW5kc2NhcGUsXG4gICAgJi5zaG93LWZvci1wb3J0cmFpdCB7IGRpc3BsYXk6IHRhYmxlLXJvdy1ncm91cCAhaW1wb3J0YW50OyB9XG4gIH1cbiAgdHIge1xuICAgICYuaGlkZS1mb3ItbGFuZHNjYXBlLFxuICAgICYuc2hvdy1mb3ItcG9ydHJhaXQgeyBkaXNwbGF5OiB0YWJsZS1yb3cgIWltcG9ydGFudDsgfVxuICB9XG4gIHRkLFxuICB0aCB7XG4gICAgJi5oaWRlLWZvci1sYW5kc2NhcGUsXG4gICAgJi5zaG93LWZvci1wb3J0cmFpdCB7IGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuICB9XG5cbiAgQG1lZGlhICN7JGxhbmRzY2FwZX0ge1xuICAgIC5zaG93LWZvci1sYW5kc2NhcGUsXG4gICAgLmhpZGUtZm9yLXBvcnRyYWl0IHsgZGlzcGxheTogaW5oZXJpdCAhaW1wb3J0YW50OyB9XG4gICAgLmhpZGUtZm9yLWxhbmRzY2FwZSxcbiAgICAuc2hvdy1mb3ItcG9ydHJhaXQgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuICAgIC8qIFNwZWNpZmljIHZpc2liaWxpdHkgZm9yIHRhYmxlcyAqL1xuICAgIHRhYmxlIHtcbiAgICAgICYuc2hvdy1mb3ItbGFuZHNjYXBlLFxuICAgICAgJi5oaWRlLWZvci1wb3J0cmFpdCB7IGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7IH1cbiAgICB9XG4gICAgdGhlYWQge1xuICAgICAgJi5zaG93LWZvci1sYW5kc2NhcGUsXG4gICAgICAmLmhpZGUtZm9yLXBvcnRyYWl0IHsgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgICB9XG4gICAgdGJvZHkge1xuICAgICAgJi5zaG93LWZvci1sYW5kc2NhcGUsXG4gICAgICAmLmhpZGUtZm9yLXBvcnRyYWl0IHsgZGlzcGxheTogdGFibGUtcm93LWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgICB9XG4gICAgdHIge1xuICAgICAgJi5zaG93LWZvci1sYW5kc2NhcGUsXG4gICAgICAmLmhpZGUtZm9yLXBvcnRyYWl0IHsgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQ7IH1cbiAgICB9XG4gICAgdGQsXG4gICAgdGgge1xuICAgICAgJi5zaG93LWZvci1sYW5kc2NhcGUsXG4gICAgICAmLmhpZGUtZm9yLXBvcnRyYWl0IHsgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG4gICAgfVxuICB9XG5cbiAgQG1lZGlhICN7JHBvcnRyYWl0fSB7XG4gICAgLnNob3ctZm9yLXBvcnRyYWl0LFxuICAgIC5oaWRlLWZvci1sYW5kc2NhcGUgeyBkaXNwbGF5OiBpbmhlcml0ICFpbXBvcnRhbnQ7IH1cbiAgICAuaGlkZS1mb3ItcG9ydHJhaXQsXG4gICAgLnNob3ctZm9yLWxhbmRzY2FwZSB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4gICAgLyogU3BlY2lmaWMgdmlzaWJpbGl0eSBmb3IgdGFibGVzICovXG4gICAgdGFibGUge1xuICAgICAgJi5zaG93LWZvci1wb3J0cmFpdCxcbiAgICAgICYuaGlkZS1mb3ItbGFuZHNjYXBlIHsgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDsgfVxuICAgIH1cbiAgICB0aGVhZCB7XG4gICAgICAmLnNob3ctZm9yLXBvcnRyYWl0LFxuICAgICAgJi5oaWRlLWZvci1sYW5kc2NhcGUgeyBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXAgIWltcG9ydGFudDsgfVxuICAgIH1cbiAgICB0Ym9keSB7XG4gICAgICAmLnNob3ctZm9yLXBvcnRyYWl0LFxuICAgICAgJi5oaWRlLWZvci1sYW5kc2NhcGUgeyBkaXNwbGF5OiB0YWJsZS1yb3ctZ3JvdXAgIWltcG9ydGFudDsgfVxuICAgIH1cbiAgICB0ciB7XG4gICAgICAmLnNob3ctZm9yLXBvcnRyYWl0LFxuICAgICAgJi5oaWRlLWZvci1sYW5kc2NhcGUgeyBkaXNwbGF5OiB0YWJsZS1yb3cgIWltcG9ydGFudDsgfVxuICAgIH1cbiAgICB0ZCxcbiAgICB0aCB7XG4gICAgICAmLnNob3ctZm9yLXBvcnRyYWl0LFxuICAgICAgJi5oaWRlLWZvci1sYW5kc2NhcGUgeyBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cbiAgICB9XG4gIH1cblxuICAvKiBUb3VjaC1lbmFibGVkIGRldmljZSB0YXJnZXRpbmcgKi9cbiAgLnNob3ctZm9yLXRvdWNoIHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG4gIC5oaWRlLWZvci10b3VjaCB7IGRpc3BsYXk6IGluaGVyaXQgIWltcG9ydGFudDsgfVxuICAudG91Y2ggLnNob3ctZm9yLXRvdWNoIHsgZGlzcGxheTogaW5oZXJpdCAhaW1wb3J0YW50OyB9XG4gIC50b3VjaCAuaGlkZS1mb3ItdG91Y2ggeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuICAvKiBTcGVjaWZpYyB2aXNpYmlsaXR5IGZvciB0YWJsZXMgKi9cbiAgdGFibGUuaGlkZS1mb3ItdG91Y2ggeyBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50OyB9XG4gIC50b3VjaCB0YWJsZS5zaG93LWZvci10b3VjaCB7IGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7IH1cbiAgdGhlYWQuaGlkZS1mb3ItdG91Y2ggeyBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXAgIWltcG9ydGFudDsgfVxuICAudG91Y2ggdGhlYWQuc2hvdy1mb3ItdG91Y2ggeyBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXAgIWltcG9ydGFudDsgfVxuICB0Ym9keS5oaWRlLWZvci10b3VjaCB7IGRpc3BsYXk6IHRhYmxlLXJvdy1ncm91cCAhaW1wb3J0YW50OyB9XG4gIC50b3VjaCB0Ym9keS5zaG93LWZvci10b3VjaCB7IGRpc3BsYXk6IHRhYmxlLXJvdy1ncm91cCAhaW1wb3J0YW50OyB9XG4gIHRyLmhpZGUtZm9yLXRvdWNoIHsgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQ7IH1cbiAgLnRvdWNoIHRyLnNob3ctZm9yLXRvdWNoIHsgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQ7IH1cbiAgdGQuaGlkZS1mb3ItdG91Y2ggeyBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cbiAgLnRvdWNoIHRkLnNob3ctZm9yLXRvdWNoIHsgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG4gIHRoLmhpZGUtZm9yLXRvdWNoIHsgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG4gIC50b3VjaCB0aC5zaG93LWZvci10b3VjaCB7IGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuXG4gIC8vIE9ubHkgaW5jbHVkZSB0aGVzZSBzdHlsZXMgaWYgeW91IHdhbnQgdGhlbS5cbiAgICBAaWYgJGluY2x1ZGUtcHJpbnQtc3R5bGVzIHtcbiAgICAgIC8qXG4gICAgICAgKiBQcmludCBzdHlsZXMuXG4gICAgICAgKlxuICAgICAgICogSW5saW5lZCB0byBhdm9pZCByZXF1aXJlZCBIVFRQIGNvbm5lY3Rpb246IHd3dy5waHBpZWQuY29tL2RlbGF5LWxvYWRpbmcteW91ci1wcmludC1jc3MvXG4gICAgICAgKiBDcmVkaXQgdG8gUGF1bCBJcmlzaCBhbmQgSFRNTDUgQm9pbGVycGxhdGUgKGh0bWw1Ym9pbGVycGxhdGUuY29tKVxuICAgICAgKi9cbiAgICAgIC5wcmludC1vbmx5IHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG4gICAgICBAbWVkaWEgcHJpbnQge1xuICAgICAgICAqIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgICAgICAgIGNvbG9yOiAkYmxhY2sgIWltcG9ydGFudDsgLyogQmxhY2sgcHJpbnRzIGZhc3RlcjogaDVicC5jb20vcyAqL1xuICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgICB0ZXh0LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICAgIC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgICAgIC5oaWRlLWZvci1wcmludCB7IGRpc3BsYXk6IG5vbmU7IH1cblxuICAgICAgICB0YWJsZS5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7IH1cbiAgICAgICAgdGhlYWQuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXAgIWltcG9ydGFudDsgfVxuICAgICAgICB0Ym9keS5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLXJvdy1ncm91cCAhaW1wb3J0YW50OyB9XG4gICAgICAgIHRyLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQ7IH1cbiAgICAgICAgdGQuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cbiAgICAgICAgdGguc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cblxuICAgICAgICBhLFxuICAgICAgICBhOnZpc2l0ZWQgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTt9XG4gICAgICAgIGFbaHJlZl06YWZ0ZXIgeyBjb250ZW50OiBcIiAoXCIgYXR0cihocmVmKSBcIilcIjsgfVxuXG4gICAgICAgIGFiYnJbdGl0bGVdOmFmdGVyIHsgY29udGVudDogXCIgKFwiIGF0dHIodGl0bGUpIFwiKVwiOyB9XG5cbiAgICAgICAgLy8gRG9uJ3Qgc2hvdyBsaW5rcyBmb3IgaW1hZ2VzLCBvciBqYXZhc2NyaXB0L2ludGVybmFsIGxpbmtzXG4gICAgICAgIC5pciBhOmFmdGVyLFxuICAgICAgICBhW2hyZWZePVwiamF2YXNjcmlwdDpcIl06YWZ0ZXIsXG4gICAgICAgIGFbaHJlZl49XCIjXCJdOmFmdGVyIHsgY29udGVudDogXCJcIjsgfVxuXG4gICAgICAgIHByZSxcbiAgICAgICAgYmxvY2txdW90ZSB7XG4gICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGFsdW1pbnVtO1xuICAgICAgICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoZWFkIHsgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwOyAvKiBoNWJwLmNvbS90ICovIH1cblxuICAgICAgICB0cixcbiAgICAgICAgaW1nIHsgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkOyB9XG5cbiAgICAgICAgaW1nIHsgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH1cblxuICAgICAgICBAcGFnZSB7IG1hcmdpbjogMC41Y207IH1cblxuICAgICAgICBwLFxuICAgICAgICBoMixcbiAgICAgICAgaDMge1xuICAgICAgICAgIG9ycGhhbnM6IDM7XG4gICAgICAgICAgd2lkb3dzOiAzO1xuICAgICAgICB9XG5cbiAgICAgICAgaDIsXG4gICAgICAgIGgzIHsgcGFnZS1icmVhay1hZnRlcjogYXZvaWQ7IH1cblxuICAgICAgICAuaGlkZS1vbi1wcmludCB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuICAgICAgICAucHJpbnQtb25seSB7IGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH1cbiAgICAgICAgLmhpZGUtZm9yLXByaW50IHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG4gICAgICAgIC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IGluaGVyaXQgIWltcG9ydGFudDsgfVxuICAgICAgfVxuICAgIH1cblxuICAvKiBQcmludCB2aXNpYmlsaXR5ICovXG4gICAgQG1lZGlhIHByaW50IHtcbiAgICAgIC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgICAuaGlkZS1mb3ItcHJpbnQgeyBkaXNwbGF5OiBub25lOyB9XG5cbiAgICAgIHRhYmxlLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDsgfVxuICAgICAgdGhlYWQuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXAgIWltcG9ydGFudDsgfVxuICAgICAgdGJvZHkuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1yb3ctZ3JvdXAgIWltcG9ydGFudDsgfVxuICAgICAgdHIuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1yb3cgIWltcG9ydGFudDsgfVxuICAgICAgdGQuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cbiAgICAgIHRoLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBpbXBvcnQgXCJnbG9iYWxcIjtcbkBpbXBvcnQgXCJidXR0b25zXCI7XG5cbi8vXG4vLyBCdXR0b24gR3JvdXAgVmFyaWFibGVzXG4vL1xuJGluY2x1ZGUtaHRtbC1idXR0b24tY2xhc3NlczogJGluY2x1ZGUtaHRtbC1jbGFzc2VzICFkZWZhdWx0O1xuXG4vLyBTZXRzIHRoZSBtYXJnaW4gZm9yIHRoZSByaWdodCBzaWRlIGJ5IGRlZmF1bHQsIGFuZCB0aGUgbGVmdCBtYXJnaW4gaWYgcmlnaHQtdG8tbGVmdCBkaXJlY3Rpb24gaXMgdXNlZFxuJGJ1dHRvbi1iYXItbWFyZ2luLW9wcG9zaXRlOiByZW0tY2FsYygxMCkgIWRlZmF1bHQ7XG4kYnV0dG9uLWdyb3VwLWJvcmRlci13aWR0aDogMXB4ICFkZWZhdWx0O1xuXG4vL1xuLy8gQnV0dG9uIEdyb3VwIE1peGluc1xuLy9cblxuLy8gV2UgdXNlIHRoaXMgdG8gYWRkIHN0eWxlcyBmb3IgYSBidXR0b24gZ3JvdXAgY29udGFpbmVyXG5AbWl4aW4gYnV0dG9uLWdyb3VwLWNvbnRhaW5lcigkc3R5bGVzOnRydWUsICRmbG9hdDpmYWxzZSkge1xuICBAaWYgJHN0eWxlcyB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBtYXJnaW46IDA7XG4gICAgI3skZGVmYXVsdC1mbG9hdH06IDA7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXgoKTtcbiAgfVxuICBAaWYgJGZsb2F0IHtcbiAgICBmbG9hdDogI3skZGVmYXVsdC1mbG9hdH07XG4gICAgbWFyZ2luLSN7JG9wcG9zaXRlLWRpcmVjdGlvbn06ICRidXR0b24tYmFyLW1hcmdpbi1vcHBvc2l0ZTtcbiAgICAmIGRpdiB7IG92ZXJmbG93OiBoaWRkZW47IH1cbiAgfVxufVxuXG4vLyBXZSB1c2UgdGhpcyB0byBjb250cm9sIHN0eWxlcyBmb3IgYnV0dG9uIGdyb3Vwc1xuQG1peGluIGJ1dHRvbi1ncm91cC1zdHlsZSgkcmFkaXVzOmZhbHNlLCAkZXZlbjpmYWxzZSwgJGZsb2F0OmZhbHNlLCAkb3JpZW50YXRpb246aG9yaXpvbnRhbCkge1xuXG4gID4gYnV0dG9uLCAuYnV0dG9uIHtcbiAgICBib3JkZXItI3skZGVmYXVsdC1mbG9hdH06ICRidXR0b24tZ3JvdXAtYm9yZGVyLXdpZHRoIHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xuICB9XG5cbiAgJjpmaXJzdC1jaGlsZCB7XG4gICAgYnV0dG9uLCAuYnV0dG9uIHtcbiAgICAgIGJvcmRlci0jeyRkZWZhdWx0LWZsb2F0fTogMDtcbiAgICB9XG4gIH1cblxuICAvLyBXZSB1c2UgdGhpcyB0byBjb250cm9sIHRoZSBmbG93LCBvciByZW1vdmUgdGhvc2Ugc3R5bGVzIGNvbXBsZXRlbHkuXG4gIEBpZiAkZmxvYXQge1xuICAgIG1hcmdpbjogMDtcbiAgICBmbG9hdDogJGZsb2F0O1xuICAgIGRpc3BsYXk6IGxpc3QtaXRlbTtcbiAgICAvLyBNYWtlIHN1cmUgdGhlIGZpcnN0IGNoaWxkIGRvZXNuJ3QgZ2V0IHRoZSBuZWdhdGl2ZSBtYXJnaW4uXG4gICAgJjpmaXJzdC1jaGlsZCB7IG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogMDsgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBtYXJnaW46IDAgLTJweDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIH1cblxuICBAaWYgJG9yaWVudGF0aW9uID09IHZlcnRpY2FsIHtcbiAgICBkaXNwbGF5OmJsb2NrO1xuICAgIG1hcmdpbjowO1xuICAgID4gYnV0dG9uLCAuYnV0dG9uIHtcbiAgICAgIGJvcmRlci10b3A6ICRidXR0b24tZ3JvdXAtYm9yZGVyLXdpZHRoIHNvbGlkO1xuICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG4gICAgICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgICAgIG1hcmdpbjowO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICAgID4gYnV0dG9uIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICBidXR0b24sIC5idXR0b24ge1xuICAgICAgICBib3JkZXItdG9wOiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIGxlZnQgYW5kIHJpZ2h0IHJhZGl1cyBvbiBmaXJzdC9sYXN0IGJ1dHRvbnMgaW4gdGhlIGdyb3VwLlxuICBAaWYgJHJhZGl1cyA9PSB0cnVlIHtcbiAgICAmLFxuICAgICYgPiBhLFxuICAgICYgPiBidXR0b24sXG4gICAgJiA+IC5idXR0b24geyBAaW5jbHVkZSByYWRpdXMoMCk7IH1cbiAgICAmOmZpcnN0LWNoaWxkLFxuICAgICY6Zmlyc3QtY2hpbGQgPiBhLFxuICAgICY6Zmlyc3QtY2hpbGQgPiBidXR0b24sXG4gICAgJjpmaXJzdC1jaGlsZCA+IC5idXR0b24ge1xuICAgICAgQGlmICRvcmllbnRhdGlvbiA9PSB2ZXJ0aWNhbCB7XG4gICAgICAgIEBpbmNsdWRlIHNpZGUtcmFkaXVzKHRvcCwgJGJ1dHRvbi1yYWRpdXMpO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBAaW5jbHVkZSBzaWRlLXJhZGl1cygkZGVmYXVsdC1mbG9hdCwgJGJ1dHRvbi1yYWRpdXMpO1xuICAgICAgfVxuICAgIH1cbiAgICAmOmxhc3QtY2hpbGQsXG4gICAgJjpsYXN0LWNoaWxkID4gYSxcbiAgICAmOmxhc3QtY2hpbGQgPiBidXR0b24sXG4gICAgJjpsYXN0LWNoaWxkID4gLmJ1dHRvbiB7XG4gICAgICBAaWYgJG9yaWVudGF0aW9uID09IHZlcnRpY2FsIHtcbiAgICAgICAgQGluY2x1ZGUgc2lkZS1yYWRpdXMoYm90dG9tLCAkYnV0dG9uLXJhZGl1cyk7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIEBpbmNsdWRlIHNpZGUtcmFkaXVzKCRvcHBvc2l0ZS1kaXJlY3Rpb24sICRidXR0b24tcmFkaXVzKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJHJhZGl1cyB7XG4gICAgJixcbiAgICAmID4gYSxcbiAgICAmID4gYnV0dG9uLFxuICAgICYgPiAuYnV0dG9uIHsgQGluY2x1ZGUgcmFkaXVzKDApOyB9XG4gICAgJjpmaXJzdC1jaGlsZCxcbiAgICAmOmZpcnN0LWNoaWxkID4gYSxcbiAgICAmOmZpcnN0LWNoaWxkID4gYnV0dG9uLFxuICAgICY6Zmlyc3QtY2hpbGQgPiAuYnV0dG9uIHtcbiAgICAgIEBpZiAkb3JpZW50YXRpb24gPT0gdmVydGljYWwge1xuICAgICAgICBAaW5jbHVkZSBzaWRlLXJhZGl1cyh0b3AsICRyYWRpdXMpO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBAaW5jbHVkZSBzaWRlLXJhZGl1cygkZGVmYXVsdC1mbG9hdCwgJHJhZGl1cyk7XG4gICAgICB9XG4gICAgfVxuICAgICY6bGFzdC1jaGlsZCxcbiAgICAmOmxhc3QtY2hpbGQgPiBhLFxuICAgICY6bGFzdC1jaGlsZCA+IGJ1dHRvbixcbiAgICAmOmxhc3QtY2hpbGQgPiAuYnV0dG9uIHtcbiAgICAgIEBpZiAkb3JpZW50YXRpb24gPT0gdmVydGljYWwge1xuICAgICAgICBAaW5jbHVkZSBzaWRlLXJhZGl1cyhib3R0b20sICRyYWRpdXMpO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBAaW5jbHVkZSBzaWRlLXJhZGl1cygkb3Bwb3NpdGUtZGlyZWN0aW9uLCAkcmFkaXVzKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBXZSB1c2UgdGhpcyB0byBtYWtlIHRoZSBidXR0b25zIGV2ZW4gd2lkdGggYWNyb3NzIHRoZWlyIGNvbnRhaW5lclxuICBAaWYgJGV2ZW4ge1xuICAgIHdpZHRoOiBwZXJjZW50YWdlKCgxMDAvJGV2ZW4pIC8gMTAwKTtcbiAgICBidXR0b24sIC5idXR0b24geyB3aWR0aDogMTAwJTsgfVxuICB9XG59XG5cbkBpbmNsdWRlIGV4cG9ydHMoXCJidXR0b24tZ3JvdXBcIikge1xuICBAaWYgJGluY2x1ZGUtaHRtbC1idXR0b24tY2xhc3NlcyB7XG4gICAgLmJ1dHRvbi1ncm91cCB7IEBpbmNsdWRlIGJ1dHRvbi1ncm91cC1jb250YWluZXI7XG5cbiAgICAgIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggOCB7XG4gICAgICAgICYuZXZlbi0jeyRpfSBsaSB7IEBpbmNsdWRlIGJ1dHRvbi1ncm91cC1zdHlsZSgkZXZlbjokaSwgJGZsb2F0Om51bGwpOyB9XG4gICAgICB9XG4gICAgICBcbiAgICAgICYgPiBsaSB7IEBpbmNsdWRlIGJ1dHRvbi1ncm91cC1zdHlsZSgpOyB9XG5cbiAgICAgICYuc3RhY2sge1xuICAgICAgICAmID4gbGkgeyBAaW5jbHVkZSBidXR0b24tZ3JvdXAtc3R5bGUoJG9yaWVudGF0aW9uOnZlcnRpY2FsKTsgZmxvYXQ6IG5vbmU7IH1cbiAgICAgIH1cblxuICAgICAgJi5zdGFjay1mb3Itc21hbGwge1xuICAgICAgICAmID4gbGkge1xuICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ncm91cC1zdHlsZSgkb3JpZW50YXRpb246aG9yaXpvbnRhbCk7XG4gICAgICAgICAgQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ncm91cC1zdHlsZSgkb3JpZW50YXRpb246dmVydGljYWwpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLnJhZGl1cyA+ICogeyBAaW5jbHVkZSBidXR0b24tZ3JvdXAtc3R5bGUoJHJhZGl1czokYnV0dG9uLXJhZGl1cywgJGZsb2F0Om51bGwpOyB9XG4gICAgICAmLnJhZGl1cy5zdGFjayA+ICogeyBAaW5jbHVkZSBidXR0b24tZ3JvdXAtc3R5bGUoJHJhZGl1czokYnV0dG9uLXJhZGl1cywgJGZsb2F0Om51bGwsICRvcmllbnRhdGlvbjp2ZXJ0aWNhbCk7IH1cbiAgICAgICYucmFkaXVzLnN0YWNrLWZvci1zbWFsbCA+ICoge1xuICAgICAgICBAbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWdyb3VwLXN0eWxlKCRyYWRpdXM6JGJ1dHRvbi1yYWRpdXMsICRvcmllbnRhdGlvbjpob3Jpem9udGFsKTtcbiAgICAgICAgfVxuICAgICAgICBAbWVkaWEgI3skc21hbGwtb25seX0ge1xuICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ncm91cC1zdHlsZSgkcmFkaXVzOiRidXR0b24tcmFkaXVzLCAkb3JpZW50YXRpb246dmVydGljYWwpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYucm91bmQgPiAqIHsgQGluY2x1ZGUgYnV0dG9uLWdyb3VwLXN0eWxlKCRyYWRpdXM6JGJ1dHRvbi1yb3VuZCwgJGZsb2F0Om51bGwpOyB9XG4gICAgICAmLnJvdW5kLnN0YWNrID4gKiB7IEBpbmNsdWRlIGJ1dHRvbi1ncm91cC1zdHlsZSgkcmFkaXVzOiRidXR0b24tbWVkLCAkZmxvYXQ6bnVsbCwgJG9yaWVudGF0aW9uOnZlcnRpY2FsKTsgfVxuICAgICAgJi5yb3VuZC5zdGFjay1mb3Itc21hbGwgPiAqIHtcbiAgICAgICAgQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ncm91cC1zdHlsZSgkcmFkaXVzOiRidXR0b24tcm91bmQsICRvcmllbnRhdGlvbjpob3Jpem9udGFsKTtcbiAgICAgICAgfVxuICAgICAgICBAbWVkaWEgI3skc21hbGwtb25seX0ge1xuICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ncm91cC1zdHlsZSgkcmFkaXVzOiRidXR0b24tbWVkLCAkb3JpZW50YXRpb246dmVydGljYWwpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmJ1dHRvbi1iYXIge1xuICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgICAuYnV0dG9uLWdyb3VwIHsgQGluY2x1ZGUgYnV0dG9uLWdyb3VwLWNvbnRhaW5lcigkc3R5bGVzOmZhbHNlLCAkZmxvYXQ6dHJ1ZSk7IH1cbiAgICB9XG4gIH1cbn1cbiIsIkBtaXhpbiBncmFkaWVudC1ib3JkZXIoJGNvbG9yOiByZ2IoMTI5LDEyOSwxMjkpLCAkcG9zaXRpb246IGFmdGVyLCAkb2Zmc2V0OiAzNSUsICRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmKSB7XG4gICAgXG4gICAgJHN0YXJ0OiAwJSArICRvZmZzZXQ7XG4gICAgJGVuZDogMTAwJSAtICRvZmZzZXQ7XG4gICAgXG4gICAgJGZvcmVncm91bmQtY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRjb2xvciwgJGJhY2tncm91bmQtY29sb3IsIDMpO1xuICAgIFxuICAgICY6I3skcG9zaXRpb259IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBoZWlnaHQ6IDFweDtcbiAgICAgICAgXG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IGNlbnRlciwgcmlnaHQgY2VudGVyLCBmcm9tKHJnYmEoJGZvcmVncm91bmQtY29sb3IsIDApKSwgY29sb3Itc3RvcCgkc3RhcnQvMTAwJSwgcmdiYSgkZm9yZWdyb3VuZC1jb2xvciwgLjIpKSwgY29sb3Itc3RvcCgkZW5kLzEwMCUsIHJnYmEoJGZvcmVncm91bmQtY29sb3IsIC4yKSksIHRvKHJnYmEoJGZvcmVncm91bmQtY29sb3IsIDApKSk7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KCBsZWZ0LCByZ2JhKCRmb3JlZ3JvdW5kLWNvbG9yLCAwKSAwJSwgcmdiYSgkZm9yZWdyb3VuZC1jb2xvciwgLjIpICRzdGFydCwgcmdiYSgkZm9yZWdyb3VuZC1jb2xvciwgLjIpICRlbmQsIHJnYmEoJGZvcmVncm91bmQtY29sb3IsIDApIDEwMCUgKTtcbiAgICAgICAgQGluY2x1ZGUgYmFja2dyb3VuZC1pbWFnZShsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoJGZvcmVncm91bmQtY29sb3IsIDApIDAlLCByZ2JhKCRmb3JlZ3JvdW5kLWNvbG9yLCAuMikgJHN0YXJ0LCByZ2JhKCRmb3JlZ3JvdW5kLWNvbG9yLCAuMikgJGVuZCwgcmdiYSgkZm9yZWdyb3VuZC1jb2xvciwgMCkgMTAwJSkpO1xuICAgICAgICBcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufSIsIkBpbXBvcnQgXCJuYXYvaG9yaXpvbnRhbFwiO1xuXG4kcGFnaW5hdGlvbi1pdGVtLWhlaWdodDogICAgICAgIDJyZW0gIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1pdGVtLXNpZGUtcGFkZGluZzogIDFyZW0gIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1pdGVtLXNwYWNpbmc6ICAgICAgIDAgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1pdGVtLWJhY2tncm91bmQ6ICAgICNlZmVmZWYgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1pdGVtLWJvcmRlci1yYWRpdXM6IDAgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1pdGVtLWJvcmRlci1zaXplOiAgIDFweCAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWl0ZW0tYm9yZGVyLWNvbG9yOiAgI2NjYyAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWl0ZW0tY29sb3I6ICAgICAgICAgIzMzMyAhZGVmYXVsdDtcblxuJHBhZ2luYXRpb24tY3VycmVudC1pdGVtLWJhY2tncm91bmQ6ICAgICMwMDAgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1jdXJyZW50LWl0ZW0tYm9yZGVyLWNvbG9yOiAgIzAwMCAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWN1cnJlbnQtaXRlbS1jb2xvcjogICAgICAgICAjZWVlICFkZWZhdWx0O1xuXG4kcGFnaW5hdGlvbi1ob3Zlci1pdGVtLWJhY2tncm91bmQ6ICAgICAgI2NjYyAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWhvdmVyLWl0ZW0tY29sb3I6ICAgICAgICAgICAjMDAwICFkZWZhdWx0O1xuJHBhZ2luYXRpb24taG92ZXItaXRlbS1ib3JkZXItY29sb3I6ICAgICNhYWEgIWRlZmF1bHQ7XG5cbiRwYWdpbmF0aW9uLWluY2x1ZGUtbWVkaWFxdWVyaWVzOiAgICAgICB0cnVlICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tZnVsbC1icmVha3BvaW50OiAgICAgICAgICAgIFwib25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDcwMHB4KVwiICFkZWZhdWx0O1xuXG4kcGFnaW5hdGlvbi1pcy1sb2FkZWQ6IGZhbHNlICFkZWZhdWx0O1xuXG5AaWYgJHBhZ2luYXRpb24taXMtbG9hZGVkID09IGZhbHNlIHtcbiAgICAucGFnaW5hdGlvbi13cmFwcGVyIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgLnBhZ2luYXRpb24ge1xuICAgICAgICBAZXh0ZW5kICVuYXYtLWhvcml6b250YWw7XG4gICAgfVxuXG4gICAgLnBhZ2luYXRpb25fX2l0ZW0ge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6ICRwYWdpbmF0aW9uLWl0ZW0tc3BhY2luZztcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kO1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuICAgICAgICBcbiAgICAgICAgLnBhZ2luYXRpb24gJiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICRwYWdpbmF0aW9uLWl0ZW0tYm9yZGVyLXNpemUgPiAwIHtcbiAgICAgICAgICAgIGJvcmRlcjogJHBhZ2luYXRpb24taXRlbS1ib3JkZXItc2l6ZSBzb2xpZCAkcGFnaW5hdGlvbi1pdGVtLWJvcmRlci1jb2xvcjtcblxuICAgICAgICAgICAgQGlmICRwYWdpbmF0aW9uLWl0ZW0tc3BhY2luZyA9PSAwIHtcbiAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgJHBhZ2luYXRpb24taXRlbS1ib3JkZXItcmFkaXVzID4gMCBhbmQgJHBhZ2luYXRpb24taXRlbS1zcGFjaW5nID4gMCB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAkcGFnaW5hdGlvbi1pdGVtLWJvcmRlci1yYWRpdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgIEBpZiAkcGFnaW5hdGlvbi1pdGVtLXNwYWNpbmcgPT0gMCBhbmQgJHBhZ2luYXRpb24taXRlbS1ib3JkZXItcmFkaXVzID4gMCB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJHBhZ2luYXRpb24taXRlbS1ib3JkZXItcmFkaXVzO1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRwYWdpbmF0aW9uLWl0ZW0tYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG5cbiAgICAgICAgICAgIEBpZiAkcGFnaW5hdGlvbi1pdGVtLWJvcmRlci1zaXplID4gMCB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAkcGFnaW5hdGlvbi1pdGVtLWJvcmRlci1zaXplO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYgJHBhZ2luYXRpb24taXRlbS1zcGFjaW5nID09IDAgYW5kICRwYWdpbmF0aW9uLWl0ZW0tYm9yZGVyLXJhZGl1cyA+IDAge1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkcGFnaW5hdGlvbi1pdGVtLWJvcmRlci1yYWRpdXM7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6ICRwYWdpbmF0aW9uLWl0ZW0tYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRwYWdpbmF0aW9uLWl0ZW0taGVpZ2h0O1xuICAgICAgICAgICAgY29sb3I6ICRwYWdpbmF0aW9uLWl0ZW0tY29sb3I7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRwYWdpbmF0aW9uLWl0ZW0tc2lkZS1wYWRkaW5nO1xuICAgICAgICAgICAgXG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwYWdpbmF0aW9uLWhvdmVyLWl0ZW0tYmFja2dyb3VuZDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHBhZ2luYXRpb24taG92ZXItaXRlbS1ib3JkZXItY29sb3I7XG5cbiAgICAgICAgICAgIGEsXG4gICAgICAgICAgICBhOmhvdmVyLFxuICAgICAgICAgICAgYTpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRwYWdpbmF0aW9uLWhvdmVyLWl0ZW0tY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucGFnaW5hdGlvbiB7XG5cbiAgICAgICAgLnBhZ2luYXRpb25fX2l0ZW0tLW5leHQsXG4gICAgICAgIC5wYWdpbmF0aW9uX19pdGVtLS1wcmV2aW91cyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucGFnaW5hdGlvbl9faXRlbS0tY3VycmVudCB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkcGFnaW5hdGlvbi1pdGVtLWhlaWdodDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHBhZ2luYXRpb24tY3VycmVudC1pdGVtLWJhY2tncm91bmQ7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHBhZ2luYXRpb24tY3VycmVudC1pdGVtLWJvcmRlci1jb2xvcjtcbiAgICAgICAgY29sb3I6ICRwYWdpbmF0aW9uLWN1cnJlbnQtaXRlbS1jb2xvcjtcbiAgICAgICAgcGFkZGluZzogMCAkcGFnaW5hdGlvbi1pdGVtLXNpZGUtcGFkZGluZztcblxuICAgICAgICBAaWYgJHBhZ2luYXRpb24taXRlbS1zcGFjaW5nID4gMCBhbmQgJHBhZ2luYXRpb24taXRlbS1ib3JkZXItcmFkaXVzID4gMCB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAkcGFnaW5hdGlvbi1pdGVtLWJvcmRlci1yYWRpdXM7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgJHBhZ2luYXRpb24taXRlbS1zcGFjaW5nID09IDAge1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcGFnaW5hdGlvbi1jdXJyZW50LWl0ZW0tYmFja2dyb3VuZDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHBhZ2luYXRpb24tY3VycmVudC1pdGVtLWJvcmRlci1jb2xvcjtcbiAgICAgICAgICAgIGNvbG9yOiAkcGFnaW5hdGlvbi1jdXJyZW50LWl0ZW0tY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAkcGFnaW5hdGlvbi1pcy1sb2FkZWQ6IHRydWU7XG5cbiAgICBAaWYgJHBhZ2luYXRpb24taW5jbHVkZS1tZWRpYXF1ZXJpZXMgPT0gdHJ1ZSB7XG4gICAgICAgIEBtZWRpYSAjeyRwYWdpbmF0aW9uLWZ1bGwtYnJlYWtwb2ludH0ge1xuICAgICAgICAgICAgLnBhZ2luYXRpb24gLnBhZ2luYXRpb25fX2l0ZW0ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn0iLCJAaW1wb3J0IFwibmF2XCI7XG5cbiRuYXYtLWhvcml6b250YWwtaXMtbG9hZGVkOiBmYWxzZSAhZGVmYXVsdDtcblxuQGlmICRuYXYtLWhvcml6b250YWwtaXMtbG9hZGVkID09IGZhbHNlIHtcbiAgICAlbmF2LS1ob3Jpem9udGFsIHtcbiAgICAgICAgQGV4dGVuZCAlbmF2O1xuXG4gICAgICAgID4gbGkge1xuXG4gICAgICAgICAgICAmLFxuICAgICAgICAgICAgPiBhIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubmF2LS1ob3Jpem9udGFsIHtcbiAgICAgICAgQGV4dGVuZCAlbmF2LS1ob3Jpem9udGFsO1xuICAgIH1cblxuICAgICRuYXYtLWhvcml6b250YWwtaXMtbG9hZGVkOiB0cnVlO1xufSIsIiRuYXYtaXMtbG9hZGVkOiBmYWxzZSAhZGVmYXVsdDtcblxuQGlmICRuYXYtaXMtbG9hZGVkID09IGZhbHNlIHtcbiAgICAlbmF2IHtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgICRuYXYtaXMtbG9hZGVkOiB0cnVlO1xufSIsIi8qKlxuICogSWNvTW9vbiBnZW5lcmF0ZWQgaWNvbnNcbiAqIFNlZSB0aGUgdGhlbWUgYXNzZXRzL2ZvbnRzIGZvbGRlciBmb3IgZm9udCBmaWxlc1xuICogYW5kIGpzb24gZmlsZSB0byB1c2Ugb24gaWNvbW9vbiB0byBkZXZlbG9wIHRoaXNcbiAqIGZvbnQgZnVydGhlclxuICpcbiAqIFRoaXMgaWNvbiBmb250IGlzIGxhcmdlbHkgYmFzZWQgb24gYSBjdXN0b20gc2VsZWN0aW9uXG4gKiBvZiBpY29ucyBmcm9tIHRoZSBNYXRlcmlhbCBEZXNpZ24gaWNvbiBwYWNrLlxuICovXG5cbkBpbXBvcnQgJ2ljb24tdmFycyc7XG5cbiRpY29tb29uLWZvbnQtcGF0aDogXCIvYXNzZXRzMi9mb250cy9waW9uZWVyXCIgIWRlZmF1bHQ7XG5cbkBtaXhpbiBpY29uKCRpY29uOiBmYWxzZSkge1xuXHQvKiB1c2UgIWltcG9ydGFudCB0byBwcmV2ZW50IGlzc3VlcyB3aXRoIGJyb3dzZXIgZXh0ZW5zaW9ucyB0aGF0IGNoYW5nZSBmb250cyAqL1xuICAgIGZvbnQtZmFtaWx5OiAncGlvbmVlcicgIWltcG9ydGFudDtcbiAgICBzcGVhazogbm9uZTtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICBsaW5lLWhlaWdodDogMTtcblxuICAgIC8qIEJldHRlciBGb250IFJlbmRlcmluZyA9PT09PT09PT09PSAqL1xuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG5cblx0QGlmICRpY29uIHtcblx0XHRjb250ZW50OiBcIiN7JGljb259XCI7XG5cdH1cbn1cblxuQGZvbnQtZmFjZSB7XG5cdGZvbnQtZmFtaWx5OiAncGlvbmVlcic7XG4gICAgc3JjOnVybCgnI3skaWNvbW9vbi1mb250LXBhdGh9L3Bpb25lZXIuZW90P3RsMmNmNycpO1xuICAgIHNyYzp1cmwoJyN7JGljb21vb24tZm9udC1wYXRofS9waW9uZWVyLmVvdD90bDJjZjcjaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG4gICAgICAgIHVybCgnI3skaWNvbW9vbi1mb250LXBhdGh9L3Bpb25lZXIudHRmP3RsMmNmNycpIGZvcm1hdCgndHJ1ZXR5cGUnKSxcbiAgICAgICAgdXJsKCcjeyRpY29tb29uLWZvbnQtcGF0aH0vcGlvbmVlci53b2ZmP3RsMmNmNycpIGZvcm1hdCgnd29mZicpLFxuICAgICAgICB1cmwoJyN7JGljb21vb24tZm9udC1wYXRofS9waW9uZWVyLnN2Zz90bDJjZjcjcGlvbmVlcicpIGZvcm1hdCgnc3ZnJyk7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG59XG5cbltjbGFzc149XCJpY29uLVwiXSxcbltjbGFzcyo9XCIgaWNvbi1cIl0ge1xuXHRAaW5jbHVkZSBpY29uKCk7XG59XG5cbi5pY29uLW1lZGl1bTpiZWZvcmUge1xuXHRmb250LXNpemU6IDEuMjVlbTtcblx0dmVydGljYWwtYWxpZ246IC03LjUlO1xufVxuXG4uaWNvbi1sYXJnZTpiZWZvcmUge1xuXHRmb250LXNpemU6IDEuNWVtO1xuXHR2ZXJ0aWNhbC1hbGlnbjogLTE1JTtcbn1cblxuLmljb24teGxhcmdlOmJlZm9yZSB7XG5cdGZvbnQtc2l6ZTogMmVtO1xuXHR2ZXJ0aWNhbC1hbGlnbjogLTE1JTtcbn1cblxuLmljb24tbG9jYWwtc2hpcHBpbmcge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLWxvY2FsLXNoaXBwaW5nO1xuICAgIH1cbn1cbi5pY29uLXN0b2NrZXhjaGFuZ2Uge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLXN0b2NrZXhjaGFuZ2U7XG4gICAgfVxufVxuLmljb24tY3JlZGl0LWNhcmQge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLWNyZWRpdC1jYXJkO1xuICAgIH1cbn1cbi5pY29uLXBsYWNlIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1wbGFjZTtcbiAgICB9XG59XG4uaWNvbi13YWxsZXQtZ2lmdGNhcmQge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLXdhbGxldC1naWZ0Y2FyZDtcbiAgICB9XG59XG4uaWNvbi1mbGlnaHQge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLWZsaWdodDtcbiAgICB9XG59XG4uaWNvbi1hZGQtc2hvcHBpbmctY2FydCB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkaWNvbi12YXItYWRkLXNob3BwaW5nLWNhcnQ7XG4gICAgfVxufVxuLmljb24tZGVsZXRlIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1kZWxldGU7XG4gICAgfVxufVxuLmljb24tZXhpdC10by1hcHAge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLWV4aXQtdG8tYXBwO1xuICAgIH1cbn1cbi5pY29uLWZhdm9yaXRlIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1mYXZvcml0ZTtcbiAgICB9XG59XG4uaWNvbi1ob21lIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1ob21lO1xuICAgIH1cbn1cbi5pY29uLWluZm8ge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLWluZm87XG4gICAgfVxufVxuLmljb24tbGFuZ3VhZ2Uge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLWxhbmd1YWdlO1xuICAgIH1cbn1cbi5pY29uLXByaW50IHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1wcmludDtcbiAgICB9XG59XG4uaWNvbi1zZWFyY2gge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLXNlYXJjaDtcbiAgICB9XG59XG4uaWNvbi1zaG9wcGluZy1jYXJ0IHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1zaG9wcGluZy1jYXJ0O1xuICAgIH1cbn1cbi5pY29uLWVycm9yIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1lcnJvcjtcbiAgICB9XG59XG4uaWNvbi13YXJuaW5nIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci13YXJuaW5nO1xuICAgIH1cbn1cbi5pY29uLWNhbGwge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLWNhbGw7XG4gICAgfVxufVxuLmljb24tdnBuLWtleSB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkaWNvbi12YXItdnBuLWtleTtcbiAgICB9XG59XG4uaWNvbi1hZGQge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLWFkZDtcbiAgICB9XG59XG4uaWNvbi1tYWlsIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1tYWlsO1xuICAgIH1cbn1cbi5pY29uLWF0dGFjaC1tb25leSB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkaWNvbi12YXItYXR0YWNoLW1vbmV5O1xuICAgIH1cbn1cbi5pY29uLWtleWJvYXJkLWFycm93LWRvd24ge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLWtleWJvYXJkLWFycm93LWRvd247XG4gICAgfVxufVxuLmljb24tYnJpZ2h0bmVzcy0xIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1icmlnaHRuZXNzLTE7XG4gICAgfVxufVxuLmljb24tY2hlY2sge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLWNoZWNrO1xuICAgIH1cbn1cbi5pY29uLWNoZXZyb24tbGVmdCB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkaWNvbi12YXItY2hldnJvbi1sZWZ0O1xuICAgIH1cbn1cbi5pY29uLWNoZXZyb24tcmlnaHQge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLWNoZXZyb24tcmlnaHQ7XG4gICAgfVxufVxuLmljb24tY2xvc2Uge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLWNsb3NlO1xuICAgIH1cbn1cbi5pY29uLW1lbnUge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLW1lbnU7XG4gICAgfVxufVxuLmljb24tcmVmcmVzaCB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkaWNvbi12YXItcmVmcmVzaDtcbiAgICB9XG59XG4uaWNvbi1wZXJzb24ge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLXBlcnNvbjtcbiAgICB9XG59XG4uaWNvbi1zdGFyIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1zdGFyO1xuICAgIH1cbn1cbi5pY29uLXN0YXItaGFsZiB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkaWNvbi12YXItc3Rhci1oYWxmO1xuICAgIH1cbn1cbi5pY29uLXN0YXItb3V0bGluZSB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkaWNvbi12YXItc3Rhci1vdXRsaW5lO1xuICAgIH1cbn1cbi5pY29uLWdvb2dsZXBsdXMge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLWdvb2dsZXBsdXM7XG4gICAgfVxufVxuLmljb24tZmFjZWJvb2sge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLWZhY2Vib29rO1xuICAgIH1cbn1cbi5pY29uLWVsbG8ge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLWVsbG87XG4gICAgfVxufVxuLmljb24taW5zdGFncmFtIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1pbnN0YWdyYW07XG4gICAgfVxufVxuLmljb24tdHdpdHRlciB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkaWNvbi12YXItdHdpdHRlcjtcbiAgICB9XG59XG4uaWNvbi15b3V0dWJlIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci15b3V0dWJlO1xuICAgIH1cbn1cbi5pY29uLXZpbWVvIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci12aW1lbztcbiAgICB9XG59XG4uaWNvbi1mbGlja3Ige1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLWZsaWNrcjtcbiAgICB9XG59XG4uaWNvbi1ibG9nZ2VyIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1ibG9nZ2VyO1xuICAgIH1cbn1cbi5pY29uLWxpbmtlZGluIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1saW5rZWRpbjtcbiAgICB9XG59XG4uaWNvbi1waW50ZXJlc3Qge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLXBpbnRlcmVzdDtcbiAgICB9XG59XG4iLCIkaWNvbi12YXItbG9jYWwtc2hpcHBpbmc6IFwiXFxlNjIzXCI7XG4kaWNvbi12YXItc3RvY2tleGNoYW5nZTogXCJcXGU2MjBcIjtcbiRpY29uLXZhci1jcmVkaXQtY2FyZDogXCJcXGU2MjJcIjtcbiRpY29uLXZhci1wbGFjZTogXCJcXGU2MjFcIjtcbiRpY29uLXZhci13YWxsZXQtZ2lmdGNhcmQ6IFwiXFxlNjFlXCI7XG4kaWNvbi12YXItZmxpZ2h0OiBcIlxcZTYxZlwiO1xuJGljb24tdmFyLWFkZC1zaG9wcGluZy1jYXJ0OiBcIlxcZTYwMFwiO1xuJGljb24tdmFyLWRlbGV0ZTogXCJcXGU2MDFcIjtcbiRpY29uLXZhci1leGl0LXRvLWFwcDogXCJcXGU2MDJcIjtcbiRpY29uLXZhci1mYXZvcml0ZTogXCJcXGU2MDNcIjtcbiRpY29uLXZhci1ob21lOiBcIlxcZTYxY1wiO1xuJGljb24tdmFyLWluZm86IFwiXFxlNjE4XCI7XG4kaWNvbi12YXItbGFuZ3VhZ2U6IFwiXFxlNjA0XCI7XG4kaWNvbi12YXItcHJpbnQ6IFwiXFxlNjA1XCI7XG4kaWNvbi12YXItc2VhcmNoOiBcIlxcZTYwNlwiO1xuJGljb24tdmFyLXNob3BwaW5nLWNhcnQ6IFwiXFxlNjA3XCI7XG4kaWNvbi12YXItZXJyb3I6IFwiXFxlNjE5XCI7XG4kaWNvbi12YXItd2FybmluZzogXCJcXGU2MWFcIjtcbiRpY29uLXZhci1jYWxsOiBcIlxcZTYwOFwiO1xuJGljb24tdmFyLXZwbi1rZXk6IFwiXFxlNjA5XCI7XG4kaWNvbi12YXItYWRkOiBcIlxcZTYwYVwiO1xuJGljb24tdmFyLW1haWw6IFwiXFxlNjBiXCI7XG4kaWNvbi12YXItYXR0YWNoLW1vbmV5OiBcIlxcZTYwY1wiO1xuJGljb24tdmFyLWtleWJvYXJkLWFycm93LWRvd246IFwiXFxlNjBkXCI7XG4kaWNvbi12YXItYnJpZ2h0bmVzcy0xOiBcIlxcZTYwZVwiO1xuJGljb24tdmFyLWNoZWNrOiBcIlxcZTYxYlwiO1xuJGljb24tdmFyLWNoZXZyb24tbGVmdDogXCJcXGU2MGZcIjtcbiRpY29uLXZhci1jaGV2cm9uLXJpZ2h0OiBcIlxcZTYxMFwiO1xuJGljb24tdmFyLWNsb3NlOiBcIlxcZTYxMVwiO1xuJGljb24tdmFyLW1lbnU6IFwiXFxlNjEyXCI7XG4kaWNvbi12YXItcmVmcmVzaDogXCJcXGU2MTdcIjtcbiRpY29uLXZhci1wZXJzb246IFwiXFxlNjEzXCI7XG4kaWNvbi12YXItc3RhcjogXCJcXGU2MTRcIjtcbiRpY29uLXZhci1zdGFyLWhhbGY6IFwiXFxlNjE1XCI7XG4kaWNvbi12YXItc3Rhci1vdXRsaW5lOiBcIlxcZTYxNlwiO1xuJGljb24tdmFyLWdvb2dsZXBsdXM6IFwiXFxlYTg4XCI7XG4kaWNvbi12YXItZmFjZWJvb2s6IFwiXFxlYThjXCI7XG4kaWNvbi12YXItZWxsbzogXCJcXGVhOGZcIjtcbiRpY29uLXZhci1pbnN0YWdyYW06IFwiXFxlYTkwXCI7XG4kaWNvbi12YXItdHdpdHRlcjogXCJcXGVhOTFcIjtcbiRpY29uLXZhci15b3V0dWJlOiBcIlxcZWE5OVwiO1xuJGljb24tdmFyLXZpbWVvOiBcIlxcZWE5Y1wiO1xuJGljb24tdmFyLWZsaWNrcjogXCJcXGVhYTFcIjtcbiRpY29uLXZhci1ibG9nZ2VyOiBcIlxcZWFiOVwiO1xuJGljb24tdmFyLWxpbmtlZGluOiBcIlxcZWFjOVwiO1xuJGljb24tdmFyLXBpbnRlcmVzdDogXCJcXGVhZDBcIjsiLCIkc21hbGwtcGx1cy1yYW5nZTogKDI3ZW0sIHVwcGVyLWJvdW5kKCRzbWFsbC1yYW5nZSkpICFkZWZhdWx0O1xuJG1lZGl1bS1kb3duOiAgICAgIFwiI3skc2NyZWVufSBhbmQgKG1heC13aWR0aDogI3t1cHBlci1ib3VuZCgkbWVkaXVtLXJhbmdlKX0pXCI7XG4kc21hbGwtZG93bjogICAgICAgXCIjeyRzY3JlZW59IGFuZCAobWF4LXdpZHRoOiAje3VwcGVyLWJvdW5kKCRzbWFsbC1yYW5nZSl9KVwiO1xuJHNtYWxsLXBsdXM6ICAgICAgIFwiI3skc2NyZWVufSBhbmQgKG1pbi13aWR0aDogI3tsb3dlci1ib3VuZCgkc21hbGwtcGx1cy1yYW5nZSl9KVwiO1xuJHNtYWxsLXBsdXMtdXA6ICAgICRzbWFsbC1wbHVzO1xuJHNtYWxsLXBsdXMtZG93bjogIFwiI3skc2NyZWVufSBhbmQgKG1heC13aWR0aDoje3VwcGVyLWJvdW5kKCRzbWFsbC1wbHVzLXJhbmdlKX0pXCI7XG4kc21hbGwtcGx1cy1vbmx5OiAgXCIjeyRzY3JlZW59IGFuZCAobWluLXdpZHRoOiAje2xvd2VyLWJvdW5kKCRzbWFsbC1wbHVzLXJhbmdlKX0pIGFuZCAobWF4LXdpZHRoOiN7dXBwZXItYm91bmQoJHNtYWxsLXBsdXMtcmFuZ2UpfSlcIjsiLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbkBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XG4gICAgaHRtbCB7XG4gICAgICAgIGZvbnQtc2l6ZTogODcuNSU7XG4gICAgfVxufVxuXG4udmVydGljYWwtcG9zLWhlbHBlciB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4uaXMtaGlkZGVuIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG5AbWVkaWEgI3skbWVkaXVtLWRvd259IHtcbiAgICAuaGlkZV9vbl9tb2JpbGUge1xuICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufSIsIi8vIERvbid0IG91dGxpbmUgbWFpbiBjb250ZW50IHdoZW4gc2tpcHBpbmcgbmF2aWdhdGlvblxuI21haW4tY29udGVudDpmb2N1cyB7XG5cdG91dGxpbmU6IG5vbmU7XG59XG5cbi8vIFNjcmVlbiByZWFkZXIgb25seVxuLnNyLW9ubHkge1xuICAgIEBpbmNsdWRlIGFjY2Vzc2libGUtaGlkZSgpO1xufSIsIkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvbGF5b3V0L2hlYWRlci9zZXR0aW5nc1wiO1xuQGltcG9ydCBcImhlYWRlci91dGlscy1uYXZcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvbGF5b3V0L2hlYWRlci9vZmZjYW52YXMtbmF2XCI7XG5AaW1wb3J0IFwiaGVhZGVyL2xvZ28tbGluZVwiO1xuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS9sYXlvdXQvaGVhZGVyL21haW4tbmF2XCI7XG4iLCIkbG9nby1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICByZW0tY2FsYyg2MCkgIWRlZmF1bHQ7XG4kbG9nby1sYXJnZS1oZWlnaHQ6ICAgICAgICAgICAgICByZW0tY2FsYyg4MCkgIWRlZmF1bHQ7XG4kbG9nby1yb3ctc3BhY2luZzogICAgICAgICAgICAgICAxLjVyZW0gIWRlZmF1bHQ7XG4kbG9nby1sYXJnZS1yb3ctc3BhY2luZzogICAgICAgICAyLjVyZW0gIWRlZmF1bHQ7XG4kbWVudS1pdGVtcy1zcGFjaW5nOiAgICAgICAgICAgICAxcmVtICFkZWZhdWx0O1xuJHV0aWxzLW5hdi1iYXItaGVpZ2h0OiAgICAgICAgICAgM3JlbSAhZGVmYXVsdDtcbiR1dGlscy1uYXYtZm9udC1jb2xvcjogICAgICAgICAgICRib2R5LWZvbnQtY29sb3IgIWRlZmF1bHQ7XG4kdXRpbHMtbmF2LWZvbnQtc2l6ZTogICAgICAgICAgICByZW0tY2FsYygxNCkgIWRlZmF1bHQ7XG4kdXRpbHMtbmF2LXNlcGFyYXRvci1jb2xvcjogICAgICBsaWdodGVuKCR1dGlscy1uYXYtZm9udC1jb2xvciwgNTAlKSAhZGVmYXVsdDtcbiR1dGlscy1uYXYtaXRlbS1zcGFjaW5nOiAgICAgICAgIC41cmVtICFkZWZhdWx0O1xuJHV0aWxzLW5hdi1saW5lLWhlaWdodDogICAgICAgICAgMS4ycmVtICFkZWZhdWx0O1xuJG9mZi1jYW52YXMtYmFja2dyb3VuZDogICAgICAgICAgIzMzMyAhZGVmYXVsdDtcbiRvZmYtY2FudmFzLWxpbmstY29sb3I6ICAgICAgICAgICNmZmYgIWRlZmF1bHQ7XG4kb2ZmLWNhbnZhcy1pdGVtLXBhZGRpbmc6ICAgICAgICAycmVtICFkZWZhdWx0O1xuJG9mZi1jYW52YXMtaXRlbS1oZWlnaHQ6ICAgICAgICAgcmVtLWNhbGMoNDQpICFkZWZhdWx0O1xuJG9mZi1jYW52YXMtaXRlbS1saW5lLWNvbG9yOiAgICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpICFkZWZhdWx0O1xuJG9mZi1jYW52YXMtaXRlbS1saW5lLWhlaWdodDogICAgMS4yICFkZWZhdWx0O1xuJG9mZi1jYW52YXMtb24tbWVkaXVtOiAgICAgICAgICAgdHJ1ZSAhZGVmYXVsdDtcbiRvZmYtY2FudmFzLXRvcC1wYWRkaW5nOiAgICAgICAgICR1dGlscy1uYXYtYmFyLWhlaWdodCAhZGVmYXVsdDtcbiRvZmYtY2FudmFzLXRvcC1wb3NpdGlvbjogICAgICAgICRsb2dvLWhlaWdodCArICRvZmYtY2FudmFzLXRvcC1wYWRkaW5nICsgJGxvZ28tcm93LXNwYWNpbmcgKiAyICFkZWZhdWx0O1xuJG9mZi1jYW52YXMtbmF2LXNtYWxsLXNpemU6ICAgICAgNzAlICFkZWZhdWx0O1xuJG9mZi1jYW52YXMtbmF2LW1lZGl1bS1zaXplOiAgICAgNTAlICFkZWZhdWx0O1xuJG9mZi1jYW52YXMtY2xvc2UtYnRuLWhlaWdodDogICAgJHV0aWxzLW5hdi1iYXItaGVpZ2h0ICFkZWZhdWx0O1xuJG5hdi1saW5lLWhlaWdodDogICAgICAgICAgICAgICAgMy41cmVtICFkZWZhdWx0O1xuJG5hdi1idG4taGVpZ2h0OiAgICAgICAgICAgICAgICAgM3JlbSAhZGVmYXVsdDtcbiRuYXYtaWNvbi1zcGFjaW5nOiAgICAgICAgICAgICAgIC40cmVtICFkZWZhdWx0O1xuJG5hdi1zdWJtZW51LWJvcmRlci1jb2xvcjogICAgICAgJGJvcmRlci1jb2xvciAhZGVmYXVsdDtcbiRuYXYtZmlyc3QtbGV2ZWwtZm9udC13ZWlnaHQ6ICAgIGJvbGQgIWRlZmF1bHQ7XG4kbmF2LWZpcnN0LWxldmVsLXRleHQtdHJhbnNmb3JtOiBub25lICFkZWZhdWx0O1xuJG5hdi1maXJzdC1sZXZlbC1mb250LXNpemU6ICAgICAgMXJlbSAhZGVmYXVsdDtcbiRuYXYtaG9yaXpvbnRhbC1zaWRlLXBhZGRpbmc6ICAgIDFyZW0gIWRlZmF1bHQ7XG4kbmF2LWZpcnN0LWxldmVsLXNwYWNpbmc6ICAgICAgICAwICFkZWZhdWx0O1xuJG5hdi1maXJzdC1sZXZlbC1zaWRlLXBhZGRpbmc6ICAgMXJlbSAhZGVmYXVsdDsiLCIkdXRpbHMtbmF2LWZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseSAhZGVmYXVsdDtcblxuI3V0aWxzLW5hdiB7XG4gICAgZm9udC1mYW1pbHk6ICR1dGlscy1uYXYtZm9udC1mYW1pbHk7XG5cbiAgICAuaWNvbiB7XG4gICAgICAgIFxuICAgICAgICBtYXJnaW4tcmlnaHQ6IDRweDtcbiAgICAgICAgZm9udC1zaXplOiAxLjJlbTtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IC03JTtcbiAgICB9XG59XG5cbi51c2VyLW5hdl9fc2VwYXJhdG9yIHtcbiAgICBjb2xvcjogcmdiYShhY2Nlc3NpYmxlLWx1bWluYW5jZSgkdG9wLWJnLCAkdG9wLWJnKSwgMC41KTtcbn1cblxuI3VzZXItbmF2IHtcbiAgICAmLnJpZ2h0IGxpOmxhc3QtY2hpbGQgYSB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICR1dGlscy1uYXYtaXRlbS1zcGFjaW5nO1xuICAgIH1cblxuICAgIGEge1xuICAgICAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJHRvcC1iZywgJHRvcC1iZyk7XG4gICAgICAgIEBpbmNsdWRlIHNpbmdsZS10cmFuc2l0aW9uKGNvbG9yLCAxNTBtcyk7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGhvdmVyLWNvbG9yLCAkdG9wLWJnKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBhOm5vdCguc2V0dGluZ19fYnV0dG9uKSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICB9XG4gICAgXG4gICAgLnN1YnRsZSB7XG4gICAgICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkdG9wLWJnLCAkdG9wLWJnKTtcbiAgICB9XG59XG5cbkBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XG4gICAgI3VzZXItbmF2IHtcbiAgICAgICAgLmljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDIyKTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkdXRpbHMtbmF2LWJhci1oZWlnaHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAjdXRpbHMtbmF2IHtcbiAgICAgICAgc3Bhbi5oaWRlLWZvci1zbWFsbCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuI3Rvb2xzLW5hdiB7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbi5waXBlZC1uYXYge1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LXNpemU6ICR1dGlscy1uYXYtZm9udC1zaXplO1xuICAgIGhlaWdodDogJHV0aWxzLW5hdi1iYXItaGVpZ2h0O1xuXG4gICAgbGkge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkdXRpbHMtbmF2LWJhci1oZWlnaHQ7XG4gICAgICAgIGhlaWdodDogJHV0aWxzLW5hdi1iYXItaGVpZ2h0O1xuICAgIH1cblxuICAgICYubGVmdCB7XG4gICAgICAgIGxpOmZpcnN0LWNoaWxkIGEge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5yaWdodCB7XG4gICAgICAgIGxpOmxhc3QtY2hpbGQgYSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5uby1zZXBhcmF0b3Ige1xuICAgICAgICBhIHtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICAgIHBhZGRpbmc6IDAgJHV0aWxzLW5hdi1pdGVtLXNwYWNpbmc7XG4gICAgfVxuXG59IiwiQGlmICgkb2ZmLWNhbnZhcy1wb3NpdGlvbiAhPSBsZWZ0IGFuZCAkb2ZmLWNhbnZhcy1wb3NpdGlvbiAhPSByaWdodCkge1xuICAgIEB3YXJuIFwiJG9mZi1jYW52YXMtcG9zaXRpb24gbXVzdCBiZSBsZWZ0IG9yIHJpZ2h0LCB3YXMgI3skb2ZmLWNhbnZhcy1wb3NpdGlvbn0uXCI7XG59XG5cbiRvZmYtY2FudmFzLW9uLWxhcmdlOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8gT2ZmIGNhbnZhcyBtZWRpYSBxdWVyeSBpcyBub3QgbW9iaWxlIGZpcnN0LiBUaGUgc2hhbWUhXG4kb2ZmLWNhbnZhcy1hdDogaWYoJG9mZi1jYW52YXMtb24tbWVkaXVtID09IHRydWUsICRtZWRpdW0tZG93biwgJHNtYWxsLWRvd24pO1xuXG5ib2R5IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWluLXdpZHRoOiAyMGVtO1xufVxuXG4jb3V0ZXItd3JhcCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbiNpbm5lci13cmFwIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbi5ibG9jayB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uYmxvY2stdGl0bGUge1xuICAgIEBpbmNsdWRlIGFjY2Vzc2libGUtaGlkZSgpO1xufVxuXG5AbWVkaWEgI3skb2ZmLWNhbnZhcy1hdH0ge1xuICAgICNuYXYge1xuICAgICAgICB6LWluZGV4OiAyMDA7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgcGFkZGluZy10b3A6ICRvZmYtY2FudmFzLXRvcC1wYWRkaW5nO1xuICAgICAgICB0b3A6ICRvZmYtY2FudmFzLXRvcC1wb3NpdGlvbjtcblxuICAgICAgICAmOm5vdCg6dGFyZ2V0KSB7XG4gICAgICAgICAgICB6LWluZGV4OiAtMTtcbiAgICAgICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJjp0YXJnZXQge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJG9mZi1jYW52YXMtYmFja2dyb3VuZDtcbiAgICAgICAgICAgIC5tYWluLW5hdl9fY2xvc2UtYnRuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5ibG9jayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAyO1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jb2x1bW5zIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIH1cblxuICAgICAgICB1bCB7XG4gICAgICAgICAgICAmOmJlZm9yZSxcbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmpzLXJlYWR5e1xuICAgICAgICAjbmF2IHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAkb2ZmLWNhbnZhcy1uYXYtc21hbGwtc2l6ZTtcbiAgICAgICAgICAgICN7JG9mZi1jYW52YXMtcG9zaXRpb259OiAtI3skb2ZmLWNhbnZhcy1uYXYtc21hbGwtc2l6ZX07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkb2ZmLWNhbnZhcy1iYWNrZ3JvdW5kO1xuICAgICAgICAgICAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LXNoYWRvdywgaW5zZXQgaWYoJG9mZi1jYW52YXMtcG9zaXRpb24gPT0gbGVmdCwgLTEuNWVtLCAxLjVlbSkgMCAxLjVlbSAtMC43NWVtIHJnYmEoMCwgMCwgMCwgMC4yNSksIG1veiBzcGVjKTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAkb2ZmLWNhbnZhcy10b3AtcGFkZGluZztcblxuICAgICAgICAgICAgLmJsb2NrIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICNpbm5lci13cmFwIHtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuanMtbmF2ICNpbm5lci13cmFwIHtcbiAgICAgICAgI3skb2ZmLWNhbnZhcy1wb3NpdGlvbn06ICRvZmYtY2FudmFzLW5hdi1zbWFsbC1zaXplO1xuICAgIH1cblxuICAgIC5jc3N0cmFuc2Zvcm1zM2QuY3NzdHJhbnNpdGlvbnMuanMtcmVhZHkge1xuICAgICAgICAjbmF2IHtcbiAgICAgICAgICAgICN7JG9mZi1jYW52YXMtcG9zaXRpb259OiAwO1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNsYXRlM2QoaWYoJG9mZi1jYW52YXMtcG9zaXRpb24gPT0gbGVmdCwgLTEwMCUsIDEwMCUpLCAwLCAwKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJhY2tmYWNlLXZpc2liaWxpdHkoaGlkZGVuKTtcbiAgICAgICAgfVxuXG4gICAgICAgICNpbm5lci13cmFwIHtcbiAgICAgICAgICAgICN7JG9mZi1jYW52YXMtcG9zaXRpb259OiAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAvLyBAaW5jbHVkZSB0cmFuc2xhdGUzZCgwLDAsMCk7IC8vIERpc2FibGVkISBDYXVzZWQgYWxsIGtpbmRzIG9mIHdlaXJkIGJsdXJyaW5nIGluIEFuZHJvaWQgRmlyZWZveFxuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgNTAwbXMgZWFzZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuY3NzdHJhbnNmb3JtczNkLmNzc3RyYW5zaXRpb25zLmpzLW5hdiAjaW5uZXItd3JhcCB7XG4gICAgICAgIEBpbmNsdWRlIGJhY2tmYWNlLXZpc2liaWxpdHkoaGlkZGVuKTtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNsYXRlM2QoaWYoJG9mZi1jYW52YXMtcG9zaXRpb24gPT0gbGVmdCwgJG9mZi1jYW52YXMtbmF2LXNtYWxsLXNpemUsIC0kb2ZmLWNhbnZhcy1uYXYtc21hbGwtc2l6ZSksIDAsIDAsIHNjYWxlM2QoMSwgMSwgMSkpO1xuICAgIH1cblxuICAgIC5jc3N0cmFuc2Zvcm1zM2QuY3NzdHJhbnNpdGlvbnMuanMtcmVhZHkgI25hdiAuYmxvY2sge1xuICAgICAgICBvcGFjaXR5OiAwLjc7XG4gICAgICAgIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAzMDBtcyAxMDBtcyBlYXNlLCAtd2Via2l0LXRyYW5zZm9ybSA1MDBtcyBlYXNlLCB2aXNpYmlsaXR5IDUwMG1zIGVhc2U7XG4gICAgICAgIC1tb3otdHJhbnNpdGlvbjogb3BhY2l0eSAzMDBtcyAxMDBtcyBlYXNlLCAtbW96LXRyYW5zZm9ybSA1MDBtcyBlYXNlLCB2aXNpYmlsaXR5IDUwMG1zIGVhc2U7XG4gICAgICAgIC1vLXRyYW5zaXRpb246IG9wYWNpdHkgMzAwbXMgMTAwbXMgZWFzZSwgLW8tdHJhbnNmb3JtIDUwMG1zIGVhc2UsIHZpc2liaWxpdHkgNTAwbXMgZWFzZTtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAzMDBtcyAxMDBtcyBlYXNlLCB0cmFuc2Zvcm0gNTAwbXMgZWFzZSwgdmlzaWJpbGl0eSA1MDBtcyBlYXNlO1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2xhdGUzZChpZigkb2ZmLWNhbnZhcy1wb3NpdGlvbiA9PSBsZWZ0LCAkb2ZmLWNhbnZhcy1uYXYtc21hbGwtc2l6ZSwgLSRvZmYtY2FudmFzLW5hdi1zbWFsbC1zaXplKSwgMCwgMCwgc2NhbGUzZCgwLjksIDAuOSwgMC45KSk7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybS1vcmlnaW4oNTAlIDAlKTtcbiAgICAgICAgLy92aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgfVxuXG4gICAgLmNzc3RyYW5zZm9ybXMzZC5jc3N0cmFuc2l0aW9ucy5qcy1uYXYgI25hdiAuYmxvY2sge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAvL3Zpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zbGF0ZTNkKDAsMCwwKTtcbiAgICB9XG5cbiAgICAvLyBUbyBhdm9pZCBtZW1vcnkgbGVha3Mgb24gbW9iaWxlIGRldmljZXNcbiAgICAuY3NzdHJhbnNmb3JtczNkLmNzc3RyYW5zaXRpb25zICNuYXYge1xuICAgICAgICAvLyBhcyB0ZW1wdGluZyBhcyBpdCBpcyB0byB1c2UgZGlzcGxheTogbm9uZSwgdmlzaWJpbGl0eTogaGlkZGVuIGlzIGFuaW1hdGFibGVcbiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKHZpc2liaWxpdHkgNTAwbXMgZWFzZSk7XG4gICAgfVxuICAgIC5jc3N0cmFuc2Zvcm1zM2QuY3NzdHJhbnNpdGlvbnMuanMtbmF2ICNuYXYge1xuICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIH1cbn1cblxuQGlmICRvZmYtY2FudmFzLW9uLW1lZGl1bSB7XG4gICAgLy8gRGlmZmVyZW50IG5hdiBzaXplIG9uIG1lZGl1bVxuICAgIEBtZWRpYSAjeyRtZWRpdW0tb25seX0ge1xuICAgICAgICAuanMtcmVhZHkge1xuICAgICAgICAgICAgI25hdiB7XG4gICAgICAgICAgICAgICAgd2lkdGg6ICRvZmYtY2FudmFzLW5hdi1tZWRpdW0tc2l6ZTtcbiAgICAgICAgICAgICAgICAjeyRvZmYtY2FudmFzLXBvc2l0aW9ufTogLSN7JG9mZi1jYW52YXMtbmF2LW1lZGl1bS1zaXplfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5qcy1uYXYgI2lubmVyLXdyYXAge1xuICAgICAgICAgICAgI3skb2ZmLWNhbnZhcy1wb3NpdGlvbn06ICRvZmYtY2FudmFzLW5hdi1tZWRpdW0tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jc3N0cmFuc2Zvcm1zM2QuY3NzdHJhbnNpdGlvbnMuanMtbmF2ICNpbm5lci13cmFwIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zbGF0ZTNkKGlmKCRvZmYtY2FudmFzLXBvc2l0aW9uID09IGxlZnQsICRvZmYtY2FudmFzLW5hdi1tZWRpdW0tc2l6ZSwgLSRvZmYtY2FudmFzLW5hdi1tZWRpdW0tc2l6ZSksIDAsIDAsIHNjYWxlM2QoMSwgMSwgMSkpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AaWYgJG9mZi1jYW52YXMtb24tbGFyZ2Uge1xuICAgIC8vIERpZmZlcmVudCBuYXYgc2l6ZSBvbiBtZWRpdW1cbiAgICBAbWVkaWEgI3skbGFyZ2UtdXB9IHtcbiAgICAgICAgLmpzLW5hdiB7XG4gICAgICAgICAgICAjbmF2IHtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAyMDA7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgcGFkZGluZy10b3A6ICRvZmYtY2FudmFzLXRvcC1wYWRkaW5nO1xuICAgICAgICAgICAgICAgIHRvcDogJG9mZi1jYW52YXMtdG9wLXBvc2l0aW9uO1xuXG4gICAgICAgICAgICAgICAgJjpub3QoOnRhcmdldCkge1xuICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiAtMTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOnRhcmdldCB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRvZmYtY2FudmFzLWJhY2tncm91bmQ7XG4gICAgICAgICAgICAgICAgICAgIC5tYWluLW5hdl9fY2xvc2UtYnRuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLmJsb2NrIHtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiAyO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5jb2x1bW5zIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB1bCB7XG4gICAgICAgICAgICAgICAgICAgICY6YmVmb3JlLFxuICAgICAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuanMtbmF2ICNpbm5lci13cmFwIHtcbiAgICAgICAgICAgICN7JG9mZi1jYW52YXMtcG9zaXRpb259OiAkb2ZmLWNhbnZhcy1uYXYtbWVkaXVtLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAuY3NzdHJhbnNmb3JtczNkLmNzc3RyYW5zaXRpb25zLmpzLW5hdiAjaW5uZXItd3JhcCB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2xhdGUzZChpZigkb2ZmLWNhbnZhcy1wb3NpdGlvbiA9PSBsZWZ0LCAkb2ZmLWNhbnZhcy1uYXYtbWVkaXVtLXNpemUsIC0kb2ZmLWNhbnZhcy1uYXYtbWVkaXVtLXNpemUpLCAwLCAwLCBzY2FsZTNkKDEsIDEsIDEpKTtcbiAgICAgICAgfVxuICAgIH1cbn0iLCIkbmF2LXNlYXJjaC1yYWRpdXM6ICRidXR0b24tcmFkaXVzICFkZWZhdWx0O1xuJHRleHQtbG9nby1mb250LXNpemU6ICRoMS1mb250LXNpemUgIWRlZmF1bHQ7XG5cbiNsb2dvLXJvdyB7XG4gICAgcGFkZGluZzogJGxvZ28tcm93LXNwYWNpbmcgMDtcbn1cblxuI2xvZ28ge1xuICAgIGEge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuXG4gICAgaDEge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGZvbnQtc2l6ZTogJHRleHQtbG9nby1mb250LXNpemU7XG4gICAgfVxuXG4gICAgaW1nIHtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG59XG5cbiNleHRyYS1uYXYge1xuICAgIC5jYXJ0LWFuZC1jaGVja291dCB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAjeygkbG9nby1oZWlnaHQgLSAkYnV0dG9uLXNpemUpLzJ9O1xuXG4gICAgICAgICYucmlnaHQge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZm9ybSB7XG4gICAgICAgIGlucHV0LCAuYnV0dG9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICAgICAgaW5wdXQge1xuICAgICAgICAgICAgQGlmKCRuYXYtc2VhcmNoLXJhZGl1cykge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHNpZGUtcmFkaXVzKGxlZnQsICRuYXYtc2VhcmNoLXJhZGl1cyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgYnV0dG9uIHtcbiAgICAgICAgICAgIEBpZigkbmF2LXNlYXJjaC1yYWRpdXMpIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBzaWRlLXJhZGl1cyhyaWdodCwgJG5hdi1zZWFyY2gtcmFkaXVzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5idXR0b24ge1xuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRob3Zlci1jb2xvcjtcbiAgICAgICAgICAgIGNvbG9yOiAkaG92ZXItYmctdGV4dC1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuI2NvbnRhY3QtbmF2IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBjbGVhcjogYm90aDtcbiAgICBcbiAgICBsaSB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpO1xuICAgICAgICBoZWlnaHQ6ICN7JGxvZ28taGVpZ2h0IC0gJGJ1dHRvbi1zaXplfTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDFlbTtcbiAgICB9XG59XG5cbkBtZWRpYSAjeyRsYXJnZS11cH0ge1xuICAgICNsb2dvLXJvdyB7XG4gICAgICAgIHBhZGRpbmc6ICRsb2dvLWxhcmdlLXJvdy1zcGFjaW5nIDA7XG4gICAgfVxuXG4gICAgI2V4dHJhLW5hdiB7XG4gICAgICAgIC5jYXJ0LWFuZC1jaGVja291dHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAjeygkbG9nby1sYXJnZS1oZWlnaHQgLSAkYnV0dG9uLXNpemUpLzJ9O1xuICAgICAgICB9XG5cbiAgICAgICAgLnBpcGVkLW5hdiB7XG4gICAgICAgICAgICBsaTpmaXJzdC1jaGlsZCBhIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAjbG9nbyB7XG4gICAgICAgIGgxIHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkbG9nby1sYXJnZS1oZWlnaHQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAjY29udGFjdC1uYXYge1xuICAgICAgICBoZWlnaHQ6ICN7KCRsb2dvLWxhcmdlLWhlaWdodCAtICRidXR0b24tc2l6ZSkvMn07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAjeygkbG9nby1sYXJnZS1oZWlnaHQgLSAkYnV0dG9uLXNpemUpLzJ9O1xuICAgIH1cbn0iLCIvKipcbiAqIFdlJ3JlIHVzaW5nIHR3byBtZW51IGNvbmNlcHRzIGhlcmVcbiAqIE9mZiBjYW52YXMgbmF2aWdhdGlvbiwgYXMgc2VlbiBvbiBodHRwOi8vd3d3LnNtYXNoaW5nbWFnYXppbmUuY29tLzIwMTMvMDEvMTUvb2ZmLWNhbnZhcy1uYXZpZ2F0aW9uLWZvci1yZXNwb25zaXZlLXdlYnNpdGUvXG4gKiBTbWFydCBtZW51cywgYXMgc2VlbiBvbiBodHRwOi8vd3d3LnNtYXJ0bWVudXMub3JnL1xuICovXG4kbWVudS1mb250LWZhbWlseSAgICAgICAgICA6ICRib2R5LWZvbnQtZmFtaWx5ICFkZWZhdWx0O1xuJG1lbnUtZm9udC1jb2xvciAgICAgICAgICAgOiBpZihsdW1hKCRuYXZpZ2F0aW9uLWJnKSA8IDUwLCAkYWx0ZXJuYXRpdmUtZm9udC1jb2xvciwgJGJvZHktZm9udC1jb2xvcikgIWRlZmF1bHQ7XG4kbWVudS1kcm9wZG93bi1iZyAgICAgICAgICA6IHJnYmEoI2ZmZiwgLjk3KSAhZGVmYXVsdDtcbiRtZW51LWRyb3Bkb3duLWxpbmstY29sb3IgIDogaWYobHVtYSgkbWVudS1kcm9wZG93bi1iZykgPCA1MCwgYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGxpZ2h0LWJvZHktdGV4dCwgJG1lbnUtZHJvcGRvd24tYmcpLCBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkZGFyay1ib2R5LXRleHQsICRtZW51LWRyb3Bkb3duLWJnKSkgIWRlZmF1bHQ7XG4kbWVudS1uYXZpZ2F0aW9uLWxpbmstY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRtZW51LWZvbnQtY29sb3IsICRuYXZpZ2F0aW9uLWJnKSAhZGVmYXVsdDtcbi8vJG1lbnUtaXRlbS1jb2xvciAgICAgICAgICAgOlxuLy8kbWVudS1pdGVtLWJnICAgICAgICAgICAgICA6XG4kbWVudS1pdGVtLWNvbnRyYXN0LWNvbG9yICA6ICRuYXZpZ2F0aW9uLWJnICFkZWZhdWx0O1xuJG1lbnUtaXRlbS1ob3Zlci1jb2xvciAgICAgOiAkaG92ZXItYmctdGV4dC1jb2xvciAhZGVmYXVsdDtcbiRtZW51LWl0ZW0taG92ZXItYmcgICAgICAgIDogJGhvdmVyLWNvbG9yICFkZWZhdWx0O1xuJG1lbnUtaXRlbS1hY3RpdmUtY29sb3IgICAgOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcbiRtZW51LWl0ZW0tYWN0aXZlLWJnICAgICAgIDogJG5hdmlnYXRpb24tYmcgIWRlZmF1bHQ7XG4kbWVudS1pdGVtLWFjdGl2ZS1ob3Zlci1jb2xvcjogJG5hdmlnYXRpb24tYmcgIWRlZmF1bHQ7XG4kbWVudS1pdGVtLWFjdGl2ZS1ob3Zlci1iZyA6IGlmKGx1bWEoJHByaW1hcnktY29sb3IpIDwgNTAsIGxpZ2h0ZW4oJHByaW1hcnktY29sb3IsIDEwJSksIGRhcmtlbigkcHJpbWFyeS1jb2xvciwgMTAlKSkgIWRlZmF1bHQ7XG5cbiRuYXYtdG9nZ2xlci1zaXplOiAoJGxpc3QtbGluZS1oZWlnaHQgKiAkbGlzdC1mb250LXNpemUpICFkZWZhdWx0O1xuJG5hdi10b2dnbGVyLWJhY2tkcm9wOiAkY29udGVudC1iZyAhZGVmYXVsdDtcbiRuYXYtdG9nZ2xlci1jdXJyZW50LWJhY2tkcm9wOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcbiRuYXYtdG9nZ2xlci1ob3Zlci1iZzogJGJvcmRlci1jb2xvciAhZGVmYXVsdDtcblxuJG1lbnUtaG9yaXpvbnRhbC1icmVha3BvaW50OiBpZigkb2ZmLWNhbnZhcy1vbi1tZWRpdW0gPT0gdHJ1ZSwgJGxhcmdlLXVwLCAkbWVkaXVtLXVwKTtcbiRvdmVycmlkZS1pbmxpbmUtcG9zLWF0OiBpZigkb2ZmLWNhbnZhcy1vbi1tZWRpdW0gPT0gdHJ1ZSwgJG1lZGl1bS1kb3duLCAkc21hbGwtZG93bik7XG5cbi8vIE5hdmlnYXRpb24gY29udGFpbmVyXG4ubWFpbi1uYXYge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHotaW5kZXg6IDIwMDtcbiAgICBmb250LWZhbWlseTogJG1lbnUtZm9udC1mYW1pbHk7XG5cbiAgICB1bCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgICAgICBkaXJlY3Rpb246IGx0cjtcbiAgICB9XG5cbiAgICBhIHtcbiAgICAgICAgY29sb3I6ICRtZW51LW5hdmlnYXRpb24tbGluay1jb2xvcjtcbiAgICAgICAgQGluY2x1ZGUgc2luZ2xlLXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgIH1cblxuICAgIC5pY29uLW1lbnU6YmVmb3JlIHtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IC0xMiU7XG4gICAgfVxufVxuXG4vLyBqcyBrZWVwSW5WaWV3cG9ydCBidWdmaXhcbi5zbSB7XG4gICAgLnNjcm9sbC11cCwgLnNjcm9sbC1kb3duIHtcbiAgICAgICAgZGlzcGxheTogbm9uZSFpbXBvcnRhbnQ7XG4gICAgfVxufVxuXG4vLyBPZmYgY2FudmFzIG1lbnUgaXRlbXNcbi5tYWluLW5hdl9faXRlbSBhLCBhLm1haW4tbmF2X19jbG9zZS1idG4ge1xuICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkb2ZmLWNhbnZhcy1saW5rLWNvbG9yLCAkb2ZmLWNhbnZhcy1iYWNrZ3JvdW5kKTtcbn1cblxuLy8gT2ZmLWNhbnZhcyBuYXZpZ2F0aW9uIGNsb3NlIGJ1dHRvblxuLm1haW4tbmF2X19jbG9zZS1idG4ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBwYWRkaW5nOiAwIDFyZW07XG4gICAgYm9yZGVyOiAwO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgb3BhY2l0eTogMC43O1xuICAgIHRleHQtYWxpZ246IGlmKCRvZmYtY2FudmFzLXBvc2l0aW9uID09IGxlZnQsIHJpZ2h0LCBsZWZ0KTtcbiAgICBsaW5lLWhlaWdodDogJG9mZi1jYW52YXMtY2xvc2UtYnRuLWhlaWdodDtcbiAgICBoZWlnaHQ6ICRvZmYtY2FudmFzLWNsb3NlLWJ0bi1oZWlnaHQ7XG4gICAgQGluY2x1ZGUgcHJlZml4ZXIodGFwLWhpZ2hsaWdodC1jb2xvciwgcmdiYSgwLCAwLCAwLCAwKSwgd2Via2l0KTtcblxuICAgICY6Zm9jdXMsXG4gICAgJjpob3ZlcixcbiAgICAmLmhpZ2hsaWdodGVkIHtcbiAgICAgICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRvZmYtY2FudmFzLWxpbmstY29sb3IsICRob3Zlci1jb2xvcikgIWltcG9ydGFudDtcbiAgICAgICAgYmFja2dyb3VuZDogJGhvdmVyLWNvbG9yO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgIGkge1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDEyKTtcbiAgICAgICAgcGFkZGluZy0jeyRvZmYtY2FudmFzLXBvc2l0aW9ufTogLjRyZW07XG4gICAgfVxufVxuXG4vLyBUaGUgbWVudS9zZWFyY2ggYnV0dG9ucyBpbiB0aGUgY29tcGFjdCBtZW51XG4ubmF2LWNvbXBhY3Qge1xuICAgIGxpIHtcbiAgICAgICAgaGVpZ2h0OiAkbmF2LWxpbmUtaGVpZ2h0O1xuICAgIH1cblxuICAgIGEge1xuICAgICAgICBjb2xvcjogJG1lbnUtbmF2aWdhdGlvbi1saW5rLWNvbG9yO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRuYXYtbGluZS1oZWlnaHQ7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIH1cbn1cblxuI25hdi1vcGVuLWJ0biB7XG4gICAgcGFkZGluZzogMDtcblxuICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgfVxufVxuXG4ubmF2LW9mZmNhbnZhcyB7XG4gICAgbGkge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRvZmYtY2FudmFzLWl0ZW0tbGluZS1jb2xvcjtcblxuICAgICAgICBsaSB7XG4gICAgICAgICAgICBib3JkZXItdG9wLXN0eWxlOiBkb3R0ZWQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIE5hdiBpdGVtcyBzdHlsaW5nXG4ubWFpbi1uYXZfX2l0ZW0ge1xuICAgIGRpcmVjdGlvbjogbHRyO1xuXG4gICAgYSB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDAgJG5hdi1ob3Jpem9udGFsLXNpZGUtcGFkZGluZztcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMsXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICYuaGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJG1lbnUtaXRlbS1ob3Zlci1iZztcbiAgICAgICAgICAgIGNvbG9yOiAkbWVudS1pdGVtLWhvdmVyLWNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgLmRpc2FibGVkIHtcbiAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYuY3VycmVudCxcbiAgICAmLnNlbGVjdGVkIHtcbiAgICAgICAgJiA+IGEge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29sb3JlZC1iZy1lbGVtZW50KCRtZW51LWl0ZW0tYWN0aXZlLWJnLCAkbWVudS1pdGVtLWFjdGl2ZS1jb2xvciwgJG1lbnUtaXRlbS1jb250cmFzdC1jb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICAkYWN0aXZlLWhvdmVyLWJnOiBpZihsdW1hKCRtZW51LWl0ZW0tYWN0aXZlLWhvdmVyLWJnKSA8IDUwLCBsaWdodGVuKCRtZW51LWl0ZW0tYWN0aXZlLWhvdmVyLWJnLCAxMCUpLCBkYXJrZW4oJG1lbnUtaXRlbS1hY3RpdmUtaG92ZXItYmcsIDEwJSkpICFkZWZhdWx0O1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbG9yZWQtYmctZWxlbWVudCgkYWN0aXZlLWhvdmVyLWJnLCAjZmZmLCAkbWVudS1pdGVtLWNvbnRyYXN0LWNvbG9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vVGhpcyBzdHlsaW5nIG9ubHkgYXBwbGllcyBpZiAuc20gaXMgYWRkZWQgdG8gdGhlIHRvcCA8dWw+IGVsZW1lbnQsIGFzIGFycm93cyBkb24ndCB3b3JrIGlmIHNtYXJ0bWVudSBpc24ndCBsb2FkZWQgYW55d2F5XG4gICAgJi5wYXJlbnQgPiBhIHtcbiAgICAgICAgLy8gU2hvdyBhcnJvdyBmb3IgcGFyZW50IGl0ZW1zXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaWNvbigkaWNvbi12YXIta2V5Ym9hcmQtYXJyb3ctZG93bik7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRuYXYtaWNvbi1zcGFjaW5nO1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDQwMG1zIGVhc2UpO1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi5oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAmIH4gdWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGFjY2Vzc2libGUtc2hvdygkcG9zaXRpb246IHJlbGF0aXZlKTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gUm90YXRlIGFycm93IG9uIGhvdmVyXG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0ocm90YXRleCgxODBkZWcpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICYucGFyZW50LmxldmVsLTEgPiBhOmFmdGVyIHtcbiAgICAgICAgQGV4dGVuZCAuaWNvbi1rZXlib2FyZC1hcnJvdy1kb3duOmJlZm9yZTtcbiAgICB9XG59XG5cbi8qKlxuICogTmF2IGl0ZW1zIHNob3VsZCBoYXZlIHBhZGRpbmcgYW5kIGEgbG93IGxpbmUgaGVpZ2h0XG4gKiBJZiBub3QsIG11bHRpLWxpbmUgaXRlbXMgd2lsbCBiZSBodWdlXG4gKi9cbi5tYWluLW5hdl9fbGlzdCB7XG4gICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDAsMCwwLDApO1xuXG4gICAgYSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkb2ZmLWNhbnZhcy1pdGVtLWxpbmUtaGVpZ2h0ICogMXJlbTtcbiAgICAgICAgcGFkZGluZzogI3soJG9mZi1jYW52YXMtaXRlbS1oZWlnaHQgLSAkb2ZmLWNhbnZhcy1pdGVtLWxpbmUtaGVpZ2h0ICogMXJlbSkvMn0gMXJlbTtcbiAgICB9XG5cbiAgICAvLyBFeHRyYSBib3R0b20gYm9yZGVyIGZvciB0aGUgbGFzdCBvZiB0aGUgZmlyc3QgbGV2ZWwgZWxlbWVudHNcbiAgICAmLmxldmVsLTAgPiBsaTpsYXN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRvZmYtY2FudmFzLWl0ZW0tbGluZS1jb2xvcjtcbiAgICB9XG59XG5cbi8vIFN1Ym1lbnVcbi5tYWluLW5hdl9fc3VibWVudSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgei1pbmRleDogMjAxO1xuICAgIEBpbmNsdWRlIGFjY2Vzc2libGUtaGlkZSgpO1xuXG4gICAgYSB7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDJyZW07XG4gICAgfVxuXG4gICAgaHRtbC5uby1qcyAmLmFjdGl2ZSB7XG4gICAgICAgIEBpbmNsdWRlIGFjY2Vzc2libGUtc2hvdygpO1xuICAgIH1cblxufVxuXG4vL1N1YnN1Ym1lbnVcbi5tYWluLW5hdl9fc3VibWVudS5sZXZlbC0yIHtcbiAgICBhIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAzLjVyZW07XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaWNvbigkaWNvbi12YXItY2hldnJvbi1yaWdodCk7XG4gICAgICAgICAgICBvcGFjaXR5OiAuNTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRvZmYtY2FudmFzLWl0ZW0tbGluZS1oZWlnaHQgKiAxcmVtO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJG5hdi1pY29uLXNwYWNpbmc7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5qcy1uYXYge1xuICAgICNvdXRlci13cmFwIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcbiAgICB9XG5cbiAgICAuY29udGVudC13cmFwcGVyID4gKjpub3QoI25hdikge1xuICAgICAgICBvcGFjaXR5OiAuNDtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihvcGFjaXR5LCA1MDBtcyk7XG4gICAgfVxufVxuXG4vKiBGaXggd2VpcmQgYnVnIGluIENocm9tZSB3aGVyZSBtZW51IGRpc2FwcGVhcnMgb24gaG92ZXIgKi9cbi5tYWluLW5hdl9faXRlbSxcbi5tYWluLW5hdl9fc3VibWVudSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDBweCwgMHB4LCAwcHgpO1xufVxuXG4uYmxvY2stbmF2X19pdGVtLnBhcmVudCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG5AbWl4aW4gbWFpbi1uYXZfX3RvZ2dsZS0tY29sb3JzKCRjb2xvcjogJHByaW1hcnktY29sb3IsICRiYWNrZHJvcDogJG5hdi10b2dnbGVyLWJhY2tkcm9wLCAkaG92ZXItYmc6ICRuYXYtdG9nZ2xlci1ob3Zlci1iZywgJGhvdmVyLWNvbG9yOiAkcHJpbWFyeS1jb2xvcil7XG4gICAgJixcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbG9yOiByZ2JhKGFjY2Vzc2libGUtbHVtaW5hbmNlKCRjb2xvciwgJGJhY2tkcm9wKSwgMC45KSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgICYudG9nZ2xlZDpiZWZvcmUge1xuICAgICAgICBjb2xvcjogcmdiYShhY2Nlc3NpYmxlLWx1bWluYW5jZShpZihsdW1hKCRiYWNrZHJvcCkgPCA1MCwgIzAwMCwgI2ZmZiksICRiYWNrZHJvcCksIC43KSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgYmFja2dyb3VuZDogJGhvdmVyLWJnO1xuXG4gICAgICAgICYsICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZShyZ2JhKGFjY2Vzc2libGUtbHVtaW5hbmNlKCRob3Zlci1jb2xvciwgJGJhY2tkcm9wKSwgMC45KSwgJGhvdmVyLWJnKSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubWFpbi1uYXZfX3RvZ2dsZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBoZWlnaHQ6ICRuYXYtdG9nZ2xlci1zaXplO1xuICAgIHdpZHRoOiAkbmF2LXRvZ2dsZXItc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogJG5hdi10b2dnbGVyLXNpemU7XG5cbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgMzAwbXMgZWFzZSk7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgaGVpZ2h0OiAkbmF2LXRvZ2dsZXItc2l6ZTtcbiAgICAgICAgd2lkdGg6ICRuYXYtdG9nZ2xlci1zaXplO1xuICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdCAhaW1wb3J0YW50O1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1haW4tbmF2X190b2dnbGUtLWNvbG9ycygpO1xuXG4gICAgLmZvb3Rlci1iZyAmIHtcbiAgICAgICAgQGluY2x1ZGUgbWFpbi1uYXZfX3RvZ2dsZS0tY29sb3JzKCRjb2xvcjogJHByaW1hcnktY29sb3IsICRiYWNrZHJvcDogJGZvb3Rlci1iZywgJGhvdmVyLWJnOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkbmF2LXRvZ2dsZXItaG92ZXItYmcsICRmb290ZXItYmcsIDEuMSkpO1xuICAgIH1cbn1cbi5jdXJyZW50IHtcbiAgICA+IC5tYWluLW5hdl9fdG9nZ2xlIHtcbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgY29sb3I6IHJnYmEoYWNjZXNzaWJsZS1sdW1pbmFuY2UoI2ZmZiwgJG5hdi10b2dnbGVyLWN1cnJlbnQtYmFja2Ryb3ApLCAwLjc1KSAhaW1wb3J0YW50O1xuXG4gICAgICAgICAgICAuZm9vdGVyLWJnICYge1xuICAgICAgICAgICAgICAgIGNvbG9yOiByZ2JhKGFjY2Vzc2libGUtbHVtaW5hbmNlKCNmZmYsICRmb290ZXItYmcpLCAwLjc1KSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpZihsdW1hKCRuYXYtdG9nZ2xlci1jdXJyZW50LWJhY2tkcm9wKSA8IDUwLCBsaWdodGVuKCRuYXYtdG9nZ2xlci1jdXJyZW50LWJhY2tkcm9wLCAxMCUpLCBkYXJrZW4oJG5hdi10b2dnbGVyLWN1cnJlbnQtYmFja2Ryb3AsIDEwJSkpO1xuXG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29sb3I6IHJnYmEoYWNjZXNzaWJsZS1sdW1pbmFuY2UoI2ZmZiwgJG5hdi10b2dnbGVyLWN1cnJlbnQtYmFja2Ryb3ApLCAxKSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyBTdHlsaW5nIGZvciBpbml0aWFsaXppbmcgdGhlIG1lbnUgd2l0aCBzdWJtZW51cyBvcGVuXG4uYmxvY2stbmF2X19pdGVtIHtcbiAgICAmLnNlbGVjdGVkLnBhcmVudCxcbiAgICAmLmN1cnJlbnQucGFyZW50IHtcbiAgICAgICAgLy8gUm90YXRlIHRoZSBjcm9zc1xuICAgICAgICA+IC5tYWluLW5hdl9fdG9nZ2xlOmJlZm9yZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0ocm90YXRlKDEzNWRlZykpO1xuICAgICAgICB9XG5cbiAgICAgICAgPiAubWFpbi1uYXZfX3RvZ2dsZS50b2dnbGVkOmJlZm9yZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0ocm90YXRlKDBkZWcpKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1lZGlhICN7JG92ZXJyaWRlLWlubGluZS1wb3MtYXR9IHtcbiAgICAvLyBPdmVycmlkZSBpbmxpbmUgcG9zaXRpb25pbmcgZG9uZSBieSBKU1xuICAgIC5tYWluLW5hdl9faXRlbS5wYXJlbnQgPiBhLmhpZ2hsaWdodGVkIH4gdWwge1xuICAgICAgICBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50O1xuICAgICAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuXG5AaWYgJG9mZi1jYW52YXMtb24tbWVkaXVtIHtcbiAgICAvKiBJbmNyZWFzZSBwYWRkaW5nIGluIG1lbnUgaXRlbXMgb24gbWVkaXVtIHNjcmVlbnMgKi9cbiAgICBAbWVkaWEgI3skbWVkaXVtLW9ubHl9IHtcbiAgICAgICAgLm1haW4tbmF2X19saXN0IHtcbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMS41cmVtO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5tYWluLW5hdl9fc3VibWVudSB7XG4gICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDIuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5tYWluLW5hdl9fY2xvc2UtYnRuIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMS41cmVtO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AbWVkaWEgI3skbWVudS1ob3Jpem9udGFsLWJyZWFrcG9pbnR9IHtcblxuICAgIC5tYWluLW5hdl9fZnJvbnRwYWdlLWxpbmsgLmljb24taG9tZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMjApO1xuICAgIH1cblxuICAgIC5tYWluLW5hdl9faXRlbSB7XG5cbiAgICAgICAgYSB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJG5hdi1ob3Jpem9udGFsLXNpZGUtcGFkZGluZztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRuYXYtaG9yaXpvbnRhbC1zaWRlLXBhZGRpbmc7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICAgICAgICAgICAgY29sb3I6ICRtZW51LW5hdmlnYXRpb24tbGluay1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEZpcnN0IGxldmVsIG1lbnUgaXRlbXNcbiAgICAgICAgJi5sZXZlbC0wIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgICAgICB6LWluZGV4OiAxMDE7XG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAxMDI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICRuYXYtZmlyc3QtbGV2ZWwtc3BhY2luZztcblxuICAgICAgICAgICAgQGlmICRuYXYtZmlyc3QtbGV2ZWwtc3BhY2luZyA+IDAge1xuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYgPiBhIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRuYXYtZmlyc3QtbGV2ZWwtc2lkZS1wYWRkaW5nO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRuYXYtZmlyc3QtbGV2ZWwtc2lkZS1wYWRkaW5nO1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkbmF2LWxpbmUtaGVpZ2h0O1xuICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkbmF2LWZpcnN0LWxldmVsLWZvbnQtd2VpZ2h0O1xuICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiAkbmF2LWZpcnN0LWxldmVsLXRleHQtdHJhbnNmb3JtO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJG5hdi1maXJzdC1sZXZlbC1mb250LXNpemU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYucGFyZW50ID4gYTphZnRlciB7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRuYXYtbGluZS1oZWlnaHQ7XG4gICAgICAgICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTaG93IHN1Ym1lbnUgb24gaGlnaGxpZ2h0aW5nXG4gICAgICAgICYucGFyZW50ID4gYS5oaWdobGlnaHRlZCB+IHVsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMTVlbTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMjBlbTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDFweCAwIDAgJG5hdi1zdWJtZW51LWJvcmRlci1jb2xvciwgMCAxcHggMCAkbmF2LXN1Ym1lbnUtYm9yZGVyLWNvbG9yLCAtMXB4IDAgMCAkbmF2LXN1Ym1lbnUtYm9yZGVyLWNvbG9yLCAwIC0xcHggMCAkbmF2LXN1Ym1lbnUtYm9yZGVyLWNvbG9yO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRuYXYtc3VibWVudS1ib3JkZXItY29sb3I7IC8vIE5vdCBhbGwgYnJvd3NlcnMgc3VwcG9ydCB0aGlzXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBPdmVycmlkZSBzbWFsbCBzY3JlZW4gc2V0dGluZ3NcbiAgICAubmF2LW9mZmNhbnZhcyB7XG4gICAgICAgIGxpIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogbm9uZTtcblxuICAgICAgICAgICAgbGkge1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICosXG4gICAgICAgICAgICAqOmJlZm9yZSxcbiAgICAgICAgICAgICo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJveC1zaXppbmcoY29udGVudC1ib3gpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm1haW4tbmF2X19jbG9zZS1idG4ge1xuICAgICAgICBAaW5jbHVkZSBhY2Nlc3NpYmxlLWhpZGUoKTtcbiAgICB9XG5cbiAgICAvLyBIaWRlIHN1Ym1lbnVzIGJ5IGRlZmF1bHRcbiAgICAubWFpbi1uYXZfX3N1Ym1lbnUge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogLTk5OTk5OXB4O1xuICAgICAgICBsZWZ0OiAtODAwcHg7IC8vIEBUT0RPIEludmVzdGlnYXRlIGlmIHRoaXMgaXMgdGhlIGN1bHByaXQgYmVoaW5kIGEgZmxhc2ggYnVnIG9uIENocm9tZSB3aGVyZSB0aGUgc3VibWVudSBqdXN0IGRpc3NhcHBlYXJzIHJhbmRvbWx5XG4gICAgICAgIGJhY2tncm91bmQ6ICRtZW51LWRyb3Bkb3duLWJnO1xuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgY29sb3I6ICRtZW51LWRyb3Bkb3duLWxpbmstY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubWFpbi1uYXZfX2l0ZW0ge1xuICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRuYXYtc3VibWVudS1ib3JkZXItY29sb3I7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBPbiBtZW51IGxldmVsIDEgd2UgdXNlIHBsdXMgc2lnbiBhcyBwYXJlbnQgaW5kaWNhdG9yLCBzaW5jZSBsZXZlbCAyXG4gICAgICogc3VibWVudXMgbWF5IHBvcCB1cCBib3RoIHRvIHRoZSBsZWZ0IGFuZCB0byB0aGUgcmlnaHRcbiAgICAgKi9cbiAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCA1IHtcbiAgICAgICAgIC5tYWluLW5hdl9faXRlbS5sZXZlbC0jeyRpfS5wYXJlbnQge1xuICAgICAgICAgICAgICYgPiBhIHtcbiAgICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAkaWNvbi12YXItYWRkO1xuICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxMik7XG4gICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKHRyYW5zZm9ybSwgMzAwbXMgZWFzZSk7XG4gICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAuNjtcbiAgICAgICAgICAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgJi5oaWdobGlnaHRlZDphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0ocm90YXRlKDEzNWRlZykpO1xuICAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgIH1cbiAgICAgICAgIH1cbiBcdH1cblxuXG4gICAgLm1haW4tbmF2X19zdWJtZW51LmxldmVsLTIgYSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMXJlbTtcblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxufSIsIiRpMThuLXBvcHVwLXBvc2l0aW9uOiByaWdodCAhZGVmYXVsdDtcblxuLnNldHRpbmdfX2Zvcm0ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAxMDA7XG5cbiAgICBpLmZhIHtcbiAgICAgICAgd2lkdGg6IC45cmVtO1xuICAgIH1cbn1cblxuLnNldHRpbmdfX2J1dHRvbjpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbn1cblxuLnNldHRpbmdfX3NlbGVjdCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgb3BhY2l0eTogLjM7XG4gICAgd2lkdGg6IDE1cmVtO1xuICAgIHotaW5kZXg6IDI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLWNvbG9yO1xuICAgIHBhZGRpbmc6IDFyZW07XG4gICAgQGluY2x1ZGUgdHJhbnNsYXRlM2QoaWYoJGkxOG4tcG9wdXAtcG9zaXRpb24gPT0gcmlnaHQsIDAsIC05MiUpLCAtMXJlbSwgMCwgc2NhbGUzZCguOSwgLjksIC45KSk7XG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDE1MG1zLCAtd2Via2l0LXRyYW5zZm9ybSAxNTBtcyBlYXNlO1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbi1kZWxheTogZWFzZSwgMHM7XG4gICAgLW1vei10cmFuc2l0aW9uOiBvcGFjaXR5IDE1MG1zIGVhc2UsIC1tb3otdHJhbnNmb3JtIDE1MG1zIGVhc2U7XG4gICAgLW8tdHJhbnNpdGlvbjogb3BhY2l0eSAxNTBtcyBlYXNlLCAtby10cmFuc2Zvcm0gMTUwbXMgZWFzZTtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE1MG1zIGVhc2UsIHRyYW5zZm9ybSAxNTBtcyBlYXNlO1xuXG4gICAgJiA+ICoge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cblxuICAgIHNlbGVjdCB7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICB3aWR0aDogNjUlO1xuICAgIH1cblxuICAgIGlucHV0W3R5cGU9c3VibWl0XSB7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgd2lkdGg6IDMwJTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IHJlbS1jYWxjKDM3KTtcbiAgICAgICAgaGVpZ2h0OiByZW0tY2FsYygzNyk7XG4gICAgICAgIHBhZGRpbmc6IDAgLjVyZW07XG4gICAgfVxufVxuXG4jbGFuZ3VhZ2Utc2hvdyxcbiNjdXJyZW5jeS1zaG93IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbn1cblxuI2xhbmd1YWdlLWNsb3NlLFxuI2N1cnJlbmN5LWNsb3NlIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4jbGFuZ3VhZ2Utc2hvdzp0YXJnZXQsXG4jY3VycmVuY3ktc2hvdzp0YXJnZXQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4jbGFuZ3VhZ2Utc2hvdzp0YXJnZXQgKyAjbGFuZ3VhZ2UtY2xvc2UsXG4jY3VycmVuY3ktc2hvdzp0YXJnZXQgKyAjY3VycmVuY3ktY2xvc2Uge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbiNsYW5ndWFnZS1jbG9zZTp0YXJnZXQsXG4jY3VycmVuY3ktY2xvc2U6dGFyZ2V0IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbn1cblxuI2xhbmd1YWdlLWNsb3NlOnRhcmdldCArICNsYW5ndWFnZS1zaG93LFxuI2N1cnJlbmN5LWNsb3NlOnRhcmdldCArICNjdXJyZW5jeS1zaG93IHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4jbGFuZ3VhZ2UtY2xvc2U6dGFyZ2V0IH4gI2xhbmd1YWdlLFxuI2N1cnJlbmN5LWNsb3NlOnRhcmdldCB+ICNjdXJyZW5jeSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgb3BhY2l0eTogMTtcbiAgICBAaW5jbHVkZSB0cmFuc2xhdGUzZChpZigkaTE4bi1wb3B1cC1wb3NpdGlvbiA9PSByaWdodCwgMCwgLTkwJSksIDAsIDAsIHNjYWxlM2QoMSwgMSwgMSkpO1xufVxuXG4uanMtbmF2ICNsYW5ndWFnZSxcbi5qcy1uYXYgI2N1cnJlbmN5IHtcbiAgICBkaXNwbGF5OiBub25lO1xufSIsIi8vIFF1aWNrZml4XG5AaW1wb3J0IFwicXVpY2tmaXgvYmxvY2tzL3BhZ2luYXRpb25cIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9jb21wb25lbnRzL2hvdmVyZnhcIjtcblxuLy8gUGlvbmVlciBjb21wb25lbnRzXG5AaW1wb3J0IFwicXVpY2tmaXgvbGVnYWN5L2FsZXJ0LWJveGVzXCI7XG5AaW1wb3J0IFwicXVpY2tmaXgvbGVnYWN5L2FuaW1hdGlvblwiO1xuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS9ibG9jay1pbWFnZS1ncmlkXCI7XG5AaW1wb3J0IFwicXVpY2tmaXgvbGVnYWN5L2VxdWFsLWhlaWdodC1jb2x1bW5zXCI7XG5AaW1wb3J0IFwicXVpY2tmaXgvbGVnYWN5L2Jsb2Nrcy1iYW5uZXJzXCI7XG5AaW1wb3J0IFwicXVpY2tmaXgvbGVnYWN5L2JvcmRlcmVkXCI7XG5AaW1wb3J0IFwicXVpY2tmaXgvbGVnYWN5L2J1dHRvbnNcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvYnhzbGlkZXJcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvY2FydF9idXR0b25cIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvY2hlY2tvdXRcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvY2hlY2tvdXRfa2NvXCI7XG5AaW1wb3J0IFwicXVpY2tmaXgvbGVnYWN5L2NvbW1lbnRzXCI7XG5AaW1wb3J0IFwicXVpY2tmaXgvbGVnYWN5L2Nvb2tpZS1ub3RpY2VcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvZmFuY3lib3hcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvZm9ybXNcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kva2xhcm5hXCI7XG5AaW1wb3J0IFwicXVpY2tmaXgvbGVnYWN5L3BhZ2VzXCI7XG5AaW1wb3J0IFwicXVpY2tmaXgvbGVnYWN5L3Byb2R1Y3RcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvcHJvZHVjdC1zZWFyY2hcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvcmF0aW5nXCI7XG5AaW1wb3J0IFwicXVpY2tmaXgvbGVnYWN5L3JlYWRvbi1pY29uLWNlbnRlcmVkLW9uLWhvdmVyXCI7XG5AaW1wb3J0IFwicXVpY2tmaXgvbGVnYWN5L3NsaWRlclwiO1xuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS9zcGlubmVyXCI7XG5AaW1wb3J0IFwicXVpY2tmaXgvbGVnYWN5L3RhYmxlc1wiO1xuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS90YWJzXCI7XG5AaW1wb3J0IFwicXVpY2tmaXgvbGVnYWN5L3RoZW1lZC1uYXZpZ2F0aW9uXCI7XG5AaW1wb3J0IFwicXVpY2tmaXgvbGVnYWN5L3R5cG9ncmFwaHlcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvc2VhcmNoLWJveC0tY29tcGFjdFwiO1xuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS9jaGVja291dC1jYXJ0LS1jb21wYWN0XCI7XG5cbi8vIENvbW1vbiBzdHVmZiBmb3IgYWxsIHRoZW1lc1xuQGltcG9ydCBcInF1aWNrZml4L2NvbW1vblwiO1xuXG4vLyBDdXN0b21cbkBpbXBvcnQgXCJjb21wb25lbnRzL3NvY2lhbC1idXR0b25zXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9ibG9ja3NcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL3NwbGl0bWVudVwiOyIsIkBpbXBvcnQgXCJib3VyYm9uL2NzczMvZmlsdGVyXCI7XG5AaW1wb3J0IFwiYm91cmJvbi9jc3MzL3RyYW5zaXRpb25cIjtcblxuQGltcG9ydCBcImhvdmVyZngvYmFzZVwiO1xuQGltcG9ydCBcImhvdmVyZngvYmx1clwiO1xuQGltcG9ydCBcImhvdmVyZngvY292ZXJcIjtcbkBpbXBvcnQgXCJob3ZlcmZ4L2ZpZ2NhcHRpb25cIjtcbkBpbXBvcnQgXCJob3ZlcmZ4L2xldml0YXRlXCI7XG5AaW1wb3J0IFwiaG92ZXJmeC9zaG93dGl0bGVcIjtcbkBpbXBvcnQgXCJob3ZlcmZ4L3RpbHRcIjtcblxuYVtjbGFzc149XCJoZngtLVwiXSxcbmFbY2xhc3MqPVwiIGhmeC0tXCJdIHtcblx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xufSIsIiVoZngtYmFzZSB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0ZGlzcGxheTogYmxvY2s7XG5cdHdpZHRoOiAxMDAlO1xuXHRoZWlnaHQ6IDEwMCU7XG59IiwiJGhmeC1ibHVyLXZhbHVlOiAycHggIWRlZmF1bHQ7XG5cbi5oZngtLWJsdXIge1xuXHQmOmhvdmVyIGltZyB7XG5cdFx0QGluY2x1ZGUgZmlsdGVyKGJsdXIoJGhmeC1ibHVyLXZhbHVlKSk7XG5cdH1cbn0iLCJAaWYgdmFyaWFibGUtZXhpc3RzKFwiaWNvbi12YXItc2VhcmNoXCIpID09IGZhbHNlIHtcblx0QGVycm9yIFwiTWlzc2luZyBpY29uIHZhcmlhYmxlXCI7IFxufVxuXG5AaWYgbWl4aW4tZXhpc3RzKFwiaWNvblwiKSA9PSBmYWxzZSB7XG5cdEBlcnJvciBcIk1pc3NpbmcgaWNvbiBtaXhpblwiOyBcdFxufVxuXG4kaGZ4LWljb24tc2l6ZTogcmVtLWNhbGMoMzApICFkZWZhdWx0O1xuXG4uaGZ4LS1jb3Zlci0tbGlnaHQsXG4uaGZ4LS1jb3Zlci0tZGFyayB7XG5cdEBleHRlbmQgJWhmeC1iYXNlO1xuXG5cdCY6OmJlZm9yZSxcblx0Jjo6YWZ0ZXIge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcdFx0XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdG9wYWNpdHk6IDA7XG5cdFx0ei1pbmRleDogMTtcblx0XHRAaW5jbHVkZSB0cmFuc2l0aW9uKG9wYWNpdHkgMC4zcyBlYXNlKTtcblx0fVxuXG5cdCY6OmJlZm9yZSB7XG5cdFx0Y29udGVudDogXCJcIjtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCNmZmYsIC42NSk7XG5cdH1cblxuXHQmOjphZnRlciB7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdFx0QGluY2x1ZGUgaWNvbigkaWNvbi12YXItc2VhcmNoKTtcblx0XHRmb250LXNpemU6ICRoZngtaWNvbi1zaXplO1xuXHRcdGxpbmUtaGVpZ2h0OiAxO1xuXHRcdGNvbG9yOiByZ2JhKCMwMDAsIDAuNjUpO1xuXHRcdHRvcDogNTAlO1xuXHRcdGxlZnQ6IDA7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdG1hcmdpbi10b3A6ICRoZngtaWNvbi1zaXplLy0yO1xuXHRcdGhlaWdodDogMWVtO1xuXHRcdHotaW5kZXg6IDI7XG5cdH1cblxuXHQmOmhvdmVyIHtcblx0XHQmOjpiZWZvcmUsXG5cdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0b3BhY2l0eTogMTtcblx0XHR9XG5cdH1cbn1cblxuLmhmeC0tY292ZXItLWRhcmsge1xuXHQmOjpiZWZvcmUge1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHJnYmEoIzAwMCwgLjY1KTtcblx0fVxuXG5cdCY6OmFmdGVyIHtcblx0XHRjb2xvcjogcmdiYSgjZmZmLCAwLjc1KTtcblx0fVxufSIsIiRoZngtZmlnY2FwdGlvbi1mb250LXNpemU6IHJlbS1jYWxjKDI1KSAhZGVmYXVsdDtcbiRoZngtZmlnY2FwdGlvbi10ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlICFkZWZhdWx0O1xuJGhmeC1maWdjYXB0aW9uLWZvbnQtd2VpZ2h0OiBib2xkICFkZWZhdWx0O1xuJGhmeC1maWdjYXB0aW9uLXRyYWlsZXItc3ltYm9sOiBmYWxzZSAhZGVmYXVsdDtcbiRoZngtZmlnY2FwdGlvbi1saWdodC1jb2xvcjogcmdiYSgjZmZmLCAuOSkgIWRlZmF1bHQ7XG4kaGZ4LWZpZ2NhcHRpb24tZGFyay1jb2xvcjogcmdiYSgjMDAwLCAuOSkgIWRlZmF1bHQ7XG5cbi5oZngtLWZpZ2NhcHRpb24ge1xuICAgIG1hcmdpbjogMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZm9udC1zaXplOiAkaGZ4LWZpZ2NhcHRpb24tZm9udC1zaXplO1xuICAgIHRleHQtdHJhbnNmb3JtOiAkaGZ4LWZpZ2NhcHRpb24tdGV4dC10cmFuc2Zvcm07XG4gICAgZm9udC13ZWlnaHQ6ICRoZngtZmlnY2FwdGlvbi1mb250LXdlaWdodDtcbiAgICBsaW5lLWhlaWdodDogMTtcblxuICAgIGZpZ2NhcHRpb24ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHBhZGRpbmc6IC41ZW07XG4gICAgICAgIHotaW5kZXg6MjtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbiAob3BhY2l0eSAuM3MgZWFzZS1pbi1vdXQsIGNvbG9yIC4zcyBlYXNlLWluLW91dCk7XG5cbiAgICAgICAgQGlmICRoZngtZmlnY2FwdGlvbi10cmFpbGVyLXN5bWJvbCAhPSBmYWxzZSB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiI3skaGZ4LWZpZ2NhcHRpb24tdHJhaWxlci1zeW1ib2x9XCI7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAuMjVlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5oZngtLWZpZ2NhcHRpb24tLWJvdHRvbS1sZWZ0IHtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgIH1cblxuICAgIC5oZngtLWZpZ2NhcHRpb24tLWJvdHRvbS1yaWdodCB7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgfVxuXG4gICAgLmhmeC0tZmlnY2FwdGlvbi0tdG9wLWxlZnQge1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgfVxuXG4gICAgLmhmeC0tZmlnY2FwdGlvbi0tdG9wLXJpZ2h0IHtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICB9XG5cbiAgICAuYmFja2dyb3VuZC0tbGlnaHQge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICBjb2xvcjogJGhmeC1maWdjYXB0aW9uLWRhcmstY29sb3I7XG5cbiAgICAgICAgLmhmeC0tY292ZXItLWRhcms6aG92ZXIgJixcbiAgICAgICAgLmhmeC0tY292ZXItLWRhcms6Zm9jdXMgJiB7XG4gICAgICAgICAgICBjb2xvcjogJGhmeC1maWdjYXB0aW9uLWxpZ2h0LWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmJhY2tncm91bmQtLWRhcmsge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICBjb2xvcjogJGhmeC1maWdjYXB0aW9uLWxpZ2h0LWNvbG9yO1xuXG4gICAgICAgIC5oZngtLWNvdmVyLS1saWdodDpob3ZlciAmLFxuICAgICAgICAuaGZ4LS1jb3Zlci0tbGlnaHQ6Zm9jdXMgJiB7XG4gICAgICAgICAgICBjb2xvcjogJGhmeC1maWdjYXB0aW9uLWRhcmstY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG59IiwiLmhmeC0tbGV2aXRhdGUge1xuXHRpbWcge1xuXHRcdEBpbmNsdWRlIHRyYW5zaXRpb24odHJhbnNmb3JtIC4zcyBlYXNlLCBib3gtc2hhZG93IC4zcyBlYXNlKTtcblx0fVxuXG5cdCY6aG92ZXIge1xuXHRcdGltZyB7XG5cdFx0XHRAaW5jbHVkZSB0cmFuc2Zvcm0oc2NhbGUoMS4xKSB0cmFuc2xhdGV6KDApKTtcblx0XHRcdGJveC1zaGFkb3c6IDAgM3B4IDEwcHggcmdiYSgjMDAwLCAuMjUpO1xuXHRcdH1cblx0fVxufSIsIkBpZiB2YXJpYWJsZS1leGlzdHMoXCJjb250ZW50LWJnXCIpID09IGZhbHNlIHtcblx0QGVycm9yIFwiTWlzc2luZyBjb250ZW50LWJnIHZhcmlhYmxlXCI7IFxufVxuXG5cbi5oZngtLXNob3ctdGl0bGUge1xuXHRAZXh0ZW5kICVoZngtYmFzZTtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblxuXHRpbWcge1xuXHRcdG9wYWNpdHk6IDE7XG5cdFx0QGluY2x1ZGUgdHJhbnNpdGlvbihvcGFjaXR5IDAuMjVzIGVhc2UpO1xuXHR9XG5cblx0JjphZnRlciB7XG5cdFx0Y29udGVudDogYXR0cih0aXRsZSk7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgjMzMzLCAkY29udGVudC1iZywgNik7XG5cdFx0Ym90dG9tOiAtMTAwJTtcblx0XHRiYWNrZ3JvdW5kOiByZ2JhKCRjb250ZW50LWJnLCAwLjc1KTtcblx0XHRsZWZ0OiAwO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdHBhZGRpbmc6IDFyZW07XG5cdFx0QGluY2x1ZGUgdHJhbnNpdGlvbihib3R0b20gMC4yNXMgZWFzZSk7XG5cdH1cblxuXHQmOmhvdmVyIHtcblx0XHRpbWcge1xuXHRcdFx0b3BhY2l0eTogMC4zO1xuXHRcdH1cblxuXHRcdCY6YWZ0ZXIge1xuXHRcdFx0Ym90dG9tOiAwO1xuXHRcdH1cblx0fVxufSIsIiRoZngtdGlsdC1hbmdsZTogNWRlZyAhZGVmYXVsdDtcblxuLmhmeC0tdGlsdC0tcmlnaHQsXG4uaGZ4LS10aWx0LS1sZWZ0IHtcblx0QGV4dGVuZCAlaGZ4LWJhc2U7XG5cdG92ZXJmbG93OiB2aXNpYmxlO1xuXG5cdGltZyB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdEBpbmNsdWRlIHRyYW5zaXRpb24odHJhbnNmb3JtIDAuMnMgZWFzZSk7XG5cdH1cbn1cblxuLmhmeC0tdGlsdC0tcmlnaHQge1xuXHQmOmhvdmVyIHtcblx0XHRpbWcge1xuXHRcdFx0QGluY2x1ZGUgdHJhbnNmb3JtKHJvdGF0ZSgkaGZ4LXRpbHQtYW5nbGUpIHRyYW5zbGF0ZXooMCkpO1xuXHRcdH1cblx0fVxufVxuXG4uaGZ4LS10aWx0LS1sZWZ0IHtcblx0Jjpob3ZlciB7XG5cdFx0aW1nIHtcblx0XHRcdEBpbmNsdWRlIHRyYW5zZm9ybShyb3RhdGUoLSRoZngtdGlsdC1hbmdsZSkgdHJhbnNsYXRleigwKSk7XG5cdFx0fVxuXHR9XG59XG4iLCIkYWxlcnQtYm94LWZvb3Rlci1zaXplOiAkdG91Y2gtZnJpZW5kbHktc2l6ZSAhZGVmYXVsdDtcblxuQG1peGluIGFsZXJ0LXN0eWxlKCRjb2xvcikge1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3JkZXItbGVmdDogJGFsZXJ0LXNpZGUtYm9yZGVyLXNpemUgc29saWQgJGNvbG9yO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XG59XG5cbi8vIFVzaW5nIGZvdW5kYXRpb24ncyBhbGVydCBib3hlcyBzdHlsaW5nXG4uYWxlcnQtYm94IHtcbiAgICBAaW5jbHVkZSBhbGVydDtcbiAgICBsaW5lLWhlaWdodDogJGFsZXJ0LWxpbmUtaGVpZ2h0O1xuICAgIGJveC1zaGFkb3c6IDJweCAycHggNHB4IHJnYmEoMCwwLDAsLjQpO1xuICAgIFxuICAgICYuYWxlcnQtYm94LS13aXRoY2xvc2Uge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAjeyRhbGVydC1wYWRkaW5nLW9wcG9zaXRlLWRpcmVjdGlvbiAqIDEuNX07XG4gICAgfVxuICBcbiAgICA+IHA6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgLmNsb3NlICAgICAgeyBAaW5jbHVkZSBhbGVydC1jbG9zZTsgfVxuICAgICYucmFkaXVzICAgIHsgQGluY2x1ZGUgcmFkaXVzKCRhbGVydC1yYWRpdXMpOyB9XG4gICAgJi5yb3VuZCAgICAgeyBAaW5jbHVkZSByYWRpdXMoJGdsb2JhbC1yb3VuZGVkKTsgfVxuXG4gICAgJi5zdWNjZXNzLFxuICAgICYuYWxlcnQtc3VjY2VzcyAgIHsgQGluY2x1ZGUgYWxlcnQtc3R5bGUoJHN1Y2Nlc3MtY29sb3IpOyB9XG4gICAgJi5hbGVydCxcbiAgICAmLmFsZXJ0LWFsZXJ0ICAgICB7IEBpbmNsdWRlIGFsZXJ0LXN0eWxlKCRhbGVydC1jb2xvcik7IH1cbiAgICAmLnNlY29uZGFyeSxcbiAgICAmLmFsZXJ0LXNlY29uZGFyeSB7IEBpbmNsdWRlIGFsZXJ0LXN0eWxlKCRzZWNvbmRhcnktY29sb3IpOyB9XG4gICAgJi53YXJuaW5nLFxuICAgICYuYWxlcnQtd2FybmluZyAgIHsgQGluY2x1ZGUgYWxlcnQtc3R5bGUoJHdhcm5pbmctY29sb3IpOyB9XG4gICAgJi5pbmZvLFxuICAgICYuYWxlcnQtaW5mbyAgICAgIHsgQGluY2x1ZGUgYWxlcnQtc3R5bGUoJGluZm8tY29sb3IpOyB9XG4gICAgJi5hbGVydC1jbG9zZSAgICAgeyBvcGFjaXR5OiAwfVxuXG4gICAgJjpmb2N1cyB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgfVxufVxuXG4uYWxlcnQtYm94X19pY29uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygxNik7XG4gICAgdG9wOiAkYWxlcnQtcGFkZGluZy10b3A7XG4gICAgbGVmdDogLSgkYWxlcnQtc2lkZS1ib3JkZXItc2l6ZS8yICsgLjVyZW0pO1xuICAgIGxpbmUtaGVpZ2h0OiAkYWxlcnQtbGluZS1oZWlnaHQ7XG4gICAgaGVpZ2h0OiAkYWxlcnQtbGluZS1oZWlnaHQgKiAxcmVtO1xuICAgIGNvbG9yOiAjZmZmO1xufVxuXG4uYWxlcnQtYm94X19tZXNzYWdlLFxuLmFsZXJ0LWJveF9fbWVzc2FnZSA+ICoge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogJGFsZXJ0LWZvbnQtc2l6ZTtcbn1cbi5hbGVydC1ib3hfX21lc3NhZ2Ugc3Ryb25nIHtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLmFsZXJ0LWJveF9fbWVzc2FnZSA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLmFsZXJ0LWJveC0td2l0aGZvb3RlciB7XG4gICAgLmFsZXJ0LWJveF9fbWVzc2FnZSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRhbGVydC1ib3gtZm9vdGVyLXNpemU7XG4gICAgfVxufVxuXG4jY2FydC1ub3RpZnkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5hbGVydC1ib3hfX3Byb2dyZXNzYmFyIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4uYWxlcnQtYm94X19mb290ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcmlnaHQ6IDA7XG4gICAgaGVpZ2h0OiAkYWxlcnQtYm94LWZvb3Rlci1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiAkYWxlcnQtYm94LWZvb3Rlci1zaXplO1xuXG4gICAgYSB7XG4gICAgICAgIHBhZGRpbmc6IDAgJGFsZXJ0LXBhZGRpbmctZGVmYXVsdC1mbG9hdCAwICRhbGVydC1wYWRkaW5nLWRlZmF1bHQtZmxvYXQ7XG4gICAgICAgIGNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuXG4gICAgICAgICYubGVmdCAuZmEge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogLjNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLnJpZ2h0IC5mYSB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IC4zcmVtO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgLmFsZXJ0LWJveCB7XG4gICAgICAgIG1heC13aWR0aDogNjAlO1xuICAgIH1cbn1cblxuQG1lZGlhICN7JGxhcmdlLXVwfSB7XG4gICAgLmFsZXJ0LWJveCB7XG4gICAgICAgIG1heC13aWR0aDogNDAlO1xuICAgIH1cbn1cblxuQG1lZGlhICN7JHhsYXJnZS11cH0ge1xuICAgIC5hbGVydC1ib3gge1xuICAgICAgICBtYXgtd2lkdGg6IDMwJTtcbiAgICB9XG59XG4iLCIvKipcbiAqIEJvcnJvd2VkIHBhcnRzIG9mIGh0dHBzOi8vZ2l0aHViLmNvbS9kYW5lZGVuL2FuaW1hdGUuY3NzXG4gKi9cblxuLmFuaW1hdGVkIHtcbiAgICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tZHVyYXRpb24sIDFzLCB3ZWJraXQgc3BlYyk7XG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWZpbGwtbW9kZSwgYm90aCwgd2Via2l0IHNwZWMpO1xufVxuXG4uYW5pbWF0ZSxcbi5ncm93bC1hbmltYXRlZCB7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgLjRzIGVhc2UtaW4tb3V0KTtcbn1cblxuQGluY2x1ZGUga2V5ZnJhbWVzKGZhZGVJbkRvd24pIHtcbiAgICAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zbGF0ZTNkKDAsIC0xMDAlLCAwKTtcbiAgICB9XG5cbiAgICAxMDAlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNmb3JtLCBub25lLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG4gICAgfVxufVxuXG4uZmFkZUluRG93biB7XG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLW5hbWUsIGZhZGVJbkRvd24sIHdlYmtpdCBzcGVjKTtcbn1cblxuQGluY2x1ZGUga2V5ZnJhbWVzKGZhZGVPdXRVcCkge1xuICAgIDAlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAxMDAlIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApO1xuICAgIH1cbn1cblxuLmZhZGVPdXRVcCB7XG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLW5hbWUsIGZhZGVPdXRVcCwgd2Via2l0IHNwZWMpO1xufSIsIi5ibG9jay1pbWFnZS1ncmlkIHtcbiAgICBAaW5jbHVkZSBibG9jay1ncmlkKDMpO1xufSIsIi8vIEVxdWFsIGhlaWdodCBjb2x1bW4gZ3JpZCwgbWVkaWEgcXVlcnkgc2V0dGluZ3NcbiRlcXVhbC1jb2wtZ3JpZC1zbWFsbC1yYW5nZTogICAoMGVtLCAyOS45MzdlbSkgIWRlZmF1bHQ7XG4kZXF1YWwtY29sLWdyaWQtbWVkaXVtLXJhbmdlOiAgKDMwZW0sIDQ3LjkzN2VtKSAhZGVmYXVsdDtcbiRlcXVhbC1jb2wtZ3JpZC1sYXJnZS1yYW5nZTogICAoNDhlbSwgNjMuOTM3ZW0pICFkZWZhdWx0O1xuJGVxdWFsLWNvbC1ncmlkLXhsYXJnZS1yYW5nZTogICg2NGVtLCA5MGVtKSAhZGVmYXVsdDtcbiRlcXVhbC1jb2wtZ3JpZC14eGxhcmdlLXJhbmdlOiAgKDkwLjA2M2VtLCA5OTk5OTk5OWVtKSAhZGVmYXVsdDtcblxuJGVxdWFsLWNvbC1ncmlkLXNtYWxsLXVwOiAgICAgICRzY3JlZW4gIWRlZmF1bHQ7XG4kZXF1YWwtY29sLWdyaWQtc21hbGwtb25seTogICAgXCIjeyRzY3JlZW59IGFuZCAobWF4LXdpZHRoOiN7dXBwZXItYm91bmQoJGVxdWFsLWNvbC1ncmlkLXNtYWxsLXJhbmdlKX0pXCIgIWRlZmF1bHQ7XG4kZXF1YWwtY29sLWdyaWQtbWVkaXVtLXVwOiAgICAgXCIjeyRzY3JlZW59IGFuZCAobWluLXdpZHRoOiN7bG93ZXItYm91bmQoJGVxdWFsLWNvbC1ncmlkLW1lZGl1bS1yYW5nZSl9KVwiICFkZWZhdWx0O1xuJGVxdWFsLWNvbC1ncmlkLW1lZGl1bS1vbmx5OiAgIFwiI3skc2NyZWVufSBhbmQgKG1pbi13aWR0aDoje2xvd2VyLWJvdW5kKCRlcXVhbC1jb2wtZ3JpZC1tZWRpdW0tcmFuZ2UpfSkgYW5kIChtYXgtd2lkdGg6I3t1cHBlci1ib3VuZCgkZXF1YWwtY29sLWdyaWQtbWVkaXVtLXJhbmdlKX0pXCIgIWRlZmF1bHQ7XG4kZXF1YWwtY29sLWdyaWQtbGFyZ2UtdXA6ICAgICAgXCIjeyRzY3JlZW59IGFuZCAobWluLXdpZHRoOiN7bG93ZXItYm91bmQoJGVxdWFsLWNvbC1ncmlkLWxhcmdlLXJhbmdlKX0pXCIgIWRlZmF1bHQ7XG4kZXF1YWwtY29sLWdyaWQtbGFyZ2Utb25seTogICAgXCIjeyRzY3JlZW59IGFuZCAobWluLXdpZHRoOiN7bG93ZXItYm91bmQoJGVxdWFsLWNvbC1ncmlkLWxhcmdlLXJhbmdlKX0pIGFuZCAobWF4LXdpZHRoOiN7dXBwZXItYm91bmQoJGVxdWFsLWNvbC1ncmlkLWxhcmdlLXJhbmdlKX0pXCIgIWRlZmF1bHQ7XG4kZXF1YWwtY29sLWdyaWQteGxhcmdlLXVwOiAgICAgXCIjeyRzY3JlZW59IGFuZCAobWluLXdpZHRoOiN7bG93ZXItYm91bmQoJGVxdWFsLWNvbC1ncmlkLXhsYXJnZS1yYW5nZSl9KVwiICFkZWZhdWx0O1xuJGVxdWFsLWNvbC1ncmlkLXhsYXJnZS1vbmx5OiAgIFwiI3skc2NyZWVufSBhbmQgKG1pbi13aWR0aDoje2xvd2VyLWJvdW5kKCRlcXVhbC1jb2wtZ3JpZC14bGFyZ2UtcmFuZ2UpfSkgYW5kIChtYXgtd2lkdGg6I3t1cHBlci1ib3VuZCgkZXF1YWwtY29sLWdyaWQteGxhcmdlLXJhbmdlKX0pXCIgIWRlZmF1bHQ7XG4kZXF1YWwtY29sLWdyaWQteHhsYXJnZS11cDogICAgXCIjeyRzY3JlZW59IGFuZCAobWluLXdpZHRoOiN7bG93ZXItYm91bmQoJGVxdWFsLWNvbC1ncmlkLXh4bGFyZ2UtcmFuZ2UpfSlcIiAhZGVmYXVsdDtcbiRlcXVhbC1jb2wtZ3JpZC14eGxhcmdlLW9ubHk6ICBcIiN7JHNjcmVlbn0gYW5kIChtaW4td2lkdGg6I3tsb3dlci1ib3VuZCgkZXF1YWwtY29sLWdyaWQteHhsYXJnZS1yYW5nZSl9KSBhbmQgKG1heC13aWR0aDoje3VwcGVyLWJvdW5kKCRlcXVhbC1jb2wtZ3JpZC14eGxhcmdlLXJhbmdlKX0pXCIgIWRlZmF1bHQ7XG5cbi5lcXVhbC1oZWlnaHQtY29sdW1ucyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAuZmxleGJveCAmIHtcbiAgICAgICAgQGluY2x1ZGUgZGlzcGxheShmbGV4KTtcbiAgICAgICAgQGluY2x1ZGUgZmxleC13cmFwKHdyYXApO1xuICAgIH1cblxuICAgIFtjbGFzcyo9XCJjb2x1bW5cIl0rW2NsYXNzKj1cImNvbHVtblwiXTpsYXN0LWNoaWxkIHsgLy8gTmVnYXRlIHRoZSBmb3VuZGF0aW9uIGdyaWQgY3NzXG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgIH1cbn1cblxuLmVxdWFsLWhlaWdodC1jb2x1bW4ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgLmZsZXhib3ggJiB7XG4gICAgICAgIEBpbmNsdWRlIGRpc3BsYXkoZmxleCk7XG4gICAgfVxuXG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogJGNvbHVtbi1ndXR0ZXIvMjtcbn1cblxuLmVxdWFsLWhlaWdodC1jb2x1bW4taW5uZXJ3cmFwIHtcbiAgICBwYWRkaW5nOiAkZXF1YWwtY29sLWlubmVyLXBhZGRpbmc7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuXG4uZmxleGJveCxcbi5uby1qcyB7XG4gICAgLmVxdWFsLWhlaWdodC1jb2x1bW4taW5uZXJ3cmFwICB7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICB9XG59XG5cbi5lcXVhbC1oZWlnaHQtY29sdW1uX19pbWFnZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAyNTBweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWFyZ2luLWJvdHRvbTogLjc1cmVtO1xuXG4gICAgaW1nIHtcbiAgICAgICAgbWF4LWhlaWdodDogMjUwcHg7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG59XG5cbi5lcXVhbC1oZWlnaHQtY29sdW1uX19yZWFkb24ge1xuICAgIG1hcmdpbi1sZWZ0OiAtKCRjb2x1bW4tZ3V0dGVyLzIpO1xufVxuXG4vKiAyIGNvbHVtbnMgKi9cbkBtZWRpYSAjeyRlcXVhbC1jb2wtZ3JpZC1tZWRpdW0tdXB9IHtcbiAgICAuZXF1YWwtaGVpZ2h0LWNvbHVtbiB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKCRjb2x1bW5zOjYsICRjb2xsYXBzZTpudWxsLCAkZmxvYXQ6ZmFsc2UpO1xuICAgIH1cblxuICAgIC5lcXVhbC1oZWlnaHQtY29sdW1uX19pbWFnZSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDIwMHB4O1xuICAgICAgICBpbWcge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjAwcHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qIDMgY29sdW1ucyAqL1xuQG1lZGlhICN7JGVxdWFsLWNvbC1ncmlkLWxhcmdlLXVwfSAge1xuICAgIC5lcXVhbC1oZWlnaHQtY29sdW1uIHtcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJGNvbHVtbnM6NCwgJGNvbGxhcHNlOm51bGwsICRmbG9hdDpmYWxzZSk7XG4gICAgfVxufVxuXG4vKiA0IGNvbHVtbnMgKi9cbkBtZWRpYSAjeyRlcXVhbC1jb2wtZ3JpZC14bGFyZ2UtdXB9ICB7XG4gICAgLm5vLXNwbGl0LW1lbnUgLmVxdWFsLWhlaWdodC1jb2x1bW4ge1xuICAgICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigkY29sdW1uczozLCAkY29sbGFwc2U6bnVsbCwgJGZsb2F0OmZhbHNlKTtcbiAgICB9XG59IiwiLmJsb2NrX19ib3gtLWJhbm5lcnMsXG4uYmxvY2tfX2JveC0tYmFubmVyc19yaWdodCxcbi5ibG9ja19fYm94LS1iYW5uZXJzX2xlZnQge1xuICAgIFxuICAgICYsIC5ibG9ja19fYm94X19jb250ZW50IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQhaW1wb3J0YW50O1xuICAgIH1cbiAgICBcbiAgICBcbiAgICAuYmxvY2tfX2JveF9faGVhZGxpbmUtd3JhcHBlcixcbiAgICAuYmxvY2tfX2JveF9faGVhZGxpbmUge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC53cmFwcGVyX2Jhbm5lciB7XG4gICAgXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICBcdCYgPiBkaXYge1xuICAgIFx0XHRtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgIC8vIEZ1bGwgc2l6ZSB0aGUgaW1hZ2VcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICBAaWYgJGdsb2JhbC1yYWRpdXMgPiAwIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgLSAxOyAvLyBWaXN1YWwgc2ltaWxhcml0eSB0byBib3hlc1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgIFx0XHQmOmxhc3QtY2hpbGQge1xuICAgIFx0XHRcdG1hcmdpbi1ib3R0b206IDA7XG4gICAgXHRcdH1cbiAgICBcdH1cbiAgICB9XG59XG5cbiIsIiVib3JkZXJlZCB7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6IDA7XG59XG5cbi5ib3JkZXJlZCB7XG4gICAgQGV4dGVuZCAlYm9yZGVyZWQ7XG59XG5cbi5ib3JkZXJlZC0tYWxsIHtcbiAgICBAZXh0ZW5kICVib3JkZXJlZDtcbiAgICBib3JkZXItd2lkdGg6IDFweDtcbn1cblxuLmJvcmRlcmVkLS1ib3R0b20ge1xuICAgIEBleHRlbmQgJWJvcmRlcmVkO1xuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDFweDtcblxuICAgICYuYm9yZGVyZWRfX2xpc3QtaXRlbTpsYXN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgICB9XG59XG5cbi5ib3JkZXJlZC0tdG9wIHtcbiAgICBAZXh0ZW5kICVib3JkZXJlZDtcbiAgICBib3JkZXItdG9wLXdpZHRoOiAxcHg7XG59XG5cbi5ib3JkZXJlZC0tbGVmdCB7XG4gICAgQGV4dGVuZCAlYm9yZGVyZWQ7XG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDFweDtcbn1cblxuLmJvcmRlcmVkLS1yaWdodCB7XG4gICAgQGV4dGVuZCAlYm9yZGVyZWQ7XG4gICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XG59IiwiYm9keSB7XG4gICAgLmJ1dHRvbiwgYnV0dG9uIHtcbiAgICBcdEBleHRlbmQgLmJ1dHRvbi5yYWRpdXM7XG4gICAgfVxufSIsIiRieHNsaWRlci1jb250cm9scy1zaXplOiAkdG91Y2gtZnJpZW5kbHktc2l6ZSAhZGVmYXVsdDtcbiRieHNsaWRlci1jb250cm9scy1ib3JkZXItc2l6ZTogMiAhZGVmYXVsdDtcbiRieHNsaWRlci1idWxsZXQtbmF2LXNpemU6ICR0b3VjaC1mcmllbmRseS1zaXplICFkZWZhdWx0O1xuJGJ4c2xpZGVyLWNvbnRyb2xzLW5hdmlnYXRpb24tcmFkaXVzOiAkYnhzbGlkZXItY29udHJvbHMtc2l6ZS8yICFkZWZhdWx0O1xuJGJ4c2xpZGVyLWNvbnRyb2xzLW5hdmlnYXRpb24tbG9jYXRpb246IG91dHNpZGUgIWRlZmF1bHQ7XG4kYnhzbGlkZXItcGFnZXItbGluay1iZzogJGNvbnRlbnQtYmcgIWRlZmF1bHQ7XG4kYnhzbGlkZXItbmF2LWFycm93LXNpemU6IHJlbS1jYWxjKDMwKSAhZGVmYXVsdDtcblxuLmJ4LXdyYXBwZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmJ4LWNvbnRyb2xzLWRpcmVjdGlvbiBhIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgbWFyZ2luLXRvcDogLSN7JGJ4c2xpZGVyLWNvbnRyb2xzLXNpemUvMn07XG4gICAgb3V0bGluZTogMDtcbiAgICB3aWR0aDogJGJ4c2xpZGVyLWNvbnRyb2xzLXNpemU7XG4gICAgaGVpZ2h0OiAkYnhzbGlkZXItY29udHJvbHMtc2l6ZTtcbiAgICB0ZXh0LWluZGVudDogMTAwJTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB6LWluZGV4OiAxMDA7XG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDIwMG1zLCAtd2Via2l0LXRyYW5zZm9ybSAxNTBtcyBlYXNlO1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbi1kZWxheTogZWFzZSwgMHM7XG4gICAgLW1vei10cmFuc2l0aW9uOiBvcGFjaXR5IDIwMG1zIGVhc2UsIC1tb3otdHJhbnNmb3JtIDE1MG1zIGVhc2U7XG4gICAgLW8tdHJhbnNpdGlvbjogb3BhY2l0eSAyMDBtcyBlYXNlLCAtby10cmFuc2Zvcm0gMTUwbXMgZWFzZTtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDIwMG1zIGVhc2UsIHRyYW5zZm9ybSAxNTBtcyBlYXNlO1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMjIpO1xuICAgIEBpbmNsdWRlIHByZWZpeGVyKGJvcmRlci1yYWRpdXMsICRieHNsaWRlci1jb250cm9scy1uYXZpZ2F0aW9uLXJhZGl1cywgbXMgc3BlYyk7XG4gICAgYm9yZGVyOiAjeyRieHNsaWRlci1jb250cm9scy1ib3JkZXItc2l6ZX1weCBzb2xpZCAjZmZmO1xuXG4gICAgLnNsaWRlcl9fd2l0aC1uYXYgJiB7XG4gICAgICAgIG1hcmdpbi10b3A6IC0jeyRieHNsaWRlci1jb250cm9scy1zaXplLzIgKyAkYnhzbGlkZXItYnVsbGV0LW5hdi1zaXplLzJ9O1xuICAgIH1cbiAgIFxuICAgICY6YWZ0ZXIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24odGV4dC1pbmRlbnQgMjAwbXMgZWFzZSk7XG4gICAgICAgIHdpZHRoOiAkYnhzbGlkZXItY29udHJvbHMtc2l6ZTtcbiAgICAgICAgZm9udC1zaXplOiAkYnhzbGlkZXItbmF2LWFycm93LXNpemU7XG4gICAgICAgIHRvcDogLSN7JGJ4c2xpZGVyLWNvbnRyb2xzLWJvcmRlci1zaXplfXB4O1xuICAgICAgICBsZWZ0OiAtI3skYnhzbGlkZXItY29udHJvbHMtYm9yZGVyLXNpemV9cHg7XG4gICAgICAgIHotaW5kZXg6IDEwMTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cblxuICAgICYuZGlzYWJsZWQge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuLy8gUmV2ZXJzZSBjb2xvcnNcbkBpZiBsaWdodG5lc3MoJGNvbnRlbnQtYmcpID4gNTAlIHtcbiAgICAuYngtY29udHJvbHMtZGlyZWN0aW9uIGEge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLDAsMCwgLjQpO1xuICAgICAgICBib3JkZXI6ICN7JGJ4c2xpZGVyLWNvbnRyb2xzLWJvcmRlci1zaXplfXB4IHNvbGlkICNmZmY7XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLDAsMCwgLjkpO1xuICAgICAgICB9XG4gICAgfVxufSBAZWxzZSB7XG4gICAgLmJ4LWNvbnRyb2xzLWRpcmVjdGlvbiBhIHtcbiAgICAgICAgY29sb3I6ICMwMDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsIC4yNSk7XG4gICAgICAgIGJvcmRlcjogI3skYnhzbGlkZXItY29udHJvbHMtYm9yZGVyLXNpemV9cHggc29saWQgIzAwMDtcblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAjMDAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LCAuOSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5ieC1uZXh0IHtcbiAgICByaWdodDogI3skY29sdW1uLWd1dHRlci8yfTtcblxuICAgICY6YWZ0ZXIge1xuICAgICAgICBAaW5jbHVkZSBpY29uKCRpY29uLXZhci1jaGV2cm9uLXJpZ2h0KTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgIHRleHQtaW5kZW50OiAzcHg7XG4gICAgfVxuXG4gICAgJjpob3ZlcjphZnRlcixcbiAgICAmOmZvY3VzOmFmdGVyIHtcbiAgICAgICAgdGV4dC1pbmRlbnQ6IDlweDtcbiAgICB9XG5cbiAgICAmOmFjdGl2ZTphZnRlciB7XG4gICAgICAgIHRleHQtaW5kZW50OiAwO1xuICAgIH1cblxufVxuXG4uYngtcHJldiB7XG4gICAgbGVmdDogI3skY29sdW1uLWd1dHRlci8yfTtcblxuICAgICY6YWZ0ZXIge1xuICAgICAgICBAaW5jbHVkZSBpY29uKCRpY29uLXZhci1jaGV2cm9uLWxlZnQpO1xuICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgdGV4dC1pbmRlbnQ6IC0zcHg7XG4gICAgfVxuXG4gICAgJjpob3ZlcjphZnRlcixcbiAgICAmOmZvY3VzOmFmdGVyIHtcbiAgICAgICAgdGV4dC1pbmRlbnQ6IC05cHg7XG4gICAgfVxuXG4gICAgJjphY3RpdmU6YWZ0ZXIge1xuICAgICAgICB0ZXh0LWluZGVudDogMDtcbiAgICB9XG59XG5cbi5ieC1wYWdlciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIC8vIFRvIHByZXZlbnQgbGFyZ2UgcGFpbnQgZnJhbWVzIG9uIGNocm9tZSBmb3IgLmJ4LXBhZ2VyLWl0ZW1cbiAgICAvLyBXaXRob3V0IHRoaXMgLmJ4LXBhZ2VyLWl0ZW0gY29uc3VtZSA1LjhNQiBpbnN0ZWFkIG9mIDUuOEtCXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjsgXG59XG5cbi5ieC1wYWdlci1pdGVtIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uYngtcGFnZXItbGluayB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogJGJ4c2xpZGVyLWJ1bGxldC1uYXYtc2l6ZTtcbiAgICB3aWR0aDogJGJ4c2xpZGVyLWJ1bGxldC1uYXYtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogJGJ4c2xpZGVyLWJ1bGxldC1uYXYtc2l6ZTtcbiAgICBmb250LXNpemU6IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICY6YWZ0ZXIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgZm9udC1zaXplOiAuOHJlbTtcbiAgICAgICAgb3BhY2l0eTogLjI1O1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgQGluY2x1ZGUgaWNvbigkaWNvbi12YXItYnJpZ2h0bmVzcy0xKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJ4c2xpZGVyLXBhZ2VyLWxpbmstYmc7XG4gICAgICAgIEBpZiAkYnhzbGlkZXItcGFnZXItbGluay1iZyAhPSB0cmFuc3BhcmVudCB7XG4gICAgICAgICAgICBAaWYgbHVtYSgkYnhzbGlkZXItcGFnZXItbGluay1iZykgPCA1MCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCNmZmYsICRieHNsaWRlci1wYWdlci1saW5rLWJnKTtcbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgjMDAwLCAkYnhzbGlkZXItcGFnZXItbGluay1iZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRjb250ZW50LWJnLCAkY29udGVudC1iZyk7XG4gICAgICAgIH1cbiAgICAgICAgaGVpZ2h0OiAkYnhzbGlkZXItYnVsbGV0LW5hdi1zaXplO1xuICAgICAgICB3aWR0aDogJGJ4c2xpZGVyLWJ1bGxldC1uYXYtc2l6ZTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihmb250LXNpemUgMjAwbXMgZWFzZSk7XG4gICAgfVxuXG4gICAgJi5hY3RpdmU6YWZ0ZXIge1xuICAgICAgICBvcGFjaXR5OiAuNzU7XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICB9XG5cbiAgICAmOmhvdmVyOmFmdGVyLFxuICAgICY6Zm9jdXM6YWZ0ZXIge1xuICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgIEBpZiAkYnhzbGlkZXItcGFnZXItbGluay1iZyAhPSB0cmFuc3BhcmVudCB7XG4gICAgICAgICAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJHByaW1hcnktY29sb3IsICRieHNsaWRlci1wYWdlci1saW5rLWJnKTtcbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJHByaW1hcnktY29sb3IsICRjb250ZW50LWJnKTtcbiAgICAgICAgfVxuICAgICAgICBvcGFjaXR5OiAuNzU7XG4gICAgfVxufVxuXG5AaWYgJGJ4c2xpZGVyLWNvbnRyb2xzLW5hdmlnYXRpb24tbG9jYXRpb24gPT0gb3V0c2lkZSB7XG4gICAgQG1lZGlhICN7JHhsYXJnZS11cH0ge1xuICAgICAgICAuYngtcHJldiB7XG4gICAgICAgICAgICBsZWZ0OiAtI3skYnhzbGlkZXItY29udHJvbHMtc2l6ZSArICRjb2x1bW4tZ3V0dGVyfTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5ieC1uZXh0IHtcbiAgICAgICAgICAgIHJpZ2h0OiAtI3skYnhzbGlkZXItY29udHJvbHMtc2l6ZSArICRjb2x1bW4tZ3V0dGVyfTtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICB9XG59IiwiJGNhcnQtc3R5bGU6IGZ1bGwgIWRlZmF1bHQ7XG4kY2FydC1xdWFudGl0eS1iYWRnZS1zaXplOiAxLjVyZW0gIWRlZmF1bHQ7XG4kY2FydC1xdWFudGl0eS1iYWRnZS1yYWRpdXM6IDUwJSAhZGVmYXVsdDtcblxuQGltcG9ydCBcImNhcnQtYnV0dG9uLWZ1bGxcIjtcbkBpbXBvcnQgXCJjYXJ0LWJ1dHRvbi1zaW1wbGVcIjtcblxuQGlmICRjYXJ0LXN0eWxlID09IGZ1bGwge1xuICAgIEBpbmNsdWRlIGNhcnQtYnV0dG9uLWZ1bGwoKTtcbn0gQGVsc2VpZiAkY2FydC1zdHlsZSA9PSBzaW1wbGUge1xuICAgIEBpbmNsdWRlIGNhcnQtYnV0dG9uLXNpbXBsZSgpO1xufVxuIiwiLy8gQ2FydCBidXR0b24gd2l0aCBxdWFudGl0eSwgc3VtIGFuZCBjaGVja291dCBidXR0b25cblxuQG1peGluIGNhcnQtYnV0dG9uLWZ1bGwoKSB7XG4gICAgLmNhcnQtYnV0dG9uX19xdWFudGl0eSxcbiAgICAuY2FydC1idXR0b25fX3N1bSxcbiAgICAuY2FydC1idXR0b25fX2N1cnJlbmN5IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRjYXJ0LXF1YW50aXR5LWJhZGdlLXNpemU7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpO1xuICAgICAgICBoZWlnaHQ6ICRjYXJ0LXF1YW50aXR5LWJhZGdlLXNpemU7XG4gICAgfVxuXG4gICAgLmNhcnQtYnV0dG9uX19zdW0sXG4gICAgLmNhcnQtYnV0dG9uX19jdXJyZW5jeSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLmNhcnQtYnV0dG9uX19xdWFudGl0eSB7XG4gICAgICAgIEBleHRlbmQgLmNhbGwtdG8tYWN0aW9uLWNvbG9yLWJnO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIEBpbmNsdWRlIHJhZGl1cygkY2FydC1xdWFudGl0eS1iYWRnZS1yYWRpdXMpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkY2FydC1xdWFudGl0eS1iYWRnZS1zaXplO1xuXG4gICAgICAgIC5jYXJ0LWJ1dHRvbi0tZW1wdHkgJiB7XG4gICAgICAgICAgICBAZXh0ZW5kIC5zZWNvbmRhcnktY29sb3ItYmc7XG4gICAgICAgIH1cblxuICAgICAgICAuY2FydC1idXR0b246aG92ZXIgJixcbiAgICAgICAgLmNhcnQtYnV0dG9uLS1oaWdobGlnaHRlZCAmIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRob3Zlci1jb2xvciAhaW1wb3J0YW50O1xuICAgICAgICAgICAgY29sb3I6ICRob3Zlci1iZy10ZXh0LWNvbG9yO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDNweCAzcHggcmdiYSgwLCAwLCAwLCAuMSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAyMDBtcyBlYXNlKTtcbiAgICB9XG5cbiAgICAuaWNvbi1sYXJnZXItdGhhbjphZnRlciB7XG4gICAgICAgIEBpbmNsdWRlIGljb24oJGljb24tdmFyLWNoZXZyb24tcmlnaHQpO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IC0zcHg7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtNHB4O1xuICAgIH1cblxuICAgIC5jYXJ0LWJ1dHRvbiB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiByZW0tY2FsYygzNyk7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiAgICAgICAgY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDFyZW07XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBjb2xvcjogJGJvZHktZm9udC1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jaGVja291dC1idXR0b24ge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLXNpemUocmVtLWNhbGMoMTApKTtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRjYWxsLXRvLWFjdGlvbi1jb2xvciwgdHJ1ZSk7XG4gICAgICAgIHBhZGRpbmc6IDAgMXJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRidXR0b24tc2l6ZTtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaG92ZXItY29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICAuY2FydC1pY29uOmJlZm9yZSB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC05cHg7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuY2FydC1idXR0b24tLWVtcHR5IHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcblxuICAgICAgICAuY2FydC1idXR0b25fX3N1bSxcbiAgICAgICAgLmNhcnQtYnV0dG9uX19jdXJyZW5jeSxcbiAgICAgICAgfiAuY2hlY2tvdXQtYnV0dG9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jYXJ0X19pY29uLWNhcnQge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAuMXJlbTtcbiAgICB9XG5cbiAgICAuY2FydC1idXR0b25fX3RleHQge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC5jYXJ0X19pY29uLXByb2NlZGUgIHtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxMyk7XG4gICAgfVxuXG4gICAgQG1lZGlhICN7JHNtYWxsLXBsdXMtdXB9IHtcbiAgICAgICAgLmNhcnQtYnV0dG9uX19zdW0sXG4gICAgICAgIC5jYXJ0LWJ1dHRvbl9fY3VycmVuY3kge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG4gICAgfVxufSIsIiRjYXJ0LXF1YW50aXR5LWJhZGdlLW9mZnNldDogNHB4O1xuXG5AbWl4aW4gY2FydC1idXR0b24tc2ltcGxlKCkge1xuXG4gICAgLmNhcnQtYW5kLWNoZWNrb3V0IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cblxuICAgIC5jYXJ0LWJ1dHRvbl9fcXVhbnRpdHkge1xuICAgICAgICBwb3NpdGlvbjphYnNvbHV0ZTtcbiAgICAgICAgYm90dG9tOiAtI3skY2FydC1xdWFudGl0eS1iYWRnZS1vZmZzZXR9O1xuICAgICAgICByaWdodDogLSN7JGNhcnQtcXVhbnRpdHktYmFkZ2Utb2Zmc2V0fTtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxMik7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpO1xuICAgICAgICBsaW5lLWhlaWdodDogJGNhcnQtcXVhbnRpdHktYmFkZ2Utc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkY2FydC1xdWFudGl0eS1iYWRnZS1zaXplO1xuICAgICAgICBAaW5jbHVkZSByYWRpdXMoMCk7XG4gICAgICAgIHBhZGRpbmc6IDAgNHB4O1xuICAgICAgICBAZXh0ZW5kIC5jYWxsLXRvLWFjdGlvbi1jb2xvci1iZztcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIG9wYWNpdHk6IC45O1xuXG4gICAgICAgIC5jYXJ0LWJ1dHRvbi0tZW1wdHkgJiB7XG4gICAgICAgICAgICBAZXh0ZW5kIC5zZWNvbmRhcnktY29sb3ItYmc7XG4gICAgICAgICAgICBvcGFjaXR5OiAuOTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jYXJ0LWJ1dHRvbjpob3ZlciAmLFxuICAgICAgICAuY2FydC1idXR0b24tLWhpZ2hsaWdodGVkICYge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGhvdmVyLWNvbG9yICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBjb2xvcjogJGhvdmVyLWJnLXRleHQtY29sb3I7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgM3B4IDNweCByZ2JhKDAsIDAsIDAsIC4xKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIDIwMG1zIGVhc2UpO1xuICAgIH1cblxuICAgIC5pY29uLWxhcmdlci10aGFuOmFmdGVyIHtcbiAgICAgICAgQGluY2x1ZGUgaWNvbigkaWNvbi12YXItY2hldnJvbi1yaWdodCk7XG4gICAgICAgIG1hcmdpbi1yaWdodDogLTNweDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC00cHg7XG4gICAgfVxuXG4gICAgLmNhcnQtYnV0dG9uX19pY29uOmJlZm9yZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICB9XG5cbiAgICAuY2FydC1idXR0b25fX3RleHQsXG4gICAgLmNhcnQtYnV0dG9uX19zdW0sXG4gICAgLmNhcnQtYnV0dG9uX19jdXJyZW5jeSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLmNhcnQtYW5kLWNoZWNrb3V0IC5jaGVja291dC1idXR0b24ge1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxufSIsIiRjaGVja291dC1zbWFsbC1zcGFjaW5nOiByZW0tY2FsYygyMCkgIWRlZmF1bHQ7XG4kY2hlY2tvdXQtbWVkaXVtLXNwYWNpbmc6IHJlbS1jYWxjKDMwKSAhZGVmYXVsdDtcbiRjaGVja291dC1sYXJnZS1zcGFjaW5nOiByZW0tY2FsYyg2OSkgIWRlZmF1bHQ7XG5cbiRjaGVja291dC1zdGVwcy1jb250YWluZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuQGlmICgkY2hlY2tvdXQtc3RlcHMtY29udGFpbmVyLXJhZGl1cyA+IDApIHtcbiAgICAkY2hlY2tvdXQtc3RlcHMtaW5uZXItY29udGFpbmVyLXJhZGl1czogJGNoZWNrb3V0LXN0ZXBzLWNvbnRhaW5lci1yYWRpdXMgLSAycHg7XG59IEBlbHNlIHtcbiAgICAkY2hlY2tvdXQtc3RlcHMtaW5uZXItY29udGFpbmVyLXJhZGl1czogJGNoZWNrb3V0LXN0ZXBzLWNvbnRhaW5lci1yYWRpdXM7XG59XG5cbiRlZGl0LXN0ZXAtYnRuLWJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLyBVc2UgcmVndWxhciBncmlkIG1hcmdpbnMgZm9yIHRoZSBjaGVja291dCBmb3JtIGdyaWRcbiNrYXNzZV9vbmVfZm9ybSxcbiNrYXNzZV9vbmVfbG9nZ2lubiB7XG4gICAgLnJvdyAucm93IHtcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1yb3coJGJlaGF2aW9yOiBuZXN0KTtcblxuICAgICAgICAuY29sdW1uLFxuICAgICAgICAuY29sdW1ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyBaZWJyYSB0YWJsZSBzdHlsaW5nXG4ja2Fzc2Vfb25lX2Zvcm0gLnplYnJhIHtcbiAgICBib3JkZXItc3BhY2luZzogMDtcbiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4ja2Fzc2Vfb25lX2Zvcm0gLnplYnJhIHRyOmxhc3QtY2hpbGQgdGQge1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG59XG5cbi5jaGVja291dF9fc3RlcHMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjaGVja291dC1zdGVwcy1iZztcbiAgICBwYWRkaW5nOiAycHg7XG4gICAgYm9yZGVyLXJhZGl1czogJGNoZWNrb3V0LXN0ZXBzLWNvbnRhaW5lci1yYWRpdXM7XG4gICAgbWFyZ2luLXRvcDogMWVtO1xufVxuXG4vKiBFTklSTyBzZWFyY2ggKi9cblxuI2VuaXJvX2ZldGNoIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbiNlbmlyb19vcHRpb25zLFxuI2VuaXJvX21lc3NhZ2UsXG4jY2xpZW50X29wdGlvbnMge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbiNlbmlyb19tZXNzYWdlIHtcbiAgICBwYWRkaW5nOiA1cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMWVtO1xuICAgIGNsZWFyOiBib3RoO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG59XG5cbiNlbmlyb19vcHRpb25zIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAzcHggNnB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNiYmI7XG59XG5cbi5jYXJ0LWNvbnRlbnRzIC5taW5pLWltZyB7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXItcmlnaHQ6IDA7XG59XG5cbi5taW5pLWltZyBpbWcge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qIGJ1dHRvbnMgKi9cblxuLmJ1dHRvbiAuYXJyb3cge1xuICAgIHBhZGRpbmctbGVmdDogLjRyZW07XG59XG5cbi5jaGVja291dF9fc3RlcF9fY29udGVudHMge1xuICAgIGJ1dHRvbixcbiAgICAuYnV0dG9uIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG59XG5cbmEuZGlhbG9nX3RyaWdnZXIsXG5hLmRpYWxvZ190cmlnZ2VyOmxpbmssXG5hLmRpYWxvZ190cmlnZ2VyOnZpc2l0ZWQge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuXG4uY2hlY2tvdXRfX3N0ZXBfX2NvbnRlbnRzIHtcbiAgICAuZGlhbG9nLXBvcHVwIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMWVtO1xuICAgIH1cbn1cblxuLmRpYWxvZy1wb3B1cCBoMiB7XG4gICAgbWFyZ2luLXRvcDogMDtcbn1cblxuLmRpYWxvZy1wb3B1cCB7XG4gICAgLmthc3NlX29uZV9sb2dnaW5uX2Vycm9yIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICB9XG5cbiAgICAuZm9ybV9zdWJtaXQge1xuICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogLjVlbTtcbiAgICB9XG5cbiAgICAuZm9yZ290X3Bhc3N3ZCB7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgIH1cbn1cblxuLmFkZG9uX2J1dHRvbnMge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAkY2hlY2tvdXQtc21hbGwtc3BhY2luZztcbiAgICBjbGVhcjogYm90aDtcbiAgICBtYXJnaW4tYm90dG9tOiAuNXJlbTtcblxuICAgIC5lZGl0X3N0ZXAge1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAycmVtO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG5cbiAgICAgICAgJi50b2dnbGVkIC5pY29uLWFkZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0ocm90YXRlKC0xMzVkZWcpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5pY29uLWFkZCB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxLjVyZW07XG4gICAgICAgIHdpZHRoOiAxcmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMS41cmVtO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24odHJhbnNmb3JtIDAuM3MgZWFzZSk7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybShyb3RhdGUoMGRlZykpO1xuICAgIH1cblxuICAgIC5jaGVja291dF9fc3RlcC0taW5hY3RpdmUgJiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG4ubmV4dC1zdGVwLWJ0biB7XG4gICAgJi5idXR0b24ge1xuICAgICAgICBAZXh0ZW5kICVjb250ZW50X19wcmltYXJ5LWNvbG9yLWJnO1xuICAgIH1cblxuICAgIC5pY29uIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC41ZW07XG4gICAgfVxufVxuXG4uY2hlY2tvdXRfX3N0ZXAgI2NsaWVudF9mZXRjaCB7XG4gICAgQGV4dGVuZCAlY29udGVudF9fcHJpbWFyeS1jb2xvci1iZztcbn1cblxuLmVkaXRfc3RlcCxcbi5tYXJrZXJfZWRpdF9zdGVwIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBwYWRkaW5nOiAwIC41ZW07XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGVkaXQtc3RlcC1idXR0b24tYmc7XG4gICAgY29sb3I6ICRlZGl0LXN0ZXAtYnV0dG9uLXRleHQtY29sb3I7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJvcmRlci1yYWRpdXM6ICRlZGl0LXN0ZXAtYnRuLWJvcmRlci1yYWRpdXM7XG4gICAgZm9udC1zaXplOiAxMXB4O1xufVxuXG4ucGx1cy1pY29uIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLmVkaXRfc3RlcDpsaW5rLFxuLmVkaXRfc3RlcDp2aXNpdGVkIHtcbiAgICBjb2xvcjogJGVkaXQtc3RlcC1idXR0b24tdGV4dC1jb2xvcjtcbn1cblxuLmNoZWNrb3V0IHtcbiAgICAuY2hlY2tvdXRfX3N0ZXAtLWluYWN0aXZlOmhvdmVyIC5lZGl0X3N0ZXAsXG4gICAgLmNoZWNrb3V0X19zdGVwLS1pbmFjdGl2ZSAuZWRpdF9zdGVwOmZvY3VzLFxuICAgIC5lZGl0X3N0ZXA6aG92ZXIsXG4gICAgLmVkaXRfc3RlcDpmb2N1cyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRlZGl0LXN0ZXAtaG92ZXItYmc7XG4gICAgICAgIGNvbG9yOiAkZWRpdC1zdGVwLWhvdmVyLXRleHQtY29sb3I7XG4gICAgfVxufVxuXG4uZWRpdF9zdGVwOmhvdmVyIC5wbHVzLWljb24ge1xuICAgIGNvbG9yOiAkZWRpdC1zdGVwLWhvdmVyLXRleHQtY29sb3I7XG59XG5cbi5lZGl0X3N0ZXAge1xuICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBtYXJnaW46IDE5cHggJGNoZWNrb3V0LXNtYWxsLXNwYWNpbmcgMCAwO1xufVxuXG4ubWFya2VyX2VkaXRfc3RlcCB7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgbWFyZ2luLXRvcDogLTRweDtcbn1cblxuI3Byb2dyZXNzLWxpc3QgLmNvbXBsZXRlIC5tYXJrZXJfZWRpdF9zdGVwIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZmxvYXQ6IG5vbmU7XG59XG5cbmlucHV0LmNoZWNrb3V0X19xdHkge1xuICAgIHdpZHRoOiAzcmVtO1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbn1cblxuLy8gVXBkYXRlIGNhcnQgYnV0dG9uXG5cbi5jaGVja291dF9fdXBkYXRlLWNhcnQtYnRuIHtcbiAgICAuY2hlY2tvdXRfX3VwZGF0ZS1jYXJ0LWJ0bl9fdXBkYXRlIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgIH1cblxuICAgIC5jaGVja291dF9fdXBkYXRlLWNhcnQtYnRuX19sb2FkaW5nIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbi5jaGVja291dF9fdXBkYXRlLWNhcnQtYnRuOmRpc2FibGVkIHtcbiAgICAuY2hlY2tvdXRfX3VwZGF0ZS1jYXJ0LWJ0bl9fdXBkYXRlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAuY2hlY2tvdXRfX3VwZGF0ZS1jYXJ0LWJ0bl9fbG9hZGluZyB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICB9XG59XG5cbi8vIFVwZGF0ZSBjYXJ0IGJ1dHRvbiBhbmltYXRpb25cbi5lbGxpcHNpc19vbmUsXG4uZWxsaXBzaXNfdHdvLFxuLmVsbGlwc2lzX3RocmVlIHtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDIwKTtcbiAgICBsaW5lLWhlaWdodDogMXJlbTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIEBpbmNsdWRlIGFuaW1hdGlvbihlbGxpcHNpcyAwLjlzIGluZmluaXRlKTtcbiAgICBAaW5jbHVkZSBhbmltYXRpb24tZGVsYXkoMHMpO1xufVxuXG4uZWxsaXBzaXNfdHdvIHtcbiAgICBAaW5jbHVkZSBhbmltYXRpb24tZGVsYXkoMC4ycyk7XG59XG5cbi5lbGxpcHNpc190aHJlZSB7XG4gICAgQGluY2x1ZGUgYW5pbWF0aW9uLWRlbGF5KDAuM3MpO1xufVxuXG5AaW5jbHVkZSBrZXlmcmFtZXMoZWxsaXBzaXMpIHtcbiAgICAgIDAlIHsgb3BhY2l0eTogMDsgfVxuICAgICA1MCUgeyBvcGFjaXR5OiAwOyB9XG4gICAgMTAwJSB7IG9wYWNpdHk6IDE7IH1cbn1cblxuLmRpYWxvZy1wb3B1cCBpbnB1dFt0eXBlPVwiZW1haWxcIl0sXG4uZGlhbG9nLXBvcHVwIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbn1cblxuLm1zZ2JveCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBwYWRkaW5nOiAxZW0gMWVtIDFlbSAxZW07XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJG1zZ2JveC1iZztcbiAgICBib3JkZXItbGVmdDogNXB4IHNvbGlkICRtc2dib3gtYm9yZGVyLWNvbG9yO1xuICAgIG1hcmdpbi1ib3R0b206IDFlbTtcblxuICAgIGEge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB9XG5cbiAgICBwIHtcbiAgICAgICAgcGFkZGluZzogMCAyZW0gMCAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxufVxuXG4ubXNnYm94X19jbG9zZSB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMjEpO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGNvbG9yOiAkbXNnYm94LWNsb3NlLXRleHQtY29sb3I7XG4gICAgdGV4dC1zaGFkb3c6IDAgMXB4IDAgJG1zZ2JveC1jbG9zZS1zaGFkb3ctY29sb3I7XG4gICAgb3BhY2l0eTogMC4yO1xuICAgIGZvbnQtZmFtaWx5OiAnSGVsdmV0aWNhIE5ldWUnLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50IWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIHBhZGRpbmc6IDA7XG5cbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB9XG59XG5cblxuLmNoZWNrb3V0X19zdGVwIHtcbiAgICBwYWRkaW5nLXRvcDogLjVlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDFweDtcbiAgICBiYWNrZ3JvdW5kOiAkY29udGVudC1iZztcbn1cblxuLmNoZWNrb3V0X19zdGVwLS1pbmFjdGl2ZSB7XG4gICAgcGFkZGluZy10b3A6IDA7XG59XG5cbiNqcy1jaGVja291dHN0ZXBfX292ZXJ2aWV3IC5jaGVja291dF9fc3RlcF9fY29udGVudHMge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbiNqcy1jaGVja291dHN0ZXBfX292ZXJ2aWV3LFxuI2pzLWNoZWNrb3V0c3RlcF9fcGF5bWV0aG9kIHtcbiAgICAuanMtdG9nZ2xlLXZpc2liaWxpdHkuZWRpdF9zdGVwIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDFlbTtcbiAgICB9XG59XG5cbi5jaGVja291dF9fc3RlcCB7XG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRjaGVja291dC1zdGVwcy1pbm5lci1jb250YWluZXItcmFkaXVzICRjaGVja291dC1zdGVwcy1pbm5lci1jb250YWluZXItcmFkaXVzIDAgMDtcbiAgICB9XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwIDAgJGNoZWNrb3V0LXN0ZXBzLWlubmVyLWNvbnRhaW5lci1yYWRpdXMgJGNoZWNrb3V0LXN0ZXBzLWlubmVyLWNvbnRhaW5lci1yYWRpdXM7XG4gICAgfVxufVxuXG5cbi8qIEluYWN0aXZlIHN0ZXAgc3R5bGVzICovXG5cbi5jaGVja291dF9fc3RlcC0taW5hY3RpdmUge1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIGJhY2tncm91bmQ6ICRjaGVja291dC1zdGVwLWluYWN0aXZlLWJnO1xufVxuXG4uY2hlY2tvdXRfX3N0ZXBfX21pcnJvcixcbi5jaGVja291dF9fc3RlcC0taW5hY3RpdmUgLmNoZWNrb3V0X19zdGVwX19jb250ZW50cyB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLmNoZWNrb3V0X19zdGVwLS1pbmFjdGl2ZS52YWxpZCAuY2hlY2tvdXRfX3N0ZXBfX21pcnJvciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgY2xlYXI6IGJvdGg7XG59XG5cbiNqcy1jaGVja291dHN0ZXBfX2FkZHJlc3Mge1xuICAgIGgyIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgICB9XG4gICAgLmNoZWNrb3V0X19zdGVwX19taXJyb3Ige1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuLmNoZWNrb3V0X19zdGVwX19jb250ZW50cyB7XG4gICAgcGFkZGluZzogMCAkY2hlY2tvdXQtc21hbGwtc3BhY2luZztcbiAgICBjbGVhcjogYm90aDtcbn1cblxuI2thc3NlX29uZV9sb2dpbl9xdWVzdGlvbixcbiN3ZWxjb21lX21zZyxcbiN3ZWxjb21lX21zZy0tdHJ1ZSB7XG4gICAgbGluZS1oZWlnaHQ6IDEuNXJlbTtcbn1cblxuI2thc3NlX29uZV9sb2dpbl9xdWVzdGlvbiBwLnN1YnRsZSB7XG4gICAgbWFyZ2luLXRvcDogMDtcbn1cblxuLmthc3NlX29uZV9sb2dnaW5uX2Vycm9yIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xufVxuXG4uY2hlY2tvdXRfX3N0ZXAtLWluYWN0aXZlIGgyIHtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBjb2xvcjogcmdiYSgkY29udGVudC10ZXh0LWNvbG9yLCAwLjgpO1xufVxuXG4uY2hlY2tvdXRfX3N0ZXBfX21pcnJvciB7XG4gICAgY29sb3I6ICM4ODg7XG4gICAgcGFkZGluZzogMCAkY2hlY2tvdXQtc21hbGwtc3BhY2luZyAxLjVlbSAkY2hlY2tvdXQtbGFyZ2Utc3BhY2luZztcbiAgICBmb250LXNpemU6IDEzcHg7XG5cbiAgICBoMyB7XG4gICAgICAgIG1hcmdpbjogMCAwIC41ZW0gMDtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgIH1cbn1cblxuLm1pcnJvcl9fZmlyc3QtbmFtZSxcbi5taXJyb3JfX2xhc3QtbmFtZSxcbi5taXJyb3JfX3ppcCxcbi5taXJyb3JfX2NpdHkge1xuICAgIGRpc3BsYXk6IGlubGluZTtcbn1cblxuXG4vKiBlbmQgaW5hY3RpdmUgc3RlcCBzdHlsZXMgKi9cblxuLyogZnJlaWdodCBvcHRpb25zICovXG5cbi5mcmVpZ2h0LW9wdGlvbnMsXG4ucGF5bWVudC1vcHRpb25zIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xufVxuICAgIC5mcmVpZ2h0LW9wdGlvbixcbiAgICAucGF5bWVudC1vcHRpb24ge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBAZXh0ZW5kIC5ib3JkZXJlZC0tYm90dG9tO1xuICAgICAgICBAZXh0ZW5kICVjb250ZW50X19ib3JkZXJlZDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wYXltZW50LW9wdGlvbiB7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlO1xuXG4gICAgICAgIGxhYmVsIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IHRhYmxlLXJvdztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAgICAgJiA+ICoge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAxZW0gMCAxZW0gMDtcblxuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDVweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAucGF5bWVudC1vcHRpb25fX3ByaWNlIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMWVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi50ZXN0IHtcbiAgICAgICAgICAgIC5wYXltZW50LW9wdGlvbl9fbmFtZTo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAuNXJlbTtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaWNvbigkaWNvbi12YXItd2FybmluZyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRhbGVydC1jb2xvciwgJGNvbnRlbnQtYmcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmZyZWlnaHQtb3B0aW9uIHtcblxuICAgICAgICBsYWJlbCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFlbSA1cHggMWVtICRjaGVja291dC1tZWRpdW0tc3BhY2luZztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgaW5wdXRbdHlwZT1yYWRpb10ge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLTIycHg7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMnB4O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuZnJlaWdodC1vcHRpb25fX25hbWUge1xuICAgICAgICB3aWR0aDogNjIlO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDNweDtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgfVxuXG4gICAgLmZyZWlnaHQtb3B0aW9uX19wcmljZSB7XG4gICAgICAgIHdpZHRoOiAyOSU7XG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgfVxuXG4gICAgLmZyZWlnaHQtb3B0aW9uX19kZXNjLFxuICAgIC5wYXltZW50LW9wdGlvbl9fZGVzYyxcbiAgICAuYXR0cmlidXRlIHtcbiAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgjOTk5LCAkY29udGVudC1iZywgMik7XG4gICAgICAgIHBhZGRpbmc6IC41ZW0gODBweCAuNWVtIDNweDtcbiAgICB9XG5cbiAgICAuZnJlaWdodC1vcHRpb25fX2Rlc2Mge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIH1cblxuICAgIC5hdHRyaWJ1dGUge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgIH1cblxuICAgIC5wYXltZW50LW9wdGlvbl9fbmFtZSB7XG4gICAgICAgIHdpZHRoOiA0MCU7XG4gICAgfVxuXG4gICAgLnBheW1lbnQtb3B0aW9uX19pbnB1dC13cmFwIHtcbiAgICAgICAgd2lkdGg6ICRjaGVja291dC1tZWRpdW0tc3BhY2luZztcbiAgICAgICAgcGFkZGluZy1sZWZ0OiA1cHg7XG5cbiAgICAgICAgLnJlbW92ZV9naWZ0Y2FyZCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogNXB4O1xuICAgICAgICB9XG5cbiAgICAgICAgaW5wdXQge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDNweDtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDJweDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucGF5bWVudC1vcHRpb25fX3ByaWNlIHtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDVweDtcbiAgICB9XG5cbi8qIGVuZCBmcmVpZ2h0IG9wdGlvbnMgKi9cblxuXG4vKiBlZGl0IHN0ZXAgYnV0dG9uICovXG4uY2hlY2tvdXRfX3N0ZXAtLWluYWN0aXZlLnZhbGlkIC5lZGl0X3N0ZXAge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uaXMtdG9nZ2xlciB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ua2Fzc2VfbWFpbiB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZmxvYXQ6IGxlZnQ7XG59XG5cbi5jaGVja291dF9fc3RlcF9faGVhZGxpbmUge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGxpbmUtaGVpZ2h0OiAyOHB4O1xuICAgIGhlaWdodDogMjhweDtcbiAgICBtYXJnaW46IDE2cHggMDtcbiAgICBwYWRkaW5nOiAwIDEwcHggMCAwO1xuICAgIGNsZWFyOiByaWdodDtcbiAgICBmb250LXNpemU6IDE4cHg7XG59XG5cbi5jaGVja291dF9fc3RlcC0taW5hY3RpdmUge1xuICAgICYudmFsaWQge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgLmthc3NlX29uZV9zdGVwX251bWJlciB7XG4gICAgICAgICAgICBAZXh0ZW5kICVjb250ZW50X19wcmltYXJ5LWNvbG9yLWJnO1xuICAgICAgICB9XG5cbiAgICAgICAgaDIge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG5cbi5rYXNzZV9vbmVfc3RlcF9udW1iZXIge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGhlaWdodDogMjhweDtcbiAgICB3aWR0aDogMjhweDtcbiAgICBsaW5lLWhlaWdodDogMjhweDtcbiAgICBmb250LXNpemU6IDE3cHg7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgei1pbmRleDogMTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHN0ZXAtbnVtYmVyLWJnO1xuICAgIG1hcmdpbjogMTZweCAkY2hlY2tvdXQtc21hbGwtc3BhY2luZyA4cHggJGNoZWNrb3V0LXNtYWxsLXNwYWNpbmc7XG4gICAgcGFkZGluZzogMDtcbiAgICBjb2xvcjogJHN0ZXAtbnVtYmVyLXRleHQtY29sb3I7XG59XG5cbmJ1dHRvbi5yZW1vdmVfZ2lmdGNhcmQsXG5idXR0b24ucmVtb3ZlX3JhYmF0dCB7XG4gICAgZGlzcGxheTogaW5saW5lO1xuICAgIG1hcmdpbi1sZWZ0OiAuNWVtO1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBwYWRkaW5nOiAwO1xuXG4gICAgJixcbiAgICAmOmxpbmssXG4gICAgJjp2aXNpdGVkLFxuICAgICY6aG92ZXIsXG4gICAgJjphY3RpdmUsXG4gICAgJjpmb2N1cyB7XG4gICAgICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkYWxlcnQtY29sb3IsICRjb250ZW50LWJnKTtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgfVxufVxuXG4ua2Fzc2Vfb25lX3N0ZXBfbnVtYmVyLS1pbmZvIHtcbiAgICBmb250LWZhbWlseTogR2VvcmdpYSwgJ1RpbWVzIE5ldyBSb21hbicsIFRpbWVzLCBzZXJpZjtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbiNrYXNzZV9vbmVfZm9ybSBsYWJlbC5lcnJvciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgY29sb3I6ICNiOTRhNDg7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgbGluZS1oZWlnaHQ6IDEuNWVtO1xuICAgIHBhZGRpbmctYm90dG9tOiAuNWVtO1xufVxuXG4ja2Fzc2Vfb25lX3BvcHVwX2FyZWEge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDozMjBweDtcbiAgICAvKmhlaWdodDogICAxNTVweDsqL1xuICAgIHBhZGRpbmc6MTVweDtcbiAgICBtYXJnaW46MWVtIDAgMCAwO1xuICAgIGNvbG9yOiMwMDA7XG4gICAgYmFja2dyb3VuZDojZmZmZmZmOyAvKiBkZWZhdWx0IGJhY2tncm91bmQgZm9yIGJyb3dzZXJzIHdpdGhvdXQgZ3JhZGllbnQgc3VwcG9ydCAqL1xuICAgIC8qIGNzczMgKi9cbiAgICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQoI2ZmZiwgI2YxZjFmMSk7XG4gICAgYm9yZGVyLXJhZGl1czoxMHB4O1xuICAgIGJvcmRlci1zdHlsZTpzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6MXB4O1xuICAgIGJvcmRlci1jb2xvcjojY2JjYmNiO1xufVxuXG4ja2Fzc2Vfb25lX3BvcHVwIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAxMDI7XG59XG5cbiNrYXNzZV9vbmVfcG9wdXBfYXJlYSBzcGFuIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLmZyYWt0X3dyYXBwZXIsXG4ucGF5bWVudF93cmFwcGVyLFxuLnBheW1lbnRfd3JhcHBlciA+IGxhYmVsLmVycm9yLFxuLmZyYWt0X3dyYXBwZXIgPiBsYWJlbC5lcnJvciB7XG4gICAgbWFyZ2luLWJvdHRvbTogMWVtO1xufVxuXG4ja2Fzc2Vfb25lX29yZHJlX292ZXJzaWt0IHtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjVlbTtcblxuICAgIHRyOm50aC1vZi10eXBlKGV2ZW4pIHtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgfVxufVxuXG4uc3VidGxlIHtcbiAgICBmb250LXNpemU6IDEzcHg7XG59XG5cbiNrYXNzZV9vbmVfZm9ybSAuc3VidGF4ZXMge1xuICAgIEBleHRlbmQgLnN1YnRsZTtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuI3dlbGNvbWVfbXNnIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4uaGFzUGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiAjYmJiO1xufVxuXG4ubWluaS1pbWcge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG5sYWJlbFtmb3I9XCJram9wc2JldFwiXSBhIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGN1cnNvcjogaGVscDtcbiAgICB9XG59XG5cbmxhYmVsW2Zvcj1cImtqb3BzYmV0XCJdIGEgYiB7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cblxudGFibGUubGluZWQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gICAgbWFyZ2luLWJvdHRvbTogMS41ZW07XG4gICAgY2xlYXI6IGJvdGg7XG5cbiAgICB0aCxcbiAgICB0ZCB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjVlbTtcbiAgICAgICAgcGFkZGluZzogNXB4IDdweDtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggZG90dGVkICR0YWJsZS1zdWJ0bGUtYm9yZGVyLWNvbG9yO1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0aGVhZCB0aCB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkdGFibGUtYm9yZGVyLWNvbG9yO1xuICAgIH1cblxuICAgIHRib2R5IHtcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IGRhc2hlZCAkdGFibGUtc3VidGxlLWJvcmRlci1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRyOmZpcnN0LWNoaWxkIHRkIHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0Zm9vdCB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkdGFibGUtYm9yZGVyLWNvbG9yO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuc3VtIHRkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDNweCBkb3VibGUgJHRhYmxlLWJvcmRlci1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wcmljZSB7XG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIH1cbn1cblxuLmNvbnRyb2wtZ3JvdXAge1xuICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKCRjb2x1bW5zOiAxMik7XG5cbiAgICAucm93LmNvbGxhcHNlID4gJiB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICB9XG59XG5cbi5jaGVja291dF9fc3VtLXRvby1zbWFsbF9fZXJyb3Jtc2cge1xuICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAuY2hlY2tvdXRfX3N1bS10b28tc21hbGwgJiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbn1cblxuLmNoZWNrb3V0X19zdW0tdG9vLXNtYWxsIHtcbiAgICAuY2hlY2tvdXRfX3N1bS10b28tc21hbGxfX2Vycm9ybXNnIHtcbiAgICAgICAgY29sb3I6ICRhbGVydC1jb2xvcjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxufVxuXG5cbkBtZWRpYSAjeyRzbWFsbC1wbHVzLXVwfSB7XG4gICAgLmNvbnRyb2wtZ3JvdXAge1xuICAgICAgICB3aWR0aDogZ3JpZC1jYWxjKDEwLCAkdG90YWwtY29sdW1ucyk7XG4gICAgfVxuXG4gICAgLmFkZG9uX2J1dHRvbnMge1xuICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIGNsZWFyOiByaWdodDtcbiAgICB9XG59XG5cbkBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAuYWRkb25fYnV0dG9ucyB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICRjaGVja291dC1tZWRpdW0tc3BhY2luZztcbiAgICB9XG5cbiAgICAuY2FydC1jb250ZW50cyAubWluaS1pbWcge1xuICAgICAgICBwYWRkaW5nOiA1cHggN3B4O1xuICAgIH1cblxuICAgIC5taW5pLWltZyBpbWcge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAuY2hlY2tvdXRfX3N0ZXBfX2NvbnRlbnRzIHtcbiAgICAgICAgcGFkZGluZzogMCAkY2hlY2tvdXQtbWVkaXVtLXNwYWNpbmcgMCAkY2hlY2tvdXQtbGFyZ2Utc3BhY2luZztcbiAgICB9XG5cbiAgICAuY29udHJvbC1ncm91cCB7XG4gICAgICAgIHdpZHRoOiBncmlkLWNhbGMoMTIsICR0b3RhbC1jb2x1bW5zKTtcbiAgICB9XG5cbiAgICAuY2hlY2tvdXQtbG9naW4ge1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiAgICB9XG5cbiAgICAuY2hlY2tvdXRfX3N0ZXBfX2NvbnRlbnRzIHtcbiAgICAgICAgLm5leHQtc3RlcC1idG4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLXNpemU7XG4gICAgICAgICAgICAuYXJyb3cge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmNsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuY2hlY2tvdXRfX3N0ZXBfX21pcnJvciB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogJGNoZWNrb3V0LWxhcmdlLXNwYWNpbmc7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICRjaGVja291dC1tZWRpdW0tc3BhY2luZztcbiAgICB9XG5cbiAgICAjanMtY2hlY2tvdXRzdGVwX19hZGRyZXNzLmNoZWNrb3V0X19zdGVwLS1pbmFjdGl2ZS52YWxpZCB7XG4gICAgICAgIC5jaGVja291dF9fc3RlcF9fbWlycm9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgaDIge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmNoZWNrb3V0X19zdGVwX19taXJyb3JfX2FkZHJlc3Mge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cblxuICAgIC5mcmVpZ2h0LW9wdGlvbiB7XG4gICAgICAgIGlucHV0W3R5cGU9cmFkaW9dIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0yMnB4O1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDJweDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1lZGlhICN7JGxhcmdlLXVwfSB7XG4gICAgLmNoZWNrb3V0X19zdGVwX19jb250ZW50cyxcbiAgICAuY2hlY2tvdXRfX3N0ZXBfX21pcnJvcixcbiAgICAuYWRkb25fYnV0dG9ucyB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICRjaGVja291dC1sYXJnZS1zcGFjaW5nO1xuICAgIH1cbn0iLCJAaW1wb3J0IFwiZm91bmRhdGlvbi9jb21wb25lbnRzL3JldmVhbFwiO1xuLy9AaW1wb3J0IFwicXVpY2tmaXgvZnVuY3Rpb25zL3Nhc3Mtc3ZnXCI7IHRoaXMgZG9lcyBub3Qgd29yayBvbiBzYXNzYyBvbiBvdXIgc2VydmVyLCB1c2UgaXQgd2hlbiB5b3UgbmVlZCB0byBjaGFuZ2UgdGhlIGJhc2U2NCBzdHJpbmcgYnkgaGFuZFxuXG4kY2hlY2tvdXQta2NvLWZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsICdSb2JvdG8nLCAnT3h5Z2VuJywgJ1VidW50dScsICdDYW50YXJlbGwnLCAnRmlyYSBTYW5zJywgJ0Ryb2lkIFNhbnMnLCAnSGVsdmV0aWNhIE5ldWUnLCBzYW5zLXNlcmlmICFkZWZhdWx0O1xuJGNoZWNrb3V0LWtjby1jZWxsLXBhZGRpbmc6IC41cmVtIC43NXJlbSAhZGVmYXVsdDtcbiRjaGVja291dC1rY28tcXR5LWhlaWdodDogMnJlbSAhZGVmYXVsdDtcbiRjaGVja291dC1rY28tcm93LWhlaWdodDogJGNoZWNrb3V0LWtjby1xdHktaGVpZ2h0ICsgbnRoKCRjaGVja291dC1rY28tY2VsbC1wYWRkaW5nLCAxKSAqIDI7XG4kY2hlY2tvdXQta2NvLWNhcnQtZm9udC1zaXplOiByZW0tY2FsYygxMykgIWRlZmF1bHQ7XG4kY2hlY2tvdXQta2NvLWNhcnQtbGluZS1oZWlnaHQ6IDEuNSAhZGVmYXVsdDtcbiRjaGVja291dC1rY28tYXR0cmlidXRlLWZsYWctc2l6ZTogcmVtLWNhbGMoMTApICFkZWZhdWx0O1xuXG4kY2hlY2tvdXQta2NvLWtsYXJuYS1mb2N1cy1jb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoIzAwODljZiwgJGNvbnRlbnQtYmcpICFkZWZhdWx0O1xuJGNoZWNrb3V0LWtjby10aHVtYi1oZWlnaHQ6ICRjaGVja291dC1rY28tY2FydC1mb250LXNpemUgKiAkY2hlY2tvdXQta2NvLWNhcnQtbGluZS1oZWlnaHQgKyBudGgoJGNoZWNrb3V0LWtjby1jZWxsLXBhZGRpbmcsIDEpICogMjtcbiRjaGVja291dC1rY28tdHJhbnNpdGlvbi1kdXJhdGlvbjogNjAwbXMgIWRlZmF1bHQ7XG4kY2hlY2tvdXQta2NvLXRyYW5zaXRpb24tdGltaW5nOiBlYXNlICFkZWZhdWx0O1xuJGNoZWNrb3V0LWtjby1vdmVybGF5LWJnOiByZ2JhKGFjY2Vzc2libGUtbHVtaW5hbmNlKCRjb250ZW50LWJnLCAkY29udGVudC1iZywgNSksIDAuNSkgIWRlZmF1bHQ7XG4kY2hlY2tvdXQta2NvLW92ZXJsYXktY29sb3I6IHJnYmEoYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGNoZWNrb3V0LWtjby1vdmVybGF5LWJnLCAkY2hlY2tvdXQta2NvLW92ZXJsYXktYmcsIDIxKSwgMSkgIWRlZmF1bHQ7XG4kY2hlY2tvdXQta2NvLWJvcmRlci1jb2xvcjogcmdiYSgkY29udGVudC10ZXh0LWNvbG9yLCAwLjIpICFkZWZhdWx0O1xuJGNoZWNrb3V0LWtjby1kaXNjb3VudF9fcmF0ZV9zdHlsZTogJ3RyYW5zcGFyZW50JyAhZGVmYXVsdDtcbiRjaGVja291dC1rY28tYWN0aXZlLWJvcmRlci1jb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJHByaW1hcnktY29sb3IsICRjb250ZW50LWJnKSAhZGVmYXVsdDtcbiRjaGVja291dC1rY28tcmFkaW8tc2l6ZTogMTRweCAhZGVmYXVsdDtcblxuLy8gUmVhbCBjZWxsIHBhZGRpbmc6IFNpemUgb2YgdGhlIGJpZ2dlc3QgZWxlbWVudCBwbHVzIGNlbGwgcGFkZGluZyBtaW51cyBib3JkZXIgc2l6ZSwgbWludXMgc2l6ZSBvZiB0ZXh0LCBkaXZpZGVkIGJ5IHR3b1xuJGNoZWNrb3V0LWtjby1yZWFsLWNlbGwtcGFkZGluZzogKCRjaGVja291dC1rY28tcXR5LWhlaWdodCArIG50aCgkY2hlY2tvdXQta2NvLWNlbGwtcGFkZGluZywgMSkgKiAyIC0gcmVtLWNhbGMoMikgLSAkY2hlY2tvdXQta2NvLWNhcnQtZm9udC1zaXplICogJGNoZWNrb3V0LWtjby1jYXJ0LWxpbmUtaGVpZ2h0KS8yIG50aCgkY2hlY2tvdXQta2NvLWNlbGwtcGFkZGluZywgMikgLSByZW0tY2FsYygxKTtcblxuLy8gVmFyaWFibGVzIHVzZWQgdG8gY29tcGVuc2F0ZSBmb3IgcGFkZGluZy9tYXJnaW4gaW5zaWRlIEtDTyBpZnJhbWVcbiRrY28tcGFkZGluZzogMjBweCAxMnB4IDIwcHggMTJweDtcbiRrY28tbWF4LXdpZHRoOiA2NDBweDtcblxuXG4kc2VsZWN0LWlucHV0LWJnOiAkc2VsZWN0LWJnLWNvbG9yICFkZWZhdWx0O1xuJHNlbGVjdC1pbnB1dC1ib3JkZXItcmFkaXVzOiAzcHggIWRlZmF1bHQ7XG4kc2VsZWN0LW9wdGlvbi1zZWxlY3RlZC1jb2xvcjogJGlucHV0LWZvbnQtY29sb3I7XG4kc2VsZWN0LW9wdGlvbi1zZWxlY3RlZC1iZzogJHNlbGVjdC1iZy1jb2xvcjtcbiRzZWxlY3Qtb3B0aW9uLWZvY3VzZWQtYmc6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRwcmltYXJ5LWNvbG9yLCAkc2VsZWN0LWlucHV0LWJnLCAyKSAhZGVmYXVsdDtcbiRzZWxlY3Qtb3B0aW9uLWZvY3VzZWQtY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKHdoaXRlLCAkc2VsZWN0LW9wdGlvbi1mb2N1c2VkLWJnLCAzKTtcbiRzZWxlY3QtaW5wdXQtYm9yZGVyLXdpZHRoOiAwcHg7XG5cbkBpbXBvcnQgXCJxdWlja2ZpeC9jb21wb25lbnRzL3JlYWN0LXNlbGVjdFwiO1xuXG5AbWl4aW4gYWN0aXZpdHktaW5kaWNhdG9yKCRhY3Rpdml0eS1jb2xvcjogJGNvbnRlbnQtYmcsICRhY3Rpdml0eS1iZzogJGFjdGl2aXR5LWNvbG9yKSB7XG5cbiAgICAvKiBXZSBjYW5ub3QgcnVuIHRoaXMgdXNpbmcgc2Fzc2MgeWV0XG4gICAgQGluY2x1ZGUgc3ZnKChcbiAgICAgICAgdmlld0JveDogMCAwIDI0IDI0XG4gICAgICApKSB7XG4gICAgICAgIEBpbmNsdWRlIHN2ZygnZGVmcycpIHtcbiAgICAgICAgICBAaW5jbHVkZSBzdmcoJ3JhZGlhbEdyYWRpZW50JywgKFxuICAgICAgICAgICAgY3g6ICcyNSUnLFxuICAgICAgICAgICAgY3k6ICcyNSUnLFxuICAgICAgICAgICAgaWQ6ICdhJ1xuICAgICAgICAgICkpIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBzdmcoJ3N0b3AnLCAoXG4gICAgICAgICAgICAgICAgICBzdG9wLWNvbG9yOiAkYWN0aXZpdHktY29sb3IsXG4gICAgICAgICAgICAgICAgICBvZmZzZXQ6ICcxMCUnXG4gICAgICAgICAgICAgICAgKSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgc3ZnKCdzdG9wJywgKFxuICAgICAgICAgICAgICAgICAgc3RvcC1jb2xvcjogJGFjdGl2aXR5LWNvbG9yLFxuICAgICAgICAgICAgICAgICAgc3RvcC1vcGFjaXR5OiAwLjEsXG4gICAgICAgICAgICAgICAgICBvZmZzZXQ6ICcxMDAlJ1xuICAgICAgICAgICAgICAgICkpO1xuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgQGluY2x1ZGUgc3ZnKCdjaXJjbGUnLCAoXG4gICAgICAgICAgICBmaWxsOiBub25lLFxuICAgICAgICAgICAgY3g6IDEyLFxuICAgICAgICAgICAgY3k6IDEyLFxuICAgICAgICAgICAgcjogMTAsXG4gICAgICAgICAgICAvL3N0cm9rZS13aWR0aDogMixcbiAgICAgICAgICAgIHN0cm9rZTogXCJ1cmwoI2EpXCJcbiAgICAgICAgKSk7XG4gICAgICB9XG4gICAgICAvLyovXG4gICAgICAkY29sb3I6IHN0ci1zbGljZShpZS1oZXgtc3RyKCRhY3Rpdml0eS1jb2xvciksIDQpO1xuICAgICAgJGJnOiBzdHItc2xpY2UoaWUtaGV4LXN0cigkYWN0aXZpdHktYmcpLCA0KTtcbiAgICAgIGNvbnRlbnQ6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0ZjgsJTNDc3ZnJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMjQlMjAyNCUyMiUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dyUyRXczJTJFb3JnJTJGMjAwMCUyRnN2ZyUyMiUzRSUzQ2RlZnMlMjAlM0UlM0NyYWRpYWxHcmFkaWVudCUyMGN4JTNEJTIyMjUlMjUlMjIlMjBjeSUzRCUyMjI1JTI1JTIyJTIwaWQlM0QlMjJhJTIyJTNFJTNDc3RvcCUyMHN0b3AlMkRjb2xvciUzRCUyMiUyMyN7JGNvbG9yfSUyMiUyMG9mZnNldCUzRCUyMjEwJTI1JTIyJTJGJTNFJTNDc3RvcCUyMHN0b3AlMkRjb2xvciUzRCUyMiUyMyN7JGJnfSUyMiUyMHN0b3AlMkRvcGFjaXR5JTNEJTIyMCUyRTElMjIlMjBvZmZzZXQlM0QlMjIxMDAlMjUlMjIlMkYlM0UlM0MlMkZyYWRpYWxHcmFkaWVudCUzRSUzQyUyRmRlZnMlM0UlM0NjaXJjbGUlMjBmaWxsJTNEJTIybm9uZSUyMiUyMGN4JTNEJTIyMTIlMjIlMjBjeSUzRCUyMjEyJTIyJTIwciUzRCUyMjEwJTIyJTIwc3Ryb2tlJTNEJTIydXJsJTI4JTIzYSUyOSUyMiUyRiUzRSUzQyUyRnN2ZyUzRVwiKTtcbn1cblxuJXRhYnVsYXItbnVtcyB7XG4gICAgLy8gdGFidWxhciBudW1iZXIgc3BhY2luZyBtYWtlcyBudW1iZXJzIGVhc2llciB0byByZWFkIGluIHRhYmxlc1xuICAgIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7XG4gICAgLW1vei1mb250LWZlYXR1cmUtc2V0dGluZ3M6IFwidG51bVwiO1xuICAgIC13ZWJraXQtZm9udC1mZWF0dXJlLXNldHRpbmdzOiBcInRudW1cIjtcbiAgICBmb250LWZlYXR1cmUtc2V0dGluZ3M6IFwidG51bVwiO1xufVxuXG4lZGVjb3JhdGVkLXJhZGlvIHtcbiAgICAkY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRwcmltYXJ5LWNvbG9yLCAkY29udGVudC1iZyk7XG4gICAgaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG4gICAgaW5wdXRbdHlwZT1cInJhZGlvXCJdICsgc3BhbiB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgJjpiZWZvcmUsXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJy4nO1xuICAgICAgICAgICAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gICAgICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IC0oJGNoZWNrb3V0LWtjby1yYWRpby1zaXplLzIpO1xuICAgICAgICAgICAgbGVmdDogLSgoKCRjb2x1bW4tZ3V0dGVyKSArIHJlbS1jYWxjKCRjaGVja291dC1rY28tcmFkaW8tc2l6ZSkpLzIpO1xuICAgICAgICAgICAgd2lkdGg6ICRjaGVja291dC1rY28tcmFkaW8tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNoZWNrb3V0LWtjby1yYWRpby1zaXplO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwMHB4O1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgMzAwbXMgY3ViaWMtYmV6aWVyKDAuNjUsIDAuMDUsIDAuMzYsIDEpKTtcbiAgICAgICAgfVxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0oc2NhbGUoMC44KSk7XG4gICAgICAgIH1cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGJsYWNrIDAgMCAxcHgsIGluc2V0IGJsYWNrIDAgMCAxcHg7XG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0oc2NhbGUoMSkpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGlucHV0W3R5cGU9XCJyYWRpb1wiXTpjaGVja2VkICsgc3BhbiB7XG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybShzY2FsZSgxKSk7XG4gICAgICAgIH1cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0oc2NhbGUoMC40KSk7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBoc2xhKDAsIDAlLCAwJSwgMCkgMCAwIDFweCwgaW5zZXQgaHNsYSgwLCAwJSwgMCUsIDApIDAgMCAxcHg7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaW5wdXRbdHlwZT1cInJhZGlvXCJdW2Rpc2FibGVkXSArIHNwYW4gJjpiZWZvcmUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZShncmF5c2NhbGUoJGNvbG9yKSwgd2hpdGUpO1xuICAgIH1cbn1cblxuZm9ybTppbnZhbGlkIHtcbiAgICAuanMta2Fzc2Utb25lLXN1Ym1pdCB7XG4gICAgICAgICRiZzogYWNjZXNzaWJsZS1sdW1pbmFuY2UoZ3JheSwgJGNvbnRlbnQtYmcpO1xuICAgICAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoZ3JheSwgJGJnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJnO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgLW1zLXVzZXItc2VsZWN0OiBub25lOyAgICAgICAvKiBJRS9FZGdlICovXG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICBvcGFjaXR5OiAwLjY7XG4gICAgfVxufVxuXG4uY2hlY2tvdXRfX3N0ZXAtLXNoaXBwaW5nIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMjtcbn1cbi5mcmVpZ2h0LS1waWNrdXAtcG9pbnQge1xuICAgIGNsZWFyOiBib3RoO1xufVxuLlNlbGVjdC1jb250cm9sIHtcbiAgICAvLyBAVE9ETyByZXVzZSBvdXIgdmFyaWFibGVzIHNvIGl0IHdvcmtzIGluIGFsbCB0aGVtZXMgYW5kIGFueSBjb25maWcgbGlrZSA8c2VsZWN0PlxuICAgIGZvbnQtc2l6ZTogJGlucHV0LWZvbnQtc2l6ZTtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgIG1hcmdpbi1sZWZ0OiAxcHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAxcHg7XG4gICAgYm94LXNoYWRvdzogJGlucHV0LWJvcmRlci1jb2xvciAwIDAgMCAxcHg7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgYm94LXNoYWRvdzogJGlucHV0LWJvcmRlci1jb2xvciAwIDAgMCAxcHgsIGhzbGEoMCwgMCUsIDAlLCAuMSkgMCA1cHggMTBweDtcbiAgICB9XG59XG4uU2VsZWN0LW9wdGlvbiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGZvbnQtc2l6ZTogJGlucHV0LWZvbnQtc2l6ZTtcbiAgICBwYWRkaW5nLWxlZnQ6IDEuNmVtO1xufVxuLlNlbGVjdC1vcHRpb24uaXMtc2VsZWN0ZWQ6YmVmb3JlIHtcbiAgICBjb250ZW50OiAn4pyTJztcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMik7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogcmVtLWNhbGMoOHB4KTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMS42ZW07XG59XG4uU2VsZWN0LW9wdGlvbi5pcy1zZWxlY3RlZDpob3ZlciB7XG4gICAgY29sb3I6ICRzZWxlY3Qtb3B0aW9uLWZvY3VzZWQtY29sb3I7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHNlbGVjdC1vcHRpb24tZm9jdXNlZC1iZztcbn1cbi5TZWxlY3QtbWVudS1vdXRlciB7XG4gICAgYm9yZGVyLXdpZHRoOiAwcHg7XG4gICAgbWFyZ2luLWxlZnQ6IDFweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDFweDtcbn1cbi5TZWxlY3QtbWVudSB7XG4gICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDNweDtcbiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAzcHg7XG4gICAgYm94LXNoYWRvdzogJGlucHV0LWJvcmRlci1jb2xvciAwIDAgMCAxcHgsIGhzbGEoMCwgMCUsIDAlLCAuMSkgMCA1cHggMTBweDtcbn1cblxuLmNoZWNrb3V0LS1rY28gLmpzLWF0dGFjaF9jb21tZW50IHtcblxuICAgIHBhZGRpbmctbGVmdDogMDtcblxuICAgICY6YmVmb3JlIHtcbiAgICAgICAgQGluY2x1ZGUgaWNvbigkaWNvbi12YXItYWRkKTtcbiAgICB9XG59XG5cbiNrbGFybmEtY2hlY2tvdXQtY29udGFpbmVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWF4LXdpZHRoOiAka2NvLW1heC13aWR0aCArIG50aCgka2NvLXBhZGRpbmcsIDIpICsgbnRoKCRrY28tcGFkZGluZywgNCk7IC8vIG1heCB3aWR0aCArIHNpZGUgcGFkZGluZ3NcbiAgICBAaWYgJGNvbnRlbnQtYmcgIT0gI2ZmZiB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgfVxuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOyAvLyBrbGFybmFzIGlmcmFtZSBpcyBhbHdheXMgd2hpdGVcbn1cblxuLmNoZWNrb3V0LS1rY29fX292ZXJsYXkge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRjb250ZW50LWJnLCAkY29udGVudC1iZyk7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgei1pbmRleDogMTtcblxuICAgICYsICYgKyAqIHtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtLW9yaWdpbig1MCUgMCUpO1xuICAgIH1cblxuICAgIGVtIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTYpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogcmVtLWNhbGMoMTApO1xuICAgICAgICByaWdodDogcmVtLWNhbGMoMTApO1xuICAgIH1cbn1cblxuLmZyZWlnaHQtb3B0aW9uIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBib3JkZXI6IDFweCByZ2JhKCRjaGVja291dC1rY28tYWN0aXZlLWJvcmRlci1jb2xvciwgMC42KSBzb2xpZDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAtKCRjb2x1bW4tZ3V0dGVyLzQpO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYm90dG9tOiAtKCRjb2x1bW4tZ3V0dGVyLzgpO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0oc2NhbGVYKDAuOTgpIHNjYWxlWSgwLjgpKTtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgMzAwbXMgY3ViaWMtYmV6aWVyKDAuNjUsIDAuMDUsIDAuMzYsIDEpKTtcbiAgICB9XG4gICAgJi5hY3RpdmUge1xuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHNjYWxlWCgxKSBzY2FsZVkoMSkpO1xuICAgICAgICB9XG4gICAgfVxuICAgID4gbGFiZWwge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIEBleHRlbmQgJWRlY29yYXRlZC1yYWRpbztcbiAgICB9XG4gICAgJi5pbmFjdGl2ZSB7XG4gICAgICAgID4gKiB7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjM7XG4gICAgICAgIH1cbiAgICB9XG59XG4ua2NvX3NoaXBwaW5nX3Nob3dfbW9yZV9vcHRpb25zIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgIG1hcmdpbi1sZWZ0OiAzcHg7XG4gICAgcGFkZGluZy1ib3R0b206IC41cmVtO1xuICAgIHBhZGRpbmctdG9wOiAuNzVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAxLjVyZW07XG59XG5cbi5jaGVja291dC0ta2NvX19wYXltZW50LW9wdGlvbnMsIC5jdXN0b21lci10eXBlIHtcbiAgICAuY29udHJvbC1ncm91cCB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjJyZW07XG4gICAgICAgIGJveC1zaGFkb3ctYm90dG9tOiAwIDFweCAwICRjaGVja291dC1rY28tYm9yZGVyLWNvbG9yO1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICBsYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAxNTBtcyBlYXNlKTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgb3BhY2l0eTogMC42O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cbiAgICAgICAgOmNoZWNrZWQgKyBsYWJlbCB7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIE92ZXJyaWRlIHN0dXBpZCBoYXJkY29kZWQgRm91bmRhdGlvbiBzdHlsaW5nXG4ucmV2ZWFsLW1vZGFsIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAxNnB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb250ZW50LWJnO1xuXG4gICAgLmNsb3NlLXJldmVhbC1tb2RhbCB7XG4gICAgICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkY29udGVudC1iZywgJGNvbnRlbnQtYmcpO1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgjZjAwLCAkY29udGVudC1iZyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcbiAgICAgIG1pbi1oZWlnaHQ6IGluaXRpYWwhaW1wb3J0YW50O1xuICAgIH1cbn1cblxuLmNoZWNrb3V0LS1rY29fX3BhZ2UtaGVhZGVyIHtcbiAgICBmb250LWZhbWlseTogJGNoZWNrb3V0LWtjby1mb250LWZhbWlseTtcbn1cblxuLmNoZWNrb3V0LS1rY29fX2N1c3RvbS1pbnRybyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi1ib3R0b206IDJlbTtcbiAgICBAZXh0ZW5kIC5ib3JkZXJlZDtcbiAgICBAZXh0ZW5kIC5ib3JkZXJlZC0tYm90dG9tO1xuXG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgIH1cbn1cblxuLmNoZWNrb3V0LS1rY28ge1xuICAgIGZvbnQtZmFtaWx5OiAkY2hlY2tvdXQta2NvLWZvbnQtZmFtaWx5O1xuXG4gICAgLnByaWNlLWRpZmYge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgfVxuICAgIC5jdXJyZW50LXByaWNlIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBvcGFjaXR5OiAwLjc1O1xuICAgIH1cbiAgICAucGVuZGluZy1wcmljZSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDFlbTtcbiAgICAgICAgaGVpZ2h0OiAxZW07XG4gICAgfVxuXG4gICAgLmNoZWNrb3V0X19zdGVwX19oZWFkbGluZSB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkY2hlY2tvdXQta2NvLWZvbnQtZmFtaWx5O1xuICAgIH1cblxuICAgICYuY2hlY2tvdXRfX3N0ZXBzIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgfVxuXG4gICAgLmNoZWNrb3V0X19zdGVwIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDFyZW07XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAxcmVtO1xuICAgICAgICBAZXh0ZW5kIC5ib3JkZXJlZDtcbiAgICAgICAgQGV4dGVuZCAuYm9yZGVyZWQtLWJvdHRvbTtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmNoZWNrb3V0X19ib3R0b20tdG9vbGJhciA+IC5jb2x1bW5zIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41ZW07XG4gICAgfVxuXG4gICAgLmNoZWNrb3V0X19zdGVwX19oZWFkbGluZSB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luOiAwIDAgLjVyZW0gMDtcbiAgICAgICAgcGFkZGluZzogMCAwIC41cmVtIDA7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICB9XG5cbiAgICAua2Fzc2Vfb25lX3N0ZXBfbnVtYmVyIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICAuYWRkb25fYnV0dG9ucyB7XG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAuZWRpdF9zdGVwIHtcbiAgICAgICAgICAgICRiZzogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJHNlY29uZGFyeS1jb2xvciwgJGNvbnRlbnQtYmcsIDEuMik7XG4gICAgICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAuNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmc7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRzZWNvbmRhcnktYnV0dG9uLWJvcmRlci1jb2xvciwgJGNvbnRlbnQtYmcpO1xuICAgICAgICAgICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRzZWNvbmRhcnktY29sb3IsICRiZywgNik7XG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAzMDBtcyBlYXNlKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgJGJnOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkc2Vjb25kYXJ5LWNvbG9yLCAkY29udGVudC1iZywgMik7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJnO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkc2Vjb25kYXJ5LWNvbG9yLCAkYmcsIDYpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIEFwcGx5IHRoZSBLQ08gc3R5bGluZywgdG8gbWFrZSB0aGluZ3MgYXBwZWFyIGxpa2UgS0NPXG4gICAgLmNoZWNrb3V0LWtjb19fYWRkcmVzcy1mb3JtIHtcbiAgICAgICAgaW5wdXQsIGJ1dHRvbiwgc2VsZWN0IHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICAgICAgfVxuICAgICAgICAuY2hlY2tvdXQtLWtjb19fc2hpcHBpbmctY291bnRyeSB7XG4gICAgICAgICAgICBzZWxlY3RbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgYnV0dG9uLFxuICAgIC5idXR0b24sXG4gICAgaW5wdXRbdHlwZT1cIm51bWJlclwiXSxcbiAgICAuZWRpdF9zdGVwIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIH1cblxuICAgIGJ1dHRvbixcbiAgICAuYnV0dG9uLFxuICAgIGlucHV0W3R5cGU9c3VibWl0XSxcbiAgICAuZWRpdF9zdGVwIHtcbiAgICAgICAgJjpub3QoLnJlbW92ZV9yYWJhdHQpOm5vdCgucmVtb3ZlX2dpZnRjYXJkKSB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAkY2hlY2tvdXQta2NvLWZvbnQtZmFtaWx5O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCByZ2JhKDI1NSwyNTUsMjU1LDAuMSksIGluc2V0IDAgLTNweCAwIHJnYmEoMCwwLDAsMC4xKSwgMCAycHggNXB4IHJnYmEoMCwwLDAsMC4xKTtcblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgM3B4IDAgcmdiYSgwLDAsMCwwLjEpO1xuICAgICAgICAgICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubmV4dC1zdGVwLWJ0biB7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuICAgIH1cblxuICAgIC5lZGl0X3N0ZXAge1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDEzKTtcblxuICAgICAgICAuaWNvbi1hZGQge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNnJlbTsgLyogdG8gZml4ZWQgYSBtZXNzZWQgdXAgcm90YXRlIGFuaW1hdGlvbiAqL1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgMTUwbXMgZWFzZSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLmRpc2FibGVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjM7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTsgICAgICAgLyogSUUvRWRnZSAqL1xuICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpbnB1dFt0eXBlPVwidGV4dFwiXSxcbiAgICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdLFxuICAgIGlucHV0W3R5cGU9XCJ0ZWxcIl0sXG4gICAgaW5wdXRbdHlwZT1cImVtYWlsXCJdIHtcbiAgICAgICAgJjpmb2N1cywgJi5mb2N1cyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkY2hlY2tvdXQta2NvLWtsYXJuYS1mb2N1cy1jb2xvcjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDFweCAwIGhzbGEoMCwgMCUsIDAlLCAwLjE3KSxpbnNldCAwIDFweCAzcHggcmdiYSgwLDAsMCwwLjA2KSwwIDAgM3B4IDFweCAkY2hlY2tvdXQta2NvLWtsYXJuYS1mb2N1cy1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC56aXAge1xuICAgICAgICAmOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuICAgICAgICAmOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgICAgICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cbi5jaGVja291dC0ta2NvX19zaGlwcGluZy16aXAge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIGxhYmVsIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgbWFyZ2luLXRvcDogLTEuMTI1cmVtO1xuICAgICAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICBjb2xvcjogcmdiYSgkaW5wdXQtZm9udC1jb2xvciwgLjUpO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgbGVmdDogNWVtO1xuICAgICAgICBsZWZ0OiA3Y2g7XG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0tb3JpZ2luKDkwJSA1MCUpO1xuICAgIH1cbiAgICBpbnB1dC5pbnZhbGlkOm5vdCg6Zm9jdXMpIHtcbiAgICAgICAgJGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgjZjAwLCAkY29udGVudC1iZyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvcjtcbiAgICAgICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCNmMDAsICRpbnB1dC1iZy1jb2xvcik7XG4gICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDFweCAwIGhzbGEoMCwgMCUsIDAlLCAwLjE3KSxpbnNldCAwIDFweCAzcHggcmdiYSgwLDAsMCwwLjA2KSwwIDAgM3B4IDFweCAkY29sb3I7XG4gICAgfVxufVxuXG4vLyBDb21wZW5zYXRlIGZvciB0aGUgS0NPIHdpbmRvdydzIHBhZGRpbmcvbWFyZ2luXG4uY2hlY2tvdXRfX3N0ZXAtLWtjby13aW5kb3cge1xuICAgICY6b25seS1jaGlsZCB7XG4gICAgICAgIC5jaGVja291dF9fc3RlcF9fY29udGVudHMge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmtjby1wYXltZW50LXdyYXBwZXIsIC5hbHRlcm5hdGUtcGF5bWVudC13cmFwcGVyIHtcbiAgICBtaW4taGVpZ2h0OiAzMDBweDtcbn1cbi5rY28tcGF5bWVudC13cmFwcGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IC8vIHRvIHBvc2l0aW9uIG92ZXJsYXlcbiAgICBtYXJnaW46IC0xKm50aCgka2NvLXBhZGRpbmcsIDEpIC0xKm50aCgka2NvLXBhZGRpbmcsIDIpIC0xKm50aCgka2NvLXBhZGRpbmcsIDIpIC0xKm50aCgka2NvLXBhZGRpbmcsIDQpOyAvLyBDb21wZW5zYXRlIGZvciBrbGFybmEgd2luZG93IHBhZGRpbmdcbn1cblxuLmFsdGVybmF0ZS1wYXltZW50LXdyYXBwZXIge1xuICAgIC5jaGVja291dF9fc3RlcF9faGVhZGxpbmUge1xuICAgICAgICBtYXJnaW4tbGVmdDogcmVtLWNhbGMoOSk7XG4gICAgfVxufVxuXG4uY2hlY2tvdXRfX3N0ZXBzLS1pY29uaXplZCB7XG4gICAgLmthc3NlX29uZV9zdGVwX251bWJlciB7XG4gICAgICAgIHdpZHRoOiAyLjVyZW07XG4gICAgICAgIGhlaWdodDogMi41cmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMi41cmVtO1xuICAgICAgICBtYXJnaW4tbGVmdDogMS4yNXJlbTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgNXB4IHJnYmEoMCwwLDAsLjUpO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDdweDtcbiAgICAgICAgICAgIGxlZnQ6IDdweDtcbiAgICAgICAgICAgIHJpZ2h0OiA3cHg7XG4gICAgICAgICAgICBib3R0b206IDdweDtcbiAgICAgICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIH1cbiAgICAgICAgLmljb24tbG9hZGluZy1pbmRpY2F0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMHB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpIHtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDAgNXB4IHJnYmEoMCwwLDAsLjUpO1xuICAgICAgICAgICAgY29sb3I6ICRjb250ZW50LWJnO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmNoZWNrb3V0X19zdGVwX19oZWFkbGluZSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyLjVyZW07XG4gICAgfVxufVxuXG4uY2hlY2tvdXQtLWtjb19fd3JhcHBlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgbWluLWhlaWdodDogMjEwcHg7XG4gICAgbWluLWhlaWdodDogNTB2aDtcblxuICAgIC5hY3Rpdml0eS1pbmRpY2F0b3Ige1xuICAgICAgICAkc2l6ZTogMzhweDtcbiAgICAgICAgJGJnOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkcHJpbWFyeS1jb2xvciwgJGNvbnRlbnQtYmcpO1xuXG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7ICAgICAgIC8qIElFL0VkZ2UgKi9cbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB6LWluZGV4OiAzMDA7XG4gICAgICAgIGhlaWdodDogJHNpemU7XG4gICAgICAgIHdpZHRoOiAkc2l6ZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwMHB4O1xuICAgICAgICBib3gtc2hhZG93OiByZ2JhKDAsIDAsIDAsIDAuNSkgMCAwIDFweCwgcmdiYSgwLCAwLCAwLCAwLjMpIDAgMnB4IDZweDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJnO1xuICAgICAgICBwYWRkaW5nOiA0cHg7XG4gICAgICAgIHotaW5kZXg6IDQwMDtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaXplIC8gMjtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2l6ZSAvIDI7XG5cbiAgICAgICAgd2lsbC1jaGFuZ2U6IG9wYWNpdHksIHRyYW5zZm9ybTtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHNjYWxlKDAuNikpO1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAzMDBtcyBjdWJpYy1iZXppZXIoLjY1LC4wNSwuMzYsMSkpO1xuXG4gICAgICAgIC5zdmcge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGFuaW1hdGlvbihhY3Rpdml0eS1yb3RhdGUgNjAwbXMgbGluZWFyIGluZmluaXRlKTtcblxuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGFjdGl2aXR5LWluZGljYXRvcigkY29udGVudC1iZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmICsgZGl2IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24ob3BhY2l0eSAzMDBtcyBjdWJpYy1iZXppZXIoLjY1LC4wNSwuMzYsMSkpO1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYuaXMtbG9hZGluZyxcbiAgICAmLmlzLXVwbG9hZGluZyB7XG4gICAgICAgIGN1cnNvcjogcHJvZ3Jlc3M7XG5cbiAgICAgICAgLmFjdGl2aXR5LWluZGljYXRvciB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0oc2NhbGUoMSkpO1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcblxuICAgICAgICAgICAgJiArIGRpdiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihvcGFjaXR5IDMwMDBtcyBlYXNlLW91dCk7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgLW1zLXVzZXItc2VsZWN0OiBub25lOyAgICAgICAvKiBJRS9FZGdlICovXG4gICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC4yNTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmthc3NlX29uZV9zdGVwX251bWJlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLy8gQFRPRE8gd2UgbWlnaHQgd2FudCB0byByZXVzZSB0aGlzIG90aGVyIHBsYWNlcyBpbiB0aGUgZnV0dXJlXG4uaWNvbi1sb2FkaW5nLWluZGljYXRvci5pcy1sb2FkaW5nIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICBoZWlnaHQ6IDFlbTtcbiAgICAgICAgd2lkdGg6IDFlbTtcbiAgICAgICAgbWFyZ2luOiAuM2VtO1xuXG4gICAgICAgIEBpbmNsdWRlIGFjdGl2aXR5LWluZGljYXRvcihhY2Nlc3NpYmxlLWx1bWluYW5jZSgkY29udGVudC1iZywgJHN0ZXAtbnVtYmVyLWJnKSwgJGNvbnRlbnQtYmcpO1xuICAgIH1cbiAgICBAaW5jbHVkZSBhbmltYXRpb24oYWN0aXZpdHktcm90YXRlIDYwMG1zIGxpbmVhciBpbmZpbml0ZSk7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIC8qd2lkdGg6IDJyZW07XG4gICAgd2lkdGg6IHJlbS1jYWxjKDI0KTtcbiAgICBoZWlnaHQ6IDJyZW07XG4gICAgaGVpZ2h0OiByZW0tY2FsYygyNCk7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpO1xuICAgIGxpbmUtaGVpZ2h0OiAycmVtO1xuICAgIGxpbmUtaGVpZ2h0OiByZW0tY2FsYygyNCk7XG4gICAgKi9cbn1cblxudGFibGUuY2hlY2tvdXQtLWtjb19fY2FydCB7XG5cbiAgICAvLyBib3gtc2hhZG93OiAwIDAgMXJlbSByZ2JhKDAsMCwwLDAuMSk7XG4gICAgb3V0bGluZTogMXB4IHNvbGlkIHJnYmEoJGNvbnRlbnQtdGV4dC1jb2xvciwgMC4xKTtcblxuICAgIHRoLFxuICAgIHRkIHtcbiAgICAgICAgZm9udC1zaXplOiAkY2hlY2tvdXQta2NvLWNhcnQtZm9udC1zaXplO1xuICAgICAgICBsaW5lLWhlaWdodDogJGNoZWNrb3V0LWtjby1jYXJ0LWxpbmUtaGVpZ2h0O1xuICAgICAgICBwYWRkaW5nOiAkY2hlY2tvdXQta2NvLWNlbGwtcGFkZGluZztcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgkY29udGVudC10ZXh0LWNvbG9yLCAwLjA1KTtcblxuICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5wcmljZSB7XG4gICAgICAgICAgICBAZXh0ZW5kICV0YWJ1bGFyLW51bXM7XG5cbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICB3aWR0aDogMXB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdGhlYWQgdGgge1xuICAgICAgICBib3gtc2hhZG93OiAwIDNweCAwIHJnYmEoMCwwLDAsMC4wNCk7XG4gICAgICAgIHBhZGRpbmc6IC43NXJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoJGNvbnRlbnQtdGV4dC1jb2xvciwgMC4wNSk7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKCNmZmYsIDAuNSk7XG4gICAgfVxuXG4gICAgdGJvZHkgdHI6bGFzdC1jaGlsZCB0ZCB7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgM3B4IDAgcmdiYSgwLDAsMCwwLjAyKTtcbiAgICB9XG5cbiAgICB0Zm9vdC5zdW0gdGQge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgjZmZmLCAwLjUpO1xuICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICBib3gtc2hhZG93OiAwIDNweCAwIHJnYmEoMCwwLDAsMC4wNCk7XG4gICAgfVxuXG4gICAgLm1pbmktaW1nIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIGhlaWdodDogJGNoZWNrb3V0LWtjby10aHVtYi1oZWlnaHQ7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuZGlzY291bnQsXG4gICAgLnNoaXBwaW5nLFxuICAgIC5naWZ0Y2FyZCB7XG4gICAgICAgIC5taW5pLWltZyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBbY2xhc3NePVwiaWNvbi1cIl0ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiBudGgoJGNoZWNrb3V0LWtjby1jZWxsLXBhZGRpbmcsIDIpO1xuICAgICAgICAgICAgICAgIHRvcDogMXB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnByb2R1Y3QtbmFtZSB7XG4gICAgICAgICAgICB0ZXh0LWluZGVudDogbnRoKCRjaGVja291dC1rY28tY2VsbC1wYWRkaW5nLCAyKSAqIDI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuZGlzY291bnRfX3JhdGUge1xuICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTEpO1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIG1hcmdpbjogcmVtLWNhbGMoLTYgNiAwIDYpO1xuICAgICAgICBwYWRkaW5nOiByZW0tY2FsYygyIDUpO1xuXG4gICAgICAgIEBpZiAkY2hlY2tvdXQta2NvLWRpc2NvdW50X19yYXRlX3N0eWxlID09ICdzb2xpZCcge1xuICAgICAgICAgICAgY29sb3I6ICRjb250ZW50LWJnO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGNhbGwtdG8tYWN0aW9uLWNvbG9yLCAkY29udGVudC1iZyk7XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgJGRpc2NvdW50X19yYXRlX2NvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkY2FsbC10by1hY3Rpb24tY29sb3IsICRjb250ZW50LWJnKSAhZGVmYXVsdDtcbiAgICAgICAgICAgIGNvbG9yOiAkZGlzY291bnRfX3JhdGVfY29sb3I7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRkaXNjb3VudF9fcmF0ZV9jb2xvciwgMC4yNSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYXR0cmlidXRlcyB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgfVxuXG4gICAgLnByb2R1Y3QtbmFtZSB7XG4gICAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IC8vIG5lY2Vzc2FyeSBmb3IgdGhlIGF0dHJpYnV0ZXMgcG9wdXBcbiAgICB9XG5cbiAgICAuY2hlY2tvdXRfX3F0eSB7XG4gICAgICAgIGhlaWdodDogJGNoZWNrb3V0LWtjby1xdHktaGVpZ2h0O1xuICAgICAgICBwYWRkaW5nOiAuMjVyZW0gMCAuMjVyZW0gLjI1cmVtO1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIEBleHRlbmQgJXRhYnVsYXItbnVtcztcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgMzAwbXMgZWFzZSk7XG5cbiAgICAgICAgJi5wcmltYXJ5LWNvbG9yLWJnOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHByaW1hcnktY29sb3I7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggMCBoc2xhKDAsIDAlLCAwJSwgMC4xNyksaW5zZXQgMCAxcHggM3B4IHJnYmEoMCwwLDAsMC4wNiksMCAwIDNweCAxcHggJHByaW1hcnktY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuc3VidGF4ZXMge1xuICAgICAgICBvcGFjaXR5OiAwLjY7XG4gICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICB9XG5cbiAgICAuc2VydmljZSxcbiAgICAuZGlzY291bnQsXG4gICAgLmdpZnRjYXJkLFxuICAgIC5zaGlwcGluZyB7XG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogbm9uZTtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uY2hlY2tvdXQtLWtjb19fZnJlaWdodC1wcm90aXAge1xuICAgICRiZzogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGNvbnRlbnQtYmcsICRjb250ZW50LWJnLCAxLjEpO1xuICAgICRjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGJnLCAkYmcpO1xuICAgIGJvdHRvbTogMTAwJTtcblxuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiZztcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogLTAuNXJlbTtcbiAgICBwYWRkaW5nOiA0cHggN3B4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIHN0cm9uZyB7XG4gICAgICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkYmcsICRiZywgNik7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgfVxuXG4gICAgJjphZnRlciB7XG4gICAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSg2cHgsICRiZywgdG9wKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgIGxlZnQ6IDhweDtcbiAgICB9XG59XG5cbiAuY2hlY2tvdXQtLWtjb19fcGF5bWVudC1ub3RpY2Uge1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuLmNoZWNrb3V0X19wcm9kdWN0LW5hbWUtd3JhcCB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLnByb2R1Y3QtbmFtZS0taGFzLWF0dHJpYnV0ZXMge1xuICAgICY6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgIHdpZHRoOiAwO1xuICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICAgIGJvcmRlci13aWR0aDogMCAkY2hlY2tvdXQta2NvLWF0dHJpYnV0ZS1mbGFnLXNpemUgJGNoZWNrb3V0LWtjby1hdHRyaWJ1dGUtZmxhZy1zaXplIDA7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGNhbGwtdG8tYWN0aW9uLWNvbG9yLCAkY29udGVudC1iZykgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gICAgfVxuXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcblxuICAgICAgICAuY2hlY2tvdXRfX3Byb2R1Y3QtbmFtZS13cmFwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgei1pbmRleDogMztcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRjaGVja291dC1rY28tcmVhbC1jZWxsLXBhZGRpbmc7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBpZigkY29udGVudC1iZy1pcy1kYXJrLCBsaWdodGVuKCRjb250ZW50LWJnLCA0JSksIGRhcmtlbigkY29udGVudC1iZywgNCUpKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRjb250ZW50LWJnO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDEwcHggcmdiYSgwLDAsMCwwLjEpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uY2hlY2tvdXQtLWtjb19fY29ycG9yYXRlLWxpbmsge1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG59XG5cbi5jaGVja291dC0ta2NvX19rZWVwLXNob3BwaW5nIHtcbiAgICBtYXJnaW4tbGVmdDogLjVyZW07XG59XG5cbi5jaGVja291dC0ta2NvX19wYXltZW50LW5vdGljZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZy10b3A6IHJlbS1jYWxjKDcpO1xuICAgIHBhZGRpbmctYm90dG9tOiByZW0tY2FsYyg3KTtcbn1cblxuLmtjb19zaGlwcGluZ19vcHRpb25zIHtcbiAgICBtYXJnaW4tdG9wOiAkY29sdW1uLWd1dHRlci80O1xuICAgIG1hcmdpbi1ib3R0b206ICRjb2x1bW4tZ3V0dGVyLzQ7XG4gICAgLmZyZWlnaHQtb3B0aW9uIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcblxuICAgICAgICBsYWJlbCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogJGNvbHVtbi1ndXR0ZXIvMjtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAkY29sdW1uLWd1dHRlci8yO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAoJGNvbHVtbi1ndXR0ZXIvMikgKyByZW0tY2FsYygkY2hlY2tvdXQta2NvLXJhZGlvLXNpemUpO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJGNvbHVtbi1ndXR0ZXIvMjtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmNoZWNrb3V0X19wYXltZW50LW1ldGhvZHMtbGlzdCB7XG4gICAgPiA6Zmlyc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAoJGNvbHVtbi1ndXR0ZXIvOCk7XG4gICAgfVxuICAgICRib3JkZXItY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRwcmltYXJ5LWNvbG9yLCAkY29udGVudC1iZyk7XG5cbiAgICBsaXN0LXN0eWxlOiBub25lO1xuXG4gICAgLnBheW1lbnQtbWV0aG9kIHtcbiAgICAgICAgJjpmaXJzdC1vZi10eXBlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYm94LXNoYWRvdyAzMDBtcyBjdWJpYy1iZXppZXIoMC42NSwgMC4wNSwgMC4zNiwgMSkpO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAtMXB4IDAgcmdiYSgkY2hlY2tvdXQta2NvLWJvcmRlci1jb2xvciwgMCk7XG4gICAgICAgICAgICAmOmZpcnN0LW9mLXR5cGU6bm90KC5wYXltZW50LW1ldGhvZC0tYWN0aXZlKSB7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogMCAtMXB4IDAgJGNoZWNrb3V0LWtjby1ib3JkZXItY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBkaXNwbGF5OiBibG9jazsgLy8gRG8gbm90IHVzZSBpbmxpbmUtYmxvY2ssIGl0IGNhdXNlcyBpcnJpdGF0aW5nIHdoaXRlLXNwYWNlXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggcmdiYSgkY2hlY2tvdXQta2NvLWFjdGl2ZS1ib3JkZXItY29sb3IsIDAuNikgc29saWQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRjb250ZW50LWJnO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IC0oJGNvbHVtbi1ndXR0ZXIvOCk7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBib3R0b206IC0oJGNvbHVtbi1ndXR0ZXIvOCk7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHNjYWxlWCgwLjk4KSBzY2FsZVkoMC44KSk7XG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAzMDBtcyBjdWJpYy1iZXppZXIoMC42NSwgMC4wNSwgMC4zNiwgMSkpO1xuICAgICAgICB9XG4gICAgICAgICYucGF5bWVudC1tZXRob2QtLWFjdGl2ZSB7XG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0oc2NhbGVYKDEpIHNjYWxlWSgxKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBsYWJlbCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogKCRjb2x1bW4tZ3V0dGVyLzIpICsgcmVtLWNhbGMoJGNoZWNrb3V0LWtjby1yYWRpby1zaXplKTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRjb2x1bW4tZ3V0dGVyO1xuICAgICAgICAgICAgcGFkZGluZy10b3A6ICRjb2x1bW4tZ3V0dGVyLzQ7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogJGNvbHVtbi1ndXR0ZXIvNDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIEBleHRlbmQgJWRlY29yYXRlZC1yYWRpbztcblxuICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiByZW0tY2FsYygyMik7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpbnB1dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGltZyB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDE1MHB4O1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzBweDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4ycmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAuNXJlbTtcbiAgICB9XG59XG4uY2hlY2tvdXRfX3BheW1lbnQtbWV0aG9kcy1wcmVmaXgsIC5wYXltZW50LW1ldGhvZCB7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygxNSk7XG59XG4uY2hlY2tvdXQtLWtjb19fYWx0ZXJuYXRlLXBheW1lbnQge1xuICAgIGlucHV0LmNoZWNrLXZhbGlkaXR5OmludmFsaWQ6bm90KDpmb2N1cyksIGlucHV0LmNoZWNrLXZhbGlkaXR5LmludmFsaWQ6bm90KDpmb2N1cykge1xuICAgICAgICAkY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCNmMDAsICRjb250ZW50LWJnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yO1xuICAgICAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoI2YwMCwgJGlucHV0LWJnLWNvbG9yKTtcbiAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IDAgaHNsYSgwLCAwJSwgMCUsIDAuMTcpLGluc2V0IDAgMXB4IDNweCByZ2JhKDAsMCwwLDAuMDYpLDAgMCAzcHggMXB4ICRjb2xvcjtcbiAgICB9XG59XG5cbi8vIEBUT0RPIG5lZWRzIG1vcmUgd29ya1xuLy9AbWVkaWEgI3skc21hbGwtcGx1cy1kb3dufSB7XG4vLyAgICAvLyBEaXNhYmxlIGlPUyB0ZXh0IGlucHV0IHpvb20sIGlPUyA5IGNoYW5nZWQgZm9udC1zaXplIGZyb20gMTZweCB0byAyMnB4XG4vLyAgICAuY2hlY2tvdXQtLWtjbyB7XG4vLyAgICAgICAgaW5wdXRbdHlwZT1cInRleHRcIl0sXG4vLyAgICAgICAgaW5wdXRbdHlwZT1cImVtYWlsXCJdLFxuLy8gICAgICAgIGlucHV0W3R5cGU9XCJ0ZWxcIl0sXG4vLyAgICAgICAgc2VsZWN0IHtcbi8vICAgICAgICAgICAgcGFkZGluZzogMC4ycmVtIDAuNXJlbTtcbi8vICAgICAgICB9XG4vLyAgICAgICAgaW5wdXRbdHlwZT1cInRleHRcIl0sXG4vLyAgICAgICAgaW5wdXRbdHlwZT1cImVtYWlsXCJdLFxuLy8gICAgICAgIGlucHV0W3R5cGU9XCJ0ZWxcIl0sXG4vLyAgICAgICAgaW5wdXRbdHlwZT1cIm51bWJlclwiXSxcbi8vICAgICAgICBzZWxlY3Qge1xuLy8gICAgICAgICAgICBmb250LXNpemU6IDIycHg7XG4vLyAgICAgICAgfVxuLy8gICAgfVxuLy99XG4ua2NvLXBheW1lbnQtd3JhcHBlciB7XG4gICAgbWFyZ2luLXRvcDogMDtcbn1cblxuQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcbiAgICAuY2hlY2tvdXRfX2JvdHRvbS10b29sYmFyLXJpZ2h0IHtcbiAgICAgICAgYnV0dG9uLmpzLWNoZWNrb3V0X3VwZGF0ZSB7XG4gICAgICAgICAgICB0b3A6IC0oJGNvbHVtbi1ndXR0ZXIvMikhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxuICAgIC5jaGVja291dF9fcGF5bWVudC1tZXRob2RzLWxpc3Qge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6ICRjb2x1bW4tZ3V0dGVyLzI7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICRjb2x1bW4tZ3V0dGVyLzI7XG4gICAgfVxufVxuXG5AbWVkaWEgI3skc21hbGwtcGx1cy11cH0ge1xuICAgIC5jaGVja291dC0ta2NvX19wYXltZW50IC5jb250cm9sLWdyb3VwIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICAgIC8vIEBUT0RPIHdoeSBpcyB0aGlzIGtjb3M/XG4gICAgLmNoZWNrb3V0LS1rY29zIHtcbiAgICAgICAgLmFkZG9uX2J1dHRvbnMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiByZW0tY2FsYyg3KSArIDFyZW07XG4gICAgICAgICAgICByaWdodDogMDtcblxuICAgICAgICAgICAgLmVkaXRfc3RlcC5kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgIC5yb3cgLnJvdy5jaGVja291dC1rY29fX2FkZHJlc3MtZm9ybSB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICRjb2x1bW4tZ3V0dGVyLzI7XG4gICAgfVxuICAgIC5yb3cgLmNoZWNrb3V0LS1rY29fX2ZyZWlnaHQtb3B0aW9ucyB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogJGNvbHVtbi1ndXR0ZXIvMjtcbiAgICB9XG4gICAgLmNoZWNrb3V0LS1rY29fX2ZyZWlnaHQge1xuICAgICAgICBib3gtc2hhZG93OiBpbnNldCAxcHggMCAwICRjaGVja291dC1rY28tYm9yZGVyLWNvbG9yO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkY29sdW1uLWd1dHRlci8yO1xuICAgIH1cbiAgICAuY2hlY2tvdXQtLWtjb19fcGF5bWVudC1hbHRlcm5hdGl2ZXMge1xuICAgICAgICBtYXJnaW4tbGVmdDogJGNvbHVtbi1ndXR0ZXIvMjtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAoJGNvbHVtbi1ndXR0ZXIvMik7XG4gICAgfVxuICAgIC5jaGVja291dF9fcGF5bWVudC1tZXRob2RzLWxpc3Qge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6ICRjb2x1bW4tZ3V0dGVyLzI7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICRjb2x1bW4tZ3V0dGVyLzI7XG4gICAgfVxuXG4gICAgLmNoZWNrb3V0LS1rY28ge1xuICAgICAgICAuYWRkb25fYnV0dG9ucyB7XG4gICAgICAgICAgICB0b3A6IHJlbS1jYWxjKDYpICsgMXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRjb2x1bW4tZ3V0dGVyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdGFibGUuY2hlY2tvdXQtLWtjb19fY2FydCB7XG4gICAgICAgIC5taW5pLWltZyB7XG4gICAgICAgICAgICB3aWR0aDogNzVweDtcbiAgICAgICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG5cbiAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmRpc2NvdW50LFxuICAgICAgICAuc2hpcHBpbmcsXG4gICAgICAgIC5naWZ0Y2FyZCB7XG4gICAgICAgICAgICAubWluaS1pbWcge1xuICAgICAgICAgICAgICAgIFtjbGFzc149XCJpY29uLVwiXSB7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnByb2R1Y3QtbmFtZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1pbmRlbnQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAucHJvZHVjdC1uYW1lIHtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmNoZWNrb3V0X19zdGVwX19jb250ZW50cyB7XG4gICAgICAgIHBhZGRpbmc6IDAgMS4yNXJlbSAwIDEuMjVyZW07XG4gICAgfVxuXG4gICAgLmNoZWNrb3V0LS1rY29fX292ZXJsYXkge1xuICAgICAgICBsZWZ0OiAxLjgxMjVyZW07XG4gICAgfVxuXG4gICAgLmNoZWNrb3V0LS1rY29fX3BheW1lbnQge1xuICAgICAgICBib3gtc2hhZG93OiBpbnNldCAkY29udGVudC1iZyAwIDMwcHggMCwgaW5zZXQgJGNvbnRlbnQtYmcgMCAtMzBweCAwLCBpbnNldCAkY2hlY2tvdXQta2NvLWJvcmRlci1jb2xvciAxcHggMXB4IDA7XG4gICAgfVxuICAgIC5rY28tcGF5bWVudC1ib3JkZXJlZC13cmFwcGVyIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC41cmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtMS4xNXJlbTtcbiAgICAgICAgbWluLWhlaWdodDogMzAwcHg7XG4gICAgfVxuXG4gICAgLmtjby1wYXltZW50LXdyYXBwZXIsIC5hbHRlcm5hdGUtcGF5bWVudC13cmFwcGVyIHtcbiAgICAgICAgbWluLWhlaWdodDogMzAwcHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb250ZW50LWJnO1xuICAgICAgICBtYXJnaW46MDtcbiAgICB9XG5cbiAgICAuYWx0ZXJuYXRlLXBheW1lbnQtd3JhcHBlciB7XG4gICAgICAgIG1hcmdpbi10b3A6IC0xLjVyZW07XG4gICAgICAgIC5jaGVja291dF9fc3RlcF9faGVhZGxpbmUge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogLTJyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYyg1KTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiByZW0tY2FsYyg5KTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmpzLWF0dGFjaF9jb21tZW50IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbn1cbi5jaGVja291dF9fYm90dG9tLXRvb2xiYXItcmlnaHQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIGJ1dHRvbi5qcy1jaGVja291dF91cGRhdGUge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMHB4O1xuICAgICAgICByaWdodDogJGNvbHVtbi1ndXR0ZXIvMjtcbiAgICB9XG59XG4uY2hlY2tvdXQtLWtjb19fZnJlaWdodC1vcHRpb25zIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWluLWhlaWdodDogNnJlbTtcbiAgICBtYXJnaW4tdG9wOiAwO1xufVxuXG5cbkBtZWRpYSAjeyRsYXJnZS11cH0ge1xuICAgIC5yb3cgLnJvdy5jaGVja291dC1rY29fX2FkZHJlc3MtZm9ybSwgLmNoZWNrb3V0X19wYXltZW50LW1ldGhvZHMtbGlzdCB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICRjb2x1bW4tZ3V0dGVyO1xuICAgIH1cbiAgICAucm93IC5jaGVja291dC0ta2NvX19mcmVpZ2h0LW9wdGlvbnMsIC5hbHRlcm5hdGUtcGF5bWVudC13cmFwcGVyIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAkY29sdW1uLWd1dHRlcjtcbiAgICB9XG5cbiAgICAuc3VibWl0LWZyZWlnaHQtZGV0YWlscyB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIC5jaGVja291dC0ta2NvX19jb3Jwb3JhdGUtbGluayB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQGltcG9ydCBcImdsb2JhbFwiO1xuQGltcG9ydCBcImdyaWRcIjtcblxuLy9cbi8vIEBuYW1lIF9yZXZlYWwuc2Nzc1xuLy8gQGRlcGVuZGVuY2llcyBfZ2xvYmFsLnNjc3Ncbi8vXG5cbiRpbmNsdWRlLWh0bWwtcmV2ZWFsLWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcyAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgdGhlIHN0eWxlIG9mIHRoZSByZXZlYWwgb3ZlcmxheS5cbiRyZXZlYWwtb3ZlcmxheS1iZzogcmdiYSgkYmxhY2ssIC40NSkgIWRlZmF1bHQ7XG4kcmV2ZWFsLW92ZXJsYXktYmctb2xkOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIHRoZSBzdHlsZSBvZiB0aGUgbW9kYWwgaXRzZWxmLlxuJHJldmVhbC1tb2RhbC1iZzogJHdoaXRlICFkZWZhdWx0O1xuJHJldmVhbC1wb3NpdGlvbi10b3A6IHJlbS1jYWxjKDEwMCkgIWRlZmF1bHQ7XG4kcmV2ZWFsLWRlZmF1bHQtd2lkdGg6IDgwJSAhZGVmYXVsdDtcbiRyZXZlYWwtbWF4LXdpZHRoOiAkcm93LXdpZHRoICFkZWZhdWx0O1xuJHJldmVhbC1tb2RhbC1wYWRkaW5nOiByZW0tY2FsYygyMCkgIWRlZmF1bHQ7XG4kcmV2ZWFsLWJveC1zaGFkb3c6IDAgMCAxMHB4IHJnYmEoJGJsYWNrLC40KSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHN0eWxlIHRoZSByZXZlYWwgY2xvc2UgYnV0dG9uXG4kcmV2ZWFsLWNsb3NlLWZvbnQtc2l6ZTogcmVtLWNhbGMoNDApICFkZWZhdWx0O1xuJHJldmVhbC1jbG9zZS10b3A6IHJlbS1jYWxjKDEwKSAhZGVmYXVsdDtcbiRyZXZlYWwtY2xvc2Utc2lkZTogcmVtLWNhbGMoMjIpICFkZWZhdWx0O1xuJHJldmVhbC1jbG9zZS1jb2xvcjogJGJhc2UgIWRlZmF1bHQ7XG4kcmV2ZWFsLWNsb3NlLXdlaWdodDogJGZvbnQtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGlzIHRvIHNldCB0aGUgZGVmYXVsdCByYWRpdXMgdXNlZCB0aHJvdWdob3V0IHRoZSBjb3JlLlxuJHJldmVhbC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuJHJldmVhbC1yb3VuZDogJGdsb2JhbC1yb3VuZGVkICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCB0aGUgbW9kYWwgYm9yZGVyXG4kcmV2ZWFsLWJvcmRlci1zdHlsZTogc29saWQgIWRlZmF1bHQ7XG4kcmV2ZWFsLWJvcmRlci13aWR0aDogMXB4ICFkZWZhdWx0O1xuJHJldmVhbC1ib3JkZXItY29sb3I6ICRzdGVlbCAhZGVmYXVsdDtcblxuJHJldmVhbC1tb2RhbC1jbGFzczogXCJyZXZlYWwtbW9kYWxcIiAhZGVmYXVsdDtcbiRjbG9zZS1yZXZlYWwtbW9kYWwtY2xhc3M6IFwiY2xvc2UtcmV2ZWFsLW1vZGFsXCIgIWRlZmF1bHQ7XG5cbi8vIFNldCBiYXNlIHotaW5kZXhcbiR6LWluZGV4LWJhc2U6IDEwMDU7XG5cbi8vXG4vLyBAbWl4aW5zXG4vL1xuXG4vLyBXZSB1c2UgdGhpcyB0byBjcmVhdGUgdGhlIHJldmVhbCBiYWNrZ3JvdW5kIG92ZXJsYXkgc3R5bGVzXG5AbWl4aW4gcmV2ZWFsLWJnKCAkaW5jbHVkZS16LWluZGV4LXZhbHVlOiB0cnVlICkge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIC8vIHBvc2l0aW9uOiBhYnNvbHV0ZTsgLy8gYWxsb3dzIG1vZGFsIGJhY2tncm91bmQgdG8gZXh0ZW5kIGJleW9uZCB3aW5kb3cgcG9zaXRpb25cbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBiYWNrZ3JvdW5kOiAkcmV2ZWFsLW92ZXJsYXktYmctb2xkOyAvLyBBdXRvcHJlZml4ZXIgc2hvdWxkIGJlIHVzZWQgdG8gYXZvaWQgc3VjaCB2YXJpYWJsZXMgbmVlZGVkIHdoZW4gRm91bmRhdGlvbiBmb3IgU2l0ZXMgY2FuIGRvIHNvIGluIHRoZSBuZWFyIGZ1dHVyZS5cbiAgYmFja2dyb3VuZDogJHJldmVhbC1vdmVybGF5LWJnO1xuICB6LWluZGV4OiBpZiggJGluY2x1ZGUtei1pbmRleC12YWx1ZSwgJHotaW5kZXgtYmFzZSAtIDEsIGF1dG8gKTtcbiAgZGlzcGxheTogbm9uZTtcbiAgI3skZGVmYXVsdC1mbG9hdH06IDA7XG59XG5cbi8vIFdlIHVzZSB0aGlzIG1peGluIHRvIGNyZWF0ZSB0aGUgc3RydWN0dXJlIG9mIGEgcmV2ZWFsIG1vZGFsXG4vL1xuLy8gJGJhc2Utc3R5bGUgLSBQcm92aWRlcyByZXZlYWwgYmFzZSBzdHlsZXMsIGNhbiBiZSBzZXQgdG8gZmFsc2UgdG8gb3ZlcnJpZGUuIERlZmF1bHQ6IHRydWUsIE9wdGlvbnM6IGZhbHNlXG4vLyAkd2lkdGggLSBTZXRzIHJldmVhbCB3aWR0aCBEZWZhdWx0OiAkcmV2ZWFsLWRlZmF1bHQtd2lkdGggfHwgODAlXG4vL1xuQG1peGluIHJldmVhbC1tb2RhbC1iYXNlKCAkYmFzZS1zdHlsZTogdHJ1ZSwgJHdpZHRoOiRyZXZlYWwtZGVmYXVsdC13aWR0aCwgJG1heC13aWR0aDokcmV2ZWFsLW1heC13aWR0aCwgJGJvcmRlci1yYWRpdXM6ICRyZXZlYWwtcmFkaXVzKSB7XG4gIEBpZiAkYmFzZS1zdHlsZSB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6ICR6LWluZGV4LWJhc2U7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdG9wOjA7XG4gICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgI3skZGVmYXVsdC1mbG9hdH06IDA7XG5cbiAgICBAbWVkaWEgI3skc21hbGwtb25seX0ge1xuICAgICAgbWluLWhlaWdodDoxMDB2aDtcbiAgICB9XG5cbiAgICAvLyBNYWtlIHN1cmUgcm93cyBkb24ndCBoYXZlIGEgbWluLXdpZHRoIG9uIHRoZW1cbiAgICAuY29sdW1uLCAuY29sdW1ucyB7IG1pbi13aWR0aDogMDsgfVxuXG4gICAgLy8gR2V0IHJpZCBvZiBtYXJnaW4gZnJvbSBmaXJzdCBhbmQgbGFzdCBlbGVtZW50IGluc2lkZSBtb2RhbFxuICAgICYgPiA6Zmlyc3QtY2hpbGQgeyBtYXJnaW4tdG9wOiAwOyB9XG5cbiAgICAmID4gOmxhc3QtY2hpbGQgeyBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIH1cblxuICBAaWYgJHdpZHRoIHtcbiAgICBAbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgICB3aWR0aDogJHdpZHRoO1xuICAgICAgbWF4LXdpZHRoOiAkbWF4LXdpZHRoO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgfVxuICB9XG59XG5cbi8vIFdlIHVzZSB0aGlzIHRvIHN0eWxlIHRoZSByZXZlYWwgbW9kYWwgZGVmYXVsdHNcbi8vXG4vLyAkYmcgLSBTZXRzIGJhY2tncm91bmQgY29sb3Igb2YgcmV2ZWFsIG1vZGFsLiBEZWZhdWx0OiAkcmV2ZWFsLW1vZGFsLWJnIHx8ICR3aGl0ZVxuLy8gJHBhZGRpbmcgLSBQYWRkaW5nIHRvIGFwcGx5IHRvIHJldmVhbCBtb2RhbC4gRGVmYXVsdDogJHJldmVhbC1tb2RhbC1wYWRkaW5nLlxuLy8gJGJvcmRlciAtIENob29zZSB3aGV0aGVyIHJldmVhbCB1c2VzIGEgYm9yZGVyLiBEZWZhdWx0OiB0cnVlLCBPcHRpb25zOiBmYWxzZVxuLy8gJGJvcmRlci1zdHlsZSAtIFNldCByZXZlYWwgYm9yZGVyIHN0eWxlLiBEZWZhdWx0OiAkcmV2ZWFsLWJvcmRlci1zdHlsZSB8fCBzb2xpZFxuLy8gJGJvcmRlci13aWR0aCAtIFdpZHRoIG9mIGJvcmRlciAoaS5lLiAxcHgpLiBEZWZhdWx0OiAkcmV2ZWFsLWJvcmRlci13aWR0aC5cbi8vICRib3JkZXItY29sb3IgLSBDb2xvciBvZiBib3JkZXIuIERlZmF1bHQ6ICRyZXZlYWwtYm9yZGVyLWNvbG9yLlxuLy8gJGJveC1zaGFkb3cgLSBDaG9vc2Ugd2hldGhlciBvciBub3QgdG8gaW5jbHVkZSB0aGUgZGVmYXVsdCBib3gtc2hhZG93LiBEZWZhdWx0OiB0cnVlLCBPcHRpb25zOiBmYWxzZVxuLy8gJHJhZGl1cyAtIElmIHRydWUsIHNldCB0byBtb2RhbCByYWRpdXMgd2hpY2ggaXMgJGdsb2JhbC1yYWRpdXMgfHwgZXhwbGljaXRseSBzZXQgcmFkaXVzIGFtb3VudCBpbiBweCAoZXguICRyYWRpdXM6MTBweCkuIERlZmF1bHQ6IGZhbHNlXG4vLyAkdG9wLW9mZnNldCAtIERlZmF1bHQ6ICRyZXZlYWwtcG9zaXRpb24tdG9wIHx8IDUwcHhcbkBtaXhpbiByZXZlYWwtbW9kYWwtc3R5bGUoXG4gICRiZzpmYWxzZSxcbiAgJHBhZGRpbmc6ZmFsc2UsXG4gICRib3JkZXI6ZmFsc2UsXG4gICRib3JkZXItc3R5bGU6JHJldmVhbC1ib3JkZXItc3R5bGUsXG4gICRib3JkZXItd2lkdGg6JHJldmVhbC1ib3JkZXItd2lkdGgsXG4gICRib3JkZXItY29sb3I6JHJldmVhbC1ib3JkZXItY29sb3IsXG4gICRib3gtc2hhZG93OmZhbHNlLFxuICAkcmFkaXVzOmZhbHNlLFxuICAkdG9wLW9mZnNldDpmYWxzZSkge1xuXG4gIEBpZiAkYmcgeyBiYWNrZ3JvdW5kLWNvbG9yOiAkYmc7IH1cbiAgQGlmICRwYWRkaW5nICE9IGZhbHNlIHsgcGFkZGluZzogJHBhZGRpbmc7IH1cblxuICBAaWYgJGJvcmRlciB7IGJvcmRlcjogJGJvcmRlci1zdHlsZSAkYm9yZGVyLXdpZHRoICRib3JkZXItY29sb3I7IH1cblxuICAvLyBXZSBjYW4gY2hvb3NlIHdoZXRoZXIgb3Igbm90IHRvIGluY2x1ZGUgdGhlIGRlZmF1bHQgYm94LXNoYWRvdy5cbiAgQGlmICRib3gtc2hhZG93IHtcbiAgICBib3gtc2hhZG93OiAkcmV2ZWFsLWJveC1zaGFkb3c7XG4gIH1cblxuICAvLyBXZSBjYW4gY29udHJvbCBob3cgbXVjaCByYWRpdXMgaXMgdXNlZCBvbiB0aGUgbW9kYWxcbiAgQGlmICRyYWRpdXMgPT0gdHJ1ZSB7IEBpbmNsdWRlIHJhZGl1cygkcmV2ZWFsLXJhZGl1cyk7IH1cbiAgQGVsc2UgaWYgJHJhZGl1cyB7IEBpbmNsdWRlIHJhZGl1cygkcmFkaXVzKTsgfVxuXG4gIEBpZiAkdG9wLW9mZnNldCB7XG4gICAgQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgICAgdG9wOiAkdG9wLW9mZnNldDtcbiAgICB9XG4gIH1cbn1cblxuLy8gV2UgdXNlIHRoaXMgdG8gY3JlYXRlIGEgY2xvc2UgYnV0dG9uIGZvciB0aGUgcmV2ZWFsIG1vZGFsXG4vL1xuLy8gJGNvbG9yIC0gRGVmYXVsdDogJHJldmVhbC1jbG9zZS1jb2xvciB8fCAkYmFzZVxuQG1peGluIHJldmVhbC1jbG9zZSgkY29sb3I6JHJldmVhbC1jbG9zZS1jb2xvcikge1xuICBmb250LXNpemU6ICRyZXZlYWwtY2xvc2UtZm9udC1zaXplO1xuICBsaW5lLWhlaWdodDogMTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6ICRyZXZlYWwtY2xvc2UtdG9wO1xuICAjeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAkcmV2ZWFsLWNsb3NlLXNpZGU7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGZvbnQtd2VpZ2h0OiAkcmV2ZWFsLWNsb3NlLXdlaWdodDtcbiAgY3Vyc29yOiAkY3Vyc29yLXBvaW50ZXItdmFsdWU7XG59XG5cbkBpbmNsdWRlIGV4cG9ydHMoXCJyZXZlYWxcIikge1xuICBAaWYgJGluY2x1ZGUtaHRtbC1yZXZlYWwtY2xhc3NlcyB7XG5cbiAgICAvLyBSZXZlYWwgTW9kYWxzXG4gICAgLnJldmVhbC1tb2RhbC1iZyB7IEBpbmNsdWRlIHJldmVhbC1iZzsgfVxuXG4gICAgLiN7JHJldmVhbC1tb2RhbC1jbGFzc30ge1xuICAgICAgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLWJhc2U7XG4gICAgICBAaW5jbHVkZSByZXZlYWwtbW9kYWwtc3R5bGUoXG4gICAgICAgICRiZzokcmV2ZWFsLW1vZGFsLWJnLFxuICAgICAgICAkcGFkZGluZzokcmV2ZWFsLW1vZGFsLXBhZGRpbmcgKiAxLjUsXG4gICAgICAgICRib3JkZXI6dHJ1ZSxcbiAgICAgICAgJGJveC1zaGFkb3c6dHJ1ZSxcbiAgICAgICAgJHJhZGl1czpmYWxzZSxcbiAgICAgICAgJHRvcC1vZmZzZXQ6JHJldmVhbC1wb3NpdGlvbi10b3BcbiAgICAgICk7XG5cbiAgICAgICYucmFkaXVzIHsgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLXN0eWxlKCRyYWRpdXM6dHJ1ZSk7IH1cbiAgICAgICYucm91bmQgIHsgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLXN0eWxlKCRyYWRpdXM6JHJldmVhbC1yb3VuZCk7IH1cbiAgICAgICYuY29sbGFwc2UgeyBAaW5jbHVkZSByZXZlYWwtbW9kYWwtc3R5bGUoJHBhZGRpbmc6MCk7IH1cbiAgICAgICYudGlueSAgeyBAaW5jbHVkZSByZXZlYWwtbW9kYWwtYmFzZShmYWxzZSwgMzAlKTsgfVxuICAgICAgJi5zbWFsbCB7IEBpbmNsdWRlIHJldmVhbC1tb2RhbC1iYXNlKGZhbHNlLCA0MCUpOyB9XG4gICAgICAmLm1lZGl1bSAgeyBAaW5jbHVkZSByZXZlYWwtbW9kYWwtYmFzZShmYWxzZSwgNjAlKTsgfVxuICAgICAgJi5sYXJnZSB7IEBpbmNsdWRlIHJldmVhbC1tb2RhbC1iYXNlKGZhbHNlLCA3MCUpOyB9XG4gICAgICAmLnhsYXJnZSB7IEBpbmNsdWRlIHJldmVhbC1tb2RhbC1iYXNlKGZhbHNlLCA5NSUpOyB9XG4gICAgICAmLmZ1bGwge1xuICAgICAgICBAaW5jbHVkZSByZXZlYWwtbW9kYWwtYmFzZShmYWxzZSwgMTAwJSk7XG4gICAgICAgIHRvcDowO1xuICAgICAgICBsZWZ0OjA7XG4gICAgICAgIGhlaWdodDoxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMHZoO1xuICAgICAgICBtaW4taGVpZ2h0OjEwMHZoO1xuICAgICAgICBtYXgtd2lkdGg6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLy8gTW9kYWxzIHB1c2hlZCB0byBiYWNrXG4gICAgICAmLnRvYmFjayB7XG4gICAgICAgIHotaW5kZXg6ICR6LWluZGV4LWJhc2UgLSAyO1xuICAgICAgfVxuXG4gICAgICAuI3skY2xvc2UtcmV2ZWFsLW1vZGFsLWNsYXNzfSB7IEBpbmNsdWRlIHJldmVhbC1jbG9zZTsgfVxuICAgIH1cbiAgfVxufVxuIiwiQGltcG9ydCBcInJlYWN0LXNlbGVjdC9zZWxlY3RcIjtcbkBpbXBvcnQgXCJyZWFjdC1zZWxlY3QvY29udHJvbFwiO1xuQGltcG9ydCBcInJlYWN0LXNlbGVjdC9tZW51XCI7XG5AaW1wb3J0IFwicmVhY3Qtc2VsZWN0L21peGluc1wiO1xuQGltcG9ydCBcInJlYWN0LXNlbGVjdC9tdWx0aVwiO1xuQGltcG9ydCBcInJlYWN0LXNlbGVjdC9zcGlubmVyXCI7XG4iLCIvKipcbiAqIFJlYWN0IFNlbGVjdFxuICogPT09PT09PT09PT09XG4gKiBDcmVhdGVkIGJ5IEplZCBXYXRzb24gYW5kIEpvc3MgTWFja2lzb24gZm9yIEtleXN0b25lSlMsIGh0dHA6Ly93d3cua2V5c3RvbmVqcy5jb20vXG4gKiBodHRwczovL3R3aXR0ZXIuY29tL2plZHdhdHNvbiBodHRwczovL3R3aXR0ZXIuY29tL2pvc3NtYWNraXNvbiBodHRwczovL3R3aXR0ZXIuY29tL2tleXN0b25lanNcbiAqIE1JVCBMaWNlbnNlOiBodHRwczovL2dpdGh1Yi5jb20va2V5c3RvbmVqcy9yZWFjdC1zZWxlY3RcbiovXG5cbi8vIFZhcmlhYmxlc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIGNvbnRyb2wgb3B0aW9uc1xuJHNlbGVjdC1pbnB1dC1iZzogICAgICAgICAgICAgICAgICAjZmZmICFkZWZhdWx0O1xuJHNlbGVjdC1pbnB1dC1iZy1kaXNhYmxlZDogICAgICAgICAjZjlmOWY5ICFkZWZhdWx0O1xuJHNlbGVjdC1pbnB1dC1ib3JkZXItY29sb3I6ICAgICAgICAjY2NjICFkZWZhdWx0O1xuJHNlbGVjdC1pbnB1dC1ib3JkZXItcmFkaXVzOiAgICAgICA0cHggIWRlZmF1bHQ7XG4kc2VsZWN0LWlucHV0LWJvcmRlci1mb2N1czogICAgICAgICMwOGMgIWRlZmF1bHQ7IC8vIGJsdWVcbiRzZWxlY3QtaW5wdXQtYm9yZGVyLXdpZHRoOiAgICAgICAgMXB4ICFkZWZhdWx0O1xuJHNlbGVjdC1pbnB1dC1oZWlnaHQ6ICAgICAgICAgICAgICAzNnB4ICFkZWZhdWx0O1xuJHNlbGVjdC1pbnB1dC1pbnRlcm5hbC1oZWlnaHQ6ICAgICAoJHNlbGVjdC1pbnB1dC1oZWlnaHQgLSAoJHNlbGVjdC1pbnB1dC1ib3JkZXItd2lkdGggKiAyKSkgIWRlZmF1bHQ7XG4kc2VsZWN0LWlucHV0LXBsYWNlaG9sZGVyOiAgICAgICAgICNhYWEgIWRlZmF1bHQ7XG4kc2VsZWN0LXRleHQtY29sb3I6ICAgICAgICAgICAgICAgICMzMzMgIWRlZmF1bHQ7XG4kc2VsZWN0LWxpbmstaG92ZXItY29sb3I6ICAgICAgICAgICRzZWxlY3QtaW5wdXQtYm9yZGVyLWZvY3VzICFkZWZhdWx0O1xuXG4kc2VsZWN0LXBhZGRpbmctdmVydGljYWw6ICAgICAgICAgIDhweCAhZGVmYXVsdDtcbiRzZWxlY3QtcGFkZGluZy1ob3Jpem9udGFsOiAgICAgICAgMTBweCAhZGVmYXVsdDtcblxuLy8gbWVudSBvcHRpb25zXG4kc2VsZWN0LW1lbnUtemluZGV4OiAgICAgICAgICAgICAgIDEwMDAgIWRlZmF1bHQ7XG4kc2VsZWN0LW1lbnUtbWF4LWhlaWdodDogICAgICAgICAgIDIwMHB4ICFkZWZhdWx0O1xuXG4kc2VsZWN0LW9wdGlvbi1jb2xvcjogICAgICAgICAgICAgIGxpZ2h0ZW4oJHNlbGVjdC10ZXh0LWNvbG9yLCAyMCUpICFkZWZhdWx0O1xuJHNlbGVjdC1vcHRpb24tYmc6ICAgICAgICAgICAgICAgICAkc2VsZWN0LWlucHV0LWJnICFkZWZhdWx0O1xuJHNlbGVjdC1vcHRpb24tZm9jdXNlZC1jb2xvcjogICAgICAkc2VsZWN0LXRleHQtY29sb3IgIWRlZmF1bHQ7XG4kc2VsZWN0LW9wdGlvbi1mb2N1c2VkLWJnOiAgICAgICAgICNmMmY5ZmMgIWRlZmF1bHQ7IC8vIHBhbGUgYmx1ZVxuJHNlbGVjdC1vcHRpb24tc2VsZWN0ZWQtY29sb3I6ICAgICAkc2VsZWN0LXRleHQtY29sb3IgIWRlZmF1bHQ7XG4kc2VsZWN0LW9wdGlvbi1zZWxlY3RlZC1iZzogICAgICAgICNEQUQxRDEgIWRlZmF1bHQ7IC8vIGdyYXlcbiRzZWxlY3Qtb3B0aW9uLWRpc2FibGVkLWNvbG9yOiAgICAgbGlnaHRlbigkc2VsZWN0LXRleHQtY29sb3IsIDYwJSkgIWRlZmF1bHQ7XG5cbiRzZWxlY3Qtbm9yZXN1bHRzLWNvbG9yOiAgICAgICAgICAgbGlnaHRlbigkc2VsZWN0LXRleHQtY29sb3IsIDQwJSkgIWRlZmF1bHQ7XG5cbi8vIGNsZWFyIFwieFwiIGJ1dHRvblxuJHNlbGVjdC1jbGVhci1zaXplOiAgICAgICAgICAgICAgICBmbG9vcigoJHNlbGVjdC1pbnB1dC1oZWlnaHQgLyAyKSkgIWRlZmF1bHQ7XG4kc2VsZWN0LWNsZWFyLWNvbG9yOiAgICAgICAgICAgICAgICM5OTkgIWRlZmF1bHQ7XG4kc2VsZWN0LWNsZWFyLWhvdmVyLWNvbG9yOiAgICAgICAgICNEMDAyMUIgIWRlZmF1bHQ7IC8vIHJlZFxuJHNlbGVjdC1jbGVhci13aWR0aDogICAgICAgICAgICAgICAoJHNlbGVjdC1pbnB1dC1pbnRlcm5hbC1oZWlnaHQgLyAyKSAhZGVmYXVsdDtcblxuLy8gYXJyb3cgaW5kaWNhdG9yXG4kc2VsZWN0LWFycm93LWNvbG9yOiAgICAgICAgICAgICAgICM5OTkgIWRlZmF1bHQ7XG4kc2VsZWN0LWFycm93LWNvbG9yLWhvdmVyOiAgICAgICAgICM2NjYgIWRlZmF1bHQ7XG4kc2VsZWN0LWFycm93LXdpZHRoOiAgICAgICAgICAgICAgIDVweCAhZGVmYXVsdDtcblxuLy8gbG9hZGluZyBpbmRpY2F0b3JcbiRzZWxlY3QtbG9hZGluZy1zaXplOiAgICAgICAgICAgICAgMTZweCAhZGVmYXVsdDtcbiRzZWxlY3QtbG9hZGluZy1jb2xvcjogICAgICAgICAgICAgJHNlbGVjdC10ZXh0LWNvbG9yICFkZWZhdWx0O1xuJHNlbGVjdC1sb2FkaW5nLWNvbG9yLWJnOiAgICAgICAgICAkc2VsZWN0LWlucHV0LWJvcmRlci1jb2xvciAhZGVmYXVsdDtcblxuLy8gbXVsdGktc2VsZWN0IGl0ZW1cbiRzZWxlY3QtaXRlbS1ib3JkZXItcmFkaXVzOiAgICAgICAgMnB4ICFkZWZhdWx0O1xuJHNlbGVjdC1pdGVtLWd1dHRlcjogICAgICAgICAgICAgICA1cHggIWRlZmF1bHQ7XG4kc2VsZWN0LWl0ZW0tcGFkZGluZy12ZXJ0aWNhbDogICAgIDJweCAhZGVmYXVsdDtcbiRzZWxlY3QtaXRlbS1wYWRkaW5nLWhvcml6b250YWw6ICAgNXB4ICFkZWZhdWx0O1xuJHNlbGVjdC1pdGVtLWZvbnQtc2l6ZTogICAgICAgICAgICAuOWVtICFkZWZhdWx0O1xuJHNlbGVjdC1pdGVtLWNvbG9yOiAgICAgICAgICAgICAgICAjMDhjICFkZWZhdWx0OyAvLyBwYWxlIGJsdWVcbiRzZWxlY3QtaXRlbS1iZzogICAgICAgICAgICAgICAgICAgI2YyZjlmYyAhZGVmYXVsdDtcbiRzZWxlY3QtaXRlbS1ib3JkZXItY29sb3I6ICAgICAgICAgZGFya2VuKCRzZWxlY3QtaXRlbS1iZywgMTAlKSAhZGVmYXVsdDtcbiRzZWxlY3QtaXRlbS1ob3Zlci1jb2xvcjogICAgICAgICAgZGFya2VuKCRzZWxlY3QtaXRlbS1jb2xvciwgNSUpICFkZWZhdWx0OyAvLyBwYWxlIGJsdWVcbiRzZWxlY3QtaXRlbS1ob3Zlci1iZzogICAgICAgICAgICAgZGFya2VuKCRzZWxlY3QtaXRlbS1iZywgNSUpICFkZWZhdWx0O1xuJHNlbGVjdC1pdGVtLWRpc2FibGVkLWNvbG9yOiAgICAgICAjMzMzICFkZWZhdWx0O1xuJHNlbGVjdC1pdGVtLWRpc2FibGVkLWJnOiAgICAgICAgICAjZmNmY2ZjICFkZWZhdWx0O1xuJHNlbGVjdC1pdGVtLWRpc2FibGVkLWJvcmRlci1jb2xvcjogZGFya2VuKCRzZWxlY3QtaXRlbS1kaXNhYmxlZC1iZywgMTAlKSAhZGVmYXVsdDtcbiIsIi8vXG4vLyBDb250cm9sXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQGltcG9ydCAnc3Bpbm5lcic7XG5AaW1wb3J0ICdtaXhpbnMnO1xuXG4uU2VsZWN0IHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdC8vIHByZWZlcnJlZCBib3ggbW9kZWxcblx0Jixcblx0JiBkaXYsXG5cdCYgaW5wdXQsXG5cdCYgc3BhbiB7XG5cdFx0QGluY2x1ZGUgYm94LXNpemluZyhib3JkZXItYm94KTtcblx0fVxuXG5cdC8vIGhhbmRsZSBkaXNhYmxlZCBzdGF0ZVxuXHQmLmlzLWRpc2FibGVkID4gLlNlbGVjdC1jb250cm9sIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkc2VsZWN0LWlucHV0LWJnLWRpc2FibGVkO1xuXHRcdCY6aG92ZXIge1xuXHRcdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0XHR9XG5cdH1cblx0Ji5pcy1kaXNhYmxlZCAuU2VsZWN0LWFycm93LXpvbmUge1xuXHRcdGN1cnNvcjogZGVmYXVsdDtcblx0XHRwb2ludGVyLWV2ZW50czogbm9uZTtcblx0fVxufVxuXG4vLyBiYXNlXG5cbi5TZWxlY3QtY29udHJvbCB7XG5cdGJhY2tncm91bmQtY29sb3I6ICRzZWxlY3QtaW5wdXQtYmc7XG5cdGJvcmRlci1jb2xvcjogbGlnaHRlbigkc2VsZWN0LWlucHV0LWJvcmRlci1jb2xvciwgNSUpICRzZWxlY3QtaW5wdXQtYm9yZGVyLWNvbG9yIGRhcmtlbigkc2VsZWN0LWlucHV0LWJvcmRlci1jb2xvciwgMTAlKTtcblx0Ym9yZGVyLXJhZGl1czogJHNlbGVjdC1pbnB1dC1ib3JkZXItcmFkaXVzO1xuXHRib3JkZXI6ICRzZWxlY3QtaW5wdXQtYm9yZGVyLXdpZHRoIHNvbGlkICRzZWxlY3QtaW5wdXQtYm9yZGVyLWNvbG9yO1xuXHRjb2xvcjogJHNlbGVjdC10ZXh0LWNvbG9yO1xuXHRjdXJzb3I6IGRlZmF1bHQ7XG5cdGRpc3BsYXk6IHRhYmxlO1xuXHRib3JkZXItc3BhY2luZzogMDtcblx0Ym9yZGVyLWNvbGxhcHNlOiBzZXBhcmF0ZTtcblx0aGVpZ2h0OiAkc2VsZWN0LWlucHV0LWhlaWdodDtcblx0b3V0bGluZTogbm9uZTtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR3aWR0aDogMTAwJTtcblxuXHQmOmhvdmVyIHtcblx0XHRib3gtc2hhZG93OiAwIDFweCAwIHJnYmEoMCwgMCwgMCwgMC4wNik7XG5cdH1cbn1cblxuLmlzLXNlYXJjaGFibGUge1xuXHQmLmlzLW9wZW4gPiAuU2VsZWN0LWNvbnRyb2wge1xuXHRcdGN1cnNvcjogdGV4dDtcblx0fVxufVxuXG4uaXMtb3BlbiA+IC5TZWxlY3QtY29udHJvbCB7XG5cdEBpbmNsdWRlIGJvcmRlci1ib3R0b20tcmFkaXVzKCAwICk7XG5cdGJhY2tncm91bmQ6ICRzZWxlY3QtaW5wdXQtYmc7XG5cdGJvcmRlci1jb2xvcjogZGFya2VuKCRzZWxlY3QtaW5wdXQtYm9yZGVyLWNvbG9yLCAxMCUpICRzZWxlY3QtaW5wdXQtYm9yZGVyLWNvbG9yIGxpZ2h0ZW4oJHNlbGVjdC1pbnB1dC1ib3JkZXItY29sb3IsIDUlKTtcblxuXHQvLyBmbGlwIHRoZSBhcnJvdyBzbyBpdHMgcG9pbnRpbmcgdXAgd2hlbiB0aGUgbWVudSBpcyBvcGVuXG5cdD4gLlNlbGVjdC1hcnJvdyB7XG5cdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAkc2VsZWN0LWFycm93LWNvbG9yO1xuXHRcdGJvcmRlci13aWR0aDogMCAkc2VsZWN0LWFycm93LXdpZHRoICRzZWxlY3QtYXJyb3ctd2lkdGg7XG5cdH1cbn1cblxuLmlzLXNlYXJjaGFibGUge1xuXHQmLmlzLWZvY3VzZWQ6bm90KC5pcy1vcGVuKSA+IC5TZWxlY3QtY29udHJvbCB7XG5cdFx0Y3Vyc29yOiB0ZXh0O1xuXHR9XG59XG5cbi5pcy1mb2N1c2VkOm5vdCguaXMtb3BlbikgPiAuU2VsZWN0LWNvbnRyb2wge1xuXHRib3JkZXItY29sb3I6ICRzZWxlY3QtaW5wdXQtYm9yZGVyLWZvY3VzIGxpZ2h0ZW4oJHNlbGVjdC1pbnB1dC1ib3JkZXItZm9jdXMsIDUlKSBsaWdodGVuKCRzZWxlY3QtaW5wdXQtYm9yZGVyLWZvY3VzLCA1JSk7XG5cdGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMSksIDAgMCA1cHggLTFweCBmYWRlKCRzZWxlY3QtaW5wdXQtYm9yZGVyLWZvY3VzLDUwJSk7XG59XG5cbi8vIHBsYWNlaG9sZGVyXG5cbi5TZWxlY3QtcGxhY2Vob2xkZXIsXG46bm90KC5TZWxlY3QtLW11bHRpKSA+IC5TZWxlY3QtY29udHJvbCAuU2VsZWN0LXZhbHVlIHtcblx0Ym90dG9tOiAwO1xuXHRjb2xvcjogJHNlbGVjdC1pbnB1dC1wbGFjZWhvbGRlcjtcblx0bGVmdDogMDtcblx0bGluZS1oZWlnaHQ6ICRzZWxlY3QtaW5wdXQtaW50ZXJuYWwtaGVpZ2h0O1xuXHRwYWRkaW5nLWxlZnQ6ICRzZWxlY3QtcGFkZGluZy1ob3Jpem9udGFsO1xuXHRwYWRkaW5nLXJpZ2h0OiAkc2VsZWN0LXBhZGRpbmctaG9yaXpvbnRhbDtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRyaWdodDogMDtcblx0dG9wOiAwO1xuXG5cdC8vIGNyb3AgdGV4dFxuXHRtYXgtd2lkdGg6IDEwMCU7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXHR3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4uaGFzLXZhbHVlOm5vdCguU2VsZWN0LS1tdWx0aSk6bm90KC5pcy1mb2N1c2VkKSA+IC5TZWxlY3QtY29udHJvbCA+IC5TZWxlY3QtdmFsdWUsXG4uaGFzLXZhbHVlLmlzLXBzZXVkby1mb2N1c2VkOm5vdCguU2VsZWN0LS1tdWx0aSkgPiAuU2VsZWN0LWNvbnRyb2wgPiAuU2VsZWN0LXZhbHVlIHtcblx0LlNlbGVjdC12YWx1ZS1sYWJlbCB7XG5cdFx0Y29sb3I6ICRzZWxlY3QtdGV4dC1jb2xvcjtcblx0fVxuXHRhLlNlbGVjdC12YWx1ZS1sYWJlbCB7XG5cdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuXHRcdCY6aG92ZXIge1xuXHRcdFx0Y29sb3I6ICRzZWxlY3QtbGluay1ob3Zlci1jb2xvcjtcblx0XHRcdHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXHRcdH1cblx0fVxufVxuXG5cbi8vIHRoZSA8aW5wdXQ+IGVsZW1lbnQgdXNlcnMgdHlwZSBpblxuXG4uU2VsZWN0LWlucHV0IHtcblx0Ly8gaW5oZXJpdHMgYGRpc3BsYXk6IGlubGluZS1ibG9ja2AgZnJvbSBcInJlYWN0LWlucHV0LWF1dG9zaXplXCJcblx0aGVpZ2h0OiAkc2VsZWN0LWlucHV0LWludGVybmFsLWhlaWdodDtcblx0cGFkZGluZy1sZWZ0OiAkc2VsZWN0LXBhZGRpbmctaG9yaXpvbnRhbDtcblx0cGFkZGluZy1yaWdodDogJHNlbGVjdC1wYWRkaW5nLWhvcml6b250YWw7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cblx0PiBpbnB1dCB7XG5cdFx0YmFja2dyb3VuZDogbm9uZSB0cmFuc3BhcmVudDtcblx0XHRib3JkZXI6IDAgbm9uZTtcblx0XHRib3gtc2hhZG93OiBub25lO1xuXHRcdGN1cnNvcjogZGVmYXVsdDtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0Zm9udC1mYW1pbHk6IGluaGVyaXQ7XG5cdFx0Zm9udC1zaXplOiBpbmhlcml0O1xuXHRcdGhlaWdodDogJHNlbGVjdC1pbnB1dC1pbnRlcm5hbC1oZWlnaHQ7XG5cdFx0bWFyZ2luOiAwO1xuXHRcdG91dGxpbmU6IG5vbmU7XG5cdFx0cGFkZGluZzogMDtcblx0XHQtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG5cblx0XHQuaXMtZm9jdXNlZCAmIHtcblx0XHRcdGN1cnNvcjogdGV4dDtcblx0XHR9XG5cdH1cblxufVxuXG4vLyBmYWtlLWhpZGUgdGhlIGlucHV0IHdoZW4gdGhlIGNvbnRyb2wgaXMgcHNldWRvLWZvY3VzZWRcbi5oYXMtdmFsdWUuaXMtcHNldWRvLWZvY3VzZWQgLlNlbGVjdC1pbnB1dCB7XG5cdG9wYWNpdHk6IDA7XG59XG5cbi8vIGZha2UgaW5wdXRcbi5TZWxlY3QtY29udHJvbDpub3QoLmlzLXNlYXJjaGFibGUpID4gLlNlbGVjdC1pbnB1dCB7XG5cdG91dGxpbmU6IG5vbmU7XG59XG5cbi8vIGxvYWRpbmcgaW5kaWNhdG9yXG4uU2VsZWN0LWxvYWRpbmctem9uZSB7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0ZGlzcGxheTogdGFibGUtY2VsbDtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdHdpZHRoOiAkc2VsZWN0LWxvYWRpbmctc2l6ZTtcbn1cbi5TZWxlY3QtbG9hZGluZyB7XG5cdEBpbmNsdWRlIFNlbGVjdC1zcGlubmVyKCRzZWxlY3QtbG9hZGluZy1zaXplLCAkc2VsZWN0LWxvYWRpbmctY29sb3ItYmcsICRzZWxlY3QtbG9hZGluZy1jb2xvcik7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cblxuLy8gdGhlIGxpdHRsZSBjcm9zcyB0aGF0IGNsZWFycyB0aGUgZmllbGRcblxuLlNlbGVjdC1jbGVhci16b25lIHtcblx0QGluY2x1ZGUgYW5pbWF0aW9uKCBTZWxlY3QtYW5pbWF0aW9uLWZhZGVJbiAyMDBtcyApO1xuXHRjb2xvcjogJHNlbGVjdC1jbGVhci1jb2xvcjtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHRkaXNwbGF5OiB0YWJsZS1jZWxsO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0d2lkdGg6ICRzZWxlY3QtY2xlYXItd2lkdGg7XG5cblx0Jjpob3ZlciB7XG5cdFx0Y29sb3I6ICRzZWxlY3QtY2xlYXItaG92ZXItY29sb3I7XG5cdH1cbn1cbi5TZWxlY3QtY2xlYXIge1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdGZvbnQtc2l6ZTogJHNlbGVjdC1jbGVhci1zaXplO1xuXHRsaW5lLWhlaWdodDogMTtcbn1cbi5TZWxlY3QtLW11bHRpIC5TZWxlY3QtY2xlYXItem9uZSB7XG5cdHdpZHRoOiAkc2VsZWN0LWNsZWFyLXdpZHRoO1xufVxuXG5cbi8vIGFycm93IGluZGljYXRvclxuXG4uU2VsZWN0LWFycm93LXpvbmUge1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdGRpc3BsYXk6IHRhYmxlLWNlbGw7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHR3aWR0aDogKCRzZWxlY3QtYXJyb3ctd2lkdGggKiA1KTtcblx0cGFkZGluZy1yaWdodDogJHNlbGVjdC1hcnJvdy13aWR0aDtcbn1cblxuLlNlbGVjdC1hcnJvdyB7XG5cdGJvcmRlci1jb2xvcjogJHNlbGVjdC1hcnJvdy1jb2xvciB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcblx0Ym9yZGVyLXN0eWxlOiBzb2xpZDtcblx0Ym9yZGVyLXdpZHRoOiAkc2VsZWN0LWFycm93LXdpZHRoICRzZWxlY3QtYXJyb3ctd2lkdGggKCRzZWxlY3QtYXJyb3ctd2lkdGggLyAyKTtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRoZWlnaHQ6IDA7XG5cdHdpZHRoOiAwO1xufVxuLmlzLW9wZW4gLlNlbGVjdC1hcnJvdyxcbi5TZWxlY3QtYXJyb3ctem9uZTpob3ZlciA+IC5TZWxlY3QtYXJyb3cge1xuXHRib3JkZXItdG9wLWNvbG9yOiAkc2VsZWN0LWFycm93LWNvbG9yLWhvdmVyO1xufVxuXG5cblxuXG4vLyBBbmltYXRpb25cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBmYWRlIGluXG5cbkAtd2Via2l0LWtleWZyYW1lcyBTZWxlY3QtYW5pbWF0aW9uLWZhZGVJbiB7XG5cdGZyb20geyBvcGFjaXR5OiAwOyB9XG5cdHRvIHsgb3BhY2l0eTogMTsgfVxufVxuQGtleWZyYW1lcyBTZWxlY3QtYW5pbWF0aW9uLWZhZGVJbiB7XG5cdGZyb20geyBvcGFjaXR5OiAwOyB9XG5cdHRvIHsgb3BhY2l0eTogMTsgfVxufVxuIiwiLy9cbi8vIFNwaW5uZXJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQGltcG9ydCAnbWl4aW5zJztcblxuQG1peGluIFNlbGVjdC1zcGlubmVyKCRzaXplLCAkb3JiaXQsICRzYXRlbGxpdGUpXG57XG5cdEBpbmNsdWRlIGFuaW1hdGlvbiggU2VsZWN0LWFuaW1hdGlvbi1zcGluIDQwMG1zIGluZmluaXRlIGxpbmVhciApO1xuXHRAaW5jbHVkZSBzcXVhcmUoJHNpemUpO1xuXHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRib3JkZXItcmFkaXVzOiA1MCU7XG5cdGJvcmRlcjogZmxvb3IoKCRzaXplIC8gOCkpIHNvbGlkICRvcmJpdDtcblx0Ym9yZGVyLXJpZ2h0LWNvbG9yOiAkc2F0ZWxsaXRlO1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxufVxuXG5Aa2V5ZnJhbWVzIFNlbGVjdC1hbmltYXRpb24tc3BpbiB7XG5cdHRvIHsgdHJhbnNmb3JtOiByb3RhdGUoMXR1cm4pOyB9XG59XG5ALXdlYmtpdC1rZXlmcmFtZXMgU2VsZWN0LWFuaW1hdGlvbi1zcGluIHtcblx0dG8geyAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDF0dXJuKTsgfVxufVxuIiwiLy9cbi8vIE1peGluc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLy8gVXRpbGl0aWVzXG5cbkBtaXhpbiBzaXplKCR3aWR0aCwgJGhlaWdodClcbntcblx0d2lkdGg6ICR3aWR0aDtcblx0aGVpZ2h0OiAkaGVpZ2h0O1xufVxuQG1peGluIHNxdWFyZSgkc2l6ZSlcbntcblx0QGluY2x1ZGUgc2l6ZSgkc2l6ZSwgJHNpemUpO1xufVxuQG1peGluIGJvcmRlci10b3AtcmFkaXVzKCRyYWRpdXMpXG57XG5cdGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkcmFkaXVzO1xuXHRib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkcmFkaXVzO1xufVxuQG1peGluIGJvcmRlci1yaWdodC1yYWRpdXMoJHJhZGl1cylcbntcblx0Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6ICRyYWRpdXM7XG5cdGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkcmFkaXVzO1xufVxuQG1peGluIGJvcmRlci1ib3R0b20tcmFkaXVzKCRyYWRpdXMpXG57XG5cdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkcmFkaXVzO1xuXHRib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAkcmFkaXVzO1xufVxuQG1peGluIGJvcmRlci1sZWZ0LXJhZGl1cygkcmFkaXVzKVxue1xuXHRib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAkcmFkaXVzO1xuXHRib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkcmFkaXVzO1xufVxuXG5cbi8vIFZlbmRvciBQcmVmaXhlc1xuXG5AbWl4aW4gYW5pbWF0aW9uKCRhbmltYXRpb24pXG57XG5cdC13ZWJraXQtYW5pbWF0aW9uOiAkYW5pbWF0aW9uO1xuXHQtby1hbmltYXRpb246ICRhbmltYXRpb247XG5cdGFuaW1hdGlvbjogJGFuaW1hdGlvbjtcbn1cbkBtaXhpbiBib3gtc2l6aW5nKCRib3htb2RlbClcbntcblx0LXdlYmtpdC1ib3gtc2l6aW5nOiAkYm94bW9kZWw7XG5cdC1tb3otYm94LXNpemluZzogJGJveG1vZGVsO1xuXHRib3gtc2l6aW5nOiAkYm94bW9kZWw7XG59XG5AbWl4aW4gcm90YXRlKCRkZWdyZWVzKVxue1xuXHQtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKCRkZWdyZWVzKTtcblx0LW1zLXRyYW5zZm9ybTogcm90YXRlKCRkZWdyZWVzKTsgLy8gSUU5IG9ubHlcblx0LW8tdHJhbnNmb3JtOiByb3RhdGUoJGRlZ3JlZXMpO1xuXHR0cmFuc2Zvcm06IHJvdGF0ZSgkZGVncmVlcyk7XG59XG5AbWl4aW4gdHJhbnNmb3JtKCR0cmFuc2Zvcm0pXG57XG5cdC13ZWJraXQtdHJhbnNmb3JtOiAkdHJhbnNmb3JtO1xuXHQtbW96LXRyYW5zZm9ybTogJHRyYW5zZm9ybTtcblx0LW1zLXRyYW5zZm9ybTogJHRyYW5zZm9ybTtcblx0dHJhbnNmb3JtOiAkdHJhbnNmb3JtO1xufVxuIiwiLy9cbi8vIFNlbGVjdCBNZW51XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4vLyB3cmFwcGVyIGFyb3VuZCB0aGUgbWVudVxuXG4uU2VsZWN0LW1lbnUtb3V0ZXIge1xuXHQvLyBVbmZvcnR1bmF0ZWx5LCBoYXZpbmcgYm90aCBib3JkZXItcmFkaXVzIGFuZCBhbGxvd3Mgc2Nyb2xsaW5nIHVzaW5nIG92ZXJmbG93IGRlZmluZWQgb24gdGhlIHNhbWVcblx0Ly8gZWxlbWVudCBmb3JjZXMgdGhlIGJyb3dzZXIgdG8gcmVwYWludCBvbiBzY3JvbGwuICBIb3dldmVyLCBpZiB0aGVzZSBkZWZpbml0aW9ucyBhcmUgc3BsaXQgaW50byBhblxuXHQvLyBvdXRlciBhbmQgYW4gaW5uZXIgZWxlbWVudCwgdGhlIGJyb3dzZXIgaXMgYWJsZSB0byBvcHRpbWl6ZSB0aGUgc2Nyb2xsaW5nIGJlaGF2aW9yIGFuZCBkb2VzIG5vdFxuXHQvLyBoYXZlIHRvIHJlcGFpbnQgb24gc2Nyb2xsLlxuXHRAaW5jbHVkZSBib3JkZXItYm90dG9tLXJhZGl1cyggJHNlbGVjdC1pbnB1dC1ib3JkZXItcmFkaXVzICk7XG5cdGJhY2tncm91bmQtY29sb3I6ICRzZWxlY3QtaW5wdXQtYmc7XG5cdGJvcmRlcjogMXB4IHNvbGlkICRzZWxlY3QtaW5wdXQtYm9yZGVyLWNvbG9yO1xuXHRib3JkZXItdG9wLWNvbG9yOiBtaXgoJHNlbGVjdC1pbnB1dC1iZywgJHNlbGVjdC1pbnB1dC1ib3JkZXItY29sb3IsIDUwJSk7XG5cdGJveC1zaGFkb3c6IDAgMXB4IDAgcmdiYSgwLCAwLCAwLCAwLjA2KTtcblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0bWFyZ2luLXRvcDogLTFweDtcblx0bWF4LWhlaWdodDogJHNlbGVjdC1tZW51LW1heC1oZWlnaHQ7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiAxMDAlO1xuXHR3aWR0aDogMTAwJTtcblx0ei1pbmRleDogJHNlbGVjdC1tZW51LXppbmRleDtcblx0LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xufVxuXG5cbi8vIHdyYXBwZXJcblxuLlNlbGVjdC1tZW51IHtcblx0bWF4LWhlaWdodDogKCRzZWxlY3QtbWVudS1tYXgtaGVpZ2h0IC0gMnB4KTtcblx0b3ZlcmZsb3cteTogYXV0bztcbn1cblxuXG4vLyBvcHRpb25zXG5cbi5TZWxlY3Qtb3B0aW9uIHtcblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0YmFja2dyb3VuZC1jb2xvcjogJHNlbGVjdC1vcHRpb24tYmc7XG5cdGNvbG9yOiAkc2VsZWN0LW9wdGlvbi1jb2xvcjtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHRkaXNwbGF5OiBibG9jaztcblx0cGFkZGluZzogJHNlbGVjdC1wYWRkaW5nLXZlcnRpY2FsICRzZWxlY3QtcGFkZGluZy1ob3Jpem9udGFsO1xuXG5cdCY6bGFzdC1jaGlsZCB7XG5cdFx0QGluY2x1ZGUgYm9yZGVyLWJvdHRvbS1yYWRpdXMoICRzZWxlY3QtaW5wdXQtYm9yZGVyLXJhZGl1cyApO1xuXHR9XG5cblx0Ji5pcy1mb2N1c2VkIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkc2VsZWN0LW9wdGlvbi1mb2N1c2VkLWJnO1xuXHRcdGNvbG9yOiAkc2VsZWN0LW9wdGlvbi1mb2N1c2VkLWNvbG9yO1xuXHR9XG5cblx0Ji5pcy1zZWxlY3RlZCB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJHNlbGVjdC1vcHRpb24tc2VsZWN0ZWQtYmc7XG5cdFx0Y29sb3I6ICRzZWxlY3Qtb3B0aW9uLXNlbGVjdGVkLWNvbG9yO1xuXHR9XG5cblx0Ji5pcy1kaXNhYmxlZCB7XG5cdFx0Y29sb3I6ICRzZWxlY3Qtb3B0aW9uLWRpc2FibGVkLWNvbG9yO1xuXHRcdGN1cnNvcjogZGVmYXVsdDtcblx0fVxuXG59XG5cblxuLy8gbm8gcmVzdWx0c1xuXG4uU2VsZWN0LW5vcmVzdWx0cyB7XG5cdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdGNvbG9yOiAkc2VsZWN0LW5vcmVzdWx0cy1jb2xvcjtcblx0Y3Vyc29yOiBkZWZhdWx0O1xuXHRkaXNwbGF5OiBibG9jaztcblx0cGFkZGluZzogJHNlbGVjdC1wYWRkaW5nLXZlcnRpY2FsICRzZWxlY3QtcGFkZGluZy1ob3Jpem9udGFsO1xufVxuIiwiLy9cbi8vIE11bHRpLVNlbGVjdFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLy8gQmFzZVxuXG4uU2VsZWN0LS1tdWx0aSB7XG5cblx0Ly8gYWRkIG1hcmdpbiB0byB0aGUgaW5wdXQgZWxlbWVudFxuXHQuU2VsZWN0LWlucHV0IHtcblx0XHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHRcdC8vIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuXHRcdG1hcmdpbi1sZWZ0OiAkc2VsZWN0LXBhZGRpbmctaG9yaXpvbnRhbDtcblx0XHRwYWRkaW5nOiAwO1xuXHR9XG5cblx0Ly8gcmVkdWNlIG1hcmdpbiBvbmNlIHRoZXJlIGlzIHZhbHVlXG5cdCYuaGFzLXZhbHVlIC5TZWxlY3QtaW5wdXQge1xuXHRcdG1hcmdpbi1sZWZ0OiAkc2VsZWN0LWl0ZW0tZ3V0dGVyO1xuXHR9XG5cblx0Ly8gSXRlbXNcblx0LlNlbGVjdC12YWx1ZSB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJHNlbGVjdC1pdGVtLWJnO1xuXHRcdGJvcmRlci1yYWRpdXM6ICRzZWxlY3QtaXRlbS1ib3JkZXItcmFkaXVzO1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkICRzZWxlY3QtaXRlbS1ib3JkZXItY29sb3I7XG5cdFx0Y29sb3I6ICRzZWxlY3QtaXRlbS1jb2xvcjtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0Zm9udC1zaXplOiAkc2VsZWN0LWl0ZW0tZm9udC1zaXplO1xuXHRcdG1hcmdpbi1sZWZ0OiAkc2VsZWN0LWl0ZW0tZ3V0dGVyO1xuXHRcdG1hcmdpbi10b3A6ICRzZWxlY3QtaXRlbS1ndXR0ZXI7XG5cdFx0dmVydGljYWwtYWxpZ246IHRvcDtcblx0fVxuXG5cdC8vIGNvbW1vblxuXHQuU2VsZWN0LXZhbHVlLWljb24sXG5cdC5TZWxlY3QtdmFsdWUtbGFiZWwge1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHR9XG5cblx0Ly8gbGFiZWxcblx0LlNlbGVjdC12YWx1ZS1sYWJlbCB7XG5cdFx0QGluY2x1ZGUgYm9yZGVyLXJpZ2h0LXJhZGl1cyggJHNlbGVjdC1pdGVtLWJvcmRlci1yYWRpdXMgKTtcblx0XHRjdXJzb3I6IGRlZmF1bHQ7XG5cdFx0cGFkZGluZzogJHNlbGVjdC1pdGVtLXBhZGRpbmctdmVydGljYWwgJHNlbGVjdC1pdGVtLXBhZGRpbmctaG9yaXpvbnRhbDtcblx0fVxuXHRhLlNlbGVjdC12YWx1ZS1sYWJlbCB7XG5cdFx0Y29sb3I6ICRzZWxlY3QtaXRlbS1jb2xvcjtcblx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG5cdFx0Jjpob3ZlciB7XG5cdFx0XHR0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcblx0XHR9XG5cdH1cblxuXHQvLyBpY29uXG5cdC5TZWxlY3QtdmFsdWUtaWNvbiB7XG5cdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdEBpbmNsdWRlIGJvcmRlci1sZWZ0LXJhZGl1cyggJHNlbGVjdC1pdGVtLWJvcmRlci1yYWRpdXMgKTtcblx0XHRib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAkc2VsZWN0LWl0ZW0tYm9yZGVyLWNvbG9yO1xuXG5cdFx0Ly8gbW92ZSB0aGUgYmFzZWxpbmUgdXAgYnkgMXB4XG5cdFx0cGFkZGluZzogKCRzZWxlY3QtaXRlbS1wYWRkaW5nLXZlcnRpY2FsIC0gMSkgJHNlbGVjdC1pdGVtLXBhZGRpbmctaG9yaXpvbnRhbCAoJHNlbGVjdC1pdGVtLXBhZGRpbmctdmVydGljYWwgKyAxKTtcblxuXHRcdCY6aG92ZXIsXG5cdFx0Jjpmb2N1cyB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkc2VsZWN0LWl0ZW0taG92ZXItYmc7XG5cdFx0XHRjb2xvcjogJHNlbGVjdC1pdGVtLWhvdmVyLWNvbG9yO1xuXHRcdH1cblx0XHQmOmFjdGl2ZSB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkc2VsZWN0LWl0ZW0tYm9yZGVyLWNvbG9yO1xuXHRcdH1cblx0fVxuXG59XG5cbi5TZWxlY3QtLW11bHRpLmlzLWRpc2FibGVkIHtcblx0LlNlbGVjdC12YWx1ZSB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJHNlbGVjdC1pdGVtLWRpc2FibGVkLWJnO1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkICRzZWxlY3QtaXRlbS1kaXNhYmxlZC1ib3JkZXItY29sb3I7XG5cdFx0Y29sb3I6ICRzZWxlY3QtaXRlbS1kaXNhYmxlZC1jb2xvcjtcblx0fVxuXHQvLyBpY29uXG5cdC5TZWxlY3QtdmFsdWUtaWNvbiB7XG5cdFx0Y3Vyc29yOiBub3QtYWxsb3dlZDtcblx0XHRib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAkc2VsZWN0LWl0ZW0tZGlzYWJsZWQtYm9yZGVyLWNvbG9yO1xuXG5cdFx0Jjpob3Zlcixcblx0XHQmOmZvY3VzLFxuXHRcdCY6YWN0aXZlIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRzZWxlY3QtaXRlbS1kaXNhYmxlZC1iZztcblx0XHR9XG5cdH1cbn1cbiIsIi8qKlxuICogQ29tbWVudHMgc3R5bGluZywgY291cnRlc3kgb2ZcbiAqIGh0dHA6Ly9yZWZpbGxzLmJvdXJib24uaW8vXG4gKi9cblxuJGNvbW1lbnQtZ3V0dGVyOiAgICAgICAgICAgICAgICAxLjRlbSAhZGVmYXVsdDtcbiRjb21tZW50LWltYWdlLW1hcmdpbjogICAgICAgICAgLjdlbSAhZGVmYXVsdDtcbiRjb21tZW50LWltYWdlLXdpZHRoOiAgICAgICAgICAgMzBweCAhZGVmYXVsdDtcbiRjb21tZW50LWltYWdlLXdpZHRoLWxhcmdlOiAgICAgNjBweCAhZGVmYXVsdDtcbiRjb21tZW50LWltYWdlLWJvcmRlci1wYWRkaW5nOiAgM3B4ICFkZWZhdWx0O1xuJGNvbW1lbnQtaW1hZ2UtYm9yZGVyLXdpZHRoOiAgICAxcHggIWRlZmF1bHQ7XG4kY29tbWVudC1oZWFkZXItZm9udC1zaXplOiAgICAgIHJlbS1jYWxjKDIwKSAhZGVmYXVsdDtcbiRjb21tZW50LWNvbG9yOiAgICAgICAgICAgICAgICAgJGJvZHktZm9udC1jb2xvciAhZGVmYXVsdDtcbiRjb21tZW50LWJhY2tncm91bmQ6ICAgICAgICAgICAgJHNlY29uZGFyeS1jb2xvciAhZGVmYXVsdDtcbiRjb21tZW50LWRldGFpbC1jb2xvcjogICAgICAgICAgdHJhbnNwYXJlbnRpemUoJGNvbW1lbnQtY29sb3IsIC41KSAhZGVmYXVsdDtcbiRjb21tZW50LWltYWdlLXZlcnQtYWxpZ25tZW50OiAgdG9wICFkZWZhdWx0O1xuJGNvbW1lbnQtc3Rhci1jb2xvcjogICAgICAgICAgICAkY2FsbC10by1hY3Rpb24tY29sb3IgIWRlZmF1bHQ7XG4kY29tbWVudC1hdmF0YXItYm9yZGVyLWNvbG9yOiAgICNkZGQgIWRlZmF1bHQ7XG4kY29tbWVudC1hdmF0YXItYm94LXNpemU6ICAgICAgICN7JGNvbW1lbnQtaW1hZ2Utd2lkdGggKyAkY29tbWVudC1pbWFnZS1ib3JkZXItcGFkZGluZyAqIDIgKyAkY29tbWVudC1pbWFnZS1ib3JkZXItd2lkdGggKiAyfTtcbiRjb21tZW50LWF2YXRhci1ib3gtc2l6ZS1sYXJnZTogI3skY29tbWVudC1pbWFnZS13aWR0aC1sYXJnZSArICRjb21tZW50LWltYWdlLWJvcmRlci1wYWRkaW5nICogMiArICRjb21tZW50LWltYWdlLWJvcmRlci13aWR0aCAqIDJ9O1xuXG4uY29tbWVudCB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWJvdHRvbTogI3skcGFyYWdyYXBoLWxpbmUtaGVpZ2h0ICogMXJlbX07XG4gICAgcGFkZGluZy1ib3R0b206IDFlbTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdHJhbnNwYXJlbnRpemUoJGNvbW1lbnQtY29sb3IsIC45KTtcblxuICAgICY6aG92ZXIge1xuICAgICAgICAuY29tbWVudC1hdmF0YXIge1xuICAgICAgICAgICAgYm9yZGVyOiAkY29tbWVudC1pbWFnZS1ib3JkZXItd2lkdGggc29saWQgZGFya2VuKCRjb21tZW50LWF2YXRhci1ib3JkZXItY29sb3IsIDMwJSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5jb21tZW50LWltYWdlLFxuLmNvbW1lbnQtY29udGVudCB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogJGNvbW1lbnQtaW1hZ2UtdmVydC1hbGlnbm1lbnQ7XG59XG5cbi5jb21tZW50LWltYWdlIHtcbiAgICBpbWcge1xuICAgICAgICB3aWR0aDogJGNvbW1lbnQtaW1hZ2Utd2lkdGg7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICB9XG5cbiAgICBwYWRkaW5nLXJpZ2h0OiAkY29tbWVudC1pbWFnZS1tYXJnaW47XG59XG5cbi8qKlxuICogQ2lyY3VsYXIgYXZhdGFyc1xuICogQ291cnRlc3kgb2YgaHR0cDovL2NvZGVwZW4uaW8vYnJhZGVuaGFtbS9wZW4veUR1a2FcbiAqL1xuXG4uY29tbWVudC1hdmF0YXIge1xuICAgIGxpbmUtaGVpZ2h0OiAwOyAgICAgLyogcmVtb3ZlIGxpbmUtaGVpZ2h0ICovIFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgIC8qIGNpcmNsZSB3cmFwcyBpbWFnZSAqL1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTsgLyogcmVsYXRpdmUgdmFsdWUgKi9cbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGJvcmRlciAzMDBtcyBlYXNlKTtcbiAgICBoZWlnaHQ6ICRjb21tZW50LWF2YXRhci1ib3gtc2l6ZTtcbiAgICB3aWR0aDogJGNvbW1lbnQtYXZhdGFyLWJveC1zaXplO1xuICAgIGJvcmRlcjogJGNvbW1lbnQtaW1hZ2UtYm9yZGVyLXdpZHRoIHNvbGlkICRjb21tZW50LWF2YXRhci1ib3JkZXItY29sb3I7XG4gICAgcGFkZGluZzogJGNvbW1lbnQtaW1hZ2UtYm9yZGVyLXBhZGRpbmc7XG59XG5cbi5jb21tZW50LWF2YXRhciBpbWcge1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTsgLyogcmVsYXRpdmUgdmFsdWUgZm9yXG4gICAgICAgICAgICAgICAgICAgYWRqdXN0YWJsZSBpbWFnZSBzaXplICovXG59XG5cbi5jb21tZW50LWNvbnRlbnQge1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgLmNvbW1lbnQtY29udGVudF9fdGl0bGUge1xuICAgICAgICBmb250LXNpemU6ICRjb21tZW50LWhlYWRlci1mb250LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IC41ZW07XG4gICAgfVxuXG4gICAgcCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IC41ZW07XG4gICAgfVxuXG4gICAgLmNvbW1lbnQtZGV0YWlsIHtcbiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICBmb250LXNpemU6IC45ZW07XG4gICAgICAgIGNvbG9yOiAkY29tbWVudC1kZXRhaWwtY29sb3I7XG4gICAgfVxufVxuXG4uY29tbWVudC1zdGFyLXJhdGluZyBpIHtcbiAgICBjb2xvcjogJGNvbW1lbnQtc3Rhci1jb2xvcjtcbiAgICBtYXJnaW4tcmlnaHQ6IC0ycHg7XG59XG5cbi5jb21tZW50LXN0YXItcmF0aW5nIHtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgbWFyZ2luOiAwO1xuXG4gICAgZmlnY2FwdGlvbiB7XG4gICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgfVxufVxuXG4uY29tbWVudC1zdGFyLXJhdGluZy1jb3VudCB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLmNvbW1lbnQtZGV0YWlsIHtcbiAgICAuY29tbWVudC1zdGFyLXJhdGluZyB7XG4gICAgICAgIG9wYWNpdHk6IC41O1xuICAgICAgICBmaWdjYXB0aW9uIHtcbiAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uY29tbWVudHMtZm9ybSB7XG4gICAgcGFkZGluZy10b3A6IDFyZW07XG59XG5cbi5jb21tZW50cy1mb3JtLXdyYXBwZXIge1xuICAgIHBhZGRpbmctYm90dG9tOiAxcmVtO1xufVxuXG4uY29tbWVudHMtZm9ybS1lcnJvcjplbXB0eSxcbi5jb21tZW50LWZvcm0tdmFsaWRhdGlvbi1lcnJvcnM6ZW1wdHkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5jb21tZW50cy1ndWlkZWxpbmVzIHtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGJvcmRlci1jb2xvcjtcbiAgICBwYWRkaW5nLXRvcDogMnJlbTtcbiAgICBcbiAgICBwLCBsaSB7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuICAgIH1cbn1cblxuI3Byb2R1a3RfYW5tZWxkZWxzZXJfZm9ybV92YWxpZGVydCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiBub25lO1xufVxuXG5AbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgLmNvbW1lbnQtaW1hZ2Uge1xuICAgICAgICBpbWcge1xuICAgICAgICAgICAgd2lkdGg6ICRjb21tZW50LWltYWdlLXdpZHRoLWxhcmdlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmNvbW1lbnQtYXZhdGFyIHtcbiAgICAgICAgaGVpZ2h0OiAkY29tbWVudC1hdmF0YXItYm94LXNpemUtbGFyZ2U7XG4gICAgICAgIHdpZHRoOiAkY29tbWVudC1hdmF0YXItYm94LXNpemUtbGFyZ2U7XG4gICAgfVxufSIsIi5jb29raWVfbm90aWNlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB3aWR0aDogMzkwcHg7XG4gICAgei1pbmRleDogOTk5OTk5OTtcbiAgICBtYXgtaGVpZ2h0OiA5NSU7XG4gICAgcmlnaHQ6IDIwcHg7XG4gICAgYm90dG9tOiAyMHB4O1xufVxuXG4uY29va2llX25vdGljZV9hcmVhIHtcblx0bWFyZ2luLWxlZnQ6IDUlO1xuXHRtYXJnaW4tcmlnaHQ6IDUlO1xuICAgIG1hcmdpbi1ib3R0b206IDUlO1xufVxuXG4jY29va2llX25vdGljZV90ZXh0IHtcbiAgICBwYWRkaW5nOiAxcmVtIDA7XG4gICAgY29sb3I6d2hpdGU7XG59XG5cbiNjb29raWVfYnV0dG9ucyBhIHtcbiAgICBwYWRkaW5nOiA4cHg7XG5cbiAgICAmOnZpc2l0ZWQsIFxuICAgICY6YWN0aXZlIHtcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgIH1cbn1cblxuI2Nvb2tpZV9idXR0b25zIHNwYW4ge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG59IiwiLyohIGZhbmN5Qm94IHYyLjEuNSBmYW5jeWFwcHMuY29tIHwgZmFuY3lhcHBzLmNvbS9mYW5jeWJveC8jbGljZW5zZSAqL1xuLmZhbmN5Ym94LXdyYXAsXG4uZmFuY3lib3gtc2tpbixcbi5mYW5jeWJveC1vdXRlcixcbi5mYW5jeWJveC1pbm5lcixcbi5mYW5jeWJveC1pbWFnZSxcbi5mYW5jeWJveC13cmFwIGlmcmFtZSxcbi5mYW5jeWJveC13cmFwIG9iamVjdCxcbi5mYW5jeWJveC1uYXYsXG4uZmFuY3lib3gtbmF2IHNwYW4sXG4uZmFuY3lib3gtdG1wXG57XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgYm9yZGVyOiAwO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcbn1cblxuLmZhbmN5Ym94LXdyYXAge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB6LWluZGV4OiA4MDIwO1xufVxuXG4uZmFuY3lib3gtc2tpbiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJhY2tncm91bmQ6ICNmOWY5Zjk7XG4gICAgY29sb3I6ICM0NDQ7XG4gICAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gICAgICAgLW1vei1ib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG59XG5cbi5mYW5jeWJveC1vcGVuZWQge1xuICAgIHotaW5kZXg6IDgwMzA7XG59XG5cbi5mYW5jeWJveC1vcGVuZWQgLmZhbmN5Ym94LXNraW4ge1xuICAgLW1vei1ib3gtc2hhZG93OiAwIDEwcHggMjVweCByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMTBweCAyNXB4IHJnYmEoMCwgMCwgMCwgMC41KTtcbn1cblxuLmZhbmN5Ym94LW91dGVyLCAuZmFuY3lib3gtaW5uZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmZhbmN5Ym94LWlubmVyIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uZmFuY3lib3gtdHlwZS1pZnJhbWUgLmZhbmN5Ym94LWlubmVyIHtcbiAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG59XG5cbi5mYW5jeWJveC1lcnJvciB7XG4gICAgY29sb3I6ICM0NDQ7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDE1cHg7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLmZhbmN5Ym94LWltYWdlLCAuZmFuY3lib3gtaWZyYW1lIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG59XG5cbi5mYW5jeWJveC1pbWFnZSB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1heC1oZWlnaHQ6IDEwMCU7XG59XG5cbiNmYW5jeWJveC1sb2FkaW5nLCAuZmFuY3lib3gtY2xvc2UsIC5mYW5jeWJveC1wcmV2IHNwYW4sIC5mYW5jeWJveC1uZXh0IHNwYW4ge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnL2Fzc2V0cy9pbWcvZmFuY3lib3hfc3ByaXRlLnBuZycpO1xufVxuXG4jZmFuY3lib3gtbG9hZGluZyB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICBtYXJnaW4tdG9wOiAtMjJweDtcbiAgICBtYXJnaW4tbGVmdDogLTIycHg7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtMTA4cHg7XG4gICAgb3BhY2l0eTogMC44O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB6LWluZGV4OiA4MDYwO1xufVxuXG4jZmFuY3lib3gtbG9hZGluZyBkaXYge1xuICAgIHdpZHRoOiA0NHB4O1xuICAgIGhlaWdodDogNDRweDtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoJy9hc3NldHMvaW1nL2ZhbmN5Ym94X2xvYWRpbmcuZ2lmJykgY2VudGVyIGNlbnRlciBuby1yZXBlYXQ7XG59XG5cbi5mYW5jeWJveC1jbG9zZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogLTE4cHg7XG4gICAgcmlnaHQ6IC0xOHB4O1xuICAgIHdpZHRoOiAzNnB4O1xuICAgIGhlaWdodDogMzZweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgei1pbmRleDogODA0MDtcbn1cblxuLmZhbmN5Ym94LW5hdiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogNDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLDAsMCwwKTtcbiAgICB6LWluZGV4OiA4MDQwO1xufVxuXG4uZmFuY3lib3gtcHJldiB7XG4gICAgbGVmdDogMDtcbn1cblxuLmZhbmN5Ym94LW5leHQge1xuICAgIHJpZ2h0OiAwO1xufVxuXG4uZmFuY3lib3gtbmF2IHNwYW4ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICB3aWR0aDogMzZweDtcbiAgICBoZWlnaHQ6IDM0cHg7XG4gICAgbWFyZ2luLXRvcDogLTE4cHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHotaW5kZXg6IDgwNDA7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4uZmFuY3lib3gtcHJldiBzcGFuIHtcbiAgICBsZWZ0OiAxMHB4O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAgLTM2cHg7XG59XG5cbi5mYW5jeWJveC1uZXh0IHNwYW4ge1xuICAgIHJpZ2h0OiAxMHB4O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAgLTcycHg7XG59XG5cbi5mYW5jeWJveC1uYXY6aG92ZXIgc3BhbiB7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbn1cblxuLmZhbmN5Ym94LXRtcCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogLTk5OTk5cHg7XG4gICAgbGVmdDogLTk5OTk5cHg7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIG1heC13aWR0aDogOTk5OTlweDtcbiAgICBtYXgtaGVpZ2h0OiA5OTk5OXB4O1xuICAgIG92ZXJmbG93OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG59XG5cbi8qIE92ZXJsYXkgaGVscGVyICovXG5cbi5mYW5jeWJveC1sb2NrIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IGF1dG87XG59XG5cbi5mYW5jeWJveC1sb2NrIGJvZHkge1xuICAgIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcbn1cblxuLmZhbmN5Ym94LWxvY2stdGVzdCB7XG4gICAgb3ZlcmZsb3cteTogaGlkZGVuICFpbXBvcnRhbnQ7XG59XG5cbi5mYW5jeWJveC1vdmVybGF5IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHotaW5kZXg6IDgwMTA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLDAsMCwuNzUpO1xufVxuXG4uZmFuY3lib3gtb3ZlcmxheS1maXhlZCB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIGJvdHRvbTogMDtcbiAgICByaWdodDogMDtcbn1cblxuLmZhbmN5Ym94LWxvY2sgLmZhbmN5Ym94LW92ZXJsYXkge1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcbn1cblxuLyogVGl0bGUgaGVscGVyICovXG5cbi5mYW5jeWJveC10aXRsZSB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgICB6LWluZGV4OiA4MDUwO1xufVxuXG4uZmFuY3lib3gtb3BlbmVkIC5mYW5jeWJveC10aXRsZSB7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbn1cblxuLmZhbmN5Ym94LXRpdGxlLWZsb2F0LXdyYXAge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDA7XG4gICAgcmlnaHQ6IDUwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAtMzVweDtcbiAgICB6LWluZGV4OiA4MDUwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmZhbmN5Ym94LXRpdGxlLWZsb2F0LXdyYXAgLmNoaWxkIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLXJpZ2h0OiAtMTAwJTtcbiAgICBwYWRkaW5nOiAycHggMjBweDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgLyogRmFsbGJhY2sgZm9yIHdlYiBicm93c2VycyB0aGF0IGRvZXNuJ3Qgc3VwcG9ydCBSR0JhICovXG4gICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjgpO1xuICAgICAgIC1tb3otYm9yZGVyLXJhZGl1czogMTVweDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDE1cHg7XG4gICAgdGV4dC1zaGFkb3c6IDAgMXB4IDJweCAjMjIyO1xuICAgIGNvbG9yOiAjRkZGO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5mYW5jeWJveC10aXRsZS1vdXRzaWRlLXdyYXAge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgIGNvbG9yOiAjZmZmO1xufVxuXG4uZmFuY3lib3gtdGl0bGUtaW5zaWRlLXdyYXAge1xuICAgIHBhZGRpbmctdG9wOiAxMHB4O1xufVxuXG4uZmFuY3lib3gtdGl0bGUtb3Zlci13cmFwIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgcGFkZGluZzogMTBweDtcbiAgICBiYWNrZ3JvdW5kOiAjMDAwO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgLjgpO1xufVxuXG4vKlJldGluYSBncmFwaGljcyEqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjUpLFxuICAgICAgIG9ubHkgc2NyZWVuIGFuZCAobWluLS1tb3otZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjUpLFxuICAgICAgIG9ubHkgc2NyZWVuIGFuZCAobWluLWRldmljZS1waXhlbC1yYXRpbzogMS41KXtcblxuICAgICNmYW5jeWJveC1sb2FkaW5nLCAuZmFuY3lib3gtY2xvc2UsIC5mYW5jeWJveC1wcmV2IHNwYW4sIC5mYW5jeWJveC1uZXh0IHNwYW4ge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy9hc3NldHMvaW1nL2ZhbmN5Ym94X3Nwcml0ZV8yeC5wbmcnKTtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiA0NHB4IDE1MnB4OyAvKlRoZSBzaXplIG9mIHRoZSBub3JtYWwgaW1hZ2UsIGhhbGYgdGhlIHNpemUgb2YgdGhlIGhpLXJlcyBpbWFnZSovXG4gICAgfVxuXG4gICAgI2ZhbmN5Ym94LWxvYWRpbmcgZGl2IHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcvYXNzZXRzL2ltZy9mYW5jeWJveF9sb2FkaW5nXzJ4LmdpZicpO1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDI0cHggMjRweDsgLypUaGUgc2l6ZSBvZiB0aGUgbm9ybWFsIGltYWdlLCBoYWxmIHRoZSBzaXplIG9mIHRoZSBoaS1yZXMgaW1hZ2UqL1xuICAgIH1cbn0iLCIvLyBBZGRvbiB0byBGb3VuZGF0aW9uIEZvcm1zXG5sYWJlbCB7XG4gICAgY29sb3I6IGluaGVyaXQ7XG59XG5cbmxhYmVsID4gaW5wdXRbdHlwZT1jaGVja2JveF0ge1xuICAgIG1hcmdpbi1yaWdodDogJGZvcm0tc3BhY2luZyAqIC41O1xufVxuXG4uZXJyb3ItbXNnIHtcbiAgICBjb2xvcjogJGFsZXJ0LWNvbG9yO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjVlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogLjVlbTtcbn1cblxuaW5wdXRbdHlwZT1zZWFyY2hdIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgdGV4dC1pbmRlbnQ6IC41cmVtO1xufVxuXG4vL0BUT0RPIGRlYWwgd2l0aCA6cGxhY2Vob2xkZXIgY29sb3JzXG4vKiBXZSB1c2UgdGhpcyB0byBnZXQgYmFzaWMgc3R5bGluZyBvbiBhbGwgYmFzaWMgZm9ybSBlbGVtZW50cyAqL1xuaW5wdXRbdHlwZT1cInRleHRcIl0sXG5pbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0sXG5pbnB1dFt0eXBlPVwiZGF0ZVwiXSxcbmlucHV0W3R5cGU9XCJkYXRldGltZVwiXSxcbmlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXSxcbmlucHV0W3R5cGU9XCJtb250aFwiXSxcbmlucHV0W3R5cGU9XCJ3ZWVrXCJdLFxuaW5wdXRbdHlwZT1cImVtYWlsXCJdLFxuaW5wdXRbdHlwZT1cIm51bWJlclwiXSxcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl0sXG5pbnB1dFt0eXBlPVwidGVsXCJdLFxuaW5wdXRbdHlwZT1cInRpbWVcIl0sXG5pbnB1dFt0eXBlPVwidXJsXCJdLFxudGV4dGFyZWEsXG5zZWxlY3Qge1xuICAgIEBpbmNsdWRlIHJhZGl1cygkaW5wdXQtYm9yZGVyLXJhZGl1cyk7XG59XG5cbi8qIEZvdW5kYXRpb24gaGFyZGNvZGVzIHJhZGl1cyB0byAwLCB0aGlzIGZpeGVzIGl0ICovXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcblx0QGluY2x1ZGUgcmFkaXVzKCRidXR0b24tcmFkaXVzKTtcbn1cblxuLnByZWZpeC1yYWRpdXMucm93LmNvbGxhcHNlIHtcblx0aW5wdXQsIHRleHRhcmVhLCBzZWxlY3Qge1xuXHRcdEBpbmNsdWRlIHJhZGl1cygwKTsgQGluY2x1ZGUgc2lkZS1yYWRpdXMoJG9wcG9zaXRlLWRpcmVjdGlvbiwgJGlucHV0LWJvcmRlci1yYWRpdXMpO1xuXHR9XG59XG4ucG9zdGZpeC1yYWRpdXMucm93LmNvbGxhcHNlIHtcblx0aW5wdXQsIHRleHRhcmVhLCBzZWxlY3Qge1xuXHRcdEBpbmNsdWRlIHJhZGl1cygwKTsgQGluY2x1ZGUgc2lkZS1yYWRpdXMoJGRlZmF1bHQtZmxvYXQsICRpbnB1dC1ib3JkZXItcmFkaXVzKTtcblx0fVxufVxuXG5ALW1vei1kb2N1bWVudCB1cmwtcHJlZml4KCkge1xuICAgIHNlbGVjdCB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gICAgfVxufSIsIi5rbGFybmFfYm9rcyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICBtYXgtaGVpZ2h0OiAxMDBweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4ua2xhcm5hLWluZm8ge1xuICAgIC5rbGFybmEtaW5mb19fYmFkZ2Uge1xuICAgICAgICBmbG9hdDogcmlnaHQ7IFxuICAgICAgICBtYXJnaW4tbGVmdDogLjVyZW07XG4gICAgfVxufVxuXG4ua2xhcm5hLXdpZGdldCB7XG5cdGhlaWdodDogNzBweDtcbn0iLCIvLyBQYWdlLXNwZWNpZmljIHN0eWxlcyBcbkBpbXBvcnQgXCJwYWdlcy9jYXJ0XCI7XG5AaW1wb3J0IFwicGFnZXMvZnJvbnRwYWdlXCI7XG5AaW1wb3J0IFwicGFnZXMvcmVjZWlwdFwiO1xuQGltcG9ydCBcInBhZ2VzL3JlZ2lzdGVyLWFjY291bnRcIjtcbkBpbXBvcnQgXCJwYWdlcy93aXNobGlzdFwiO1xuIiwiI2tuYXBwZS1tZW51X2tqb3Age1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgbWFyZ2luOiAwO1xuXG4gICAgbGkge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgICB9XG59IiwiLmZyb250cGFnZV9fY3VzdG9tLWNvbnRlbnQge1xuICAgIG1hcmdpbi1ib3R0b206ICRjb2x1bW4tZ3V0dGVyO1xufSIsIi5yZWNlaXB0X19oZWFkZXIge1xuICAgIGZsb2F0OiBsZWZ0O1xufVxuXG4uYnV0dG9uLnJlY2VpcHRfX3ByaW50IHtcbiAgICBAZXh0ZW5kICVjb250ZW50X19wcmltYXJ5LWNvbG9yLWJnO1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIG1hcmdpbi10b3A6IC4xNXJlbTtcbn1cblxuLnJlY2VpcHRfX3RoYW5rcyB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi5yZWNlaXB0X19vcmRlci1vdmVydmlldyxcbi5yZWNlaXB0X19jdXN0b21lci1pbmZvIHtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgIC5yZWNlaXB0X19wcmludCB7XG4gICAgICAgIG1hcmdpbi10b3A6IC41cmVtO1xuICAgIH1cblxuICAgIC5yZWNlaXB0X19vcmRlci1vdmVydmlldyxcbiAgICAucmVjZWlwdF9fY3VzdG9tZXItaW5mbyB7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICBtaW4td2lkdGg6IDYwJTtcbiAgICB9XG59XG5cbkBtZWRpYSAjeyRsYXJnZS11cH0ge1xuICAgIC5yZWNlaXB0X19vcmRlci1vdmVydmlldyxcbiAgICAucmVjZWlwdF9fY3VzdG9tZXItaW5mbyB7XG4gICAgICAgIG1pbi13aWR0aDogNTAlO1xuICAgIH1cbn0iLCJcbmh0bWwucGxhY2Vob2xkZXIgLmhhcy1wbGFjZWhvbGRlciB7XG4gICAgbGFiZWwge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuLmxvZ2luLWNvbHVtbiwgLnJlZ2lzdGVyLWNvbHVtbiB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIFxuICAgID4gZm9ybSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgbWF4LXdpZHRoOiAzNjBweDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxufVxuXG4uaWNvbi1sb2ctb3V0IGEge1xuICAgICY6YWZ0ZXIge1xuICAgICAgICBAaW5jbHVkZSBpY29uKCRpY29uLXZhci1leGl0LXRvLWFwcCk7XG4gICAgfVxufVxuXG4uYWNjb3VudC10YWJzIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtICFpbXBvcnRhbnQ7XG5cbiAgICAudGFiLXRpdGxlIGEge1xuICAgICAgICBwYWRkaW5nOiAwIC42cmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogcmVtLWNhbGMoNDApO1xuXG4gICAgICAgIC50b3VjaCAmIHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkdG91Y2gtZnJpZW5kbHktc2l6ZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmVkaXQtYWNjb3VudC1wYWdlLFxuLmdpZnQtY2VydGlmaWNhdGUtcGFnZSB7XG4gICAgZmllbGRzZXQge1xuICAgICAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gICAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgZm9ybSB7XG4gICAgICAgIC5yb3cgLnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBncmlkLXJvdygkYmVoYXZpb3I6IG5lc3QpOyBcblxuICAgICAgICAgICAgLmNvbHVtbiwgXG4gICAgICAgICAgICAuY29sdW1ucyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oKTsgXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuY29udHJvbC1ncm91cCAuY29udHJvbC1ncm91cCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmVkaXQtYWNjb3VudF9fYnV0dG9ucyB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBtYXJnaW46IDA7XG5cbiAgICAuaWNvbiB7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIG1hcmdpbi10b3A6IDJweDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogLjVyZW07XG4gICAgfVxufVxuXG4ua2Fzc2Vfb25lX2xvZ2dpbm5fZXJyb3Ige1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGNvbG9yOiAkYWxlcnQtY29sb3I7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbSAqICRwYXJhZ3JhcGgtbGluZS1oZWlnaHQ7XG59XG5cbkBtZWRpYSAjeyRzbWFsbC1wbHVzLWRvd259IHtcbiAgICAubG9naW4tY29sdW1uIHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgJGJvcmRlci1jb2xvcjtcbiAgICB9XG5cbiAgICAuaWNvbi1sb2ctb3V0IGEge1xuICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAudGFicyAuaWNvbi1sb2ctb3V0ID4gYSB7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgfVxufVxuXG5AbWVkaWEgI3skc21hbGwtcGx1cy11cH0ge1xuICAgIC50YWJzIHsgICAgICBcbiAgICAgICAgLnRhYi10aXRsZSA+IGEge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5pY29uLWxvZy1vdXQgPiBhIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuXG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IC41cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYWxlcnQtY29sb3I7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgIC5lZGl0LWFjY291bnRfX2J1dHRvbnMge1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcblxuICAgICAgICAuaWNvbiB7XG4gICAgICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG4gICAgfVxufSIsIiN3aXNobGlzdF90YWJsZSB7XG4gICAgbWluLXdpZHRoOiAxMDAlO1xufVxuXG4ud2lzaGxpc3RfX3Byb2R1Y3QtbmFtZSB7XG4gICAgcDpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG59XG5cbi53aXNobGlzdF9fYnV0dG9uLWNlbGwge1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICBpbnB1dFt0eXBlPXN1Ym1pdF0ge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbn1cblxuLndpc2hsaXN0X19kZWxldGUsXG4ud2lzaGxpc3RfX2RlbGV0ZTpob3ZlciB7XG4gICAgY29sb3I6ICRhbGVydC1jb2xvcjtcbn1cblxuQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgICN3aXNobGlzdF90YWJsZSB7XG4gICAgICAgIG1pbi13aWR0aDogODAlO1xuICAgIH1cbn1cblxuQG1lZGlhICN7JGxhcmdlLXVwfSB7XG4gICAgI3dpc2hsaXN0X3RhYmxlIHtcbiAgICAgICAgbWluLXdpZHRoOiA2MCU7XG4gICAgfVxufSIsIiRwcm9kdWN0LXRpdGxlLWJvcmRlci1jb2xvcjogICAgICAgJGJvcmRlci1jb2xvciAhZGVmYXVsdDtcbiRwcm9kdWN0LXByaWNlLWZvbnRzaXplOiAgICAgICAgICAgcmVtLWNhbGMoMzYpICFkZWZhdWx0O1xuJHByb2R1Y3QtcHJpY2UtZm9udHNpemUtbGc6ICAgICAgICByZW0tY2FsYygzNikgIWRlZmF1bHQ7XG4kcHJvZHVjdC1zdG9jay1zdGF0dXMtY29sb3I6ICAgICAgICRzbWFsbC1mb250LWNvbG9yICFkZWZhdWx0O1xuJHByb2R1Y3QtaW1hZ2UtY2FwdGlvbi1wYWRkaW5nOiAgICAuNXJlbSAhZGVmYXVsdDtcbiRwcm9kdWN0LWltYWdlLWNhcHRpb24tbGluZWhlaWdodDogJHBhcmFncmFwaC1saW5lLWhlaWdodCAhZGVmYXVsdDtcbiRwcm9kdWN0LWltYWdlLWNhcHRpb24taGVpZ2h0OiAgICAgJHBhcmFncmFwaC1saW5lLWhlaWdodCArIDIgKiAkcHJvZHVjdC1pbWFnZS1jYXB0aW9uLXBhZGRpbmcgIWRlZmF1bHQ7XG4kcHJvZHVjdC1zaG93LXRodW1icy1vbi1tZWRpdW0tdXA6IHRydWUgIWRlZmF1bHQ7XG5cbkBpZiAkcHJvZHVjdC1zaG93LXRodW1icy1vbi1tZWRpdW0tdXAgPT0gdHJ1ZSB7XG4gICAgJHRodW1iLWRvdHMtcmFuZ2U6ICRzbWFsbC1vbmx5O1xufSBAZWxzZSB7XG4gICAgJHRodW1iLWRvdHMtcmFuZ2U6ICRzbWFsbC11cDtcbn1cblxuLnByb2R1Y3RfX2ltYWdlcyB7XG4gICAgJi5pbnZpc2libGUge1xuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG5cbiAgICAgICAgJi5zbGlkZXItbG9hZGVkIHtcbiAgICAgICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5wcm9kdWN0X19tYWluLWltYWdlcyB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgaW1nIHtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICB9XG5cbiAgICB1bCB7XG4gICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgIC5yZWFkb24taWNvbl9fY29udGFpbmVyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAuYngtY2FwdGlvbiB7XG4gICAgICAgIEBleHRlbmQgLnN1YnRsZTtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRwYXJhZ3JhcGgtbGluZS1oZWlnaHQ7XG4gICAgICAgIHBhZGRpbmc6ICRwcm9kdWN0LWltYWdlLWNhcHRpb24tcGFkZGluZyAwO1xuICAgIH1cblxuICAgIC5ieC1wcmV2IHtcbiAgICAgICAgbGVmdDogMDtcbiAgICB9XG5cbiAgICAuYngtbmV4dCB7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgIH1cbn1cblxuLnByb2R1Y3RfX2JyZWFkY3J1bWJzIHtcbiAgICAuY3VycmVudCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLmJyZWFkY3J1bWJzIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgIH1cbn1cblxuLnByb2R1Y3RfX3RpdGxlIHtcbiAgICBAZXh0ZW5kIC5ib3JkZXJlZC0tYm90dG9tO1xuICAgIEBleHRlbmQgJWNvbnRlbnRfX2JvcmRlcmVkLS1oYXJkO1xufVxuXG4ucHJvZHVjdF9fbWV0YS1udW1iZXJzIHtcbiAgICBAZXh0ZW5kIC5zdWJ0bGU7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygxMik7XG4gICAgbWFyZ2luLWJvdHRvbTogJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tIC0gMC41cmVtO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgLmNvbW1lbnQtc3Rhci1yYXRpbmcge1xuICAgICAgICAuaWNvbi1zdGFyLFxuICAgICAgICAuaWNvbi1zdGFyLWhhbGYsXG4gICAgICAgIC5pY29uLXN0YXItb3V0bGluZSB7XG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IC0xcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuY29tbWVudC1zdGFyLXJhdGluZy1hdmcge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jb21tZW50LXN0YXItcmF0aW5nLWNvdW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgID4gKiB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAuNXJlbTtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgfVxufVxuXG4ucHJvZHVjdF9fYXJ0LW5yLWxhYmVsLFxuLnByb2R1Y3RfX2Vhbi1sYWJlbCB7XG4gICAgcGFkZGluZy1yaWdodDogLjI1cmVtO1xufVxuXG4ucHJvZHVjdF9fbWV0YS1udW1iZXJzX192YWx1ZSB7XG4gICAgcGFkZGluZy1yaWdodDogMXJlbTtcbn1cblxuLnByb2R1Y3RfX2FzaWRlLWFkZG9uIHtcbiAgICBtYXJnaW4tYm90dG9tOiAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b207XG59XG5cbi5wcm9kdWN0IHtcbiAgICAucHJpY2Uge1xuICAgICAgICBAZXh0ZW5kICVjb250ZW50X19wcmltYXJ5LWNvbG9yLWJpZztcbiAgICAgICAgZm9udC1zaXplOiAkcHJvZHVjdC1wcmljZS1mb250c2l6ZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkaGVhZGVyLWZvbnQtZmFtaWx5O1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgfVxuXG4gICAgLnByaWNlLS1vcmlnaW5hbCB7XG4gICAgICAgIEBleHRlbmQgLnN1YnRsZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGNsZWFyOiBib3RoO1xuXG4gICAgICAgIC5jdXJyZW5jeSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnZhdC1pbmZvLFxuICAgIC5wcmljZS0tb3JpZ2luYWwge1xuICAgICAgICBsaW5lLWhlaWdodDogJHBhcmFncmFwaC1saW5lLWhlaWdodDtcbiAgICB9XG5cbiAgICAuZGlzY291bnQge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC52YXQtaW5mbyB7XG4gICAgICAgIEBleHRlbmQgLnN1YnRsZTtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4gICAgfVxuXG4gICAgLmN1cnJlbmN5IHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogLjVyZW07XG4gICAgfVxuXG4gICAgLnByaWNlX19zYWxlcHJpY2UtdGV4dCB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IC41cmVtO1xuICAgIH1cblxuICAgIC5vZmZlcnMge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b207XG4gICAgfVxufVxuXG4ucHJvZHVjdF9fYnV5LWJ1dHRvbi5idXR0b24ge1xuICAgIEBleHRlbmQgJWNvbnRlbnRfX3ByaW1hcnktY29sb3ItYmc7XG5cbiAgICBpIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogLjVyZW07XG4gICAgfVxufVxuXG4ucHJvZHVjdCAucHJvZHVjdF9fd2lzaGxpc3QtYnV0dG9uLmJ1dHRvbiB7XG4gICAgQGV4dGVuZCAlY29udGVudF9fc2Vjb25kYXJ5LWNvbG9yLWJnO1xufVxuXG4ucHJvZHVjdF9fc3RvY2tzdGF0dXMge1xuICAgIEBleHRlbmQgLnN1YnRsZTtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiAgICBtYXJnaW4tYm90dG9tOiAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b207XG4gICAgbGluZS1oZWlnaHQ6ICRwcm9kdWN0LXByaWNlLWZvbnRzaXplO1xufVxuXG4ucHJvZHVjdF9fc3RvY2tzdGF0dXNfX251bWJlciB7XG4gICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRzdWNjZXNzLWNvbG9yLCAkY29udGVudC1iZyk7XG59XG4ucHJvZHVjdF9fc3RvY2tzdGF0dXMtLXNvbGQtb3V0IC5wcm9kdWN0X19zdG9ja3N0YXR1c19fbnVtYmVye1xuICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkYWxlcnQtY29sb3IsICRjb250ZW50LWJnKTtcbn1cblxuLnByb2R1Y3RfX3N0b2Nrc3RhdHVzLS1oYXMtZXh0cmFpbmZvIHtcbiAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xufVxuXG4ucHJvZHVjdF9fbWFpbi1pbWFnZXNfX2xpbmsge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvdXRsaW5lOiBub25lO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICB9XG59XG5cbi5wcm9kdWN0X19xdWFudHVtLWRpc2NvdW50cyB7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbi5wcm9kdWN0X19hdHRyaWJ1dGVzLFxuLnByb2R1Y3RfX2V4dHJhZmllbGQge1xuICAgIEBpbmNsdWRlIGdyaWQtcm93KCRiZWhhdmlvcjpuZXN0KTtcbn1cblxuLnByb2R1Y3RfX2V4dHJhZmllbGRfX3dyYXAge1xuICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKCRjb2x1bW5zOiAxMik7XG59XG5cbi5wcm9kdWN0X19hdHRyaWJ1dGUsXG4ucHJvZHVjdF9fcXVhbnRpdHkge1xuICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKCRjb2x1bW5zOiA2KTtcbn1cblxuLnByb2R1Y3RfX2V4dHJhZmllbGRfX3ByaWNlaW5mbyB7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG59XG5cbi5wcm9kdWN0X19yZWxhdGVkLXByb2R1Y3RzIHtcbiAgICBwYWRkaW5nLXRvcDogJGNvbHVtbi1ndXR0ZXI7XG4gICAgcGFkZGluZy1ib3R0b206ICRjb2x1bW4tZ3V0dGVyO1xufVxuXG5AbWVkaWEgI3skc21hbGwtb25seX0ge1xuICAgIC5wcm9kdWN0X19tYWluLWltYWdlcyAuYngtY2FwdGlvbiB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG59XG5cbkBtZWRpYSAjeyR0aHVtYi1kb3RzLXJhbmdlfSB7XG4gICAgLnByb2R1Y3RfX2ltYWdlZ2FsbGVyeSB7XG4gICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgbGkge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgLnRoIHtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgICAgICBoZWlnaHQ6ICR0b3VjaC1mcmllbmRseS1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICR0b3VjaC1mcmllbmRseS1zaXplO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICR0b3VjaC1mcmllbmRseS1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgb3V0bGluZTogbm9uZTtcblxuICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJHByaW1hcnktY29sb3IsICRjb250ZW50LWJnKTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogLjc1O1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICA+ICoge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGljb24oJGljb24tdmFyLWJyaWdodG5lc3MtMSk7IC8vIEEgY2lyY3VsYXIgaWNvblxuICAgICAgICAgICAgICAgIGNvbG9yOiAjMDAwO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IC4yNTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6ICR0b3VjaC1mcmllbmRseS1zaXplO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAkdG91Y2gtZnJpZW5kbHktc2l6ZTtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogJHRvdWNoLWZyaWVuZGx5LXNpemU7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogLjhyZW07XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihmb250LXNpemUgMjAwbXMgZWFzZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYuYWN0aXZlOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAuNzU7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5AbWVkaWEgI3skc21hbGwtcGx1cy1kb3dufSB7XG4gICAgLnByb2R1Y3RfX3RpdGxlIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDFyZW07XG4gICAgfVxufVxuXG5AbWVkaWEgI3skc21hbGwtcGx1cy1vbmx5fSB7XG4gICAgLnByb2R1Y3RfX2luZm8sXG4gICAgLnByb2R1Y3RfX2Fib3V0LFxuICAgIC5wcm9kdWN0X19pbWFnZWdhbGxlcnlfX3dyYXBwZXIsXG4gICAgLnByb2R1Y3RfX3JlbGF0ZWQtcHJvZHVjdHMge1xuICAgICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigxMCk7XG4gICAgfVxuXG4gICAgLnByb2R1Y3Qge1xuICAgICAgICAucHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkcHJvZHVjdC1wcmljZS1mb250c2l6ZS1sZztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wcm9kdWN0X19zdG9ja3N0YXR1czpub3QoLnByb2R1Y3RfX3N0b2Nrc3RhdHVzLS1oYXMtZXh0cmFpbmZvKSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkcHJvZHVjdC1wcmljZS1mb250c2l6ZS1sZztcbiAgICB9XG59XG5cbkBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAucHJvZHVjdF9faW5mbyB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKDYpO1xuICAgIH1cblxuICAgIC5wcm9kdWN0X19hYm91dCxcbiAgICAucHJvZHVjdF9faW1hZ2VnYWxsZXJ5X193cmFwcGVyIHtcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oMTIpO1xuICAgIH1cblxuICAgIC5wcm9kdWN0X19pbWFnZXMsXG4gICAgLnByb2R1Y3RfX2luZm8sXG4gICAgLnByb2R1Y3RfX21haW4taW1hZ2VzIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJGNvbHVtbi1ndXR0ZXI7XG4gICAgfVxuXG4gICAgLnByb2R1Y3RfX2JyZWFkY3J1bWJzIHtcbiAgICAgICAgLmN1cnJlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbGlzdC1pdGVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnByb2R1Y3RfX21haW4taW1hZ2VzIHtcbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgLnJlYWRvbi1pY29uX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucHJvZHVjdF9fbWFpbi1pbWFnZXNfX2xpbmsge1xuICAgICAgICAmOmhvdmVye1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGlmICRwcm9kdWN0LXNob3ctdGh1bWJzLW9uLW1lZGl1bS11cCA9PSB0cnVlIHtcbiAgICAgICAgLnByb2R1Y3RfX2ltYWdlZ2FsbGVyeSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBibG9jay1ncmlkKDQpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGkucHJvZHVjdF9faW1hZ2VnYWxsZXJ5X19pbWFnZXdyYXAge1xuICAgICAgICAgICAgaGVpZ2h0OiA1Ljc1cmVtO1xuXG4gICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC50aCB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBAaWYgJHRodW1iLWJvcmRlci13aWR0aCA+IDAge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGh1bWItYm9yZGVyLWNvbG9yO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIEBpZiAkdGh1bWItYm94LXNoYWRvdyAhPSBub25lIHtcbiAgICAgICAgICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4IHJnYmEoYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGJsYWNrLCAkY29udGVudC1iZywgOSksLjIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIG9wYWNpdHk6IC44O1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgICAgICAgICAgICAgQGlmICR0aHVtYi1ib3gtc2hhZG93LWhvdmVyICE9IG5vbmUge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gTm8gZWFzeSB3YXkgdG8gbWFuaXB1bGF0ZSB0aGUgYm94IHNoYWRvdyBjb2xvclxuICAgICAgICAgICAgICAgICAgICAgICAgLy9ib3gtc2hhZG93OiAkdGh1bWItYm94LXNoYWRvdy1ob3ZlcjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCA2cHggMXB4IHJnYmEoYWNjZXNzaWJsZS1sdW1pbmFuY2UoJHByaW1hcnktY29sb3IsICRjb250ZW50LWJnLCA5KSwgMC41KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wcm9kdWN0X190aXRsZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMzApO1xuICAgIH1cblxuICAgIC5wcm9kdWN0X19pbmdyZXNzIHtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4gICAgfVxuXG4gICAgLnByb2R1Y3RfX3N0b2Nrc3RhdHVzOm5vdCgucHJvZHVjdF9fc3RvY2tzdGF0dXMtLWhhcy1leHRyYWluZm8pIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICN7JHBhcmFncmFwaC1saW5lLWhlaWdodCAqIDFyZW19O1xuICAgIH1cblxuICAgIC5wcm9kdWN0X19idXktYnV0dG9uLmJ1dHRvbixcbiAgICAucHJvZHVjdF9fd2lzaGxpc3QtYnV0dG9uLmJ1dHRvbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTYpO1xuICAgICAgICBAaW5jbHVkZSByYWRpdXMoJGJ1dHRvbi1yYWRpdXMpO1xuICAgIH1cbn1cblxuQG1lZGlhICN7JGxhcmdlLXVwfSB7XG4gICAgLnByb2R1Y3RfX3RpdGxlIHtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYyg0NCk7XG4gICAgfVxuXG4gICAgLnByb2R1Y3RfX2luZ3Jlc3Mge1xuICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgfVxuXG4gICAgLnByb2R1Y3RfX3N0b2Nrc3RhdHVzOm5vdCgucHJvZHVjdF9fc3RvY2tzdGF0dXMtLWhhcy1leHRyYWluZm8pIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRwcm9kdWN0LXByaWNlLWZvbnRzaXplLWxnO1xuICAgIH1cblxuICAgIC5wcm9kdWN0X19hYm91dC5tZWRpdW0tdW5jZW50ZXJlZDpsYXN0LWNoaWxkIHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cblxuICAgIEBpZiAkcHJvZHVjdC1zaG93LXRodW1icy1vbi1tZWRpdW0tdXAgPT0gdHJ1ZSB7XG4gICAgICAgIC5wcm9kdWN0X19pbWFnZWdhbGxlcnkge1xuICAgICAgICAgICAgQGluY2x1ZGUgYmxvY2stZ3JpZCg1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxpLnByb2R1Y3RfX2ltYWdlZ2FsbGVyeV9faW1hZ2V3cmFwIHtcbiAgICAgICAgICAgIGhlaWdodDogNnJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wcm9kdWN0X19hdHRyaWJ1dGUsXG4gICAgLnByb2R1Y3RfX3F1YW50aXR5IHtcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJGNvbHVtbnM6IDQpO1xuICAgIH1cblxuICAgIC5wcm9kdWN0X19leHRyYWZpZWxkX193cmFwIHtcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJGNvbHVtbnM6IDgpO1xuICAgIH1cblxuICAgIC5wcm9kdWN0IHtcbiAgICAgICAgLnByb2R1Y3RfX2J1eS1idXR0b24uYnV0dG9uLFxuICAgICAgICAucHJvZHVjdF9fd2lzaGxpc3QtYnV0dG9uLmJ1dHRvbiB7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDIyKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuIiwiJHByb2R1Y3Qtc2VhcmNoLWhvcml6b250YWwtcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcbiRwcm9kdWN0LXNlYXJjaC12ZXJ0aWNhbC1wYWRkaW5nOiAuMjVyZW0gIWRlZmF1bHQ7XG4kcHJvZHVjdC1zZWFyY2gtbGluay1saW5lLWhlaWdodDogMnJlbSAhZGVmYXVsdDtcbiRwcm9kdWN0LXNlYXJjaC1yZXN1bHRzLWJnOiAjZmZmZmZmICFkZWZhdWx0O1xuJHByb2R1Y3Qtc2VhcmNoLXJlc3VsdHMtY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRwcm9kdWN0LXNlYXJjaC1yZXN1bHRzLWJnLCAkcHJvZHVjdC1zZWFyY2gtcmVzdWx0cy1iZykgIWRlZmF1bHQ7XG5cbi5wcm9kdWN0LXNlYXJjaCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDIwMDtcbn1cblxuLnByb2R1Y3Qtc2VhcmNoLXJlc3VsdHMge1xuICAgIG9wYWNpdHk6IC45NTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHByb2R1Y3Qtc2VhcmNoLXJlc3VsdHMtYmc7XG4gICAgei1pbmRleDogMjAwO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItY29sb3I7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAuMjVzIGVhc2UpO1xuXG4gICAgLnByb2R1Y3Qtc2VhcmNoX19vdXRwdXQge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6ICRwcm9kdWN0LXNlYXJjaC12ZXJ0aWNhbC1wYWRkaW5nIDA7XG4gICAgfVxuXG4gICAgJi5pcy1oaWRkZW4ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHJvdGF0ZVgoLTkwZGVnKSBzY2FsZSguOCkpO1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0tb3JpZ2luKDUwJSAwKTtcbiAgICB9XG59XG5cbi5wcm9kdWN0LXNlYXJjaF9fbm8taGl0czpub3QoLmlzLWhpZGRlbikgKyAucHJvZHVjdC1zZWFyY2hfX2NvbnRhaW5lciB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4ucHJvZHVjdC1zZWFyY2hfX2VsZW1lbnQgYSB7XG4gICAgcGFkZGluZzogJHByb2R1Y3Qtc2VhcmNoLXZlcnRpY2FsLXBhZGRpbmcgJHByb2R1Y3Qtc2VhcmNoLWhvcml6b250YWwtcGFkZGluZztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcblxuICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJHByb2R1Y3Qtc2VhcmNoLXJlc3VsdHMtYmcsICRob3Zlci1jb2xvciwgNykhaW1wb3J0YW50O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaG92ZXItY29sb3IhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIGh0bWwudG91Y2ggJiB7XG4gICAgICAgIHBhZGRpbmc6ICN7KCR0b3VjaC1mcmllbmRseS1zaXplIC0gJGJhc2UtbGluZS1oZWlnaHQgKiAxcmVtKS8yfSAkcHJvZHVjdC1zZWFyY2gtaG9yaXpvbnRhbC1wYWRkaW5nO1xuICAgIH1cbn1cblxuLnByb2R1Y3Qtc2VhcmNoX19leHRyYS1oaXRzIHtcbiAgICBtYXJnaW46IDA7XG5cbiAgICBhIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRwcm9kdWN0LXNlYXJjaC1saW5rLWxpbmUtaGVpZ2h0O1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogJHByb2R1Y3Qtc2VhcmNoLXZlcnRpY2FsLXBhZGRpbmcgJHByb2R1Y3Qtc2VhcmNoLWhvcml6b250YWwtcGFkZGluZztcblxuICAgICAgICBodG1sLnRvdWNoICYge1xuICAgICAgICAgICAgcGFkZGluZzogI3soJHRvdWNoLWZyaWVuZGx5LXNpemUgLSAkcHJvZHVjdC1zZWFyY2gtdmVydGljYWwtcGFkZGluZyAqIDIpLzJ9ICRwcm9kdWN0LXNlYXJjaC1ob3Jpem9udGFsLXBhZGRpbmc7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5wcm9kdWN0LXNlYXJjaF9fbm8taGl0cyB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6ICRwcm9kdWN0LXNlYXJjaC12ZXJ0aWNhbC1wYWRkaW5nICRwcm9kdWN0LXNlYXJjaC1ob3Jpem9udGFsLXBhZGRpbmc7XG4gICAgY29sb3I6ICRwcm9kdWN0LXNlYXJjaC1yZXN1bHRzLWNvbG9yO1xufSIsIiRyYXRpbmctc3Rhci1jb2xvcjogJGNhbGwtdG8tYWN0aW9uLWNvbG9yICFkZWZhdWx0O1xuJHJhdGluZy1zdGFyLXNpemU6IHJlbS1jYWxjKDQ0KSAhZGVmYXVsdDtcbiRyYXRpbmctc3Rhci1mb250c2l6ZTogcmVtLWNhbGMoMjIpICFkZWZhdWx0O1xuXG4ucmF0aW5nIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaGVpZ2h0OiAkcmF0aW5nLXN0YXItc2l6ZTtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgbGFiZWwuc3RhciB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBjb2xvcjogZ29sZDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBmb250LXNpemU6ICRyYXRpbmctc3Rhci1mb250c2l6ZSAhaW1wb3J0YW50O1xuICAgICAgICB3aWR0aDogJHJhdGluZy1zdGFyLXNpemU7XG4gICAgICAgIGhlaWdodDogJHJhdGluZy1zdGFyLXNpemU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkcmF0aW5nLXN0YXItc2l6ZTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHotaW5kZXg6IDQ7XG4gICAgfVxuXG4gICAgaW5wdXQuc3Rhci1jaGVja2JveCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgd2lkdGg6ICRyYXRpbmctc3Rhci1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRyYXRpbmctc3Rhci1zaXplO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICB9XG5cbiAgICAucmF0aW5nLWNoZWNrYm94LWhpZGVyIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb250ZW50LWJnO1xuICAgICAgICB6LWluZGV4OiAyO1xuXG4gICAgICAgIC5yZXNwLXRhYnMtY29udGFpbmVyICYge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYnMtY29udGFpbmVyLWJnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCA1IHtcbiAgICAgICAgbGFiZWwuc3Rhci0jeyRpICsgMX0sXG4gICAgICAgIGlucHV0LnN0YXItY2hlY2tib3gtI3skaSArIDF9IHtcbiAgICAgICAgICAgIGxlZnQ6ICN7JGkgKiAkcmF0aW5nLXN0YXItc2l6ZX07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuc3RhcnMtbGFiZWwge1xuICAgICAgICBAaW5jbHVkZSBhY2Nlc3NpYmxlLWhpZGUoKTtcbiAgICB9XG5cbiAgICBsYWJlbDpiZWZvcmUge1xuICAgICAgICBAaW5jbHVkZSBpY29uKCRpY29uLXZhci1zdGFyKTtcbiAgICAgICAgQGV4dGVuZCAuaWNvbi1tZWRpdW07XG4gICAgfVxuXG4gICAgaW5wdXQ6Y2hlY2tlZCB+IGxhYmVsIHtcbiAgICAgICAgQGV4dGVuZCAuc3VidGxlO1xuICAgIH1cblxuICAgIGxhYmVsOmhvdmVyLFxuICAgIGlucHV0OmNoZWNrZWQgfiBsYWJlbDpob3ZlciB7XG4gICAgICAgIGNvbG9yOiBnb2xkO1xuICAgIH1cblxuICAgIGxhYmVsOmhvdmVyIH4gbGFiZWwge1xuICAgICAgICBAZXh0ZW5kIC5zdWJ0bGU7XG4gICAgfVxufSIsIiRyZWFkb24taWNvbi1iZzogIzAwMCAhZGVmYXVsdDtcbiRyZWFkb24taWNvbi1jb2xvcjogI2ZmZiAhZGVmYXVsdDtcbiRyZWFkb24taWNvbi1mb250LXNpemU6IHJlbS1jYWxjKDI4KSAhZGVmYXVsdDtcbiRyZWFkb24tb3ZlcmxheS1vcGFjaXR5OiAuNSAhZGVmYXVsdDtcbiRyZWFkb24taWNvbi1vcGFjaXR5OiAuNiAhZGVmYXVsdDtcbiRyZWFkb24taWNvbi1ob3Zlci1vcGFjaXR5OiAuOSAhZGVmYXVsdDtcblxuLnJlYWRvbi1pY29uX19jb250YWluZXIge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYmFja2dyb3VuZDogcmdiYSgkY29udGVudC1iZywgJHJlYWRvbi1vdmVybGF5LW9wYWNpdHkpO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKG9wYWNpdHkgMTUwbXMgZWFzZSk7XG5cbiAgICAudG91Y2ggJiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG4ucmVhZG9uLWljb24ge1xuICAgIEBpbmNsdWRlIHRyYW5zbGF0ZTNkKDAsMCwwLHNjYWxlM2QoMC41LCAwLjUsIDAuNSkpO1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAyMDBtcywgLXdlYmtpdC10cmFuc2Zvcm0gMTUwbXMgZWFzZTtcbiAgICAtd2Via2l0LXRyYW5zaXRpb24tZGVsYXk6IGVhc2UsIDBzO1xuICAgIC1tb3otdHJhbnNpdGlvbjogb3BhY2l0eSAyMDBtcyBlYXNlLCAtbW96LXRyYW5zZm9ybSAxNTBtcyBlYXNlO1xuICAgIC1vLXRyYW5zaXRpb246IG9wYWNpdHkgMjAwbXMgZWFzZSwgLW8tdHJhbnNmb3JtIDE1MG1zIGVhc2U7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAyMDBtcyBlYXNlLCB0cmFuc2Zvcm0gMTUwbXMgZWFzZTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBsaW5lLWhlaWdodDogcmVtLWNhbGMoNDQpO1xuICAgIHdpZHRoOiByZW0tY2FsYyg0NCk7XG4gICAgaGVpZ2h0OiByZW0tY2FsYyg0NCk7XG4gICAgZm9udC1zaXplOiAkcmVhZG9uLWljb24tZm9udC1zaXplO1xuICAgIGNvbG9yOiAkcmVhZG9uLWljb24tY29sb3I7XG4gICAgb3BhY2l0eTogLjY7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHJlYWRvbi1pY29uLWJnO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBAaW5jbHVkZSBwcmVmaXhlcihib3JkZXItcmFkaXVzLCByZW0tY2FsYygyMiksIG1zIHNwZWMpO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIG9wYWNpdHk6IC45O1xuICAgIH1cbn1cblxuLnJlYWRvbi1pY29uX193cmFwcGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcblxuICAgICAgICAucmVhZG9uLWljb25fX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgLnJlYWRvbi1pY29uIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zbGF0ZTNkKDAsMCwwLHNjYWxlM2QoMSwgMSwgMSkpO1xuICAgICAgICB9XG4gICAgfVxufSIsIi5zbGlkZXIge1xuICAgIG1hcmdpbjogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIGhlaWdodDogMTAwJTtcbn1cblxuLnNsaWRlcl9fd3JhcHBlciB7XG4gICAgbWFyZ2luLWJvdHRvbTogJGNvbHVtbi1ndXR0ZXI7XG4gICAgbWFyZ2luLXJpZ2h0OiAtI3skY29sdW1uLWd1dHRlci8yfTtcbiAgICBtYXJnaW4tbGVmdDogLSN7JGNvbHVtbi1ndXR0ZXIvMn07XG59XG5cbi5zbGlkZS0tYWxpZ24tY2VudGVyIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5zbGlkZS0tYWxpZ24tbGVmdCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLnNsaWRlLS1hbGlnbi1yaWdodCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG5cbi5zbGlkZSB7XG4gICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgICAgLmJ4LXdyYXBwZXIgJiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmhlcml0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaW1nIHtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG59XG5cbkBtZWRpYSAjeyR4bGFyZ2UtdXB9IHtcbiAgICAuc2xpZGVyX193cmFwcGVyIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICB9ICAgIFxufSIsIi8qIFNQSU5ORVIsIHVzZWQgaW4gY2hlY2tvdXQgd2hpbGUgY2FydCBpcyBsb2FkaW5nIGZvciBpbnN0YW5jZSAqL1xuXG4jc3Bpbm5lci1jb250YWluZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEyMHB4O1xufVxuXG5odG1sLmx0LWllMTAgI3NwaW5uZXItY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4jc3Bpbm5lciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICBtYXJnaW4tbGVmdDogLTMwcHg7XG4gICAgYm90dG9tOiAwO1xufVxuXG4jZmxvYXRpbmdDaXJjbGVzRyB7XG4gICAgcG9zaXRpb246cmVsYXRpdmU7XG4gICAgd2lkdGg6NjBweDtcbiAgICBoZWlnaHQ6NjBweDtcbiAgICBAaW5jbHVkZSB0cmFuc2Zvcm0oc2NhbGUoMC42KSk7XG59XG5cbi5mX2NpcmNsZUd7XG4gICAgcG9zaXRpb246YWJzb2x1dGU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjojRkZGRkZGO1xuICAgIGhlaWdodDoxMXB4O1xuICAgIHdpZHRoOjExcHg7XG4gICAgYm9yZGVyLXJhZGl1czo1cHg7XG4gICAgQGluY2x1ZGUgYW5pbWF0aW9uLW5hbWUoZl9mYWRlRyk7XG4gICAgQGluY2x1ZGUgYW5pbWF0aW9uLWR1cmF0aW9uKDAuOHMpO1xuICAgIEBpbmNsdWRlIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQoaW5maW5pdGUpO1xuICAgIEBpbmNsdWRlIGFuaW1hdGlvbi1kaXJlY3Rpb24obm9ybWFsKTtcbn1cblxuI2Zyb3RhdGVHXzAxe1xuICAgIGxlZnQ6MDtcbiAgICB0b3A6MjVweDtcbiAgICBAaW5jbHVkZSBhbmltYXRpb24tZGVsYXkoMC4zcyk7XG59XG5cbiNmcm90YXRlR18wMntcbiAgICBsZWZ0OjdweDtcbiAgICB0b3A6N3B4O1xuICAgIEBpbmNsdWRlIGFuaW1hdGlvbi1kZWxheSgwLjRzKTtcbn1cblxuI2Zyb3RhdGVHXzAze1xuICAgIGxlZnQ6MjVweDtcbiAgICB0b3A6MDtcbiAgICBAaW5jbHVkZSBhbmltYXRpb24tZGVsYXkoMC41cyk7XG59XG5cbiNmcm90YXRlR18wNHtcbiAgICByaWdodDo3cHg7XG4gICAgdG9wOjdweDtcbiAgICBAaW5jbHVkZSBhbmltYXRpb24tZGVsYXkoMC42cyk7XG59XG5cbiNmcm90YXRlR18wNXtcbiAgICByaWdodDowO1xuICAgIHRvcDoyNXB4O1xuICAgIEBpbmNsdWRlIGFuaW1hdGlvbi1kZWxheSgwLjdzKTtcbn1cblxuI2Zyb3RhdGVHXzA2e1xuICAgIHJpZ2h0OjdweDtcbiAgICBib3R0b206N3B4O1xuICAgIEBpbmNsdWRlIGFuaW1hdGlvbi1kZWxheSgwLjhzKTtcbn1cblxuI2Zyb3RhdGVHXzA3e1xuICAgIGxlZnQ6MjVweDtcbiAgICBib3R0b206MDtcbiAgICBAaW5jbHVkZSBhbmltYXRpb24tZGVsYXkoMC45cyk7XG59XG5cbiNmcm90YXRlR18wOHtcbiAgICBsZWZ0OjdweDtcbiAgICBib3R0b206N3B4O1xuICAgIEBpbmNsdWRlIGFuaW1hdGlvbi1kZWxheSgxcyk7XG59XG5cbkAtbW96LWtleWZyYW1lcyBmX2ZhZGVHe1xuICAgIDAle1xuICAgIGJhY2tncm91bmQtY29sb3I6IzAwMDAwMH1cblxuICAgIDEwMCV7XG4gICAgYmFja2dyb3VuZC1jb2xvcjojRkZGRkZGfVxufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgZl9mYWRlR3tcbiAgICAwJXtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiMwMDAwMDB9XG5cbiAgICAxMDAle1xuICAgIGJhY2tncm91bmQtY29sb3I6I0ZGRkZGRn1cbn1cblxuQC1tcy1rZXlmcmFtZXMgZl9mYWRlR3tcbiAgICAwJXtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiMwMDAwMDB9XG5cbiAgICAxMDAle1xuICAgIGJhY2tncm91bmQtY29sb3I6I0ZGRkZGRn1cbn1cblxuQC1vLWtleWZyYW1lcyBmX2ZhZGVHe1xuICAgIDAle1xuICAgIGJhY2tncm91bmQtY29sb3I6IzAwMDAwMH1cblxuICAgIDEwMCV7XG4gICAgYmFja2dyb3VuZC1jb2xvcjojRkZGRkZGfVxufVxuXG5Aa2V5ZnJhbWVzIGZfZmFkZUd7XG4gICAgMCV7XG4gICAgYmFja2dyb3VuZC1jb2xvcjojMDAwMDAwfVxuXG4gICAgMTAwJXtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiNGRkZGRkZ9XG59IiwidGFibGUge1xuICAgIHRkLnByaXMsXG4gICAgdGgucHJpcyB7XG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIH1cbn1cblxudHIuc3VtIHtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGJvZHktZm9udC1jb2xvcjtcbiAgICBib3JkZXItYm90dG9tOiAzcHggZG91YmxlICRib2R5LWZvbnQtY29sb3I7XG59XG5cbnRhYmxlIHRyIHtcbiAgICAmLmV2ZW4sXG4gICAgJi5hbHQsXG4gICAgJjpudGgtb2YtdHlwZShldmVuKSB7XG4gICAgICAgIGNvbG9yOiAkdGFibGUtZXZlbi1yb3ctdGV4dC1jb2xvcjtcbiAgICB9XG59IiwiJGluY2x1ZGUtcXVpY2tmaXgtdGFiLWNsYXNzZXM6IHRydWUgIWRlZmF1bHQ7XG5cbiR0YWJzLWhlaWdodDogICR0b3VjaC1mcmllbmRseS1zaXplICFkZWZhdWx0O1xuJHRhYnMtcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcbiR0YWJzLWJvcmRlcmVkOiB0cnVlICFkZWZhdWx0O1xuJHRhYnMtYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yICFkZWZhdWx0O1xuJHRhYnMtYWN0aXZlLWJvcmRlci1jb2xvcjogJHRhYnMtYWN0aXZlLWJnLWNvbG9yICFkZWZhdWx0O1xuJHRhYnMtbmF2aWdhdGlvbi1hY3RpdmUtaG92ZXItYmctY29sb3I6IGxpZ2h0ZW4oJHRhYnMtYWN0aXZlLWJnLWNvbG9yLCAxNSUpICFkZWZhdWx0O1xuXG5AbWl4aW4gdGFicy1zdHlsaW5ne1xuICAgIC50YWJzIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR0YWJzLWFjdGl2ZS1iZy1jb2xvcjtcbiAgICB9XG5cbiAgICAuanMtdGFicyB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAycmVtO1xuICAgIH1cblxuICAgIC5yZXNwLXRhYnMtbGlzdCB7XG4gICAgICAgIG1hcmdpbjogMHB4O1xuICAgICAgICBwYWRkaW5nOiAwcHg7XG4gICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICB9XG5cbiAgICAucmVzcC10YWItaXRlbSB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkaGVhZGVyLWZvbnQtZmFtaWx5O1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMnB4O1xuICAgIH1cblxuICAgIC5yZXNwLXRhYi1pdGVtLFxuICAgIC5yZXNwLWFjY29yZGlvbiB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkdGFicy1mb250LWNvbG9yLCAkdGFicy1iZy1jb2xvcik7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJzLWJnLWNvbG9yO1xuICAgICAgICBwYWRkaW5nOiAwICR0YWJzLXBhZGRpbmc7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkdGFicy1oZWlnaHQ7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIDIwMG1zIGVhc2UpO1xuXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaWNvbigkaWNvbi12YXIta2V5Ym9hcmQtYXJyb3ctZG93bik7XG4gICAgICAgICAgICBAZXh0ZW5kIC5pY29uLWxhcmdlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAuNXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24odHJhbnNmb3JtIDQwMG1zIGVhc2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJHRhYnMtZm9udC1jb2xvciwgJHRhYnMtbmF2aWdhdGlvbi1ob3Zlci1iZy1jb2xvcik7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFicy1uYXZpZ2F0aW9uLWhvdmVyLWJnLWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnJlc3AtdGFicy1jb250YWluZXIge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFicy1jb250YWluZXItYmc7XG4gICAgICAgIGNsZWFyOiBsZWZ0O1xuICAgIH1cblxuICAgIC5yZXNwLWFjY29yZGlvbiB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAucmVzcC10YWItY29udGVudCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6ICR0YWJzLXBhZGRpbmc7XG5cbiAgICAgICAgPiA6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnJlc3AtdGFiLWFjdGl2ZSxcbiAgICAucmVzcC1hY2NvcmRpb24ucmVzcC10YWItYWN0aXZlIHtcbiAgICAgICAgY29sb3I6ICR0YWJzLWFjdGl2ZS1mb250LWNvbG9yO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFicy1hY3RpdmUtYmctY29sb3I7XG5cbiAgICAgICAgLy8gUm90YXRlIGFycm93IHdoZW4gYWN0aXZhdGVkXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHJvdGF0ZXgoMTgwZGVnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkdGFicy1hY3RpdmUtZm9udC1jb2xvciwgJHRhYnMtbmF2aWdhdGlvbi1hY3RpdmUtaG92ZXItYmctY29sb3IpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYnMtbmF2aWdhdGlvbi1hY3RpdmUtaG92ZXItYmctY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucmVzcC1jb250ZW50LWFjdGl2ZSwgXG4gICAgLnJlc3AtYWNjb3JkaW9uLWFjdGl2ZSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIC5yZXNwLWVhc3ktYWNjb3JkaW9uIC5yZXNwLWFjY29yZGlvbiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIC5yZXNwLWpmaXQge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luOiAwcHg7XG4gICAgfVxuXG4gICAgLnJlc3AtdGFiLWNvbnRlbnQtYWN0aXZlIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgLypIZXJlIHlvdXIgY2FuIGNoYW5nZSB0aGUgYnJlYWtwb2ludCB0byBzZXQgdGhlIGFjY29yZGlvbiwgd2hlbiBzY3JlZW4gcmVzb2x1dGlvbiBjaGFuZ2VkKi9cblxuICAgIEBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XG5cbiAgICAgICAgLmpzLXRhYnMge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR0YWJzLWJvcmRlci1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5yZXNwLXRhYnMtbGlzdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLnJlc3AtYWNjb3JkaW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMCAkdGFicy1wYWRkaW5nO1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxNik7XG4gICAgICAgIH1cblxuICAgICAgICAucmVzcC12dGFicyAucmVzcC10YWJzLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogaW5pdGlhbDtcbiAgICAgICAgICAgIGNsZWFyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLnJlc3AtYWNjb3JkaW9uLWNsb3NlZCB7XG4gICAgICAgICAgICBkaXNwbGF5Om5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAgICAgLnJlc3AtdGFiLWNvbnRlbnQtYWN0aXZlIHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkdGFicy1hY3RpdmUtYm9yZGVyLWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQG1lZGlhICN7JGxhcmdlLXVwfSB7XG4gICAgICAgIC5qcy10YWJzIHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkdGFicy1ib3JkZXItY29sb3I7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMnJlbTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBcbiAgICBAY29udGVudDtcbn1cblxuQGlmICRpbmNsdWRlLXF1aWNrZml4LXRhYi1jbGFzc2VzIHtcbiAgQGluY2x1ZGUgdGFicy1zdHlsaW5nO1xufSIsImEudGhlbWVkLW5hdiB7XG4gICAgY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XG5cbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMsXG4gICAgJi5hY3RpdmUge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGhvdmVyLWNvbG9yO1xuICAgIH1cbn0iLCIuc3VidGxlIHtcbiAgICBvcGFjaXR5OiAuNjtcbn0iLCJAaW1wb3J0IFwic2VhcmNoLWJveFwiO1xuXG4vLyBCYXNlZCBvbiB0aGUgc2VhcmNoIGJveCBpbiBob3RzaG90LCB1c2VkIGluIGFmdGVyYnVybmVyXG5cbiR0b3BiYXItaGVpZ2h0OiAzMHB4ICFkZWZhdWx0O1xuJHRvcGJhci1iZy1jb2xvcjogd2hpdGUgIWRlZmF1bHQ7XG4kdG9wYmFyLWxpbmstY29sb3I6ICRob3Zlci1jb2xvciAhZGVmYXVsdDtcbiRzZWFyY2gtY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuJHNlYXJjaC1iZzogd2hpdGUgIWRlZmF1bHQ7XG4kc2VhcmNoLWJveF9fY29udGFpbmVyLWhlaWdodDogMzBweCAhZGVmYXVsdDtcbiRzZWFyY2gtYm94X19jb250YWluZXItcGFkZGluZzogKCgkdG9wYmFyLWhlaWdodCAtICRzZWFyY2gtYm94X19jb250YWluZXItaGVpZ2h0KSAvIDIpICFkZWZhdWx0O1xuJHNlYXJjaC1ib3hfX2NvbnRhaW5lci10cmFuc2l0aW9uLWR1cmF0aW9uOiA2MDBtcyAhZGVmYXVsdDtcbiRzZWFyY2gtYm94X19jb250YWluZXItdHJhbnNpdGlvbi1lYXNlOiBjdWJpYy1iZXppZXIoMC4xOTAsIDEuMDAwLCAwLjIyMCwgMS4wMDApICFkZWZhdWx0O1xuJHNlYXJjaC1ib3hfY29udGFpbmVyLXBsYWNlaG9sZGVyLWNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZShpZihsdW1hKCR0b3BiYXItYmctY29sb3IpIDwgNTAsICMwMDAsICNGRkYpLCAkdG9wYmFyLWJnLWNvbG9yKSAhZGVmYXVsdDtcbiRzZWFyY2gtYm94X2NvbnRhaW5lci1pY29uLWNvbG9yOiAkc2VhcmNoLWNvbG9yICFkZWZhdWx0O1xuJHNlYXJjaC1ib3hfY29udGFpbmVyLWljb24taG92ZXItY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRzZWFyY2gtYmcsICRzZWFyY2gtYmcsIDcuNSkgIWRlZmF1bHQ7XG5cbi5zZWFyY2gtYm94X19jb250YWluZXIge1xuICAgIFxuICAgIHBhZGRpbmc6IDBweDsgLy9vdmVycmlkaW5nIF9zZWFyY2gtYm94LnNjc3NcbiAgICAvLyBpbnB1dCBjYW5ub3QgYmUgZWFzaWx5IHJlbW92ZWQgYmVjYXVzZSBvZiBzcGVjaWZpY2l0eSBoZWxsIHRocm9naG91dCB0aGUgc3lzdGVtLCBhbmQgYmVjYXVzZSBvZiBfX3NlYXJjaC1ib3guc2Nzc1xuICAgIGlucHV0LnNlYXJjaC1ib3hfX2lucHV0IHtcbiAgICAgICAgXG4gICAgICAgIC8vT3ZlcmxhcCBmaXhcbiAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCByZ2JhKCRzZWFyY2gtY29sb3IsIDApO1xuICAgICAgICB0b3A6IDBweDtcbiAgICAgICAgbWFyZ2luOiAkc2VhcmNoLWJveF9fY29udGFpbmVyLXBhZGRpbmcgcmVtLWNhbGMoMik7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMnJlbTtcbiAgICAgICAgaGVpZ2h0OiAkc2VhcmNoLWJveF9fY29udGFpbmVyLWhlaWdodDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgICAgIHdpZHRoOiAxLjNyZW07XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsICRzZWFyY2gtYm94X19jb250YWluZXItdHJhbnNpdGlvbi1kdXJhdGlvbiAkc2VhcmNoLWJveF9fY29udGFpbmVyLXRyYW5zaXRpb24tZWFzZSk7XG4gICAgICAgIFxuICAgICAgICAmOm5vdCg6Zm9jdXMpOm5vdCguYWN0aXZlKTpub3QoLm5vdC1jb2xsYXBzaWJsZSkge1xuICAgICAgICAgICAgY29sb3I6IGNoYW5nZS1jb2xvcigkc2VhcmNoLWJveF9jb250YWluZXItcGxhY2Vob2xkZXItY29sb3IsICRhbHBoYTogMCk7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIEBpbmNsdWRlIHBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjpjaGFuZ2UtY29sb3IoJHNlYXJjaC1ib3hfY29udGFpbmVyLXBsYWNlaG9sZGVyLWNvbG9yLCAkYWxwaGE6IDApO1xuICAgICAgICAgICAgICAgIC8vIFllcywgdGhpcyB3aWxsIGNhdXNlIG11bHRpcGxlIHRyYW5zaXRpb24gcHJlZml4ZXMgcGVyIHZlbmRvciBwbGFjZWhvbGRlciBwcmVmaXgsIGJ1dCB3ZSBzaG91bGQgc29sdmUgdGhhdCB3aXRoIEF1dG9wcmVmaXhlciwgbm90IGhlcmUuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihjb2xvciAkc2VhcmNoLWJveF9fY29udGFpbmVyLXRyYW5zaXRpb24tZHVyYXRpb24gJHNlYXJjaC1ib3hfX2NvbnRhaW5lci10cmFuc2l0aW9uLWVhc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJjpmb2N1cywgJi5hY3RpdmUsICYubm90LWNvbGxhcHNpYmxlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZWFyY2gtYmc7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiByZW0tY2FsYygzMDApO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICBAaW5jbHVkZSBwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6Y2hhbmdlLWNvbG9yKCRzZWFyY2gtYm94X2NvbnRhaW5lci1wbGFjZWhvbGRlci1jb2xvciwgJGFscGhhOiAwLjc1KTtcbiAgICAgICAgICAgICAgICAvLyBZZXMsIHRoaXMgd2lsbCBjYXVzZSBtdWx0aXBsZSB0cmFuc2l0aW9uIHByZWZpeGVzIHBlciB2ZW5kb3IgcGxhY2Vob2xkZXIgcHJlZml4LCBidXQgd2Ugc2hvdWxkIHNvbHZlIHRoYXQgd2l0aCBBdXRvcHJlZml4ZXIsIG5vdCBoZXJlLlxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oY29sb3IgJHNlYXJjaC1ib3hfX2NvbnRhaW5lci10cmFuc2l0aW9uLWR1cmF0aW9uICRzZWFyY2gtYm94X19jb250YWluZXItdHJhbnNpdGlvbi1lYXNlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgJiB+IGxhYmVsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKHdpZHRoICRzZWFyY2gtYm94X19jb250YWluZXItdHJhbnNpdGlvbi1kdXJhdGlvbiAkc2VhcmNoLWJveF9fY29udGFpbmVyLXRyYW5zaXRpb24tZWFzZSk7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgLmljb24tc2VhcmNoIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihjb2xvciAkc2VhcmNoLWJveF9fY29udGFpbmVyLXRyYW5zaXRpb24tZHVyYXRpb24gJHNlYXJjaC1ib3hfX2NvbnRhaW5lci10cmFuc2l0aW9uLWVhc2UpO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNlYXJjaC1ib3hfY29udGFpbmVyLXBsYWNlaG9sZGVyLWNvbG9yO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICYgfiAuc2VhcmNoLWJveF9fc3VibWl0IHtcbiAgICAgICAgICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogJHNlYXJjaC1ib3hfX2NvbnRhaW5lci1wYWRkaW5nO1xuICAgICAgICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgICAgICAgICB3aWR0aDogJHNlYXJjaC1ib3hfX2NvbnRhaW5lci1oZWlnaHQ7XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgJiB+IGxhYmVsIHtcbiAgICAgICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogbWF4KDBweCwgJGdsb2JhbC1yYWRpdXMgLSAyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogJHNlYXJjaC1ib3hfX2NvbnRhaW5lci1wYWRkaW5nO1xuICAgICAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAkc2VhcmNoLWJveF9fY29udGFpbmVyLXBhZGRpbmc7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgIC5pY29uLXNlYXJjaCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNlYXJjaC1ib3hfY29udGFpbmVyLWljb24tY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgJjpob3ZlciB+IGxhYmVsIHtcbiAgICAgICAgICAgICAgICAgICAgLmljb24tc2VhcmNoIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2VhcmNoLWJveF9jb250YWluZXItaWNvbi1ob3Zlci1jb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgJiB+IGxhYmVsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDBweDtcbiAgICAgICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbGVmdDogcmVtLWNhbGMoMTUpO1xuICAgICAgICAgICAgbGVmdDogMHB4O1xuICAgICAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICB6LWluZGV4OiAyO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW0gKyByZW0tY2FsYygxNSk7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHRvcGJhci1oZWlnaHQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDNweCAwIHJnYmEoJHNlYXJjaC1jb2xvciwgMCk7XG4gICAgICAgICAgICBoZWlnaHQ6ICR0b3BiYXItaGVpZ2h0O1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihib3gtc2hhZG93IDAuM3MsIHdpZHRoICRzZWFyY2gtYm94X19jb250YWluZXItdHJhbnNpdGlvbi1kdXJhdGlvbiAkc2VhcmNoLWJveF9fY29udGFpbmVyLXRyYW5zaXRpb24tZWFzZSk7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnLic7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNlYXJjaC1jb2xvcjtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgICAgICAgIHRvcDogJHNlYXJjaC1ib3hfX2NvbnRhaW5lci1wYWRkaW5nO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtMXJlbTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHNjYWxlKDApKTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIC5pY29uLXNlYXJjaCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihjb2xvciAkc2VhcmNoLWJveF9fY29udGFpbmVyLXRyYW5zaXRpb24tZHVyYXRpb24gJHNlYXJjaC1ib3hfX2NvbnRhaW5lci10cmFuc2l0aW9uLWVhc2UpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdG9wYmFyLWxpbmstY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJjpub3QoOmZvY3VzKTpub3QoLmFjdGl2ZSk6bm90KC5ub3QtY29sbGFwc2libGUpIH4gbGFiZWw6aG92ZXIge1xuICAgICAgICAgICAgXG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0oc2NhbGUoMSkpO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIC5pY29uLXNlYXJjaCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAzO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICYgfiAuc2VhcmNoLWJveF9fc3VibWl0IHtcbiAgICAgICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogJHNlYXJjaC1ib3hfX2NvbnRhaW5lci1wYWRkaW5nO1xuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6ICRzZWFyY2gtYm94X19jb250YWluZXItaGVpZ2h0O1xuICAgICAgICAgICAgXG4gICAgICAgICAgICAmIH4gbGFiZWw6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiBtYXgoMHB4LCAkZ2xvYmFsLXJhZGl1cyAtIDMpO1xuICAgICAgICAgICAgICAgIHRvcDogJHNlYXJjaC1ib3hfX2NvbnRhaW5lci1wYWRkaW5nO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogJHNlYXJjaC1ib3hfX2NvbnRhaW5lci1wYWRkaW5nO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuLmpzLXByb2R1Y3Qtc2VhcmNoLXJlc3VsdHMge1xuICAgIG1pbi13aWR0aDogMjUwcHg7XG4gICAgYmFja2dyb3VuZDogJHNlYXJjaC1iZztcbiAgICBib3JkZXItY29sb3I6ICRzZWFyY2gtY29sb3I7XG4gICAgYm9yZGVyLXdpZHRoOiAkaW5wdXQtYm9yZGVyLXdpZHRoO1xuICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgIFxuICAgIGZvbnQtc2l6ZTogJGlucHV0LWZvbnQtc2l6ZTtcbn1cbi5wcm9kdWN0LXNlYXJjaF9fZXh0cmEtaGl0cyAudGhlbWVkLW5hdiwgLnByb2R1Y3Qtc2VhcmNoX19uby1oaXRzIHtcbiAgICBjb2xvcjogJHNlYXJjaC1jb2xvcjtcbn1cbi5wcm9kdWN0LXNlYXJjaF9fZWxlbWVudCB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgZm9udC1zaXplOiAkaW5wdXQtZm9udC1zaXplO1xuICAgIFxuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAtIDE7XG4gICAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAtIDE7XG4gICAgfVxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzIC0gMTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzIC0gMTtcbiAgICB9XG4gICAgXG4gICAgXG4gICAgLnRoZW1lZC1uYXYge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAtIDE7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkc2VhcmNoLWJveF9fY29udGFpbmVyLWhlaWdodCoxLjUgIWltcG9ydGFudDtcbiAgICAgICAgY29sb3I6ICRzZWFyY2gtY29sb3I7XG4gICAgICAgIFxuICAgICAgICAmLmFjdGl2ZSwgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2VhcmNoLWNvbG9yO1xuICAgICAgICAgICAgY29sb3I6IGlmKGx1bWEoJHNlYXJjaC1jb2xvcikgPCA1MCwgd2hpdGUsIGJsYWNrKSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxufVxuLnByb2R1Y3Qtc2VhcmNoX19leHRyYS1oaXRzIHtcbiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAtIDE7XG4gICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzIC0gMTtcbiAgICBcbiAgICA+IC50aGVtZWQtbmF2IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgLSAxO1xuICAgIH1cbn1cbiIsIkBpbXBvcnQgXCJib3VyYm9uL2NzczMvcGxhY2Vob2xkZXJcIjtcblxuLyoqXG4gKiBFeHBhbmRpbmcgc2VhcmNoIGlucHV0IGZpZWxkXG4gKlxuICogQ29kZSBjb3VydGVzeSBvZiBodHRwOi8vY29kZXBlbi5pby9zZGFpdHptYW4vcGVuL3JtcWZCXG4gKi9cblxuQGlmIGxpZ2h0bmVzcygkbmF2aWdhdGlvbi1iZykgPCA1MCUge1xuICAgICRzZWFyY2gtYm94LWlucHV0LWJnOiBsaWdodGVuKCRuYXZpZ2F0aW9uLWJnLCAxMCUpICFkZWZhdWx0O1xuICAgICRzZWFyY2gtYm94LWlucHV0LWhvdmVyLWJnOiBsaWdodGVuKCRuYXZpZ2F0aW9uLWJnLCAyMCUpICFkZWZhdWx0O1xuICAgICRzZWFyY2gtYm94LWlucHV0LWFjdGl2ZS1iZzogbGlnaHRlbigkbmF2aWdhdGlvbi1iZywgMzAlKSAhZGVmYXVsdDtcbiAgICAkc2VhcmNoLWJveC1pY29uLWNvbG9yOiAjZmZmICFkZWZhdWx0O1xuICAgICRzZWFyY2gtYm94LXNoYWRvdzogbGlnaHRlbigkc2VhcmNoLWJveC1pbnB1dC1iZywgMjUlKSAhZGVmYXVsdDtcbn0gQGVsc2Uge1xuICAgICRzZWFyY2gtYm94LWlucHV0LWJnOiBkYXJrZW4oJG5hdmlnYXRpb24tYmcsIDUlKSAhZGVmYXVsdDtcbiAgICAkc2VhcmNoLWJveC1pbnB1dC1ob3Zlci1iZzogI2M4YzhjOCAhZGVmYXVsdDtcbiAgICAkc2VhcmNoLWJveC1pbnB1dC1hY3RpdmUtYmc6IGRhcmtlbigkbmF2aWdhdGlvbi1iZywgMzAlKSAhZGVmYXVsdDtcbiAgICAkc2VhcmNoLWJveC1pY29uLWNvbG9yOiAjMDAwICFkZWZhdWx0O1xuICAgICRzZWFyY2gtYm94LXNoYWRvdzogZGFya2VuKCRzZWFyY2gtYm94LWlucHV0LWJnLCAyNSUpICFkZWZhdWx0O1xufVxuXG4kc2VhcmNoLWJveC1pbnB1dC1jb2xvcjphY2Nlc3NpYmxlLWx1bWluYW5jZSgkc2VhcmNoLWJveC1pbnB1dC1iZywgJHNlYXJjaC1ib3gtaW5wdXQtYmcpICFkZWZhdWx0O1xuJHNlYXJjaC1ib3gtaW5wdXQtaG92ZXItY29sb3I6YWNjZXNzaWJsZS1sdW1pbmFuY2UoJHNlYXJjaC1ib3gtaW5wdXQtaG92ZXItYmcsICRzZWFyY2gtYm94LWlucHV0LWhvdmVyLWJnKSAhZGVmYXVsdDtcbiRzZWFyY2gtYm94LWlucHV0LWFjdGl2ZS1jb2xvcjphY2Nlc3NpYmxlLWx1bWluYW5jZSgkc2VhcmNoLWJveC1pbnB1dC1hY3RpdmUtYmcsICRzZWFyY2gtYm94LWlucHV0LWFjdGl2ZS1iZykgIWRlZmF1bHQ7XG5cbiRzZWFyY2gtYm94LXRyYW5zaXRpb246IDAuM3MgIWRlZmF1bHQ7IC8vIHRyYW5zaXRpb24gbGVuZ3RoXG4kc2VhcmNoLWJveC1zaXplOiByZW0tY2FsYyg0MCkgIWRlZmF1bHQ7XG5cbi5zZWFyY2gtYm94X19jb250YWluZXIge1xuICAgIHBhZGRpbmc6ICgkbmF2LWxpbmUtaGVpZ2h0IC0gJHNlYXJjaC1ib3gtc2l6ZSkvMiAwO1xuICAgIGhlaWdodDogJG5hdi1saW5lLWhlaWdodDtcbiAgICBtaW4td2lkdGg6ICRzZWFyY2gtYm94LXNpemU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uc2VhcmNoLWJveF9fc3VibWl0LmhpZGRlbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuaW5wdXQuc2VhcmNoLWJveF9faW5wdXQge1xuICAgIHRyYW5zaXRpb246IHdpZHRoICRzZWFyY2gtYm94LXRyYW5zaXRpb24sIGJvcmRlci1yYWRpdXMgJHNlYXJjaC1ib3gtdHJhbnNpdGlvbiwgYmFja2dyb3VuZCAkc2VhcmNoLWJveC10cmFuc2l0aW9uLCBib3gtc2hhZG93ICRzZWFyY2gtYm94LXRyYW5zaXRpb247XG4gICAgd2lkdGg6ICRzZWFyY2gtYm94LXNpemU7XG4gICAgaGVpZ2h0OiAkc2VhcmNoLWJveC1zaXplO1xuICAgIGJvcmRlci1yYWRpdXM6ICRzZWFyY2gtYm94LXNpemUvMjtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJhY2tncm91bmQ6ICRzZWFyY2gtYm94LWlucHV0LWJnO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHJpZ2h0OiAwO1xuXG4gICAgJjo6LW1zLWNsZWFyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAmIH4gbGFiZWwge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6ICRuYXYtbGluZS1oZWlnaHQ7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkc2VhcmNoLWJveC1zaXplO1xuICAgICAgICBwYWRkaW5nOiAoJG5hdi1saW5lLWhlaWdodCAtICRzZWFyY2gtYm94LXNpemUpLzIgMDtcbiAgICAgICAgd2lkdGg6ICRzZWFyY2gtYm94LXNpemU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgei1pbmRleDogMjtcblxuICAgICAgICAuaWNvbi1zZWFyY2gge1xuICAgICAgICAgICAgY29sb3I6ICRzZWFyY2gtYm94LWljb24tY29sb3I7XG5cbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgJiB+IC5zZWFyY2gtYm94X19zdWJtaXQge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6ICRuYXYtbGluZS1oZWlnaHQ7XG5cbiAgICAgICAgd2lkdGg6ICRzZWFyY2gtYm94LXNpemU7XG4gICAgICAgIG9wYWNpdHk6IDA7XG5cbiAgICAgICAgIH4gbGFiZWw6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcuJztcbiAgICAgICAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAoJG5hdi1saW5lLWhlaWdodCAtICRzZWFyY2gtYm94LXNpemUpLzI7XG4gICAgICAgICAgICBsZWZ0OiAwcHg7XG4gICAgICAgICAgICByaWdodDogMHB4O1xuICAgICAgICAgICAgYm90dG9tOiAoJG5hdi1saW5lLWhlaWdodCAtICRzZWFyY2gtYm94LXNpemUpLzI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2VhcmNoLWJveC1pbnB1dC1ob3Zlci1iZztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgICAgIG1hcmdpbjogMnB4O1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24ob3BhY2l0eSAxNTBtcyBlYXNlKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIgfiBsYWJlbCB7XG4gICAgICAgICAgICAuaWNvbi1zZWFyY2gge1xuICAgICAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNlYXJjaC1ib3gtaW5wdXQtaG92ZXItYmc7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCAkc2VhcmNoLWJveC1zaGFkb3c7XG5cbiAgICAgICAgJiB+IGxhYmVsIC5pY29uLXNlYXJjaCB7XG4gICAgICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmOmZvY3VzLCAmLmFjdGl2ZSB7XG4gICAgICAgIHRyYW5zaXRpb246IHdpZHRoICRzZWFyY2gtYm94LXRyYW5zaXRpb24gY3ViaWMtYmV6aWVyKC42MCwwLC40MCwxKSwgYm9yZGVyLXJhZGl1cyAkc2VhcmNoLWJveC10cmFuc2l0aW9uLCBiYWNrZ3JvdW5kICRzZWFyY2gtYm94LXRyYW5zaXRpb247XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxcmVtO1xuICAgICAgICBjdXJzb3I6IHRleHQ7XG4gICAgICAgIHdpZHRoOiAyMDBweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogYXV0bztcbiAgICAgICAgYmFja2dyb3VuZDogJHNlYXJjaC1ib3gtaW5wdXQtYWN0aXZlLWJnO1xuICAgICAgICBjb2xvcjogJHNlYXJjaC1ib3gtaW5wdXQtYWN0aXZlLWNvbG9yO1xuXG4gICAgICAgIEBpbmNsdWRlIHBsYWNlaG9sZGVye1xuICAgICAgICAgICAgY29sb3I6IHJnYmEoYWNjZXNzaWJsZS1sdW1pbmFuY2UoJHNlYXJjaC1ib3gtaW5wdXQtYWN0aXZlLWJnLCAkc2VhcmNoLWJveC1pbnB1dC1hY3RpdmUtYmcpLCAuNzUpO1xuICAgICAgICB9O1xuXG4gICAgICAgICYgfiBsYWJlbCAuaWNvbi1zZWFyY2gge1xuICAgICAgICAgICAgY29sb3I6ICRzZWFyY2gtYm94LWlucHV0LWFjdGl2ZS1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYgfiAuc2VhcmNoLWJveF9fc3VibWl0IHtcbiAgICAgICAgICAgIHotaW5kZXg6IDM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmOm5vdCg6Zm9jdXMpOm5vdCguYWN0aXZlKSB7XG4gICAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgQGluY2x1ZGUgcGxhY2Vob2xkZXJ7XG4gICAgICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIH07XG4gICAgfVxufVxuXG5AaW5jbHVkZSBrZXlmcmFtZXMoYWN0aXZpdHktcm90YXRlKSB7XG4gICAgMCUgICB7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybShyb3RhdGUoMGRlZykpO1xuICAgIH1cbiAgICAxMDAlIHtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHJvdGF0ZSgzNjBkZWcpKTtcbiAgICB9XG59XG5cbi5zZWFyY2gtYm94X19sYWJlbCAuaWNvbi1zZWFyY2gge1xuICAgICY6OmJlZm9yZSwgJjo6YWZ0ZXIge1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKHRyYW5zZm9ybSAxNTBtcyBlYXNlLCBvcGFjaXR5IDE1MG1zIGVhc2UpO1xuICAgIH1cbiAgICAmOjphZnRlciB7XG4gICAgICAgIC8vY29udGVudDogXCIjeyRpY29uLXZhci1sb2FkaW5nLWluZGljYXRvcn1cIjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAkaWNvbi1zZWFyY2gtb2Zmc2V0OiByZW0tY2FsYygtN3B4KTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6ICRpY29uLXNlYXJjaC1vZmZzZXQ7XG4gICAgICAgIG1hcmdpbi10b3A6ICAkaWNvbi1zZWFyY2gtb2Zmc2V0O1xuXG4gICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybShzY2FsZSgwKSk7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxufVxuLnNlYXJjaC1ib3gtLWxvYWRpbmcgLnNlYXJjaC1ib3hfX2xhYmVsIC5pY29uLXNlYXJjaCB7XG4gICAgJjo6YmVmb3JlIHtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHNjYWxlKDApKTtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG4gICAgJjo6YWZ0ZXIge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0oc2NhbGUoMSkpO1xuICAgICAgICBAaW5jbHVkZSBhbmltYXRpb24oYWN0aXZpdHktcm90YXRlIDFzIDE1MG1zIGxpbmVhciBpbmZpbml0ZSk7XG4gICAgfVxufVxuXG4jc2VhcmNoLXN1Ym1pdCB7XG4gICAgQGluY2x1ZGUgYWNjZXNzaWJsZS1oaWRlO1xufVxuXG4uc2VhcmNoLWJveF9fY29udGFpbmVyIHtcbiAgICAuaWNvbi1zZWFyY2gge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHdpZHRoOiAkc2VhcmNoLWJveC1zaXplO1xuICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG59XG5cbkBtZWRpYSAjeyRzbWFsbC1wbHVzLXVwfSB7XG4gICAgaW5wdXQuc2VhcmNoLWJveF9faW5wdXQge1xuICAgICAgICAmOmZvY3VzLCAmLmFjdGl2ZSB7XG4gICAgICAgICAgICB3aWR0aDogMzAwcHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cblxuQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgIGlucHV0LnNlYXJjaC1ib3hfX2lucHV0IHtcbiAgICAgICAgJjpmb2N1cywgJi5hY3RpdmUge1xuICAgICAgICAgICAgd2lkdGg6IDM1MHB4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG5hLnNlYXJjaC1tb2RhbC1saW5rLm5ldXRyYWwtbGluazpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59IiwiJGNhcnQtYnV0dG9uLWljb24tY29sb3I6ICRzZWFyY2gtY29sb3IgIWRlZmF1bHQ7XG4kY2FydC1idXR0b24tcXVhbnRpdHktY29sb3I6IGlmKGx1bWEoJGhvdmVyLWNvbG9yKSA8IDUwLCBoc2xhKDAsIDAlLCAxMDAlLCAwLjkpLCBoc2xhKDAsIDAlLCAwJSwgMC43NSkpICFkZWZhdWx0O1xuJGNhcnQtYnV0dG9uLXF1YW50aXR5LWhvdmVyLWNvbG9yOiAkaG92ZXItY29sb3IgIWRlZmF1bHQ7XG4kY2FydC1idXR0b24tcXVhbnRpdHktYmc6ICRob3Zlci1jb2xvciAhZGVmYXVsdDtcbiRjYXJ0LWJ1dHRvbi1xdWFudGl0eS1ob3Zlci1iZzogaWYobHVtYSgkaG92ZXItY29sb3IpIDwgNTAsIGhzbGEoMCwgMCUsIDEwMCUsIDEpLCBoc2xhKDAsIDAlLCAwJSwgMC43NSkpICFkZWZhdWx0O1xuJGNhcnQtYnV0dG9uLXF1YW50aXR5LXNoYWRvdy1jb2xvcjogcmdiYSgkaG92ZXItY29sb3IsIDApICFkZWZhdWx0O1xuJGNhcnQtYnV0dG9uLXF1YW50aXR5LXNoYWRvdy1ob3Zlci1jb2xvcjogJGhvdmVyLWNvbG9yICFkZWZhdWx0O1xuXG4lY2FydC1idXR0b24ge1xuICAgIGNvbG9yOiAkY2FydC1idXR0b24taWNvbi1jb2xvciFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgYmFja2dyb3VuZDogJHNlYXJjaC1iZyFpbXBvcnRhbnQ7XG4gICAgbGluZS1oZWlnaHQ6ICR0b3BiYXItaGVpZ2h0IWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiAwIDEwcHg7XG4gICAgXG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbihiYWNrZ3JvdW5kLCBjb2xvciwgYm94LXNoYWRvdyk7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1kdXJhdGlvbigwLjNzKTtcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbihjdWJpYy1iZXppZXIoMC43LDAsMC4zLDEpKTtcbiAgICBcbiAgICAmOmhvdmVyIHtcbiAgICAgICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRob3Zlci1jb2xvciwgJGhvdmVyLWNvbG9yKSFpbXBvcnRhbnQ7XG4gICAgICAgIGJhY2tncm91bmQ6ICRob3Zlci1jb2xvciFpbXBvcnRhbnQ7XG4gICAgfVxufVxuXG4uY2FydC1hbmQtY2hlY2tvdXQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBcbiAgICBhIHtcbiAgICAgICAgQGV4dGVuZCAlY2FydC1idXR0b247XG4gICAgICAgIFxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIFxuICAgICAgICAmOmhvdmVyIHsgICAgICAgICAgICBcbiAgICAgICAgICAgIC8vb3ZlcnJpZGluZyBwYXJ0cyBpbiBwaW9uZWVyXG4gICAgICAgICAgICAuY2FydC1idXR0b25fX3F1YW50aXR5IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkY2FydC1idXR0b24tcXVhbnRpdHktaG92ZXItYmchaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkY2FydC1idXR0b24tcXVhbnRpdHktaG92ZXItY29sb3IhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkY2FydC1idXR0b24tcXVhbnRpdHktc2hhZG93LWhvdmVyLWNvbG9yICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIC5jYXJ0LWJ1dHRvbl9fdGV4dCwgLmNhcnQtYnV0dG9uX19zdW0sIC5jYXJ0LWJ1dHRvbl9fY3VycmVuY3kge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSh3aGl0ZSwgJGhvdmVyLWNvbG9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAuY2FydC1idXR0b25fX2ljb24ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6IDEwO1xuICAgICAgICBcbiAgICAgICAgJi5pY29uLXNob3BwaW5nLWNhcnQ6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1zaG9wcGluZy1jYXJ0O1xuICAgICAgICAgICAgb3BhY2l0eTogLjA1O1xuICAgICAgICAgICAgcmlnaHQ6IC05NXB4O1xuICAgICAgICAgICAgdG9wOiAzcHg7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDMpO1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuY2FydC1idXR0b25fX3RleHQge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBmb250LXNpemU6IDAuNXJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMXJlbTtcbiAgICAgICAgY29sb3I6ICM5RTlFOUU7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgdG9wOiA1cHg7XG4gICAgfVxuICAgIC5jYXJ0LWJ1dHRvbl9fc3VtLCAuY2FydC1idXR0b25fX2N1cnJlbmN5IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IHJlbS1jYWxjKDMwKTtcbiAgICAgICAgZm9udC1zaXplOiAuNzVyZW07XG4gICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuM3MgZWFzZTtcbiAgICAgICAgaGVpZ2h0OiAyLjg1cmVtO1xuICAgICAgICBoZWlnaHQ6IHJlbS1jYWxjKDMwKTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB0b3A6IDBweDtcbiAgICAgICAgei1pbmRleDogMjA7XG4gICAgfVxuICAgIC5jYXJ0LWJ1dHRvbl9fY3VycmVuY3kge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgICAuY2hlY2tvdXQtYnV0dG9uIHtcbiAgICAgICAgZGlzcGxheTogbm9uZSFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIC5jYXJ0LWJ1dHRvbl9fcXVhbnRpdHkge1xuICAgICAgICBib3JkZXItcmFkaXVzOiBmbG9vcigkZ2xvYmFsLXJhZGl1cyAvIDIpO1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDEyKTtcbiAgICAgICAgbWluLXdpZHRoOiByZW0tY2FsYygxMCk7XG4gICAgICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgIFx0LW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgcGFkZGluZzogcmVtLWNhbGMoMSkgcmVtLWNhbGMoMik7XG4gICAgICAgIGhlaWdodDogcmVtLWNhbGMoMTMpO1xuICAgICAgICBsaW5lLWhlaWdodDogcmVtLWNhbGMoMTIpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHotaW5kZXg6IDIwO1xuICAgICAgICBsZWZ0OiByZW0tY2FsYygtNik7XG4gICAgICAgIHRvcDogcmVtLWNhbGMoLTYpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkY2FydC1idXR0b24tcXVhbnRpdHktYmc7XG4gICAgICAgIGNvbG9yOiAkY2FydC1idXR0b24tcXVhbnRpdHktY29sb3I7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkY2FydC1idXR0b24tcXVhbnRpdHktc2hhZG93LWNvbG9yICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIGEuY2FydC1idXR0b24tLWVtcHR5IHtcbiAgICAgICAgLmNhcnQtYnV0dG9uX190ZXh0LCAuY2FydC1idXR0b25fX3F1YW50aXR5IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG59IiwiJHN0aWNreS1mb290ZXItbWVudTogZmFsc2UgIWRlZmF1bHQ7XG4kc2VhcmNoLW1vZGFsOiBmYWxzZSAhZGVmYXVsdDtcblxuQGlmICgkc3RpY2t5LWZvb3Rlci1tZW51KSB7XG4gICAgQGltcG9ydCBcInF1aWNrZml4L2NvbXBvbmVudHMvc3RpY2t5LWZvb3Rlci1tZW51XCI7XG4gICAgQGltcG9ydCBcInF1aWNrZml4L2NvbXBvbmVudHMvc2xpZGUtaW4tbWVudVwiO1xufVxuXG5AaWYgKCRzZWFyY2gtbW9kYWwpIHtcbiAgICBAaW1wb3J0IFwicXVpY2tmaXgvY29tcG9uZW50cy9zZWFyY2gtbW9kYWxcIjtcbn1cbiIsIiRzdGlja3ktZm9vdGVyLW1lbnUtYmc6ICNFRkVGRUYgIWRlZmF1bHQ7XG4kc3RpY2t5LWZvb3Rlci1tZW51LWJvcmRlci1jb2xvcjogZGFya2VuKCRzdGlja3ktZm9vdGVyLW1lbnUtYmcsIDEwJSkgIWRlZmF1bHQ7XG4kc3RpY2t5LWZvb3Rlci1tZW51LWNvbG9yOiBpZihsdW1hKCRzdGlja3ktZm9vdGVyLW1lbnUtYmcpIDwgNTAsICNmZmYsICMwMDApICFkZWZhdWx0O1xuJHN0aWNreS1mb290ZXItaWNvbi1jb2xvcjogJHN0aWNreS1mb290ZXItbWVudS1jb2xvciAhZGVmYXVsdDtcbiRzdGlja3ktZm9vdGVyLWhlaWdodDogcmVtLWNhbGMoNjApICFkZWZhdWx0O1xuJHN0aWNreS1mb290ZXItaWNvbi1zaXplOiBtaW4ocmVtLWNhbGMoMjgpLCAuNCAqICRzdGlja3ktZm9vdGVyLWhlaWdodCkgIWRlZmF1bHQ7XG4kc3RpY2t5LWZvb3Rlci1sYWJlbC1mb250LXNpemU6IHJlbS1jYWxjKDEyKSAhZGVmYXVsdDtcbiRzdGlja3ktZm9vdGVyLWljb24tdG9wLXBvc2l0aW9uOiAkc3RpY2t5LWZvb3Rlci1oZWlnaHQgLSAkc3RpY2t5LWZvb3Rlci1pY29uLXNpemUgLSAkc3RpY2t5LWZvb3Rlci1sYWJlbC1mb250LXNpemUgLSByZW0tY2FsYygxMykgIWRlZmF1bHQ7XG4kc3RpY2t5LWZvb3Rlci1zZXBhcmF0b3ItY29sb3ItYWRqdXN0bWVudDogOCUgIWRlZmF1bHQ7XG4kc3RpY2t5LWZvb3Rlci1zZXBhcmF0b3ItY29sb3I6IGlmKGx1bWEoJHN0aWNreS1mb290ZXItbWVudS1iZykgPCA1MCwgbGlnaHRlbigkc3RpY2t5LWZvb3Rlci1tZW51LWJnLCAkc3RpY2t5LWZvb3Rlci1zZXBhcmF0b3ItY29sb3ItYWRqdXN0bWVudCksIGRhcmtlbigkc3RpY2t5LWZvb3Rlci1tZW51LWJnLCAkc3RpY2t5LWZvb3Rlci1zZXBhcmF0b3ItY29sb3ItYWRqdXN0bWVudCkpICFkZWZhdWx0O1xuXG5ib2R5LnN0aWNreS1mb290ZXItbWVudSAjZW5kIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogJHN0aWNreS1mb290ZXItaGVpZ2h0O1xufVxuXG4jbWVudS10b2dnbGVyIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4jc3RpY2t5LWZvb3Rlci1tZW51IHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgYm90dG9tOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogJHN0aWNreS1mb290ZXItaGVpZ2h0O1xuICAgIGJhY2tncm91bmQ6ICRzdGlja3ktZm9vdGVyLW1lbnUtYmc7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzdGlja3ktZm9vdGVyLW1lbnUtYm9yZGVyLWNvbG9yO1xuICAgIHotaW5kZXg6IDIwMjtcblxuICAgIHVsIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuXG4gICAgbGkge1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IHJlbS1jYWxjKDIxKTtcblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgaGVpZ2h0OiA3MCU7XG4gICAgICAgICAgICB0b3A6IDE1JTtcbiAgICAgICAgICAgIHdpZHRoOiAxcHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc3RpY2t5LWZvb3Rlci1zZXBhcmF0b3ItY29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICAmOmxhc3QtY2hpbGQ6YWZ0ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYgPiBhLFxuICAgICAgICAmID4gbGFiZWwge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBzdmcge1xuICAgICAgICAgICAgd2lkdGg6ICRzdGlja3ktZm9vdGVyLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHN0aWNreS1mb290ZXItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHN0aWNreS1mb290ZXItaWNvbi1zaXplO1xuXG4gICAgICAgICAgICBsaW5lLFxuICAgICAgICAgICAgY2lyY2xlIHtcbiAgICAgICAgICAgICAgICBzdHJva2U6ICRzdGlja3ktZm9vdGVyLWljb24tY29sb3IgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcGF0aCB7XG4gICAgICAgICAgICAgICAgZmlsbDogJHN0aWNreS1mb290ZXItaWNvbi1jb2xvciAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICAgIGNvbG9yOiAkc3RpY2t5LWZvb3Rlci1tZW51LWNvbG9yO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuXG4gICAgbGFiZWwge1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxuXG4gICAgLnN0aWNreS1mb290ZXJfX2ljb24tbGFiZWwge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZm9udC1zaXplOiAkc3RpY2t5LWZvb3Rlci1sYWJlbC1mb250LXNpemU7XG4gICAgICAgIHBhZGRpbmctdG9wOiAuMzVyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjb2xvcjogJHN0aWNreS1mb290ZXItbWVudS1jb2xvcjtcbiAgICB9XG5cbiAgICAvKiBNZW51IHN0eWxpbmcgKi9cbiAgICAjbmF2LW9wZW4tYnRuIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRzdGlja3ktZm9vdGVyLWljb24tc2l6ZTtcbiAgICB9XG5cbiAgICAvKiBDYXJ0IHN0eWxpbmcgKi9cbiAgICAuY2FydC1hbmQtY2hlY2tvdXQge1xuICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIHJpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICB9XG4gICAgLmNhcnQtYnV0dG9uIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAjc3RpY2t5LWZvb3Rlci1tZW51X19jYXJ0IHtcbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmNhcnQtYnV0dG9uX19xdWFudGl0eSB7XG4gICAgICAgIHRvcDogJHN0aWNreS1mb290ZXItaWNvbi10b3AtcG9zaXRpb24gLSByZW0tY2FsYyg5KTtcbiAgICAgICAgbGVmdDogY2FsYyg1MCUgKyAzcHgpO1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDEzKTtcbiAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgfVxufVxuIiwiJG1lbnUtYmc6ICNmZmYgIWRlZmF1bHQ7XG4kbWVudS1saW5rLWNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkYm9keS1mb250LWNvbG9yLCAkbWVudS1iZyk7XG4kbWVudS1saW5rLWhvdmVyLWNvbG9yOiBpZihcbiAgICBsdW1hKCRwcmltYXJ5LWNvbG9yKSA+IGx1bWEoJG1lbnUtYmcpLFxuICAgIGxpZ2h0ZW4oJG1lbnUtbGluay1jb2xvciwgMTAlKSxcbiAgICBkYXJrZW4oJG1lbnUtbGluay1jb2xvciwgMTAlKVxuKTtcbiRtZW51LWhlYWRlci1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuJG1lbnUtaGVhZGVyLWZvbnQtc2l6ZTogcmVtLWNhbGMoMjEpICFkZWZhdWx0O1xuJG1lbnUtaGVhZGVyLWxpbmUtaGVpZ2h0OiAxLjUgIWRlZmF1bHQ7XG4kbWVudS1oZWFkZXItaGVpZ2h0OiAkbWVudS1oZWFkZXItcGFkZGluZyAqIDIgKyAkbWVudS1oZWFkZXItZm9udC1zaXplICogJG1lbnUtaGVhZGVyLWxpbmUtaGVpZ2h0O1xuJG1lbnUtaXRlbS1mb250LXNpemU6IHJlbS1jYWxjKDEzKSAhZGVmYXVsdDtcbiRtZW51LWl0ZW0tbGluZS1oZWlnaHQ6IDEuMjUgIWRlZmF1bHQ7XG4kbWVudS1pdGVtLWhlaWdodDogcmVtLWNhbGMoNDQpICFkZWZhdWx0O1xuJG1lbnUtaXRlbS1vcGVuZXItc2l6ZTogJG1lbnUtaXRlbS1oZWlnaHQgIWRlZmF1bHQ7XG4kbWVudS1pdGVtLWluZGVudGF0aW9uOiAxcmVtICFkZWZhdWx0O1xuJG1lbnUtaXRlbS1ib3JkZXItY29sb3I6ICNlZWUgIWRlZmF1bHQ7XG4kbWVudS1pdGVtLWJvcmRlci1zdHlsZTogMXB4IHNvbGlkICN7JG1lbnUtaXRlbS1ib3JkZXItY29sb3J9ICFkZWZhdWx0O1xuJG1lbnUtaXRlbS1ob3Zlci1lZmZlY3QtY29sb3I6IHJnYmEoI2JiYiwgLjEpICFkZWZhdWx0O1xuJG1lbnUtaXRlbS1zbWFsbGVyLWZvbnQtc2l6ZTogJG1lbnUtaXRlbS1mb250LXNpemUgLSByZW0tY2FsYygxKSAhZGVmYXVsdDtcbiRtZW51LXRyYW5zaXRpb24tc3BlZWQ6IDMwMG1zICFkZWZhdWx0O1xuXG5ib2R5Lm1lbnUtb3BlbiB7XG4gICAgb3ZlcmZsb3cteTogaGlkZGVuO1xufVxuXG4jbWVudS1tYXNrIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgei1pbmRleDogMTk5OTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogLTEwMCU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDAsLjUpO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgJG1lbnUtdHJhbnNpdGlvbi1zcGVlZCBlYXNlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgb3BhY2l0eTogMDtcbiAgICBtYXJnaW46IDA7XG5cbiAgICAjbWVudS10b2dnbGVyOmNoZWNrZWQgfiAmIHtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG59XG5cbiNtZW51IHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICB0b3A6IDA7XG4gICAgcGFkZGluZzogMCAxcmVtO1xuICAgIHotaW5kZXg6IDIwMDA7XG4gICAgYm94LXNoYWRvdzogMCAwIDE0MHB4IDAgcmdiYSgwLDAsMCwuMTYpO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJhY2tncm91bmQ6ICRtZW51LWJnO1xuICAgIGxlZnQ6IC0xMDAlO1xuICAgIHdpZHRoOiA0MHJlbTtcbiAgICBtYXgtd2lkdGg6IDg1JTtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRyYW5zaXRpb246IGxlZnQgJG1lbnUtdHJhbnNpdGlvbi1zcGVlZDtcbiAgICBjdXJzb3I6IGF1dG87XG5cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDMwcmVtKSB7XG4gICAgICAgIHBhZGRpbmc6IDAgMnJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA3NSU7XG4gICAgfVxuXG4gICAgI21lbnUtdG9nZ2xlcjpjaGVja2VkIH4gJiB7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgfVxuXG4gICAgaGVhZGVyIHtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkM2QzZDM7XG4gICAgICAgIHBhZGRpbmc6ICRtZW51LWhlYWRlci1wYWRkaW5nIDA7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkbWVudS1iZztcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgIGgzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBmb250LXNpemU6ICRtZW51LWhlYWRlci1mb250LXNpemU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJG1lbnUtaGVhZGVyLWxpbmUtaGVpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgbGFiZWwge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJG1lbnUtaGVhZGVyLWxpbmUtaGVpZ2h0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkbWVudS1oZWFkZXItbGluZS1oZWlnaHQgKiAkbWVudS1oZWFkZXItZm9udC1zaXplICsgJG1lbnUtaGVhZGVyLXBhZGRpbmcgKiAyO1xuICAgICAgICAgICAgd2lkdGg6ICRtZW51LWl0ZW0tb3BlbmVyLXNpemU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdWwge1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgIHVsIHtcbiAgICAgICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkbWVudS1pdGVtLWJvcmRlci1zdHlsZTtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IHZpc2liaWxpdHkgMHMgZWFzZSwgaGVpZ2h0IDBzIGVhc2UsIG9wYWNpdHkgJG1lbnUtdHJhbnNpdGlvbi1zcGVlZCBlYXNlO1xuXG4gICAgICAgICAgICBsaTpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCA0IHtcbiAgICAgICAgICAgICYubWVudS0tbGV2ZWwtI3skaX0ge1xuICAgICAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgICAgICBAaWYgKCRpID4gMikge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAkbWVudS1pdGVtLXNtYWxsZXItZm9udC1zaXplO1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6ICgkbWVudS1pdGVtLWhlaWdodCAtICgkbWVudS1pdGVtLXNtYWxsZXItZm9udC1zaXplICogJG1lbnUtaXRlbS1saW5lLWhlaWdodCkpLzI7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogKCRtZW51LWl0ZW0taGVpZ2h0IC0gKCRtZW51LWl0ZW0tc21hbGxlci1mb250LXNpemUgKiAkbWVudS1pdGVtLWxpbmUtaGVpZ2h0KSkvMjtcblxuICAgICAgICAgICAgICAgICAgICAgICAgQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJG1lbnUtaXRlbS1mb250LXNpemU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6ICgkbWVudS1pdGVtLWhlaWdodCAtICgkbWVudS1pdGVtLWZvbnQtc2l6ZSAqICRtZW51LWl0ZW0tbGluZS1oZWlnaHQpKS8yO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAoJG1lbnUtaXRlbS1oZWlnaHQgLSAoJG1lbnUtaXRlbS1mb250LXNpemUgKiAkbWVudS1pdGVtLWxpbmUtaGVpZ2h0KSkvMjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogKCRpICsgMSkgKiAkbWVudS1pdGVtLWluZGVudGF0aW9uO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5tZW51LWl0ZW0td3JhcCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgIH1cblxuICAgIGxpIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICBib3JkZXItdG9wOiAkbWVudS1pdGVtLWJvcmRlci1zdHlsZTtcbiAgICAgICAgZm9udC1zaXplOiAkbWVudS1pdGVtLWZvbnQtc2l6ZTtcblxuICAgICAgICBAbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRtZW51LWl0ZW0tZm9udC1zaXplICsgcmVtLWNhbGMoMSk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogJG1lbnUtaXRlbS1ib3JkZXItc3R5bGU7XG4gICAgICAgIH1cblxuICAgICAgICBsYWJlbCB7XG4gICAgICAgICAgICB3aWR0aDogJG1lbnUtaXRlbS1vcGVuZXItc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkbWVudS1pdGVtLWhvdmVyLWVmZmVjdC1jb2xvcjtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiA1MCU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICAgICAgei1pbmRleDogOTg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXI6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsICRtZW51LXRyYW5zaXRpb24tc3BlZWQgZWFzZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaSB7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDE1MG1zIGVhc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvKiBjdXJyZW50IGl0ZW0gaGlnaGxpZ2h0aW5nICovXG4gICAgICAgICYuY3VycmVudCA+IC5tZW51LWl0ZW0td3JhcCBhIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkbWVudS1pdGVtLWxpbmUtaGVpZ2h0O1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBwYWRkaW5nOiAoJG1lbnUtaXRlbS1oZWlnaHQgLSAkbWVudS1pdGVtLWxpbmUtaGVpZ2h0KS8yICRtZW51LWl0ZW0taW5kZW50YXRpb247XG4gICAgICAgIGNvbG9yOiAkbWVudS1saW5rLWNvbG9yO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgY29sb3I6ICRtZW51LWxpbmstaG92ZXItY29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICAvKiBob3ZlciBlZmZlY3QgKi9cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJG1lbnUtaXRlbS1ob3Zlci1lZmZlY3QtY29sb3I7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgcmlnaHQ6IDUwJTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiA5ODtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXI6YmVmb3JlIHtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgLjJzIGVhc2U7XG4gICAgICAgIH1cblxuICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLm1lbnUtLW9wZW5lciB7XG4gICAgICAgICYgfiAubWVudS1pdGVtLXdyYXAgYSB7XG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMXB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogODAlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRtZW51LWl0ZW0tYm9yZGVyLWNvbG9yO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMTAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICYgfiAubWVudS1pdGVtLXdyYXAge1xuICAgICAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkbWVudS1pdGVtLWhvdmVyLWVmZmVjdC1jb2xvcjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBsYWJlbCB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRtZW51LWl0ZW0taG92ZXItZWZmZWN0LWNvbG9yO1xuXG4gICAgICAgICAgICAgICAgICAgIGkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYgfiB1bCB7XG4gICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn0iLCIjc2VhcmNoLW1vZGFsIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgLjg1KTtcbiAgICBoZWlnaHQ6IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDA7XG4gICAgdHJhbnNpdGlvbjogYWxsIC41cztcbiAgICB3aWR0aDogMTAwdnc7XG4gICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgICB6LWluZGV4OiAtMTtcblxuICAgICY6dGFyZ2V0IHtcbiAgICAgICAgaGVpZ2h0OiAxMDB2aCAhaW1wb3J0YW50O1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB3aWR0aDogMTAwdncgIWltcG9ydGFudDtcbiAgICAgICAgei1pbmRleDogMjAzO1xuICAgICAgICAjc2VhcmNoLW1vZGFsX19jbG9zZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICNzZWFyY2gtbW9kYWxfX2lucHV0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5mYWRlIHtcbiAgICAgICAgaGVpZ2h0OiAxMDB2aDtcbiAgICAgICAgd2lkdGg6IDEwMHZ3O1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IC41cztcbiAgICB9XG59XG5cbiNzZWFyaC1tb2RhbF9fZm9ybSB7XG4gICAgZmxleDogMSAwIGF1dG87XG59XG5cbiNzZWFyY2gtbW9kYWxfX2lucHV0IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlcjogc29saWQgI2ZmZjtcbiAgICBib3JkZXItd2lkdGg6IDAgMCAxcHggMDtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICBoZWlnaHQ6IDJyZW07XG4gICAgbWF4LXdpZHRoOiA1MCU7XG4gICAgb3V0bGluZTogMDtcbiAgICBwYWRkaW5nOiAycmVtIDFyZW07XG4gICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgIEBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAgICAgZm9udC1zaXplOiAycmVtO1xuICAgIH1cbn1cblxuI3NlYXJjaC1tb2RhbF9fY2xvc2Uge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZm9udC1zaXplOiAycmVtO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDJyZW07XG4gICAgcmlnaHQ6IDJyZW07XG5cbiAgICBzdmcge1xuICAgICAgICB3aWR0aDogNHJlbTtcbiAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICB9XG59XG4iLCIvLyBTZXQgdGV4dCBjb2xvclxuQGlmIGx1bWEoJHRvcC1iZykgPCA1MCB7XG4gICAgJHNvY2lhbC1pY29uLWJnOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkdG9wLWJnLCAkdG9wLWJnKTtcbn0gQGVsc2Uge1xuICAgICRzb2NpYWwtaWNvbi1iZzogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJHRvcC1iZywgJHRvcC1iZyk7XG59XG5cbkBpZiBsdW1hKCRjb250ZW50LWJnKSA8IDUwIHtcbiAgICAkcHJvZHVjdC1zb2NpYWwtaWNvbi1iZzogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGxpZ2h0LWJvZHktdGV4dCwgJGNvbnRlbnQtYmcpO1xufSBAZWxzZSB7XG4gICAgJHByb2R1Y3Qtc29jaWFsLWljb24tYmc6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRkYXJrLWJvZHktdGV4dCwgJGNvbnRlbnQtYmcpO1xufVxuXG4uc29jaWFsLWJ1dHRvbnMtbGlzdCB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBtYXJnaW46IDA7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLnNvY2lhbC1idXR0b25zLWxpc3QtLXByb2R1Y3Qge1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG59XG5cbi5zb2NpYWwtYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbGluZS1oZWlnaHQ6ICR1dGlscy1uYXYtYmFyLWhlaWdodDtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgLnNvY2lhbC1idXR0b25zLWxpc3QtLXByb2R1Y3QgJiB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkc29jaWFsLWljb24tc2l6ZTtcbiAgICB9XG5cbiAgICAuc29jaWFsLWJ1dHRvbl9fbGluayB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6ICRzb2NpYWwtaWNvbi1zaXplO1xuICAgICAgICB3aWR0aDogJHNvY2lhbC1pY29uLXNpemU7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIC4ycyBlYXNlKTtcbiAgICAgICAgQGluY2x1ZGUgcmFkaXVzKDUwJSk7XG4gICAgICAgIGNvbG9yOiAkc29jaWFsLWljb24tYmc7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMjApO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIFxuICAgICAgICAuc29jaWFsLWJ1dHRvbnMtbGlzdC0tcHJvZHVjdCAmIHtcbiAgICAgICAgICAgIGNvbG9yOiAkcHJvZHVjdC1zb2NpYWwtaWNvbi1iZztcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgLmljb24tZmFjZWJvb2sge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRwcm9kdWN0LXNvY2lhbC1pY29uLWJnO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkY29udGVudC1iZztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMsXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGNvbG9yOiAkZW5kLWJnO1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgLmljb24tZmFjZWJvb2sge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzb2NpYWwtY29sb3ItZmFjZWJvb2s7XG4gICAgICAgICAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4uc29jaWFsLWJ1dHRvbnNfX2hlYWRsaW5lLXdyYXBwZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8vQFRPRE8gdXNlIGFub3RoZXIgaWNvbiBpbiB0aGUgZm9udCBwZXJoYXBzP1xuLnNvY2lhbC1idXR0b24tLWZhY2Vib29rIC5pY29uLWZhY2Vib29rIHtcbiAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgY29sb3I6ICR0b3AtYmc7XG4gICAgYmFja2dyb3VuZDogJHNvY2lhbC1pY29uLWJnO1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIC4ycyBlYXNlKTtcbn1cblxuLnNvY2lhbC1idXR0b24tLWJsb2dnZXIgeyAmOmhvdmVyLCY6Zm9jdXMsJjphY3RpdmUgeyAuc29jaWFsLWJ1dHRvbl9fbGluayAgICB7IGNvbG9yOiAkc29jaWFsLWNvbG9yLWJsb2dnZXI7IGJvcmRlci1jb2xvcjogJHNvY2lhbC1jb2xvci1ibG9nZ2VyOyB9fX1cbi5zb2NpYWwtYnV0dG9uLS1lbGxvIHsgJjpob3ZlciwmOmZvY3VzLCY6YWN0aXZlIHsgLnNvY2lhbC1idXR0b25fX2xpbmsgICAgICAgeyBjb2xvcjogIzAwMDsgYm9yZGVyLWNvbG9yOiAkc29jaWFsLWNvbG9yLWVsbG87IH19fVxuLnNvY2lhbC1idXR0b24tLWZhY2Vib29rIHsgJjpob3ZlciwmOmZvY3VzLCY6YWN0aXZlIHsgLnNvY2lhbC1idXR0b25fX2xpbmsgICB7IGNvbG9yOiAkc29jaWFsLWNvbG9yLWZhY2Vib29rOyBib3JkZXItY29sb3I6ICRzb2NpYWwtY29sb3ItZmFjZWJvb2s7IH19fVxuLnNvY2lhbC1idXR0b24tLWZhY2Vib29rIHsgJjpob3ZlciwmOmZvY3VzLCY6YWN0aXZlIHsgLmljb24tZmFjZWJvb2sgICAgICAgICB7IGJhY2tncm91bmQ6ICRzb2NpYWwtY29sb3ItZmFjZWJvb2s7IGNvbG9yOiB3aGl0ZTsgfX19XG4uc29jaWFsLWJ1dHRvbi0tZmxpY2tyIHsgJjpob3ZlciwmOmZvY3VzLCY6YWN0aXZlIHsgLnNvY2lhbC1idXR0b25fX2xpbmsgICAgIHsgY29sb3I6ICRzb2NpYWwtY29sb3ItZmxpY2tyOyBib3JkZXItY29sb3I6ICRzb2NpYWwtY29sb3ItZmxpY2tyOyB9fX1cbi5zb2NpYWwtYnV0dG9uLS1nb29nbGVwbHVzIHsgJjpob3ZlciwmOmZvY3VzLCY6YWN0aXZlIHsgLnNvY2lhbC1idXR0b25fX2xpbmsgeyBjb2xvcjogJHNvY2lhbC1jb2xvci1nb29nbGVwbHVzOyBib3JkZXItY29sb3I6ICRzb2NpYWwtY29sb3ItZ29vZ2xlcGx1czsgfX19XG4uc29jaWFsLWJ1dHRvbi0taW5zdGFncmFtIHsgJjpob3ZlciwmOmZvY3VzLCY6YWN0aXZlIHsgLnNvY2lhbC1idXR0b25fX2xpbmsgIHsgY29sb3I6ICRzb2NpYWwtY29sb3ItaW5zdGFncmFtOyBib3JkZXItY29sb3I6ICRzb2NpYWwtY29sb3ItaW5zdGFncmFtOyB9fX1cbi5zb2NpYWwtYnV0dG9uLS1saW5rZWRpbiB7ICY6aG92ZXIsJjpmb2N1cywmOmFjdGl2ZSB7IC5zb2NpYWwtYnV0dG9uX19saW5rICAgeyBjb2xvcjogJHNvY2lhbC1jb2xvci1saW5rZWRpbjsgYm9yZGVyLWNvbG9yOiAkc29jaWFsLWNvbG9yLWxpbmtlZGluOyB9fX1cbi5zb2NpYWwtYnV0dG9uLS1tYWlsIHsgJjpob3ZlciwmOmZvY3VzLCY6YWN0aXZlIHsgLnNvY2lhbC1idXR0b25fX2xpbmsgICAgICAgeyBjb2xvcjogJHNvY2lhbC1jb2xvci1tYWlsOyBib3JkZXItY29sb3I6ICRzb2NpYWwtY29sb3ItbWFpbDsgfX19XG4uc29jaWFsLWJ1dHRvbi0tcGludGVyZXN0IHsgJjpob3ZlciwmOmZvY3VzLCY6YWN0aXZlIHsgLnNvY2lhbC1idXR0b25fX2xpbmsgIHsgY29sb3I6ICRzb2NpYWwtY29sb3ItcGludGVyZXN0OyBib3JkZXItY29sb3I6ICRzb2NpYWwtY29sb3ItcGludGVyZXN0OyB9fX1cbi5zb2NpYWwtYnV0dG9uLS10d2l0dGVyIHsgJjpob3ZlciwmOmZvY3VzLCY6YWN0aXZlIHsgLnNvY2lhbC1idXR0b25fX2xpbmsgICAgeyBjb2xvcjogJHNvY2lhbC1jb2xvci10d2l0dGVyOyBib3JkZXItY29sb3I6ICRzb2NpYWwtY29sb3ItdHdpdHRlcjsgfX19XG4uc29jaWFsLWJ1dHRvbi0tdmltZW8geyAmOmhvdmVyLCY6Zm9jdXMsJjphY3RpdmUgeyAuc29jaWFsLWJ1dHRvbl9fbGluayAgICAgIHsgY29sb3I6ICRzb2NpYWwtY29sb3ItdmltZW87IGJvcmRlci1jb2xvcjogJHNvY2lhbC1jb2xvci12aW1lbzsgfX19XG4uc29jaWFsLWJ1dHRvbi0teW91dHViZSB7ICY6aG92ZXIsJjpmb2N1cywmOmFjdGl2ZSB7IC5zb2NpYWwtYnV0dG9uX19saW5rICAgIHsgY29sb3I6ICRzb2NpYWwtY29sb3IteW91dHViZTsgYm9yZGVyLWNvbG9yOiAkc29jaWFsLWNvbG9yLXlvdXR1YmU7IH19fVxuXG5AbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgLnNvY2lhbC1idXR0b25zLWxpc3QtLXByb2R1Y3Qge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbn1cblxuQG1lZGlhICN7JHhsYXJnZS11cH0ge1xuICAgIC5zb2NpYWwtYnV0dG9ucy1saXN0LS1wcm9kdWN0IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogLTNyZW07XG4gICAgICAgIHRvcDogMXJlbTtcbiAgICAgICAgd2lkdGg6ICRzb2NpYWwtaWNvbi1zaXplO1xuXG4gICAgICAgIC5zb2NpYWwtYnV0dG9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgI3BhZ2VmcmFtZSAmIHtcbiAgICAgICAgICAgIHJpZ2h0OiAtNC41cmVtO1xuICAgICAgICB9XG4gICAgfVxufSIsIi5ibG9ja19fYm94X19oZWFkbGluZSB7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDIyKTtcbiAgICBwYWRkaW5nOiAuNXJlbSAkY29sdW1uLWd1dHRlci8yIC41cmVtICRjb2x1bW4tZ3V0dGVyLzI7XG4gICAgbWFyZ2luOiAwO1xufVxuXG4uYmxvY2tfX2JveF9fY29udGVudCB7XG4gICAgcGFkZGluZzogLjVyZW0gJGNvbHVtbi1ndXR0ZXIvMiAkY29sdW1uLWd1dHRlciAkY29sdW1uLWd1dHRlci8yO1xufVxuXG4uYmxvY2tfX2JveCB7XG4gICAgdWwge1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgdWwgbGkge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAxcmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbGkge1xuICAgICAgICBhIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMDtcbiAgICAgICAgfVxuXG5cbiAgICAgICAgJi5wYXJlbnQge1xuICAgICAgICAgICAgPiBhOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDE1MG1zIGVhc2UpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGljb24oJGljb24tdmFyLWFkZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgID4gYS50b2dnbGVkIHtcbiAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybShyb3RhdGUoNDVkZWcpKTtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRhbGVydC1jb2xvcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgID4gdWwge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLmJsb2NrX19ib3gtLWxvZ29fbGlzdCBhOmJlZm9yZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG4uYmxvY2tfX2xvZ2luX19mb3Jnb3RwYXNzd29yZCB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLXNpemUoJHBhZGRpbmc6JGJ1dHRvbi1zbWwpO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xufVxuXG4jZm9vdGVyIHtcbiAgICAuYmxvY2tfX2JveF9faGVhZGxpbmUge1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE2KTtcbiAgICB9XG4gICAgXG4gICAgLmZvb3Rlci1ibG9jazpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJGNvbHVtbi1ndXR0ZXI7XG5cbiAgICAgICAgLmJsb2NrX19ib3g6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmJsb2NrX19ib3gge1xuICAgICAgICBhIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRnb2xkZW47XG4gICAgICAgIH1cbiAgICAgICAgbGkgYS5uZXV0cmFsLWxpbms6YmVmb3JlLFxuICAgICAgICBsaS5uZXV0cmFsLWxpbmsgPiBhOmJlZm9yZSB7XG4gICAgICAgICAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJHByaW1hcnktY29sb3IsICRmb290ZXItYmcpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGkgYS50b2dnbGVkOmJlZm9yZSB7XG4gICAgICAgICAgICBjb2xvcjogJGFsZXJ0LWNvbG9yO1xuICAgICAgICB9ICAgICBcbiAgICB9ICAgXG59XG5cbkBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAjZm9vdGVyIHtcbiAgICAgICAgLmZvb3Rlci1ibG9jazpmaXJzdC1jaGlsZCxcbiAgICAgICAgLmZvb3Rlci1ibG9jazpudGgtbGFzdC1jaGlsZCgyKSB7XG4gICAgICAgICAgICAuYmxvY2tfX2JveDpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuYmxvY2tfX2JveDpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMXB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5AbWVkaWEgI3skbGFyZ2UtdXB9IHtcbiAgICAjZm9vdGVyIHtcbiAgICAgICAgLmZvb3Rlci1ibG9jayB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkY29sdW1uLWd1dHRlcjtcblxuICAgICAgICAgICAgLmJsb2NrX19ib3g6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5ibG9ja19fYm94X19oZWFkbGluZSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgY3Vyc29yOiBpbmhlcml0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi50b2dnbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmJsb2NrX19ib3hfX2NvbnRlbnQge1xuICAgICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgICAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgICAgb3BhY2l0eTogMSAhaW1wb3J0YW50O1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgfVxufSIsIiRuYXYtc2lkZS1oZWFkZXItZm9udHNpemU6ICRoNC1mb250LXNpemUgIWRlZmF1bHQ7XG4kbmF2LXNpZGUtdG9wLW1hcmdpbjogMXJlbSAhZGVmYXVsdDtcbiRwYWdlLWhlYWRlci1zaXplOiAoJHBhZ2UtdGl0bGUtcGFkZGluZyAqIDIgKyAkaDEtZm9udC1zaXplICogJGhlYWRlci1saW5lLWhlaWdodCkgIWRlZmF1bHQ7XG4kbmF2LXNpZGUtaGVhZGVyLXRvcC1wYWRkaW5nOiAoJHBhZ2UtaGVhZGVyLXNpemUgLSAkcGFnZS10aXRsZS1wYWRkaW5nIC0gJG5hdi1zaWRlLXRvcC1tYXJnaW4gLSAkbmF2LXNpZGUtaGVhZGVyLWZvbnRzaXplICogJGhlYWRlci1saW5lLWhlaWdodCkgIWRlZmF1bHQ7XG4kcGFyYWdyYXBoLXJlbS1saW5lLWhlaWdodDogMXJlbSAqICRwYXJhZ3JhcGgtbGluZS1oZWlnaHQ7XG4kYWN0aXZlLWVsZW0tYm9yZGVyLXNpemU6IHJlbS1jYWxjKDUpO1xuJHNpZGViYXItc2lkZS1wYWRkaW5nOiBcdFx0ICAuNzVyZW0gIWRlZmF1bHQ7XG4kbm9uZS10b3VjaC1mcmllbmRseS1zaXplOiAgICByZW0tY2FsYygzNSkgIWRlZmF1bHQ7XG4kc3BsaXRtZW51LWJvcmRlci1jb2xvcjogaWYobHVtYSgkY29udGVudC1iZykgPCA1MCwgbGlnaHRlbigkY29udGVudC1iZywgMTUlKSwgZGFya2VuKCRjb250ZW50LWJnLCAxNSUpKSAhZGVmYXVsdDtcbiRzcGxpdG1lbnUtc3VibWVudS1iYWNrZ3JvdW5kOiBpZihsdW1hKCRjb250ZW50LWJnKSA8IDUwLCBsaWdodGVuKCRjb250ZW50LWJnLCA0JSksIGRhcmtlbigkY29udGVudC1iZywgNCUpKSAhZGVmYXVsdDtcbiRzcGxpdG1lbnUtc3VibWVudS1iYWNrZ3JvdW5kLWhvdmVyOiBpZihsdW1hKCRjb250ZW50LWJnKSA8IDUwLCBsaWdodGVuKCRjb250ZW50LWJnLCA2JSksIGRhcmtlbigkY29udGVudC1iZywgNiUpKSAhZGVmYXVsdDtcblxuLy8gVGhpcyBjb21wb25lbnQgaXMgb3B0aW9uYWwsIHdoaWNoIGlzIHdoeSBpdCBpcyBpbiBhIG1peGluXG5AbWl4aW4gc3BsaXRtZW51LXN0eWxlcygpIHtcblxuICAgIC5uYXYtc2lkZSB7XG4gICAgICAgIG1hcmdpbi10b3A6ICN7LSRjb2x1bW4tZ3V0dGVyICsgJG5hdi1zaWRlLXRvcC1tYXJnaW59O1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBcbiAgICAgICAgXG4gICAgfVxuXG4gICAgLm5hdi1zaWRlX19oZWFkZXIge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6ICRuYXYtc2lkZS1oZWFkZXItdG9wLXBhZGRpbmcgMCAkcGFnZS10aXRsZS1wYWRkaW5nLzI7XG4gICAgICAgIGZvbnQtc2l6ZTogJG5hdi1zaWRlLWhlYWRlci1mb250c2l6ZTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICRib3JkZXItY29sb3I7XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IGN1cnJlbnRjb2xvcjtcbiAgICB9XG4gICAgXG4gICAgLnNwbGl0bWVudSB7XG5cbiAgICAgICAgJi5sZXZlbC0wIHtcbiAgICAgICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5sZXZlbC0wIHtcbiAgICAgICAgICAgICYuc2VsZWN0ZWQsXG4gICAgICAgICAgICAmLmN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmxldmVsLTEge1xuICAgICAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLmxldmVsLTIgYSB7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLnNwbGl0bWVudV9faXRlbSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiByZW0tY2FsYygyMCk7XG5cbiAgICAgICAgdWwge1xuICAgICAgICAgICAgY29sb3I6ICM1NDU0NTQ7XG4gICAgICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmc6IChyZW0tY2FsYygyMCkvMikgKDFyZW0gLSAkYWN0aXZlLWVsZW0tYm9yZGVyLXNpemUpO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuXG4gICAgICAgICAgICAubm8tdG91Y2ggJiB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogKHJlbS1jYWxjKDE1KS8yKSAoMXJlbSAtICRhY3RpdmUtZWxlbS1ib3JkZXItc2l6ZSk7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZvY3VzLCBcbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkaG92ZXItY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLmN1cnJlbnQgPiBhIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICAgICAgICBjb2xvcjogJGhvdmVyLWNvbG9yO1xuXG4gICAgICAgICAgICAmOmZvY3VzLCBcbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkaG92ZXItY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLnNlbGVjdGVkID4gYSB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYubGV2ZWwtMCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICAmID4gdWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGdyYWRpZW50LWJvcmRlcigkb2Zmc2V0OiAxNy41JSwgJGJhY2tncm91bmQtY29sb3I6ICRjb250ZW50LWJnKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBncmFkaWVudC1ib3JkZXIoJG9mZnNldDogMTcuNSUsICRwb3NpdGlvbjogYmVmb3JlLCAkYmFja2dyb3VuZC1jb2xvcjogJGNvbnRlbnQtYmcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5sZXZlbC0xIHtcbiAgICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogJHNwbGl0bWVudS1zdWJtZW51LWJhY2tncm91bmQ7XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm5hdi1zaWRlIHtcbiAgICAgICAgLm1haW4tbmF2X190b2dnbGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWFpbi1uYXZfX3RvZ2dsZS0tY29sb3JzKCRjb2xvcjogJHByaW1hcnktY29sb3IsICRiYWNrZHJvcDogJGNvbnRlbnQtYmcsICRob3Zlci1iZzogJGNvbnRlbnQtYmcsICRob3Zlci1jb2xvcjogJHByaW1hcnktY29sb3IpO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaWNvbigkaWNvbi12YXIta2V5Ym9hcmQtYXJyb3ctZG93bik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgXHQvLyBTaG93IHN1Ym1lbnVcbiAgICBcdC5wYXJlbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgXG4gICAgXHRcdCYgPiBhOmFmdGVyIHtcbiAgICBcdFx0XHQvL0BpbmNsdWRlIGljb24oJGljb24tdmFyLWtleWJvYXJkLWFycm93LWRvd24pO1xuICAgIFx0XHRcdGxpbmUtaGVpZ2h0OiAkbm9uZS10b3VjaC1mcmllbmRseS1zaXplO1xuICAgIFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDAuMXJlbTtcbiAgICBcdFx0XHRyaWdodDogMC40cmVtO1xuICAgIFx0XHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMjApO1xuICAgIFx0XHRcdEBpbmNsdWRlIHRyYW5zaXRpb24odHJhbnNmb3JtLCA0MDBtcyBlYXNlKTtcbiAgICBcdFx0fVxuXG4gICAgXHRcdCYgPiBhLnRvZ2dsZWQ6YWZ0ZXIge1xuICAgIFx0XHRcdEBpbmNsdWRlIHRyYW5zZm9ybShyb3RhdGV4KDE4MGRlZykpO1xuICAgIFx0XHR9XG5cbiAgICBcdFx0Ji5jdXJyZW50LFxuICAgIFx0XHQmLnNlbGVjdGVkIHtcbiAgICBcdFx0XHQmID4gdWwge1xuICAgIFx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgXHRcdFx0XHRcdGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNwbGl0bWVudS1zdWJtZW51LWJhY2tncm91bmQtaG92ZXIsIDAuMTI1KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgJjpiZWZvcmUsICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24ob3BhY2l0eSwgMzAwbXMgZWFzZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgZ3JhZGllbnQtYm9yZGVyKCRvZmZzZXQ6IDE3LjUlLCAkY29sb3I6ICRob3Zlci1jb2xvciwgJGJhY2tncm91bmQtY29sb3I6ICRjb250ZW50LWJnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgZ3JhZGllbnQtYm9yZGVyKCRvZmZzZXQ6IDE3LjUlLCAkY29sb3I6ICRob3Zlci1jb2xvciwgJHBvc2l0aW9uOiBiZWZvcmUsICRiYWNrZ3JvdW5kLWNvbG9yOiAkY29udGVudC1iZykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICBcdFx0XHRcdH1cbiAgICBcdFx0XHRcdGE6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgJjpiZWZvcmUsICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuODtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICBcdFx0XHRcdH1cbiAgICBcdFx0XHR9XG5cbiAgICBcdFx0XHQmID4gYTphZnRlciB7XG4gICAgXHRcdFx0XHRAaW5jbHVkZSB0cmFuc2Zvcm0ocm90YXRleCgxODBkZWcpKTtcbiAgICBcdFx0XHR9XG5cbiAgICBcdFx0XHQmID4gYS50b2dnbGVkOmFmdGVyIHtcbiAgICBcdFx0XHRcdEBpbmNsdWRlIHRyYW5zZm9ybShyb3RhdGV4KDBkZWcpKTtcbiAgICBcdFx0XHR9XG4gICAgXHRcdH1cbiAgICBcdH1cblxuICAgIFx0dWwubGV2ZWwtMCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgIFx0XHQvL2JhY2tncm91bmQtY29sb3I6IGdyZWVuIWltcG9ydGFudDtcbiAgICBcdH1cbiAgICAgICAgXG4gICAgICAgIHVsLmxldmVsLTEge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICBcdFx0Ly9iYWNrZ3JvdW5kLWNvbG9yOiBncmVlbiFpbXBvcnRhbnQ7XG4gICAgXHR9XG4gICAgICAgIFxuICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIDQge1xuICAgIFx0XHQubGV2ZWwtI3skaX0gYSB7XG4gICAgXHRcdFx0cGFkZGluZy1sZWZ0OiAkc2lkZWJhci1zaWRlLXBhZGRpbmcgKiAoMSArICRpKTtcbiAgICBcdFx0fVxuICAgIFx0fVxuXG4gICAgfVxuXG5cbn1cblxuQGlmICRtZW51LXR5cGUgPT0gJ3NwbGl0JyB7XG4gICAgQGluY2x1ZGUgc3BsaXRtZW51LXN0eWxlcztcblxuICAgIEBtZWRpYSAjeyRsYXJnZS11cH0ge1xuICAgICAgICAjbWFpbi1tZW51IHtcbiAgICAgICAgICAgIC5tYWluLW5hdl9faXRlbS0tbW9yZSwgLmxldmVsLTAucGFyZW50ID4gYTphZnRlciwgLmxldmVsLTEge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmUhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuQGlmICRtZW51LXR5cGUgPT0gJ2NvbWJvJyB7XG4gICAgQGluY2x1ZGUgc3BsaXRtZW51LXN0eWxlcztcbn0iXSwibWFwcGluZ3MiOiI7QUtBQTs7R0FFRztBYW9DSDs7Ozs7Ozs7OztHQVVHO0FiUEg7O0dBRUc7QUFLSDs7R0FFRztBQUtIOzs7Ozs7R0FNRztBYXZCSDs7Ozs7Ozs7OztHQVVHO0FLbENLLE9BQU8sQ0FBQyxtRkFBSTtBTU5wQjs7Ozs7Ozs7R0FRRztBQWdPQyxPQUFPLEVBQVAsVUFBVSxDQTFKVjtFQUNJLGdCQUFnQixFSnBGZixPQUFPO0VJcUZSLEtBQUssRUZqRWtCLE9BQU8sR0VtTGpDO0VBc0NELE9BQU8sQ0F0SkgsRUFBRSxFQXNKTixVQUFVLENBdEpOLEVBQUUsRUFzSk4sT0FBTyxDQXRKQyxF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QUFzQixFQXJHMUIsRUFBVTtJQXFHb0QsSUFBaUIsRUFBRSxJQUFLLEdBK0IzRjtFQUxELGFBQWEsQ0FBYjtJQXBEQSxRQUFRLEVBQUUsUUFBUztJQXlCVCxJQUFpQixFQXBHckIsUUFBVTtJQW9HK0MsS0FBc0IsRUFBRSxJQUFLLEdBNkIzRjtFQUNELGFBQWEsQ0FBYjtJQXZEQSxRQUFRLEVBQUUsUUFBUztJQTBCVCxLQUFzQixFQXJHMUIsUUFBVTtJQXFHb0QsSUFBaUIsRUFBRSxJQUFLLEdBK0IzRjtFQUxELGFBQWEsQ0FBYjtJQXBEQSxRQUFRLEVBQUUsUUFBUztJQXlCVCxJQUFpQixFQXBHckIsU0FBVTtJQW9HK0MsS0FBc0IsRUFBRSxJQUFLLEdBNkIzRjtFQUNELGFBQWEsQ0FBYjtJQXZEQSxRQUFRLEVBQUUsUUFBUztJQTBCVCxLQUFzQixFQXJHMUIsU0FBVTtJQXFHb0QsSUFBaUIsRUFBRSxJQUFLLEdBK0IzRjtFQUxELGFBQWEsQ0FBYjtJQXBEQSxRQUFRLEVBQUUsUUFBUztJQXlCVCxJQUFpQixFQXBHckIsR0FBVTtJQW9HK0MsS0FBc0IsRUFBRSxJQUFLLEdBNkIzRjtFQUNELGFBQWEsQ0FBYjtJQXZEQSxRQUFRLEVBQUUsUUFBUztJQTBCVCxLQUFzQixFQXJHMUIsR0FBVTtJQXFHb0QsSUFBaUIsRUFBRSxJQUFLLEdBK0IzRjtFQUxELGFBQWEsQ0FBYjtJQXBEQSxRQUFRLEVBQUUsUUFBUztJQXlCVCxJQUFpQixFQXBHckIsU0FBVTtJQW9HK0MsS0FBc0IsRUFBRSxJQUFLLEdBNkIzRjtFQUNELGFBQWEsQ0FBYjtJQXZEQSxRQUFRLEVBQUUsUUFBUztJQTBCVCxLQUFzQixFQXJHMUIsU0FBVTtJQXFHb0QsSUFBaUIsRUFBRSxJQUFLLEdBK0IzRjtFQUxELGFBQWEsQ0FBYjtJQXBEQSxRQUFRLEVBQUUsUUFBUztJQXlCVCxJQUFpQixFQXBHckIsU0FBVTtJQW9HK0MsS0FBc0IsRUFBRSxJQUFLLEdBNkIzRjtFQUNELGFBQWEsQ0FBYjtJQXZEQSxRQUFRLEVBQUUsUUFBUztJQTBCVCxLQUFzQixFQXJHMUIsU0FBVTtJQXFHb0QsSUFBaUIsRUFBRSxJQUFLLEdBK0IzRjtFQUxELGFBQWEsQ0FBYjtJQXBEQSxRQUFRLEVBQUUsUUFBUztJQXlCVCxJQUFpQixFQXBHckIsR0FBVTtJQW9HK0MsS0FBc0IsRUFBRSxJQUFLLEdBNkIzRjtFQUNELGFBQWEsQ0FBYjtJQXZEQSxRQUFRLEVBQUUsUUFBUztJQTBCVCxLQUFzQixFQXJHMUIsR0FBVTtJQXFHb0QsSUFBaUIsRUFBRSxJQUFLLEdBK0IzRjtFQUxELGFBQWEsQ0FBYjtJQXBEQSxRQUFRLEVBQUUsUUFBUztJQXlCVCxJQUFpQixFQXBHckIsU0FBVTtJQW9HK0MsS0FBc0IsRUFBRSxJQUFLLEdBNkIzRjtFQUNELGFBQWEsQ0FBYjtJQXZEQSxRQUFRLEVBQUUsUUFBUztJQTBCVCxLQUFzQixFQXJHMUIsU0FBVTtJQXFHb0QsSUFBaUIsRUFBRSxJQUFLLEdBK0IzRjtFQUxELGFBQWEsQ0FBYjtJQXBEQSxRQUFRLEVBQUUsUUFBUztJQXlCVCxJQUFpQixFQXBHckIsU0FBVTtJQW9HK0MsS0FBc0IsRUFBRSxJQUFLLEdBNkIzRjtFQUNELGFBQWEsQ0FBYjtJQXZEQSxRQUFRLEVBQUUsUUFBUztJQTBCVCxLQUFzQixFQXJHMUIsU0FBVTtJQXFHb0QsSUFBaUIsRUFBRSxJQUFLLEdBK0IzRjtFQUxELGFBQWEsQ0FBYjtJQXBEQSxRQUFRLEVBQUUsUUFBUztJQXlCVCxJQUFpQixFQXBHckIsR0FBVTtJQW9HK0MsS0FBc0IsRUFBRSxJQUFLLEdBNkIzRjtFQUNELGFBQWEsQ0FBYjtJQXZEQSxRQUFRLEVBQUUsUUFBUztJQTBCVCxLQUFzQixFQXJHMUIsR0FBVTtJQXFHb0QsSUFBaUIsRUFBRSxJQUFLLEdBK0IzRjtFQUxELGNBQWMsQ0FBZDtJQXBEQSxRQUFRLEVBQUUsUUFBUztJQXlCVCxJQUFpQixFQXBHckIsU0FBVTtJQW9HK0MsS0FBc0IsRUFBRSxJQUFLLEdBNkIzRjtFQUNELGNBQWMsQ0FBZDtJQXZEQSxRQUFRLEVBQUUsUUFBUztJQTBCVCxL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QUFVO0lBb0crQyxLQUFzQixFQUFFLElBQUssR0E2QjNGO0VBQ0QsY0FBYyxDQUFkO0lBdkRBLFFBQVEsRUFBRSxRQUFTO0lBMEJULEtBQXNCLEVBckcxQixFQUFVO0lBcUdvRCxJQUFpQixFQUFFLElBQUssR0ErQjNGO0VBTEQsY0FBYyxDQUFkO0lBcERBLFFBQVEsRUFBRSxRQUFTO0lBeUJULElBQWlCLEVBcEdyQixRQUFVO0lBb0crQyxLQUFzQixFQUFFLElBQUssR0E2QjNGO0VBQ0QsY0FBYyxDQUFkO0lBdkRBLFFBQVEsRUFBRSxRQUFTO0lBMEJULEtBQXNCLEVBckcxQixRQUFVO0lBcUdvRCxJQUFpQixFQUFFLElBQUssR0ErQjNGO0VBTEQsY0FBYyxDQUFkO0lBcERBLFFBQVEsRUFBRSxRQUFTO0lBeUJULElBQWlCLEVBcEdyQixTQUFVO0lBb0crQyxLQUFzQixFQUFFLElBQUssR0E2QjNGO0VBQ0QsY0FBYyxDQUFkO0lBdkRBLFFBQVEsRUFBRSxRQUFTO0lBMEJULEtBQXNCLEVBckcxQixTQUFVO0lBcUdvRCxJQUFpQixFQUFFLElBQUssR0ErQjNGO0VBTEQsY0FBYyxDQUFkO0lBcERBLFFBQVEsRUFBRSxRQUFTO0lBeUJULElBQWlCLEVBcEdyQixHQUFVO0lBb0crQyxLQUFzQixFQUFFLElBQUssR0E2QjNGO0VBQ0QsY0FBYyxDQUFkO0lBdkRBLFFBQVEsRUFBRSxRQUFTO0lBMEJULEtBQXNCLEVBckcxQixHQUFVO0lBcUdvRCxJQUFpQixFQUFFLElBQUssR0ErQjNGO0VBTEQsY0FBYyxDQUFkO0lBcERBLFFBQVEsRUFBRSxRQUFTO0lBeUJULElBQWlCLEVBcEdyQixTQUFVO0lBb0crQyxLQUFzQixFQUFFLElBQUssR0E2QjNGO0VBQ0QsY0FBYyxDQUFkO0lBdkRBLFFBQVEsRUFBRSxRQUFTO0lBMEJULEtBQXNCLEVBckcxQixTQUFVO0lBcUdvRCxJQUFpQixFQUFFLElBQUssR0ErQjNGO0VBTEQsY0FBYyxDQUFkO0lBcERBLFFBQVEsRUFBRSxRQUFTO0lBeUJULElBQWlCLEVBcEdyQixT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QUFRLEVBQUUsUUFBUztJQTBCVCxLQUFzQixFQXJHMUIsU0FBVTtJQXFHb0QsSUFBaUIsRUFBRSxJQUFLLEdBK0IzRjtFQUxELGFBQWEsQ0FBYjtJQXBEQSxRQUFRLEVBQUUsUUFBUztJQXlCVCxJQUFpQixFQXBHckIsR0FBVTtJQW9HK0MsS0FBc0IsRUFBRSxJQUFLLEdBNkIzRjtFQUNELGFBQWEsQ0FBYjtJQXZEQSxRQUFRLEVBQUUsUUFBUztJQTBCVCxLQUFzQixFQXJHMUIsR0FBVTtJQXFHb0QsSUFBaUIsRUFBRSxJQUFLLEdBK0IzRjtFQUxELGFBQWEsQ0FBYjtJQXBEQSxRQUFRLEVBQUUsUUFBUztJQXlCVCxJQUFpQixFQXBHckIsU0FBVTtJQW9HK0MsS0FBc0IsRUFBRSxJQUFLLEdBNkIzRjtFQUNELGFBQWEsQ0FBYjtJQXZEQSxRQUFRLEVBQUUsUUFBUztJQTBCVCxLQUFzQixFQXJHMUIsU0FBVTtJQXFHb0QsSUFBaUIsRUFBRSxJQUFLLEdBK0IzRjtFQUxELGFBQWEsQ0FBYjtJQXBEQSxRQUFRLEVBQUUsUUFBUztJQXlCVCxJQUFpQixFQXBHckIsU0FBVTtJQW9HK0MsS0FBc0IsRUFBRSxJQUFLLEdBNkIzRjtFQUNELGFBQWEsQ0FBYjtJQXZEQSxRQUFRLEVBQUUsUUFBUztJQTBCVCxLQUFzQixFQXJHMUIsU0FBVTtJQXFHb0QsSUFBaUIsRUFBRSxJQUFLLEdBK0IzRjtFQUxELGFBQWEsQ0FBYjtJQXBEQSxRQUFRLEVBQUUsUUFBUztJQXlCVCxJQUFpQixFQXBHckIsR0FBVTtJQW9HK0MsS0FBc0IsRUFBRSxJQUFLLEdBNkIzRjtFQUNELGFBQWEsQ0FBYjtJQXZEQSxRQUFRLEVBQUUsUUFBUztJQTBCVCxLQUFzQixFQXJHMUIsR0FBVTtJQXFHb0QsSUFBaUIsRUFBRSxJQUFLLEdBK0IzRjtFQUxELGFBQWEsQ0FBYjtJQXBEQSxRQUFRLEVBQUUsUUFBUztJQXlCVCxJQUFpQixFQXBHckIsU0FBVTtJQW9HK0MsS0FBc0IsRUFBRSxJQUFLLEdBNkIzRjtFQUNELGFBQWEsQ0FBYjtJQXZEQSxR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QUUsQ0FBRSxHQUNkO0VBWEwsYUFBYSxBQWFSLFlBQVksQ0FBQztJQUNWLFdBQVcsRUFBRSxDQUFFLEdBQ2xCO0VBZkwsYUFBYSxBQWlCUixXQUFXLENBQUM7SUFDVCxZQUFZLEVBQUUsQ0FBRSxHQUNuQjs7QUFNTCxpQkFBaUIsQ0FBQztFQUNkLE1BQU0sRUFBRSxDQUFFO0VBQ1YsVUFBVSxFQUFFLElBQUssR0FLcEI7RUFQRCxpQkFBaUIsQ0FJYixDQUFDLEFBQUEsT0FBTyxDQUFDO0lBQ0wsT0FBTyxFQUFFLElBQUssR0FDakI7O0FBR0wsV0FBVyxDQUFDO0VBQ1IsS0FBSyxFQUFFLElBQUs7RUFDWixPQUFPLEVBQUUsUUFBUyxHQUtyQjtFQVBELFdBQVcsQ0FJUCxJQUFJLENBQUM7SUFDRCxRQUFRLEVBQUUsUUFBUyxHQUN0Qjs7QUFHTCxrQkFBa0IsQ0FBQztFQUNmLFNBQVMsRXFENVZILFNBQVU7RXJENlZoQixXQUFXLEVBQUUsTUFBTztFQUNwQixNQUFNLEVBQUUsQ0FBRTtFQUNWLE9BQU8sRUFBRSxpQkFBa0IsR0FDOUI7O0FBRUQsa0JBQWtCLENBQUM7RUFDZixLQUFLLEVBQUUsR0FBSSxHQWFkO0VBZEQsa0JBQWtCLENBR2QsR0FBRyxDQUFDO0lBQ0EsS0FBSyxFQUFFLElBQUs7SUFDWixTQUFTLEVBQUUsSUFBSztJQUNoQixPQUFPLEVBQUUsR0FBSTtJQUNiLFlBQVksRUFBRSxHQUFJO0lBQ2xCLFlBQVksRUFBRSxLQUFNO0lBR2hCLGFBQWEsRXdCaGNULEdBQUcsR3hCa2NkOztBQUdMLGtCQUFrQixDQUFDO0VBQ2YsU0FBUyxFcURuWEgsT0FBVTtFckRvWGhCLFdBQVcsRUFBRSxNQUFPLEdBQ3ZCOztBQUVELHFCQUFxQixDQUFDO0VBQ2xCLFdBQVcsRUFBRSxNQUFPO0VBQ3BCLE9BQU8sRUFBRSxJQUFLLEdBQ2pCOztBQUdHLFdBQVcsQ0FEZixvQkFBb0IsQ0FBQyxNQUFNLENBQ1Q7RUFDVixLQUFLLEVLcFc4RCxPQUFNLEdMcVc1RTs7QUFFRCxXQUFXLENBTGYsb0JBQW9CLENBQUMsTUFBTSxDQUtUO0VBQ1YsS0FBSyxFS3hXOEQsT0FBTSxHTHlXNUU7O0FBR0wsNEJBQTRCLENBQUM7RUFDekIsU0FBUyxFcUR2WUgsUUFBVTtFckR3WWhCLFdBQVcsRUFqRVMsTUFBSztFQWtFekIsZUFBZSxFQUFFLFlBQWEsR0FDakM7O0FBRUQsVUFBVSxDQUFDLEVBQUUsQUFBQSxRQUFRLENBQUM7RUFDbEIsT0FBTyxFQUFFLElBQUssR0FDakIiLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9 */
