@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=Quicksand");
/**
 * 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 {
  background-color: #f5f5f5;
  color: #333333; }
  .top-bg h1, .top-bg h2, .top-bg h3, .top-bg h4, .top-bg h5, .top-bg h6 {
    color: #212121; }
  .top-bg a {
    color: #df0101; }
    .top-bg a:hover, .top-bg a:focus {
      color: #ac0101; }
  .top-bg .subtle, .top-bg .productlist__product-wrap .price--original, .productlist__product-wrap .top-bg .price--original, .top-bg #kasse_one_form .subtaxes, #kasse_one_form .top-bg .subtaxes, .top-bg .product__main-images .bx-caption, .product__main-images .top-bg .bx-caption, .top-bg .product__meta-numbers, .top-bg .product .price--original, .product .top-bg .price--original, .top-bg .product .vat-info, .product .top-bg .vat-info, .top-bg .product__stockstatus, .top-bg .rating input:checked ~ label, .rating .top-bg input:checked ~ label, .top-bg .rating label:hover ~ label, .rating .top-bg label:hover ~ label {
    color: #333333; }
  .top-bg .bordered, .top-bg .checkout--kco__custom-intro, .top-bg .checkout--kco .checkout__step, .checkout--kco .top-bg .checkout__step {
    border-color: rgba(51, 51, 51, 0.2); }
  .top-bg .bordered--hard {
    border-color: rgba(51, 51, 51, 0.4); }
  .top-bg a.bordered:hover, .top-bg a.checkout--kco__custom-intro:hover, .top-bg .checkout--kco a.checkout__step:hover, .checkout--kco .top-bg a.checkout__step:hover, .top-bg a.bordered:focus, .top-bg a.checkout--kco__custom-intro:focus, .top-bg .checkout--kco a.checkout__step:focus, .checkout--kco .top-bg a.checkout__step:focus {
    border-color: rgba(51, 51, 51, 0.5); }
  .top-bg a.bordered--hard:hover, .top-bg a.bordered--hard:focus {
    border-color: rgba(51, 51, 51, 0.7); }
  .top-bg .neutral-link, .top-bg .neutral-link > a {
    color: #333333; }
    .top-bg .neutral-link:hover, .top-bg .neutral-link:focus, .top-bg .neutral-link:active, .top-bg .neutral-link > a:hover, .top-bg .neutral-link > a:focus, .top-bg .neutral-link > a:active {
      color: #212121; }
  .top-bg .primary-color {
    color: #df0101; }
  .top-bg .primary-color-big {
    color: #fe4343; }
  .top-bg .primary-color-bg {
    background-color: #fe5252;
    color: #292929; }
    .top-bg .primary-color-bg a {
      color: #292929; }
      .top-bg .primary-color-bg a:hover, .top-bg .primary-color-bg a:focus {
        color: #292929;
        background-color: #fe8585; }
    .top-bg .primary-color-bg:hover, .top-bg .primary-color-bg:focus {
      color: #292929;
      background-color: #fe8585; }
  .top-bg .secondary-color {
    color: #6d6d6d; }
  .top-bg .secondary-color-big {
    color: #898989; }
  .top-bg .secondary-color-bg, .top-bg .cart-button--empty .cart-button__quantity, .cart-button--empty .top-bg .cart-button__quantity {
    background-color: #c8c8c8;
    color: #525252; }
    .top-bg .secondary-color-bg a, .top-bg .cart-button--empty .cart-button__quantity a, .cart-button--empty .top-bg .cart-button__quantity a {
      color: #525252; }
      .top-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, .top-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 {
        color: #525252;
        background-color: #e2e2e2; }
    .top-bg .secondary-color-bg:hover, .top-bg .cart-button--empty .cart-button__quantity:hover, .cart-button--empty .top-bg .cart-button__quantity:hover, .top-bg .secondary-color-bg:focus, .top-bg .cart-button--empty .cart-button__quantity:focus, .cart-button--empty .top-bg .cart-button__quantity:focus {
      color: #525252;
      background-color: #e2e2e2; }
  .top-bg .call-to-action-color {
    color: #627800; }
  .top-bg .call-to-action-color-big {
    color: #7b9700; }
  .top-bg .call-to-action-color-bg, .top-bg .cart-button__quantity {
    background-color: #8CAB00;
    color: #363636; }
    .top-bg .call-to-action-color-bg a, .top-bg .cart-button__quantity a {
      color: #363636; }
      .top-bg .call-to-action-color-bg a:hover, .top-bg .cart-button__quantity a:hover, .top-bg .call-to-action-color-bg a:focus, .top-bg .cart-button__quantity a:focus {
        color: #363636;
        background-color: #b6de00; }
    .top-bg .call-to-action-color-bg:hover, .top-bg .cart-button__quantity:hover, .top-bg .call-to-action-color-bg:focus, .top-bg .cart-button__quantity:focus {
      color: #363636;
      background-color: #b6de00; }
  .top-bg button, .top-bg button.disabled, .top-bg button.disabled:hover, .top-bg button.disabled:focus, .top-bg button[disabled], .top-bg button[disabled]:hover, .top-bg button[disabled]:focus, .top-bg .button, .top-bg .button.disabled, .top-bg .button.disabled:hover, .top-bg .button.disabled:focus, .top-bg .button[disabled], .top-bg .button[disabled]:hover, .top-bg .button[disabled]:focus {
    background-color: #fe5252;
    color: #292929;
    font-weight: normal; }
  .top-bg button:hover, .top-bg button:focus, .top-bg .button:hover, .top-bg .button:focus {
    color: #080808;
    background-color: #f30101; }

.navigation-bg {
  background-color: #f5f5f3;
  color: #333333; }
  .navigation-bg h1, .navigation-bg h2, .navigation-bg h3, .navigation-bg h4, .navigation-bg h5, .navigation-bg h6 {
    color: #212121; }
  .navigation-bg a {
    color: #df0101; }
    .navigation-bg a:hover, .navigation-bg a:focus {
      color: #ac0101; }
  .navigation-bg .subtle, .navigation-bg .productlist__product-wrap .price--original, .productlist__product-wrap .navigation-bg .price--original, .navigation-bg #kasse_one_form .subtaxes, #kasse_one_form .navigation-bg .subtaxes, .navigation-bg .product__main-images .bx-caption, .product__main-images .navigation-bg .bx-caption, .navigation-bg .product__meta-numbers, .navigation-bg .product .price--original, .product .navigation-bg .price--original, .navigation-bg .product .vat-info, .product .navigation-bg .vat-info, .navigation-bg .product__stockstatus, .navigation-bg .rating input:checked ~ label, .rating .navigation-bg input:checked ~ label, .navigation-bg .rating label:hover ~ label, .rating .navigation-bg label:hover ~ label {
    color: #333333; }
  .navigation-bg .bordered, .navigation-bg .checkout--kco__custom-intro, .navigation-bg .checkout--kco .checkout__step, .checkout--kco .navigation-bg .checkout__step {
    border-color: rgba(51, 51, 51, 0.2); }
  .navigation-bg .bordered--hard {
    border-color: rgba(51, 51, 51, 0.4); }
  .navigation-bg a.bordered:hover, .navigation-bg a.checkout--kco__custom-intro:hover, .navigation-bg .checkout--kco a.checkout__step:hover, .checkout--kco .navigation-bg a.checkout__step:hover, .navigation-bg a.bordered:focus, .navigation-bg a.checkout--kco__custom-intro:focus, .navigation-bg .checkout--kco a.checkout__step:focus, .checkout--kco .navigation-bg a.checkout__step:focus {
    border-color: rgba(51, 51, 51, 0.5); }
  .navigation-bg a.bordered--hard:hover, .navigation-bg a.bordered--hard:focus {
    border-color: rgba(51, 51, 51, 0.7); }
  .navigation-bg .neutral-link, .navigation-bg .neutral-link > a {
    color: #333333; }
    .navigation-bg .neutral-link:hover, .navigation-bg .neutral-link:focus, .navigation-bg .neutral-link:active, .navigation-bg .neutral-link > a:hover, .navigation-bg .neutral-link > a:focus, .navigation-bg .neutral-link > a:active {
      color: #212121; }
  .navigation-bg .primary-color {
    color: #df0101; }
  .navigation-bg .primary-color-big {
    color: #fe4343; }
  .navigation-bg .primary-color-bg {
    background-color: #fe5252;
    color: #292929; }
    .navigation-bg .primary-color-bg a {
      color: #292929; }
      .navigation-bg .primary-color-bg a:hover, .navigation-bg .primary-color-bg a:focus {
        color: #292929;
        background-color: #fe8585; }
    .navigation-bg .primary-color-bg:hover, .navigation-bg .primary-color-bg:focus {
      color: #292929;
      background-color: #fe8585; }
  .navigation-bg .secondary-color {
    color: #6d6d6d; }
  .navigation-bg .secondary-color-big {
    color: #898989; }
  .navigation-bg .secondary-color-bg, .navigation-bg .cart-button--empty .cart-button__quantity, .cart-button--empty .navigation-bg .cart-button__quantity {
    background-color: #c8c8c8;
    color: #525252; }
    .navigation-bg .secondary-color-bg a, .navigation-bg .cart-button--empty .cart-button__quantity a, .cart-button--empty .navigation-bg .cart-button__quantity a {
      color: #525252; }
      .navigation-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, .navigation-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 {
        color: #525252;
        background-color: #e2e2e2; }
    .navigation-bg .secondary-color-bg:hover, .navigation-bg .cart-button--empty .cart-button__quantity:hover, .cart-button--empty .navigation-bg .cart-button__quantity:hover, .navigation-bg .secondary-color-bg:focus, .navigation-bg .cart-button--empty .cart-button__quantity:focus, .cart-button--empty .navigation-bg .cart-button__quantity:focus {
      color: #525252;
      background-color: #e2e2e2; }
  .navigation-bg .call-to-action-color {
    color: #627800; }
  .navigation-bg .call-to-action-color-big {
    color: #7b9700; }
  .navigation-bg .call-to-action-color-bg, .navigation-bg .cart-button__quantity {
    background-color: #8CAB00;
    color: #363636; }
    .navigation-bg .call-to-action-color-bg a, .navigation-bg .cart-button__quantity a {
      color: #363636; }
      .navigation-bg .call-to-action-color-bg a:hover, .navigation-bg .cart-button__quantity a:hover, .navigation-bg .call-to-action-color-bg a:focus, .navigation-bg .cart-button__quantity a:focus {
        color: #363636;
        background-color: #b6de00; }
    .navigation-bg .call-to-action-color-bg:hover, .navigation-bg .cart-button__quantity:hover, .navigation-bg .call-to-action-color-bg:focus, .navigation-bg .cart-button__quantity:focus {
      color: #363636;
      background-color: #b6de00; }
  .navigation-bg button, .navigation-bg button.disabled, .navigation-bg button.disabled:hover, .navigation-bg button.disabled:focus, .navigation-bg button[disabled], .navigation-bg button[disabled]:hover, .navigation-bg button[disabled]:focus, .navigation-bg .button, .navigation-bg .button.disabled, .navigation-bg .button.disabled:hover, .navigation-bg .button.disabled:focus, .navigation-bg .button[disabled], .navigation-bg .button[disabled]:hover, .navigation-bg .button[disabled]:focus {
    background-color: #fe5252;
    color: #292929;
    font-weight: normal; }
  .navigation-bg button:hover, .navigation-bg button:focus, .navigation-bg .button:hover, .navigation-bg .button:focus {
    color: #080808;
    background-color: #f30101; }

.header-bg {
  background-color: #ffffff;
  color: #333333; }
  .header-bg h1, .header-bg h2, .header-bg h3, .header-bg h4, .header-bg h5, .header-bg h6 {
    color: #212121; }
  .header-bg a {
    color: #ee0101; }
    .header-bg a:hover, .header-bg a:focus {
      color: #bb0101; }
  .header-bg .subtle, .header-bg .productlist__product-wrap .price--original, .productlist__product-wrap .header-bg .price--original, .header-bg #kasse_one_form .subtaxes, #kasse_one_form .header-bg .subtaxes, .header-bg .product__main-images .bx-caption, .product__main-images .header-bg .bx-caption, .header-bg .product__meta-numbers, .header-bg .product .price--original, .product .header-bg .price--original, .header-bg .product .vat-info, .product .header-bg .vat-info, .header-bg .product__stockstatus, .header-bg .rating input:checked ~ label, .rating .header-bg input:checked ~ label, .header-bg .rating label:hover ~ label, .rating .header-bg label:hover ~ label {
    color: #333333; }
  .header-bg .bordered, .header-bg .checkout--kco__custom-intro, .header-bg .checkout--kco .checkout__step, .checkout--kco .header-bg .checkout__step {
    border-color: rgba(51, 51, 51, 0.2); }
  .header-bg .bordered--hard {
    border-color: rgba(51, 51, 51, 0.4); }
  .header-bg a.bordered:hover, .header-bg a.checkout--kco__custom-intro:hover, .header-bg .checkout--kco a.checkout__step:hover, .checkout--kco .header-bg a.checkout__step:hover, .header-bg a.bordered:focus, .header-bg a.checkout--kco__custom-intro:focus, .header-bg .checkout--kco a.checkout__step:focus, .checkout--kco .header-bg a.checkout__step:focus {
    border-color: rgba(51, 51, 51, 0.5); }
  .header-bg a.bordered--hard:hover, .header-bg a.bordered--hard:focus {
    border-color: rgba(51, 51, 51, 0.7); }
  .header-bg .neutral-link, .header-bg .neutral-link > a {
    color: #333333; }
    .header-bg .neutral-link:hover, .header-bg .neutral-link:focus, .header-bg .neutral-link:active, .header-bg .neutral-link > a:hover, .header-bg .neutral-link > a:focus, .header-bg .neutral-link > a:active {
      color: #212121; }
  .header-bg .primary-color {
    color: #ee0101; }
  .header-bg .primary-color-big {
    color: #fe5252; }
  .header-bg .primary-color-bg {
    background-color: #fe5252;
    color: #292929; }
    .header-bg .primary-color-bg a {
      color: #292929; }
      .header-bg .primary-color-bg a:hover, .header-bg .primary-color-bg a:focus {
        color: #292929;
        background-color: #fe8585; }
    .header-bg .primary-color-bg:hover, .header-bg .primary-color-bg:focus {
      color: #292929;
      background-color: #fe8585; }
  .header-bg .secondary-color {
    color: #747474; }
  .header-bg .secondary-color-big {
    color: #909090; }
  .header-bg .secondary-color-bg, .header-bg .cart-button--empty .cart-button__quantity, .cart-button--empty .header-bg .cart-button__quantity {
    background-color: #c8c8c8;
    color: #525252; }
    .header-bg .secondary-color-bg a, .header-bg .cart-button--empty .cart-button__quantity a, .cart-button--empty .header-bg .cart-button__quantity a {
      color: #525252; }
      .header-bg .secondary-color-bg a:hover, .header-bg .cart-button--empty .cart-button__quantity a:hover, .cart-button--empty .header-bg .cart-button__quantity a:hover, .header-bg .secondary-color-bg a:focus, .header-bg .cart-button--empty .cart-button__quantity a:focus, .cart-button--empty .header-bg .cart-button__quantity a:focus {
        color: #525252;
        background-color: #e2e2e2; }
    .header-bg .secondary-color-bg:hover, .header-bg .cart-button--empty .cart-button__quantity:hover, .cart-button--empty .header-bg .cart-button__quantity:hover, .header-bg .secondary-color-bg:focus, .header-bg .cart-button--empty .cart-button__quantity:focus, .cart-button--empty .header-bg .cart-button__quantity:focus {
      color: #525252;
      background-color: #e2e2e2; }
  .header-bg .call-to-action-color {
    color: #667d00; }
  .header-bg .call-to-action-color-big {
    color: #7f9c00; }
  .header-bg .call-to-action-color-bg, .header-bg .cart-button__quantity {
    background-color: #8CAB00;
    color: #363636; }
    .header-bg .call-to-action-color-bg a, .header-bg .cart-button__quantity a {
      color: #363636; }
      .header-bg .call-to-action-color-bg a:hover, .header-bg .cart-button__quantity a:hover, .header-bg .call-to-action-color-bg a:focus, .header-bg .cart-button__quantity a:focus {
        color: #363636;
        background-color: #b6de00; }
    .header-bg .call-to-action-color-bg:hover, .header-bg .cart-button__quantity:hover, .header-bg .call-to-action-color-bg:focus, .header-bg .cart-button__quantity:focus {
      color: #363636;
      background-color: #b6de00; }
  .header-bg button, .header-bg button.disabled, .header-bg button.disabled:hover, .header-bg button.disabled:focus, .header-bg button[disabled], .header-bg button[disabled]:hover, .header-bg button[disabled]:focus, .header-bg .button, .header-bg .button.disabled, .header-bg .button.disabled:hover, .header-bg .button.disabled:focus, .header-bg .button[disabled], .header-bg .button[disabled]:hover, .header-bg .button[disabled]:focus {
    background-color: #fe5252;
    color: #292929;
    font-weight: normal; }
  .header-bg button:hover, .header-bg button:focus, .header-bg .button:hover, .header-bg .button:focus {
    color: #080808;
    background-color: #f30101; }

.content-bg {
  background-color: #fafafa;
  color: #333333; }
  .content-bg h1, .content-bg h2, .content-bg h3, .content-bg h4, .content-bg h5, .content-bg h6 {
    color: #212121; }
  .content-bg a {
    color: #e40101; }
    .content-bg a:hover, .content-bg a:focus {
      color: #b10101; }
  .content-bg .subtle, .content-bg .productlist__product-wrap .price--original, .productlist__product-wrap .content-bg .price--original, .content-bg #kasse_one_form .subtaxes, #kasse_one_form .content-bg .subtaxes, .content-bg .product__main-images .bx-caption, .product__main-images .content-bg .bx-caption, .content-bg .product__meta-numbers, .content-bg .product .price--original, .product .content-bg .price--original, .content-bg .product .vat-info, .product .content-bg .vat-info, .content-bg .product__stockstatus, .content-bg .rating input:checked ~ label, .rating .content-bg input:checked ~ label, .content-bg .rating label:hover ~ label, .rating .content-bg label:hover ~ label {
    color: #333333; }
  .content-bg .bordered, .content-bg .checkout--kco__custom-intro, .content-bg .checkout--kco .checkout__step, .checkout--kco .content-bg .checkout__step {
    border-color: rgba(51, 51, 51, 0.2); }
  .content-bg .bordered--hard {
    border-color: rgba(51, 51, 51, 0.4); }
  .content-bg a.bordered:hover, .content-bg a.checkout--kco__custom-intro:hover, .content-bg .checkout--kco a.checkout__step:hover, .checkout--kco .content-bg a.checkout__step:hover, .content-bg a.bordered:focus, .content-bg a.checkout--kco__custom-intro: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); }
  .content-bg a.bordered--hard:hover, .content-bg a.bordered--hard:focus {
    border-color: rgba(51, 51, 51, 0.7); }
  .content-bg .neutral-link, .content-bg .neutral-link > a {
    color: #333333; }
    .content-bg .neutral-link:hover, .content-bg .neutral-link:focus, .content-bg .neutral-link:active, .content-bg .neutral-link > a:hover, .content-bg .neutral-link > a:focus, .content-bg .neutral-link > a:active {
      color: #212121; }
  .content-bg .primary-color {
    color: #e40101; }
  .content-bg .primary-color-big {
    color: #fe5252; }
  .content-bg .primary-color-bg {
    background-color: #fe5252;
    color: #292929; }
    .content-bg .primary-color-bg a {
      color: #292929; }
      .content-bg .primary-color-bg a:hover, .content-bg .primary-color-bg a:focus {
        color: #292929;
        background-color: #fe8585; }
    .content-bg .primary-color-bg:hover, .content-bg .primary-color-bg:focus {
      color: #292929;
      background-color: #fe8585; }
  .content-bg .secondary-color {
    color: #727272; }
  .content-bg .secondary-color-big {
    color: #909090; }
  .content-bg .secondary-color-bg, .content-bg .cart-button--empty .cart-button__quantity, .cart-button--empty .content-bg .cart-button__quantity {
    background-color: #c8c8c8;
    color: #525252; }
    .content-bg .secondary-color-bg a, .content-bg .cart-button--empty .cart-button__quantity a, .cart-button--empty .content-bg .cart-button__quantity a {
      color: #525252; }
      .content-bg .secondary-color-bg a:hover, .content-bg .cart-button--empty .cart-button__quantity a:hover, .cart-button--empty .content-bg .cart-button__quantity a:hover, .content-bg .secondary-color-bg 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; }
    .content-bg .secondary-color-bg:hover, .content-bg .cart-button--empty .cart-button__quantity:hover, .cart-button--empty .content-bg .cart-button__quantity:hover, .content-bg .secondary-color-bg:focus, .content-bg .cart-button--empty .cart-button__quantity:focus, .cart-button--empty .content-bg .cart-button__quantity:focus {
      color: #525252;
      background-color: #e2e2e2; }
  .content-bg .call-to-action-color {
    color: #627800; }
  .content-bg .call-to-action-color-big {
    color: #7f9c00; }
  .content-bg .call-to-action-color-bg, .content-bg .cart-button__quantity {
    background-color: #8CAB00;
    color: #363636; }
    .content-bg .call-to-action-color-bg a, .content-bg .cart-button__quantity a {
      color: #363636; }
      .content-bg .call-to-action-color-bg a:hover, .content-bg .cart-button__quantity a:hover, .content-bg .call-to-action-color-bg a:focus, .content-bg .cart-button__quantity a:focus {
        color: #363636;
        background-color: #b6de00; }
    .content-bg .call-to-action-color-bg:hover, .content-bg .cart-button__quantity:hover, .content-bg .call-to-action-color-bg:focus, .content-bg .cart-button__quantity:focus {
      color: #363636;
      background-color: #b6de00; }
  .content-bg button, .content-bg button.disabled, .content-bg button.disabled:hover, .content-bg button.disabled:focus, .content-bg button[disabled], .content-bg button[disabled]:hover, .content-bg button[disabled]:focus, .content-bg .button, .content-bg .button.disabled, .content-bg .button.disabled:hover, .content-bg .button.disabled:focus, .content-bg .button[disabled], .content-bg .button[disabled]:hover, .content-bg .button[disabled]:focus {
    background-color: #fe5252;
    color: #292929;
    font-weight: normal; }
  .content-bg button:hover, .content-bg button:focus, .content-bg .button:hover, .content-bg .button:focus {
    color: #080808;
    background-color: #f30101; }

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

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

.product .price {
  color: #fe5252; }

.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: #fe5252;
  color: #292929; }

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

.footer-bg {
  background-color: #f7f7f6;
  color: #333333; }
  .footer-bg h1, .footer-bg h2, .footer-bg h3, .footer-bg h4, .footer-bg h5, .footer-bg h6 {
    color: #212121; }
  .footer-bg a {
    color: #e40101; }
    .footer-bg a:hover, .footer-bg a:focus {
      color: #b10101; }
  .footer-bg .subtle, .footer-bg .productlist__product-wrap .price--original, .productlist__product-wrap .footer-bg .price--original, .footer-bg #kasse_one_form .subtaxes, #kasse_one_form .footer-bg .subtaxes, .footer-bg .product__main-images .bx-caption, .product__main-images .footer-bg .bx-caption, .footer-bg .product__meta-numbers, .footer-bg .product .price--original, .product .footer-bg .price--original, .footer-bg .product .vat-info, .product .footer-bg .vat-info, .footer-bg .product__stockstatus, .footer-bg .rating input:checked ~ label, .rating .footer-bg input:checked ~ label, .footer-bg .rating label:hover ~ label, .rating .footer-bg label:hover ~ label {
    color: #333333; }
  .footer-bg .bordered, .footer-bg .checkout--kco__custom-intro, .footer-bg .checkout--kco .checkout__step, .checkout--kco .footer-bg .checkout__step {
    border-color: rgba(51, 51, 51, 0.2); }
  .footer-bg .bordered--hard {
    border-color: rgba(51, 51, 51, 0.4); }
  .footer-bg a.bordered:hover, .footer-bg a.checkout--kco__custom-intro:hover, .footer-bg .checkout--kco a.checkout__step:hover, .checkout--kco .footer-bg a.checkout__step:hover, .footer-bg a.bordered:focus, .footer-bg a.checkout--kco__custom-intro: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); }
  .footer-bg a.bordered--hard:hover, .footer-bg a.bordered--hard:focus {
    border-color: rgba(51, 51, 51, 0.7); }
  .footer-bg .neutral-link, .footer-bg .neutral-link > a {
    color: #333333; }
    .footer-bg .neutral-link:hover, .footer-bg .neutral-link:focus, .footer-bg .neutral-link:active, .footer-bg .neutral-link > a:hover, .footer-bg .neutral-link > a:focus, .footer-bg .neutral-link > a:active {
      color: #212121; }
  .footer-bg .primary-color {
    color: #e40101; }
  .footer-bg .primary-color-big {
    color: #fe4343; }
  .footer-bg .primary-color-bg {
    background-color: #fe5252;
    color: #292929; }
    .footer-bg .primary-color-bg a {
      color: #292929; }
      .footer-bg .primary-color-bg a:hover, .footer-bg .primary-color-bg a:focus {
        color: #292929;
        background-color: #fe8585; }
    .footer-bg .primary-color-bg:hover, .footer-bg .primary-color-bg:focus {
      color: #292929;
      background-color: #fe8585; }
  .footer-bg .secondary-color {
    color: #6f6f6f; }
  .footer-bg .secondary-color-big {
    color: #8e8e8e; }
  .footer-bg .secondary-color-bg, .footer-bg .cart-button--empty .cart-button__quantity, .cart-button--empty .footer-bg .cart-button__quantity {
    background-color: #c8c8c8;
    color: #525252; }
    .footer-bg .secondary-color-bg a, .footer-bg .cart-button--empty .cart-button__quantity a, .cart-button--empty .footer-bg .cart-button__quantity a {
      color: #525252; }
      .footer-bg .secondary-color-bg a:hover, .footer-bg .cart-button--empty .cart-button__quantity a:hover, .cart-button--empty .footer-bg .cart-button__quantity a:hover, .footer-bg .secondary-color-bg 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; }
    .footer-bg .secondary-color-bg:hover, .footer-bg .cart-button--empty .cart-button__quantity:hover, .cart-button--empty .footer-bg .cart-button__quantity:hover, .footer-bg .secondary-color-bg:focus, .footer-bg .cart-button--empty .cart-button__quantity:focus, .cart-button--empty .footer-bg .cart-button__quantity:focus {
      color: #525252;
      background-color: #e2e2e2; }
  .footer-bg .call-to-action-color {
    color: #627800; }
  .footer-bg .call-to-action-color-big {
    color: #7b9700; }
  .footer-bg .call-to-action-color-bg, .footer-bg .cart-button__quantity {
    background-color: #8CAB00;
    color: #363636; }
    .footer-bg .call-to-action-color-bg a, .footer-bg .cart-button__quantity a {
      color: #363636; }
      .footer-bg .call-to-action-color-bg a:hover, .footer-bg .cart-button__quantity a:hover, .footer-bg .call-to-action-color-bg a:focus, .footer-bg .cart-button__quantity a:focus {
        color: #363636;
        background-color: #b6de00; }
    .footer-bg .call-to-action-color-bg:hover, .footer-bg .cart-button__quantity:hover, .footer-bg .call-to-action-color-bg:focus, .footer-bg .cart-button__quantity:focus {
      color: #363636;
      background-color: #b6de00; }
  .footer-bg button, .footer-bg button.disabled, .footer-bg button.disabled:hover, .footer-bg button.disabled:focus, .footer-bg button[disabled], .footer-bg button[disabled]:hover, .footer-bg button[disabled]:focus, .footer-bg .button, .footer-bg .button.disabled, .footer-bg .button.disabled:hover, .footer-bg .button.disabled:focus, .footer-bg .button[disabled], .footer-bg .button[disabled]:hover, .footer-bg .button[disabled]:focus {
    background-color: #fe5252;
    color: #292929;
    font-weight: normal; }
  .footer-bg button:hover, .footer-bg button:focus, .footer-bg .button:hover, .footer-bg .button:focus {
    color: #080808;
    background-color: #f30101; }

.end-bg {
  background-color: #f4f4f2;
  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: #df0101; }
    .end-bg a:hover, .end-bg a:focus {
      color: #ac0101; }
  .end-bg .subtle, .end-bg .productlist__product-wrap .price--original, .productlist__product-wrap .end-bg .price--original, .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: #df0101; }
  .end-bg .primary-color-big {
    color: #fe4343; }
  .end-bg .primary-color-bg {
    background-color: #fe5252;
    color: #292929; }
    .end-bg .primary-color-bg a {
      color: #292929; }
      .end-bg .primary-color-bg a:hover, .end-bg .primary-color-bg a:focus {
        color: #292929;
        background-color: #fe8585; }
    .end-bg .primary-color-bg:hover, .end-bg .primary-color-bg:focus {
      color: #292929;
      background-color: #fe8585; }
  .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: #c8c8c8;
    color: #525252; }
    .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: #525252; }
      .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: #525252;
        background-color: #e2e2e2; }
    .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: #525252;
      background-color: #e2e2e2; }
  .end-bg .call-to-action-color {
    color: #627800; }
  .end-bg .call-to-action-color-big {
    color: #7b9700; }
  .end-bg .call-to-action-color-bg, .end-bg .cart-button__quantity {
    background-color: #8CAB00;
    color: #363636; }
    .end-bg .call-to-action-color-bg a, .end-bg .cart-button__quantity a {
      color: #363636; }
      .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: #363636;
        background-color: #b6de00; }
    .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: #363636;
      background-color: #b6de00; }
  .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: #fe5252;
    color: #292929;
    font-weight: normal; }
  .end-bg button:hover, .end-bg button:focus, .end-bg .button:hover, .end-bg .button:focus {
    color: #080808;
    background-color: #f30101; }

/*! 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: #f5f5f3;
  color: #333333;
  padding: 0;
  margin: 0;
  font-family:  'Helvetica Neue', Helvetica, Arial, sans-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: #fff;
  border-color: #e6e6e6;
  border-radius: 0; }
  .breadcrumbs > * {
    margin: 0;
    float: left;
    font-size: 1rem;
    line-height: 1rem;
    text-transform: none;
    color: #e40101; }
    .breadcrumbs > *:hover a, .breadcrumbs > *:focus a {
      text-decoration: underline; }
    .breadcrumbs > * a {
      color: #e40101; }
    .breadcrumbs > *.current {
      cursor: default;
      color: #333333; }
      .breadcrumbs > *.current a {
        cursor: default;
        color: #333333; }
      .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: #AAAAAA;
      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: 0;
  cursor: pointer;
  font-family:  'Helvetica Neue', Helvetica, Arial, sans-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: #fe5252;
  border-color: #fe0f0f;
  color: #FFFFFF;
  transition: background-color 300ms ease-out; }
  button:hover, button:focus, .button:hover, .button:focus {
    background-color: #fe0f0f; }
  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: 3px; }
  button.round, .button.round {
    border-radius: 1000px; }
  button.disabled, button[disabled], .button.disabled, .button[disabled] {
    background-color: #fe5252;
    border-color: #fe0f0f;
    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: #fe0f0f; }
    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: #fe5252; }
    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.4375rem;
  line-height: 2.4375rem; }

/* 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: 3px;
  -webkit-border-top-left-radius: 3px;
  border-bottom-left-radius: 3px;
  border-top-left-radius: 3px; }

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

.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: 1rem;
  margin: 0 0 1rem 0;
  padding: 0.5rem;
  height: 2.4375rem;
  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: 3px; }

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: 3px;
  -webkit-border-top-right-radius: 3px;
  border-bottom-right-radius: 3px;
  border-top-right-radius: 3px; }

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

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: 3px;
  -webkit-border-top-left-radius: 3px;
  border-bottom-left-radius: 3px;
  border-top-left-radius: 3px; }

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

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: 1rem;
  font-family:  'Helvetica Neue', Helvetica, Arial, sans-serif;
  color: rgba(0, 0, 0, 0.75);
  line-height: normal;
  border-radius: 0;
  height: 2.4375rem; }
  select::-ms-expand {
    display: none; }
  select.radius {
    border-radius: 0; }
  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 #DDDDDD;
  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: #fafafa;
  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: #f2f2f2; }
    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: #f2f2f2; }
    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: #ededed; }
  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: #f5f5f5;
      color: #0a0a0a;
      padding: 0.4rem 0.8rem;
      font-family:  'Helvetica Neue', Helvetica, Arial, sans-serif;
      font-size: 1rem; }
      .tabs dd > a:hover, .tabs .tab-title > a:hover {
        background-color: #cccccc; }
      .tabs dd > a:focus, .tabs .tab-title > a:focus {
        outline: none; }
    .tabs dd.active a, .tabs .tab-title.active a {
      background-color: #fe5252;
      color: #01adad; }
  .tabs.radius dd:first-child a, .tabs.radius .tab:first-child a {
    -webkit-border-bottom-left-radius: 0;
    -webkit-border-top-left-radius: 0;
    border-bottom-left-radius: 0;
    border-top-left-radius: 0; }
  .tabs.radius dd:last-child a, .tabs.radius .tab:last-child a {
    -webkit-border-bottom-right-radius: 0;
    -webkit-border-top-right-radius: 0;
    border-bottom-right-radius: 0;
    border-top-right-radius: 0; }
  .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(254, 82, 82, 0.5); }
  .th.radius {
    border-radius: 0; }

.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: #fe5252;
  text-decoration: none;
  line-height: inherit; }
  a:hover, a:focus {
    color: #fe2323; }
  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:  'Quicksand', 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: 1.6875rem; }

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: 2.3125rem; }
  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; } }

/**
 * 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: ""; }

.main-content a {
  text-decoration: underline; }

.main-content .productlist__product a,
.main-content .product__breadcrumbs a,
.main-content .categorylist__category a,
.main-content .checkout a,
.main-content a.button,
.main-content .social-buttons-list a {
  text-decoration: none; }

@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; } }

#utils-nav {
  font-family:  'Helvetica Neue', Helvetica, Arial, sans-serif;
  text-transform: uppercase; }
  #utils-nav .icon {
    display: inline-block !important;
    margin-right: 4px;
    font-size: 1.2em;
    vertical-align: -7%; }

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

#user-nav a {
  transition: background-color 150ms ease-out; }
  #user-nav a:hover, #user-nav a:focus {
    background-color: #fe5252;
    color: #5b0101; }

@media only screen and (max-width: 39.9375em) {
  #user-nav .icon {
    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: #f5f5f3; }
      #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: #f5f5f3;
    -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 {
  height: 3.75rem;
  white-space: nowrap; }
  #logo a {
    text-decoration: none; }
  #logo h1 {
    line-height: 3.75rem;
    margin: 0;
    font-size: 2.75rem; }
  #logo img {
    max-height: 3.75rem;
    max-width: 100%;
    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: 3px;
  -webkit-border-top-left-radius: 3px;
  border-bottom-left-radius: 3px;
  border-top-left-radius: 3px; }

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

#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 {
    height: 5rem; }
    #logo h1 {
      line-height: 5rem; }
    #logo img {
      max-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:  'Helvetica Neue', Helvetica, Arial, sans-serif; }
  .main-nav ul {
    margin: 0;
    list-style-type: none;
    direction: ltr; }
  .main-nav a {
    color: #333333;
    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: #707070; }

.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: #292929 !important;
    background: #fe5252;
    opacity: 1; }
  .main-nav__close-btn i {
    font-size: 0.75rem;
    padding-left: .4rem; }

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

.nav-compact a {
  color: #333333;
  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.1); }
  .nav-offcanvas li li {
    border-top-style: dotted; }

.main-nav__item {
  direction: ltr; }
  .main-nav__item a {
    outline: none;
    padding: 0 0;
    display: block;
    width: 100%; }
    .main-nav__item a:focus, .main-nav__item a:hover, .main-nav__item a.highlighted {
      background: #fe5252;
      color: #292929; }
    .main-nav__item a .disabled {
      cursor: default; }
  .main-nav__item.current > a, .main-nav__item.selected > a {
    background: #c4c4b9;
    color: #a20101; }
    .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: #ffb7b7;
      color: #525252; }
  .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.1); }

.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: 1.5rem;
  width: 1.5rem;
  line-height: 1.5rem;
  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: 1.5rem;
    width: 1.5rem;
    line-height: inherit !important;
    display: block;
    position: absolute; }
  .main-nav__toggle, .main-nav__toggle:before {
    color: rgba(228, 1, 1, 0.9) !important; }
  .main-nav__toggle.toggled:before {
    color: rgba(112, 112, 112, 0.7) !important; }
  .main-nav__toggle:hover {
    cursor: pointer;
    background: #dddddd; }
    .main-nav__toggle:hover, .main-nav__toggle:hover:before {
      color: rgba(197, 1, 1, 0.9) !important; }
  .footer-bg .main-nav__toggle, .footer-bg .main-nav__toggle:before {
    color: rgba(228, 1, 1, 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(197, 1, 1, 0.9) !important; }

.current > .main-nav__toggle:before {
  color: rgba(41, 41, 41, 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: #fe8585; }
  .current > .main-nav__toggle:hover:before {
    color: #292929 !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: 0;
    padding-right: 0;
    white-space: normal;
    color: #333333; }
  .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: 0.8125rem; }
    .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 #dddddd, 0 1px 0 #dddddd, -1px 0 0 #dddddd, 0 -1px 0 #dddddd;
    box-shadow: 0 0 0 1px #dddddd; }
  .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: rgba(255, 255, 255, 0.97); }
    .main-nav__submenu a {
      color: #333333; }
  .main-nav__item {
    float: none;
    border-bottom: 1px solid #dddddd; }
    .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; } }

#topbanners {
  padding: 2rem 0; }

.productlist__product-wrap {
  position: relative;
  overflow: hidden;
  border-radius: 2px;
  font-size: 0.875rem;
  background-color: white;
  transition: border-color 150ms ease-out;
  -webkit-transform: translateZ(0);
  -moz-transform: translateZ(0);
  -ms-transform: translateZ(0);
  -o-transform: translateZ(0);
  transform: translateZ(0); }
  .on-sale .productlist__product-wrap {
    border-color: #8CAB00;
    border-top-right-radius: 0px; }
    .on-sale .productlist__product-wrap:hover {
      border-color: #8CAB00 !important; }
  .productlist__product-wrap > p {
    font-size: 0.875rem;
    line-height: 1.3; }
    .productlist__product-wrap > p:last-of-type {
      margin-bottom: 0; }
  .productlist__product-wrap .price {
    font-family:  'Quicksand', sans-serif;
    font-weight: bold;
    font-size: 1.25rem;
    line-height: 2.5rem; }
  .productlist__product-wrap .price--original {
    text-decoration: line-through;
    line-height: 2.5rem; }
  .productlist__product-wrap .currency {
    display: none; }
  .productlist__product-wrap .price__saleprice-text {
    display: none; }
  .productlist__product-wrap .klarna-info {
    font-size: 0.75rem;
    margin-bottom: 1rem;
    opacity: .7;
    -webkit-backface-visibility: hidden;
    -webkit-transform: translateZ(0); }
    .productlist__product-wrap .klarna-info span {
      color: #fe5252; }
  .productlist__product-wrap .vat-info {
    border: none;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px; }
  .on-sale .productlist__product-wrap:after {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    right: 0;
    z-index: 1;
    border-style: solid;
    border-width: 0 5rem 5rem 0;
    border-color: transparent #8CAB00 transparent transparent;
    text-align: right; }
  .productlist__product-wrap .discount {
    font-family:  'Quicksand', sans-serif;
    font-weight: bold;
    font-size: 1.25rem;
    display: block;
    position: absolute;
    right: -1.03553rem;
    top: -1.03553rem;
    width: 7.07107rem;
    height: 7.07107rem;
    line-height: 4.53553rem;
    text-align: center;
    z-index: 3;
    color: #363636;
    -webkit-transform: rotate(45deg) translateZ(0);
    -moz-transform: rotate(45deg) translateZ(0);
    -ms-transform: rotate(45deg) translateZ(0);
    -o-transform: rotate(45deg) translateZ(0);
    transform: rotate(45deg) translateZ(0); }
    .no-csstransforms .productlist__product-wrap .discount {
      line-height: 1rem;
      font-size: 1rem;
      padding: 0.9375rem 0.9375rem 0 0;
      text-align: right;
      right: 0;
      top: 0; }

.productlist__product__headline {
  margin-bottom: 0;
  font-size: 1rem;
  font-weight: bold;
  text-transform: uppercase;
  color: #333333; }

.productlist__product__button {
  width: 100%;
  border-radius: 0; }

.productlist__product__button-wrap {
  background: rgba(250, 250, 250, 0.7);
  border-radius: 2px;
  position: absolute;
  top: 100%;
  width: 100%;
  z-index: 4;
  margin-left: -0.9375rem;
  padding: 1.25rem 0.9375rem 0.9375rem 0.9375rem;
  text-align: center;
  -webkit-transition: -webkit-transform, 150ms;
  -moz-transition: -moz-transform, 150ms;
  transition: transform, 150ms; }
  .productlist__product__button-wrap .button {
    margin-bottom: 0; }

/* Buy button transform */
.csstransforms .productlist__product-wrap:hover .productlist__product__button-wrap {
  -webkit-transform: translate(0, -5.25rem);
  -moz-transform: translate(0, -5.25rem);
  -ms-transform: translate(0, -5.25rem);
  -o-transform: translate(0, -5.25rem);
  transform: translate(0, -5.25rem); }

/* For browsers without transform support, just change bottom position */
.no-csstransforms .productlist__product__button-wrap {
  top: auto;
  bottom: -100%;
  -webkit-transition: bottom, 150ms ease;
  -moz-transition: bottom, 150ms ease;
  transition: bottom, 150ms ease; }

.no-csstransforms .productlist__product-wrap:hover .productlist__product__button-wrap {
  top: auto;
  bottom: 0; }

/**
 * For browsers with touch support, we assume no support for :hover and
 * make some alterations.
 */
.touch .productlist__product__button-wrap {
  display: none; }

.categorylist__category-wrap {
  position: relative;
  border-radius: 2px;
  background-color: white;
  transition: border-color 150ms ease-out; }

.categorylist__category__headline {
  text-align: center;
  font-size: 1.5rem; }

.user-nav {
  float: right; }

#main-content,
#main-content-onepage {
  padding-top: 1.875rem;
  padding-bottom: 1.875rem; }
  #main-content > .breadcrumbs__wrapper:first-child,
  #main-content-onepage > .breadcrumbs__wrapper:first-child {
    margin-top: -1.875rem;
    padding: 0.5rem 0; }

#footer {
  padding-top: 1.875rem;
  border-top: 1px solid #dfdfdb; }

#end {
  border-top: 1px solid #ddddd6;
  padding: 1.875rem 0;
  text-align: center; }

.page__title {
  margin-top: -1.875rem;
  padding: 0.5rem 0;
  margin-bottom: 1.5rem; }
  .page__title h1 {
    margin: 0; }

.footer__links li {
  display: inline-block; }
  .footer__links li a {
    display: block;
    padding: 0 .5rem; }
    html.touch .footer__links li a {
      line-height: 2.75rem; }

.footer__company-info,
.footer__made-by {
  line-height: 1.5; }

.footer__made-by {
  padding-top: 1rem;
  font-size: 13px; }

.footer__cookie_notice {
  margin-top: 1.25rem;
  padding-left: 25%;
  padding-right: 25%;
  font-size: 13px; }

@media only screen and (min-width: 40em) {
  .footer__links {
    margin-top: .5rem; } }

.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 #fe5252;
  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; }

.bestseller {
  display: block;
  width: 100%;
  padding: .25rem 0; }
  .bestseller .row {
    position: relative; }

.bestseller__title {
  font-size: 0.875rem;
  padding: 0.625rem 0; }

.bestseller__image {
  width: 2.75rem;
  height: 2.75rem;
  position: absolute;
  left: 0;
  top: 50%;
  margin-top: -1.375rem;
  line-height: 2.75rem; }

.bestseller__image img {
  display: inline;
  max-width: 2.75rem;
  max-height: 2.75rem; }

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

.block__box__headline {
  text-transform: uppercase;
  font-size: 1.25rem;
  padding: 0.5rem 0.9375rem 0.5rem 0.9375rem;
  margin: 0; }
  .block__box__headline:hover {
    cursor: pointer; }
  .block__box__headline: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;
    float: right;
    -webkit-transition: -webkit-transform;
    -moz-transition: -moz-transform;
    transition: transform;
    line-height: 1.5; }
  .block__box__headline.toggled {
    background-color: #fe5252;
    color: #292929; }
    .block__box__headline.toggled:after {
      -webkit-transform: rotatex(180deg);
      -moz-transform: rotatex(180deg);
      -ms-transform: rotatex(180deg);
      -o-transform: rotatex(180deg);
      transform: rotatex(180deg); }

.block__box__content {
  display: none;
  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.js-toggle-visibility:before, .block__box li.parent > .main-nav__toggle:before {
  -webkit-transition: all 300ms ease;
  -moz-transition: all 300ms ease;
  transition: all 300ms ease;
  /* 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, .block__box li.parent > .main-nav__toggle.toggled:before {
  -webkit-transform: rotate(135deg);
  -moz-transform: rotate(135deg);
  -ms-transform: rotate(135deg);
  -o-transform: rotate(135deg);
  transform: rotate(135deg);
  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 .footer-block:last-child {
  margin-bottom: 1.875rem; }
  #footer .footer-block:last-child .block__box:last-child {
    border-bottom: none; }

#footer .block__box {
  /**
         * 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
         */ }
  #footer .block__box li a.neutral-link:before,
  #footer .block__box li.neutral-link > a:before {
    color: #e40101; }
  #footer .block__box li a.toggled:before {
    color: #d22e13; }
  #footer .block__box .main-nav__toggle, #footer .block__box .main-nav__toggle:before {
    height: 3.125rem;
    width: 3.125rem;
    line-height: 3.125rem;
    text-indent: 0; }
  #footer .block__box li.level-0, #footer .block__box li.level-0 li {
    position: relative;
    padding: 0;
    border-top: 1px rgba(51, 51, 51, 0.2) solid; }
  #footer .block__box li.level-0:first-child {
    border-top-width: 0px; }
  #footer .block__box li.level-0 a {
    font-size: 0.875rem;
    padding: 0.875rem 0; }
  #footer .block__box li.level-1 {
    text-indent: 1.3125rem; }
  #footer .block__box li.level-2 {
    text-indent: 2.625rem; }
  #footer .block__box li.level-3 {
    text-indent: 3.9375rem; }
  #footer .block__box li.level-4 {
    text-indent: 5.25rem; }
  #footer .block__box li.level-5 {
    text-indent: 6.5625rem; }
  #footer .block__box li.parent > a {
    position: relative; }
  #footer .block__box li.parent.current > ul, #footer .block__box li.parent.selected > ul {
    display: block; }

@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; }
  .block__box__headline {
    padding-left: 0;
    padding-right: 0; }
    .block__box__headline.toggled {
      background-color: inherit;
      color: inherit; }
    .block__box__headline:after {
      display: none; }
    .block__box__headline:hover {
      cursor: inherit; }
  .block__box__content {
    display: block !important;
    height: auto !important;
    opacity: 1 !important;
    padding-left: 0;
    padding-right: 0; } }

@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--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%; }
    .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, .page__title, .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, .page__title, .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.page__title: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; }

/* see foundation/components/breadcrumbs for the base styling and options */
.breadcrumbs {
  font-family:  'Helvetica Neue', Helvetica, Arial, sans-serif;
  margin-bottom: 0;
  background: transparent; }
  .breadcrumbs > li {
    line-height: 1.5; }

.breadcrumbs + h1 {
  margin-top: 0; }

@media only screen and (min-width: 64em) {
  .breadcrumbs {
    float: right;
    height: 3.85rem;
    padding: 1.175rem 0; } }

.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: #fafafa;
    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: #e40101;
    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: #fe5252 !important;
    color: #292929;
    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: #8CAB00;
  border-color: #708900;
  color: #FFFFFF;
  border-radius: 3px;
  padding: 0 1rem;
  line-height: 2.3125rem;
  font-size: 0.875rem;
  margin-bottom: 0; }
  .checkout-button:hover, .checkout-button:focus {
    background-color: #708900; }
  .checkout-button:hover, .checkout-button:focus {
    color: #FFFFFF; }
  .checkout-button:hover, .checkout-button:focus {
    background-color: #fe5252; }
  .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: #d4d4d4;
  padding: 2px;
  border-radius: 0;
  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: 0;
  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: #fea8a8; }

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

.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: #ededed;
  border-left: 5px solid #e1e1e1;
  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: #fafafa; }

.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: 0 0 0 0; }

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

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

.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 .productlist__product-wrap p.price--original, .productlist__product-wrap #kasse_one_login_question p.price--original, #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: #db3014; }

.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: #db3014;
    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, .productlist__product-wrap .price--original, #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: 0;
  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: 0; }
  .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: #fe5252;
    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: #e40101;
    -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: #727272; }

form:invalid .js-kasse-one-submit {
  color: #fafafa;
  background-color: #717171;
  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: 1rem;
  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: 1rem;
  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: #fe5252; }

.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;
  border-radius: 10px;
  background-color: white; }

.checkout--kco__overlay {
  display: block;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  color: #737373;
  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(228, 1, 1, 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: #fafafa; }
  .reveal-modal .close-reveal-modal {
    color: #737373; }
    .reveal-modal .close-reveal-modal:hover {
      color: #e60000; }
  @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: #d8d8d8;
      border-color: #717171;
      color: #4b4b4b;
      -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 #0078b6;
    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 #0078b6; }
  .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 #e60000;
    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 #e60000; }

.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: #fafafa;
    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: #e40101;
    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%23FAFAFA%22%20offset%3D%2210%25%22%2F%3E%3Cstop%20stop%2Dcolor%3D%22%23FAFAFA%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%23FAFAFA%22%20offset%3D%2210%25%22%2F%3E%3Cstop%20stop%2Dcolor%3D%22%23FAFAFA%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: #627800;
    background-color: rgba(98, 120, 0, 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: #fe5252;
      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 #fe5252; }
  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: #5e5e5e;
  background-color: #dbdbdb;
  border-radius: 5px;
  margin-bottom: -0.5rem;
  padding: 4px 7px;
  position: relative; }
  .checkout--kco__freight-protip strong {
    color: #4d4d4d;
    white-space: nowrap; }
  .checkout--kco__freight-protip:after {
    content: "";
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    border-color: #dbdbdb 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 #627800 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 #f0f0f0;
    background: #fafafa;
    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(228, 1, 1, 0.6) solid;
      border-radius: 6px;
      content: '';
      background: #fafafa;
      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 #e60000;
  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 #e60000; }

.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 #fafafa 0 30px 0, inset #fafafa 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: #fafafa;
    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: #8CAB00;
  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; }

.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%; } }

/*! 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: 3px; }

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

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

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

@-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; }

.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);
  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);
  transform: translate3d(0, 0, 0) scale3d(1, 1, 1); }

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

#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%; } }

.pagination-wrapper {
  padding-top: 1.875rem; }

.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:  'Quicksand', 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: #388038; }

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

.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: #e40101;
          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(146, 1, 1, 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: 3px; } }

@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: black !important;
    background-color: #fe5252 !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: #fafafa;
    z-index: 2; }
    .resp-tabs-container .rating .rating-checkbox-hider {
      background-color: white; }
  .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(250, 250, 250, 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); }

/**
 * 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: #e9e9e5;
  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: #ee0101;
      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: #ee0101;
    box-shadow: 0 0 0 2px #afafa0; }
    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: #afafa0;
    color: #424237; }
    input.search-box__input:focus::-webkit-input-placeholder, input.search-box__input.active::-webkit-input-placeholder {
      color: rgba(66, 66, 55, 0.75); }
    input.search-box__input:focus::-moz-placeholder, input.search-box__input.active::-moz-placeholder {
      color: rgba(66, 66, 55, 0.75); }
    input.search-box__input:focus:-moz-placeholder, input.search-box__input.active:-moz-placeholder {
      color: rgba(66, 66, 55, 0.75); }
    input.search-box__input:focus:-ms-input-placeholder, input.search-box__input.active:-ms-input-placeholder {
      color: rgba(66, 66, 55, 0.75); }
    input.search-box__input:focus ~ label .icon-search, input.search-box__input.active ~ label .icon-search {
      color: #424237; }
    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; }

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

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

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

.social-button {
  display: inline-block;
  line-height: 2.75rem;
  margin-bottom: 1rem; }
  .social-buttons-list--product .social-button {
    margin-bottom: 0; }
  .social-button .social-button__link {
    display: block;
    height: 2.75rem;
    width: 2.75rem;
    background-color: #333333;
    opacity: .3;
    -webkit-transition: all 0.2s ease;
    -moz-transition: all 0.2s ease;
    transition: all 0.2s ease;
    border-radius: 50%;
    color: #f4f4f2;
    font-size: 1.25rem;
    text-align: center; }
    .social-button .social-button__link:hover, .social-button .social-button__link:focus {
      color: #f4f4f2;
      opacity: 1; }
    .social-buttons-list--product .social-button .social-button__link {
      background-color: #fafafa;
      color: #333333;
      border: 2px solid #333333;
      opacity: .6; }
      .social-buttons-list--product .social-button .social-button__link:hover, .social-buttons-list--product .social-button .social-button__link:focus {
        color: #fafafa;
        opacity: 1; }

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

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

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

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

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

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

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

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

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

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

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

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

.social-button--youtube .social-button__link:hover, .social-button--youtube .social-button__link:focus, .social-button--youtube .social-button__link:active {
  color: #fff;
  background-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: 2.75rem; }
    .social-buttons-list--product .social-button {
      margin-bottom: .5rem; }
    #pageframe .social-buttons-list--product {
      right: -4.5rem; } }

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

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

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

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

.resp-tab-item,
.resp-accordion {
  outline: none;
  color: #0a0a0a;
  background-color: #f5f5f5;
  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: #0a0a0a;
    background-color: #cccccc; }

.resp-tabs-container {
  padding: 0;
  background-color: white;
  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: #01adad;
  background-color: #fe5252; }
  .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: #005252;
    background-color: #fe9e9e; }

.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 #fe5252; } }

@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: #fe5252; }

.subtle, .productlist__product-wrap .price--original, #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; }

.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(250, 250, 250, 0);
  transition: all 0.3s ease; }
  .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: #fe5252;
    border-color: #fe5252; }
    .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: #292929; }

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

.pagination__item--current {
  line-height: 2.75rem;
  background-color: #fe5252;
  border-color: #fe5252;
  color: #292929;
  padding: 0 1rem; }
  .pagination__item--current:hover, .pagination__item--current:focus {
    background-color: #fe5252;
    border-color: #fe5252;
    color: #292929; }

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

.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);
  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(250, 250, 250, 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);
  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);
  transform: rotate(-5deg) translatez(0); }

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

.sub-nav {
  display: block;
  width: auto;
  overflow: hidden;
  margin-bottom: -0.25rem 0 1.125rem;
  padding-top: 0.25rem; }
  .sub-nav dt {
    text-transform: uppercase; }
  .sub-nav dt,
  .sub-nav dd,
  .sub-nav li {
    float: left;
    margin-left: 1rem;
    margin-bottom: 0;
    font-family:  'Helvetica Neue', Helvetica, Arial, sans-serif;
    font-weight: normal;
    font-size: 0.875rem;
    color: #999999; }
    .sub-nav dt a,
    .sub-nav dd a,
    .sub-nav li a {
      text-decoration: none;
      color: #999999;
      padding: 0.1875rem 1rem; }
      .sub-nav dt a:hover,
      .sub-nav dd a:hover,
      .sub-nav li a:hover {
        color: #737373; }
    .sub-nav dt.active a,
    .sub-nav dd.active a,
    .sub-nav li.active a {
      border-radius: 3px;
      font-weight: normal;
      background: #fe5252;
      padding: 0.1875rem 1rem;
      cursor: default;
      color: #FFFFFF; }
      .sub-nav dt.active a:hover,
      .sub-nav dd.active a:hover,
      .sub-nav li.active a:hover {
        background: #fe2323; }

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

/* Wrapped around .top-bar to contain to grid width */
.contain-to-grid {
  width: 100%;
  background: #ffffff; }
  .contain-to-grid .top-bar {
    margin-bottom: 0; }

.fixed {
  width: 100%;
  left: 0;
  position: fixed;
  top: 0;
  z-index: 99; }
  .fixed.expanded:not(.top-bar) {
    overflow-y: auto;
    height: auto;
    width: 100%;
    max-height: 100%; }
    .fixed.expanded:not(.top-bar) .title-area {
      position: fixed;
      width: 100%;
      z-index: 99; }
    .fixed.expanded:not(.top-bar) .top-bar-section {
      z-index: 98;
      margin-top: 5rem; }

.top-bar {
  overflow: hidden;
  height: 5rem;
  line-height: 5rem;
  position: relative;
  background: #ffffff;
  margin-bottom: 0; }
  .top-bar ul {
    margin-bottom: 0;
    list-style: none; }
  .top-bar .row {
    max-width: none; }
  .top-bar form,
  .top-bar input {
    margin-bottom: 0; }
  .top-bar input {
    height: 1.75rem;
    padding-top: .35rem;
    padding-bottom: .35rem;
    font-size: 0.75rem; }
  .top-bar .button, .top-bar button {
    padding-top: 0.4125rem;
    padding-bottom: 0.4125rem;
    margin-bottom: 0;
    font-size: 0.75rem; }
    @media only screen and (max-width: 39.9375em) {
      .top-bar .button, .top-bar button {
        position: relative;
        top: -1px; } }
  .top-bar .title-area {
    position: relative;
    margin: 0; }
  .top-bar .name {
    height: 5rem;
    margin: 0;
    font-size: 16px; }
    .top-bar .name h1, .top-bar .name h2, .top-bar .name h3, .top-bar .name h4, .top-bar .name p, .top-bar .name span {
      line-height: 5rem;
      font-size: 1.0625rem;
      margin: 0; }
      .top-bar .name h1 a, .top-bar .name h2 a, .top-bar .name h3 a, .top-bar .name h4 a, .top-bar .name p a, .top-bar .name span a {
        font-weight: bold;
        color: black;
        width: 75%;
        display: block;
        padding: 0 0.625rem; }
  .top-bar .toggle-topbar {
    position: absolute;
    right: 0;
    top: 0; }
    .top-bar .toggle-topbar a {
      color: black;
      text-transform: uppercase;
      font-size: 0.8125rem;
      font-weight: bold;
      position: relative;
      display: block;
      padding: 0 0.625rem;
      height: 5rem;
      line-height: 5rem; }
    .top-bar .toggle-topbar.menu-icon {
      top: 50%;
      margin-top: -16px; }
      .top-bar .toggle-topbar.menu-icon a {
        height: 34px;
        line-height: 33px;
        padding: 0 2.1875rem 0 0.625rem;
        color: black;
        position: relative; }
        .top-bar .toggle-topbar.menu-icon a span::after {
          content: "";
          position: absolute;
          display: block;
          height: 0;
          top: 50%;
          margin-top: -8px;
          right: 0.625rem;
          box-shadow: 0 0 0 1px black, 0 7px 0 1px black, 0 14px 0 1px black;
          width: 16px; }
        .top-bar .toggle-topbar.menu-icon a span:hover:after {
          box-shadow: 0 0 0 1px "", 0 7px 0 1px "", 0 14px 0 1px ""; }
  .top-bar.expanded {
    height: auto;
    background: transparent; }
    .top-bar.expanded .title-area {
      background: #ffffff; }
    .top-bar.expanded .toggle-topbar a {
      color: #fe5252; }
      .top-bar.expanded .toggle-topbar a span::after {
        box-shadow: 0 0 0 1px #fe5252, 0 7px 0 1px #fe5252, 0 14px 0 1px #fe5252; }

.top-bar-section {
  left: 0;
  position: relative;
  width: auto;
  transition: left 300ms ease-out; }
  .top-bar-section ul {
    padding: 0;
    width: 100%;
    height: auto;
    display: block;
    font-size: 16px;
    margin: 0; }
  .top-bar-section .divider,
  .top-bar-section [role="separator"] {
    border-top: solid 1px gray;
    clear: both;
    height: 1px;
    width: 100%; }
  .top-bar-section ul li {
    background: #ffffff; }
    .top-bar-section ul li > a {
      display: block;
      width: 100%;
      color: black;
      padding: 12px 0 12px 0;
      padding-left: 0.625rem;
      font-family:  'Helvetica Neue', Helvetica, Arial, sans-serif;
      font-size: 0.8125rem;
      font-weight: normal;
      text-transform: none; }
      .top-bar-section ul li > a.button {
        font-size: 0.8125rem;
        padding-right: 0.625rem;
        padding-left: 0.625rem;
        background-color: #fe5252;
        border-color: #fe0f0f;
        color: #FFFFFF; }
        .top-bar-section ul li > a.button:hover, .top-bar-section ul li > a.button:focus {
          background-color: #fe0f0f; }
        .top-bar-section ul li > a.button:hover, .top-bar-section ul li > a.button:focus {
          color: #FFFFFF; }
      .top-bar-section ul li > a.button.secondary {
        background-color: #e7e7e7;
        border-color: #b9b9b9;
        color: #333333; }
        .top-bar-section ul li > a.button.secondary:hover, .top-bar-section ul li > a.button.secondary:focus {
          background-color: #b9b9b9; }
        .top-bar-section ul li > a.button.secondary:hover, .top-bar-section ul li > a.button.secondary:focus {
          color: #333333; }
      .top-bar-section ul li > a.button.success {
        background-color: #5cb85c;
        border-color: #439a43;
        color: #FFFFFF; }
        .top-bar-section ul li > a.button.success:hover, .top-bar-section ul li > a.button.success:focus {
          background-color: #439a43; }
        .top-bar-section ul li > a.button.success:hover, .top-bar-section ul li > a.button.success:focus {
          color: #FFFFFF; }
      .top-bar-section ul li > a.button.alert {
        background-color: #e03114;
        border-color: #b32710;
        color: #FFFFFF; }
        .top-bar-section ul li > a.button.alert:hover, .top-bar-section ul li > a.button.alert:focus {
          background-color: #b32710; }
        .top-bar-section ul li > a.button.alert:hover, .top-bar-section ul li > a.button.alert:focus {
          color: #FFFFFF; }
      .top-bar-section ul li > a.button.warning {
        background-color: #ffa200;
        border-color: #cc8200;
        color: #FFFFFF; }
        .top-bar-section ul li > a.button.warning:hover, .top-bar-section ul li > a.button.warning:focus {
          background-color: #cc8200; }
        .top-bar-section ul li > a.button.warning:hover, .top-bar-section ul li > a.button.warning:focus {
          color: #FFFFFF; }
    .top-bar-section ul li > button {
      font-size: 0.8125rem;
      padding-right: 0.625rem;
      padding-left: 0.625rem;
      background-color: #fe5252;
      border-color: #fe0f0f;
      color: #FFFFFF; }
      .top-bar-section ul li > button:hover, .top-bar-section ul li > button:focus {
        background-color: #fe0f0f; }
      .top-bar-section ul li > button:hover, .top-bar-section ul li > button:focus {
        color: #FFFFFF; }
      .top-bar-section ul li > button.secondary {
        background-color: #e7e7e7;
        border-color: #b9b9b9;
        color: #333333; }
        .top-bar-section ul li > button.secondary:hover, .top-bar-section ul li > button.secondary:focus {
          background-color: #b9b9b9; }
        .top-bar-section ul li > button.secondary:hover, .top-bar-section ul li > button.secondary:focus {
          color: #333333; }
      .top-bar-section ul li > button.success {
        background-color: #5cb85c;
        border-color: #439a43;
        color: #FFFFFF; }
        .top-bar-section ul li > button.success:hover, .top-bar-section ul li > button.success:focus {
          background-color: #439a43; }
        .top-bar-section ul li > button.success:hover, .top-bar-section ul li > button.success:focus {
          color: #FFFFFF; }
      .top-bar-section ul li > button.alert {
        background-color: #e03114;
        border-color: #b32710;
        color: #FFFFFF; }
        .top-bar-section ul li > button.alert:hover, .top-bar-section ul li > button.alert:focus {
          background-color: #b32710; }
        .top-bar-section ul li > button.alert:hover, .top-bar-section ul li > button.alert:focus {
          color: #FFFFFF; }
      .top-bar-section ul li > button.warning {
        background-color: #ffa200;
        border-color: #cc8200;
        color: #FFFFFF; }
        .top-bar-section ul li > button.warning:hover, .top-bar-section ul li > button.warning:focus {
          background-color: #cc8200; }
        .top-bar-section ul li > button.warning:hover, .top-bar-section ul li > button.warning:focus {
          color: #FFFFFF; }
    .top-bar-section ul li:hover:not(.has-form) > a {
      background-color: #fe5252;
      background: #fe5252;
      color: #292929; }
    .top-bar-section ul li.active > a {
      background: #fe5252;
      color: #292929; }
      .top-bar-section ul li.active > a:hover {
        background: #fe2323;
        color: #292929; }
  .top-bar-section .has-form {
    padding: 0.625rem; }
  .top-bar-section .has-dropdown {
    position: relative; }
    .top-bar-section .has-dropdown > a:after {
      content: "";
      display: block;
      width: 0;
      height: 0;
      border: inset 5px;
      border-color: transparent transparent transparent white;
      border-left-style: solid;
      margin-right: 0.625rem;
      margin-top: -4.5px;
      position: absolute;
      top: 50%;
      right: 0; }
    .top-bar-section .has-dropdown.moved {
      position: static; }
      .top-bar-section .has-dropdown.moved > .dropdown {
        display: block;
        position: static !important;
        height: auto;
        width: auto;
        overflow: visible;
        clip: auto;
        position: absolute !important;
        width: 100%; }
      .top-bar-section .has-dropdown.moved > a:after {
        display: none; }
  .top-bar-section .dropdown {
    padding: 0;
    position: absolute;
    left: 100%;
    top: 0;
    z-index: 99;
    display: block;
    position: absolute !important;
    height: 1px;
    width: 1px;
    overflow: hidden;
    clip: rect(1px, 1px, 1px, 1px); }
    .top-bar-section .dropdown li {
      width: 100%;
      height: auto; }
      .top-bar-section .dropdown li a {
        font-weight: normal;
        padding: 8px 0.625rem; }
        .top-bar-section .dropdown li a.parent-link {
          font-weight: normal; }
      .top-bar-section .dropdown li.title h5, .top-bar-section .dropdown li.parent-link {
        margin-bottom: 0;
        margin-top: 0;
        font-size: 1.125rem; }
        .top-bar-section .dropdown li.title h5 a, .top-bar-section .dropdown li.parent-link a {
          color: black;
          display: block; }
          .top-bar-section .dropdown li.title h5 a:hover, .top-bar-section .dropdown li.parent-link a:hover {
            background: none; }
      .top-bar-section .dropdown li.has-form {
        padding: 8px 0.625rem; }
      .top-bar-section .dropdown li .button, .top-bar-section .dropdown li button {
        top: auto; }
    .top-bar-section .dropdown label {
      padding: 8px 0.625rem 2px;
      margin-bottom: 0;
      text-transform: uppercase;
      color: #777777;
      font-weight: bold;
      font-size: 0.625rem; }

.js-generated {
  display: block; }

@media only screen {
  .top-bar {
    background: #ffffff;
    overflow: visible; }
    .top-bar:before, .top-bar:after {
      content: " ";
      display: table; }
    .top-bar:after {
      clear: both; }
    .top-bar .toggle-topbar {
      display: none; }
    .top-bar .title-area {
      float: left; }
    .top-bar .name h1 a,
    .top-bar .name h2 a,
    .top-bar .name h3 a,
    .top-bar .name h4 a,
    .top-bar .name h5 a,
    .top-bar .name h6 a {
      width: auto; }
    .top-bar input,
    .top-bar .button,
    .top-bar button {
      font-size: 0.875rem;
      position: relative;
      height: 1.75rem;
      top: 1.625rem; }
    .top-bar.expanded {
      background: #ffffff; }
  .contain-to-grid .top-bar {
    max-width: 80rem;
    margin: 0 auto;
    margin-bottom: 0; }
  .top-bar-section {
    transition: none 0 0;
    left: 0 !important; }
    .top-bar-section ul {
      width: auto;
      height: auto !important;
      display: inline; }
      .top-bar-section ul li {
        float: left; }
        .top-bar-section ul li .js-generated {
          display: none; }
    .top-bar-section li.hover > a:not(.button) {
      background-color: #fe5252;
      background: #fe5252;
      color: #292929; }
    .top-bar-section li:not(.has-form) a:not(.button) {
      padding: 0 0.625rem;
      line-height: 5rem;
      background: #ffffff; }
      .top-bar-section li:not(.has-form) a:not(.button):hover {
        background-color: #fe5252;
        background: #fe5252; }
    .top-bar-section li.active:not(.has-form) a:not(.button) {
      padding: 0 0.625rem;
      line-height: 5rem;
      color: #292929;
      background: #fe5252; }
      .top-bar-section li.active:not(.has-form) a:not(.button):hover {
        background: #fe2323;
        color: #292929; }
    .top-bar-section .has-dropdown > a {
      padding-right: 1.875rem !important; }
      .top-bar-section .has-dropdown > a:after {
        content: "";
        display: block;
        width: 0;
        height: 0;
        border: inset 5px;
        border-color: white transparent transparent transparent;
        border-top-style: solid;
        margin-top: -2.5px;
        top: 2.5rem; }
    .top-bar-section .has-dropdown.moved {
      position: relative; }
      .top-bar-section .has-dropdown.moved > .dropdown {
        display: block;
        position: absolute !important;
        height: 1px;
        width: 1px;
        overflow: hidden;
        clip: rect(1px, 1px, 1px, 1px); }
    .top-bar-section .has-dropdown.hover > .dropdown, .top-bar-section .has-dropdown.not-click:hover > .dropdown {
      display: block;
      position: static !important;
      height: auto;
      width: auto;
      overflow: visible;
      clip: auto;
      position: absolute !important; }
    .top-bar-section .has-dropdown > a:focus + .dropdown {
      display: block;
      position: static !important;
      height: auto;
      width: auto;
      overflow: visible;
      clip: auto;
      position: absolute !important; }
    .top-bar-section .has-dropdown .dropdown li.has-dropdown > a:after {
      border: none;
      content: "\00bb";
      top: 1rem;
      margin-top: -1px;
      right: 5px;
      line-height: 1.2; }
    .top-bar-section .dropdown {
      left: 0;
      top: auto;
      background: transparent;
      min-width: 100%; }
      .top-bar-section .dropdown li a {
        color: #FFFFFF;
        line-height: 5rem;
        white-space: nowrap;
        padding: 12px 0.625rem;
        background: #333333; }
      .top-bar-section .dropdown li:not(.has-form):not(.active) > a:not(.button) {
        color: #FFFFFF;
        background: #333333; }
      .top-bar-section .dropdown li:not(.has-form):not(.active):hover > a:not(.button) {
        color: #292929;
        background-color: #fe5252;
        background: #333333; }
      .top-bar-section .dropdown li label {
        white-space: nowrap;
        background: #333333; }
      .top-bar-section .dropdown li .dropdown {
        left: 100%;
        top: 0; }
    .top-bar-section > ul > .divider,
    .top-bar-section > ul > [role="separator"] {
      border-bottom: none;
      border-top: none;
      border-right: solid 1px white;
      clear: none;
      height: 5rem;
      width: 0; }
    .top-bar-section .has-form {
      background: #ffffff;
      padding: 0 0.625rem;
      height: 5rem; }
    .top-bar-section .right li .dropdown {
      left: auto;
      right: 0; }
      .top-bar-section .right li .dropdown li .dropdown {
        right: 100%; }
    .top-bar-section .left li .dropdown {
      right: auto;
      left: 0; }
      .top-bar-section .left li .dropdown li .dropdown {
        left: 100%; }
  .no-js .top-bar-section ul li:hover > a {
    background-color: #fe5252;
    background: #fe5252;
    color: #292929; }
  .no-js .top-bar-section ul li:active > a {
    background: #fe5252;
    color: #292929; }
  .no-js .top-bar-section .has-dropdown:hover > .dropdown {
    display: block;
    position: static !important;
    height: auto;
    width: auto;
    overflow: visible;
    clip: auto;
    position: absolute !important; }
  .no-js .top-bar-section .has-dropdown > a:focus + .dropdown {
    display: block;
    position: static !important;
    height: auto;
    width: auto;
    overflow: visible;
    clip: auto;
    position: absolute !important; } }

#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; }

.product__main-images {
  border-radius: 4px;
  box-shadow: rgba(0, 0, 0, 0.25) 0 0 1px, rgba(0, 0, 0, 0.2) 0 0 10px 0px;
  background: white;
  padding: 10px; }

.product__imagegallery__wrapper {
  padding: 0 1.5rem; }

.product__imagegallery {
  border-radius: 4px;
  box-shadow: rgba(0, 0, 0, 0.25) 0 0 1px, rgba(0, 0, 0, 0.2) 0 0 10px 0px;
  background: white;
  padding: 10px; }
  .product__imagegallery li.product__imagegallery__imagewrap {
    padding-bottom: 0; }
    .product__imagegallery li.product__imagegallery__imagewrap .th {
      border-radius: 3px;
      border-width: 1px;
      box-shadow: none; }
    .product__imagegallery li.product__imagegallery__imagewrap .active, .product__imagegallery li.product__imagegallery__imagewrap .th:hover {
      border-color: #ee0101;
      box-shadow: inset rgba(238, 1, 1, 0.1) 0 0 1px; }

.bx-pager-link {
  background: transparent; }
  .bx-pager-link:after {
    background: transparent;
    color: transparent;
    opacity: 1;
    line-height: 1.2rem;
    border-radius: 50%;
    border-width: 0.35rem;
    border: 0rem solid transparent;
    border-color: rgba(255, 255, 255, 0);
    -webkit-transition: all 150ms ease;
    -moz-transition: all 150ms ease;
    transition: all 150ms ease;
    left: 1.15rem;
    right: 1.15rem;
    top: 1.15rem;
    bottom: 1.15rem;
    width: auto;
    height: auto;
    color: transparent;
    background: white;
    background-clip: content-box;
    box-shadow: 0 0 0 2px white;
    transform: translateZ(0); }

.bx-pager-link.active:after, .bx-pager-link:focus:after, .bx-pager-link:hover:after {
  font-size: 0.8rem;
  color: transparent;
  opacity: 1;
  box-shadow: inset 0 0 0 2px white;
  box-shadow: 0 0 0 2px white;
  border-width: 0.35rem; }

.slider__wrapper {
  margin-bottom: 0;
  margin-left: 0;
  margin-right: 0; }
  .slider__wrapper .bx-pager.bx-default-pager {
    position: absolute;
    left: 0px;
    right: 0px;
    bottom: 0px;
    z-index: 60; }
  .slider__wrapper .bx-controls-direction a {
    border-radius: 0;
    border-color: transparent;
    opacity: 1;
    border-radius: 50%;
    transition: background 200ms ease, transform 150ms ease, -webkit-filter 150ms ease;
    -webkit-transition-property: transition-property-names(background, transform, filter, "webkit");
    -moz-transition-property: transition-property-names(background, transform, filter, "moz");
    transition-property: transition-property-names(background, transform, filter, false);
    -webkit-transition-duration: 200ms, 150ms, 150ms;
    -moz-transition-duration: 200ms, 150ms, 150ms;
    transition-duration: 200ms, 150ms, 150ms;
    -webkit-transition-timing-function: ease, ease, ease;
    -moz-transition-timing-function: ease, ease, ease;
    transition-timing-function: ease, ease, ease;
    background: rgba(255, 255, 255, 0.25);
    text-shadow: white 0 0 1px;
    /*.mix-blend-mode & {
			text-shadow: none;
			mix-blend-mode: difference;

			transform: scale(2);
		}*/ }
    .slider__wrapper .bx-controls-direction a:hover, .slider__wrapper .bx-controls-direction a:focus {
      background: rgba(255, 255, 255, 0.9); }
    .slider__wrapper .bx-controls-direction a.bx-prev {
      left: 10px; }
    .slider__wrapper .bx-controls-direction a.bx-next {
      right: 10px; }
    .slider__wrapper .bx-controls-direction a:after {
      color: black; }

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

.resp-tab-item,
.resp-accordion {
  color: #0a0a0a;
  background-color: #f5f5f5;
  -webkit-transition: all 200ms ease;
  -moz-transition: all 200ms ease;
  transition: all 200ms ease;
  box-shadow: 0 -1px 0px 0px rgba(0, 0, 0, 0.015) inset, 0 -2px 0px 0px rgba(0, 0, 0, 0.015) inset, 0 -3px 0px 0px rgba(0, 0, 0, 0.015) inset, 0 -4px 0px 0px rgba(0, 0, 0, 0.015) inset;
  border-top: 4px solid transparent; }
  .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;
    -webkit-transition: -webkit-transform;
    -moz-transition: -moz-transform;
    transition: transform; }
  .resp-tab-item:hover, .resp-tab-item:focus,
  .resp-accordion:hover,
  .resp-accordion:focus {
    background-color: white; }

.resp-tabs-container {
  background-color: white;
  box-shadow: 0 1px 6px 0px rgba(0, 0, 0, 0.15);
  border-radius: 4px;
  border-top-left-radius: 0px;
  color: #0a0a0a; }

.resp-tab-active,
.resp-accordion.resp-tab-active {
  color: #0a0a0a;
  background-color: white;
  border-top: 4px solid #e40101;
  border-top-left-radius: 3px;
  border-top-right-radius: 3px;
  box-shadow: 0 -3px 6px 0px rgba(0, 0, 0, 0.15); }
  .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: #018484;
    background-color: white; }

@media only screen and (max-width: 39.9375em) {
  .js-tabs {
    border-top-width: 0px; } }

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

@media only screen and (min-width: 64em) {
  .js-tabs {
    border-top-width: 0px; } }

@-webkit-keyframes menu-rotate-top {
  0% {
    opacity: 0;
    -webkit-transform: rotateX(-45deg);
    -moz-transform: rotateX(-45deg);
    -ms-transform: rotateX(-45deg);
    transform: rotateX(-45deg); }
  100% {
    opacity: 1;
    -webkit-transform: rotateX(0deg);
    -moz-transform: rotateX(0deg);
    -ms-transform: rotateX(0deg);
    transform: rotateX(0deg); } }

@-moz-keyframes menu-rotate-top {
  0% {
    opacity: 0;
    -webkit-transform: rotateX(-45deg);
    -moz-transform: rotateX(-45deg);
    -ms-transform: rotateX(-45deg);
    transform: rotateX(-45deg); }
  100% {
    opacity: 1;
    -webkit-transform: rotateX(0deg);
    -moz-transform: rotateX(0deg);
    -ms-transform: rotateX(0deg);
    transform: rotateX(0deg); } }

@keyframes menu-rotate-top {
  0% {
    opacity: 0;
    -webkit-transform: rotateX(-45deg);
    -moz-transform: rotateX(-45deg);
    -ms-transform: rotateX(-45deg);
    transform: rotateX(-45deg); }
  100% {
    opacity: 1;
    -webkit-transform: rotateX(0deg);
    -moz-transform: rotateX(0deg);
    -ms-transform: rotateX(0deg);
    transform: rotateX(0deg); } }

@-webkit-keyframes menu-rotate-left {
  0% {
    opacity: 0;
    -webkit-transform: rotateY(90deg);
    -moz-transform: rotateY(90deg);
    -ms-transform: rotateY(90deg);
    transform: rotateY(90deg); }
  100% {
    opacity: 1;
    -webkit-transform: rotateY(0deg);
    -moz-transform: rotateY(0deg);
    -ms-transform: rotateY(0deg);
    transform: rotateY(0deg); } }

@-moz-keyframes menu-rotate-left {
  0% {
    opacity: 0;
    -webkit-transform: rotateY(90deg);
    -moz-transform: rotateY(90deg);
    -ms-transform: rotateY(90deg);
    transform: rotateY(90deg); }
  100% {
    opacity: 1;
    -webkit-transform: rotateY(0deg);
    -moz-transform: rotateY(0deg);
    -ms-transform: rotateY(0deg);
    transform: rotateY(0deg); } }

@keyframes menu-rotate-left {
  0% {
    opacity: 0;
    -webkit-transform: rotateY(90deg);
    -moz-transform: rotateY(90deg);
    -ms-transform: rotateY(90deg);
    transform: rotateY(90deg); }
  100% {
    opacity: 1;
    -webkit-transform: rotateY(0deg);
    -moz-transform: rotateY(0deg);
    -ms-transform: rotateY(0deg);
    transform: rotateY(0deg); } }

.header-shadow {
  box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.15);
  position: relative; }

.top-bar {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-line-pack: stretch;
  align-content: stretch;
  padding-left: .9375rem;
  padding-right: .9375rem; }

#main-menu {
  -webkit-box-flex: 1;
  -ms-flex: 1;
  flex: 1;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap; }

#nav-open-btn2 {
  display: none; }

.overflowing #main-menu {
  display: none !important; }

.overflowing #nav-open-btn2 {
  display: block; }

@media only screen and (max-width: 39.9375em) {
  .top-bar .title-area {
    max-width: 50%;
    overflow: hidden; }
    .top-bar .title-area h1 {
      text-overflow: ellipsis;
      overflow: hidden;
      font-size: 1.6em !important; } }

.top-bar-section {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: stretch;
  -ms-flex-align: stretch;
  align-items: stretch;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
  width: 100%; }
  .top-bar-section .search-box__container {
    min-width: 0px;
    height: 5rem;
    padding: 0px; }
    .top-bar-section .search-box__container input.search-box__input {
      z-index: 1;
      position: relative;
      background: transparent;
      box-shadow: 0 0 0 1px rgba(238, 1, 1, 0);
      top: 0px;
      margin: 1.5625rem 0.125rem;
      padding-left: 2rem;
      height: 1.875rem;
      border-radius: 3px;
      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); }
      .top-bar-section .search-box__container input.search-box__input:not(:focus):not(.active) {
        color: rgba(117, 117, 117, 0);
        /* FF 4-18 */
        /* FF 19+ */
        /* IE 10+ */ }
        .top-bar-section .search-box__container input.search-box__input:not(:focus):not(.active)::-webkit-input-placeholder {
          color: rgba(117, 117, 117, 0);
          -webkit-transition: color 600ms cubic-bezier(0.19, 1, 0.22, 1); }
        .top-bar-section .search-box__container input.search-box__input:not(:focus):not(.active):-moz-placeholder {
          color: rgba(117, 117, 117, 0);
          -moz-transition: color 600ms cubic-bezier(0.19, 1, 0.22, 1); }
        .top-bar-section .search-box__container input.search-box__input:not(:focus):not(.active)::-moz-placeholder {
          color: rgba(117, 117, 117, 0);
          -moz-transition: color 600ms cubic-bezier(0.19, 1, 0.22, 1); }
        .top-bar-section .search-box__container input.search-box__input:not(:focus):not(.active):-ms-input-placeholder {
          color: rgba(117, 117, 117, 0);
          -ms-transition: color 600ms cubic-bezier(0.19, 1, 0.22, 1); }
        .top-bar-section .search-box__container input.search-box__input:not(:focus):not(.active):input-placeholder {
          color: rgba(117, 117, 117, 0);
          transition: color 600ms cubic-bezier(0.19, 1, 0.22, 1); }
      .top-bar-section .search-box__container input.search-box__input:focus, .top-bar-section .search-box__container input.search-box__input.active {
        background: white;
        box-shadow: 0 0 0 1px rgba(238, 1, 1, 0.75) !important;
        margin-left: 0;
        width: 18.75rem;
        /* FF 4-18 */
        /* FF 19+ */
        /* IE 10+ */ }
        .top-bar-section .search-box__container input.search-box__input:focus::-webkit-input-placeholder, .top-bar-section .search-box__container input.search-box__input.active::-webkit-input-placeholder {
          color: rgba(117, 117, 117, 0.75);
          -webkit-transition: color 600ms cubic-bezier(0.19, 1, 0.22, 1); }
        .top-bar-section .search-box__container input.search-box__input:focus:-moz-placeholder, .top-bar-section .search-box__container input.search-box__input.active:-moz-placeholder {
          color: rgba(117, 117, 117, 0.75);
          -moz-transition: color 600ms cubic-bezier(0.19, 1, 0.22, 1); }
        .top-bar-section .search-box__container input.search-box__input:focus::-moz-placeholder, .top-bar-section .search-box__container input.search-box__input.active::-moz-placeholder {
          color: rgba(117, 117, 117, 0.75);
          -moz-transition: color 600ms cubic-bezier(0.19, 1, 0.22, 1); }
        .top-bar-section .search-box__container input.search-box__input:focus:-ms-input-placeholder, .top-bar-section .search-box__container input.search-box__input.active:-ms-input-placeholder {
          color: rgba(117, 117, 117, 0.75);
          -ms-transition: color 600ms cubic-bezier(0.19, 1, 0.22, 1); }
        .top-bar-section .search-box__container input.search-box__input:focus:input-placeholder, .top-bar-section .search-box__container input.search-box__input.active:input-placeholder {
          color: rgba(117, 117, 117, 0.75);
          transition: color 600ms cubic-bezier(0.19, 1, 0.22, 1); }
        .top-bar-section .search-box__container input.search-box__input:focus ~ label, .top-bar-section .search-box__container input.search-box__input.active ~ 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; }
          .top-bar-section .search-box__container input.search-box__input:focus ~ label .icon-search, .top-bar-section .search-box__container input.search-box__input.active ~ 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: #757575; }
        .top-bar-section .search-box__container input.search-box__input:focus ~ .search-box__submit, .top-bar-section .search-box__container input.search-box__input.active ~ .search-box__submit {
          right: auto;
          left: 0;
          bottom: 1.5625rem;
          height: auto;
          width: 1.875rem; }
          .top-bar-section .search-box__container input.search-box__input:focus ~ .search-box__submit ~ label:before, .top-bar-section .search-box__container input.search-box__input.active ~ .search-box__submit ~ label:before {
            border-radius: 2px;
            top: 1.5625rem;
            bottom: 1.5625rem; }
          .top-bar-section .search-box__container input.search-box__input:focus ~ .search-box__submit ~ label .icon-search, .top-bar-section .search-box__container input.search-box__input.active ~ .search-box__submit ~ label .icon-search {
            color: #ee0101; }
          .top-bar-section .search-box__container input.search-box__input:focus ~ .search-box__submit:hover ~ label .icon-search, .top-bar-section .search-box__container input.search-box__input.active ~ .search-box__submit:hover ~ label .icon-search {
            color: white; }
      .top-bar-section .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: 5rem;
        box-shadow: inset 0 3px 0 rgba(254, 82, 82, 0);
        height: 5rem;
        -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); }
        .top-bar-section .search-box__container input.search-box__input ~ label:after {
          color: transparent;
          content: '.';
          display: block;
          background: #ee0101;
          position: absolute;
          border-radius: 50%;
          top: 1.5625rem;
          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; }
        .top-bar-section .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: black; }
      .top-bar-section .search-box__container input.search-box__input:not(:focus):not(.active) ~ label:hover:after {
        -webkit-transform: scale(1);
        -moz-transform: scale(1);
        -ms-transform: scale(1);
        transform: scale(1);
        opacity: 1; }
      .top-bar-section .search-box__container input.search-box__input:not(:focus):not(.active) ~ label:hover .icon-search {
        color: white;
        position: relative;
        z-index: 10; }
      .top-bar-section .search-box__container input.search-box__input ~ .search-box__submit {
        right: auto;
        left: 0;
        bottom: 1.5625rem;
        height: auto;
        width: 1.875rem; }
        .top-bar-section .search-box__container input.search-box__input ~ .search-box__submit ~ label:before {
          border-radius: 2px;
          top: 1.5625rem;
          bottom: 1.5625rem; }
  .top-bar-section .js-product-search-results {
    background: white;
    border-color: #ee0101;
    border-radius: 3px; }
  .top-bar-section .product-search__element {
    float: none; }
    .top-bar-section .product-search__element:first-child {
      border-top-left-radius: 2px;
      border-top-right-radius: 2px; }
    .top-bar-section .product-search__element:last-child {
      border-bottom-left-radius: 2px;
      border-bottom-right-radius: 2px; }
    .top-bar-section .product-search__element .themed-nav {
      border-radius: 2px;
      line-height: 2.8125rem !important; }
      .top-bar-section .product-search__element .themed-nav.active, .top-bar-section .product-search__element .themed-nav:hover {
        background: #ee0101 !important;
        color: white !important; }
  .top-bar-section li a {
    color: black;
    -webkit-transition-property: transition-property-names(background, color, box-shadow, "webkit");
    -moz-transition-property: transition-property-names(background, color, box-shadow, "moz");
    transition-property: transition-property-names(background, color, box-shadow, false);
    -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); }
  .top-bar-section .util-nav__list {
    -webkit-box-flex: 0;
    -ms-flex: none;
    flex: none;
    -webkit-box-ordinal-group: 2;
    -ms-flex-order: 1;
    order: 1; }
    .top-bar-section .util-nav__list .util-nav__item > a, .top-bar-section .util-nav__list .util-nav__item > form > a {
      position: relative; }
      .top-bar-section .util-nav__list .util-nav__item > a:after, .top-bar-section .util-nav__list .util-nav__item > form > a:after {
        color: transparent;
        content: '.';
        display: block;
        background: #ee0101;
        position: absolute;
        border-radius: 50%;
        top: 1.5625rem;
        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;
        z-index: 0; }
      .top-bar-section .util-nav__list .util-nav__item > a:hover, .top-bar-section .util-nav__list .util-nav__item > a.highlighted, .top-bar-section .util-nav__list .util-nav__item > form > a:hover, .top-bar-section .util-nav__list .util-nav__item > form > a.highlighted {
        background: none !important; }
        .top-bar-section .util-nav__list .util-nav__item > a:hover .icon-language, .top-bar-section .util-nav__list .util-nav__item > a:hover .icon-attach-money, .top-bar-section .util-nav__list .util-nav__item > a:hover .icon-close, .top-bar-section .util-nav__list .util-nav__item > a.highlighted .icon-language, .top-bar-section .util-nav__list .util-nav__item > a.highlighted .icon-attach-money, .top-bar-section .util-nav__list .util-nav__item > a.highlighted .icon-close, .top-bar-section .util-nav__list .util-nav__item > form > a:hover .icon-language, .top-bar-section .util-nav__list .util-nav__item > form > a:hover .icon-attach-money, .top-bar-section .util-nav__list .util-nav__item > form > a:hover .icon-close, .top-bar-section .util-nav__list .util-nav__item > form > a.highlighted .icon-language, .top-bar-section .util-nav__list .util-nav__item > form > a.highlighted .icon-attach-money, .top-bar-section .util-nav__list .util-nav__item > form > a.highlighted .icon-close {
          position: relative;
          z-index: 10;
          color: white !important; }
        .top-bar-section .util-nav__list .util-nav__item > a:hover:after, .top-bar-section .util-nav__list .util-nav__item > a.highlighted:after, .top-bar-section .util-nav__list .util-nav__item > form > a:hover:after, .top-bar-section .util-nav__list .util-nav__item > form > a.highlighted:after {
          -webkit-transform: scale(1);
          -moz-transform: scale(1);
          -ms-transform: scale(1);
          transform: scale(1);
          opacity: 1; }
    .top-bar-section .util-nav__list #language-close:after, .top-bar-section .util-nav__list #currency-close:after {
      transition: none; }
    .top-bar-section .util-nav__list .language-select span, .top-bar-section .util-nav__list .language-select .currency-name, .top-bar-section .util-nav__list .currency-select span, .top-bar-section .util-nav__list .currency-select .currency-name {
      display: none !important; }
    .top-bar-section .util-nav__list li.selected a .icon, .top-bar-section .util-nav__list li a:hover .icon, .top-bar-section .util-nav__list li a:focus .icon {
      color: white;
      position: relative;
      z-index: 10; }
    .top-bar-section .util-nav__list li.selected a:after, .top-bar-section .util-nav__list li a:hover:after, .top-bar-section .util-nav__list li a:focus:after {
      -webkit-transform: scale(1);
      -moz-transform: scale(1);
      -ms-transform: scale(1);
      transform: scale(1);
      opacity: 1; }
  .top-bar-section li.on-canvas-cart {
    position: relative; }
    .top-bar-section li.on-canvas-cart a {
      background: transparent !important;
      color: black !important;
      -webkit-transition-property: transition-property-names(background, color, box-shadow, "webkit");
      -moz-transition-property: transition-property-names(background, color, box-shadow, "moz");
      transition-property: transition-property-names(background, color, box-shadow, false);
      -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);
      line-height: 5rem;
      height: 5rem;
      position: relative; }
      .top-bar-section li.on-canvas-cart a:hover {
        background: none !important; }
        .top-bar-section li.on-canvas-cart a:hover, .top-bar-section li.on-canvas-cart a:hover .cart-button__icon {
          color: white; }
        .top-bar-section li.on-canvas-cart a:hover .cart-button__quantity {
          background: rgba(255, 255, 255, 0.9) !important;
          color: #ee0101 !important;
          box-shadow: 0 0 0 1px #ee0101 !important; }
        .top-bar-section li.on-canvas-cart a:hover .cart-button__icon {
          opacity: 0.75; }
        .top-bar-section li.on-canvas-cart a:hover .cart-button__text, .top-bar-section li.on-canvas-cart a:hover .cart-button__sum, .top-bar-section li.on-canvas-cart a:hover .cart-button__currency {
          color: white; }
        .top-bar-section li.on-canvas-cart a:hover:after {
          -webkit-transform: scale(1);
          -moz-transform: scale(1);
          -ms-transform: scale(1);
          transform: scale(1);
          opacity: 1; }
      .top-bar-section li.on-canvas-cart a:after {
        color: transparent;
        content: '.';
        display: block;
        background: #ee0101;
        position: absolute;
        top: 1.5625rem;
        height: 2rem;
        -webkit-transform: scale(0);
        -moz-transform: scale(0);
        -ms-transform: scale(0);
        transform: scale(0);
        opacity: 0;
        transition: all 0.3s ease;
        z-index: 0;
        border-radius: 2rem;
        right: 0px;
        left: 0px;
        width: auto;
        margin-right: auto; }
    .top-bar-section li.on-canvas-cart .cart-button {
      line-height: 5rem !important; }
    .top-bar-section li.on-canvas-cart .cart-button__icon {
      transition: opacity 0.3s ease;
      opacity: 0.5;
      position: relative;
      z-index: 10; }
      .top-bar-section li.on-canvas-cart .cart-button__icon.icon-shopping-cart::after {
        content: "\e607";
        opacity: .05;
        right: -95px;
        top: 3px;
        position: absolute;
        transform: scale(3);
        display: none; }
    .top-bar-section li.on-canvas-cart .cart-button__text {
      display: none;
      text-transform: uppercase;
      font-size: 0.5rem;
      line-height: 1.1rem;
      color: #9E9E9E;
      position: relative;
      top: 5px; }
    .top-bar-section li.on-canvas-cart .cart-button__sum, .top-bar-section li.on-canvas-cart .cart-button__currency {
      line-height: 0.5rem;
      line-height: 3rem;
      font-size: .75rem;
      transition: color 0.3s ease;
      height: 0.5rem;
      height: 2.85rem;
      position: relative;
      top: 0px;
      z-index: 20; }
    .top-bar-section li.on-canvas-cart .cart-button__currency {
      display: none; }
    .top-bar-section li.on-canvas-cart .checkout-button {
      display: none !important; }
    .top-bar-section li.on-canvas-cart .cart-button__quantity {
      font-size: 0.5rem;
      min-width: 0.6rem;
      width: auto;
      padding: 0.04rem 0.2rem;
      height: 0.6rem;
      line-height: 0.6rem;
      position: absolute;
      z-index: 20;
      border-radius: 2px;
      top: 1.5rem;
      left: 0.78906rem;
      background: #ee0101;
      color: rgba(255, 255, 255, 0.9); }
    .top-bar-section li.on-canvas-cart a.cart-button--empty {
      background: none !important; }
      .top-bar-section li.on-canvas-cart a.cart-button--empty:after {
        color: transparent;
        content: '.';
        display: block;
        background: #fe5252;
        position: absolute;
        border-radius: 50%;
        top: 1.5625rem;
        right: 50%;
        left: auto;
        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;
        z-index: 0; }
      .top-bar-section li.on-canvas-cart a.cart-button--empty .cart-button__icon {
        opacity: 1; }
      .top-bar-section li.on-canvas-cart a.cart-button--empty:hover:after {
        -webkit-transform: scale(1);
        -moz-transform: scale(1);
        -ms-transform: scale(1);
        transform: scale(1);
        opacity: 1; }
      .top-bar-section li.on-canvas-cart a.cart-button--empty .cart-button__text, .top-bar-section li.on-canvas-cart a.cart-button--empty .cart-button__quantity {
        display: none; }

.top-bar-section ul li.level-0, .top-bar-section ul li.parent, .top-bar-section ul li.parent ul, .top-bar-section ul li.parent ul li, .top-bar-section ul li.product-search__element {
  float: none; }

.top-bar-section ul li.level-0 {
  border-bottom-width: 0px !important; }

.top-bar-section ul li.parent {
  position: relative; }

.top-bar-section ul li.parent ul {
  position: absolute !important; }

.setting__select {
  opacity: 0;
  right: 0px; }
  .setting__select input[type=submit], .setting__select .button {
    top: 0px; }

.top-bar-section #main-menu .main-nav__item {
  border-bottom-color: rgba(0, 0, 0, 0.1);
  background: #ffffff;
  -webkit-transition: margin 600ms cubic-bezier(0.19, 1, 0.22, 1);
  -moz-transition: margin 600ms cubic-bezier(0.19, 1, 0.22, 1);
  transition: margin 600ms cubic-bezier(0.19, 1, 0.22, 1);
  /**
         * 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
         */ }
  .top-bar-section #main-menu .main-nav__item a {
    -webkit-transition: padding 600ms cubic-bezier(0.19, 1, 0.22, 1), background 0.3s ease, color 0.3s ease, box-shadow 0.3s ease;
    -moz-transition: padding 600ms cubic-bezier(0.19, 1, 0.22, 1), background 0.3s ease, color 0.3s ease, box-shadow 0.3s ease;
    transition: padding 600ms cubic-bezier(0.19, 1, 0.22, 1), background 0.3s ease, color 0.3s ease, box-shadow 0.3s ease;
    outline: none;
    padding: 0 1rem;
    display: block;
    color: black;
    background: #ffffff; }
    .top-bar-section #main-menu .main-nav__item a .disabled {
      cursor: default; }
  .top-bar-section #main-menu .main-nav__item.level-0 > a {
    box-shadow: inset 0 3px 0 rgba(254, 82, 82, 0); }
    .top-bar-section #main-menu .main-nav__item.level-0 > a:focus, .top-bar-section #main-menu .main-nav__item.level-0 > a:hover, .top-bar-section #main-menu .main-nav__item.level-0 > a.highlighted {
      color: black !important;
      background: #ffffff !important;
      box-shadow: inset 0 3px 0 #fe5252; }
  .top-bar-section #main-menu .main-nav__item.level-0.current > a, .top-bar-section #main-menu .main-nav__item.level-0.selected > a {
    box-shadow: inset 0 3px 0 #fe5252; }
  .top-bar-section #main-menu .main-nav__item .level-1 a {
    box-shadow: inset 3px 0 0 rgba(254, 82, 82, 0); }
    .top-bar-section #main-menu .main-nav__item .level-1 a:focus, .top-bar-section #main-menu .main-nav__item .level-1 a:hover, .top-bar-section #main-menu .main-nav__item .level-1 a.highlighted {
      color: #292929 !important;
      background: #fe5252 !important;
      box-shadow: inset 3px 0 0 rgba(254, 82, 82, 0); }
  .top-bar-section #main-menu .main-nav__item .level-1.current > a, .top-bar-section #main-menu .main-nav__item .level-1 .current > a, .top-bar-section #main-menu .main-nav__item .level-1.selected > a, .top-bar-section #main-menu .main-nav__item .level-1 .selected > a {
    box-shadow: inset 3px 0 0 #fe5252; }
  .top-bar-section #main-menu .main-nav__item.parent.level-0 {
    -webkit-transform-style: preserve3d;
    -moz-transform-style: preserve3d;
    -ms-transform-style: preserve3d;
    -o-transform-style: preserve3d;
    transform-style: preserve3d;
    perspective: 800px;
    -webkit-perspective: 800px;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden; }
  .top-bar-section #main-menu .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-property: transition-property-names(transform, color, "webkit");
    -moz-transition-property: transition-property-names(transform, color, "moz");
    transition-property: transition-property-names(transform, color, false);
    -webkit-transition-duration: 400ms, 150ms;
    -moz-transition-duration: 400ms, 150ms;
    transition-duration: 400ms, 150ms;
    -webkit-transition-timing-function: ease, ease;
    -moz-transition-timing-function: ease, ease;
    transition-timing-function: ease, ease; }
  .top-bar-section #main-menu .main-nav__item.parent > a ~ ul {
    box-shadow: rgba(0, 0, 0, 0.25) 0 2px 6px; }
  .top-bar-section #main-menu .main-nav__item.parent > a.highlighted ~ ul {
    border: none;
    clip: auto;
    height: auto;
    margin: 0;
    overflow: visible;
    padding: 0;
    position: relative;
    width: auto;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
    -webkit-transform-style: preserve3d;
    -moz-transform-style: preserve3d;
    -ms-transform-style: preserve3d;
    -o-transform-style: preserve3d;
    transform-style: preserve3d; }
    .top-bar-section #main-menu .main-nav__item.parent > a.highlighted ~ ul.animate-in {
      -webkit-transform-origin: 50% 0%;
      -moz-transform-origin: 50% 0%;
      -ms-transform-origin: 50% 0%;
      -o-transform-origin: 50% 0%;
      transform-origin: 50% 0%;
      -webkit-animation: menu-rotate-top 300ms ease-out;
      -o-animation: menu-rotate-top 300ms ease-out;
      animation: menu-rotate-top 300ms ease-out; }
  .top-bar-section #main-menu .main-nav__item.parent > a.highlighted:after {
    -webkit-transform: rotatex(180deg);
    -moz-transform: rotatex(180deg);
    -ms-transform: rotatex(180deg);
    transform: rotatex(180deg); }
  .top-bar-section #main-menu .main-nav__item.parent.level-1 > a.highlighted ~ ul.animate-in, .top-bar-section #main-menu .main-nav__item.level-1 .parent > a.highlighted ~ ul.animate-in {
    -webkit-transform-origin: 0% 0%;
    -moz-transform-origin: 0% 0%;
    -ms-transform-origin: 0% 0%;
    -o-transform-origin: 0% 0%;
    transform-origin: 0% 0%;
    -webkit-transform-style: preserve3d;
    -moz-transform-style: preserve3d;
    -ms-transform-style: preserve3d;
    -o-transform-style: preserve3d;
    transform-style: preserve3d;
    -webkit-animation: menu-rotate-left 300ms ease-out;
    -o-animation: menu-rotate-left 300ms ease-out;
    animation: menu-rotate-left 300ms ease-out; }
  .top-bar-section #main-menu .main-nav__item.parent.level-1 > 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: "";
    line-height: inherit !important;
    -webkit-transform: rotate(270deg) translateZ(0);
    -moz-transform: rotate(270deg) translateZ(0);
    -ms-transform: rotate(270deg) translateZ(0);
    transform: rotate(270deg) translateZ(0);
    -webkit-transform-origin: 70%;
    -moz-transform-origin: 70%;
    -ms-transform-origin: 70%;
    -o-transform-origin: 70%;
    transform-origin: 70%; }
  .top-bar-section #main-menu .main-nav__item.parent.level-1 > a.highlighted:after {
    -webkit-transform: rotate(270deg) translateZ(0) rotatex(180deg);
    -moz-transform: rotate(270deg) translateZ(0) rotatex(180deg);
    -ms-transform: rotate(270deg) translateZ(0) rotatex(180deg);
    transform: rotate(270deg) translateZ(0) rotatex(180deg); }
  .top-bar-section #main-menu .main-nav__item .level-1 a {
    height: auto !important;
    line-height: 1.2rem !important;
    padding: 0.5rem 1rem !important; }
  .top-bar-section #main-menu .main-nav__item .level-2 > a, .top-bar-section #main-menu .main-nav__item .level-2 ul > a {
    background-clip: border-box;
    border-left: 1px solid rgba(0, 0, 0, 0.1); }
  .top-bar-section #main-menu .main-nav__item.parent.level-2 > a.highlighted ~ ul.animate-in, .top-bar-section #main-menu .main-nav__item.level-2 .parent > a.highlighted ~ ul.animate-in {
    -webkit-transform-origin: 0% 0%;
    -moz-transform-origin: 0% 0%;
    -ms-transform-origin: 0% 0%;
    -o-transform-origin: 0% 0%;
    transform-origin: 0% 0%;
    -webkit-transform-style: preserve3d;
    -moz-transform-style: preserve3d;
    -ms-transform-style: preserve3d;
    -o-transform-style: preserve3d;
    transform-style: preserve3d;
    -webkit-animation: menu-rotate-left 300ms ease-out;
    -o-animation: menu-rotate-left 300ms ease-out;
    animation: menu-rotate-left 300ms ease-out; }
  .top-bar-section #main-menu .main-nav__item.parent.level-2 > 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: "";
    line-height: inherit !important;
    -webkit-transform: rotate(270deg) translateZ(0);
    -moz-transform: rotate(270deg) translateZ(0);
    -ms-transform: rotate(270deg) translateZ(0);
    transform: rotate(270deg) translateZ(0);
    -webkit-transform-origin: 70%;
    -moz-transform-origin: 70%;
    -ms-transform-origin: 70%;
    -o-transform-origin: 70%;
    transform-origin: 70%; }
  .top-bar-section #main-menu .main-nav__item.parent.level-2 > a.highlighted:after {
    -webkit-transform: rotate(270deg) translateZ(0) rotatex(180deg);
    -moz-transform: rotate(270deg) translateZ(0) rotatex(180deg);
    -ms-transform: rotate(270deg) translateZ(0) rotatex(180deg);
    transform: rotate(270deg) translateZ(0) rotatex(180deg); }
  .top-bar-section #main-menu .main-nav__item .level-2 a {
    height: auto !important;
    line-height: 1.2rem !important;
    padding: 0.5rem 1rem !important; }
  .top-bar-section #main-menu .main-nav__item .level-3 > a, .top-bar-section #main-menu .main-nav__item .level-3 ul > a {
    background-clip: border-box;
    border-left: 1px solid rgba(0, 0, 0, 0.1); }
  .top-bar-section #main-menu .main-nav__item.parent.level-3 > a.highlighted ~ ul.animate-in, .top-bar-section #main-menu .main-nav__item.level-3 .parent > a.highlighted ~ ul.animate-in {
    -webkit-transform-origin: 0% 0%;
    -moz-transform-origin: 0% 0%;
    -ms-transform-origin: 0% 0%;
    -o-transform-origin: 0% 0%;
    transform-origin: 0% 0%;
    -webkit-transform-style: preserve3d;
    -moz-transform-style: preserve3d;
    -ms-transform-style: preserve3d;
    -o-transform-style: preserve3d;
    transform-style: preserve3d;
    -webkit-animation: menu-rotate-left 300ms ease-out;
    -o-animation: menu-rotate-left 300ms ease-out;
    animation: menu-rotate-left 300ms ease-out; }
  .top-bar-section #main-menu .main-nav__item.parent.level-3 > 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: "";
    line-height: inherit !important;
    -webkit-transform: rotate(270deg) translateZ(0);
    -moz-transform: rotate(270deg) translateZ(0);
    -ms-transform: rotate(270deg) translateZ(0);
    transform: rotate(270deg) translateZ(0);
    -webkit-transform-origin: 70%;
    -moz-transform-origin: 70%;
    -ms-transform-origin: 70%;
    -o-transform-origin: 70%;
    transform-origin: 70%; }
  .top-bar-section #main-menu .main-nav__item.parent.level-3 > a.highlighted:after {
    -webkit-transform: rotate(270deg) translateZ(0) rotatex(180deg);
    -moz-transform: rotate(270deg) translateZ(0) rotatex(180deg);
    -ms-transform: rotate(270deg) translateZ(0) rotatex(180deg);
    transform: rotate(270deg) translateZ(0) rotatex(180deg); }
  .top-bar-section #main-menu .main-nav__item .level-3 a {
    height: auto !important;
    line-height: 1.2rem !important;
    padding: 0.5rem 1rem !important; }
  .top-bar-section #main-menu .main-nav__item .level-4 > a, .top-bar-section #main-menu .main-nav__item .level-4 ul > a {
    background-clip: border-box;
    border-left: 1px solid rgba(0, 0, 0, 0.1); }
  .top-bar-section #main-menu .main-nav__item.parent.level-4 > a.highlighted ~ ul.animate-in, .top-bar-section #main-menu .main-nav__item.level-4 .parent > a.highlighted ~ ul.animate-in {
    -webkit-transform-origin: 0% 0%;
    -moz-transform-origin: 0% 0%;
    -ms-transform-origin: 0% 0%;
    -o-transform-origin: 0% 0%;
    transform-origin: 0% 0%;
    -webkit-transform-style: preserve3d;
    -moz-transform-style: preserve3d;
    -ms-transform-style: preserve3d;
    -o-transform-style: preserve3d;
    transform-style: preserve3d;
    -webkit-animation: menu-rotate-left 300ms ease-out;
    -o-animation: menu-rotate-left 300ms ease-out;
    animation: menu-rotate-left 300ms ease-out; }
  .top-bar-section #main-menu .main-nav__item.parent.level-4 > 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: "";
    line-height: inherit !important;
    -webkit-transform: rotate(270deg) translateZ(0);
    -moz-transform: rotate(270deg) translateZ(0);
    -ms-transform: rotate(270deg) translateZ(0);
    transform: rotate(270deg) translateZ(0);
    -webkit-transform-origin: 70%;
    -moz-transform-origin: 70%;
    -ms-transform-origin: 70%;
    -o-transform-origin: 70%;
    transform-origin: 70%; }
  .top-bar-section #main-menu .main-nav__item.parent.level-4 > a.highlighted:after {
    -webkit-transform: rotate(270deg) translateZ(0) rotatex(180deg);
    -moz-transform: rotate(270deg) translateZ(0) rotatex(180deg);
    -ms-transform: rotate(270deg) translateZ(0) rotatex(180deg);
    transform: rotate(270deg) translateZ(0) rotatex(180deg); }
  .top-bar-section #main-menu .main-nav__item .level-4 a {
    height: auto !important;
    line-height: 1.2rem !important;
    padding: 0.5rem 1rem !important; }
  .top-bar-section #main-menu .main-nav__item .level-5 > a, .top-bar-section #main-menu .main-nav__item .level-5 ul > a {
    background-clip: border-box;
    border-left: 1px solid rgba(0, 0, 0, 0.1); }
  .top-bar-section #main-menu .main-nav__item.parent.level-5 > a.highlighted ~ ul.animate-in, .top-bar-section #main-menu .main-nav__item.level-5 .parent > a.highlighted ~ ul.animate-in {
    -webkit-transform-origin: 0% 0%;
    -moz-transform-origin: 0% 0%;
    -ms-transform-origin: 0% 0%;
    -o-transform-origin: 0% 0%;
    transform-origin: 0% 0%;
    -webkit-transform-style: preserve3d;
    -moz-transform-style: preserve3d;
    -ms-transform-style: preserve3d;
    -o-transform-style: preserve3d;
    transform-style: preserve3d;
    -webkit-animation: menu-rotate-left 300ms ease-out;
    -o-animation: menu-rotate-left 300ms ease-out;
    animation: menu-rotate-left 300ms ease-out; }
  .top-bar-section #main-menu .main-nav__item.parent.level-5 > 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: "";
    line-height: inherit !important;
    -webkit-transform: rotate(270deg) translateZ(0);
    -moz-transform: rotate(270deg) translateZ(0);
    -ms-transform: rotate(270deg) translateZ(0);
    transform: rotate(270deg) translateZ(0);
    -webkit-transform-origin: 70%;
    -moz-transform-origin: 70%;
    -ms-transform-origin: 70%;
    -o-transform-origin: 70%;
    transform-origin: 70%; }
  .top-bar-section #main-menu .main-nav__item.parent.level-5 > a.highlighted:after {
    -webkit-transform: rotate(270deg) translateZ(0) rotatex(180deg);
    -moz-transform: rotate(270deg) translateZ(0) rotatex(180deg);
    -ms-transform: rotate(270deg) translateZ(0) rotatex(180deg);
    transform: rotate(270deg) translateZ(0) rotatex(180deg); }
  .top-bar-section #main-menu .main-nav__item .level-5 a {
    height: auto !important;
    line-height: 1.2rem !important;
    padding: 0.5rem 1rem !important; }
  .top-bar-section #main-menu .main-nav__item .level-6 > a, .top-bar-section #main-menu .main-nav__item .level-6 ul > a {
    background-clip: border-box;
    border-left: 1px solid rgba(0, 0, 0, 0.1); }

#logo-row {
  padding: 0px; }

#extra-nav form {
  padding: 10px 0; }

#extra-nav form input {
  border-bottom-left-radius: 4px;
  border-top-left-radius: 4px;
  border-color: rgba(0, 0, 0, 0.3);
  border-right-width: 0px;
  background: rgba(128, 128, 128, 0.25);
  box-shadow: none; }
  #extra-nav form input:focus {
    border-color: #fe5252; }

#extra-nav form button {
  border-bottom-right-radius: 4px;
  border-top-right-radius: 4px;
  background: rgba(128, 128, 128, 0.25);
  border: 1px solid rgba(0, 0, 0, 0.3);
  border-left-width: 0px; }

#logo {
  height: 5rem;
  margin-right: 10px; }
  #logo h1 {
    font-size: 46px;
    font-weight: bold;
    text-transform: uppercase;
    line-height: 5rem;
    color: #000; }
  #logo img {
    max-height: 5rem; }

.productlist__product__description {
  padding: 20px; }

/* Pioneer override */
.productlist__product__button-wrap.button-readon {
  display: inline-block !important; }

.equal-height-column {
  padding: 1.9375rem; }

.productlist__product:last-child .productlist__product-wrap:before {
  display: none; }

path#discount__banner {
  fill: #9d0101 !important; }

path#discount__over {
  fill: #fe5252 !important; }

.breadcrumbs > *:before {
  content: "\27E9"; }

.page__title {
  border-bottom-color: rgba(0, 0, 0, 0.1); }

.productlist__product-wrap {
  overflow: visible;
  position: relative;
  border-width: 0px;
  border-radius: 4px;
  -webkit-transition: box-shadow 150ms ease;
  -moz-transition: box-shadow 150ms ease;
  transition: box-shadow 150ms ease;
  box-shadow: rgba(0, 0, 0, 0.25) 0 0 1px, rgba(0, 0, 0, 0.2) 0 0 10px 0px; }
  .productlist__product-wrap .equal-height-column__image {
    overflow: hidden;
    background: white;
    padding: 8px;
    border-radius: 2px;
    border-bottom-left-radius: 0px;
    border-bottom-right-radius: 0px; }
  .productlist__product-wrap .productlist__product__button-wrap {
    -webkit-transition-property: transition-property-names(transform, opacity, "webkit");
    -moz-transition-property: transition-property-names(transform, opacity, "moz");
    transition-property: transition-property-names(transform, opacity, false);
    -webkit-transition-duration: 150ms;
    -moz-transition-duration: 150ms;
    transition-duration: 150ms;
    -webkit-transition-timing-function: ease;
    -moz-transition-timing-function: ease;
    transition-timing-function: ease;
    -webkit-transform: translate(0, -3.75rem);
    -moz-transform: translate(0, -3.75rem);
    -ms-transform: translate(0, -3.75rem);
    transform: translate(0, -3.75rem);
    opacity: 0;
    margin-left: 0; }
    .productlist__product-wrap .productlist__product__button-wrap .productlist__product__button {
      box-shadow: inset rgba(0, 0, 255, 0.3) 0 0 0 1px; }
  .productlist__product-wrap .offers {
    padding: 0 .9375rem .9375rem;
    text-align: left; }
    .productlist__product-wrap .offers .price {
      transition: transform 150ms ease, opacity 150ms ease;
      opacity: 1;
      -webkit-transform: translate(0px, 0px);
      -moz-transform: translate(0px, 0px);
      -ms-transform: translate(0px, 0px);
      transform: translate(0px, 0px); }
    .productlist__product-wrap .offers .price--original {
      font-size: 12px;
      position: relative;
      clear: both;
      color: #333333;
      text-shadow: rgba(0, 0, 0, 0.3) 0 -1px 0;
      background-color: transparent !important;
      -webkit-transform: translate(0px, 10px);
      -moz-transform: translate(0px, 10px);
      -ms-transform: translate(0px, 10px);
      transform: translate(0px, 10px);
      -webkit-transition-property: transition-property-names(transform, opacity, "webkit");
      -moz-transition-property: transition-property-names(transform, opacity, "moz");
      transition-property: transition-property-names(transform, opacity, false);
      -webkit-transition-duration: 0.3s, 0.3s;
      -moz-transition-duration: 0.3s, 0.3s;
      transition-duration: 0.3s, 0.3s;
      z-index: 2; }
    .productlist__product-wrap .offers .discount {
      top: 0;
      right: 0;
      text-align: right;
      line-height: 3.9rem;
      font-size: 1.15rem;
      -webkit-transform: none;
      -moz-transform: none;
      -ms-transform: none;
      transform: none; }
      .productlist__product-wrap .offers .discount .discount-badge {
        width: 94px;
        height: 94px;
        padding: 0;
        -webkit-transition: all 300ms ease;
        -moz-transition: all 300ms ease;
        transition: all 300ms ease;
        color: #fe5252;
        position: absolute;
        right: 7px;
        top: 11px;
        top: -6px;
        right: -10px; }
      .productlist__product-wrap .offers .discount .discount-count {
        -webkit-transition: color 300ms ease;
        -moz-transition: color 300ms ease;
        transition: color 300ms ease;
        display: block;
        position: relative;
        z-index: 100;
        color: white;
        top: -0.875rem;
        right: -0.4375rem;
        padding-right: 0;
        text-align: center;
        -webkit-transform: rotate(45deg);
        -moz-transform: rotate(45deg);
        -ms-transform: rotate(45deg);
        transform: rotate(45deg);
        -webkit-transform-origin: bottom;
        -moz-transform-origin: bottom;
        -ms-transform-origin: bottom;
        -o-transform-origin: bottom;
        transform-origin: bottom;
        text-shadow: rgba(0, 0, 0, 0.2) 1px 1px 0px; }
        @media only screen and (max-width: 39.9375em) {
          .productlist__product-wrap .offers .discount .discount-count {
            top: -0.54688rem;
            right: -0.27344rem;
            font-size: 112.5%; } }
  .productlist__product-wrap .readon-icon__container {
    display: none !important; }
    .productlist__product-wrap .readon-icon__container .icon-search.readon-icon {
      display: none !important; }
  .productlist__product-wrap:hover {
    position: relative;
    z-index: 2;
    box-shadow: rgba(0, 0, 0, 0.25) 0 0 1px, rgba(0, 0, 0, 0.25) 0 20px 60px 0px; }
    .productlist__product-wrap:hover .productlist__product__button-wrap {
      background: white;
      border-top-left-radius: 0px;
      border-top-right-radius: 0px;
      opacity: 1;
      -webkit-transform: translate(0px, -5px) !important;
      -moz-transform: translate(0px, -5px) !important;
      -ms-transform: translate(0px, -5px) !important;
      transform: translate(0px, -5px) !important;
      box-shadow: rgba(0, 0, 0, 0.25) 0 0 1px, rgba(0, 0, 0, 0.25) 0 20px 60px 0px;
      z-index: 10000;
      position: absolute; }
    .productlist__product-wrap:hover .readon-icon__container {
      display: none !important;
      background: transparent; }
      .productlist__product-wrap:hover .readon-icon__container .icon-search.readon-icon {
        display: none; }

.equal-height-column-innerwrap {
  padding: 0px; }

.equal-height-column__readon {
  margin-left: 0px; }

.productlist__product__headline {
  text-transform: none;
  text-overflow: ellipsis;
  overflow: hidden;
  white-space: nowrap;
  padding: 0px;
  padding-top: 0.5rem;
  margin: 0 .9375rem 0;
  text-align: left;
  position: relative;
  -webkit-transition: margin 300ms ease;
  -moz-transition: margin 300ms ease;
  transition: margin 300ms ease; }

.on-sale .productlist__product-wrap::after {
  display: none; }

.productlist__product-wrap .price {
  font-size: 1.25rem; }

html.svg #footer {
  border-width: 0px;
  background-position: top left;
  background-repeat: repeat-x;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='100' height='1'><rect fill='#dfdfdb' x='0' y='0' width='100' height='0.5'/></svg>"); }

/*#end {
	background: $end-bg-img;
}*/

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5jc3MiLCJzb3VyY2VzIjpbImJhc2Uuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L19fZGVidWcvX21hc3Rlci5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvZm91bmRhdGlvbi9fZnVuY3Rpb25zLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9fZnVuY3Rpb25zLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9mdW5jdGlvbnMvX2NvbG9yLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9mdW5jdGlvbnMvX21hdGguc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2Z1bmN0aW9ucy9tYXRoL19jb25zdGFudHMuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2Z1bmN0aW9ucy9tYXRoL19hYnMuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2Z1bmN0aW9ucy9tYXRoL19leHAuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2Z1bmN0aW9ucy9tYXRoL19mYWN0LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9mdW5jdGlvbnMvbWF0aC9fZnJleHAuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2Z1bmN0aW9ucy9tYXRoL19sZGV4cC5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvZnVuY3Rpb25zL21hdGgvX2xvZy5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvZnVuY3Rpb25zL21hdGgvX2x1bWluYW5jZS1wcmVjYWxjLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9mdW5jdGlvbnMvbWF0aC9fcG93LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9mdW5jdGlvbnMvbWF0aC9fbnRoLXJvb3Quc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2Z1bmN0aW9ucy9tYXRoL19zcXJ0LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9mdW5jdGlvbnMvbWF0aC9fdHJpZ29ub21ldHJ5LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9mdW5jdGlvbnMvX3JlcGxhY2UtbnRoLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9mdW5jdGlvbnMvX3N0cmluZ3Muc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2Z1bmN0aW9ucy9zdHJpbmdzL19zdHItZXhwbG9kZS5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvZnVuY3Rpb25zL191bml0cy5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L3N0eWxlcy9fZm9udHMuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9zZXR0aW5ncy9fYmFzZS1zZXR0aW5ncy5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvX21peGlucy5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbWl4aW5zL19hY2Nlc3NpYmlsaXR5LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9taXhpbnMvX2NlbnRlci5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbWl4aW5zL19oYWlybGluZS1ib3JkZXIuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L21peGlucy9fbnRoLWNoaWxkcmVuLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9taXhpbnMvX3RyYW5zZm9ybS5zY3NzIiwiX2NvbG9yLXNldHRpbmdzLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvc2V0dGluZ3MvX2Jhc2UtY29sb3Itc2V0dGluZ3Muc2NzcyIsIl9zZXR0aW5ncy5zY3NzIiwiX2ltcG9ydHMuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9zdHlsZXMvX2NvbG9yLWNvbnRyYXN0LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9fbm9ybWFsaXplLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9ib3VyYm9uL3NldHRpbmdzL19wcmVmaXhlci5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvYm91cmJvbi9hZGRvbnMvX3ByZWZpeGVyLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9ib3VyYm9uL2NzczMvX2FuaW1hdGlvbi5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvYm91cmJvbi9jc3MzL19iYWNrZmFjZS12aXNpYmlsaXR5LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9ib3VyYm9uL2NzczMvX2JvcmRlci1yYWRpdXMuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL2JvdXJib24vY3NzMy9fZmxleC1ib3guc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL2JvdXJib24vY3NzMy9fa2V5ZnJhbWVzLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9ib3VyYm9uL2NzczMvX2xpbmVhci1ncmFkaWVudC5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvYm91cmJvbi9jc3MzL19wZXJzcGVjdGl2ZS5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvYm91cmJvbi9jc3MzL190cmFuc2Zvcm0uc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL2JvdXJib24vY3NzMy9fdHJhbnNpdGlvbi5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvZm91bmRhdGlvbi9jb21wb25lbnRzL19hbGVydC1ib3hlcy5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvZm91bmRhdGlvbi9jb21wb25lbnRzL19nbG9iYWwuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL2ZvdW5kYXRpb24vX2Z1bmN0aW9ucy5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvZm91bmRhdGlvbi9jb21wb25lbnRzL19ibG9jay1ncmlkLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9mb3VuZGF0aW9uL2NvbXBvbmVudHMvX2JyZWFkY3J1bWJzLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9mb3VuZGF0aW9uL2NvbXBvbmVudHMvX2Zvcm1zLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9mb3VuZGF0aW9uL2NvbXBvbmVudHMvX2J1dHRvbnMuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL2ZvdW5kYXRpb24vY29tcG9uZW50cy9fZ3JpZC5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvZm91bmRhdGlvbi9jb21wb25lbnRzL19pbmxpbmUtbGlzdHMuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL2ZvdW5kYXRpb24vY29tcG9uZW50cy9fdGFibGVzLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9mb3VuZGF0aW9uL2NvbXBvbmVudHMvX3RhYnMuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL2ZvdW5kYXRpb24vY29tcG9uZW50cy9fZ3JpZC5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvZm91bmRhdGlvbi9jb21wb25lbnRzL190aHVtYnMuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL2ZvdW5kYXRpb24vY29tcG9uZW50cy9fdHlwZS5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvZm91bmRhdGlvbi9jb21wb25lbnRzL192aXNpYmlsaXR5LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvX2ljb25zLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvX2ljb24tdmFycy5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L3N0eWxlcy9fbGluay12aXNpYmlsaXR5LWZpeC5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L2xheW91dC9fZ3JpZC1leHRyYXMuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9sYXlvdXQvX2Jhc2Uuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9sYXlvdXQvX2hlYWRlci5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L2xheW91dC9oZWFkZXIvX3NldHRpbmdzLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvbGF5b3V0L2hlYWRlci9fdXRpbHMtbmF2LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvbGF5b3V0L2hlYWRlci9fb2ZmY2FudmFzLW5hdi5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L2xheW91dC9oZWFkZXIvX2xvZ28tbGluZS5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L2xheW91dC9oZWFkZXIvX21haW4tbmF2LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvbGF5b3V0L19tYWluLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvbGF5b3V0L21haW4vX3RvcGJhbm5lcnMuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9sYXlvdXQvbWFpbi9fcHJvZHVjdGxpc3Quc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9sYXlvdXQvbWFpbi9wcm9kdWN0bGlzdC9fc3R5bGUuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9sYXlvdXQvbWFpbi9wcm9kdWN0bGlzdC9fYnV5LWJ1dHRvbnMuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9sYXlvdXQvbWFpbi9jYXRlZ29yeWxpc3QvX3N0eWxlLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvbGF5b3V0L21haW4vX3BhZ2Uuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9sYXlvdXQvZm9vdGVyL19mb290ZXIuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9fYWxlcnQtYm94ZXMuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9fYW5pbWF0aW9uLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvX2Jlc3RzZWxsZXIuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9fYmxvY2staW1hZ2UtZ3JpZC5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L19ibG9ja3Muc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9fYmxvY2tzLWJhbm5lcnMuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9fYm9yZGVyZWQuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9fYnJlYWRjcnVtYnMuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9fYnV0dG9ucy5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L19ieHNsaWRlci5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L19jYXJ0X2J1dHRvbi5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L19jYXJ0LWJ1dHRvbi1mdWxsLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvX2NhcnQtYnV0dG9uLXNpbXBsZS5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L19jaGVja291dC5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L19jaGVja291dF9rY28uc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL2ZvdW5kYXRpb24vY29tcG9uZW50cy9fcmV2ZWFsLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9jb21wb25lbnRzL19yZWFjdC1zZWxlY3Quc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2NvbXBvbmVudHMvcmVhY3Qtc2VsZWN0L3NlbGVjdC5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvY29tcG9uZW50cy9yZWFjdC1zZWxlY3QvY29udHJvbC5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvY29tcG9uZW50cy9yZWFjdC1zZWxlY3Qvc3Bpbm5lci5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvY29tcG9uZW50cy9yZWFjdC1zZWxlY3QvbWl4aW5zLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9jb21wb25lbnRzL3JlYWN0LXNlbGVjdC9tZW51LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9jb21wb25lbnRzL3JlYWN0LXNlbGVjdC9tdWx0aS5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L19jb21tZW50cy5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L19jb29raWUtbm90aWNlLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvX2VxdWFsLWhlaWdodC1jb2x1bW5zLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvX2ZhbmN5Ym94LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvX2Zvcm1zLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvX2tsYXJuYS5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L19sYW5ndWFnZS1jdXJyZW5jeS5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L19wYWdlcy5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L3BhZ2VzL19jYXJ0LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvcGFnZXMvX2Zyb250cGFnZS5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L3BhZ2VzL19yZWNlaXB0LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvcGFnZXMvX3JlZ2lzdGVyLWFjY291bnQuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9wYWdlcy9fd2lzaGxpc3Quc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9fcGFnaW5hdGlvbi5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L19wcm9kdWN0LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvX3Byb2R1Y3Qtc2VhcmNoLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvX3JhdGluZy5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L19yZWFkb24taWNvbi1jZW50ZXJlZC1vbi1ob3Zlci5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L19zZWFyY2gtYm94LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9ib3VyYm9uL2NzczMvX3BsYWNlaG9sZGVyLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvX3NsaWRlci5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L19zb2NpYWwtYnV0dG9ucy5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L19zcGlubmVyLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9sZWdhY3kvX3NwbGl0bWVudS5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L190YWJsZXMuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2xlZ2FjeS9fdGFicy5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L190aGVtZWQtbmF2aWdhdGlvbi5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L190eXBvZ3JhcGh5LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9fY29tbW9uLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9jb21wb25lbnRzL19zdGlja3ktZm9vdGVyLW1lbnUuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2NvbXBvbmVudHMvX3NsaWRlLWluLW1lbnUuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2NvbXBvbmVudHMvX3NlYXJjaC1tb2RhbC5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvYmxvY2tzL19wYWdpbmF0aW9uLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9ibG9ja3MvbmF2L19ob3Jpem9udGFsLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9ibG9ja3MvbmF2L19uYXYuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2NvbXBvbmVudHMvX2hvdmVyZnguc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL2JvdXJib24vY3NzMy9fZmlsdGVyLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9jb21wb25lbnRzL2hvdmVyZngvX2Jhc2Uuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL3F1aWNrZml4L2NvbXBvbmVudHMvaG92ZXJmeC9fYmx1ci5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvY29tcG9uZW50cy9ob3ZlcmZ4L19jb3Zlci5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvY29tcG9uZW50cy9ob3ZlcmZ4L19maWdjYXB0aW9uLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9jb21wb25lbnRzL2hvdmVyZngvX2xldml0YXRlLnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9xdWlja2ZpeC9jb21wb25lbnRzL2hvdmVyZngvX3Nob3d0aXRsZS5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvY29tcG9uZW50cy9ob3ZlcmZ4L190aWx0LnNjc3MiLCIuLi8uLi8uLi8uLi9hc3NldHMvc2Nzcy9mb3VuZGF0aW9uL2NvbXBvbmVudHMvX3N1Yi1uYXYuc2NzcyIsIi4uLy4uLy4uLy4uL2Fzc2V0cy9zY3NzL2ZvdW5kYXRpb24vY29tcG9uZW50cy9fdG9wLWJhci5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvZm91bmRhdGlvbi9jb21wb25lbnRzL19mb3Jtcy5zY3NzIiwiLi4vLi4vLi4vLi4vYXNzZXRzL3Njc3MvcXVpY2tmaXgvbGVnYWN5L19hY2Nlc3NpYmlsaXR5LnNjc3MiLCJjb21wb25lbnRzL19wcm9kdWN0LnNjc3MiLCJjb21wb25lbnRzL19zbGlkZXIuc2NzcyIsImNvbXBvbmVudHMvX3RhYnMuc2NzcyIsImNvbXBvbmVudHMvX3RvcC1iYXIuc2NzcyIsIm1haW4vcHJvZHVjdGxpc3QvX3N0eWxlLnNjc3MiLCJtYWluL19wYWdlLnNjc3MiXSwic291cmNlc0NvbnRlbnQiOlsiQGltcG9ydCAncXVpY2tmaXgvX19kZWJ1Zy9tYXN0ZXInO1xuXG4kZm9udC1jb21ibzogXCJRdWlja3NhbmQ7ICdIZWx2ZXRpY2EgTmV1ZScsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7ICdRdWlja3NhbmQnLCBzYW5zLXNlcmlmXCIgIWRlZmF1bHQ7IC8vIE11c3QgYmUgc2V0IGJlZm9yZSBwaW9uZWVyL3N0eWxlcy9mb250cyBpcyBsb2FkZWRcblxuLy8gTmVjZXNzYXJ5IGZvciBjb2xvciBmdW5jdGlvbnMgYW5kIHRoZSBsaWtlXG5AaW1wb3J0IFwiZm91bmRhdGlvbi9mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvc3R5bGVzL2ZvbnRzXCI7XG5AaW1wb3J0IFwicXVpY2tmaXgvbGVnYWN5L3NldHRpbmdzL2Jhc2Utc2V0dGluZ3NcIjtcblxuQGltcG9ydCBcInF1aWNrZml4L21peGluc1wiO1xuXG5AaW1wb3J0IFwiY29sb3Itc2V0dGluZ3NcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvc2V0dGluZ3MvYmFzZS1jb2xvci1zZXR0aW5nc1wiO1xuXG5AaW1wb3J0IFwic2V0dGluZ3NcIjtcblxuQGltcG9ydCBcImltcG9ydHNcIjtcblxuQGltcG9ydCBcImZvdW5kYXRpb24vY29tcG9uZW50cy9zdWItbmF2XCI7XG5AaW1wb3J0IFwiZm91bmRhdGlvbi9jb21wb25lbnRzL3RvcC1iYXJcIjtcblxuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS9hY2Nlc3NpYmlsaXR5XCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9wcm9kdWN0XCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9zbGlkZXJcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL3RhYnNcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL3RvcC1iYXJcIjtcbkBpbXBvcnQgXCJtYWluL3Byb2R1Y3RsaXN0L3N0eWxlXCI7XG5AaW1wb3J0IFwibWFpbi9wYWdlXCI7XG4iLCIvLyBUaGlzIGlzIGlmIHlvdSB3YW50IHRvIHBsYXkgbWFlc3Ryb1xuLy8kcHJpbWFyeS1jb2xvcjogIzgwODA4MDtcbi8vQGltcG9ydCAnYmFzZSc7XG5cbi8vJGNvbnRlbnQtYmc6ICM3QTdBN0E7XG4vLyRjYWxsLXRvLWFjdGlvbi1jb2xvcjogI2JmNTcyZTsiLCIvLyBGb3VuZGF0aW9uIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLyBUaGlzIGlzIHRoZSBkZWZhdWx0IGh0bWwgYW5kIGJvZHkgZm9udC1zaXplIGZvciB0aGUgYmFzZSByZW0gdmFsdWUuXG4kcmVtLWJhc2U6IDE2cHggIWRlZmF1bHQ7XG5cbi8vIElNUE9SVCBPTkNFXG4vLyBXZSB1c2UgdGhpcyB0byBwcmV2ZW50IHN0eWxlcyBmcm9tIGJlaW5nIGxvYWRlZCBtdWx0aXBsZSB0aW1lcyBmb3IgY29tcG9uZW50cyB0aGF0IHJlbHkgb24gb3RoZXIgY29tcG9uZW50cy5cbiRtb2R1bGVzOiAoKSAhZGVmYXVsdDtcbkBtaXhpbiBleHBvcnRzKCRuYW1lKSB7XG4gIC8vIEltcG9ydCBmcm9tIGdsb2JhbCBzY29wZVxuICAkbW9kdWxlczogJG1vZHVsZXMgIWdsb2JhbDtcbiAgLy8gQ2hlY2sgaWYgYSBtb2R1bGUgaXMgYWxyZWFkeSBvbiB0aGUgbGlzdFxuICAkbW9kdWxlX2luZGV4OiBpbmRleCgkbW9kdWxlcywgJG5hbWUpO1xuICBAaWYgKCgkbW9kdWxlX2luZGV4ID09IG51bGwpIG9yICgkbW9kdWxlX2luZGV4ID09IGZhbHNlKSkge1xuICAgICRtb2R1bGVzOiBhcHBlbmQoJG1vZHVsZXMsICRuYW1lKSAhZ2xvYmFsO1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vXG4vLyBAZnVuY3Rpb25zXG4vL1xuXG5cbi8vIFJBTkdFU1xuLy8gV2UgdXNlIHRoZXNlIGZ1bmN0aW9ucyB0byBkZWZpbmUgcmFuZ2VzIGZvciB2YXJpb3VzIHRoaW5ncywgbGlrZSBtZWRpYSBxdWVyaWVzLlxuQGZ1bmN0aW9uIGxvd2VyLWJvdW5kKCRyYW5nZSl7XG4gIEBpZiBsZW5ndGgoJHJhbmdlKSA8PSAwIHtcbiAgICBAcmV0dXJuIDA7XG4gIH1cbiAgQHJldHVybiBudGgoJHJhbmdlLDEpO1xufVxuXG5AZnVuY3Rpb24gdXBwZXItYm91bmQoJHJhbmdlKSB7XG4gIEBpZiBsZW5ndGgoJHJhbmdlKSA8IDIge1xuICAgIEByZXR1cm4gOTk5OTk5OTk5OTk5O1xuICB9XG4gIEByZXR1cm4gbnRoKCRyYW5nZSwgMik7XG59XG5cbi8vIFNUUklQIFVOSVRcbi8vIEl0IHN0cmlwcyB0aGUgdW5pdCBvZiBtZWFzdXJlIGFuZCByZXR1cm5zIGl0XG5AZnVuY3Rpb24gc3RyaXAtdW5pdCgkbnVtKSB7XG4gIEByZXR1cm4gJG51bSAvICgkbnVtICogMCArIDEpO1xufVxuXG4vLyBURVhUIElOUFVUIFRZUEVTXG5cbkBmdW5jdGlvbiB0ZXh0LWlucHV0cyggJHR5cGVzOiBhbGwsICRzZWxlY3RvcjogaW5wdXQgKSB7XG5cbiAgICAkcmV0dXJuOiAoKTtcblxuICAgICRhbGwtdGV4dC1pbnB1dC10eXBlczpcbiAgICAgIHRleHRcbiAgICAgIHBhc3N3b3JkXG4gICAgICBkYXRlXG4gICAgICBkYXRldGltZVxuICAgICAgZGF0ZXRpbWUtbG9jYWxcbiAgICAgIG1vbnRoXG4gICAgICB3ZWVrXG4gICAgICBlbWFpbFxuICAgICAgbnVtYmVyXG4gICAgICBzZWFyY2hcbiAgICAgIHRlbFxuICAgICAgdGltZVxuICAgICAgdXJsXG4gICAgICBjb2xvclxuICAgICAgdGV4dGFyZWE7XG5cbiAgICBAaWYgJHR5cGVzID09IGFsbCB7ICR0eXBlczogJGFsbC10ZXh0LWlucHV0LXR5cGVzOyB9XG5cbiAgICBAZWFjaCAkdHlwZSBpbiAkdHlwZXMge1xuICAgICAgICBAaWYgJHR5cGUgPT0gdGV4dGFyZWEge1xuICAgICAgICAgICAgQGlmICRzZWxlY3RvciA9PSBpbnB1dCB7XG4gICAgICAgICAgICAgICRyZXR1cm46IGFwcGVuZCgkcmV0dXJuLCB1bnF1b3RlKCcjeyR0eXBlfScpLCBjb21tYSlcbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAkcmV0dXJuOiBhcHBlbmQoJHJldHVybiwgdW5xdW90ZSgnI3skdHlwZX0jeyRzZWxlY3Rvcn0nKSwgY29tbWEpXG4gICAgICAgICAgICB9XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgJHJldHVybjogYXBwZW5kKCRyZXR1cm4sIHVucXVvdGUoJyN7JHNlbGVjdG9yfVt0eXBlPVwiI3skdHlwZX1cIl0nKSwgY29tbWEpXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAcmV0dXJuICRyZXR1cm47XG5cbn1cblxuLy8gQ09OVkVSVCBUTyBSRU1cbkBmdW5jdGlvbiBjb252ZXJ0LXRvLXJlbSgkdmFsdWUsICRiYXNlLXZhbHVlOiAkcmVtLWJhc2UpICB7XG4gICR2YWx1ZTogc3RyaXAtdW5pdCgkdmFsdWUpIC8gc3RyaXAtdW5pdCgkYmFzZS12YWx1ZSkgKiAxcmVtO1xuICBAaWYgKCR2YWx1ZSA9PSAwcmVtKSB7ICR2YWx1ZTogMDsgfSAvLyBUdXJuIDByZW0gaW50byAwXG4gIEByZXR1cm4gJHZhbHVlO1xufVxuXG5AZnVuY3Rpb24gZGF0YSgkYXR0cikge1xuICBAaWYgJG5hbWVzcGFjZSB7XG4gICAgQHJldHVybiAnW2RhdGEtJyArICRuYW1lc3BhY2UgKyAnLScgKyAkYXR0ciArICddJztcbiAgfVxuXG4gIEByZXR1cm4gJ1tkYXRhLScgKyAkYXR0ciArICddJztcbn1cblxuLy8gUkVNIENBTENcblxuLy8gTmV3IFN5bnRheCwgYWxsb3dzIHRvIG9wdGlvbmFsbHkgY2FsY3VsYXRlIG9uIGEgZGlmZmVyZW50IGJhc2UgdmFsdWUgdG8gY291bnRlciBjb21wb3VuZGluZyBlZmZlY3Qgb2YgcmVtJ3MuXG4vLyBDYWxsIHdpdGggMSwgMiwgMyBvciA0IHBhcmFtZXRlcnMsICdweCcgaXMgbm90IHJlcXVpcmVkIGJ1dCBzdXBwb3J0ZWQ6XG4vL1xuLy8gICByZW0tY2FsYygxMCAyMCAzMHB4IDQwKTtcbi8vXG4vLyBTcGFjZSBkZWxpbWl0ZWQsIGlmIHlvdSB3YW50IHRvIGRlbGltaXQgdXNpbmcgY29tbWEncywgd3JhcCBpdCBpbiBhbm90aGVyIHBhaXIgb2YgYnJhY2tldHNcbi8vXG4vLyAgIHJlbS1jYWxjKCgxMCwgMjAsIDMwLCA0MHB4KSk7XG4vL1xuLy8gT3B0aW9uYWxseSBjYWxsIHdpdGggYSBkaWZmZXJlbnQgYmFzZSAoZWc6IDhweCkgdG8gY2FsY3VsYXRlIHJlbS5cbi8vXG4vLyAgIHJlbS1jYWxjKDE2cHggMzJweCA0OHB4LCA4cHgpO1xuLy9cbi8vIElmIHlvdSByZXF1aXJlIHRvIGNvbW1hIHNlcGFyYXRlIHlvdXIgbGlzdFxuLy9cbi8vICAgcmVtLWNhbGMoKDE2cHgsIDMycHgsIDQ4KSwgOHB4KTtcblxuQGZ1bmN0aW9uIHJlbS1jYWxjKCR2YWx1ZXMsICRiYXNlLXZhbHVlOiAkcmVtLWJhc2UpIHtcbiAgJG1heDogbGVuZ3RoKCR2YWx1ZXMpO1xuXG4gIEBpZiAkbWF4ID09IDEgeyBAcmV0dXJuIGNvbnZlcnQtdG8tcmVtKG50aCgkdmFsdWVzLCAxKSwgJGJhc2UtdmFsdWUpOyB9XG5cbiAgJHJlbVZhbHVlczogKCk7XG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJG1heCB7XG4gICAgJHJlbVZhbHVlczogYXBwZW5kKCRyZW1WYWx1ZXMsIGNvbnZlcnQtdG8tcmVtKG50aCgkdmFsdWVzLCAkaSksICRiYXNlLXZhbHVlKSk7XG4gIH1cbiAgQHJldHVybiAkcmVtVmFsdWVzO1xufVxuXG4vLyBPTEQgRU0gQ0FMQ1xuLy8gRGVwcmVjYXRlZDogV2UnbGwgZHJvcCBzdXBwb3J0IGZvciB0aGlzIGluIDUuMS4wLCB1c2UgcmVtLWNhbGMoKVxuQGZ1bmN0aW9uIGVtQ2FsYygkdmFsdWVzKXtcbiAgQHJldHVybiByZW0tY2FsYygkdmFsdWVzKTtcbn1cblxuLy8gT0xEIEVNIENBTENcbi8vIERlcHJlY2F0ZWQ6IFdlJ2xsIGRyb3Agc3VwcG9ydCBmb3IgdGhpcyBpbiA1LjEuMCwgdXNlIHJlbS1jYWxjKClcbkBmdW5jdGlvbiBlbS1jYWxjKCR2YWx1ZXMpe1xuICBAcmV0dXJuIHJlbS1jYWxjKCR2YWx1ZXMpO1xufVxuIiwiQGltcG9ydCBcImZ1bmN0aW9ucy9jb2xvclwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9tYXRoXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL3JlcGxhY2UtbnRoXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL3N0cmluZ3NcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvdW5pdHNcIjsiLCIvKipcbiAqIEt1ZG9zIHRvIGh0dHA6Ly9tYWRlYnltaWtlLmNvbS5hdS93cml0aW5nL2FjY2Vzc2libGUtY29udHJhc3Qtd2l0aC1sZXNzLWFuZC1zYXNzL1xuICovXG5cbkBpbXBvcnQgXCJtYXRoXCI7XG5cbi8vIEdldCB0aGUgbHVtaW5vc2l0eSBvZiBhIGNvbG9yIG9uIGEgc2NhbGUgZnJvbSAwIChkYXJrZXN0KSB0byAxMDAgKGxpZ2h0ZXN0KVxuQGZ1bmN0aW9uIGx1bWEoJGNvbG9yKXtcbiAgICAvLyBUaGFua3Mgdm94cGVsbGkgZm9yIGEgdmVyeSBjb25jaXNlIGltcGxlbWVudGF0aW9uIG9mIGx1bWluYW5jZSBtZWFzdXJlIGluIHNhc3NcbiAgICAvLyBBZGFwdGVkIGZyb206IGh0dHBzOi8vZ2lzdC5naXRodWIuY29tL3ZveHBlbGxpLzYzMDQ4MTJcbiAgICAkcmdiYTogcmVkKCRjb2xvciksIGdyZWVuKCRjb2xvciksIGJsdWUoJGNvbG9yKTtcbiAgICAkcmdiYTI6ICgpO1xuXG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAzIHtcbiAgICAgICAgJHJnYjogbnRoKCRyZ2JhLCAkaSk7XG4gICAgICAgICRyZ2I6IG1heCgwLCByb3VuZCgkcmdiKSk7XG4gICAgICAgICRyZ2I6IG1pbigyNTUsIHJvdW5kKCRyZ2IpKTtcbiAgICAgICAgLy8gT2xkIEFsZ29yaXRobTpcbiAgICAgICAgLy8gJHJnYjogJHJnYiAvIDI1NTtcbiAgICAgICAgLy8gJHJnYjogaWYoJHJnYiA8IC4wMzkyOCwgJHJnYiAvIDEyLjkyLCBwb3coKCRyZ2IgKyAuMDU1KSAvIDEuMDU1LCAyLjQpKTtcbiAgICAgICAgLy9cbiAgICAgICAgLy8gUmVwbGFjZWQgdGhpcyB3aXRoIExPVkVMWSBwcmVjYWxjdWxhdGVkIG51bWJlcnMsIGZvciBzcGVlZCwgc2luY2UgcG93KHgsIDIuNCkgaXMgc2xvdyBhcyBIRUxMIGluIFNhc3MuXG4gICAgICAgICRyZ2I6IG50aCgkbHVtaW5hbmNlLXByZWNhbGMsICRyZ2IgKyAxKTtcbiAgICAgICAgJHJnYmEyOiBhcHBlbmQoJHJnYmEyLCAkcmdiKTtcbiAgICB9XG5cbiAgICBAcmV0dXJuICguMjEyNiAqIG50aCgkcmdiYTIsIDEpICsgLjcxNTIgKiBudGgoJHJnYmEyLCAyKSArIDAuMDcyMiAqIG50aCgkcmdiYTIsIDMpKSoxMDA7XG59XG5cbi8vIFJldHVybnMgYSBudW1iZXIgZnJvbSAxIChsb3cgY29udHJhc3QpIHRvIDIxIChoaWdoIGNvbnRyYXN0KVxuQGZ1bmN0aW9uIGNvbnRyYXN0LXJhdGlvKCRjb2xvcjEsICRjb2xvcjIpIHtcbiAgICAkbHVtYTE6IGx1bWEoJGNvbG9yMSkgKyA1O1xuICAgICRsdW1hMjogbHVtYSgkY29sb3IyKSArIDU7XG4gICAgJHJhdGlvOiAkbHVtYTEgLyAkbHVtYTI7XG4gICAgQGlmICRsdW1hMSA8ICRsdW1hMiB7XG4gICAgICAgICRyYXRpbzogMSAvICRyYXRpbztcbiAgICB9XG5cbiAgICBAcmV0dXJuICRyYXRpbztcbn1cblxuLyoqXG4gKiBJcyAkY29sb3IxIGxpZ2h0ZXIgdGhhbiAkY29sb3IyP1xuICovXG5AZnVuY3Rpb24gaXMtbGlnaHRlcigkY29sb3IxLCAkY29sb3IyKSB7XG4gICAgQHJldHVybiBsdW1hKCRjb2xvcjEpID4gbHVtYSgkY29sb3IyKTtcbn1cblxuLyoqXG4gKiBJcyAkY29sb3IxIGRhcmtlciB0aGFuICRjb2xvcjI/XG4gKi9cbkBmdW5jdGlvbiBpcy1kYXJrZXIoJGNvbG9yMSwgJGNvbG9yMikge1xuICAgIEByZXR1cm4gbHVtYSgkY29sb3IxKSA8IGx1bWEoJGNvbG9yMik7XG59XG5cbi8qKlxuICogRmluZCBiZXN0IGxpZ2h0bmVzcyBhZGp1c3QgbWV0aG9kXG4gKlxuICogSWRlYWxseSB3ZSBzaG91bGQgb25seSBpbmNyZWFzZSB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSBjb2xvcnMuIElmICRjb2xvcjFcbiAqIGlzIGxpZ2h0ZXIgdGhhbiAkY29sb3IyIGJ1dCB0aGUgY29udHJhc3QgaXMgbm90IGFjY2Vzc2libGUsIHRoZW4gd2Ugc2hvdWxkIHRyeSB0b1xuICogbWFrZSBpdCBsaWdodGVyIHJhdGhlciB0aGFuIGRhcmtlci5cbiAqL1xuQGZ1bmN0aW9uIGZpbmQtbGlnaHRuZXNzLWFkanVzdC1tZXRob2QoJGNvbG9yMSwgJGNvbG9yMiwgJHRocmVzaG9sZDogJGNvbG9yLWNvbnRyYXN0LXRocmVzaG9sZCkge1xuICAgICRjb250cmFzdC10by13aGl0ZTogY29udHJhc3QtcmF0aW8oI2ZmZmZmZiwgJGNvbG9yMik7XG4gICAgJGNvbnRyYXN0LXRvLWJsYWNrOiBjb250cmFzdC1yYXRpbygjMDAwMDAwLCAkY29sb3IyKTtcblxuICAgIEBpZiBpcy1saWdodGVyKCRjb2xvcjEsICRjb2xvcjIpIHtcbiAgICAgICAgQGlmICRjb250cmFzdC10by13aGl0ZSA+PSAkdGhyZXNob2xkIHsgLy8gbGlnaHRlbiBhIGxpZ2h0ZXIgY29sb3Igd2lsbCB3b3JrXG4gICAgICAgICAgICBAcmV0dXJuICdsaWdodGVuJztcbiAgICAgICAgfSBAZWxzZWlmICRjb250cmFzdC10by1ibGFjayA+PSAkdGhyZXNob2xkIHtcbiAgICAgICAgICAgIEByZXR1cm4gJ2Rhcmtlbic7XG4gICAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgICAgQGlmICRjb250cmFzdC10by1ibGFjayA+PSAkdGhyZXNob2xkIHsgLy8gZGFya2VuIGEgZGFya2VyIGNvbG9yIHdpbGwgd29ya1xuICAgICAgICAgICAgQHJldHVybiAnZGFya2VuJztcbiAgICAgICAgfSBAZWxzZWlmICRjb250cmFzdC10by13aGl0ZSA+PSAkdGhyZXNob2xkIHtcbiAgICAgICAgICAgIEByZXR1cm4gJ2xpZ2h0ZW4nO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gTm8gYWNjZXB0YWJsZSBjb250cmFzdCBmb3VuZCwgZ28gd2l0aCB0aGUgYmVzdCBvbmVcbiAgICBAaWYgKCRjb250cmFzdC10by13aGl0ZSA+ICRjb250cmFzdC10by1ibGFjaykge1xuICAgICAgICBAcmV0dXJuICNmZmY7XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIEByZXR1cm4gIzAwMDtcbiAgICB9XG59XG5cbi8vIExpZ2h0ZW4gb3IgZGFya2VuICRjb2xvcjEgdW50aWwgaXQgaGFzIHN1ZmZpY2llbnQgY29udHJhc3QgdG8gJGNvbG9yMlxuLy8gVE9ETzogUmVtb3ZlICRpdGVyYXRpb25zIHZhcmlibGUsIGZpbmQgYSBtb3JlIGNsZXZlciB3YXkgdG8gY2hlY2sgaWYgd2UgYXJlIGF0IHJvYWRzIGVuZFxuQGZ1bmN0aW9uIGFjY2Vzc2libGUtbHVtaW5hbmNlKCRjb2xvcjEsICRjb2xvcjIsICR0aHJlc2hvbGQ6ICRjb2xvci1jb250cmFzdC10aHJlc2hvbGQsICR0b2xlcmFuY2U6IDAuMjUpIHtcblxuICAgIC8vIFJldHVybiBkaXJlY3RseSBpZiBjb250cmFzdCBpcyBnb29kXG4gICAgJGNhbmRpZGF0ZS1jb250cmFzdDogY29udHJhc3QtcmF0aW8oJGNvbG9yMSwgJGNvbG9yMik7XG4gICAgQGlmICRjYW5kaWRhdGUtY29udHJhc3QgPj0gJHRocmVzaG9sZCB7XG4gICAgICAgIEByZXR1cm4gJGNvbG9yMTtcbiAgICB9XG5cbiAgICAvLyBGaW5kIG91dCBpZiB3ZSBuZWVkIHRvIGRhcmtlbiBvciBsaWdodGVuXG4gICAgJG1ldGhvZDogZmluZC1saWdodG5lc3MtYWRqdXN0LW1ldGhvZCgkY29sb3IxLCAkY29sb3IyKTtcblxuICAgIC8vIElmIHdlIHdvbid0IGJlIGFibGUgdG8gZmluZCBhbiBhY2Nlc3NpYmxlIGNvbnRyYXN0IGF0IGFsbCwganVzdCByZXR1cm4gYmxhY2sgb3Igd2hpdGUgZGlyZWN0bHlcbiAgICBAaWYgJG1ldGhvZCAhPSAnbGlnaHRlbicgYW5kICRtZXRob2QgIT0gJ2Rhcmtlbicge1xuICAgICAgICBAcmV0dXJuICRtZXRob2Q7XG4gICAgfVxuXG4gICAgLy8gQmluYXJ5IHNlYXJjaCB1bnRpbCB3ZSBmaW5kIGEgZ29vZCBsaWdodG5lc3MgY2hhbmdlXG4gICAgJHJhbmdlLXN0YXJ0OiAxJTtcbiAgICAkcmFuZ2UtZW5kOiAxMDAlO1xuXG4gICAgJGl0ZXJhdGlvbnMgOiAwO1xuICAgICRjYW5kaWRhdGU6IHVuZGVmaW5lZDtcblxuICAgIC8vIFdoaWxlIGNvbnRyYXN0IGlzIG91dCBvZiByYW5nZSwga2VlcCBzZWFyY2hpbmdcbiAgICBAd2hpbGUgJGl0ZXJhdGlvbnMgPCA3IGFuZCAoKCRjYW5kaWRhdGUtY29udHJhc3QgPCAkdGhyZXNob2xkKSBvciAoJGNhbmRpZGF0ZS1jb250cmFzdCA+ICR0aHJlc2hvbGQgKyAkdG9sZXJhbmNlKSkge1xuICAgICAgICAkcmFuZ2UtbWlkOiAkcmFuZ2UtZW5kIC0gcm91bmQoKCgkcmFuZ2UtZW5kIC0gJHJhbmdlLXN0YXJ0KS8yKSk7XG5cbiAgICAgICAgJGNhbmRpZGF0ZTogaWYoJG1ldGhvZCA9PSAnbGlnaHRlbicsIGxpZ2h0ZW4oJGNvbG9yMSwgJHJhbmdlLW1pZCksIGRhcmtlbigkY29sb3IxLCAkcmFuZ2UtbWlkKSk7XG5cbiAgICAgICAgJGNhbmRpZGF0ZS1jb250cmFzdDogY29udHJhc3QtcmF0aW8oJGNhbmRpZGF0ZSwgJGNvbG9yMik7XG5cbiAgICAgICAgQGlmICgkY2FuZGlkYXRlLWNvbnRyYXN0ID49ICR0aHJlc2hvbGQpIGFuZCAoJGNhbmRpZGF0ZS1jb250cmFzdCA8PSAkdGhyZXNob2xkICsgJHRvbGVyYW5jZSkge1xuICAgICAgICAgICAgQHJldHVybiAkY2FuZGlkYXRlO1xuICAgICAgICB9IEBlbHNlaWYgJGNhbmRpZGF0ZS1jb250cmFzdCA8ICR0aHJlc2hvbGQge1xuICAgICAgICAgICAgJHJhbmdlLXN0YXJ0OiBtaW4oJHJhbmdlLW1pZCArIDElLCAxMDAlKTtcbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAkcmFuZ2UtZW5kOiBtYXgoJHJhbmdlLW1pZCAtIDElLCAxJSk7XG4gICAgICAgIH1cblxuICAgICAgICAkaXRlcmF0aW9uczogJGl0ZXJhdGlvbnMgKyAxO1xuICAgIH1cblxuICAgIEByZXR1cm4gJGNhbmRpZGF0ZTtcbn1cblxuLy8gRmluZCB3aGljaCAkYmdjb2xvciB0byB1c2Ugd2l0aCBnaXZlbiB0ZXh0IGNvbG9yICRjb2xvclxuLy8gRGVmYXVsdHMgdG8gbGlnaHRlciBvciBkYXJrZXIgKG1vbm9jaHJvbWUpIGJhY2tncm91bmRcbkBmdW5jdGlvbiB0ZXh0LWNvbnRyYXN0KCRjb2xvciwgJGJnY29sb3I6ICRjb2xvciwgJHRocmVzaG9sZDogNC41KSB7XG4gICAgQHJldHVybiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkYmdjb2xvciwgJGNvbG9yLCAkdGhyZXNob2xkKTtcbn0iLCIvLyBCaWcga3Vkb3MgdG86IGh0dHBzOi8vZ2l0aHViLmNvbS90ZXJrZWwvbWF0aHNhc3NcblxuQGltcG9ydCBcIm1hdGgvY29uc3RhbnRzXCI7XG5AaW1wb3J0IFwibWF0aC9hYnNcIjtcbkBpbXBvcnQgXCJtYXRoL2V4cFwiO1xuQGltcG9ydCBcIm1hdGgvZmFjdFwiO1xuQGltcG9ydCBcIm1hdGgvZnJleHBcIjtcbkBpbXBvcnQgXCJtYXRoL2xkZXhwXCI7XG5AaW1wb3J0IFwibWF0aC9sb2dcIjtcbkBpbXBvcnQgXCJtYXRoL2x1bWluYW5jZS1wcmVjYWxjXCI7XG5AaW1wb3J0IFwibWF0aC9wb3dcIjtcbkBpbXBvcnQgXCJtYXRoL250aC1yb290XCI7XG5AaW1wb3J0IFwibWF0aC9zcXJ0XCI7XG5AaW1wb3J0IFwibWF0aC90cmlnb25vbWV0cnlcIjsiLCIkRTogICAgIDIuNzE4MjgxODI4NDU5MDQ1O1xuJFBJOiAgICAzLjE0MTU5MjY1MzU4OTc5MztcbiRMTjI6ICAgMC42OTMxNDcxODA1NTk5NDUzO1xuJFNRUlQyOiAxLjQxNDIxMzU2MjM3MzA5NTE7IiwiIiwiLy8gUmV0dXJucyBFXngsIHdoZXJlIHggaXMgdGhlIGFyZ3VtZW50LCBhbmQgRSBpcyBFdWxlcidzIGNvbnN0YW50LCB0aGUgYmFzZSBvZiB0aGUgbmF0dXJhbCBsb2dhcml0aG1zLlxuLy8gQHBhcmFtIHtOdW1iZXJ9ICR4XG4vLyBAZXhhbXBsZVxuLy8gICAgIGV4cCgxKSAgLy8gMi43MTgyOFxuLy8gICAgIGV4cCgtMSkgLy8gMC4zNjc4OFxuQGZ1bmN0aW9uIGV4cCgkeCkge1xuICAgICRyZXQ6IDA7XG4gICAgQGZvciAkbiBmcm9tIDAgdG8gMjQge1xuICAgICAgICAkcmV0OiAkcmV0ICsgcG93KCR4LCAkbikgLyBmYWN0KCRuKTtcbiAgICB9XG4gICAgQHJldHVybiAkcmV0O1xufSIsIi8vIFJldHVybnMgdGhlIGZhY3RvcmlhbCBvZiBhIG5vbi1uZWdhdGl2ZSBpbnRlZ2VyLlxuLy8gQHBhcmFtIHtOdW1iZXJ9ICR4IEEgbm9uLW5lZ2F0aXZlIGludGVnZXIuXG4vLyBAcmV0dXJuIHtOdW1iZXJ9XG4vLyBAZXhhbXBsZVxuLy8gICAgIGZhY3QoMCkgLy8gMVxuLy8gICAgIGZhY3QoOCkgLy8gNDAzMjBcbkBmdW5jdGlvbiBmYWN0KCR4KSB7XG4gICAgQGlmICR4IDwgMCBvciAgJHggIT0gZmxvb3IoJHgpIHtcbiAgICAgICAgQHdhcm4gXCJBcmd1bWVudCBmb3IgYGZhY3QoKWAgbXVzdCBiZSBhIHBvc2l0aXZlIGludGVnZXIuXCI7XG4gICAgICAgIEByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgJHJldDogMTtcbiAgICBAd2hpbGUgJHggPiAwIHtcbiAgICAgICAgJHJldDogJHJldCAqICR4O1xuICAgICAgICAkeDogJHggLSAxO1xuICAgIH1cbiAgICBAcmV0dXJuICRyZXQ7XG59IiwiLy8gUmV0dXJucyBhIHR3by1lbGVtZW50IGxpc3QgY29udGFpbmluZyB0aGUgbm9ybWFsaXplZCBmcmFjdGlvbiBhbmQgZXhwb25lbnQgb2YgbnVtYmVyLlxuLy8gQHBhcmFtIHtOdW1iZXJ9ICR4XG4vLyBAcmV0dXJuIHtMaXN0fSBmcmFjdGlvbiwgZXhwb25lbnRcbkBmdW5jdGlvbiBmcmV4cCgkeCkge1xuICAgICRleHA6IDA7XG4gICAgQGlmICR4IDwgMCB7XG4gICAgICAgICR4OiAkeCAqIC0xO1xuICAgIH1cbiAgICBAaWYgJHggPCAwLjUge1xuICAgICAgICBAd2hpbGUgJHggPCAwLjUge1xuICAgICAgICAgICAgJHg6ICR4ICogMjtcbiAgICAgICAgICAgICRleHA6ICRleHAgLSAxO1xuICAgICAgICB9XG4gICAgfSBAZWxzZSBpZiAkeCA+PSAxIHtcbiAgICAgICAgQHdoaWxlICR4ID49IDEge1xuICAgICAgICAgICAgJHg6ICR4IC8gMjtcbiAgICAgICAgICAgICRleHA6ICRleHAgKyAxO1xuICAgICAgICB9XG4gICAgfVxuICAgIEByZXR1cm4gJHgsICRleHA7XG59IiwiLy8gUmV0dXJucyAkeCAqIDJeJGV4cFxuLy8gQHBhcmFtIHtOdW1iZXJ9ICR4XG4vLyBAcGFyYW0ge051bWJlcn0gJGV4cFxuQGZ1bmN0aW9uIGxkZXhwKCR4LCAkZXhwKSB7XG4gICAgJGI6IGlmKCRleHAgPj0gMCwgMiwgMSAvIDIpO1xuICAgIEBpZiAkZXhwIDwgMCB7XG4gICAgICAgICRleHA6ICRleHAgKiAtMTtcbiAgICB9XG4gICAgQHdoaWxlICRleHAgPiAwIHtcbiAgICAgICAgQGlmICRleHAgJSAyID09IDEge1xuICAgICAgICAgICAgJHg6ICR4ICogJGI7XG4gICAgICAgIH1cbiAgICAgICAgJGI6ICRiICogJGI7XG4gICAgICAgICRleHA6IGZsb29yKCRleHAgKiAwLjUpO1xuICAgIH1cbiAgICBAcmV0dXJuICR4O1xufSIsIi8vIFJldHVybnMgdGhlIG5hdHVyYWwgbG9nYXJpdGhtIG9mIGEgbnVtYmVyLlxuLy8gQHBhcmFtIHtOdW1iZXJ9ICR4XG4vLyBAZXhhbXBsZVxuLy8gICAgIGxvZygyKSAgLy8gMC42OTMxNVxuLy8gICAgIGxvZygxMCkgLy8gMi4zMDI1OVxuQGZ1bmN0aW9uIGxvZygkeCkge1xuICAgIEBpZiAkeCA8PSAwIHtcbiAgICAgICAgQHJldHVybiAwIC8gMDtcbiAgICB9XG4gICAgJGs6IG50aChmcmV4cCgkeCAvICRTUVJUMiksIDIpO1xuICAgICR4OiAkeCAvIGxkZXhwKDEsICRrKTtcbiAgICAkeDogKCR4IC0gMSkgLyAoJHggKyAxKTtcbiAgICAkeDI6ICR4ICogJHg7XG4gICAgJGk6IDE7XG4gICAgJHM6ICR4O1xuICAgICRzcDogbnVsbDtcbiAgICBAd2hpbGUgJHNwICE9ICRzIHtcbiAgICAgICAgJHg6ICR4ICogJHgyO1xuICAgICAgICAkaTogJGkgKyAyO1xuICAgICAgICAkc3A6ICRzO1xuICAgICAgICAkczogJHMgKyAkeCAvICRpO1xuICAgIH1cbiAgICBAcmV0dXJuICRMTjIgKiAkayArIDIgKiAkcztcbn0iLCIvLyBVc2VmdWwgT05MWSB3aGVuIGNhbGN1bGF0aW5nIGxpZ2h0bmVzcyBvbiBhIGNvbG9yLlxuLy8gXG4vLyBXZSBhcmUgcmVwbGFjaW5nIHRoaXMgY2FsY3VsYXRpb246XG4vLyAkcmdiOiBpZigkcmdiIDwgLjAzOTI4LCAkcmdiIC8gMTIuOTIsIHBvdygoJHJnYiArIC4wNTUpIC8gMS4wNTUsIDIuNCkpO1xuLy8gKCRyZ2IgPSBhIG51bWJlciBiZXR3ZWVuIDAgYW5kIDI1NSBkaXZpZGVkIGJ5IDI1NSkuXG5cbiRsdW1pbmFuY2UtcHJlY2FsYzogXG4wLCAwLjAwMDMwMzUyNjk4MzUsIDAuMDAwNjA3MDUzOTY3MSwgMC4wMDA5MTA1ODA5NTA2LCAwLjAwMTIxNDEwNzkzNCwgMC4wMDE1MTc2MzQ5MTgsIDAuMDAxODIxMTYxOTAxLCAwLjAwMjEyNDY4ODg4NSwgMC4wMDI0MjgyMTU4NjgsIDAuMDAyNzMxNzQyODUyLCBcbjAuMDAzMDM1MjY5ODM1LCAwLjAwMzM0NjUzNTc2NCwgMC4wMDM2NzY1MDczMjQsIDAuMDA0MDI0NzE3MDE4LCAwLjAwNDM5MTQ0MjAzNywgMC4wMDQ3NzY5NTM0ODEsIDAuMDA1MTgxNTE2NzAyLCAwLjAwNTYwNTM5MTYyNCwgMC4wMDYwNDg4MzMwMjMsIFxuMC4wMDY1MTIwOTA3OTMsIDAuMDA2OTk1NDEwMTg3LCAwLjAwNzQ5OTAzMjA0MywgMC4wMDgwMjMxOTI5ODUsIDAuMDA4NTY4MTI1NjE4LCAwLjAwOTEzNDA1ODcwMiwgMC4wMDk3MjEyMTczMiwgMC4wMTAzMjk4MjMwMywgMC4wMTA5NjAwOTQwMSwgXG4wLjAxMTYxMjI0NTE4LCAwLjAxMjI4NjQ4ODM2LCAwLjAxMjk4MzAzMjM0LCAwLjAxMzcwMjA4MzA1LCAwLjAxNDQ0Mzg0MzYsIDAuMDE1MjA4NTE0NDIsIDAuMDE1OTk2MjkzMzcsIDAuMDE2ODA3Mzc1NzUsIDAuMDE3NjQxOTU0NDksIFxuMC4wMTg1MDAyMjAxMywgMC4wMTkzODIzNjA5NiwgMC4wMjAyODg1NjMwNiwgMC4wMjEyMTkwMTAzOCwgMC4wMjIxNzM4ODQ3OSwgMC4wMjMxNTMzNjYxOCwgMC4wMjQxNTc2MzI0NSwgMC4wMjUxODY4NTk2MywgMC4wMjYyNDEyMjE4OSwgXG4wLjAyNzMyMDg5MTY0LCAwLjAyODQyNjAzOTUsIDAuMDI5NTU2ODM0NDQsIDAuMDMwNzEzNDQzNzMsIDAuMDMxODk2MDMzMDcsIDAuMDMzMTA0NzY2NTcsIDAuMDM0MzM5ODA2ODEsIDAuMDM1NjAxMzE0ODgsIDAuMDM2ODg5NDUwNCwgXG4wLjAzODIwNDM3MTYsIDAuMDM5NTQ2MjM1MjgsIDAuMDQwOTE1MTk2OTEsIDAuMDQyMzExNDEwNjIsIDAuMDQzNzM1MDI5MjYsIDAuMDQ1MTg2MjA0MzksIDAuMDQ2NjY1MDg2MzQsIDAuMDQ4MTcxODI0MjMsIDAuMDQ5NzA2NTY1OTgsIFxuMC4wNTEyNjk0NTgzNywgMC4wNTI4NjA2NDcwMiwgMC4wNTQ0ODAyNzY0NCwgMC4wNTYxMjg0OTAwNSwgMC4wNTc4MDU0MzAxOSwgMC4wNTk1MTEyMzgxNiwgMC4wNjEyNDYwNTQyMywgMC4wNjMwMTAwMTc2NSwgMC4wNjQ4MDMyNjY2OSwgXG4wLjA2NjYyNTkzODY0LCAwLjA2ODQ3ODE2OTg0LCAwLjA3MDM2MDA5NTcsIDAuMDcyMjcxODUwNjgsIDAuMDc0MjEzNTY4MzgsIDAuMDc2MTg1MzgxNDgsIDAuMDc4MTg3NDIxODEsIDAuMDgwMjE5ODIwMzEsIDAuMDgyMjgyNzA3MTMsIFxuMC4wODQzNzYyMTE1NCwgMC4wODY1MDA0NjIwNCwgMC4wODg2NTU1ODYyOSwgMC4wOTA4NDE3MTExOCwgMC4wOTMwNTg5NjI4NSwgMC4wOTUzMDc0NjY2MywgMC4wOTc1ODczNDcxNCwgMC4wOTk4OTg3MjgyNSwgMC4xMDIyNDE3MzMxLCBcbjAuMTA0NjE2NDg0MSwgMC4xMDcwMjMxMDMsIDAuMTA5NDYxNzEwOCwgMC4xMTE5MzI0Mjc4LCAwLjExNDQzNTM3MzgsIDAuMTE2OTcwNjY3OCwgMC4xMTk1Mzg0MjgsIDAuMTIyMTM4NzcyMiwgMC4xMjQ3NzE4MTc2LCAwLjEyNzQzNzY4MDQsIFxuMC4xMzAxMzY0NzY3LCAwLjEzMjg2ODMyMTYsIDAuMTM1NjMzMzI5NywgMC4xMzg0MzE2MTUsIDAuMTQxMjYzMjkxMSwgMC4xNDQxMjg0NzA5LCAwLjE0NzAyNzI2NjUsIDAuMTQ5OTU5Nzg5OCwgMC4xNTI5MjYxNTIsIDAuMTU1OTI2NDYzNywgXG4wLjE1ODk2MDgzNTEsIDAuMTYyMDI5Mzc1NiwgMC4xNjUxMzIxOTQ1LCAwLjE2ODI2OTQwMDIsIDAuMTcxNDQxMTAwNywgMC4xNzQ2NDc0MDM3LCAwLjE3Nzg4ODQxNiwgMC4xODExNjQyNDQyLCAwLjE4NDQ3NDk5NDUsIDAuMTg3ODIwNzcyMywgXG4wLjE5MTIwMTY4MjcsIDAuMTk0NjE3ODMwNCwgMC4xOTgwNjkzMTk2LCAwLjIwMTU1NjI1MzgsIDAuMjA1MDc4NzM2NCwgMC4yMDg2MzY4NzAxLCAwLjIxMjIzMDc1NzQsIDAuMjE1ODYwNTAwMSwgMC4yMTk1MjYxOTk3LCAwLjIyMzIyNzk1NzMsIFxuMC4yMjY5NjU4NzM1LCAwLjIzMDc0MDA0ODUsIDAuMjM0NTUwNTgyMiwgMC4yMzgzOTc1NzM4LCAwLjI0MjI4MTEyMjUsIDAuMjQ2MjAxMzI2NywgMC4yNTAxNTgyODQ3LCAwLjI1NDE1MjA5NDMsIDAuMjU4MTgyODUyOSwgMC4yNjIyNTA2NTc1LCBcbjAuMjY2MzU1NjA0OCwgMC4yNzA0OTc3OTEsIDAuMjc0Njc3MzEyMSwgMC4yNzg4OTQyNjM1LCAwLjI4MzE0ODc0MDQsIDAuMjg3NDQwODM3NywgMC4yOTE3NzA2NDk4LCAwLjI5NjEzODI3MDgsIDAuMzAwNTQzNzk0NCwgMC4zMDQ5ODczMTQxLCBcbjAuMzA5NDY4OTIyOCwgMC4zMTM5ODg3MTM0LCAwLjMxODU0Njc3ODEsIDAuMzIzMTQzMjA5MSwgMC4zMjc3NzgwOTgxLCAwLjMzMjQ1MTUzNjMsIDAuMzM3MTYzNjE1LCAwLjM0MTkxNDQyNDksIDAuMzQ2NzA0MDU2NCwgMC4zNTE1MzI1OTk1LCBcbjAuMzU2NDAwMTQ0MSwgMC4zNjEzMDY3Nzk4LCAwLjM2NjI1MjU5NTYsIDAuMzcxMjM3NjgwNSwgMC4zNzYyNjIxMjMsIDAuMzgxMzI2MDExNCwgMC4zODY0Mjk0MzM4LCAwLjM5MTU3MjQ3NzcsIDAuMzk2NzU1MjMwNywgMC40MDE5Nzc3Nzk4LCBcbjAuNDA3MjQwMjExOSwgMC40MTI1NDI2MTM1LCAwLjQxNzg4NTA3MDgsIDAuNDIzMjY3NjcsIDAuNDI4NjkwNDk2NiwgMC40MzQxNTM2MzYyLCAwLjQzOTY1NzE3MzgsIDAuNDQ1MjAxMTk0NSwgMC40NTA3ODU3ODI4LCAwLjQ1NjQxMTAyMzIsIFxuMC40NjIwNzY5OTk3LCAwLjQ2Nzc4Mzc5NjEsIDAuNDczNTMxNDk2MSwgMC40NzkzMjAxODMxLCAwLjQ4NTE0OTk0MDEsIDAuNDkxMDIwODQ5OCwgMC40OTY5MzI5OTUxLCAwLjUwMjg4NjQ1OCwgMC41MDg4ODEzMjA5LCAwLjUxNDkxNzY2NTQsIFxuMC41MjA5OTU1NzMyLCAwLjUyNzExNTEyNTcsIDAuNTMzMjc2NDA0LCAwLjUzOTQ3OTQ4OSwgMC41NDU3MjQ0NjE0LCAwLjU1MjAxMTQwMTUsIDAuNTU4MzQwMzg5NiwgMC41NjQ3MTE1MDU3LCAwLjU3MTEyNDgyOTUsIDAuNTc3NTgwNDQwNCwgXG4wLjU4NDA3ODQxNzksIDAuNTkwNjE4ODQwOSwgMC41OTcyMDE3ODg0LCAwLjYwMzgyNzMzODksIDAuNjEwNDk1NTcwOCwgMC42MTcyMDY1NjI0LCAwLjYyMzk2MDM5MTcsIDAuNjMwNzU3MTM2MywgMC42Mzc1OTY4NzQsIDAuNjQ0NDc5NjgyLCBcbjAuNjUxNDA1NjM3NCwgMC42NTgzNzQ4MTczLCAwLjY2NTM4NzI5ODMsIDAuNjcyNDQzMTU3LCAwLjY3OTU0MjQ2OTYsIDAuNjg2Njg1MzEyNCwgMC42OTM4NzE3NjEzLCAwLjcwMTEwMTg5MTksIDAuNzA4Mzc1Nzc5OSwgMC43MTU2OTM1MDA1LCBcbjAuNzIzMDU1MTI4OSwgMC43MzA0NjA3NDAxLCAwLjczNzkxMDQwODgsIDAuNzQ1NDA0MjA5NSwgMC43NTI5NDIyMTY4LCAwLjc2MDUyNDUwNDcsIDAuNzY4MTUxMTQ3MiwgMC43NzU4MjIyMTgzLCAwLjc4MzUzNzc5MTUsIDAuNzkxMjk3OTQwMywgXG4wLjc5OTEwMjczOCwgMC44MDY5NTIyNTc3LCAwLjgxNDg0NjU3MjIsIDAuODIyNzg1NzU0NCwgMC44MzA3Njk4NzY4LCAwLjgzODc5OTAxMTcsIDAuODQ2ODczMjMxNSwgMC44NTQ5OTI2MDgxLCAwLjg2MzE1NzIxMzUsIDAuODcxMzY3MTE5MiwgXG4wLjg3OTYyMjM5NjksIDAuODg3OTIzMTE3OSwgMC44OTYyNjkzNTM0LCAwLjkwNDY2MTE3NDQsIDAuOTEzMDk4NjUxOCwgMC45MjE1ODE4NTYzLCAwLjkzMDExMDg1ODQsIDAuOTM4Njg1NzI4NSwgMC45NDczMDY1MzY3LCAwLjk1NTk3MzM1MzIsIFxuMC45NjQ2ODYyNDc5LCAwLjk3MzQ0NTI5MDQsIDAuOTgyMjUwNTUwMywgMC45OTExMDIwOTcxLCAxOyIsIi8vIFJldHVybnMgYmFzZSB0byB0aGUgZXhwb25lbnQgcG93ZXIuXG4vLyBAcGFyYW0ge051bWJlcn0gJGJhc2UgVGhlIGJhc2UgbnVtYmVyXG4vLyBAcGFyYW0ge051bWJlcn0gJGV4cCBUaGUgZXhwb25lbnQgdG8gd2hpY2ggdG8gcmFpc2UgYmFzZVxuLy8gQHJldHVybiB7TnVtYmVyfVxuLy8gQGV4YW1wbGVcbi8vICAgICBwb3coNCwgMikgICAvLyAxNlxuLy8gICAgIHBvdyg0LCAtMikgIC8vIDAuMDYyNVxuLy8gICAgIHBvdyg0LCAwLjIpIC8vIDEuMzE5NTFcbi8vIEBmdW5jdGlvbiBwb3coJGJhc2UsICRleHApIHtcbi8vICAgICBAaWYgJGV4cCA9PSBmbG9vcigkZXhwKSB7XG4vLyAgICAgICAgICRyOiAxO1xuLy8gICAgICAgICAkczogMDtcbi8vICAgICAgICAgQGlmICRleHAgPCAwIHtcbi8vICAgICAgICAgICAgICRleHA6ICRleHAgKiAtMTtcbi8vICAgICAgICAgICAgICRzOiAxO1xuLy8gICAgICAgICB9XG4vLyAgICAgICAgIEB3aGlsZSAkZXhwID4gMCB7XG4vLyAgICAgICAgICAgICBAaWYgJGV4cCAlIDIgPT0gMSB7XG4vLyAgICAgICAgICAgICAgICAgJHI6ICRyICogJGJhc2U7XG4vLyAgICAgICAgICAgICB9XG4vLyAgICAgICAgICAgICAkZXhwOiBmbG9vcigkZXhwICogMC41KTtcbi8vICAgICAgICAgICAgICRiYXNlOiAkYmFzZSAqICRiYXNlO1xuLy8gICAgICAgICB9XG4vLyAgICAgICAgIEByZXR1cm4gaWYoJHMgIT0gMCwgMSAvICRyLCAkcik7XG4vLyAgICAgfSBAZWxzZSB7XG4vLyAgICAgICAgIEByZXR1cm4gZXhwKGxvZygkYmFzZSkgKiAkZXhwKTtcbi8vICAgICB9XG4vLyB9XG5cbi8vIFNpbXBsZXIgUE9XKCksIGZvciBzcGVlZCFcbkBmdW5jdGlvbiBwb3coJG51bWJlciwgJGV4cCkge1xuICAkdmFsdWU6ICRudW1iZXI7XG4gIEBpZiAkZXhwID4gMCB7XG4gICAgLy8gSWYgdGhlIGV4cG9uZW50IGlzIHBvc2l0aXZlLCBtdWx0aXBseS5cbiAgICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRleHAge1xuICAgICAgJHZhbHVlOiAkdmFsdWUgKiAkbnVtYmVyO1xuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkZXhwIDwgMCB7XG4gICAgLy8gSWYgdGhlIGV4cG9uZW50IGlzIG5lZ2F0aXZlLCBkaXZpZGUuXG4gICAgQGZvciAkaSBmcm9tIDAgdGhyb3VnaCAtKCRleHApIHtcbiAgICAgICR2YWx1ZTogJHZhbHVlIC8gJG51bWJlcjtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIC8vIElmIHRoZSBleHBvbmVudCBpcyB6ZXJvLCBqdXN0IHJldHVybiAxLlxuICAgICR2YWx1ZTogMTtcbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlO1xufSIsIkBmdW5jdGlvbiBudGgtcm9vdC1lc3RpbWF0ZSgkbnVtYmVyLCAkZ3Vlc3MsICRuKSB7XG4gIEByZXR1cm4gMS8kbiAqICgoJG51bWJlci9wb3coJGd1ZXNzLCAkbiAtIDEpKSAtICRndWVzcyk7XG59XG5cbkBmdW5jdGlvbiBudGgtcm9vdCgkbnVtYmVyLCAkZGVncmVlLCAkcHJlY2lzaW9uOiA1KSB7XG4gICRndWVzczogMi43O1xuICAkcHJldmlvdXMtZ3Vlc3M6IDA7XG4gIFxuICAvLyBXaGlsZSBwcmVjaXNpb24gaGFzIG5vdCBiZWVuIG1ldCwga2VlcCBndWVzc2luZ1xuICBAd2hpbGUgcm91bmQoJHByZXZpb3VzLWd1ZXNzICogcG93KDEwLCAkcHJlY2lzaW9uKSkgIT0gcm91bmQoJGd1ZXNzICogcG93KDEwLCAkcHJlY2lzaW9uKSkge1xuICAgICRwcmV2aW91cy1ndWVzczogJGd1ZXNzO1xuICAgICRndWVzczogJGd1ZXNzICsgbnRoLXJvb3QtZXN0aW1hdGUoJG51bWJlciwgJGd1ZXNzLCA1KTtcbiAgfVxuICBcbiAgQHJldHVybiAkZ3Vlc3M7XG59IiwiLy8gUmV0dXJucyB0aGUgc3F1YXJlIHJvb3Qgb2YgYSBudW1iZXIuXG4vLyBAcGFyYW0ge051bWJlcn0gJHhcbi8vIEBleGFtcGxlXG4vLyAgICAgc3FydCgyKSAvLyAxLjQxNDIxXG4vLyAgICAgc3FydCg1KSAvLyAyLjIzNjA3XG5AZnVuY3Rpb24gc3FydCAoJHgpIHtcbiAgICBAaWYgJHggPCAwIHtcbiAgICAgICAgQHdhcm4gXCJBcmd1bWVudCBmb3IgYHNxcnQoKWAgbXVzdCBiZSBhIHBvc2l0aXZlIG51bWJlci5cIjtcbiAgICAgICAgQHJldHVybiBudWxsO1xuICAgIH1cbiAgICAkcmV0OiAxO1xuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggMjQge1xuICAgICAgICAkcmV0OiAkcmV0IC0gKHBvdygkcmV0LCAyKSAtICR4KSAvICgyICogJHJldCk7XG4gICAgfVxuICAgIEByZXR1cm4gJHJldDtcbn0iLCJAZnVuY3Rpb24gcGkoKSB7XG4gICAgQHJldHVybiAzLjE0MTU5MjY1MzU5O1xufVxuXG5AZnVuY3Rpb24gcmFkKCRhbmdsZSkge1xuICAgICR1bml0OiB1bml0KCRhbmdsZSk7XG4gICAgJHVuaXRsZXNzOiAkYW5nbGUgLyAoJGFuZ2xlICogMCArIDEpO1xuICAgIC8vIElmIHRoZSBhbmdsZSBoYXMgJ2RlZycgYXMgdW5pdCwgY29udmVydCB0byByYWRpYW5zLlxuICAgIEBpZiAkdW5pdCA9PSBkZWcge1xuICAgICAgICAkdW5pdGxlc3M6ICR1bml0bGVzcyAvIDE4MCAqIHBpKCk7XG4gICAgfVxuICAgIEByZXR1cm4gJHVuaXRsZXNzO1xufVxuXG5AZnVuY3Rpb24gc2luKCRhbmdsZSkge1xuICAgICRzaW46IDA7XG4gICAgJGFuZ2xlOiByYWQoJGFuZ2xlKTtcbiAgICAvLyBJdGVyYXRlIGEgYnVuY2ggb2YgdGltZXMuXG4gICAgQGZvciAkaSBmcm9tIDAgdGhyb3VnaCAxMCB7XG4gICAgICAgICRzaW46ICRzaW4gKyBwb3coLTEsICRpKSAqIHBvdygkYW5nbGUsICgyICogJGkgKyAxKSkgLyBmYWN0KDIgKiAkaSArIDEpO1xuICAgIH1cbiAgICBAcmV0dXJuICRzaW47XG59XG5cbkBmdW5jdGlvbiBjb3MoJGFuZ2xlKSB7XG4gICAgJGNvczogMDtcbiAgICAkYW5nbGU6IHJhZCgkYW5nbGUpO1xuICAgIC8vIEl0ZXJhdGUgYSBidW5jaCBvZiB0aW1lcy5cbiAgICBAZm9yICRpIGZyb20gMCB0aHJvdWdoIDEwIHtcbiAgICAgICAgJGNvczogJGNvcyArIHBvdygtMSwgJGkpICogcG93KCRhbmdsZSwgMiAqICRpKSAvIGZhY3QoMiAqICRpKTtcbiAgICB9XG4gICAgQHJldHVybiAkY29zO1xufVxuXG5AZnVuY3Rpb24gdGFuKCRhbmdsZSkge1xuICAgIEByZXR1cm4gc2luKCRhbmdsZSkgLyBjb3MoJGFuZ2xlKTtcbn1cblxuLyoqXG4gKiBvbi1jaXJjbGUgdGFrZXMgYSByYWRpdXMsIHBvc2l0aW9uIG9uIGEgY2lyY2xlLCBudW1iZXIgb2YgcG9zc2libGUgcG9zaXRpb25zIGFuZCByZXR1cm5zIHRvcCBhbmQgbGVmdCBwcm9wZXJ0aWVzXG4gKlxuICogJG9yZGluYWxQb3NpdGlvbiB7TnVtYmVyfSB0aGUgcG9zaXRpb24gb2YgdGhlIGl0ZW0gb24gdGhlIGNpcmNsZSwgY291bnRpbmcgZnJvbSAxIChOb3J0aCkgdGhyb3VnaCBOXG4gKiAkcmFkaXVzIHtOdW1iZXJ9ICAgIHJhZGl1cyBvZiB0aGUgY2lyY2xlIGluIHBpeGVsc1xuICogJHBvc2l0aW9ucyB7TnVtYmVyfSAgIHRoZSBudW1iZXIgb2YgcG9zaXRpb25zIG9uIHRoZSBjaXJjbGVcbiAqICRvcmlnaW5YIHtOdW1iZXJ9ICAgb3B0aW9uYWwgWCBvcmlnaW4gcG9pbnQgZm9yIHRoZSBjaXJjbGUsIGRlZmF1bHRzIHRvIHRoZSByYWRpdXNcbiAqICRvcmlnaW5ZIHtOdW1iZXJ9ICAgb3B0aW9uYWwgWSBvcmlnaW4gcG9pbnQgZm9yIHRoZSBjaXJjbGUsIGRlZmF1bHRzIHRvIHRoZSByYWRpdXNcbiAqICRvZmZzZXRYIHtOdW1iZXJ9ICAgb3B0aW9uYWwgWCBvZmZzZXQgZm9yIHRoZSBpdGVtLCB5b3UgbWlnaHQgdXNlIDEvMiBvZiB0aGUgd2lkdGggb2YgYW4gaXRlbSwgZGVmYXVsdCBpcyAwXG4gKiAkb2Zmc2V0WSB7TnVtYmVyfSAgIG9wdGlvbmFsIFkgb2Zmc2V0IGZvciB0aGUgaXRlbSwgeW91IG1pZ2h0IHVzZSAxLzIgb2YgdGhlIGhlaWdodCBvZiBhbiBpdGVtLCBkZWZhdWx0IGlzIDBcbiAqL1xuQGZ1bmN0aW9uIG9uLWNpcmNsZSgkb3JkaW5hbFBvc2l0aW9uLCAkcmFkaXVzOiAxODAsICRwb3NpdGlvbnM6IDEzLCAkb3JpZ2luWDogJHJhZGl1cywgJG9yaWdpblk6ICRyYWRpdXMsICRvZmZzZXRYOiAwLCAkb2Zmc2V0WTogMCwgJGNpcmNsZVNpemU6IDM2MCwgJHN0YXJ0UG9zOiA5MCwgJHJldmVyc2VPcmRlcjogdHJ1ZSkge1xuXG4gICAgQGlmICRyZXZlcnNlT3JkZXIge1xuICAgICAgICAkcG9zaXRpb25BbmdsZURlZ3JlZXM6IC0xICogKCRvcmRpbmFsUG9zaXRpb24gLSAxKSAqICRjaXJjbGVTaXplIC8gJHBvc2l0aW9ucyArICRzdGFydFBvcztcbiAgICB9IEBlbHNlIHtcbiAgICAgICAgJHBvc2l0aW9uQW5nbGVEZWdyZWVzOiAoJG9yZGluYWxQb3NpdGlvbiAtIDEpICogJGNpcmNsZVNpemUgLyAkcG9zaXRpb25zICsgJHN0YXJ0UG9zO1xuICAgIH1cblxuICAgICRwb3NpdGlvbkFuZ2xlUmFkaWFuczogJHBvc2l0aW9uQW5nbGVEZWdyZWVzICogcGkoKSAvIDE4MDtcblxuICAgICRjaXJjbGVYcG9zOiAje3JvdW5kKCRvcmlnaW5YICsgJG9mZnNldFggKyAkcmFkaXVzICogY29zKCRwb3NpdGlvbkFuZ2xlUmFkaWFucykpfXB4O1xuICAgICRjaXJjbGVZcG9zOiAje3JvdW5kKCRvcmlnaW5ZICsgJG9mZnNldFkgKyAkcmFkaXVzICogc2luKCRwb3NpdGlvbkFuZ2xlUmFkaWFucykpfXB4O1xuXG4gICAgQHJldHVybiAoJGNpcmNsZVhwb3MsICRjaXJjbGVZcG9zKTtcblxufSIsIi8vIEt1ZG9zOiBodHRwOi8vaHVnb2dpcmF1ZGVsLmNvbS8yMDEzLzA4LzA4L2FkdmFuY2VkLXNhc3MtbGlzdC1mdW5jdGlvbnMvXG5cbkBmdW5jdGlvbiByZXBsYWNlLW50aCgkbGlzdCwgJGluZGV4LCAkdmFsdWUpIHtcbiAgJHJlc3VsdDogbnVsbDtcbiAgICAgIFxuICBAaWYgdHlwZS1vZigkaW5kZXgpICE9IG51bWJlciB7XG4gICAgQHdhcm4gXCIkaW5kZXg6ICN7cXVvdGUoJGluZGV4KX0gaXMgbm90IGEgbnVtYmVyIGZvciBgcmVwbGFjZS1udGhgLlwiO1xuICB9XG5cbiAgQGVsc2UgaWYgJGluZGV4ID09IDAge1xuICAgIEB3YXJuIFwiTGlzdCBpbmRleCAwIG11c3QgYmUgYSBub24temVybyBpbnRlZ2VyIGZvciBgcmVwbGFjZS1udGhgLlwiO1xuICB9XG4gICAgICBcbiAgQGVsc2UgaWYgYWJzKCRpbmRleCkgPiBsZW5ndGgoJGxpc3QpIHtcbiAgICBAd2FybiBcIkxpc3QgaW5kZXggaXMgI3skaW5kZXh9IGJ1dCBsaXN0IGlzIG9ubHkgI3tsZW5ndGgoJGxpc3QpfSBpdGVtIGxvbmcgZm9yIGByZXBsYWNlLW50aGAuXCI7XG4gIH1cblxuICBAZWxzZSB7XG4gICAgJHJlc3VsdDogKCk7XG4gICAgJGluZGV4OiBpZigkaW5kZXggPCAwLCBsZW5ndGgoJGxpc3QpICsgJGluZGV4ICsgMSwgJGluZGV4KTsgIFxuXG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCBsZW5ndGgoJGxpc3QpIHtcbiAgICAgIEBpZiAkaSA9PSAkaW5kZXgge1xuICAgICAgICAkcmVzdWx0OiBhcHBlbmQoJHJlc3VsdCwgJHZhbHVlKTtcbiAgICAgIH1cbiAgICBcbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJHJlc3VsdDogYXBwZW5kKCRyZXN1bHQsIG50aCgkbGlzdCwgJGkpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiBcbiAgQHJldHVybiAkcmVzdWx0O1xufSIsIkBpbXBvcnQgXCJzdHJpbmdzL3N0ci1leHBsb2RlXCI7IiwiLy8vIFNwbGl0IGAkc3RyaW5nYCBpbnRvIHNldmVyYWwgcGFydHMgdXNpbmcgYCRkZWxpbWl0ZXJgLlxuLy8vIEBzaW5jZSAxLjIuMFxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc3RyaW5nICAgIC0gc3RyaW5nIHRvIHNwbGl0XG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRkZWxpbWl0ZXIgKCcnKSAtIHN0cmluZyB0byB1c2UgYXMgYSBkZWxpbWl0ZXIgdG8gc3BsaXQgYCRzdHJpbmdgXG4vLy8gQHJldHVybiB7TGlzdH1cbkBmdW5jdGlvbiBfc3Mtc3RyLWV4cGxvZGUoJHN0cmluZywgJGRlbGltaXRlcjogXCJcIikge1xuICAgICRyZXN1bHQ6ICgpO1xuICAgICRsZW5ndGg6IHN0ci1sZW5ndGgoJHN0cmluZyk7XG4gICAgXG4gICAgQGlmIHN0ci1sZW5ndGgoJGRlbGltaXRlcikgPT0gMCB7XG4gICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAkcmVzdWx0OiBhcHBlbmQoJHJlc3VsdCwgc3RyLXNsaWNlKCRzdHJpbmcsICRpLCAkaSkpO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICBAcmV0dXJuICRyZXN1bHQ7XG4gICAgfVxuICAgIFxuICAgICRydW5uaW5nOiB0cnVlO1xuICAgICRyZW1haW5pbmc6ICRzdHJpbmc7XG4gICAgXG4gICAgQHdoaWxlICRydW5uaW5nIHtcbiAgICAgICAgJGluZGV4OiBzdHItaW5kZXgoJHJlbWFpbmluZywgJGRlbGltaXRlcik7XG4gICAgICAgIFxuICAgICAgICBAaWYgJGluZGV4IHtcbiAgICAgICAgICAgICRzbGljZTogc3RyLXNsaWNlKCRyZW1haW5pbmcsIDEsICRpbmRleCAtIDEpO1xuICAgICAgICAgICAgJHJlc3VsdDogYXBwZW5kKCRyZXN1bHQsICRzbGljZSk7XG4gICAgICAgICAgICAkcmVtYWluaW5nOiBzdHItc2xpY2UoJHJlbWFpbmluZywgJGluZGV4ICsgc3RyLWxlbmd0aCgkZGVsaW1pdGVyKSk7XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgJHJ1bm5pbmc6IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuICAgIFxuICAgIEByZXR1cm4gYXBwZW5kKCRyZXN1bHQsICRyZW1haW5pbmcpO1xufVxuXG5AZnVuY3Rpb24gc3RyLWV4cGxvZGUoJHN0cmluZywgJGRlbGltaXRlcjogJycpIHtcbiAgICAvL0BpZiB0eXBlLW9mKCRzdHJpbmcpICE9IFwic3RyaW5nXCIge1xuICAgIC8vICAgIEBlcnJvciBcImBleHBsb2RlYCBmdW5jdGlvbiBleHBlY3RpbmcgYSBzdHJpbmc7ICN7dHlwZS1vZigkc3RyaW5nKX0gZ2l2ZW4uXCI7XG4gICAgLy99XG4gICAgXG4gICAgLy9AaWYgdHlwZS1vZigkZGVsaW1pdGVyKSAhPSBcInN0cmluZ1wiIHtcbiAgICAvLyAgICBAZXJyb3IgXCJgZXhwbG9kZWAgZnVuY3Rpb24gZXhwZWN0aW5nIGEgc3RyaW5nOyAje3R5cGUtb2YoJGRlbGltaXRlcil9IGdpdmVuLlwiO1xuICAgIC8vfVxuICAgIFxuICAgIEByZXR1cm4gX3NzLXN0ci1leHBsb2RlKCRzdHJpbmcsICRkZWxpbWl0ZXIpO1xufSIsIkBmdW5jdGlvbiBzdHJpcC11bml0cygkbnVtYmVyKSB7XG4gICAgQHJldHVybiAkbnVtYmVyIC8gKCRudW1iZXIgKiAwICsgMSk7XG59IiwiLy9Ob3RlIHRoYXQgOyBpcyB0aGUgQGltcG9ydCBzZXBhcmF0b3JcbiRmb250LWNvbWJvOiBcIlRpdGlsbGl1bStXZWI6NDAwLDcwMDsgJ0hlbHZldGljYSBOZXVlJywgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjsgJ1RpdGlsbGl1bSBXZWInLCBzYW5zLXNlcmlmXCIgIWRlZmF1bHQ7XG5cbiRmb250LXBhcnRzOiBzdHItZXhwbG9kZSgkZm9udC1jb21ibywgJzsnKTtcblxuQGlmIGxlbmd0aCgkZm9udC1wYXJ0cykgPCAyIHtcbiAgICAkZm9udC1wYXJ0czogc3RyLWV4cGxvZGUoXCJUaXRpbGxpdW0rV2ViOjQwMCw3MDA7ICdIZWx2ZXRpY2EgTmV1ZScsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7ICdUaXRpbGxpdW0gV2ViJywgc2Fucy1zZXJpZlwiLCAnOycpO1xufVxuXG5AaWYgbGVuZ3RoKCRmb250LXBhcnRzKSA+IDIge1xuICAgICRmb250LWltcG9ydDogdW5xdW90ZShudGgoJGZvbnQtcGFydHMsIDEpKTtcbiAgICAkZm9udC1pcy1pbXBvcnRlZDogZmFsc2UgIWRlZmF1bHQgIWdsb2JhbDtcblxuICAgIEBpZiAkZm9udC1pcy1pbXBvcnRlZCAhPSB0cnVlIHtcbiAgICAgICAgQGltcG9ydCB1cmwoJy8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzP2ZhbWlseT0jeyRmb250LWltcG9ydH0nKTtcbiAgICAgICAgJGZvbnQtaXMtaW1wb3J0ZWQ6IHRydWU7XG4gICAgfVxuXG4gICAgJGJvZHktZm9udC1mYW1pbHk6IHVucXVvdGUobnRoKCRmb250LXBhcnRzLCAyKSk7XG4gICAgJGhlYWRlci1mb250LWZhbWlseTogdW5xdW90ZShudGgoJGZvbnQtcGFydHMsIDMpKTtcbn0gQGVsc2Uge1xuICAgICRib2R5LWZvbnQtZmFtaWx5OiB1bnF1b3RlKG50aCgkZm9udC1wYXJ0cywgMSkpO1xuICAgICRoZWFkZXItZm9udC1mYW1pbHk6IHVucXVvdGUobnRoKCRmb250LXBhcnRzLCAyKSk7XG59XG5cbkBpZiAoc3RyLWluZGV4KCRmb250LWNvbWJvLCAnTm90byBTYW5zJykpIHtcbiAgICAkbWVudS1mb250LWZhbWlseTogJGhlYWRlci1mb250LWZhbWlseSAhZGVmYXVsdDtcbiAgICAkdXRpbHMtbmF2LWZvbnQtZmFtaWx5OiAkaGVhZGVyLWZvbnQtZmFtaWx5ICFkZWZhdWx0O1xufSIsIi8vIFRoZXNlIGFyZSB0aGUgb2xkIFBJT05FRVIgc2V0dGluZ3MsIHdoaWNoIHdhcyBUaGUgVGhlbWUgVGhhdCBTdGFydGVkIEl0IEFsbCDihKJcblxuLy8gR2xvYmFsIHNldHRpbmdzXG4kdG91Y2gtZnJpZW5kbHktc2l6ZTogcmVtLWNhbGMoNDQpICFkZWZhdWx0O1xuJGdsb2JhbC1yYWRpdXM6IDAgIWRlZmF1bHQ7XG5cbi8vIEZvbnQgc2V0dGluZ3NcbiRwYXJhZ3JhcGgtbGluZS1oZWlnaHQ6IDEuNSAhZGVmYXVsdDtcbiRzbWFsbC1mb250LXNpemU6IDgwJSAhZGVmYXVsdDtcbiRwYWdlLXRpdGxlLXBhZGRpbmc6IDAuNXJlbSAhZGVmYXVsdDtcblxuLy8gTGF5b3V0IHNldHRpbmdzXG4kbWVudS10eXBlOiAnZHJvcGRvd24nICFkZWZhdWx0OyAvLyBNdXN0IG1hdGNoIHRoZSBkZWZhdWx0IHNldHRpbmcgaW4gdGhlIGNvbmZpZy5waHAtZmlsZVxuJHBhZ2UtbGF5b3V0OiAnZnVsbCcgIWRlZmF1bHQ7ICAgLy8gJ2ZyYW1lZCcgb3IgJ2Z1bGwnXG4kb2ZmLWNhbnZhcy1wb3NpdGlvbjogbGVmdCAhZGVmYXVsdDtcblxuLy8gQWxlcnQgYm94IHNldHRpbmdzXG4kaW5jbHVkZS1odG1sLWFsZXJ0LWNsYXNzZXM6IGZhbHNlO1xuJGFsZXJ0LXBhZGRpbmctdG9wOiAxcmVtICFkZWZhdWx0O1xuJGFsZXJ0LWNsb3NlLXRvcDogMXJlbSAhZGVmYXVsdDtcbiRhbGVydC1mb250LXNpemU6IHJlbS1jYWxjKDE0KSAhZGVmYXVsdDtcbiRhbGVydC1saW5lLWhlaWdodDogJGFsZXJ0LWZvbnQtc2l6ZS8xcmVtICogJHBhcmFncmFwaC1saW5lLWhlaWdodDtcbiRhbGVydC1zaWRlLWJvcmRlci1zaXplOiAycmVtICFkZWZhdWx0O1xuJGFsZXJ0LXJhZGl1czogNHB4ICFkZWZhdWx0O1xuJGFsZXJ0LWJvdHRvbS1tYXJnaW46IDAgIWRlZmF1bHQ7XG5cbi8vIEdyaWQgc2V0dGluZ3NcbiRyb3ctd2lkdGg6IHJlbS1jYWxjKDEyODApICFkZWZhdWx0O1xuJHRvdGFsLWNvbHVtbnM6IDEyICFkZWZhdWx0O1xuJGNvbHVtbi1ndXR0ZXI6IHJlbS1jYWxjKDMwKSAhZGVmYXVsdDtcblxuLy8gRXF1YWwgY29sdW1uIGhlaWdodCBncmlkIHNldHRpbmdcbiRlcXVhbC1jb2wtaW5uZXItcGFkZGluZzogJGNvbHVtbi1ndXR0ZXIvMiAhZGVmYXVsdDtcblxuLy8gQmxvY2sgZ3JpZCBzZXR0aW5nc1xuJGluY2x1ZGUtaHRtbC1ibG9jay1ncmlkLWNsYXNzZXM6IHRydWUgIWRlZmF1bHQ7XG4kYmxvY2stZ3JpZC1lbGVtZW50czogNSAhZGVmYXVsdDtcbiRhbGlnbi1ibG9jay1ncmlkLXRvLWdyaWQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8vIE1lZGlhIHF1ZXJ5IHJhbmdlc1xuJHNtYWxsLXJhbmdlOiAoMGVtLCAzOS45Mzc1ZW0pICFkZWZhdWx0O1xuJG1lZGl1bS1yYW5nZTogKDQwZW0sIDYzLjkzNzVlbSkgIWRlZmF1bHQ7XG4kbGFyZ2UtcmFuZ2U6ICg2NGVtLCA4OS45Mzc1ZW0pICFkZWZhdWx0O1xuJHhsYXJnZS1yYW5nZTogKDkwZW0sIDExOS45Mzc1ZW0pICFkZWZhdWx0O1xuJHh4bGFyZ2UtcmFuZ2U6ICgxMjBlbSwgOTk5OTk5OTllbSkgIWRlZmF1bHQ7XG5cbi8vIEJyZWFkY3J1bWJzIHNldHRpbmdzXG4kY3J1bWItYmc6ICNmZmYgIWRlZmF1bHQ7XG4kY3J1bWItcGFkZGluZzogMCAhZGVmYXVsdDtcbiRjcnVtYi1ib3JkZXItc2l6ZTogMCAhZGVmYXVsdDtcbiRjcnVtYi1mb250LXRyYW5zZm9ybTogbm9uZSAhZGVmYXVsdDtcbiRjcnVtYi1mb250LXNpemU6IHJlbS1jYWxjKDE2KSAhZGVmYXVsdDtcbiRjcnVtYi1mb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHkgIWRlZmF1bHQ7XG4kY3J1bWItc2lkZS1wYWRkaW5nOiAuNXJlbSAhZGVmYXVsdDtcblxuLy8gVGFibGUgc3R5bGluZ1xuJHRhYmxlLWJvcmRlci1zaXplOiAwO1xuXG4vLyBUYWJzIHN0eWxpbmdcbiR0YWJzLW5hdmlnYXRpb24tcGFkZGluZzogMC40cmVtICFkZWZhdWx0O1xuJHRhYnMtbmF2aWdhdGlvbi1mb250LXNpemU6IHJlbS1jYWxjKDE2KSAhZGVmYXVsdDtcbiR0YWJzLW5hdmlnYXRpb24tZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5ICFkZWZhdWx0O1xuJHRhYnMtY29udGVudC1tYXJnaW4tYm90dG9tOiByZW0tY2FsYygyNCkgIWRlZmF1bHQ7XG4kdGFicy1jb250ZW50LXBhZGRpbmc6IC41cmVtICFkZWZhdWx0O1xuJHRhYnMtdmVydGljYWwtbmF2aWdhdGlvbi1tYXJnaW4tYm90dG9tOiAxLjI1cmVtICFkZWZhdWx0O1xuXG4vLyBTb2NpYWwgaWNvbnNcbiRzb2NpYWwtaWNvbi1zaXplOiAkdG91Y2gtZnJpZW5kbHktc2l6ZSAhZGVmYXVsdDtcblxuLy8gQnV0dG9uc1xuJGJ1dHRvbi1zaXplOiByZW0tY2FsYygzNykgIWRlZmF1bHQ7XG4kYnV0dG9uLWZvbnQtd2VpZ2h0OiBub3JtYWwgIWRlZmF1bHQ7XG5cbi8vIFBhZ2luYXRpb24gc2V0dGluZ3NcbiRwYWdpbmF0aW9uLWl0ZW0taGVpZ2h0OiAgICAgICAgJHRvdWNoLWZyaWVuZGx5LXNpemUgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1pdGVtLXNpZGUtcGFkZGluZzogIDFyZW0gIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1pdGVtLXNwYWNpbmc6ICAgICAgIC41cmVtICFkZWZhdWx0O1xuJHBhZ2luYXRpb24taXRlbS1ib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWl0ZW0tYm9yZGVyLXNpemU6ICAgMCAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWZ1bGwtYnJlYWtwb2ludDogICAgXCJvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTByZW0pXCIgIWRlZmF1bHQ7XG4iLCJAaW1wb3J0IFwibWl4aW5zL2FjY2Vzc2liaWxpdHlcIjtcbkBpbXBvcnQgXCJtaXhpbnMvY2VudGVyXCI7XG5AaW1wb3J0IFwibWl4aW5zL2hhaXJsaW5lLWJvcmRlclwiO1xuQGltcG9ydCBcIm1peGlucy9udGgtY2hpbGRyZW5cIjtcbkBpbXBvcnQgXCJtaXhpbnMvdHJhbnNmb3JtXCI7IiwiQG1peGluIGFjY2Vzc2libGUtaGlkZSgpIHtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBtYXJnaW46IC0xcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMXB4O1xufVxuXG5AbWl4aW4gYWNjZXNzaWJsZS1zaG93KCRjbGlwOiBhdXRvLCAkaGVpZ2h0OiBhdXRvLCAkbWFyZ2luOiAwLCAkb3ZlcmZsb3c6IHZpc2libGUsICRwb3NpdGlvbjogcmVsYXRpdmUsICR3aWR0aDogYXV0bywgJHBhZGRpbmc6IDAsICRib3JkZXI6IG5vbmUpIHtcbiAgICBib3JkZXI6ICRib3JkZXI7XG4gICAgY2xpcDogJGNsaXA7XG4gICAgaGVpZ2h0OiAkaGVpZ2h0O1xuICAgIG1hcmdpbjogJG1hcmdpbjtcbiAgICBvdmVyZmxvdzogJG92ZXJmbG93O1xuICAgIHBhZGRpbmc6ICRwYWRkaW5nO1xuICAgIHBvc2l0aW9uOiAkcG9zaXRpb247XG4gICAgd2lkdGg6ICR3aWR0aDtcbn0iLCJAbWl4aW4gY2VudGVyKCR4eTp4eSkge1xuICBAaWYgJHh5ID09IHh5IHtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdG9wOiA1MCU7XG4gICAgYm90dG9tOiBhdXRvO1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSkpO1xuICB9XG4gIEBlbHNlIGlmICR4eSA9PSB4IHtcbiAgICBsZWZ0OiA1MCU7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZVgoLTUwJSkpO1xuICB9XG4gIEBlbHNlIGlmICR4eSA9PSB5IHtcbiAgICB0b3A6IDUwJTtcbiAgICBib3R0b206IGF1dG87XG4gICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZVkoLTUwJSkpO1xuICB9XG59IiwiLy8gMXB4IG9uIHJldGluYSwgYW5kIDFweCBvbiBub24tcmV0aW5hLCBzaW5jZSBib3JkZXItd2lkdGg6IDAuNXB4OyBkb2VzIG5vdCB3b3JrIGluIENTU1xuQG1peGluIGhhaXJsaW5lLWJvcmRlcigkaGFpcmxpbmUtY29sb3IsICRwb3NpdGlvbjogdG9wIGxlZnQsICR2ZXJ0aWNhbDogZmFsc2UpIHtcbiAgICBcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAkcG9zaXRpb247IFxuICAgIEBpZiAkdmVydGljYWwge1xuICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXk7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMScgaGVpZ2h0PScxMDAnPjxyZWN0IGZpbGw9JyN7JGhhaXJsaW5lLWNvbG9yfScgeD0nMCcgeT0nMCcgd2lkdGg9JzAuNScgaGVpZ2h0PScxMDAnLz48L3N2Zz5cIik7XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScxMDAnIGhlaWdodD0nMSc+PHJlY3QgZmlsbD0nI3skaGFpcmxpbmUtY29sb3J9JyB4PScwJyB5PScwJyB3aWR0aD0nMTAwJyBoZWlnaHQ9JzAuNScvPjwvc3ZnPlwiKTtcbiAgICB9XG4gICAgXG59IiwiLy8gVXNlIHRoaXMgdG8gc2VsZWN0IGl0ZW1zIGRlcGVuZGluZyBvbiBob3cgbWFueSBzaWJsaW5ncyB0aGVyZSBhcmUuXG4vLyBWZXJ5IHVzZWZ1bCB0byBzdHlsZSBpdGVtcyBkZXBlbmRpbmcgb24gaG93IG1hbnkgaXRlbXMgdGhlcmUgYXJlXG4vLyBmb3IgaW5zdGFuY2UsIDEgaXRlbSBudGgtY2hpbGRyZW4oMSksIG1vcmUgdGhhbiA1IG50aC1jaGlsZHJlbihcIm4rNVwiKVxuXG5AbWl4aW4gbnRoLWNoaWxkcmVuKCRudGgpIHtcbiAgICAmOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKCN7JG50aH0pLFxuICAgICY6Zmlyc3QtY2hpbGQ6bnRoLWxhc3QtY2hpbGQoI3skbnRofSkgfiAmIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuIiwiQG1peGluIHRyYW5zbGF0ZTNkKCR0eDowLCR0eTowLCR0ejowLCAkcGVyc3BlY3RpdmU6ZmFsc2UpIHtcbiAgICBcbiAgICBAaWYgJHBlcnNwZWN0aXZlIHtcbiAgICAgICAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNmb3JtLCB0cmFuc2xhdGUoJHR4LCR0eSkgJHBlcnNwZWN0aXZlLCBtcyk7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGUzZCgkdHgsICR0eSwgJHR6KSAkcGVyc3BlY3RpdmUpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2Zvcm0sIHRyYW5zbGF0ZSgkdHgsJHR5KSwgbXMpO1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlM2QoJHR4LCAkdHksICR0eikpO1xuICAgIH1cbn0iLCIvLyBSYW5nZXIgYmFzaWMgY29sb3Igc2V0dGluZ3MsIHRoYXQgb3ZlcnJpZGUgcGlvbmVlcidzZXR0aW5nc1xuXG4kcHJpbWFyeS1jb2xvcjogI2ZlNTI1MiAhZGVmYXVsdDtcbi8vJHByaW1hcnktY29sb3I6IHJnYigxMDAsIDI1NSwgMjU1KSAhZGVmYXVsdDtcbi8vJHNlY29uZGFyeS1jb2xvcjogcmdiKDEwMCwgMjU1LCAyNTUpICFkZWZhdWx0O1xuJGNhbGwtdG8tYWN0aW9uLWNvbG9yOiAjOENBQjAwICFkZWZhdWx0O1xuJGZvb3Rlci1iZzogI2Y3ZjdmNiFkZWZhdWx0O1xuLy8kaGVhZGVyLWJnOiBoc2woMTUwLCA2MCUsIDMwJSkgIWRlZmF1bHQ7XG4kaGVhZGVyLWJnXHRcdFx0XHRcdCA6ICNmZmZmZmYgIWRlZmF1bHQ7XG4kY29udGVudC1iZyAgICAgICAgICAgICAgICAgIDogI2ZhZmFmYSAhZGVmYXVsdDtcblxuJGVuZC1iZzogI2Y0ZjRmMiFkZWZhdWx0OyAvL05vdCBkZWZhdWx0IHNpbmNlIHdlJ3JlIHVzaW5nIGEgZGFyayBiZyBpbWFnZSFcbiRuYXZpZ2F0aW9uLWJnOiAjZjVmNWYzICFkZWZhdWx0O1xuXG4kcHJpbWFyeS1jb2xvci1pcy1kYXJrICAgICAgICAgIDogaWYobHVtYSgkcHJpbWFyeS1jb2xvcikgPCA1MCwgdHJ1ZSwgZmFsc2UpICFkZWZhdWx0O1xuJGhvdmVyLWNvbG9yXHRcdFx0XHRcdDogI2ZlNTI1MiAhZGVmYXVsdDtcbi8vJGhvdmVyLWNvbG9yXHRcdFx0XHRcdDogaHNsKDIwMCwgMTAwJSwgMzAlKSAhZGVmYXVsdDtcbiRob3Zlci1jb2xvci1pcy1kYXJrICAgICAgICAgICAgOiBpZihsdW1hKCRob3Zlci1jb2xvcikgPCA1MCwgdHJ1ZSwgZmFsc2UpICFkZWZhdWx0O1xuJGhvdmVyLWFsdC1jb2xvclx0XHRcdFx0OiBpZigkaG92ZXItY29sb3ItaXMtZGFyaywgbGlnaHRlbigkaG92ZXItY29sb3IsIDI1JSksIGRhcmtlbigkaG92ZXItY29sb3IsIDI1JSkpICFkZWZhdWx0O1xuJGhvdmVyLWFsdC10ZXh0LWNvbG9yXHRcdFx0OiBpZigkaG92ZXItY29sb3ItaXMtZGFyaywgZGFya2VuKCRob3Zlci1jb2xvciwgMjUlKSwgbGlnaHRlbigkaG92ZXItY29sb3IsIDI1JSkpICFkZWZhdWx0O1xuXG4kb2ZmLWNhbnZhcy1iYWNrZ3JvdW5kXHRcdFx0OiAkbmF2aWdhdGlvbi1iZyAhZGVmYXVsdDtcblxuJHRvcGJhci1tZWRpYS1xdWVyeSBcdFx0XHQ6IG9ubHkgc2NyZWVuO1xuXG5cbiR0YWJzLWNvbnRhaW5lci1iZzogd2hpdGUgIWRlZmF1bHQ7XG4kdGFicy1iZy1jb2xvcjogI2Y1ZjVmNSAhZGVmYXVsdDtcbiR0YWJzLWFjdGl2ZS1iZy1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vJGVuZC1iZy1pbWdcdFx0XHRcdFx0XHQ6ICMwMDAgdXJsKGh0dHA6Ly9zdWJ0bGVwYXR0ZXJucy5jb20vcGF0dGVybnMvY2FydG9ncmFwaGVyLnBuZykgIWRlZmF1bHQ7XG5cbi8vIE1haW4gY29sb3JzIHN0dWZmXG4vLyRwcmltYXJ5LWNvbG9yICAgICAgICAgICAgICAgOiBoc2woMjAwLCAxMDAlLCAzMCUpICFkZWZhdWx0O1xuLy8kc2Vjb25kYXJ5LWNvbG9yICAgICAgICAgICAgIDogcmdiKDEwMCwgMjU1LCAyNTUpICFkZWZhdWx0O1xuLy8kY2FsbC10by1hY3Rpb24tY29sb3IgICAgICAgIDogI2ZmYTIwMCAhZGVmYXVsdDtcbi8vJGhvdmVyLWNvbG9yICAgICAgICAgICAgICAgICA6ICNlMDMxMTQgIWRlZmF1bHQ7XG4vLyRib3JkZXItY29sb3IgICAgICAgICAgICAgICAgOiAjZGRkZGRkICFkZWZhdWx0O1xuXG4vLyRhbGVydC1jb2xvciAgICAgICAgICAgICAgICAgOiAjZTAzMTE0ICFkZWZhdWx0O1xuLy8kc3VjY2Vzcy1jb2xvciAgICAgICAgICAgICAgIDogIzJhODYzZCAhZGVmYXVsdDtcbi8vJHdhcm5pbmctY29sb3IgICAgICAgICAgICAgICA6ICNCRDU3MDAgIWRlZmF1bHQ7XG4vLyRpbmZvLWNvbG9yICAgICAgICAgICAgICAgICAgOiAjYTBkM2U4ICFkZWZhdWx0O1xuXG4vLyBCYWNrZ3JvdW5kIGNvbG9yc1xuJGJvZHktYmcgICAgICAgICAgICAgICAgICAgICA6ICNmNWY1ZjMgIWRlZmF1bHQ7XG4vLyRoZWFkZXItYmcgICAgICAgICAgICAgICAgICAgOiAjZmZmZmZmICFkZWZhdWx0O1xuLy8kbmF2aWdhdGlvbi1iZyAgICAgICAgICAgICAgIDogI2Y1ZjVmNSAhZGVmYXVsdDtcbi8vJGNvbnRlbnQtYmcgICAgICAgICAgICAgICAgICA6ICNmZmZmZmYgIWRlZmF1bHQ7XG4vLyRmb290ZXItYmcgICAgICAgICAgICAgICAgICAgOiAjZmZmZmZmICFkZWZhdWx0O1xuLy8kZW5kLWJnICAgICAgICAgICAgICAgICAgICAgIDogI2ZmZmZmZiAhZGVmYXVsdDtcblxuLy8gRm9udCBjb2xvcnNcbi8vJGJvZHktZm9udC1jb2xvciAgICAgICAgICAgICA6ICMzMzMzMzMgIWRlZmF1bHQ7XG4vLyRoZWFkZXItZm9udC1jb2xvciAgICAgICAgICAgOiBkYXJrZW4oJGJvZHktZm9udC1jb2xvciwgNyUpICFkZWZhdWx0O1xuLy8kYWx0ZXJuYXRpdmUtZm9udC1jb2xvciAgICAgIDogI2NjY2NjYyAhZGVmYXVsdDtcbiIsIi8vIE1haW4gY29sb3JzIHN0dWZmXG4kcHJpbWFyeS1jb2xvciAgICAgICAgICAgICAgIDogIzMzMzMzMyAhZGVmYXVsdDtcbiRzZWNvbmRhcnktY29sb3IgICAgICAgICAgICAgOiAjZTdlN2U3ICFkZWZhdWx0O1xuJGNhbGwtdG8tYWN0aW9uLWNvbG9yICAgICAgICA6ICNFRjNBM0IgIWRlZmF1bHQ7XG4kaG92ZXItY29sb3IgICAgICAgICAgICAgICAgIDogI0VGM0EzQiAhZGVmYXVsdDtcbiRib3JkZXItY29sb3IgICAgICAgICAgICAgICAgOiAjZGRkZGRkICFkZWZhdWx0O1xuXG4kYWxlcnQtY29sb3IgICAgICAgICAgICAgICAgIDogI2UwMzExNCAhZGVmYXVsdDtcbiRzdWNjZXNzLWNvbG9yICAgICAgICAgICAgICAgOiAjNWNiODVjICFkZWZhdWx0O1xuJHdhcm5pbmctY29sb3IgICAgICAgICAgICAgICA6ICNmZmEyMDAgIWRlZmF1bHQ7XG4kaW5mby1jb2xvciAgICAgICAgICAgICAgICAgIDogIzViYzBkZSAhZGVmYXVsdDtcbiRkYW5nZXItY29sb3IgICAgICAgICAgICAgICAgOiAjZDk1MzRmICFkZWZhdWx0O1xuXG4vLyBCYWNrZ3JvdW5kIGNvbG9yc1xuJGJvZHktYmcgICAgICAgICAgICAgICAgICAgICA6ICNGRkZGRkYgIWRlZmF1bHQ7XG4kdG9wLWJnICAgICAgICAgICAgICAgICAgICAgIDogI2Y1ZjVmNSAhZGVmYXVsdDtcbiRoZWFkZXItYmcgICAgICAgICAgICAgICAgICAgOiAjMzMzMzMzICFkZWZhdWx0O1xuJG5hdmlnYXRpb24tYmcgICAgICAgICAgICAgICA6ICMyMTIxMjEgIWRlZmF1bHQ7XG4kY29udGVudC1iZyAgICAgICAgICAgICAgICAgIDogI2ZmZmZmZiAhZGVmYXVsdDtcbiRmb290ZXItYmcgICAgICAgICAgICAgICAgICAgOiAjMzMzMzMzICFkZWZhdWx0O1xuJGVuZC1iZyAgICAgICAgICAgICAgICAgICAgICA6ICMzMzMzMzMgIWRlZmF1bHQ7XG5cbi8vIEZvbnQgY29sb3JzXG4kYm9keS1mb250LWNvbG9yICAgICAgICAgICAgIDogIzMzMzMzMyAhZGVmYXVsdDtcbiRoZWFkZXItZm9udC1jb2xvciAgICAgICAgICAgOiBkYXJrZW4oJGJvZHktZm9udC1jb2xvciwgNyUpICFkZWZhdWx0O1xuJGFsdGVybmF0aXZlLWZvbnQtY29sb3IgICAgICA6ICNjY2NjY2MgIWRlZmF1bHQ7XG5cbi8vIENvbG9yIGNvbnRyYXN0IGFuYWx5c2lzIHZhcmlhYmxlcywgc2VlIGZ1bmN0aW9ucy9jb2xvclxuJGNvbG9yLWNvbnRyYXN0LXRocmVzaG9sZCAgICA6IDQuNSAhZGVmYXVsdDsgIC8vIDQuNSA9IFdDQUcgQUEsIDc9IFdDQUcgQUFBXG4kZGFyay1ib2R5LXRleHQgICAgICAgICAgICAgIDogJGJvZHktZm9udC1jb2xvciAhZGVmYXVsdDtcbiRsaWdodC1ib2R5LXRleHQgICAgICAgICAgICAgOiAkYWx0ZXJuYXRpdmUtZm9udC1jb2xvciAhZGVmYXVsdDtcblxuLy8gRWxlbWVudCBhbmQgc2VjdGlvbiBjb2xvciBzZXR0aW5nc1xuLy8gQFRPRE86IFdoZW4gd2UgY2FuIHVzZSBTYXNzIDMuMywgY2xlYW4gdGhpcyB1cCBpbnRvIG1hcHMgd2l0aCBrZXkvdmFsdWUgcGFpcnMhXG4kY29sb3ItZWxlbWVudHMgICAgICAgICAgICAgIDogXCJwcmltYXJ5LWNvbG9yXCIsIFwic2Vjb25kYXJ5LWNvbG9yXCIsIFwiY2FsbC10by1hY3Rpb24tY29sb3JcIiAhZGVmYXVsdDtcbiRjb2xvci1lbGVtZW50cy1jb2xvcnMgICAgICAgOiAkcHJpbWFyeS1jb2xvciwgJHNlY29uZGFyeS1jb2xvciwgJGNhbGwtdG8tYWN0aW9uLWNvbG9yICFkZWZhdWx0OyAvLyBsaXN0IGxlbmd0aCBzaG91bGQgbWF0Y2ggdGhhdCBvZiAkY29sb3ItZWxlbWVudHNcbiRzZWN0aW9ucyAgICAgICAgICAgICAgICAgICAgOiBcInRvcFwiLCBcIm5hdmlnYXRpb25cIiwgXCJoZWFkZXJcIiwgXCJjb250ZW50XCIsIFwiZm9vdGVyXCIsIFwiZW5kXCIgIWRlZmF1bHQ7XG4kc2VjdGlvbi1zZWxlY3RvcnMgICAgICAgICAgIDogXCIudG9wLWJnXCIsIFwiLm5hdmlnYXRpb24tYmdcIiwgXCIuaGVhZGVyLWJnXCIsIFwiLmNvbnRlbnQtYmdcIiwgXCIuZm9vdGVyLWJnXCIsIFwiLmVuZC1iZ1wiICFkZWZhdWx0OyAvLyBsaXN0IGxlbmd0aCBzaG91bGQgbWF0Y2ggdGhhdCBvZiAkc2VjdGlvbnNcbiRzZWN0aW9uLWJhY2tncm91bmRzICAgICAgICAgOiAkdG9wLWJnLCAkbmF2aWdhdGlvbi1iZywgJGhlYWRlci1iZywgJGNvbnRlbnQtYmcsICRmb290ZXItYmcsICRlbmQtYmcgIWRlZmF1bHQ7IC8vIGxpc3QgbGVuZ3RoIHNob3VsZCBtYXRjaCB0aGF0IG9mICRzZWN0aW9uc1xuXG4vLyBTZXQgc29tZSBleHRyYSBjb2xvciB2YXJpYWJsZXNcbiRjb250ZW50LWJnLWlzLWRhcmsgICAgICAgICAgOiBpZihsdW1hKCRjb250ZW50LWJnKSA8IDUwLCB0cnVlLCBmYWxzZSkgIWRlZmF1bHQ7XG4kaG92ZXItYmctdGV4dC1jb2xvciAgICAgICAgIDogYWNjZXNzaWJsZS1sdW1pbmFuY2UoI2ZmZiwgJGhvdmVyLWNvbG9yKSAhZGVmYXVsdDtcbiRjcnVtYi1mb250LWNvbG9yICAgICAgICAgICAgOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkcHJpbWFyeS1jb2xvciwgJGNvbnRlbnQtYmcpICFkZWZhdWx0O1xuJGNvbnRlbnQtdGV4dC1jb2xvciAgICAgICAgICA6IGlmKCRjb250ZW50LWJnLWlzLWRhcmssIGFjY2Vzc2libGUtbHVtaW5hbmNlKCRsaWdodC1ib2R5LXRleHQsICRjb250ZW50LWJnKSwgYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGRhcmstYm9keS10ZXh0LCAkY29udGVudC1iZykpICFkZWZhdWx0O1xuJGNydW1iLWZvbnQtY29sb3ItY3VycmVudCAgICA6ICRjb250ZW50LXRleHQtY29sb3IgIWRlZmF1bHQ7XG5cbi8vIFRhYnMgc2V0dGluZ3NcbiR0YWJzLW9uLWRhcmstYmcgICAgICAgICAgICAgOiBpZigkY29udGVudC1iZy1pcy1kYXJrLCB0cnVlLCBmYWxzZSkgIWRlZmF1bHQ7XG4kdGFicy1iZy1jb2xvciAgICAgICAgICAgICAgIDogaWYoJHRhYnMtb24tZGFyay1iZywgbGlnaHRlbigkY29udGVudC1iZywgMTAlKSwgZGFya2VuKCRjb250ZW50LWJnLCAxMCUpKSAhZGVmYXVsdDtcbiR0YWJzLWZvbnQtY29sb3IgICAgICAgICAgICAgOiBpbnZlcnQoJHRhYnMtYmctY29sb3IpICFkZWZhdWx0O1xuJHRhYnMtYWN0aXZlLWJnLWNvbG9yICAgICAgICA6IGlmKCR0YWJzLW9uLWRhcmstYmcsICNmZmYsICMwMDApICFkZWZhdWx0O1xuJHRhYnMtYWN0aXZlLWZvbnQtY29sb3IgICAgICA6IGludmVydCgkdGFicy1hY3RpdmUtYmctY29sb3IpICFkZWZhdWx0O1xuJHRhYnMtY29udGFpbmVyLWJnICAgICAgICAgICA6IGlmKCR0YWJzLW9uLWRhcmstYmcsIGxpZ2h0ZW4oJGNvbnRlbnQtYmcsIDMlKSwgZGFya2VuKCRjb250ZW50LWJnLCAzJSkpICFkZWZhdWx0O1xuXG4vLyBTZXR0aW5ncyBmb3IgdGFibGVzXG4kdGFibGUtYmcgICAgICAgICAgICAgICAgICAgIDogJGNvbnRlbnQtYmcgIWRlZmF1bHQ7XG4kdGFibGUtZXZlbi1yb3ctYmcgICAgICAgICAgIDogaWYoJGNvbnRlbnQtYmctaXMtZGFyaywgbGlnaHRlbigkY29udGVudC1iZywgNSUpLCAgZGFya2VuKCRjb250ZW50LWJnLCA1JSkpICFkZWZhdWx0O1xuJHRhYmxlLWJvcmRlci1jb2xvciAgICAgICAgICA6IGlmKCRjb250ZW50LWJnLWlzLWRhcmssIHJnYmEoJGxpZ2h0LWJvZHktdGV4dCwgMC40KSwgcmdiYSgkZGFyay1ib2R5LXRleHQsIDAuNCkpICFkZWZhdWx0O1xuJHRhYmxlLXN1YnRsZS1ib3JkZXItY29sb3IgICA6IGlmKCRjb250ZW50LWJnLWlzLWRhcmssIHJnYmEoJGxpZ2h0LWJvZHktdGV4dCwgMC40KSwgcmdiYSgkZGFyay1ib2R5LXRleHQsIDAuNCkpICFkZWZhdWx0O1xuJHRhYmxlLWhlYWQtYmcgICAgICAgICAgICAgICA6IGlmKCRjb250ZW50LWJnLWlzLWRhcmssIGxpZ2h0ZW4oJGNvbnRlbnQtYmcsIDMlKSwgZGFya2VuKCRjb250ZW50LWJnLCAzJSkpICFkZWZhdWx0O1xuJHRhYmxlLWhlYWQtZm9udC1jb2xvciAgICAgICA6IGlmKCRjb250ZW50LWJnLWlzLWRhcmssIGFjY2Vzc2libGUtbHVtaW5hbmNlKCRsaWdodC1ib2R5LXRleHQsICR0YWJsZS1oZWFkLWJnKSwgYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGRhcmstYm9keS10ZXh0LCAkdGFibGUtaGVhZC1iZykpICFkZWZhdWx0O1xuJHRhYmxlLWV2ZW4tcm93LXRleHQtY29sb3IgICA6IGlmKCRjb250ZW50LWJnLWlzLWRhcmssIGFjY2Vzc2libGUtbHVtaW5hbmNlKCRsaWdodC1ib2R5LXRleHQsICR0YWJsZS1ldmVuLXJvdy1iZyApLCBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkZGFyay1ib2R5LXRleHQsICR0YWJsZS1ldmVuLXJvdy1iZyApKSAhZGVmYXVsdDtcbiR0YWJsZS1yb3ctZm9udC1jb2xvciAgICAgICAgOiAkY29udGVudC10ZXh0LWNvbG9yICFkZWZhdWx0O1xuXG4vLyBDaGVja291dCBjb2xvcnNcbiRjaGVja291dC1zdGVwcy1iZyAgICAgICAgICAgOiBpZigkY29udGVudC1iZy1pcy1kYXJrLCBsaWdodGVuKCRjb250ZW50LWJnLCAxNSUpLCBkYXJrZW4oJGNvbnRlbnQtYmcsIDE1JSkpICFkZWZhdWx0O1xuJGNoZWNrb3V0LXN0ZXAtaW5hY3RpdmUtYmcgICA6IGlmKCRjb250ZW50LWJnLWlzLWRhcmssIGxpZ2h0ZW4oJGNvbnRlbnQtYmcsIDglKSwgZGFya2VuKCRjb250ZW50LWJnLCA4JSkpICFkZWZhdWx0O1xuJGVkaXQtc3RlcC1idXR0b24tYmcgICAgICAgICA6ICRjb250ZW50LXRleHQtY29sb3IgIWRlZmF1bHQ7XG4kZWRpdC1zdGVwLWJ1dHRvbi10ZXh0LWNvbG9yIDogYWNjZXNzaWJsZS1sdW1pbmFuY2UoI2ZmZiwgJGVkaXQtc3RlcC1idXR0b24tYmcpICFkZWZhdWx0O1xuJGVkaXQtc3RlcC1ob3Zlci1iZyAgICAgICAgICA6IGlmKCRjb250ZW50LWJnLWlzLWRhcmssIGRhcmtlbigkZWRpdC1zdGVwLWJ1dHRvbi1iZywgMTAlKSwgbGlnaHRlbigkZWRpdC1zdGVwLWJ1dHRvbi1iZywgMTAlKSkgIWRlZmF1bHQ7XG4kZWRpdC1zdGVwLWhvdmVyLXRleHQtY29sb3IgIDogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJHByaW1hcnktY29sb3IsICRlZGl0LXN0ZXAtaG92ZXItYmcpICFkZWZhdWx0O1xuJHN0ZXAtbnVtYmVyLWJnICAgICAgICAgICAgICA6IGlmKCRjb250ZW50LWJnLWlzLWRhcmssIGRhcmtlbigkZWRpdC1zdGVwLWJ1dHRvbi1iZywgMjAlKSwgbGlnaHRlbigkZWRpdC1zdGVwLWJ1dHRvbi1iZywgMjAlKSkgIWRlZmF1bHQ7XG4kc3RlcC1udW1iZXItdGV4dC1jb2xvciAgICAgIDogYWNjZXNzaWJsZS1sdW1pbmFuY2UoI2RkZCwgJHN0ZXAtbnVtYmVyLWJnKSAhZGVmYXVsdDtcblxuLy8gTWVzc2FnZWJveC9hbGVydHNcbiRtc2dib3gtYmcgICAgICAgICAgICAgICAgICAgOiBpZigkY29udGVudC1iZy1pcy1kYXJrLCBsaWdodGVuKCRjb250ZW50LWJnLCA1JSksIGRhcmtlbigkY29udGVudC1iZywgNSUpKSAhZGVmYXVsdDtcbiRtc2dib3gtYm9yZGVyLWNvbG9yICAgICAgICAgOiBpZigkY29udGVudC1iZy1pcy1kYXJrLCBsaWdodGVuKCRtc2dib3gtYmcsIDEwJSksIGRhcmtlbigkY29udGVudC1iZywgMTAlKSkgIWRlZmF1bHQ7XG4kbXNnYm94LWNsb3NlLXRleHQtY29sb3IgICAgIDogYWNjZXNzaWJsZS1sdW1pbmFuY2UoIzAwMCwgJG1zZ2JveC1iZykgIWRlZmF1bHQ7XG4kbXNnYm94LWNsb3NlLXNoYWRvdy1jb2xvciAgIDogaW52ZXJ0KCRtc2dib3gtY2xvc2UtdGV4dC1jb2xvcikgIWRlZmF1bHQ7XG4kYWxlcnQtZm9udC1jb2xvci1hbHQgICAgICAgIDogJGJvZHktZm9udC1jb2xvciAhZGVmYXVsdDtcblxuLy8gVGFicyBuYXZpZ2F0aW9uIGNvbG9yIChuZWVkcyBmaXhpbmcpXG4kdGFicy1uYXZpZ2F0aW9uLWJnLWNvbG9yICAgICAgICAgIDogJHRhYnMtYmctY29sb3IgIWRlZmF1bHQ7XG4kdGFicy1uYXZpZ2F0aW9uLWFjdGl2ZS1iZy1jb2xvciAgIDogJHRhYnMtYWN0aXZlLWJnLWNvbG9yICFkZWZhdWx0O1xuJHRhYnMtbmF2aWdhdGlvbi1ob3Zlci1iZy1jb2xvciAgICA6IHNjYWxlLWNvbG9yKCR0YWJzLW5hdmlnYXRpb24tYmctY29sb3IsICRsaWdodG5lc3M6IC0xNi42JSkgIWRlZmF1bHQ7XG4kdGFicy1uYXZpZ2F0aW9uLWZvbnQtY29sb3IgICAgICAgIDogJHRhYnMtZm9udC1jb2xvciAhZGVmYXVsdDtcbiR0YWJzLW5hdmlnYXRpb24tYWN0aXZlLWZvbnQtY29sb3IgOiAkdGFicy1hY3RpdmUtZm9udC1jb2xvciAhZGVmYXVsdDtcblxuLy8gQm9yZGVyc1xuJGJvcmRlci1kZWZhdWx0LW9wYWNpdHk6IDAuMiAhZGVmYXVsdDtcbiRib3JkZXItZGVmYXVsdC1ob3Zlci1vcGFjaXR5OiAwLjQgIWRlZmF1bHQ7XG4kYm9yZGVyLWhhcmQtb3BhY2l0eTogMC41ICFkZWZhdWx0O1xuJGJvcmRlci1oYXJkLWhvdmVyLW9wYWNpdHk6IDAuNyAhZGVmYXVsdDtcblxuLy8gU29jaWFsIGljb24gY29sb3JzXG4kc29jaWFsLWNvbG9yLWJsb2dnZXI6ICNmYzk5NDggIWRlZmF1bHQ7XG4kc29jaWFsLWNvbG9yLWVsbG86IHJnYmEoIzAwMCwgLjEpICFkZWZhdWx0O1xuJHNvY2lhbC1jb2xvci1mYWNlYm9vazogIzNiNTk5OCAhZGVmYXVsdDtcbiRzb2NpYWwtY29sb3ItZmxpY2tyOiAjZmYwMDg0ICFkZWZhdWx0O1xuJHNvY2lhbC1jb2xvci1nb29nbGVwbHVzOiAjZGQ0YjM5ICFkZWZhdWx0O1xuJHNvY2lhbC1jb2xvci1pbnN0YWdyYW06ICM1MTdmYTQgIWRlZmF1bHQ7XG4kc29jaWFsLWNvbG9yLWxpbmtlZGluOiAjMDA3YmI2ICFkZWZhdWx0O1xuJHNvY2lhbC1jb2xvci1tYWlsOiAjMzMzICFkZWZhdWx0O1xuJHNvY2lhbC1jb2xvci1waW50ZXJlc3Q6ICNjYjIwMjcgIWRlZmF1bHQ7XG4kc29jaWFsLWNvbG9yLXR3aXR0ZXI6ICMwMGFjZWQgIWRlZmF1bHQ7XG4kc29jaWFsLWNvbG9yLXZpbWVvOiAjNDViY2Y5ICFkZWZhdWx0O1xuJHNvY2lhbC1jb2xvci15b3V0dWJlOiAjY2MxODFlICFkZWZhdWx0O1xuXG4vLyBQYWdpbmF0aW9uIGNvbG9yc1xuJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kOiAgICAgICAgICAgIHJnYmEoJGNvbnRlbnQtYmcsIDApICFkZWZhdWx0OyAvLyB0cmFuc3BhcmVudFxuJHBhZ2luYXRpb24taXRlbS1ib3JkZXItY29sb3I6ICAgICAgICAgICRwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZCAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWl0ZW0tY29sb3I6ICAgICAgICAgICAgICAgICAkY29udGVudC10ZXh0LWNvbG9yO1xuXG4kcGFnaW5hdGlvbi1jdXJyZW50LWl0ZW0tYmFja2dyb3VuZDogICAgJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1jdXJyZW50LWl0ZW0tYm9yZGVyLWNvbG9yOiAgJHBhZ2luYXRpb24tY3VycmVudC1pdGVtLWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1jdXJyZW50LWl0ZW0tY29sb3I6ICAgICAgICAgYWNjZXNzaWJsZS1sdW1pbmFuY2UoaWYobHVtYSgkcGFnaW5hdGlvbi1jdXJyZW50LWl0ZW0tYmFja2dyb3VuZCkgPCA1MCwgI2ZmZiwgIzAwMCksICRwYWdpbmF0aW9uLWN1cnJlbnQtaXRlbS1iYWNrZ3JvdW5kKSAhZGVmYXVsdDtcblxuJHBhZ2luYXRpb24taG92ZXItaXRlbS1iYWNrZ3JvdW5kOiAgICAgICRob3Zlci1jb2xvciAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWhvdmVyLWl0ZW0tYm9yZGVyLWNvbG9yOiAgICAkcGFnaW5hdGlvbi1ob3Zlci1pdGVtLWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1ob3Zlci1pdGVtLWNvbG9yOiAgICAgICAgICAgYWNjZXNzaWJsZS1sdW1pbmFuY2UoaWYobHVtYSgkcGFnaW5hdGlvbi1ob3Zlci1pdGVtLWJhY2tncm91bmQpIDwgNTAsICNmZmYsICMwMDApLCAkcGFnaW5hdGlvbi1ob3Zlci1pdGVtLWJhY2tncm91bmQpICFkZWZhdWx0OyIsIiRpbnB1dC1mb250LXNpemU6IHJlbS1jYWxjKDE2cHgpOyAvLyBPciAnMTZweCdcblxuJGdsb2JhbC1yYWRpdXM6IDQgIWRlZmF1bHQ7XG4kYnV0dG9uLXJhZGl1czogM3B4O1xuJGlucHV0LWJvcmRlci1yYWRpdXM6ICRidXR0b24tcmFkaXVzO1xuXG4vLyBUb3AgQmFyIFZhcmlhYmxlc1xuJGluY2x1ZGUtaHRtbC10b3AtYmFyLWNsYXNzZXM6IHRydWUhZGVmYXVsdDtcblxuLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgdGhlIHRvcCBiYXJcbiR0b3BiYXItYmctY29sb3I6ICRoZWFkZXItYmc7XG4kdG9wYmFyLWJnOiAkdG9wYmFyLWJnLWNvbG9yICFkZWZhdWx0O1xuJHNlYXJjaC1ib3gtaW5wdXQtaG92ZXItYmc6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRob3Zlci1jb2xvciwgJHRvcGJhci1iZyk7XG5cbi8vIEhlaWdodCBhbmQgbWFyZ2luXG4kdG9wYmFyLWhlaWdodDogcmVtLWNhbGMoODBweCkgIWRlZmF1bHQ7XG4kdG9wYmFyLWxpbmstcGFkZGluZzogcmVtLWNhbGMoMTBweCk7XG4kdG9wYmFyLW1hcmdpbi1ib3R0b206IDAgIWRlZmF1bHQ7XG5cbi8vIENvbnRyb2xsaW5nIHRoZSBzdHlsZXMgZm9yIHRoZSB0aXRsZSBpbiB0aGUgdG9wIGJhclxuJHRvcGJhci10aXRsZS13ZWlnaHQ6IGJvbGQgIWRlZmF1bHQ7XG4kdG9wYmFyLXRpdGxlLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTcpICFkZWZhdWx0O1xuXG4vLyBTdHlsZSB0aGUgdG9wIGJhciBkcm9wZG93biBlbGVtZW50c1xuJHRvcGJhci1kcm9wZG93bi1iZzogJHRvcGJhci1iZy1jb2xvciAhZGVmYXVsdDtcbiR0b3BiYXItZHJvcGRvd24tdG9nZ2xlLWFscGhhOiAxICFkZWZhdWx0O1xuXG4vLyBTZXQgdGhlIGxpbmsgY29sb3JzIGFuZCBzdHlsZXMgZm9yIHRvcC1sZXZlbCBuYXZcbiR0b3BiYXItbGluay1iZzogJHRvcGJhci1iZy1jb2xvciAhZGVmYXVsdDtcbiR0b3BiYXItbGluay1iZy1ob3ZlcjogJGhvdmVyLWNvbG9yICFkZWZhdWx0O1xuJHRvcGJhci1saW5rLWJnLWNvbG9yLWhvdmVyOiAkaG92ZXItY29sb3IgIWRlZmF1bHQ7XG4kdG9wYmFyLWxpbmstYmctYWN0aXZlOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcbiR0b3BiYXItbGluay1iZy1hY3RpdmUtaG92ZXI6IHNjYWxlLWNvbG9yKCRwcmltYXJ5LWNvbG9yLCAkbGlnaHRuZXNzOiAtMTQlKSAhZGVmYXVsdDtcbiR0b3BiYXItbGluay1jb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoaWYobHVtYSgkdG9wYmFyLWxpbmstYmcpIDwgNTAsIHdoaXRlLCBibGFjayksICR0b3BiYXItYmctY29sb3IpICFkZWZhdWx0O1xuJHRvcGJhci1saW5rLWNvbG9yLWhvdmVyOiBhY2Nlc3NpYmxlLWx1bWluYW5jZShpZihsdW1hKCRob3Zlci1jb2xvcikgPCA1MCwgd2hpdGUsIGJsYWNrKSwgJGhvdmVyLWNvbG9yKSAhZGVmYXVsdDtcbiR0b3BiYXItbGluay1jb2xvci1hY3RpdmU6IGFjY2Vzc2libGUtbHVtaW5hbmNlKGlmKGx1bWEoJHByaW1hcnktY29sb3IpIDwgNTAsIHdoaXRlLCAkdG9wYmFyLWJnLWNvbG9yKSwgJHByaW1hcnktY29sb3IpICFkZWZhdWx0O1xuJHRvcGJhci1saW5rLWNvbG9yLWFjdGl2ZS1ob3ZlcjogJHRvcGJhci1saW5rLWNvbG9yLWFjdGl2ZSAhZGVmYXVsdDtcbiR0b3BiYXItbGluay1ob3Zlci1saWdodG5lc3M6IDAlICFkZWZhdWx0OyAvLyBEYXJrZW4gYnkgMTAlXG5cbi8vIFRvcCBtZW51IGljb24gc3R5bGVzXG4kdG9wYmFyLW1lbnUtbGluay1jb2xvcjogJHRvcGJhci1saW5rLWNvbG9yICFkZWZhdWx0O1xuJHRvcGJhci1tZW51LWljb24tY29sb3I6ICR0b3BiYXItbGluay1jb2xvciAhZGVmYXVsdDtcbiR0b3BiYXItbWVudS1saW5rLWNvbG9yLXRvZ2dsZWQ6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuJHRvcGJhci1tZW51LWljb24tY29sb3ItdG9nZ2xlZDogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vIE5hdiBzdHlsZXNcbiRuYXYtZmlyc3QtbGV2ZWwtZm9udC1zaXplOiByZW0tY2FsYygxMykgIWRlZmF1bHQ7XG4kbmF2LWhvcml6b250YWwtc2lkZS1wYWRkaW5nOiAwICFkZWZhdWx0OyIsIkBpbXBvcnQgXCJmb3VuZGF0aW9uL2Z1bmN0aW9uc1wiO1xuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS9zdHlsZXMvY29sb3ItY29udHJhc3RcIjtcblxuQGltcG9ydCBcInF1aWNrZml4L25vcm1hbGl6ZVwiO1xuXG5AaW1wb3J0IFwiYm91cmJvbi9zZXR0aW5ncy9wcmVmaXhlclwiO1xuQGltcG9ydCBcImJvdXJib24vYWRkb25zL3ByZWZpeGVyXCI7XG5AaW1wb3J0IFwiYm91cmJvbi9jc3MzL2FuaW1hdGlvblwiO1xuQGltcG9ydCBcImJvdXJib24vY3NzMy9iYWNrZmFjZS12aXNpYmlsaXR5XCI7XG5AaW1wb3J0IFwiYm91cmJvbi9jc3MzL2JvcmRlci1yYWRpdXNcIjtcbkBpbXBvcnQgXCJib3VyYm9uL2NzczMvZmxleC1ib3hcIjtcbkBpbXBvcnQgXCJib3VyYm9uL2NzczMva2V5ZnJhbWVzXCI7XG5AaW1wb3J0IFwiYm91cmJvbi9jc3MzL2xpbmVhci1ncmFkaWVudFwiO1xuQGltcG9ydCBcImJvdXJib24vY3NzMy9wZXJzcGVjdGl2ZVwiO1xuQGltcG9ydCBcImJvdXJib24vY3NzMy90cmFuc2Zvcm1cIjtcbkBpbXBvcnQgXCJib3VyYm9uL2NzczMvdHJhbnNpdGlvblwiO1xuXG5AaW1wb3J0IFwiZm91bmRhdGlvbi9jb21wb25lbnRzL2FsZXJ0LWJveGVzXCI7XG5AaW1wb3J0IFwiZm91bmRhdGlvbi9jb21wb25lbnRzL2Jsb2NrLWdyaWRcIjtcbkBpbXBvcnQgXCJmb3VuZGF0aW9uL2NvbXBvbmVudHMvYnJlYWRjcnVtYnNcIjtcbkBpbXBvcnQgXCJmb3VuZGF0aW9uL2NvbXBvbmVudHMvZm9ybXNcIjtcbkBpbXBvcnQgXCJmb3VuZGF0aW9uL2NvbXBvbmVudHMvZ3JpZFwiO1xuQGltcG9ydCBcImZvdW5kYXRpb24vY29tcG9uZW50cy9pbmxpbmUtbGlzdHNcIjtcbkBpbXBvcnQgXCJmb3VuZGF0aW9uL2NvbXBvbmVudHMvdGFibGVzXCI7XG5AaW1wb3J0IFwiZm91bmRhdGlvbi9jb21wb25lbnRzL3RhYnNcIjtcbkBpbXBvcnQgXCJmb3VuZGF0aW9uL2NvbXBvbmVudHMvdGh1bWJzXCI7XG5AaW1wb3J0IFwiZm91bmRhdGlvbi9jb21wb25lbnRzL3R5cGVcIjtcbkBpbXBvcnQgXCJmb3VuZGF0aW9uL2NvbXBvbmVudHMvdmlzaWJpbGl0eVwiO1xuXG5AaW1wb3J0IFwicXVpY2tmaXgvbGVnYWN5L2ljb25zXCI7XG5cbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvc3R5bGVzL2xpbmstdmlzaWJpbGl0eS1maXhcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvbGF5b3V0L2dyaWQtZXh0cmFzXCI7XG5AaW1wb3J0IFwicXVpY2tmaXgvbGVnYWN5L2xheW91dC9iYXNlXCI7XG5AaW1wb3J0IFwicXVpY2tmaXgvbGVnYWN5L2xheW91dC9oZWFkZXJcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvbGF5b3V0L21haW5cIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvbGF5b3V0L2Zvb3Rlci9mb290ZXJcIjtcblxuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS9hbGVydC1ib3hlc1wiO1xuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS9hbmltYXRpb25cIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvYmVzdHNlbGxlclwiO1xuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS9ibG9jay1pbWFnZS1ncmlkXCI7XG5AaW1wb3J0IFwicXVpY2tmaXgvbGVnYWN5L2Jsb2Nrc1wiO1xuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS9ibG9ja3MtYmFubmVyc1wiO1xuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS9ib3JkZXJlZFwiO1xuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS9icmVhZGNydW1ic1wiO1xuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS9idXR0b25zXCI7XG5AaW1wb3J0IFwicXVpY2tmaXgvbGVnYWN5L2J4c2xpZGVyXCI7XG5AaW1wb3J0IFwicXVpY2tmaXgvbGVnYWN5L2NhcnRfYnV0dG9uXCI7XG5AaW1wb3J0IFwicXVpY2tmaXgvbGVnYWN5L2NoZWNrb3V0XCI7XG5AaW1wb3J0IFwicXVpY2tmaXgvbGVnYWN5L2NoZWNrb3V0X2tjb1wiO1xuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS9jb21tZW50c1wiO1xuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS9jb29raWUtbm90aWNlXCI7XG5AaW1wb3J0IFwicXVpY2tmaXgvbGVnYWN5L2VxdWFsLWhlaWdodC1jb2x1bW5zXCI7XG5AaW1wb3J0IFwicXVpY2tmaXgvbGVnYWN5L2ZhbmN5Ym94XCI7XG5AaW1wb3J0IFwicXVpY2tmaXgvbGVnYWN5L2Zvcm1zXCI7XG5AaW1wb3J0IFwicXVpY2tmaXgvbGVnYWN5L2tsYXJuYVwiO1xuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS9sYW5ndWFnZS1jdXJyZW5jeVwiO1xuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS9wYWdlc1wiO1xuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS9wYWdpbmF0aW9uXCI7XG5AaW1wb3J0IFwicXVpY2tmaXgvbGVnYWN5L3Byb2R1Y3RcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvcHJvZHVjdC1zZWFyY2hcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvcmF0aW5nXCI7XG5AaW1wb3J0IFwicXVpY2tmaXgvbGVnYWN5L3JlYWRvbi1pY29uLWNlbnRlcmVkLW9uLWhvdmVyXCI7XG5AaW1wb3J0IFwicXVpY2tmaXgvbGVnYWN5L3NlYXJjaC1ib3hcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvc2xpZGVyXCI7XG5AaW1wb3J0IFwicXVpY2tmaXgvbGVnYWN5L3NvY2lhbC1idXR0b25zXCI7XG5AaW1wb3J0IFwicXVpY2tmaXgvbGVnYWN5L3NwaW5uZXJcIjtcbkBpbXBvcnQgXCJxdWlja2ZpeC9sZWdhY3kvc3BsaXRtZW51XCI7XG5AaW1wb3J0IFwicXVpY2tmaXgvbGVnYWN5L3RhYmxlc1wiO1xuQGltcG9ydCBcInF1aWNrZml4L2xlZ2FjeS90YWJzXCI7XG5AaW1wb3J0IFwicXVpY2tmaXgvbGVnYWN5L3RoZW1lZC1uYXZpZ2F0aW9uXCI7XG5AaW1wb3J0IFwicXVpY2tmaXgvbGVnYWN5L3R5cG9ncmFwaHlcIjtcblxuLy8gQ29tbW9uIHN0dWZmIGZvciBhbGwgdGhlbWVzXG5AaW1wb3J0IFwicXVpY2tmaXgvY29tbW9uXCI7XG5cbkBpbXBvcnQgXCJxdWlja2ZpeC9ibG9ja3MvcGFnaW5hdGlvblwiO1xuXG5AaW1wb3J0IFwicXVpY2tmaXgvY29tcG9uZW50cy9ob3ZlcmZ4XCI7IiwiQGlmIGxlbmd0aCgkY29sb3ItZWxlbWVudHMpICE9IGxlbmd0aCgkY29sb3ItZWxlbWVudHMtY29sb3JzKSB7XG4gICAgQHdhcm4gXCJMZW5ndGggb2YgJGNvbG9yLWVsZW1lbnRzIGRvZXMgbm90IG1hdGNoIGxlbmd0aCBvZiAkY29sb3ItZWxlbWVudHMtY29sb3JzXCI7XG59XG5cbkBpZiBsZW5ndGgoJHNlY3Rpb24tc2VsZWN0b3JzKSAhPSBsZW5ndGgoJHNlY3Rpb24tYmFja2dyb3VuZHMpIHtcbiAgICBAd2FybiBcIkxlbmd0aCBvZiAkc2VjdGlvbi1zZWxlY3RvcnMgZG9lcyBub3QgbWF0Y2ggbGVuZ3RoIG9mICRzZWN0aW9uLWJhY2tncm91bmRzXCI7XG59XG5cbi8qKlxuICogQ3JlYXRlIGFuIGVsZW1lbnQgd2l0aCBhIGNvbG9yZWQgYmFja2dyb3VuZFxuICpcbiAqIFRoaXMgbWl4aW4gb3V0cHV0cyBhIGNvbG9yIGFuZCBhIGJhY2tncm91bmQgY29sb3JcbiAqIFxuICogQHBhcmFtICBzdHJpbmcgJGNvbG9yICAgICAgICAgICAgICAgICAgICBUaGUgYmFja2dyb3VuZCBjb2xvciB5b3Ugd2FudCB0byB1c2UsIGZvciBpbnN0YW5jZSAjZmZjYzAwXG4gKiBAcGFyYW0gIHN0cmluZyAkZm9yZWdyb3VuZC1jb2xvcjogI2ZmZiAgIFRoZSBmb3JlZ3JvdW5kL3RleHQgY29sb3IgeW91IHdhbnQgdG8gdXNlLiBUaGlzIHdpbGwgaGF2ZSBhbiBhY2Nlc3NpYmxlIGx1bWluYW5jZSwgYWRqdXN0ZWQgdG8gd29yayB3aXRoICRjb2xvclxuICogQHBhcmFtICBzdHJpbmcgJGJhY2tncm91bmQtY29sb3I6ICNmZmYgICBUaGUgYmFja2dyb3VuZCBvbiB3aGljaCB0aGUgZWxlbWVudCBpcyBzaXR1YXRlZCAoZWxlbWVudHMgYmFja2dyb3VuZCB3aWxsIGJlIGFkanVzdGVkIHRvIGhhdmUgYXQgbGVhc3QgYSBzbWFsbCBjb250cmFzdCB0byB0aGlzKVxuICovXG5AbWl4aW4gY29sb3JlZC1iZy1lbGVtZW50KCRjb2xvciwgJGZvcmVncm91bmQtY29sb3I6ICNmZmYsICRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmKSB7XG4gICAgJGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkY29sb3IsICRiYWNrZ3JvdW5kLWNvbG9yLCAxLjUpO1xuICAgIGJhY2tncm91bmQ6ICRjb2xvcjtcbiAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGZvcmVncm91bmQtY29sb3IsICRjb2xvcik7XG59XG5cbi8vIENhbiB3ZSBjb21iaW5lIHRoZSBzdHlsZXMgZm9yIHNvbWUgb2YgdGhlIGhlYWRlcnMgdG8gcmVkdWNlIHRoZSBzaXplIG9mIG91ciBjc3M/XG4kdW5pcXVlLXNlY3Rpb25zOiAoKTtcbiR1bmlxdWUtYmFja2dyb3VuZHM6ICgpO1xuJHVuaXF1ZS1zZWxlY3RvcnM6ICgpO1xuJHNoYXJlZC1zZWN0aW9uczogKCk7XG5cbkBmb3IgJGkgZnJvbSAxIHRocm91Z2ggbGVuZ3RoKCRzZWN0aW9uLWJhY2tncm91bmRzKSB7XG4gICAgJHRlc3RpbmctYmFja2dyb3VuZDogbnRoKCRzZWN0aW9uLWJhY2tncm91bmRzLCAkaSk7XG4gICAgJGJhY2tncm91bmQtcG9zaXRpb246IGluZGV4KCR1bmlxdWUtYmFja2dyb3VuZHMsICR0ZXN0aW5nLWJhY2tncm91bmQpO1xuICAgIFxuICAgIEBpZiAkYmFja2dyb3VuZC1wb3NpdGlvbiA9PSBmYWxzZSBvciAkYmFja2dyb3VuZC1wb3NpdGlvbiA9PSBudWxsIHtcbiAgICAgICAgJHVuaXF1ZS1iYWNrZ3JvdW5kczogYXBwZW5kKCR1bmlxdWUtYmFja2dyb3VuZHMsICR0ZXN0aW5nLWJhY2tncm91bmQpO1xuICAgICAgICAkdW5pcXVlLXNlbGVjdG9yczogYXBwZW5kKCR1bmlxdWUtc2VsZWN0b3JzLCBudGgoJHNlY3Rpb24tc2VsZWN0b3JzLCAkaSkpO1xuICAgICAgICAkdW5pcXVlLXNlY3Rpb25zOiBhcHBlbmQoJHVuaXF1ZS1zZWN0aW9ucywgbnRoKCRzZWN0aW9ucywgJGkpKTtcbiAgICAgICAgJHNoYXJlZC1zZWN0aW9uczogYXBwZW5kKCRzaGFyZWQtc2VjdGlvbnMsIG50aCgkc2VjdGlvbnMsICRpKSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAgICRleGlzdGluZy1iZy1wb3NpdGlvbjogaW5kZXgoJHVuaXF1ZS1iYWNrZ3JvdW5kcywgJHRlc3RpbmctYmFja2dyb3VuZCk7XG4gICAgICAgICRzaGFyZWQtc2VjdGlvbnM6IGFwcGVuZCgkc2hhcmVkLXNlY3Rpb25zLCBudGgoJHVuaXF1ZS1zZWN0aW9ucywgJGV4aXN0aW5nLWJnLXBvc2l0aW9uKSk7XG4gICAgfVxufVxuXG4kY29udGVudC1zZWN0aW9uLWRvbmU6IGZhbHNlO1xuXG4vLyBPdXRwdXQgc2VjdGlvbnMgd2l0aCB0aGVpciBjb2xvcnMsIGJvcmRlcnMgYW5kIGJhY2tncm91bmRzXG5AZm9yICRpIGZyb20gMSB0aHJvdWdoIGxlbmd0aCgkdW5pcXVlLXNlY3Rpb25zKSB7XG4gICAgJHNlY3Rpb24tYmFja2dyb3VuZDogbnRoKCR1bmlxdWUtYmFja2dyb3VuZHMsICRpKTtcbiAgICAkc2VjdGlvbi1saW5rLWNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkcHJpbWFyeS1jb2xvciwgJHNlY3Rpb24tYmFja2dyb3VuZCk7XG5cbiAgICAvLyBTZXQgdGV4dCBjb2xvclxuICAgICRzZWN0aW9uLXRleHQtY29sb3I6IGlmKFxuICAgICAgICBsdW1hKCRzZWN0aW9uLWJhY2tncm91bmQpIDwgNTAsXG4gICAgICAgIGFjY2Vzc2libGUtbHVtaW5hbmNlKCRsaWdodC1ib2R5LXRleHQsICRzZWN0aW9uLWJhY2tncm91bmQpLFxuICAgICAgICBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkZGFyay1ib2R5LXRleHQsICRzZWN0aW9uLWJhY2tncm91bmQpXG4gICAgKTtcblxuICAgIC8vIEVtcGhhc2lzIHRleHQgY29sb3Igc2hvdWxkIGJlIG9mIGNyZWF0ZXIgY29udHJhc3QgdGhhbiB0aGUgdGV4dCBjb2xvclxuICAgICRzZWN0aW9uLWVtcGhhc2lzLXRleHQtY29sb3I6IGlmKFxuICAgICAgICBsdW1hKCRzZWN0aW9uLXRleHQtY29sb3IpID4gbHVtYSgkc2VjdGlvbi1iYWNrZ3JvdW5kKSxcbiAgICAgICAgbGlnaHRlbigkc2VjdGlvbi10ZXh0LWNvbG9yLCA3JSksXG4gICAgICAgIGRhcmtlbigkc2VjdGlvbi10ZXh0LWNvbG9yLCA3JSlcbiAgICApO1xuXG4gICAgLy8gTGluayBob3ZlciBjb2xvciBzaG91bGQgYmUgb2YgZ3JlYXRlciBjb250cmFzdCB0aGFuIHRoZSBsaW5rIGNvbG9yXG4gICAgJHNlY3Rpb24tbGluay1ob3Zlci1jb2xvcjogaWYoXG4gICAgICAgIGx1bWEoJHNlY3Rpb24tbGluay1jb2xvcikgPiBsdW1hKCRzZWN0aW9uLWJhY2tncm91bmQpLFxuICAgICAgICBsaWdodGVuKCRzZWN0aW9uLWxpbmstY29sb3IsIDEwJSksXG4gICAgICAgIGRhcmtlbigkc2VjdGlvbi1saW5rLWNvbG9yLCAxMCUpXG4gICAgKTtcblxuICAgICUje250aCgkdW5pcXVlLXNlY3Rpb25zLCAkaSl9LXBsYWNlaG9sZGVyX19zdWJ0bGUge1xuICAgICAgICBjb2xvcjogJHNlY3Rpb24tdGV4dC1jb2xvcjtcbiAgICB9XG5cbiAgICAlI3tudGgoJHVuaXF1ZS1zZWN0aW9ucywgJGkpfS1wbGFjZWhvbGRlcl9fbmV1dHJhbC1saW5rIHtcbiAgICAgICAgY29sb3I6ICRzZWN0aW9uLXRleHQtY29sb3I7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZWN0aW9uLWVtcGhhc2lzLXRleHQtY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAlI3tudGgoJHVuaXF1ZS1zZWN0aW9ucywgJGkpfS1wbGFjZWhvbGRlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZWN0aW9uLWJhY2tncm91bmQ7XG4gICAgICAgIGNvbG9yOiAkc2VjdGlvbi10ZXh0LWNvbG9yO1xuXG4gICAgICAgIGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYge1xuICAgICAgICAgICAgY29sb3I6ICRzZWN0aW9uLWVtcGhhc2lzLXRleHQtY29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBMaW5rcyBub3Qgb24gYSBjb2xvcmVkIGJhY2tncm91bmQgYW5kIG5vdCBzZXQgdG8gbmV1dHJhbCBzaG91bGQgYmUgYWNjZXNzaWJsZVxuICAgICAgICBhIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2VjdGlvbi1saW5rLWNvbG9yO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZWN0aW9uLWxpbmstaG92ZXItY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuc3VidGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2VjdGlvbi10ZXh0LWNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgLmJvcmRlcmVkIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgkc2VjdGlvbi10ZXh0LWNvbG9yLCAkYm9yZGVyLWRlZmF1bHQtb3BhY2l0eSk7XG4gICAgICAgIH1cblxuICAgICAgICAuYm9yZGVyZWQtLWhhcmQge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKCRzZWN0aW9uLXRleHQtY29sb3IsICRib3JkZXItZGVmYXVsdC1ob3Zlci1vcGFjaXR5KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGEuYm9yZGVyZWQ6aG92ZXIsXG4gICAgICAgIGEuYm9yZGVyZWQ6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKCRzZWN0aW9uLXRleHQtY29sb3IsICRib3JkZXItaGFyZC1vcGFjaXR5KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGEuYm9yZGVyZWQtLWhhcmQ6aG92ZXIsXG4gICAgICAgIGEuYm9yZGVyZWQtLWhhcmQ6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKCRzZWN0aW9uLXRleHQtY29sb3IsICRib3JkZXItaGFyZC1ob3Zlci1vcGFjaXR5KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5uZXV0cmFsLWxpbmssXG4gICAgICAgIC5uZXV0cmFsLWxpbmsgPiBhIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2VjdGlvbi10ZXh0LWNvbG9yO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNlY3Rpb24tZW1waGFzaXMtdGV4dC1jb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIERlZmluZSAucHJpbWFyeS1jb2xvciwgLnNlY29uZGFyeS1jb2xvciBldGMuXG4gICAgICAgIEBmb3IgJGogZnJvbSAxIHRocm91Z2ggbGVuZ3RoKCRjb2xvci1lbGVtZW50cykge1xuICAgICAgICAgICAgJGNvbG9yLWVsZW1lbnQtYmc6IGFjY2Vzc2libGUtbHVtaW5hbmNlKG50aCgkY29sb3ItZWxlbWVudHMtY29sb3JzLCAkaiksICRzZWN0aW9uLWJhY2tncm91bmQsIDEuNSk7XG4gICAgICAgICAgICAkY29sb3ItZWxlbWVudC1iZy1saW5rOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgjZmZmLCAkY29sb3ItZWxlbWVudC1iZyk7XG5cbiAgICAgICAgICAgIC4je250aCgkY29sb3ItZWxlbWVudHMsICRqKX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZShudGgoJGNvbG9yLWVsZW1lbnRzLWNvbG9ycywgJGopLCAkc2VjdGlvbi1iYWNrZ3JvdW5kKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gTmVlZCBsZXNzIGNvbnRyYXN0IGFkanVzdG1lbnQgZm9yIGl0ZW1zIHdpdGggbGFyZ2UgdGV4dCAoMThweCBvciBtb3JlKVxuICAgICAgICAgICAgLiN7bnRoKCRjb2xvci1lbGVtZW50cywgJGopfS1iaWcge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZShudGgoJGNvbG9yLWVsZW1lbnRzLWNvbG9ycywgJGopLCAkc2VjdGlvbi1iYWNrZ3JvdW5kLCAzKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLiN7bnRoKCRjb2xvci1lbGVtZW50cywgJGopfS1iZyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWVsZW1lbnQtYmc7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRjb2xvci1lbGVtZW50LWJnLWxpbms7XG5cbiAgICAgICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRjb2xvci1lbGVtZW50LWJnLWxpbms7XG5cbiAgICAgICAgICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGNvbG9yLWVsZW1lbnQtYmctbGluaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oJGNvbG9yLWVsZW1lbnQtYmcsIDEwJSlcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkY29sb3ItZWxlbWVudC1iZy1saW5rO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCRjb2xvci1lbGVtZW50LWJnLCAxMCUpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAvLyBGb3VuZGF0aW9uIGJ1dHRvbiBjb21wb25lbnRzIHVzZSBwcmltYXJ5IGJnIGJ5IGRlZmF1bHQgb24gYnV0dG9uc1xuICAgICAgICBidXR0b24sIC5idXR0b24ge1xuICAgICAgICAgICAgLy8gVGhpcyBpcyBob3cgdGhlIHZhcmlhYmxlIGlzIGRlZmluZWQgaW50ZXJuYWxseSBpbiBGb3VuZGF0aW9uXG4gICAgICAgICAgICAvLyBXZSBkb24ndCBkZWZpbmUgdGhpcyB2YXJpYWJsZSBpbiBvdXIgdGhlbWVzIHlldCwgc28gd2UgaGF2ZSBpdCBoZXJlIGlmL3VudGlsIHdlIGRvXG4gICAgICAgICAgICAkYnV0dG9uLWNvbG9yLWJnOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgJF9idXR0b24tY29sb3ItYmc6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRidXR0b24tY29sb3ItYmcsICRzZWN0aW9uLWJhY2tncm91bmQsIDEuNSk7XG4gICAgICAgICAgICAkX2J1dHRvbi1jb2xvci1mb250OiBhY2Nlc3NpYmxlLWx1bWluYW5jZShpZihsdW1hKCRfYnV0dG9uLWNvbG9yLWJnKSA8IDUwLCAjZmZmLCAjMDAwKSwgJF9idXR0b24tY29sb3ItYmcpO1xuICAgICAgICAgICAgJF9idXR0b24taG92ZXItY29sb3ItYmc6IGFjY2Vzc2libGUtbHVtaW5hbmNlKGFjY2Vzc2libGUtbHVtaW5hbmNlKCRob3Zlci1jb2xvciwgJF9idXR0b24tY29sb3ItYmcsIDEuMjUpLCAkc2VjdGlvbi1iYWNrZ3JvdW5kLCAyKTtcbiAgICAgICAgICAgICRfYnV0dG9uLWhvdmVyLWNvbG9yLXRleHQ6IGFjY2Vzc2libGUtbHVtaW5hbmNlKGlmKGx1bWEoJF9idXR0b24taG92ZXItY29sb3ItYmcpIDwgNTAsICNmZmYsICMwMDApLCAkX2J1dHRvbi1ob3Zlci1jb2xvci1iZyk7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgICYsIFxuICAgICAgICAgICAgJi5kaXNhYmxlZCxcbiAgICAgICAgICAgICYuZGlzYWJsZWQ6aG92ZXIsXG4gICAgICAgICAgICAmLmRpc2FibGVkOmZvY3VzLCBcbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJltkaXNhYmxlZF06aG92ZXIsXG4gICAgICAgICAgICAmW2Rpc2FibGVkXTpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJF9idXR0b24tY29sb3ItYmc7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRfYnV0dG9uLWNvbG9yLWZvbnQ7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICRidXR0b24tZm9udC13ZWlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBcbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJF9idXR0b24taG92ZXItY29sb3ItdGV4dDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkX2J1dHRvbi1ob3Zlci1jb2xvci1iZztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBcbiAgICAvLyBQbGFjZWhvbGRlcnMgc2VsZWN0b3JzIHlvdSBjYW4gdXNlIHZpYSBAZXh0ZW5kICU8cGxhY2Vob2xkZXIgbmFtZT4gaW4geW91ciBjb250ZW50IHNlY3Rpb24uXG4gICAgQGlmICRjb250ZW50LXNlY3Rpb24tZG9uZSA9PSBmYWxzZSBhbmQgJHNlY3Rpb24tYmFja2dyb3VuZCA9PSAkY29udGVudC1iZyB7XG4gICAgICAgICVjb250ZW50X19ib3JkZXJlZCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoJHNlY3Rpb24tdGV4dC1jb2xvciwgMC4yKTtcbiAgICAgICAgfVxuXG4gICAgICAgICVjb250ZW50X19ib3JkZXJlZC0taGFyZCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoJHNlY3Rpb24tdGV4dC1jb2xvciwgMC41KTtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgLy8gQ29sb3IgZWxlbWVudHMgcGxhY2Vob2xkZXJzXG4gICAgICAgIEBmb3IgJGogZnJvbSAxIHRocm91Z2ggbGVuZ3RoKCRjb2xvci1lbGVtZW50cykge1xuICAgICAgICAgICAgJGNvbG9yLWVsZW1lbnQtYmc6IGFjY2Vzc2libGUtbHVtaW5hbmNlKG50aCgkY29sb3ItZWxlbWVudHMtY29sb3JzLCAkaiksICRjb250ZW50LWJnLCAxLjUpO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICAlY29udGVudF9fI3tudGgoJGNvbG9yLWVsZW1lbnRzLCAkail9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UobnRoKCRjb2xvci1lbGVtZW50cy1jb2xvcnMsICRqKSwgJGNvbnRlbnQtYmcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAlY29udGVudF9fI3tudGgoJGNvbG9yLWVsZW1lbnRzLCAkail9LWJpZyB7XG4gICAgICAgICAgICAgICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKG50aCgkY29sb3ItZWxlbWVudHMtY29sb3JzLCAkaiksICRjb250ZW50LWJnLCAzKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJWNvbnRlbnRfXyN7bnRoKCRjb2xvci1lbGVtZW50cywgJGopfS1iZyB7XG4gICAgICAgICAgICAgICAgJGNvbG9yLWVsZW1lbnQtY29sb3I6IGlmKGx1bWEoJGNvbG9yLWVsZW1lbnQtYmcpIDwgNTAsICNmZmYsICMwMDApO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1lbGVtZW50LWJnO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkY29sb3ItZWxlbWVudC1jb2xvciwgJGNvbG9yLWVsZW1lbnQtYmcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJGNvbnRlbnQtc2VjdGlvbi1kb25lOiB0cnVlO1xuICAgIH1cbn1cblxuLy8gRWF0aW5nIG91ciBvd24gZG9nZm9vZCwgeW91IGNhbiBAZXh0ZW5kICVjb250ZW50LXBsYWNlaG9sZGVyIHdoZXJldmVyIHlvdSB3YW50XG5AZm9yICRpIGZyb20gMSB0aHJvdWdoIGxlbmd0aCgkc2VjdGlvbi1zZWxlY3RvcnMpIHtcbiAgICBcbiAgICAje250aCgkc2VjdGlvbi1zZWxlY3RvcnMsICRpKX0ge1xuICAgICAgICBAZXh0ZW5kICUje250aCgkc2hhcmVkLXNlY3Rpb25zLCAkaSl9LXBsYWNlaG9sZGVyO1xuICAgIH1cblxuICAgIEBpZiBudGgoJHNoYXJlZC1zZWN0aW9ucywgJGkpICE9IG50aCgkc2VjdGlvbnMsICRpKSB7XG4gICAgICAgIC8vIEFsbG93aW5nIGNvbWJpbmVkIHBsYWNlaG9sZGVycyB0byBiZSB1c2VkXG4gICAgICAgICUje250aCgkc2VjdGlvbnMsICRpKX0tcGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgQGV4dGVuZCAlI3tudGgoJHNoYXJlZC1zZWN0aW9ucywgJGkpfS1wbGFjZWhvbGRlcjtcbiAgICAgICAgfVxuICAgICAgICAlI3tudGgoJHNlY3Rpb25zLCAkaSl9LXBsYWNlaG9sZGVyX19zdWJ0bGUge1xuICAgICAgICAgICAgQGV4dGVuZCAlI3tudGgoJHNoYXJlZC1zZWN0aW9ucywgJGkpfS1wbGFjZWhvbGRlcl9fc3VidGxlO1xuICAgICAgICB9XG4gICAgICAgICUje250aCgkc2VjdGlvbnMsICRpKX0tcGxhY2Vob2xkZXJfX25ldXRyYWwtbGluayB7XG4gICAgICAgICAgICBAZXh0ZW5kICUje250aCgkc2hhcmVkLXNlY3Rpb25zLCAkaSl9LXBsYWNlaG9sZGVyX19uZXV0cmFsLWxpbms7XG4gICAgICAgIH1cbiAgICB9XG5cbn1cbiIsIi8qISBub3JtYWxpemUuY3NzIHYzLjAuMiB8IE1JVCBMaWNlbnNlIHwgZ2l0LmlvL25vcm1hbGl6ZSAqL1xuXG4vKipcbiAqIDEuIFNldCBkZWZhdWx0IGZvbnQgZmFtaWx5IHRvIHNhbnMtc2VyaWYuXG4gKiAyLiBQcmV2ZW50IGlPUyB0ZXh0IHNpemUgYWRqdXN0IGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZSwgd2l0aG91dCBkaXNhYmxpbmdcbiAqICAgIHVzZXIgem9vbS5cbiAqL1xuXG5odG1sIHtcbiAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7IC8qIDEgKi9cbiAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIGRlZmF1bHQgbWFyZ2luLlxuICovXG5cbmJvZHkge1xuICBtYXJnaW46IDA7XG59XG5cbi8qIEhUTUw1IGRpc3BsYXkgZGVmaW5pdGlvbnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGFueSBIVE1MNSBlbGVtZW50IGluIElFIDgvOS5cbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgZGV0YWlsc2Agb3IgYHN1bW1hcnlgIGluIElFIDEwLzExXG4gKiBhbmQgRmlyZWZveC5cbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgbWFpbmAgaW4gSUUgMTEuXG4gKi9cblxuYXJ0aWNsZSxcbmFzaWRlLFxuZGV0YWlscyxcbmZpZ2NhcHRpb24sXG5maWd1cmUsXG5mb290ZXIsXG5oZWFkZXIsXG5oZ3JvdXAsXG5tYWluLFxubWVudSxcbm5hdixcbnNlY3Rpb24sXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCBgaW5saW5lLWJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGluIElFIDgvOS5cbiAqIDIuIE5vcm1hbGl6ZSB2ZXJ0aWNhbCBhbGlnbm1lbnQgb2YgYHByb2dyZXNzYCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiAqL1xuXG5hdWRpbyxcbmNhbnZhcyxcbnByb2dyZXNzLFxudmlkZW8ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IC8qIDEgKi9cbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyAvKiAyICovXG59XG5cbi8qKlxuICogUHJldmVudCBtb2Rlcm4gYnJvd3NlcnMgZnJvbSBkaXNwbGF5aW5nIGBhdWRpb2Agd2l0aG91dCBjb250cm9scy5cbiAqIFJlbW92ZSBleGNlc3MgaGVpZ2h0IGluIGlPUyA1IGRldmljZXMuXG4gKi9cblxuYXVkaW86bm90KFtjb250cm9sc10pIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgaGVpZ2h0OiAwO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgYFtoaWRkZW5dYCBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS8xMC5cbiAqIEhpZGUgdGhlIGB0ZW1wbGF0ZWAgZWxlbWVudCBpbiBJRSA4LzkvMTEsIFNhZmFyaSwgYW5kIEZpcmVmb3ggPCAyMi5cbiAqL1xuXG5baGlkZGVuXSxcbnRlbXBsYXRlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLyogTGlua3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgY29sb3IgZnJvbSBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4gKi9cblxuYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4vKipcbiAqIEltcHJvdmUgcmVhZGFiaWxpdHkgd2hlbiBmb2N1c2VkIGFuZCBhbHNvIG1vdXNlIGhvdmVyZWQgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmE6YWN0aXZlLFxuYTpob3ZlciB7XG4gIG91dGxpbmU6IDA7XG59XG5cbi8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkvMTAvMTEsIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuXG5hYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQ7XG59XG5cbi8qKlxuICogQWRkcmVzcyBzdHlsZSBzZXQgdG8gYGJvbGRlcmAgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICovXG5cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXG4gKi9cblxuZGZuIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgdmFyaWFibGUgYGgxYCBmb250LXNpemUgYW5kIG1hcmdpbiB3aXRoaW4gYHNlY3Rpb25gIGFuZCBgYXJ0aWNsZWBcbiAqIGNvbnRleHRzIGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuXG5oMSB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBtYXJnaW46IDAuNjdlbSAwO1xufVxuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkuXG4gKi9cblxubWFyayB7XG4gIGJhY2tncm91bmQ6ICNmZjA7XG4gIGNvbG9yOiAjMDAwO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgaW5jb25zaXN0ZW50IGFuZCB2YXJpYWJsZSBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7XG59XG5cbi8qKlxuICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgYWZmZWN0aW5nIGBsaW5lLWhlaWdodGAgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnN1YixcbnN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbnN1cCB7XG4gIHRvcDogLTAuNWVtO1xufVxuXG5zdWIge1xuICBib3R0b206IC0wLjI1ZW07XG59XG5cbi8qIEVtYmVkZGVkIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIGJvcmRlciB3aGVuIGluc2lkZSBgYWAgZWxlbWVudCBpbiBJRSA4LzkvMTAuXG4gKi9cblxuaW1nIHtcbiAgYm9yZGVyOiAwO1xufVxuXG4vKipcbiAqIENvcnJlY3Qgb3ZlcmZsb3cgbm90IGhpZGRlbiBpbiBJRSA5LzEwLzExLlxuICovXG5cbnN2Zzpub3QoOnJvb3QpIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLyogR3JvdXBpbmcgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBBZGRyZXNzIG1hcmdpbiBub3QgcHJlc2VudCBpbiBJRSA4LzkgYW5kIFNhZmFyaS5cbiAqL1xuXG5maWd1cmUge1xuICBtYXJnaW46IDFlbSA0MHB4O1xufVxuXG4vKipcbiAqIEFkZHJlc3MgZGlmZmVyZW5jZXMgYmV0d2VlbiBGaXJlZm94IGFuZCBvdGhlciBicm93c2Vycy5cbiAqL1xuXG5ociB7XG4gIC1tb3otYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICBoZWlnaHQ6IDA7XG59XG5cbi8qKlxuICogQ29udGFpbiBvdmVyZmxvdyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxucHJlIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi8qKlxuICogQWRkcmVzcyBvZGQgYGVtYC11bml0IGZvbnQgc2l6ZSByZW5kZXJpbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmNvZGUsXG5rYmQsXG5wcmUsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICBmb250LXNpemU6IDFlbTtcbn1cblxuLyogRm9ybXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogS25vd24gbGltaXRhdGlvbjogYnkgZGVmYXVsdCwgQ2hyb21lIGFuZCBTYWZhcmkgb24gT1MgWCBhbGxvdyB2ZXJ5IGxpbWl0ZWRcbiAqIHN0eWxpbmcgb2YgYHNlbGVjdGAsIHVubGVzcyBhIGBib3JkZXJgIHByb3BlcnR5IGlzIHNldC5cbiAqL1xuXG4vKipcbiAqIDEuIENvcnJlY3QgY29sb3Igbm90IGJlaW5nIGluaGVyaXRlZC5cbiAqICAgIEtub3duIGlzc3VlOiBhZmZlY3RzIGNvbG9yIG9mIGRpc2FibGVkIGVsZW1lbnRzLlxuICogMi4gQ29ycmVjdCBmb250IHByb3BlcnRpZXMgbm90IGJlaW5nIGluaGVyaXRlZC5cbiAqIDMuIEFkZHJlc3MgbWFyZ2lucyBzZXQgZGlmZmVyZW50bHkgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICovXG5cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGNvbG9yOiBpbmhlcml0OyAvKiAxICovXG4gIGZvbnQ6IGluaGVyaXQ7IC8qIDIgKi9cbiAgbWFyZ2luOiAwOyAvKiAzICovXG59XG5cbi8qKlxuICogQWRkcmVzcyBgb3ZlcmZsb3dgIHNldCB0byBgaGlkZGVuYCBpbiBJRSA4LzkvMTAvMTEuXG4gKi9cblxuYnV0dG9uIHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbi8qKlxuICogQWRkcmVzcyBpbmNvbnNpc3RlbnQgYHRleHQtdHJhbnNmb3JtYCBpbmhlcml0YW5jZSBmb3IgYGJ1dHRvbmAgYW5kIGBzZWxlY3RgLlxuICogQWxsIG90aGVyIGZvcm0gY29udHJvbCBlbGVtZW50cyBkbyBub3QgaW5oZXJpdCBgdGV4dC10cmFuc2Zvcm1gIHZhbHVlcy5cbiAqIENvcnJlY3QgYGJ1dHRvbmAgc3R5bGUgaW5oZXJpdGFuY2UgaW4gRmlyZWZveCwgSUUgOC85LzEwLzExLCBhbmQgT3BlcmEuXG4gKiBDb3JyZWN0IGBzZWxlY3RgIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3guXG4gKi9cblxuYnV0dG9uLFxuc2VsZWN0IHtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8qKlxuICogMS4gQXZvaWQgdGhlIFdlYktpdCBidWcgaW4gQW5kcm9pZCA0LjAuKiB3aGVyZSAoMikgZGVzdHJveXMgbmF0aXZlIGBhdWRpb2BcbiAqICAgIGFuZCBgdmlkZW9gIGNvbnRyb2xzLlxuICogMi4gQ29ycmVjdCBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIGBpbnB1dGAgdHlwZXMgaW4gaU9TLlxuICogMy4gSW1wcm92ZSB1c2FiaWxpdHkgYW5kIGNvbnNpc3RlbmN5IG9mIGN1cnNvciBzdHlsZSBiZXR3ZWVuIGltYWdlLXR5cGVcbiAqICAgIGBpbnB1dGAgYW5kIG90aGVycy5cbiAqL1xuXG5idXR0b24sXG5odG1sIGlucHV0W3R5cGU9XCJidXR0b25cIl0sIC8qIDEgKi9cbmlucHV0W3R5cGU9XCJyZXNldFwiXSxcbmlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLyogMiAqL1xuICBjdXJzb3I6IHBvaW50ZXI7IC8qIDMgKi9cbn1cblxuLyoqXG4gKiBSZS1zZXQgZGVmYXVsdCBjdXJzb3IgZm9yIGRpc2FibGVkIGVsZW1lbnRzLlxuICovXG5cbmJ1dHRvbltkaXNhYmxlZF0sXG5odG1sIGlucHV0W2Rpc2FibGVkXSB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLyoqXG4gKiBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgYm9yZGVyIGluIEZpcmVmb3ggNCsuXG4gKi9cblxuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuaW5wdXQ6Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi8qKlxuICogQWRkcmVzcyBGaXJlZm94IDQrIHNldHRpbmcgYGxpbmUtaGVpZ2h0YCBvbiBgaW5wdXRgIHVzaW5nIGAhaW1wb3J0YW50YCBpblxuICogdGhlIFVBIHN0eWxlc2hlZXQuXG4gKi9cblxuaW5wdXQge1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xufVxuXG4vKipcbiAqIEl0J3MgcmVjb21tZW5kZWQgdGhhdCB5b3UgZG9uJ3QgYXR0ZW1wdCB0byBzdHlsZSB0aGVzZSBlbGVtZW50cy5cbiAqIEZpcmVmb3gncyBpbXBsZW1lbnRhdGlvbiBkb2Vzbid0IHJlc3BlY3QgYm94LXNpemluZywgcGFkZGluZywgb3Igd2lkdGguXG4gKlxuICogMS4gQWRkcmVzcyBib3ggc2l6aW5nIHNldCB0byBgY29udGVudC1ib3hgIGluIElFIDgvOS8xMC5cbiAqIDIuIFJlbW92ZSBleGNlc3MgcGFkZGluZyBpbiBJRSA4LzkvMTAuXG4gKi9cblxuaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLFxuaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICBwYWRkaW5nOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogRml4IHRoZSBjdXJzb3Igc3R5bGUgZm9yIENocm9tZSdzIGluY3JlbWVudC9kZWNyZW1lbnQgYnV0dG9ucy4gRm9yIGNlcnRhaW5cbiAqIGBmb250LXNpemVgIHZhbHVlcyBvZiB0aGUgYGlucHV0YCwgaXQgY2F1c2VzIHRoZSBjdXJzb3Igc3R5bGUgb2YgdGhlXG4gKiBkZWNyZW1lbnQgYnV0dG9uIHRvIGNoYW5nZSBmcm9tIGBkZWZhdWx0YCB0byBgdGV4dGAuXG4gKi9cblxuaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbi8qKlxuICogMS4gQWRkcmVzcyBgYXBwZWFyYW5jZWAgc2V0IHRvIGBzZWFyY2hmaWVsZGAgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXG4gKiAyLiBBZGRyZXNzIGBib3gtc2l6aW5nYCBzZXQgdG8gYGJvcmRlci1ib3hgIGluIFNhZmFyaSBhbmQgQ2hyb21lXG4gKiAgICAoaW5jbHVkZSBgLW1vemAgdG8gZnV0dXJlLXByb29mKS5cbiAqL1xuXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8qIDEgKi9cbiAgLW1vei1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLyogMiAqL1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbn1cblxuLyoqXG4gKiBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgc2VhcmNoIGNhbmNlbCBidXR0b24gaW4gU2FmYXJpIGFuZCBDaHJvbWUgb24gT1MgWC5cbiAqIFNhZmFyaSAoYnV0IG5vdCBDaHJvbWUpIGNsaXBzIHRoZSBjYW5jZWwgYnV0dG9uIHdoZW4gdGhlIHNlYXJjaCBpbnB1dCBoYXNcbiAqIHBhZGRpbmcgKGFuZCBgdGV4dGZpZWxkYCBhcHBlYXJhbmNlKS5cbiAqL1xuXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLyoqXG4gKiBEZWZpbmUgY29uc2lzdGVudCBib3JkZXIsIG1hcmdpbiwgYW5kIHBhZGRpbmcuXG4gKi9cblxuZmllbGRzZXQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuICBtYXJnaW46IDAgMnB4O1xuICBwYWRkaW5nOiAwLjM1ZW0gMC42MjVlbSAwLjc1ZW07XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCBgY29sb3JgIG5vdCBiZWluZyBpbmhlcml0ZWQgaW4gSUUgOC85LzEwLzExLlxuICogMi4gUmVtb3ZlIHBhZGRpbmcgc28gcGVvcGxlIGFyZW4ndCBjYXVnaHQgb3V0IGlmIHRoZXkgemVybyBvdXQgZmllbGRzZXRzLlxuICovXG5cbmxlZ2VuZCB7XG4gIGJvcmRlcjogMDsgLyogMSAqL1xuICBwYWRkaW5nOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFIDgvOS8xMC8xMS5cbiAqL1xuXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4vKipcbiAqIERvbid0IGluaGVyaXQgdGhlIGBmb250LXdlaWdodGAgKGFwcGxpZWQgYnkgYSBydWxlIGFib3ZlKS5cbiAqIE5PVEU6IHRoZSBkZWZhdWx0IGNhbm5vdCBzYWZlbHkgYmUgY2hhbmdlZCBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBPUyBYLlxuICovXG5cbm9wdGdyb3VwIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi8qIFRhYmxlc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgbW9zdCBzcGFjaW5nIGJldHdlZW4gdGFibGUgY2VsbHMuXG4gKi9cblxudGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBib3JkZXItc3BhY2luZzogMDtcbn1cblxudGQsXG50aCB7XG4gIHBhZGRpbmc6IDA7XG59XG4iLCIvLyBWYXJpYWJsZSBzZXR0aW5ncyBmb3IgL2FkZG9ucy9wcmVmaXhlci5zY3NzXG4kcHJlZml4LWZvci13ZWJraXQ6ICAgIHRydWUgIWRlZmF1bHQ7XG4kcHJlZml4LWZvci1tb3ppbGxhOiAgIHRydWUgIWRlZmF1bHQ7XG4kcHJlZml4LWZvci1taWNyb3NvZnQ6IHRydWUgIWRlZmF1bHQ7XG4kcHJlZml4LWZvci1vcGVyYTogICAgIHRydWUgIWRlZmF1bHQ7XG4kcHJlZml4LWZvci1zcGVjOiAgICAgIHRydWUgIWRlZmF1bHQ7IC8vIHJlcXVpcmVkIGZvciBrZXlmcmFtZSBtaXhpblxuIiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuLy8gRXhhbXBsZTogQGluY2x1ZGUgcHJlZml4ZXIoYm9yZGVyLXJhZGl1cywgJHJhZGlpLCB3ZWJraXQgbXMgc3BlYyk7XG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4vLyBWYXJpYWJsZXMgbG9jYXRlZCBpbiAvc2V0dGluZ3MvX3ByZWZpeGVyLnNjc3NcblxuQG1peGluIHByZWZpeGVyICgkcHJvcGVydHksICR2YWx1ZSwgJHByZWZpeGVzKSB7XG4gIEBlYWNoICRwcmVmaXggaW4gJHByZWZpeGVzIHtcbiAgICBAaWYgJHByZWZpeCA9PSB3ZWJraXQge1xuICAgICAgQGlmICRwcmVmaXgtZm9yLXdlYmtpdCB7XG4gICAgICAgIC13ZWJraXQtI3skcHJvcGVydHl9OiAkdmFsdWU7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIGlmICRwcmVmaXggPT0gbW96IHtcbiAgICAgIEBpZiAkcHJlZml4LWZvci1tb3ppbGxhIHtcbiAgICAgICAgLW1vei0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2UgaWYgJHByZWZpeCA9PSBtcyB7XG4gICAgICBAaWYgJHByZWZpeC1mb3ItbWljcm9zb2Z0IHtcbiAgICAgICAgLW1zLSN7JHByb3BlcnR5fTogJHZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSBpZiAkcHJlZml4ID09IG8ge1xuICAgICAgQGlmICRwcmVmaXgtZm9yLW9wZXJhIHtcbiAgICAgICAgLW8tI3skcHJvcGVydHl9OiAkdmFsdWU7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIGlmICRwcmVmaXggPT0gc3BlYyB7XG4gICAgICBAaWYgJHByZWZpeC1mb3Itc3BlYyB7XG4gICAgICAgICN7JHByb3BlcnR5fTogJHZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSAge1xuICAgICAgQHdhcm4gXCJVbnJlY29nbml6ZWQgcHJlZml4OiAjeyRwcmVmaXh9XCI7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBkaXNhYmxlLXByZWZpeC1mb3ItYWxsKCkge1xuICAkcHJlZml4LWZvci13ZWJraXQ6ICAgIGZhbHNlO1xuICAkcHJlZml4LWZvci1tb3ppbGxhOiAgIGZhbHNlO1xuICAkcHJlZml4LWZvci1taWNyb3NvZnQ6IGZhbHNlO1xuICAkcHJlZml4LWZvci1vcGVyYTogICAgIGZhbHNlO1xuICAkcHJlZml4LWZvci1zcGVjOiAgICAgIGZhbHNlO1xufVxuIiwiLy8gaHR0cDovL3d3dy53My5vcmcvVFIvY3NzMy1hbmltYXRpb25zLyN0aGUtYW5pbWF0aW9uLW5hbWUtcHJvcGVydHktXG4vLyBFYWNoIG9mIHRoZXNlIG1peGlucyBzdXBwb3J0IGNvbW1hIHNlcGFyYXRlZCBsaXN0cyBvZiB2YWx1ZXMsIHdoaWNoIGFsbG93cyBkaWZmZXJlbnQgdHJhbnNpdGlvbnMgZm9yIGluZGl2aWR1YWwgcHJvcGVydGllcyB0byBiZSBkZXNjcmliZWQgaW4gYSBzaW5nbGUgc3R5bGUgcnVsZS4gRWFjaCB2YWx1ZSBpbiB0aGUgbGlzdCBjb3JyZXNwb25kcyB0byB0aGUgdmFsdWUgYXQgdGhhdCBzYW1lIHBvc2l0aW9uIGluIHRoZSBvdGhlciBwcm9wZXJ0aWVzLlxuXG4vLyBPZmZpY2lhbCBhbmltYXRpb24gc2hvcnRoYW5kIHByb3BlcnR5LlxuQG1peGluIGFuaW1hdGlvbiAoJGFuaW1hdGlvbnMuLi4pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLCAkYW5pbWF0aW9ucywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuLy8gSW5kaXZpZHVhbCBBbmltYXRpb24gUHJvcGVydGllc1xuQG1peGluIGFuaW1hdGlvbi1uYW1lICgkbmFtZXMuLi4pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLW5hbWUsICRuYW1lcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuXG5AbWl4aW4gYW5pbWF0aW9uLWR1cmF0aW9uICgkdGltZXMuLi4pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWR1cmF0aW9uLCAkdGltZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cblxuQG1peGluIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb24gKCRtb3Rpb25zLi4uKSB7XG4vLyBlYXNlIHwgbGluZWFyIHwgZWFzZS1pbiB8IGVhc2Utb3V0IHwgZWFzZS1pbi1vdXRcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbiwgJG1vdGlvbnMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cblxuQG1peGluIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQgKCR2YWx1ZXMuLi4pIHtcbi8vIGluZmluaXRlIHwgPG51bWJlcj5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCwgJHZhbHVlcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuXG5AbWl4aW4gYW5pbWF0aW9uLWRpcmVjdGlvbiAoJGRpcmVjdGlvbnMuLi4pIHtcbi8vIG5vcm1hbCB8IGFsdGVybmF0ZVxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tZGlyZWN0aW9uLCAkZGlyZWN0aW9ucywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuXG5AbWl4aW4gYW5pbWF0aW9uLXBsYXktc3RhdGUgKCRzdGF0ZXMuLi4pIHtcbi8vIHJ1bm5pbmcgfCBwYXVzZWRcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLXBsYXktc3RhdGUsICRzdGF0ZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cblxuQG1peGluIGFuaW1hdGlvbi1kZWxheSAoJHRpbWVzLi4uKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1kZWxheSwgJHRpbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5cbkBtaXhpbiBhbmltYXRpb24tZmlsbC1tb2RlICgkbW9kZXMuLi4pIHtcbi8vIG5vbmUgfCBmb3J3YXJkcyB8IGJhY2t3YXJkcyB8IGJvdGhcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWZpbGwtbW9kZSwgJG1vZGVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuIiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuLy8gQmFja2ZhY2UtdmlzaWJpbGl0eSBtaXhpblxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuQG1peGluIGJhY2tmYWNlLXZpc2liaWxpdHkoJHZpc2liaWxpdHkpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYmFja2ZhY2UtdmlzaWJpbGl0eSwgJHZpc2liaWxpdHksIHdlYmtpdCBzcGVjKTtcbn1cbiIsIi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbi8vIFNob3J0aGFuZCBCb3JkZXItcmFkaXVzIG1peGluc1xuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuQG1peGluIGJvcmRlci10b3AtcmFkaXVzKCRyYWRpaSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3JkZXItdG9wLWxlZnQtcmFkaXVzLCAkcmFkaWksIHNwZWMpO1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3JkZXItdG9wLXJpZ2h0LXJhZGl1cywgJHJhZGlpLCBzcGVjKTtcbn1cblxuQG1peGluIGJvcmRlci1ib3R0b20tcmFkaXVzKCRyYWRpaSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzLCAkcmFkaWksIHNwZWMpO1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1cywgJHJhZGlpLCBzcGVjKTtcbn1cblxuQG1peGluIGJvcmRlci1sZWZ0LXJhZGl1cygkcmFkaWkpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm9yZGVyLXRvcC1sZWZ0LXJhZGl1cywgJHJhZGlpLCBzcGVjKTtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1cywgJHJhZGlpLCBzcGVjKTtcbn1cblxuQG1peGluIGJvcmRlci1yaWdodC1yYWRpdXMoJHJhZGlpKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJvcmRlci10b3AtcmlnaHQtcmFkaXVzLCAkcmFkaWksIHNwZWMpO1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1cywgJHJhZGlpLCBzcGVjKTtcbn1cbiIsIi8vIENTUzMgRmxleGlibGUgQm94IE1vZGVsIGFuZCBwcm9wZXJ0eSBkZWZhdWx0c1xuXG4vLyBDdXN0b20gc2hvcnRoYW5kIG5vdGF0aW9uIGZvciBmbGV4Ym94XG5AbWl4aW4gYm94KCRvcmllbnQ6IGlubGluZS1heGlzLCAkcGFjazogc3RhcnQsICRhbGlnbjogc3RyZXRjaCkge1xuICBAaW5jbHVkZSBkaXNwbGF5LWJveDtcbiAgQGluY2x1ZGUgYm94LW9yaWVudCgkb3JpZW50KTtcbiAgQGluY2x1ZGUgYm94LXBhY2soJHBhY2spO1xuICBAaW5jbHVkZSBib3gtYWxpZ24oJGFsaWduKTtcbn1cblxuQG1peGluIGRpc3BsYXktYm94IHtcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gIGRpc3BsYXk6IC1tb3otYm94O1xuICBkaXNwbGF5OiAtbXMtZmxleGJveDsgLy8gSUUgMTBcbiAgZGlzcGxheTogYm94O1xufVxuXG5AbWl4aW4gYm94LW9yaWVudCgkb3JpZW50OiBpbmxpbmUtYXhpcykge1xuLy8gaG9yaXpvbnRhbHx2ZXJ0aWNhbHxpbmxpbmUtYXhpc3xibG9jay1heGlzfGluaGVyaXRcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LW9yaWVudCwgJG9yaWVudCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGJveC1wYWNrKCRwYWNrOiBzdGFydCkge1xuLy8gc3RhcnR8ZW5kfGNlbnRlcnxqdXN0aWZ5XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1wYWNrLCAkcGFjaywgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtcGFjazogJHBhY2s7IC8vIElFIDEwXG59XG5cbkBtaXhpbiBib3gtYWxpZ24oJGFsaWduOiBzdHJldGNoKSB7XG4vLyBzdGFydHxlbmR8Y2VudGVyfGJhc2VsaW5lfHN0cmV0Y2hcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWFsaWduLCAkYWxpZ24sIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LWFsaWduOiAkYWxpZ247IC8vIElFIDEwXG59XG5cbkBtaXhpbiBib3gtZGlyZWN0aW9uKCRkaXJlY3Rpb246IG5vcm1hbCkge1xuLy8gbm9ybWFsfHJldmVyc2V8aW5oZXJpdFxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZGlyZWN0aW9uLCAkZGlyZWN0aW9uLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1kaXJlY3Rpb246ICRkaXJlY3Rpb247IC8vIElFIDEwXG59XG5cbkBtaXhpbiBib3gtbGluZXMoJGxpbmVzOiBzaW5nbGUpIHtcbi8vIHNpbmdsZXxtdWx0aXBsZVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtbGluZXMsICRsaW5lcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGJveC1vcmRpbmFsLWdyb3VwKCRpbnQ6IDEpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LW9yZGluYWwtZ3JvdXAsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LW9yZGVyOiAkaW50OyAvLyBJRSAxMFxufVxuXG5AbWl4aW4gYm94LWZsZXgoJHZhbHVlOiAwLjApIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWZsZXgsICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXg6ICR2YWx1ZTsgLy8gSUUgMTBcbn1cblxuQG1peGluIGJveC1mbGV4LWdyb3VwKCRpbnQ6IDEpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWZsZXgtZ3JvdXAsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbi8vIENTUzMgRmxleGlibGUgQm94IE1vZGVsIGFuZCBwcm9wZXJ0eSBkZWZhdWx0c1xuLy8gVW5pZmllZCBhdHRyaWJ1dGVzIGZvciAyMDA5LCAyMDExLCBhbmQgMjAxMiBmbGF2b3Vycy5cblxuLy8gMjAwOSAtIGRpc3BsYXkgKGJveCB8IGlubGluZS1ib3gpXG4vLyAyMDExIC0gZGlzcGxheSAoZmxleGJveCB8IGlubGluZS1mbGV4Ym94KVxuLy8gMjAxMiAtIGRpc3BsYXkgKGZsZXggfCBpbmxpbmUtZmxleClcbkBtaXhpbiBkaXNwbGF5KCR2YWx1ZSkge1xuLy8gIGZsZXggfCBpbmxpbmUtZmxleFxuICAgIEBpZiAkdmFsdWUgPT0gXCJmbGV4XCIge1xuICAgICAgICAvLyAyMDA5XG4gICAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgICAgICBkaXNwbGF5OiAtbW96LWJveDtcbiAgICAgICAgZGlzcGxheTogYm94O1xuXG4gICAgICAgIC8vIDIwMTJcbiAgICAgICAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICAgICAgICBkaXNwbGF5OiAtbW96LWZsZXg7XG4gICAgICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94OyAvLyAyMDExIChJRSAxMClcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICB9XG5cbiAgICBAZWxzZWlmICR2YWx1ZSA9PSBcImlubGluZS1mbGV4XCIge1xuICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWlubGluZS1ib3g7XG4gICAgICAgIGRpc3BsYXk6IC1tb3otaW5saW5lLWJveDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJveDtcblxuICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWlubGluZS1mbGV4O1xuICAgICAgICBkaXNwbGF5OiAtbW96LWlubGluZS1mbGV4O1xuICAgICAgICBkaXNwbGF5OiAtbXMtaW5saW5lLWZsZXhib3g7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIH1cblxuICAgIEBlbHNlIHtcbiAgICAgICAgZGlzcGxheTogJHZhbHVlO1xuICAgIH1cbn1cblxuLy8gMjAwOSAtIGJveC1mbGV4IChpbnRlZ2VyKVxuLy8gMjAxMSAtIGZsZXggKGRlY2ltYWwgfCB3aWR0aCBkZWNpbWFsKVxuLy8gMjAxMiAtIGZsZXggKGludGVnZXIgaW50ZWdlciB3aWR0aClcbkBtaXhpbiBmbGV4KCR2YWx1ZSkge1xuXG4gICAgLy8gR3JhYiBmbGV4LWdyb3cgZm9yIG9sZGVyIGJyb3dzZXJzLlxuICAgICRmbGV4LWdyb3c6IG50aCgkdmFsdWUsIDEpO1xuXG4gICAgLy8gMjAwOVxuICAgIEBpbmNsdWRlIHByZWZpeGVyKGJveC1mbGV4LCAkZmxleC1ncm93LCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gICAgLy8gMjAxMSAoSUUgMTApLCAyMDEyXG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleCwgJHZhbHVlLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xufVxuXG4vLyAyMDA5IC0gYm94LW9yaWVudCAoIGhvcml6b250YWwgfCB2ZXJ0aWNhbCB8IGlubGluZS1heGlzIHwgYmxvY2stYXhpcylcbi8vICAgICAgLSBib3gtZGlyZWN0aW9uIChub3JtYWwgfCByZXZlcnNlKSAgICAgIFxuLy8gMjAxMSAtIGZsZXgtZGlyZWN0aW9uIChyb3cgfCByb3ctcmV2ZXJzZSB8IGNvbHVtbiB8IGNvbHVtbi1yZXZlcnNlKVxuLy8gMjAxMiAtIGZsZXgtZGlyZWN0aW9uIChyb3cgfCByb3ctcmV2ZXJzZSB8IGNvbHVtbiB8IGNvbHVtbi1yZXZlcnNlKVxuQG1peGluIGZsZXgtZGlyZWN0aW9uKCR2YWx1ZTogcm93KSB7XG5cbiAgICAvLyBBbHQgdmFsdWVzLlxuICAgICR2YWx1ZS0yMDA5OiAkdmFsdWU7XG4gICAgJHZhbHVlLTIwMTE6ICR2YWx1ZTtcbiAgICAkZGlyZWN0aW9uOiBcIm5vcm1hbFwiO1xuXG4gICAgQGlmICR2YWx1ZSA9PSByb3cge1xuICAgICAgICAkdmFsdWUtMjAwOTogaG9yaXpvbnRhbDtcbiAgICB9XG5cbiAgICBAZWxzZWlmICR2YWx1ZSA9PSBcInJvdy1yZXZlcnNlXCIge1xuICAgICAgICAkdmFsdWUtMjAwOTogaG9yaXpvbnRhbDtcbiAgICAgICAgJGRpcmVjdGlvbjogcmV2ZXJzZTtcbiAgICB9XG5cbiAgICBAZWxzZWlmICR2YWx1ZSA9PSBjb2x1bW4ge1xuICAgICAgICAkdmFsdWUtMjAwOTogdmVydGljYWw7XG4gICAgfVxuXG4gICAgQGVsc2VpZiAkdmFsdWUgPT0gXCJjb2x1bW4tcmV2ZXJzZVwiIHtcbiAgICAgICAgJHZhbHVlLTIwMDk6IHZlcnRpY2FsO1xuICAgICAgICAkZGlyZWN0aW9uOiByZXZlcnNlO1xuICAgIH1cblxuICAgIC8vIDIwMDlcbiAgICBAaW5jbHVkZSBwcmVmaXhlcihib3gtb3JpZW50LCAkdmFsdWUtMjAwOSwgd2Via2l0IG1veiBzcGVjKTtcbiAgICBAaWYgJGRpcmVjdGlvbiA9PSBcInJldmVyc2VcIiB7XG4gICAgICAgIEBpbmNsdWRlIHByZWZpeGVyKGJveC1kaXJlY3Rpb24sICRkaXJlY3Rpb24sIHdlYmtpdCBtb3ogc3BlYyk7XG4gICAgfVxuXG4gICAgLy8gMjAxMlxuICAgIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtZGlyZWN0aW9uLCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgICAvLyAyMDExIChJRSAxMClcbiAgICAtbXMtZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbn1cblxuLy8gMjAwOSAtIGJveC1saW5lcyAoc2luZ2xlIHwgbXVsdGlwbGUpXG4vLyAyMDExIC0gZmxleC13cmFwIChub3dyYXAgfCB3cmFwIHwgd3JhcC1yZXZlcnNlKVxuLy8gMjAxMiAtIGZsZXgtd3JhcCAobm93cmFwIHwgd3JhcCB8IHdyYXAtcmV2ZXJzZSlcbkBtaXhpbiBmbGV4LXdyYXAoJHZhbHVlOiBub3dyYXApIHtcblxuICAgIC8vIEFsdCB2YWx1ZXMuXG4gICAgJGFsdC12YWx1ZTogJHZhbHVlO1xuICAgIEBpZiAkdmFsdWUgPT0gbm93cmFwIHtcbiAgICAgICAgJGFsdC12YWx1ZTogc2luZ2xlO1xuICAgIH1cblxuICAgIEBlbHNlaWYgJHZhbHVlID09IHdyYXAge1xuICAgICAgICAkYWx0LXZhbHVlOiBtdWx0aXBsZTtcbiAgICB9XG5cbiAgICBAZWxzZWlmICR2YWx1ZSA9PSBcIndyYXAtcmV2ZXJzZVwiIHtcbiAgICAgICAgJGFsdC12YWx1ZTogbXVsdGlwbGU7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWxpbmVzLCAkYWx0LXZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuICAgIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtd3JhcCwgJHZhbHVlLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xufVxuXG4vLyAyMDA5IC0gVE9ETzogcGFyc2UgdmFsdWVzIGludG8gZmxleC1kaXJlY3Rpb24vZmxleC13cmFwXG4vLyAyMDExIC0gVE9ETzogcGFyc2UgdmFsdWVzIGludG8gZmxleC1kaXJlY3Rpb24vZmxleC13cmFwXG4vLyAyMDEyIC0gZmxleC1mbG93IChmbGV4LWRpcmVjdGlvbiB8fCBmbGV4LXdyYXApXG5AbWl4aW4gZmxleC1mbG93KCR2YWx1ZSkge1xuICAgIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtZmxvdywgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG4vLyAyMDA5IC0gYm94LW9yZGluYWwtZ3JvdXAgKGludGVnZXIpXG4vLyAyMDExIC0gZmxleC1vcmRlciAoaW50ZWdlcilcbi8vIDIwMTIgLSBvcmRlciAoaW50ZWdlcilcbkBtaXhpbiBvcmRlcigkaW50OiAwKSB7XG4gICAgLy8gMjAwOVxuICAgIEBpbmNsdWRlIHByZWZpeGVyKGJveC1vcmRpbmFsLWdyb3VwLCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gICAgLy8gMjAxMlxuICAgIEBpbmNsdWRlIHByZWZpeGVyKG9yZGVyLCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gICAgLy8gMjAxMSAoSUUgMTApXG4gICAgLW1zLWZsZXgtb3JkZXI6ICRpbnQ7XG59XG5cbi8vIDIwMTIgLSBmbGV4LWdyb3cgKG51bWJlcilcbkBtaXhpbiBmbGV4LWdyb3coJG51bWJlcjogMCkge1xuICAgIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtZ3JvdywgJG51bWJlciwgd2Via2l0IG1veiBzcGVjKTtcbiAgICAtbXMtZmxleC1wb3NpdGl2ZTogJG51bWJlcjtcbn1cblxuLy8gMjAxMiAtIGZsZXgtc2hyaW5rIChudW1iZXIpXG5AbWl4aW4gZmxleC1zaHJpbmsoJG51bWJlcjogMSkge1xuICAgIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtc2hyaW5rLCAkbnVtYmVyLCB3ZWJraXQgbW96IHNwZWMpO1xuICAgIC1tcy1mbGV4LW5lZ2F0aXZlOiAkbnVtYmVyO1xufVxuXG4vLyAyMDEyIC0gZmxleC1iYXNpcyAobnVtYmVyKVxuQG1peGluIGZsZXgtYmFzaXMoJHdpZHRoOiBhdXRvKSB7XG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1iYXNpcywgJHdpZHRoLCB3ZWJraXQgbW96IHNwZWMpO1xuICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiAkd2lkdGg7XG59XG5cbi8vIDIwMDkgLSBib3gtcGFjayAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBqdXN0aWZ5KVxuLy8gMjAxMSAtIGZsZXgtcGFjayAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBqdXN0aWZ5KVxuLy8gMjAxMiAtIGp1c3RpZnktY29udGVudCAoZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgc3BhY2UtYmV0d2VlbiB8IHNwYWNlLWFyb3VuZClcbkBtaXhpbiBqdXN0aWZ5LWNvbnRlbnQgKCR2YWx1ZTogZmxleC1zdGFydCkge1xuXG4gICAgLy8gQWx0IHZhbHVlcy5cbiAgICAkYWx0LXZhbHVlOiAkdmFsdWU7XG4gICAgQGlmICR2YWx1ZSA9PSBcImZsZXgtc3RhcnRcIiB7XG4gICAgICAgICRhbHQtdmFsdWU6IHN0YXJ0O1xuICAgIH1cblxuICAgIEBlbHNlaWYgJHZhbHVlID09IFwiZmxleC1lbmRcIiB7XG4gICAgICAgICRhbHQtdmFsdWU6IGVuZDtcbiAgICB9XG5cbiAgICBAZWxzZWlmICR2YWx1ZSA9PSBcInNwYWNlLWJldHdlZW5cIiB7XG4gICAgICAgICRhbHQtdmFsdWU6IGp1c3RpZnk7XG4gICAgfVxuXG4gICAgQGVsc2VpZiAkdmFsdWUgPT0gXCJzcGFjZS1hcm91bmRcIiB7XG4gICAgICAgICRhbHQtdmFsdWU6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAvLyAyMDA5XG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LXBhY2ssICRhbHQtdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgICAvLyAyMDEyXG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoanVzdGlmeS1jb250ZW50LCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcblxuICAgIC8vIDIwMTEgKElFIDEwKVxuICAgIC1tcy1mbGV4LXBhY2s6ICRhbHQtdmFsdWU7XG59XG5cbi8vIDIwMDkgLSBib3gtYWxpZ24gKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxuLy8gMjAxMSAtIGZsZXgtYWxpZ24gKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxuLy8gMjAxMiAtIGFsaWduLWl0ZW1zIChmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXG5AbWl4aW4gYWxpZ24taXRlbXMoJHZhbHVlOiBzdHJldGNoKSB7XG5cbiAgICAkYWx0LXZhbHVlOiAkdmFsdWU7XG5cbiAgICBAaWYgJHZhbHVlID09IFwiZmxleC1zdGFydFwiIHtcbiAgICAgICAgJGFsdC12YWx1ZTogc3RhcnQ7XG4gICAgfSAgICBcblxuICAgIEBlbHNlaWYgJHZhbHVlID09IFwiZmxleC1lbmRcIiB7XG4gICAgICAgICRhbHQtdmFsdWU6IGVuZDtcbiAgICB9XG5cbiAgICAvLyAyMDA5XG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWFsaWduLCAkYWx0LXZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gICAgLy8gMjAxMlxuICAgIEBpbmNsdWRlIHByZWZpeGVyKGFsaWduLWl0ZW1zLCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcbiAgICBcbiAgICAvLyAyMDExIChJRSAxMClcbiAgICAtbXMtZmxleC1hbGlnbjogJGFsdC12YWx1ZTsgICAgXG59XG5cbi8vIDIwMTEgLSBmbGV4LWl0ZW0tYWxpZ24gKGF1dG8gfCBzdGFydCB8IGVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcbi8vIDIwMTIgLSBhbGlnbi1zZWxmIChhdXRvIHwgZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxuQG1peGluIGFsaWduLXNlbGYoJHZhbHVlOiBhdXRvKSB7XG5cbiAgICAkdmFsdWUtMjAxMTogJHZhbHVlO1xuICAgIEBpZiAkdmFsdWUgPT0gXCJmbGV4LXN0YXJ0XCIge1xuICAgICAgICAkdmFsdWUtMjAxMTogc3RhcnQ7XG4gICAgfSAgICBcblxuICAgIEBlbHNlaWYgJHZhbHVlID09IFwiZmxleC1lbmRcIiB7XG4gICAgICAgICR2YWx1ZS0yMDExOiBlbmQ7XG4gICAgfVxuXG4gICAgLy8gMjAxMlxuICAgIEBpbmNsdWRlIHByZWZpeGVyKGFsaWduLXNlbGYsICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcblxuICAgIC8vIDIwMTEgKElFIDEwKVxuICAgIC1tcy1mbGV4LWl0ZW0tYWxpZ246ICR2YWx1ZS0yMDExO1xufVxuXG4vLyAyMDExIC0gZmxleC1saW5lLXBhY2sgKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwganVzdGlmeSB8IGRpc3RyaWJ1dGUgfCBzdHJldGNoKVxuLy8gMjAxMiAtIGFsaWduLWNvbnRlbnQgKGZsZXgtc3RhcnQgfCBmbGV4LWVuZCB8IGNlbnRlciB8IHNwYWNlLWJldHdlZW4gfCBzcGFjZS1hcm91bmQgfCBzdHJldGNoKVxuQG1peGluIGFsaWduLWNvbnRlbnQoJHZhbHVlOiBzdHJldGNoKSB7XG5cbiAgICAkdmFsdWUtMjAxMTogJHZhbHVlO1xuICAgIEBpZiAkdmFsdWUgPT0gXCJmbGV4LXN0YXJ0XCIge1xuICAgICAgICAkdmFsdWUtMjAxMTogc3RhcnQ7XG4gICAgfSAgICBcblxuICAgIEBlbHNlaWYgJHZhbHVlID09IFwiZmxleC1lbmRcIiB7XG4gICAgICAgICR2YWx1ZS0yMDExOiBlbmQ7XG4gICAgfVxuXG4gICAgQGVsc2VpZiAkdmFsdWUgPT0gXCJzcGFjZS1iZXR3ZWVuXCIge1xuICAgICAgICAkdmFsdWUtMjAxMToganVzdGlmeTtcbiAgICB9XG5cbiAgICBAZWxzZWlmICR2YWx1ZSA9PSBcInNwYWNlLWFyb3VuZFwiIHtcbiAgICAgICAgJHZhbHVlLTIwMTE6IGRpc3RyaWJ1dGU7XG4gICAgfVxuXG4gICAgLy8gMjAxMlxuICAgIEBpbmNsdWRlIHByZWZpeGVyKGFsaWduLWNvbnRlbnQsICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcblxuICAgIC8vIDIwMTEgKElFIDEwKVxuICAgIC1tcy1mbGV4LWxpbmUtcGFjazogJHZhbHVlLTIwMTE7XG59XG5cbiIsIi8vIEFkZHMga2V5ZnJhbWVzIGJsb2NrcyBmb3Igc3VwcG9ydGVkIHByZWZpeGVzLCByZW1vdmluZyByZWR1bmRhbnQgcHJlZml4ZXMgaW4gdGhlIGJsb2NrJ3MgY29udGVudFxuQG1peGluIGtleWZyYW1lcygkbmFtZSkge1xuICAkb3JpZ2luYWwtcHJlZml4LWZvci13ZWJraXQ6ICAgICRwcmVmaXgtZm9yLXdlYmtpdDtcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3ItbW96aWxsYTogICAkcHJlZml4LWZvci1tb3ppbGxhO1xuICAkb3JpZ2luYWwtcHJlZml4LWZvci1taWNyb3NvZnQ6ICRwcmVmaXgtZm9yLW1pY3Jvc29mdDtcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3Itb3BlcmE6ICAgICAkcHJlZml4LWZvci1vcGVyYTtcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3Itc3BlYzogICAgICAkcHJlZml4LWZvci1zcGVjO1xuXG4gIEBpZiAkb3JpZ2luYWwtcHJlZml4LWZvci13ZWJraXQge1xuICAgIEBpbmNsdWRlIGRpc2FibGUtcHJlZml4LWZvci1hbGwoKTtcbiAgICAkcHJlZml4LWZvci13ZWJraXQ6IHRydWU7XG4gICAgQC13ZWJraXQta2V5ZnJhbWVzICN7JG5hbWV9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuICBAaWYgJG9yaWdpbmFsLXByZWZpeC1mb3ItbW96aWxsYSB7XG4gICAgQGluY2x1ZGUgZGlzYWJsZS1wcmVmaXgtZm9yLWFsbCgpO1xuICAgICRwcmVmaXgtZm9yLW1vemlsbGE6IHRydWU7XG4gICAgQC1tb3ota2V5ZnJhbWVzICN7JG5hbWV9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuXG4gICRwcmVmaXgtZm9yLXdlYmtpdDogICAgJG9yaWdpbmFsLXByZWZpeC1mb3Itd2Via2l0O1xuICAkcHJlZml4LWZvci1tb3ppbGxhOiAgICRvcmlnaW5hbC1wcmVmaXgtZm9yLW1vemlsbGE7XG4gICRwcmVmaXgtZm9yLW1pY3Jvc29mdDogJG9yaWdpbmFsLXByZWZpeC1mb3ItbWljcm9zb2Z0O1xuICAkcHJlZml4LWZvci1vcGVyYTogICAgICRvcmlnaW5hbC1wcmVmaXgtZm9yLW9wZXJhO1xuICAkcHJlZml4LWZvci1zcGVjOiAgICAgICRvcmlnaW5hbC1wcmVmaXgtZm9yLXNwZWM7XG5cbiAgQGlmICRvcmlnaW5hbC1wcmVmaXgtZm9yLXNwZWMge1xuICAgIEBrZXlmcmFtZXMgI3skbmFtZX0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG4iLCJAbWl4aW4gbGluZWFyLWdyYWRpZW50KCRwb3MsICRHMSwgJEcyOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkRzM6IG51bGwsICRHNDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJEc1OiBudWxsLCAkRzY6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRHNzogbnVsbCwgJEc4OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkRzk6IG51bGwsICRHMTA6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRmYWxsYmFjazogbnVsbCkge1xuICAvLyBEZXRlY3Qgd2hhdCB0eXBlIG9mIHZhbHVlIGV4aXN0cyBpbiAkcG9zXG4gICRwb3MtdHlwZTogdHlwZS1vZihudGgoJHBvcywgMSkpO1xuICAkcG9zLXNwZWM6IG51bGw7XG4gICRwb3MtZGVncmVlOiBudWxsO1xuXG4gIC8vIElmICRwb3MgaXMgbWlzc2luZyBmcm9tIG1peGluLCByZWFzc2lnbiB2YXJzIGFuZCBhZGQgZGVmYXVsdCBwb3NpdGlvblxuICBAaWYgKCRwb3MtdHlwZSA9PSBjb2xvcikgb3IgKG50aCgkcG9zLCAxKSA9PSBcInRyYW5zcGFyZW50XCIpICB7XG4gICAgJEcxMDogJEc5OyAkRzk6ICRHODsgJEc4OiAkRzc7ICRHNzogJEc2OyAkRzY6ICRHNTtcbiAgICAgJEc1OiAkRzQ7ICRHNDogJEczOyAkRzM6ICRHMjsgJEcyOiAkRzE7ICRHMTogJHBvcztcbiAgICAgJHBvczogbnVsbDtcbiAgfVxuXG4gIEBpZiAkcG9zIHtcbiAgICAkcG9zaXRpb25zOiBfbGluZWFyLXBvc2l0aW9ucy1wYXJzZXIoJHBvcyk7XG4gICAgJHBvcy1kZWdyZWU6IG50aCgkcG9zaXRpb25zLCAxKTtcbiAgICAkcG9zLXNwZWM6ICAgbnRoKCRwb3NpdGlvbnMsIDIpO1xuICB9XG5cbiAgJGZ1bGw6ICRHMSwgJEcyLCAkRzMsICRHNCwgJEc1LCAkRzYsICRHNywgJEc4LCAkRzksICRHMTA7XG5cbiAgLy8gU2V0ICRHMSBhcyB0aGUgZGVmYXVsdCBmYWxsYmFjayBjb2xvclxuICAkZmFsbGJhY2stY29sb3I6IG50aCgkRzEsIDEpO1xuXG4gIC8vIElmICRmYWxsYmFjayBpcyBhIGNvbG9yIHVzZSB0aGF0IGNvbG9yIGFzIHRoZSBmYWxsYmFjayBjb2xvclxuICBAaWYgKHR5cGUtb2YoJGZhbGxiYWNrKSA9PSBjb2xvcikgb3IgKCRmYWxsYmFjayA9PSBcInRyYW5zcGFyZW50XCIpIHtcbiAgICAkZmFsbGJhY2stY29sb3I6ICRmYWxsYmFjaztcbiAgfVxuXG4gIGJhY2tncm91bmQtY29sb3I6ICRmYWxsYmFjay1jb2xvcjtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoJHBvcy1kZWdyZWUgJGZ1bGwpOyAvLyBTYWZhcmkgNS4xKywgQ2hyb21lXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVucXVvdGUoXCJsaW5lYXItZ3JhZGllbnQoI3skcG9zLXNwZWN9I3skZnVsbH0pXCIpO1xufVxuIiwiQG1peGluIHBlcnNwZWN0aXZlKCRkZXB0aDogbm9uZSkge1xuICAvLyBub25lIHwgPGxlbmd0aD5cbiAgQGluY2x1ZGUgcHJlZml4ZXIocGVyc3BlY3RpdmUsICRkZXB0aCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIHBlcnNwZWN0aXZlLW9yaWdpbigkdmFsdWU6IDUwJSA1MCUpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIocGVyc3BlY3RpdmUtb3JpZ2luLCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG4iLCJAbWl4aW4gdHJhbnNmb3JtKCRwcm9wZXJ0eTogbm9uZSkge1xuLy8gIG5vbmUgfCA8dHJhbnNmb3JtLWZ1bmN0aW9uPlxuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2Zvcm0sICRwcm9wZXJ0eSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xufVxuXG5AbWl4aW4gdHJhbnNmb3JtLW9yaWdpbigkYXhlczogNTAlKSB7XG4vLyB4LWF4aXMgLSBsZWZ0IHwgY2VudGVyIHwgcmlnaHQgIHwgbGVuZ3RoIHwgJVxuLy8geS1heGlzIC0gdG9wICB8IGNlbnRlciB8IGJvdHRvbSB8IGxlbmd0aCB8ICVcbi8vIHotYXhpcyAtICAgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGhcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNmb3JtLW9yaWdpbiwgJGF4ZXMsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcbn1cblxuQG1peGluIHRyYW5zZm9ybS1zdHlsZSAoJHN0eWxlOiBmbGF0KSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zZm9ybS1zdHlsZSwgJHN0eWxlLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG59XG4iLCIvLyBTaG9ydGhhbmQgbWl4aW4uIFN1cHBvcnRzIG11bHRpcGxlIHBhcmVudGhlc2VzLWRlbGltaW5hdGVkIHZhbHVlcyBmb3IgZWFjaCB2YXJpYWJsZS5cbi8vIEV4YW1wbGU6IEBpbmNsdWRlIHRyYW5zaXRpb24gKGFsbCAycyBlYXNlLWluLW91dCk7XG4vLyAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uIChvcGFjaXR5IDFzIGVhc2UtaW4gMnMsIHdpZHRoIDJzIGVhc2Utb3V0KTtcbi8vICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tcHJvcGVydHkgKHRyYW5zZm9ybSwgb3BhY2l0eSk7XG5cbkBtaXhpbiB0cmFuc2l0aW9uKCRwcm9wZXJ0aWVzLi4uKSB7XG4gIC8vIEZpeCBmb3IgdmVuZG9yLXByZWZpeCB0cmFuc2Zvcm0gcHJvcGVydHlcbiAgJG5lZWRzLXByZWZpeGVzOiBmYWxzZTtcbiAgJHdlYmtpdDogKCk7XG4gICRtb3o6ICgpO1xuICAkc3BlYzogKCk7XG5cbiAgLy8gQ3JlYXRlIGxpc3RzIGZvciB2ZW5kb3ItcHJlZml4ZWQgdHJhbnNmb3JtXG4gIEBlYWNoICRsaXN0IGluICRwcm9wZXJ0aWVzIHtcbiAgICBAaWYgbnRoKCRsaXN0LCAxKSA9PSBcInRyYW5zZm9ybVwiIHtcbiAgICAgICRuZWVkcy1wcmVmaXhlczogdHJ1ZTtcbiAgICAgICRsaXN0MTogLXdlYmtpdC10cmFuc2Zvcm07XG4gICAgICAkbGlzdDI6IC1tb3otdHJhbnNmb3JtO1xuICAgICAgJGxpc3QzOiAoKTtcblxuICAgICAgQGVhY2ggJHZhciBpbiAkbGlzdCB7XG4gICAgICAgICRsaXN0Mzogam9pbigkbGlzdDMsICR2YXIpO1xuXG4gICAgICAgIEBpZiAkdmFyICE9IFwidHJhbnNmb3JtXCIge1xuICAgICAgICAgICRsaXN0MTogam9pbigkbGlzdDEsICR2YXIpO1xuICAgICAgICAgICRsaXN0Mjogam9pbigkbGlzdDIsICR2YXIpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICR3ZWJraXQ6IGFwcGVuZCgkd2Via2l0LCAkbGlzdDEpO1xuICAgICAgJG1vejogICAgYXBwZW5kKCRtb3osICAgICRsaXN0Mik7XG4gICAgICAkc3BlYzogICBhcHBlbmQoJHNwZWMsICAgJGxpc3QzKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICR3ZWJraXQ6IGFwcGVuZCgkd2Via2l0LCAkbGlzdCwgY29tbWEpO1xuICAgICAgJG1vejogICAgYXBwZW5kKCRtb3osICAgICRsaXN0LCBjb21tYSk7XG4gICAgICAkc3BlYzogICBhcHBlbmQoJHNwZWMsICAgJGxpc3QsIGNvbW1hKTtcbiAgICB9XG4gIH1cblxuICBAaWYgJG5lZWRzLXByZWZpeGVzIHtcbiAgICAtd2Via2l0LXRyYW5zaXRpb246ICR3ZWJraXQ7XG4gICAgICAgLW1vei10cmFuc2l0aW9uOiAkbW96O1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogJHNwZWM7XG4gIH0gQGVsc2Uge1xuICAgIEBpZiBsZW5ndGgoJHByb3BlcnRpZXMpID49IDEge1xuICAgICAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbiwgJHByb3BlcnRpZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkcHJvcGVydGllczogYWxsIDAuMTVzIGVhc2Utb3V0IDBzO1xuICAgICAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbiwgJHByb3BlcnRpZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiB0cmFuc2l0aW9uLXByb3BlcnR5KCRwcm9wZXJ0aWVzLi4uKSB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygkcHJvcGVydGllcywgXCJ3ZWJraXRcIik7XG4gICAgIC1tb3otdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygkcHJvcGVydGllcywgXCJtb3pcIik7XG4gICAgICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygkcHJvcGVydGllcywgZmFsc2UpO1xufVxuXG5AbWl4aW4gdHJhbnNpdGlvbi1kdXJhdGlvbigkdGltZXMuLi4pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbi1kdXJhdGlvbiwgJHRpbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24oJG1vdGlvbnMuLi4pIHtcbiAgLy8gZWFzZSB8IGxpbmVhciB8IGVhc2UtaW4gfCBlYXNlLW91dCB8IGVhc2UtaW4tb3V0IHwgY3ViaWMtYmV6aWVyKClcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24sICRtb3Rpb25zLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gdHJhbnNpdGlvbi1kZWxheSgkdGltZXMuLi4pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbi1kZWxheSwgJHRpbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufSIsIi8vIEZvdW5kYXRpb24gYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBpbXBvcnQgXCJnbG9iYWxcIjtcblxuLy9cbi8vIEFsZXJ0IEJveCBWYXJpYWJsZXNcbi8vXG4kaW5jbHVkZS1odG1sLWFsZXJ0LWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcyAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoaXMgdG8gY29udHJvbCBhbGVydCBwYWRkaW5nLlxuJGFsZXJ0LXBhZGRpbmctdG9wOiByZW0tY2FsYygxNCkgIWRlZmF1bHQ7XG4kYWxlcnQtcGFkZGluZy1kZWZhdWx0LWZsb2F0OiAkYWxlcnQtcGFkZGluZy10b3AgIWRlZmF1bHQ7XG4kYWxlcnQtcGFkZGluZy1vcHBvc2l0ZS1kaXJlY3Rpb246ICRhbGVydC1wYWRkaW5nLXRvcCArIHJlbS1jYWxjKDEwKSAhZGVmYXVsdDtcbiRhbGVydC1wYWRkaW5nLWJvdHRvbTogJGFsZXJ0LXBhZGRpbmctdG9wICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCB0ZXh0IHN0eWxlLlxuJGFsZXJ0LWZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuJGFsZXJ0LWZvbnQtc2l6ZTogcmVtLWNhbGMoMTMpICFkZWZhdWx0O1xuJGFsZXJ0LWZvbnQtY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcbiRhbGVydC1mb250LWNvbG9yLWFsdDogc2NhbGUtY29sb3IoJHNlY29uZGFyeS1jb2xvciwgJGxpZ2h0bmVzczogLTY2JSkgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGlzIGZvciBjbG9zZSBob3ZlciBlZmZlY3QuXG4kYWxlcnQtZnVuY3Rpb24tZmFjdG9yOiAtMTQlICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCBib3JkZXIgc3R5bGVzLlxuJGFsZXJ0LWJvcmRlci1zdHlsZTogc29saWQgIWRlZmF1bHQ7XG4kYWxlcnQtYm9yZGVyLXdpZHRoOiAxcHggIWRlZmF1bHQ7XG4kYWxlcnQtYm9yZGVyLWNvbG9yOiBzY2FsZS1jb2xvcigkcHJpbWFyeS1jb2xvciwgJGxpZ2h0bmVzczogJGFsZXJ0LWZ1bmN0aW9uLWZhY3RvcikgIWRlZmF1bHQ7XG4kYWxlcnQtYm90dG9tLW1hcmdpbjogcmVtLWNhbGMoMjApICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gc3R5bGUgdGhlIGNsb3NlIGJ1dHRvbnNcbiRhbGVydC1jbG9zZS1jb2xvcjogJG9pbCAhZGVmYXVsdDtcbiRhbGVydC1jbG9zZS10b3A6IDUwJSAhZGVmYXVsdDtcbiRhbGVydC1jbG9zZS1wb3NpdGlvbjogcmVtLWNhbGMoNCkgIWRlZmF1bHQ7XG4kYWxlcnQtY2xvc2UtZm9udC1zaXplOiByZW0tY2FsYygyMikgIWRlZmF1bHQ7XG4kYWxlcnQtY2xvc2Utb3BhY2l0eTogMC4zICFkZWZhdWx0O1xuJGFsZXJ0LWNsb3NlLW9wYWNpdHktaG92ZXI6IDAuNSAhZGVmYXVsdDtcbiRhbGVydC1jbG9zZS1wYWRkaW5nOiAwIDZweCA0cHggIWRlZmF1bHQ7XG4kYWxlcnQtY2xvc2UtYmFja2dyb3VuZDogaW5oZXJpdCAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoaXMgdG8gY29udHJvbCBib3JkZXIgcmFkaXVzXG4kYWxlcnQtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuJGFsZXJ0LXRyYW5zaXRpb24tc3BlZWQ6IDMwMG1zICFkZWZhdWx0O1xuJGFsZXJ0LXRyYW5zaXRpb24tZWFzZTogZWFzZS1vdXQgIWRlZmF1bHQ7XG5cbi8vXG4vLyBBbGVydCBNaXhpbnNcbi8vXG5cbi8vIFdlIHVzZSB0aGlzIG1peGluIHRvIGNyZWF0ZSBhIGRlZmF1bHQgYWxlcnQgYmFzZS5cbkBtaXhpbiBhbGVydC1iYXNlIHtcbiAgYm9yZGVyLXN0eWxlOiAkYWxlcnQtYm9yZGVyLXN0eWxlO1xuICBib3JkZXItd2lkdGg6ICRhbGVydC1ib3JkZXItd2lkdGg7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXdlaWdodDogJGFsZXJ0LWZvbnQtd2VpZ2h0O1xuICBtYXJnaW4tYm90dG9tOiAkYWxlcnQtYm90dG9tLW1hcmdpbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nOiAkYWxlcnQtcGFkZGluZy10b3AgJGFsZXJ0LXBhZGRpbmctb3Bwb3NpdGUtZGlyZWN0aW9uICRhbGVydC1wYWRkaW5nLWJvdHRvbSAkYWxlcnQtcGFkZGluZy1kZWZhdWx0LWZsb2F0O1xuICBmb250LXNpemU6ICRhbGVydC1mb250LXNpemU7XG4gIEBpbmNsdWRlIHNpbmdsZS10cmFuc2l0aW9uKG9wYWNpdHksICRhbGVydC10cmFuc2l0aW9uLXNwZWVkLCAkYWxlcnQtdHJhbnNpdGlvbi1lYXNlKVxufVxuXG4vLyBXZSB1c2UgdGhpcyBtaXhpbiB0byBhZGQgYWxlcnQgc3R5bGVzXG4vL1xuLy8gJGJnIC0gVGhlIGJhY2tncm91bmQgb2YgdGhlIGFsZXJ0LiBEZWZhdWx0OiAkcHJpbWFyeS1jb2xvci5cbkBtaXhpbiBhbGVydC1zdHlsZSgkYmc6JHByaW1hcnktY29sb3IpIHtcblxuICAvLyBUaGlzIGZpbmRzIHRoZSBsaWdodG5lc3MgcGVyY2VudGFnZSBvZiB0aGUgYmFja2dyb3VuZCBjb2xvci5cbiAgJGJnLWxpZ2h0bmVzczogbGlnaHRuZXNzKCRiZyk7XG5cbiAgLy8gV2UgY29udHJvbCB3aGljaCBiYWNrZ3JvdW5kIGNvbG9yIGFuZCBib3JkZXIgY29tZSB0aHJvdWdoLlxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmc7XG4gIGJvcmRlci1jb2xvcjogc2NhbGUtY29sb3IoJGJnLCAkbGlnaHRuZXNzOiAkYWxlcnQtZnVuY3Rpb24tZmFjdG9yKTtcblxuICAvLyBXZSBjb250cm9sIHRoZSB0ZXh0IGNvbG9yIGZvciB5b3UgYmFzZWQgb24gdGhlIGJhY2tncm91bmQgY29sb3IuXG4gIEBpZiAkYmctbGlnaHRuZXNzID4gNzAlIHsgY29sb3I6ICRhbGVydC1mb250LWNvbG9yLWFsdDsgfVxuICBAZWxzZSAgICAgICAgICAgICAgICAgICB7IGNvbG9yOiAkYWxlcnQtZm9udC1jb2xvcjsgfVxuXG59XG5cbi8vIFdlIHVzZSB0aGlzIHRvIGNyZWF0ZSB0aGUgY2xvc2UgYnV0dG9uLlxuQG1peGluIGFsZXJ0LWNsb3NlIHtcbiAgZm9udC1zaXplOiAkYWxlcnQtY2xvc2UtZm9udC1zaXplO1xuICBwYWRkaW5nOiAkYWxlcnQtY2xvc2UtcGFkZGluZztcbiAgbGluZS1oZWlnaHQ6IC45O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogJGFsZXJ0LWNsb3NlLXRvcDtcbiAgbWFyZ2luLXRvcDogLSgkYWxlcnQtY2xvc2UtZm9udC1zaXplIC8gMik7XG4gICN7JG9wcG9zaXRlLWRpcmVjdGlvbn06ICRhbGVydC1jbG9zZS1wb3NpdGlvbjtcbiAgY29sb3I6ICRhbGVydC1jbG9zZS1jb2xvcjtcbiAgb3BhY2l0eTogJGFsZXJ0LWNsb3NlLW9wYWNpdHk7XG4gIGJhY2tncm91bmQ6ICRhbGVydC1jbG9zZS1iYWNrZ3JvdW5kO1xuICAmOmhvdmVyLFxuICAmOmZvY3VzIHsgb3BhY2l0eTogJGFsZXJ0LWNsb3NlLW9wYWNpdHktaG92ZXI7IH1cbn1cblxuLy8gV2UgdXNlIHRoaXMgdG8gcXVpY2tseSBjcmVhdGUgYWxlcnRzIHdpdGggYSBzaW5nbGUgbWl4aW4uXG4vL1xuLy8gJGJnIC0gQmFja2dyb3VuZCBvZiBhbGVydC4gRGVmYXVsdDogJHByaW1hcnktY29sb3IuXG4vLyAkcmFkaXVzIC0gUmFkaXVzIG9mIGFsZXJ0IGJveC4gRGVmYXVsdDogZmFsc2UuXG5AbWl4aW4gYWxlcnQoJGJnOiRwcmltYXJ5LWNvbG9yLCAkcmFkaXVzOmZhbHNlKSB7XG4gIEBpbmNsdWRlIGFsZXJ0LWJhc2U7XG4gIEBpbmNsdWRlIGFsZXJ0LXN0eWxlKCRiZyk7XG4gIEBpbmNsdWRlIHJhZGl1cygkcmFkaXVzKTtcbn1cblxuQGluY2x1ZGUgZXhwb3J0cyhcImFsZXJ0LWJveFwiKSB7XG4gIEBpZiAkaW5jbHVkZS1odG1sLWFsZXJ0LWNsYXNzZXMge1xuICAgIC5hbGVydC1ib3gge1xuICAgICAgQGluY2x1ZGUgYWxlcnQ7XG5cbiAgICAgIC5jbG9zZSAgICAgIHsgQGluY2x1ZGUgYWxlcnQtY2xvc2U7IH1cblxuICAgICAgJi5yYWRpdXMgICAgeyBAaW5jbHVkZSByYWRpdXMoJGFsZXJ0LXJhZGl1cyk7IH1cbiAgICAgICYucm91bmQgICAgIHsgQGluY2x1ZGUgcmFkaXVzKCRnbG9iYWwtcm91bmRlZCk7IH1cblxuICAgICAgJi5zdWNjZXNzICAgeyBAaW5jbHVkZSBhbGVydC1zdHlsZSgkc3VjY2Vzcy1jb2xvcik7IH1cbiAgICAgICYuYWxlcnQgICAgIHsgQGluY2x1ZGUgYWxlcnQtc3R5bGUoJGFsZXJ0LWNvbG9yKTsgfVxuICAgICAgJi5zZWNvbmRhcnkgeyBAaW5jbHVkZSBhbGVydC1zdHlsZSgkc2Vjb25kYXJ5LWNvbG9yKTsgfVxuICAgICAgJi53YXJuaW5nIHsgQGluY2x1ZGUgYWxlcnQtc3R5bGUoJHdhcm5pbmctY29sb3IpOyB9XG4gICAgICAmLmluZm8geyBAaW5jbHVkZSBhbGVydC1zdHlsZSgkaW5mby1jb2xvcik7IH1cbiAgICAgICYuYWxlcnQtY2xvc2UgeyBvcGFjaXR5OiAwfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQGltcG9ydCBcIi4uL2Z1bmN0aW9uc1wiO1xuLy9cbi8vIEZvdW5kYXRpb24gVmFyaWFibGVzXG4vL1xuXG4vLyBEYXRhIGF0dHJpYnV0ZSBuYW1lc3BhY2Vcbi8vIHN0eWxlcyBnZXQgYXBwbGllZCB0byBbZGF0YS1teXNpdGUtcGx1Z2luXSwgZXRjXG4kbmFtZXNwYWNlOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8gVGhlIGRlZmF1bHQgZm9udC1zaXplIGlzIHNldCB0byAxMDAlIG9mIHRoZSBicm93c2VyIHN0eWxlIHNoZWV0ICh1c3VhbGx5IDE2cHgpXG4vLyBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIGJyb3dzZXItYmFzZWQgdGV4dCB6b29tIG9yIHVzZXItc2V0IGRlZmF1bHRzLlxuXG4vLyBTaW5jZSB0aGUgdHlwaWNhbCBkZWZhdWx0IGJyb3dzZXIgZm9udC1zaXplIGlzIDE2cHgsIHRoYXQgbWFrZXMgdGhlIGNhbGN1bGF0aW9uIGZvciBncmlkIHNpemUuXG4vLyBJZiB5b3Ugd2FudCB5b3VyIGJhc2UgZm9udC1zaXplIHRvIGJlIGRpZmZlcmVudCBhbmQgbm90IGhhdmUgaXQgYWZmZWN0IHRoZSBncmlkIGJyZWFrcG9pbnRzLFxuLy8gc2V0ICRyZW0tYmFzZSB0byAkYmFzZS1mb250LXNpemUgYW5kIG1ha2Ugc3VyZSAkYmFzZS1mb250LXNpemUgaXMgYSBweCB2YWx1ZS5cbiRiYXNlLWZvbnQtc2l6ZTogMTAwJSAhZGVmYXVsdDtcblxuLy8gJGJhc2UtbGluZS1oZWlnaHQgaXMgMjRweCB3aGlsZSAkYmFzZS1mb250LXNpemUgaXMgMTZweFxuJGJhc2UtbGluZS1oZWlnaHQ6IDEuNSAhZGVmYXVsdDtcblxuLy9cbi8vIEdsb2JhbCBGb3VuZGF0aW9uIE1peGluc1xuLy9cblxuLy8gQG1peGluc1xuLy9cbi8vIFdlIHVzZSB0aGlzIHRvIGNvbnRyb2wgYm9yZGVyIHJhZGl1cy5cbi8vICRyYWRpdXMgLSBEZWZhdWx0OiAkZ2xvYmFsLXJhZGl1cyB8fCA0cHhcbkBtaXhpbiByYWRpdXMoJHJhZGl1czokZ2xvYmFsLXJhZGl1cykge1xuICBAaWYgJHJhZGl1cyB7XG4gICAgYm9yZGVyLXJhZGl1czogJHJhZGl1cztcbiAgfVxufVxuXG4vLyBAbWl4aW5zXG4vL1xuLy8gV2UgdXNlIHRoaXMgdG8gY3JlYXRlIGVxdWFsIHNpZGUgYm9yZGVyIHJhZGl1cyBvbiBlbGVtZW50cy5cbi8vICRzaWRlIC0gT3B0aW9uczogbGVmdCwgcmlnaHQsIHRvcCwgYm90dG9tXG5AbWl4aW4gc2lkZS1yYWRpdXMoJHNpZGUsICRyYWRpdXM6JGdsb2JhbC1yYWRpdXMpIHtcbiAgQGlmICgkc2lkZSA9PSBsZWZ0IG9yICRzaWRlID09IHJpZ2h0KSB7XG4gICAgLXdlYmtpdC1ib3JkZXItYm90dG9tLSN7JHNpZGV9LXJhZGl1czogJHJhZGl1cztcbiAgICAtd2Via2l0LWJvcmRlci10b3AtI3skc2lkZX0tcmFkaXVzOiAkcmFkaXVzO1xuICAgIGJvcmRlci1ib3R0b20tI3skc2lkZX0tcmFkaXVzOiAkcmFkaXVzO1xuICAgIGJvcmRlci10b3AtI3skc2lkZX0tcmFkaXVzOiAkcmFkaXVzO1xuICB9IEBlbHNlIHtcbiAgICAtd2Via2l0LSN7JHNpZGV9LWxlZnQtcmFkaXVzOiAkcmFkaXVzO1xuICAgIC13ZWJraXQtI3skc2lkZX0tcmlnaHQtcmFkaXVzOiAkcmFkaXVzO1xuICAgIGJvcmRlci0jeyRzaWRlfS1sZWZ0LXJhZGl1czogJHJhZGl1cztcbiAgICBib3JkZXItI3skc2lkZX0tcmlnaHQtcmFkaXVzOiAkcmFkaXVzO1xuICB9XG59XG5cbi8vIEBtaXhpbnNcbi8vXG4vLyBXZSBjYW4gY29udHJvbCB3aGV0aGVyIG9yIG5vdCB3ZSBoYXZlIGluc2V0IHNoYWRvd3MgZWRnZXMuXG4vLyAkYWN0aXZlIC0gRGVmYXVsdDogdHJ1ZSwgT3B0aW9uczogZmFsc2VcbkBtaXhpbiBpbnNldC1zaGFkb3coJGFjdGl2ZTp0cnVlKSB7XG4gIGJveC1zaGFkb3c6ICRzaGlueS1lZGdlLXNpemUgJHNoaW55LWVkZ2UtY29sb3IgaW5zZXQ7XG5cbiAgQGlmICRhY3RpdmUgeyAmOmFjdGl2ZSB7XG4gICAgYm94LXNoYWRvdzogJHNoaW55LWVkZ2Utc2l6ZSAkc2hpbnktZWRnZS1hY3RpdmUtY29sb3IgaW5zZXQ7IH0gfVxufVxuXG4vLyBAbWl4aW5zXG4vL1xuLy8gV2UgdXNlIHRoaXMgdG8gYWRkIHRyYW5zaXRpb25zIHRvIGVsZW1lbnRzXG4vLyAkcHJvcGVydHkgLSBEZWZhdWx0OiBhbGwsIE9wdGlvbnM6IGh0dHA6Ly93d3cudzMub3JnL1RSL2NzczMtdHJhbnNpdGlvbnMvI2FuaW1hdGFibGUtcHJvcGVydGllc1xuLy8gJHNwZWVkIC0gRGVmYXVsdDogMzAwbXNcbi8vICRlYXNlIC0gRGVmYXVsdDplYXNlLW91dCwgT3B0aW9uczogaHR0cDovL2Nzcy10cmlja3MuY29tL2FsbWFuYWMvcHJvcGVydGllcy90L3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uL1xuQG1peGluIHNpbmdsZS10cmFuc2l0aW9uKCRwcm9wZXJ0eTphbGwsICRzcGVlZDozMDBtcywgJGVhc2U6ZWFzZS1vdXQpIHtcbiAgdHJhbnNpdGlvbjogJHByb3BlcnR5ICRzcGVlZCAkZWFzZTtcbn1cblxuLy8gQG1peGluc1xuLy9cbi8vIFdlIHVzZSB0aGlzIHRvIGFkZCBib3gtc2l6aW5nIGFjcm9zcyBicm93c2VyIHByZWZpeGVzXG5AbWl4aW4gYm94LXNpemluZygkdHlwZTpib3JkZXItYm94KSB7XG4gIC13ZWJraXQtYm94LXNpemluZzogJHR5cGU7IC8vIEFuZHJvaWQgPCAyLjMsIGlPUyA8IDRcbiAgICAgLW1vei1ib3gtc2l6aW5nOiAkdHlwZTsgLy8gRmlyZWZveCA8IDI5XG4gICAgICAgICAgYm94LXNpemluZzogJHR5cGU7IC8vIENocm9tZSwgSUUgOCssIE9wZXJhLCBTYWZhcmkgNS4xXG59XG5cbi8vIEBtaXhpbnNcbi8vXG4vLyBXZSB1c2UgdGhpcyB0byBjcmVhdGUgaXNvc2NlbGVzIHRyaWFuZ2xlc1xuLy8gJHRyaWFuZ2xlLXNpemUgLSBVc2VkIHRvIHNldCBib3JkZXItc2l6ZS4gTm8gZGVmYXVsdCwgc2V0IGEgcHggb3IgZW0gc2l6ZS5cbi8vICR0cmlhbmdsZS1jb2xvciAtIFVzZWQgdG8gc2V0IGJvcmRlci1jb2xvciB3aGljaCBtYWtlcyB1cCB0cmlhbmdsZS4gTm8gZGVmYXVsdFxuLy8gJHRyaWFuZ2xlLWRpcmVjdGlvbiAtIFVzZWQgdG8gZGV0ZXJtaW5lIHdoaWNoIGRpcmVjdGlvbiB0cmlhbmdsZSBwb2ludHMuIE9wdGlvbnM6IHRvcCwgYm90dG9tLCBsZWZ0LCByaWdodFxuQG1peGluIGNzcy10cmlhbmdsZSgkdHJpYW5nbGUtc2l6ZSwgJHRyaWFuZ2xlLWNvbG9yLCAkdHJpYW5nbGUtZGlyZWN0aW9uKSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXI6IGluc2V0ICR0cmlhbmdsZS1zaXplO1xuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gdG9wKSB7XG4gICAgYm9yZGVyLWNvbG9yOiAkdHJpYW5nbGUtY29sb3IgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7XG4gIH1cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IGJvdHRvbSkge1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgJHRyaWFuZ2xlLWNvbG9yIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkO1xuICB9XG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSBsZWZ0KSB7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAkdHJpYW5nbGUtY29sb3I7XG4gICAgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkO1xuICB9XG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSByaWdodCkge1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgJHRyaWFuZ2xlLWNvbG9yIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7XG4gIH1cbn1cblxuLy8gQG1peGluc1xuLy9cbi8vIFdlIHVzZSB0aGlzIHRvIGNyZWF0ZSB0aGUgaWNvbiB3aXRoIHRocmVlIGxpbmVzIGFrYSB0aGUgaGFtYnVyZ2VyIGljb24sIHRoZSBtZW51LWljb24gb3IgdGhlIG5hdmljb25cbi8vICR3aWR0aCAtIFdpZHRoIG9mIGhhbWJ1cmdlciBpY29uIGluIHJlbVxuLy8gJGxlZnQgLSBJZiBmYWxzZSwgaWNvbiB3aWxsIGJlIGNlbnRlcmVkIGhvcml6b250YWxseSB8fCBleHBsaWNpdGx5IHNldCB2YWx1ZSBpbiByZW1cbi8vICR0b3AgLSBJZiBmYWxzZSwgaWNvbiB3aWxsIGJlIGNlbnRlcmVkIHZlcnRpY2FsbHkgfHwgZXhwbGljaXRseSBzZXQgdmFsdWUgaW4gcmVtXG4vLyAkdGhpY2tuZXNzIC0gdGhpY2tuZXNzIG9mIGxpbmVzIGluIGhhbWJ1cmdlciBpY29uLCBzZXQgdmFsdWUgaW4gcHhcbi8vICRnYXAgLSBzcGFjaW5nIGJldHdlZW4gdGhlIGxpbmVzIGluIGhhbWJ1cmdlciBpY29uLCBzZXQgdmFsdWUgaW4gcHhcbi8vICRjb2xvciAtIGljb24gY29sb3Jcbi8vICRob3Zlci1jb2xvciAtIGljb24gY29sb3IgZHVyaW5nIGhvdmVyXG4vLyAkb2ZmY2FudmFzIC0gU2V0IHRvIHRydWUgb2YgQGluY2x1ZGUgaW4gb2ZmY2FudmFzXG5AbWl4aW4gaGFtYnVyZ2VyKCR3aWR0aCwgJGxlZnQsICR0b3AsICR0aGlja25lc3MsICRnYXAsICRjb2xvciwgJGhvdmVyLWNvbG9yLCAkb2ZmY2FudmFzKSB7XG4gIHNwYW46OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDA7XG5cbiAgICBAaWYgJG9mZmNhbnZhcyB7XG4gICAgICBAaWYgJHRvcCB7XG4gICAgICAgIHRvcDogJHRvcDtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIG1hcmdpbi10b3A6ICgtJHdpZHRoLzIpO1xuICAgICAgfVxuICAgICAgQGlmICRsZWZ0IHtcbiAgICAgICAgbGVmdDogJGxlZnQ7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIGxlZnQ6ICgkdGFiYmFyLW1lbnUtaWNvbi13aWR0aCAtICR3aWR0aCkvMjtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgdG9wOiA1MCU7XG4gICAgICBtYXJnaW4tdG9wOiAtKCR3aWR0aC8yKTtcbiAgICAgICN7JG9wcG9zaXRlLWRpcmVjdGlvbn06ICR0b3BiYXItbGluay1wYWRkaW5nO1xuICAgIH1cblxuICAgIGJveC1zaGFkb3c6XG4gICAgICAwIDAgMCAkdGhpY2tuZXNzICRjb2xvcixcbiAgICAgIDAgJGdhcCArICR0aGlja25lc3MgMCAkdGhpY2tuZXNzICRjb2xvcixcbiAgICAgIDAgKDIgKiAkZ2FwICsgMiokdGhpY2tuZXNzKSAwICR0aGlja25lc3MgJGNvbG9yO1xuICAgIHdpZHRoOiAkd2lkdGg7XG4gIH1cbiAgc3Bhbjpob3ZlcjphZnRlciB7XG4gICAgYm94LXNoYWRvdzpcbiAgICAgIDAgMCAwICR0aGlja25lc3MgJGhvdmVyLWNvbG9yLFxuICAgICAgMCAkZ2FwICsgJHRoaWNrbmVzcyAwICR0aGlja25lc3MgJGhvdmVyLWNvbG9yLFxuICAgICAgMCAoMiAqICRnYXAgKyAyKiR0aGlja25lc3MpIDAgJHRoaWNrbmVzcyAkaG92ZXItY29sb3I7XG4gIH1cbn1cblxuLy8gV2UgdXNlIHRoaXMgdG8gZG8gY2xlYXIgZmxvYXRzXG5AbWl4aW4gY2xlYXJmaXgge1xuICAmOmJlZm9yZSwgJjphZnRlciB7IGNvbnRlbnQ6IFwiIFwiOyBkaXNwbGF5OiB0YWJsZTsgfVxuICAmOmFmdGVyIHsgY2xlYXI6IGJvdGg7IH1cbn1cblxuLy8gQG1peGluc1xuLy9cbi8vIFdlIHVzZSB0aGlzIHRvIGFkZCBhIGdsb3dpbmcgZWZmZWN0IHRvIGJsb2NrIGVsZW1lbnRzXG4vLyAkc2VsZWN0b3IgLSBVc2VkIGZvciBzZWxlY3RvciBzdGF0ZS4gRGVmYXVsdDogZm9jdXMsIE9wdGlvbnM6IGhvdmVyLCBhY3RpdmUsIHZpc2l0ZWRcbi8vICRmYWRlLXRpbWUgLSBEZWZhdWx0OiAzMDBtc1xuLy8gJGdsb3dpbmctZWZmZWN0LWNvbG9yIC0gRGVmYXVsdDogZmFkZS1vdXQoJHByaW1hcnktY29sb3IsIC4yNSlcbkBtaXhpbiBibG9jay1nbG93aW5nLWVmZmVjdCgkc2VsZWN0b3I6Zm9jdXMsICRmYWRlLXRpbWU6MzAwbXMsICRnbG93aW5nLWVmZmVjdC1jb2xvcjpmYWRlLW91dCgkcHJpbWFyeS1jb2xvciwgLjI1KSkge1xuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93ICRmYWRlLXRpbWUsIGJvcmRlci1jb2xvciAkZmFkZS10aW1lIGVhc2UtaW4tb3V0O1xuXG4gICY6I3skc2VsZWN0b3J9IHtcbiAgICBib3gtc2hhZG93OiAwIDAgNXB4ICRnbG93aW5nLWVmZmVjdC1jb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRnbG93aW5nLWVmZmVjdC1jb2xvcjtcbiAgfVxufVxuXG4vLyBAbWl4aW5zXG4vL1xuLy8gV2UgdXNlIHRoaXMgdG8gdHJhbnNsYXRlIGVsZW1lbnRzIGluIDJEXG4vLyAkaG9yaXpvbnRhbDogRGVmYXVsdDogMFxuLy8gJHZlcnRpY2FsOiBEZWZhdWx0OiAwXG5AbWl4aW4gdHJhbnNsYXRlMmQoJGhvcml6b250YWw6MCwgJHZlcnRpY2FsOjApIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoJGhvcml6b250YWwsJHZlcnRpY2FsKVxufVxuXG4vLyBAbWl4aW5zXG4vL1xuLy8gTWFrZXMgYW4gZWxlbWVudCB2aXN1YWxseSBoaWRkZW4sIGJ1dCBhY2Nlc3NpYmxlLlxuLy8gQHNlZSBodHRwOi8vc25vb2suY2EvYXJjaGl2ZXMvaHRtbF9hbmRfY3NzL2hpZGluZy1jb250ZW50LWZvci1hY2Nlc3NpYmlsaXR5XG5AbWl4aW4gZWxlbWVudC1pbnZpc2libGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAxcHg7XG4gIHdpZHRoOiAxcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGNsaXA6IHJlY3QoMXB4LCAxcHgsIDFweCwgMXB4KTtcbn1cblxuLy8gQG1peGluc1xuLy9cbi8vIFR1cm5zIG9mZiB0aGUgZWxlbWVudC1pbnZpc2libGUgZWZmZWN0LlxuQG1peGluIGVsZW1lbnQtaW52aXNpYmxlLW9mZiB7XG4gIHBvc2l0aW9uOiBzdGF0aWMgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiBhdXRvO1xuICB3aWR0aDogYXV0bztcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIGNsaXA6IGF1dG87XG59XG5cbiR3aGl0ZSAgICAgICAgIDogI0ZGRkZGRiAhZGVmYXVsdDtcbiRnaG9zdCAgICAgICAgIDogI0ZBRkFGQSAhZGVmYXVsdDtcbiRzbm93ICAgICAgICAgIDogI0Y5RjlGOSAhZGVmYXVsdDtcbiR2YXBvciAgICAgICAgIDogI0Y2RjZGNiAhZGVmYXVsdDtcbiR3aGl0ZS1zbW9rZSAgIDogI0Y1RjVGNSAhZGVmYXVsdDtcbiRzaWx2ZXIgICAgICAgIDogI0VGRUZFRiAhZGVmYXVsdDtcbiRzbW9rZSAgICAgICAgIDogI0VFRUVFRSAhZGVmYXVsdDtcbiRnYWluc2Jvcm8gICAgIDogI0RERERERCAhZGVmYXVsdDtcbiRpcm9uICAgICAgICAgIDogI0NDQ0NDQyAhZGVmYXVsdDtcbiRiYXNlICAgICAgICAgIDogI0FBQUFBQSAhZGVmYXVsdDtcbiRhbHVtaW51bSAgICAgIDogIzk5OTk5OSAhZGVmYXVsdDtcbiRqdW1ibyAgICAgICAgIDogIzg4ODg4OCAhZGVmYXVsdDtcbiRtb25zb29uICAgICAgIDogIzc3Nzc3NyAhZGVmYXVsdDtcbiRzdGVlbCAgICAgICAgIDogIzY2NjY2NiAhZGVmYXVsdDtcbiRjaGFyY29hbCAgICAgIDogIzU1NTU1NSAhZGVmYXVsdDtcbiR0dWF0YXJhICAgICAgIDogIzQ0NDQ0NCAhZGVmYXVsdDtcbiRvaWwgICAgICAgICAgIDogIzMzMzMzMyAhZGVmYXVsdDtcbiRqZXQgICAgICAgICAgIDogIzIyMjIyMiAhZGVmYXVsdDtcbiRibGFjayAgICAgICAgIDogIzAwMDAwMCAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIGFzIGRlZmF1bHQgY29sb3JzIHRocm91Z2hvdXRcbiRwcmltYXJ5LWNvbG9yOiAjMDA4Q0JBICFkZWZhdWx0OyAgIC8vIGJvbmRpLWJsdWVcbiRzZWNvbmRhcnktY29sb3I6ICNlN2U3ZTcgIWRlZmF1bHQ7IC8vIHdoaXRlLWxpbGFjXG4kYWxlcnQtY29sb3I6ICNmMDQxMjQgIWRlZmF1bHQ7ICAgICAvLyBjaW5uYWJhclxuJHN1Y2Nlc3MtY29sb3I6ICM0M0FDNkEgIWRlZmF1bHQ7ICAgLy8gc2VhLWdyZWVuXG4kd2FybmluZy1jb2xvcjogI2YwOGEyNCAhZGVmYXVsdDsgICAvLyBjYXJyb3RcbiRpbmZvLWNvbG9yOiAjYTBkM2U4ICFkZWZhdWx0OyAgICAgIC8vIGNvcm5mbG93ZXJcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGRlZmluZSBkZWZhdWx0IGZvbnQgc3RhY2tzXG4kZm9udC1mYW1pbHktc2Fucy1zZXJpZjogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIFJvYm90bywgQXJpYWwsIHNhbnMtc2VyaWYgIWRlZmF1bHQ7XG4kZm9udC1mYW1pbHktc2VyaWY6IEdlb3JnaWEsIENhbWJyaWEsIFwiVGltZXMgTmV3IFJvbWFuXCIsIFRpbWVzLCBzZXJpZiAhZGVmYXVsdDtcbiRmb250LWZhbWlseS1tb25vc3BhY2U6IENvbnNvbGFzLCBcIkxpYmVyYXRpb24gTW9ub1wiLCBDb3VyaWVyLCBtb25vc3BhY2UgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBkZWZpbmUgZGVmYXVsdCBmb250IHdlaWdodHNcbiRmb250LXdlaWdodC1ub3JtYWw6IG5vcm1hbCAhZGVmYXVsdDtcbiRmb250LXdlaWdodC1ib2xkOiBib2xkICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCB2YXJpb3VzIGdsb2JhbCBzdHlsZXNcbiRib2R5LWJnOiAjZmZmICFkZWZhdWx0O1xuJGJvZHktZm9udC1jb2xvcjogIzIyMiAhZGVmYXVsdDtcbiRib2R5LWZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktc2Fucy1zZXJpZiAhZGVmYXVsdDtcbiRib2R5LWZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuJGJvZHktZm9udC1zdHlsZTogbm9ybWFsICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhpcyB0byBjb250cm9sIGZvbnQtc21vb3RoaW5nXG4kZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCB0ZXh0IGRpcmVjdGlvbiBzZXR0aW5nc1xuJHRleHQtZGlyZWN0aW9uOiBsdHIgIWRlZmF1bHQ7XG4kZGVmYXVsdC1mbG9hdDogbGVmdCAhZGVmYXVsdDtcbiRvcHBvc2l0ZS1kaXJlY3Rpb246IHJpZ2h0ICFkZWZhdWx0O1xuQGlmICR0ZXh0LWRpcmVjdGlvbiA9PSBsdHIge1xuICAkZGVmYXVsdC1mbG9hdDogbGVmdDtcbiAgJG9wcG9zaXRlLWRpcmVjdGlvbjogcmlnaHQ7XG59IEBlbHNlIHtcbiAgJGRlZmF1bHQtZmxvYXQ6IHJpZ2h0O1xuICAkb3Bwb3NpdGUtZGlyZWN0aW9uOiBsZWZ0O1xufVxuXG4vLyBXZSB1c2UgdGhlc2UgdG8gbWFrZSBzdXJlIGJvcmRlciByYWRpdXMgbWF0Y2hlcyB1bmxlc3Mgd2Ugd2FudCBpdCBkaWZmZXJlbnQuXG4kZ2xvYmFsLXJhZGl1czogM3B4ICFkZWZhdWx0O1xuJGdsb2JhbC1yb3VuZGVkOiAxMDAwcHggIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIGluc2V0IHNoYWRvdyBzaGlueSBlZGdlcyBhbmQgZGVwcmVzc2lvbnMuXG4kc2hpbnktZWRnZS1zaXplOiAwIDFweCAwICFkZWZhdWx0O1xuJHNoaW55LWVkZ2UtY29sb3I6IHJnYmEoI2ZmZiwgLjUpICFkZWZhdWx0O1xuJHNoaW55LWVkZ2UtYWN0aXZlLWNvbG9yOiByZ2JhKCMwMDAsIC4yKSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoaXMgdG8gY29udHJvbCB3aGV0aGVyIG9yIG5vdCBDU1MgY2xhc3NlcyBjb21lIHRocm91Z2ggaW4gdGhlIGdlbSBmaWxlcy5cbiRpbmNsdWRlLWh0bWwtY2xhc3NlczogdHJ1ZSAhZGVmYXVsdDtcbiRpbmNsdWRlLXByaW50LXN0eWxlczogdHJ1ZSAhZGVmYXVsdDtcbiRpbmNsdWRlLWh0bWwtZ2xvYmFsLWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcyAhZGVmYXVsdDtcblxuJGNvbHVtbi1ndXR0ZXI6IHJlbS1jYWxjKDMwKSAhZGVmYXVsdDtcblxuLy8gTWVkaWEgUXVlcnkgUmFuZ2VzXG4kc21hbGwtcmFuZ2U6ICgwLCA0MGVtKSAhZGVmYXVsdDtcbiRtZWRpdW0tcmFuZ2U6ICg0MC4wNjNlbSwgNjRlbSkgIWRlZmF1bHQ7XG4kbGFyZ2UtcmFuZ2U6ICg2NC4wNjNlbSwgOTBlbSkgIWRlZmF1bHQ7XG4keGxhcmdlLXJhbmdlOiAoOTAuMDYzZW0sIDEyMGVtKSAhZGVmYXVsdDtcbiR4eGxhcmdlLXJhbmdlOiAoMTIwLjA2M2VtLCA5OTk5OTk5OWVtKSAhZGVmYXVsdDtcblxuXG4kc2NyZWVuOiBcIm9ubHkgc2NyZWVuXCIgIWRlZmF1bHQ7XG5cbiRsYW5kc2NhcGU6IFwiI3skc2NyZWVufSBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpXCIgIWRlZmF1bHQ7XG4kcG9ydHJhaXQ6IFwiI3skc2NyZWVufSBhbmQgKG9yaWVudGF0aW9uOiBwb3J0cmFpdClcIiAhZGVmYXVsdDtcblxuJHNtYWxsLXVwOiAkc2NyZWVuICFkZWZhdWx0O1xuJHNtYWxsLW9ubHk6IFwiI3skc2NyZWVufSBhbmQgKG1heC13aWR0aDogI3t1cHBlci1ib3VuZCgkc21hbGwtcmFuZ2UpfSlcIiAhZGVmYXVsdDtcblxuJG1lZGl1bS11cDogXCIjeyRzY3JlZW59IGFuZCAobWluLXdpZHRoOiN7bG93ZXItYm91bmQoJG1lZGl1bS1yYW5nZSl9KVwiICFkZWZhdWx0O1xuJG1lZGl1bS1vbmx5OiBcIiN7JHNjcmVlbn0gYW5kIChtaW4td2lkdGg6I3tsb3dlci1ib3VuZCgkbWVkaXVtLXJhbmdlKX0pIGFuZCAobWF4LXdpZHRoOiN7dXBwZXItYm91bmQoJG1lZGl1bS1yYW5nZSl9KVwiICFkZWZhdWx0O1xuXG4kbGFyZ2UtdXA6IFwiI3skc2NyZWVufSBhbmQgKG1pbi13aWR0aDoje2xvd2VyLWJvdW5kKCRsYXJnZS1yYW5nZSl9KVwiICFkZWZhdWx0O1xuJGxhcmdlLW9ubHk6IFwiI3skc2NyZWVufSBhbmQgKG1pbi13aWR0aDoje2xvd2VyLWJvdW5kKCRsYXJnZS1yYW5nZSl9KSBhbmQgKG1heC13aWR0aDoje3VwcGVyLWJvdW5kKCRsYXJnZS1yYW5nZSl9KVwiICFkZWZhdWx0O1xuXG4keGxhcmdlLXVwOiBcIiN7JHNjcmVlbn0gYW5kIChtaW4td2lkdGg6I3tsb3dlci1ib3VuZCgkeGxhcmdlLXJhbmdlKX0pXCIgIWRlZmF1bHQ7XG4keGxhcmdlLW9ubHk6IFwiI3skc2NyZWVufSBhbmQgKG1pbi13aWR0aDoje2xvd2VyLWJvdW5kKCR4bGFyZ2UtcmFuZ2UpfSkgYW5kIChtYXgtd2lkdGg6I3t1cHBlci1ib3VuZCgkeGxhcmdlLXJhbmdlKX0pXCIgIWRlZmF1bHQ7XG5cbiR4eGxhcmdlLXVwOiBcIiN7JHNjcmVlbn0gYW5kIChtaW4td2lkdGg6I3tsb3dlci1ib3VuZCgkeHhsYXJnZS1yYW5nZSl9KVwiICFkZWZhdWx0O1xuJHh4bGFyZ2Utb25seTogXCIjeyRzY3JlZW59IGFuZCAobWluLXdpZHRoOiN7bG93ZXItYm91bmQoJHh4bGFyZ2UtcmFuZ2UpfSkgYW5kIChtYXgtd2lkdGg6I3t1cHBlci1ib3VuZCgkeHhsYXJnZS1yYW5nZSl9KVwiICFkZWZhdWx0O1xuXG4vLyBMZWdhY3lcbiRzbWFsbDogJG1lZGl1bS11cDtcbiRtZWRpdW06ICRtZWRpdW0tdXA7XG4kbGFyZ2U6ICRsYXJnZS11cDtcblxuXG4vL1dlIHVzZSB0aGlzIGFzIGN1cnNvcnMgdmFsdWVzIGZvciBlbmFibGluZyB0aGUgb3B0aW9uIG9mIGhhdmluZyBjdXN0b20gY3Vyc29ycyBpbiB0aGUgd2hvbGUgc2l0ZSdzIHN0eWxlc2hlZXRcbiRjdXJzb3ItYXV0by12YWx1ZTogYXV0byAhZGVmYXVsdDtcbiRjdXJzb3ItY3Jvc3NoYWlyLXZhbHVlOiBjcm9zc2hhaXIgIWRlZmF1bHQ7XG4kY3Vyc29yLWRlZmF1bHQtdmFsdWU6IGRlZmF1bHQgIWRlZmF1bHQ7XG4kY3Vyc29yLWRpc2FibGVkLXZhbHVlOiBub3QtYWxsb3dlZCAhZGVmYXVsdDtcbiRjdXJzb3ItcG9pbnRlci12YWx1ZTogcG9pbnRlciAhZGVmYXVsdDtcbiRjdXJzb3ItaGVscC12YWx1ZTogaGVscCAhZGVmYXVsdDtcbiRjdXJzb3ItdGV4dC12YWx1ZTogdGV4dCAhZGVmYXVsdDtcblxuXG5AaW5jbHVkZSBleHBvcnRzKFwiZ2xvYmFsXCIpIHtcblxuICAvLyBNZXRhIHN0eWxlcyBhcmUgaW5jbHVkZWQgaW4gYWxsIGJ1aWxkcywgYXMgdGhleSBhcmUgYSBkZXBlbmRhbmN5IG9mIHRoZSBKYXZhc2NyaXB0LlxuICAvLyBVc2VkIHRvIHByb3ZpZGUgbWVkaWEgcXVlcnkgdmFsdWVzIGZvciBqYXZhc2NyaXB0IGNvbXBvbmVudHMuXG4gIC8vIEZvcndhcmQgc2xhc2ggcGxhY2VkIGFyb3VuZCBldmVyeXRoaW5nIHRvIGNvbnZpbmNlIFBoYW50b21KUyB0byByZWFkIHRoZSB2YWx1ZS5cblxuICBtZXRhLmZvdW5kYXRpb24tdmVyc2lvbiB7XG4gICAgZm9udC1mYW1pbHk6IFwiLzUuNS4xL1wiO1xuICB9XG5cbiAgbWV0YS5mb3VuZGF0aW9uLW1xLXNtYWxsIHtcbiAgICBmb250LWZhbWlseTogXCIvXCIgKyB1bnF1b3RlKCRzbWFsbC11cCkgKyBcIi9cIjtcbiAgICB3aWR0aDogbG93ZXItYm91bmQoJHNtYWxsLXJhbmdlKTtcbiAgfVxuXG4gIG1ldGEuZm91bmRhdGlvbi1tcS1zbWFsbC1vbmx5IHtcbiAgICBmb250LWZhbWlseTogXCIvXCIgKyB1bnF1b3RlKCRzbWFsbC1vbmx5KSArIFwiL1wiO1xuICAgIHdpZHRoOiBsb3dlci1ib3VuZCgkc21hbGwtcmFuZ2UpO1xuICB9XG5cbiAgbWV0YS5mb3VuZGF0aW9uLW1xLW1lZGl1bSB7XG4gICAgZm9udC1mYW1pbHk6IFwiL1wiICsgdW5xdW90ZSgkbWVkaXVtLXVwKSArIFwiL1wiO1xuICAgIHdpZHRoOiBsb3dlci1ib3VuZCgkbWVkaXVtLXJhbmdlKTtcbiAgfVxuXG4gIG1ldGEuZm91bmRhdGlvbi1tcS1tZWRpdW0tb25seSB7XG4gICAgZm9udC1mYW1pbHk6IFwiL1wiICsgdW5xdW90ZSgkbWVkaXVtLW9ubHkpICsgXCIvXCI7XG4gICAgd2lkdGg6IGxvd2VyLWJvdW5kKCRtZWRpdW0tcmFuZ2UpO1xuICB9XG5cbiAgbWV0YS5mb3VuZGF0aW9uLW1xLWxhcmdlIHtcbiAgICBmb250LWZhbWlseTogXCIvXCIgKyB1bnF1b3RlKCRsYXJnZS11cCkgKyBcIi9cIjtcbiAgICB3aWR0aDogbG93ZXItYm91bmQoJGxhcmdlLXJhbmdlKTtcbiAgfVxuXG4gIG1ldGEuZm91bmRhdGlvbi1tcS1sYXJnZS1vbmx5IHtcbiAgICBmb250LWZhbWlseTogXCIvXCIgKyB1bnF1b3RlKCRsYXJnZS1vbmx5KSArIFwiL1wiO1xuICAgIHdpZHRoOiBsb3dlci1ib3VuZCgkbGFyZ2UtcmFuZ2UpO1xuICB9XG5cbiAgbWV0YS5mb3VuZGF0aW9uLW1xLXhsYXJnZSB7XG4gICAgZm9udC1mYW1pbHk6IFwiL1wiICsgdW5xdW90ZSgkeGxhcmdlLXVwKSArIFwiL1wiO1xuICAgIHdpZHRoOiBsb3dlci1ib3VuZCgkeGxhcmdlLXJhbmdlKTtcbiAgfVxuXG4gIG1ldGEuZm91bmRhdGlvbi1tcS14bGFyZ2Utb25seSB7XG4gICAgZm9udC1mYW1pbHk6IFwiL1wiICsgdW5xdW90ZSgkeGxhcmdlLW9ubHkpICsgXCIvXCI7XG4gICAgd2lkdGg6IGxvd2VyLWJvdW5kKCR4bGFyZ2UtcmFuZ2UpO1xuICB9XG5cbiAgbWV0YS5mb3VuZGF0aW9uLW1xLXh4bGFyZ2Uge1xuICAgIGZvbnQtZmFtaWx5OiBcIi9cIiArIHVucXVvdGUoJHh4bGFyZ2UtdXApICsgXCIvXCI7XG4gICAgd2lkdGg6IGxvd2VyLWJvdW5kKCR4eGxhcmdlLXJhbmdlKTtcbiAgfVxuXG4gIG1ldGEuZm91bmRhdGlvbi1kYXRhLWF0dHJpYnV0ZS1uYW1lc3BhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiAjeyRuYW1lc3BhY2V9O1xuICB9XG5cbiAgQGlmICRpbmNsdWRlLWh0bWwtZ2xvYmFsLWNsYXNzZXMge1xuXG4gICAgLy8gTXVzdCBiZSAxMDAlIGZvciBvZmYgY2FudmFzIHRvIHdvcmtcbiAgICBodG1sLCBib2R5IHsgaGVpZ2h0OiAxMDAlOyB9XG5cbiAgICAvLyBTZXQgYm94LXNpemluZyBnbG9iYWxseSB0byBoYW5kbGUgcGFkZGluZyBhbmQgYm9yZGVyIHdpZHRoc1xuICAgICosXG4gICAgKjpiZWZvcmUsXG4gICAgKjphZnRlciB7XG4gICAgICBAaW5jbHVkZSBib3gtc2l6aW5nKGJvcmRlci1ib3gpO1xuICAgIH1cblxuICAgIGh0bWwsXG4gICAgYm9keSB7IGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplOyB9XG5cbiAgICAvLyBEZWZhdWx0IGJvZHkgc3R5bGVzXG4gICAgYm9keSB7XG4gICAgICBiYWNrZ3JvdW5kOiAkYm9keS1iZztcbiAgICAgIGNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIGZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseTtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkYm9keS1mb250LXdlaWdodDtcbiAgICAgIGZvbnQtc3R5bGU6ICRib2R5LWZvbnQtc3R5bGU7XG4gICAgICBsaW5lLWhlaWdodDogJGJhc2UtbGluZS1oZWlnaHQ7IC8vIFNldCB0byAkYmFzZS1saW5lLWhlaWdodCB0byB0YWtlIG9uIGJyb3dzZXIgZGVmYXVsdCBvZiAxNTAlXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBjdXJzb3I6ICRjdXJzb3ItYXV0by12YWx1ZTtcbiAgICB9XG5cbiAgYTpob3ZlciB7IGN1cnNvcjogJGN1cnNvci1wb2ludGVyLXZhbHVlOyB9XG5cbiAgICAvLyBHcmlkIERlZmF1bHRzIHRvIGdldCBpbWFnZXMgYW5kIGVtYmVkcyB0byB3b3JrIHByb3Blcmx5XG4gICAgaW1nIHsgbWF4LXdpZHRoOiAxMDAlOyBoZWlnaHQ6IGF1dG87IH1cblxuICAgIGltZyB7IC1tcy1pbnRlcnBvbGF0aW9uLW1vZGU6IGJpY3ViaWM7IH1cblxuICAgICNtYXBfY2FudmFzLFxuICAgIC5tYXBfY2FudmFzIHtcbiAgICAgIGltZyxcbiAgICAgIGVtYmVkLFxuICAgICAgb2JqZWN0IHsgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gTWlzY2VsbGFuZW91cyB1c2VmdWwgSFRNTCBjbGFzc2VzXG4gICAgLmxlZnQgeyBmbG9hdDogbGVmdCAhaW1wb3J0YW50OyB9XG4gICAgLnJpZ2h0IHsgZmxvYXQ6IHJpZ2h0ICFpbXBvcnRhbnQ7IH1cbiAgICAuY2xlYXJmaXggeyBAaW5jbHVkZSBjbGVhcmZpeDsgfVxuXG4gICAgLy8gSGlkZSB2aXN1YWxseSBhbmQgZnJvbSBzY3JlZW4gcmVhZGVyc1xuICAgIC5oaWRlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLy8gSGlkZSB2aXN1YWxseSBhbmQgZnJvbSBzY3JlZW4gcmVhZGVycywgYnV0IG1haW50YWluIGxheW91dFxuICAgIC5pbnZpc2libGUgeyB2aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuICAgIC8vIEZvbnQgc21vb3RoaW5nXG4gICAgLy8gQW50aWFsaWFzZWQgZm9udCBzbW9vdGhpbmcgd29ya3MgYmVzdCBmb3IgbGlnaHQgdGV4dCBvbiBhIGRhcmsgYmFja2dyb3VuZC5cbiAgICAvLyBBcHBseSB0byBzaW5nbGUgZWxlbWVudHMgaW5zdGVhZCBvZiBnbG9iYWxseSB0byBib2R5LlxuICAgIC8vIE5vdGUgdGhpcyBvbmx5IGFwcGxpZXMgdG8gd2Via2l0LWJhc2VkIGRlc2t0b3AgYnJvd3NlcnMgYW5kIEZpcmVmb3ggMjUgKGFuZCBsYXRlcikgb24gdGhlIE1hYy5cbiAgICAuYW50aWFsaWFzZWQgeyAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDsgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTsgfVxuXG4gICAgLy8gR2V0IHJpZCBvZiBnYXAgdW5kZXIgaW1hZ2VzIGJ5IG1ha2luZyB0aGVtIGRpc3BsYXk6IGlubGluZS1ibG9jazsgYnkgZGVmYXVsdFxuICAgIGltZyB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cblxuICAgIC8vXG4gICAgLy8gR2xvYmFsIHJlc2V0cyBmb3IgZm9ybXNcbiAgICAvL1xuXG4gICAgLy8gTWFrZSBzdXJlIHRleHRhcmVhIHRha2VzIG9uIGhlaWdodCBhdXRvbWF0aWNhbGx5XG4gICAgdGV4dGFyZWEgeyBoZWlnaHQ6IGF1dG87IG1pbi1oZWlnaHQ6IDUwcHg7IH1cblxuICAgIC8vIE1ha2Ugc2VsZWN0IGVsZW1lbnRzIDEwMCUgd2lkdGggYnkgZGVmYXVsdFxuICAgIHNlbGVjdCB7IHdpZHRoOiAxMDAlOyB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vIFRoaXMgaXMgdGhlIGRlZmF1bHQgaHRtbCBhbmQgYm9keSBmb250LXNpemUgZm9yIHRoZSBiYXNlIHJlbSB2YWx1ZS5cbiRyZW0tYmFzZTogMTZweCAhZGVmYXVsdDtcblxuLy8gSU1QT1JUIE9OQ0Vcbi8vIFdlIHVzZSB0aGlzIHRvIHByZXZlbnQgc3R5bGVzIGZyb20gYmVpbmcgbG9hZGVkIG11bHRpcGxlIHRpbWVzIGZvciBjb21wb25lbnRzIHRoYXQgcmVseSBvbiBvdGhlciBjb21wb25lbnRzLlxuJG1vZHVsZXM6ICgpICFkZWZhdWx0O1xuQG1peGluIGV4cG9ydHMoJG5hbWUpIHtcbiAgLy8gSW1wb3J0IGZyb20gZ2xvYmFsIHNjb3BlXG4gICRtb2R1bGVzOiAkbW9kdWxlcyAhZ2xvYmFsO1xuICAvLyBDaGVjayBpZiBhIG1vZHVsZSBpcyBhbHJlYWR5IG9uIHRoZSBsaXN0XG4gICRtb2R1bGVfaW5kZXg6IGluZGV4KCRtb2R1bGVzLCAkbmFtZSk7XG4gIEBpZiAoKCRtb2R1bGVfaW5kZXggPT0gbnVsbCkgb3IgKCRtb2R1bGVfaW5kZXggPT0gZmFsc2UpKSB7XG4gICAgJG1vZHVsZXM6IGFwcGVuZCgkbW9kdWxlcywgJG5hbWUpICFnbG9iYWw7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy9cbi8vIEBmdW5jdGlvbnNcbi8vXG5cblxuLy8gUkFOR0VTXG4vLyBXZSB1c2UgdGhlc2UgZnVuY3Rpb25zIHRvIGRlZmluZSByYW5nZXMgZm9yIHZhcmlvdXMgdGhpbmdzLCBsaWtlIG1lZGlhIHF1ZXJpZXMuXG5AZnVuY3Rpb24gbG93ZXItYm91bmQoJHJhbmdlKXtcbiAgQGlmIGxlbmd0aCgkcmFuZ2UpIDw9IDAge1xuICAgIEByZXR1cm4gMDtcbiAgfVxuICBAcmV0dXJuIG50aCgkcmFuZ2UsMSk7XG59XG5cbkBmdW5jdGlvbiB1cHBlci1ib3VuZCgkcmFuZ2UpIHtcbiAgQGlmIGxlbmd0aCgkcmFuZ2UpIDwgMiB7XG4gICAgQHJldHVybiA5OTk5OTk5OTk5OTk7XG4gIH1cbiAgQHJldHVybiBudGgoJHJhbmdlLCAyKTtcbn1cblxuLy8gU1RSSVAgVU5JVFxuLy8gSXQgc3RyaXBzIHRoZSB1bml0IG9mIG1lYXN1cmUgYW5kIHJldHVybnMgaXRcbkBmdW5jdGlvbiBzdHJpcC11bml0KCRudW0pIHtcbiAgQHJldHVybiAkbnVtIC8gKCRudW0gKiAwICsgMSk7XG59XG5cbi8vIFRFWFQgSU5QVVQgVFlQRVNcblxuQGZ1bmN0aW9uIHRleHQtaW5wdXRzKCAkdHlwZXM6IGFsbCwgJHNlbGVjdG9yOiBpbnB1dCApIHtcblxuICAgICRyZXR1cm46ICgpO1xuXG4gICAgJGFsbC10ZXh0LWlucHV0LXR5cGVzOlxuICAgICAgdGV4dFxuICAgICAgcGFzc3dvcmRcbiAgICAgIGRhdGVcbiAgICAgIGRhdGV0aW1lXG4gICAgICBkYXRldGltZS1sb2NhbFxuICAgICAgbW9udGhcbiAgICAgIHdlZWtcbiAgICAgIGVtYWlsXG4gICAgICBudW1iZXJcbiAgICAgIHNlYXJjaFxuICAgICAgdGVsXG4gICAgICB0aW1lXG4gICAgICB1cmxcbiAgICAgIGNvbG9yXG4gICAgICB0ZXh0YXJlYTtcblxuICAgIEBpZiAkdHlwZXMgPT0gYWxsIHsgJHR5cGVzOiAkYWxsLXRleHQtaW5wdXQtdHlwZXM7IH1cblxuICAgIEBlYWNoICR0eXBlIGluICR0eXBlcyB7XG4gICAgICAgIEBpZiAkdHlwZSA9PSB0ZXh0YXJlYSB7XG4gICAgICAgICAgICBAaWYgJHNlbGVjdG9yID09IGlucHV0IHtcbiAgICAgICAgICAgICAgJHJldHVybjogYXBwZW5kKCRyZXR1cm4sIHVucXVvdGUoJyN7JHR5cGV9JyksIGNvbW1hKVxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICRyZXR1cm46IGFwcGVuZCgkcmV0dXJuLCB1bnF1b3RlKCcjeyR0eXBlfSN7JHNlbGVjdG9yfScpLCBjb21tYSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAkcmV0dXJuOiBhcHBlbmQoJHJldHVybiwgdW5xdW90ZSgnI3skc2VsZWN0b3J9W3R5cGU9XCIjeyR0eXBlfVwiXScpLCBjb21tYSlcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEByZXR1cm4gJHJldHVybjtcblxufVxuXG4vLyBDT05WRVJUIFRPIFJFTVxuQGZ1bmN0aW9uIGNvbnZlcnQtdG8tcmVtKCR2YWx1ZSwgJGJhc2UtdmFsdWU6ICRyZW0tYmFzZSkgIHtcbiAgJHZhbHVlOiBzdHJpcC11bml0KCR2YWx1ZSkgLyBzdHJpcC11bml0KCRiYXNlLXZhbHVlKSAqIDFyZW07XG4gIEBpZiAoJHZhbHVlID09IDByZW0pIHsgJHZhbHVlOiAwOyB9IC8vIFR1cm4gMHJlbSBpbnRvIDBcbiAgQHJldHVybiAkdmFsdWU7XG59XG5cbkBmdW5jdGlvbiBkYXRhKCRhdHRyKSB7XG4gIEBpZiAkbmFtZXNwYWNlIHtcbiAgICBAcmV0dXJuICdbZGF0YS0nICsgJG5hbWVzcGFjZSArICctJyArICRhdHRyICsgJ10nO1xuICB9XG5cbiAgQHJldHVybiAnW2RhdGEtJyArICRhdHRyICsgJ10nO1xufVxuXG4vLyBSRU0gQ0FMQ1xuXG4vLyBOZXcgU3ludGF4LCBhbGxvd3MgdG8gb3B0aW9uYWxseSBjYWxjdWxhdGUgb24gYSBkaWZmZXJlbnQgYmFzZSB2YWx1ZSB0byBjb3VudGVyIGNvbXBvdW5kaW5nIGVmZmVjdCBvZiByZW0ncy5cbi8vIENhbGwgd2l0aCAxLCAyLCAzIG9yIDQgcGFyYW1ldGVycywgJ3B4JyBpcyBub3QgcmVxdWlyZWQgYnV0IHN1cHBvcnRlZDpcbi8vXG4vLyAgIHJlbS1jYWxjKDEwIDIwIDMwcHggNDApO1xuLy9cbi8vIFNwYWNlIGRlbGltaXRlZCwgaWYgeW91IHdhbnQgdG8gZGVsaW1pdCB1c2luZyBjb21tYSdzLCB3cmFwIGl0IGluIGFub3RoZXIgcGFpciBvZiBicmFja2V0c1xuLy9cbi8vICAgcmVtLWNhbGMoKDEwLCAyMCwgMzAsIDQwcHgpKTtcbi8vXG4vLyBPcHRpb25hbGx5IGNhbGwgd2l0aCBhIGRpZmZlcmVudCBiYXNlIChlZzogOHB4KSB0byBjYWxjdWxhdGUgcmVtLlxuLy9cbi8vICAgcmVtLWNhbGMoMTZweCAzMnB4IDQ4cHgsIDhweCk7XG4vL1xuLy8gSWYgeW91IHJlcXVpcmUgdG8gY29tbWEgc2VwYXJhdGUgeW91ciBsaXN0XG4vL1xuLy8gICByZW0tY2FsYygoMTZweCwgMzJweCwgNDgpLCA4cHgpO1xuXG5AZnVuY3Rpb24gcmVtLWNhbGMoJHZhbHVlcywgJGJhc2UtdmFsdWU6ICRyZW0tYmFzZSkge1xuICAkbWF4OiBsZW5ndGgoJHZhbHVlcyk7XG5cbiAgQGlmICRtYXggPT0gMSB7IEByZXR1cm4gY29udmVydC10by1yZW0obnRoKCR2YWx1ZXMsIDEpLCAkYmFzZS12YWx1ZSk7IH1cblxuICAkcmVtVmFsdWVzOiAoKTtcbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbWF4IHtcbiAgICAkcmVtVmFsdWVzOiBhcHBlbmQoJHJlbVZhbHVlcywgY29udmVydC10by1yZW0obnRoKCR2YWx1ZXMsICRpKSwgJGJhc2UtdmFsdWUpKTtcbiAgfVxuICBAcmV0dXJuICRyZW1WYWx1ZXM7XG59XG5cbi8vIE9MRCBFTSBDQUxDXG4vLyBEZXByZWNhdGVkOiBXZSdsbCBkcm9wIHN1cHBvcnQgZm9yIHRoaXMgaW4gNS4xLjAsIHVzZSByZW0tY2FsYygpXG5AZnVuY3Rpb24gZW1DYWxjKCR2YWx1ZXMpe1xuICBAcmV0dXJuIHJlbS1jYWxjKCR2YWx1ZXMpO1xufVxuXG4vLyBPTEQgRU0gQ0FMQ1xuLy8gRGVwcmVjYXRlZDogV2UnbGwgZHJvcCBzdXBwb3J0IGZvciB0aGlzIGluIDUuMS4wLCB1c2UgcmVtLWNhbGMoKVxuQGZ1bmN0aW9uIGVtLWNhbGMoJHZhbHVlcyl7XG4gIEByZXR1cm4gcmVtLWNhbGMoJHZhbHVlcyk7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AaW1wb3J0IFwiZ2xvYmFsXCI7XG5cbi8vXG4vLyBCbG9jayBHcmlkIFZhcmlhYmxlc1xuLy9cbiRpbmNsdWRlLWh0bWwtYmxvY2stZ3JpZC1jbGFzc2VzOiAkaW5jbHVkZS1odG1sLWNsYXNzZXMgIWRlZmF1bHQ7XG4kaW5jbHVkZS14bC1odG1sLWJsb2NrLWdyaWQtY2xhc3NlczogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGlzIHRvIGNvbnRyb2wgdGhlIG1heGltdW0gbnVtYmVyIG9mIGJsb2NrIGdyaWQgZWxlbWVudHMgcGVyIHJvd1xuJGJsb2NrLWdyaWQtZWxlbWVudHM6IDEyICFkZWZhdWx0O1xuJGJsb2NrLWdyaWQtZGVmYXVsdC1zcGFjaW5nOiByZW0tY2FsYygyMCkgIWRlZmF1bHQ7XG5cbiRhbGlnbi1ibG9jay1ncmlkLXRvLWdyaWQ6IGZhbHNlICFkZWZhdWx0O1xuQGlmICRhbGlnbi1ibG9jay1ncmlkLXRvLWdyaWQge1xuICAkYmxvY2stZ3JpZC1kZWZhdWx0LXNwYWNpbmc6ICRjb2x1bW4tZ3V0dGVyO1xufVxuXG4vLyBFbmFibGVzIG1lZGlhIHF1ZXJpZXMgZm9yIGJsb2NrLWdyaWQgY2xhc3Nlcy4gU2V0IHRvIGZhbHNlIGlmIHdyaXRpbmcgc2VtYW50aWMgSFRNTC5cbiRibG9jay1ncmlkLW1lZGlhLXF1ZXJpZXM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vXG4vLyBCbG9jayBHcmlkIE1peGluc1xuLy9cblxuLy8gQ3JlYXRlIGEgY3VzdG9tIGJsb2NrIGdyaWRcbi8vXG4vLyAkcGVyLXJvdyAtICMgb2YgaXRlbXMgdG8gZGlzcGxheSBwZXIgcm93LiBEZWZhdWx0OiBmYWxzZS5cbi8vICRzcGFjaW5nIC0gIyBvZiBlbXMgdG8gdXNlIGFzIHBhZGRpbmcgb24gZWFjaCBibG9jayBpdGVtLiBEZWZhdWx0OiByZW0tY2FsYygyMCkuXG4vLyAkaW5jbHVkZS1zcGFjaW5nIC0gQWRkcyBwYWRkaW5nIHRvIG91ciBsaXN0IGl0ZW0uIERlZmF1bHQ6IHRydWUuXG4vLyAkYmFzZS1zdHlsZSAtIEFwcGx5IGEgYmFzZSBzdHlsZSB0byBibG9jayBncmlkLiBEZWZhdWx0OiB0cnVlLlxuQG1peGluIGJsb2NrLWdyaWQoXG4gICRwZXItcm93OmZhbHNlLFxuICAkc3BhY2luZzokYmxvY2stZ3JpZC1kZWZhdWx0LXNwYWNpbmcsXG4gICRpbmNsdWRlLXNwYWNpbmc6dHJ1ZSxcbiAgJGJhc2Utc3R5bGU6dHJ1ZSkge1xuXG4gIEBpZiAkYmFzZS1zdHlsZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogMDtcbiAgICBAaWYgJGFsaWduLWJsb2NrLWdyaWQtdG8tZ3JpZCB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgfSBAZWxzZSB7XG4gICAgICBtYXJnaW46IDAgKC0kc3BhY2luZy8yKTtcbiAgICB9XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG5cbiAgICAmPmxpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgZmxvYXQ6ICRkZWZhdWx0LWZsb2F0O1xuICAgICAgQGlmICRpbmNsdWRlLXNwYWNpbmcge1xuICAgICAgICBwYWRkaW5nOiAwICgkc3BhY2luZy8yKSAkc3BhY2luZztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaWYgJHBlci1yb3cge1xuICAgICY+bGkge1xuICAgICAgd2lkdGg6IDEwMCUvJHBlci1yb3c7XG4gICAgICBAaWYgJGluY2x1ZGUtc3BhY2luZyB7XG4gICAgICAgIHBhZGRpbmc6IDAgKCRzcGFjaW5nLzIpICRzcGFjaW5nO1xuICAgICAgfVxuICAgICAgbGlzdC1zdHlsZTogbm9uZTtcblxuICAgICAgJjpudGgtb2YtdHlwZSgxbikgeyBjbGVhcjogbm9uZTsgfVxuICAgICAgJjpudGgtb2YtdHlwZSgjeyRwZXItcm93fW4rMSkgeyBjbGVhcjogYm90aDsgfVxuICAgICAgQGlmICRhbGlnbi1ibG9jay1ncmlkLXRvLWdyaWQge1xuICAgICAgICBAaW5jbHVkZSBibG9jay1ncmlkLWFsaWduZWQoJHBlci1yb3csICRzcGFjaW5nKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGJsb2NrLWdyaWQtYWxpZ25lZCgkcGVyLXJvdywgJHNwYWNpbmcpIHtcbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkYmxvY2stZ3JpZC1lbGVtZW50cyB7XG4gICAgQGlmICRwZXItcm93ID49ICRpIHtcbiAgICAgICRncmlkLWNvbHVtbjogJysnICsgJGk7XG4gICAgICBAaWYgJHBlci1yb3cgPT0gJGkge1xuICAgICAgICAkZ3JpZC1jb2x1bW46ICcnO1xuICAgICAgfVxuICAgICAgJjpudGgtb2YtdHlwZSgjeyRwZXItcm93fW4je3VucXVvdGUoJGdyaWQtY29sdW1uKX0pIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAoJHNwYWNpbmcgLSAoKCRzcGFjaW5nIC8gJHBlci1yb3cpICogKCRwZXItcm93IC0gKCRpIC0gMSkpKSk7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICgkc3BhY2luZyAtICgoJHNwYWNpbmcgLyAkcGVyLXJvdykgKiAkaSkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBHZW5lcmF0ZSBwcmVzZW50YXRpb25hbCBtYXJrdXAgZm9yIGJsb2NrIGdyaWQuXG4vL1xuLy8gJHNpemUgLSBOYW1lIG9mIGNsYXNzIHRvIHVzZSwgaS5lLiBcImxhcmdlXCIgd2lsbCBnZW5lcmF0ZSAubGFyZ2UtYmxvY2stZ3JpZC0xLCAubGFyZ2UtYmxvY2stZ3JpZC0yLCBldGMuXG5AbWl4aW4gYmxvY2stZ3JpZC1odG1sLWNsYXNzZXMoJHNpemUsJGluY2x1ZGUtc3BhY2luZykge1xuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRibG9jay1ncmlkLWVsZW1lbnRzIHtcbiAgICAuI3skc2l6ZX0tYmxvY2stZ3JpZC0jeygkaSl9IHtcbiAgICAgIEBpbmNsdWRlIGJsb2NrLWdyaWQoJGksJGJsb2NrLWdyaWQtZGVmYXVsdC1zcGFjaW5nLCRpbmNsdWRlLXNwYWNpbmcsZmFsc2UpO1xuICAgIH1cbiAgfVxufVxuXG5AaW5jbHVkZSBleHBvcnRzKFwiYmxvY2stZ3JpZFwiKSB7XG4gIEBpZiAkaW5jbHVkZS1odG1sLWJsb2NrLWdyaWQtY2xhc3NlcyB7XG5cbiAgICBbY2xhc3MqPVwiYmxvY2stZ3JpZC1cIl0geyBAaW5jbHVkZSBibG9jay1ncmlkOyB9XG5cbiAgICBAaWYgJGJsb2NrLWdyaWQtbWVkaWEtcXVlcmllcyB7XG4gICAgICBAbWVkaWEgI3skc21hbGwtdXB9IHtcbiAgICAgICAgQGluY2x1ZGUgYmxvY2stZ3JpZC1odG1sLWNsYXNzZXMoJHNpemU6c21hbGwsJGluY2x1ZGUtc3BhY2luZzpmYWxzZSk7XG4gICAgICB9XG5cbiAgICAgIEBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAgICAgQGluY2x1ZGUgYmxvY2stZ3JpZC1odG1sLWNsYXNzZXMoJHNpemU6bWVkaXVtLCRpbmNsdWRlLXNwYWNpbmc6ZmFsc2UpO1xuICAgICAgfVxuXG4gICAgICBAbWVkaWEgI3skbGFyZ2UtdXB9IHtcbiAgICAgICAgQGluY2x1ZGUgYmxvY2stZ3JpZC1odG1sLWNsYXNzZXMoJHNpemU6bGFyZ2UsJGluY2x1ZGUtc3BhY2luZzpmYWxzZSk7XG4gICAgICB9XG5cbiAgICAgIEBpZiAkaW5jbHVkZS14bC1odG1sLWJsb2NrLWdyaWQtY2xhc3NlcyB7XG4gICAgICAgIEBtZWRpYSAjeyR4bGFyZ2UtdXB9IHtcbiAgICAgICAgICBAaW5jbHVkZSBibG9jay1ncmlkLWh0bWwtY2xhc3Nlcygkc2l6ZTp4bGFyZ2UsJGluY2x1ZGUtc3BhY2luZzpmYWxzZSk7XG4gICAgICAgIH1cblxuICAgICAgICBAbWVkaWEgI3skeHhsYXJnZS11cH0ge1xuICAgICAgICAgIEBpbmNsdWRlIGJsb2NrLWdyaWQtaHRtbC1jbGFzc2VzKCRzaXplOnh4bGFyZ2UsJGluY2x1ZGUtc3BhY2luZzpmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBpbXBvcnQgXCJnbG9iYWxcIjtcblxuLy9cbi8vIEJyZWFkY3J1bWIgVmFyaWFibGVzXG4vL1xuJGluY2x1ZGUtaHRtbC1uYXYtY2xhc3NlczogJGluY2x1ZGUtaHRtbC1jbGFzc2VzICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhpcyB0byBzZXQgdGhlIGJhY2tncm91bmQgY29sb3IgZm9yIHRoZSBicmVhZGNydW1iIGNvbnRhaW5lci5cbiRjcnVtYi1iZzogc2NhbGUtY29sb3IoJHNlY29uZGFyeS1jb2xvciwgJGxpZ2h0bmVzczogNTUlKSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHNldCB0aGUgcGFkZGluZyBhcm91bmQgdGhlIGJyZWFkY3J1bWJzLlxuJGNydW1iLXBhZGRpbmc6IHJlbS1jYWxjKDkgMTQgOSkgIWRlZmF1bHQ7XG4kY3J1bWItc2lkZS1wYWRkaW5nOiByZW0tY2FsYygxMikgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIGJvcmRlciBzdHlsZXMuXG4kY3J1bWItZnVuY3Rpb24tZmFjdG9yOiAtMTAlICFkZWZhdWx0O1xuJGNydW1iLWJvcmRlci1zaXplOiAxcHggIWRlZmF1bHQ7XG4kY3J1bWItYm9yZGVyLXN0eWxlOiBzb2xpZCAhZGVmYXVsdDtcbiRjcnVtYi1ib3JkZXItY29sb3I6IHNjYWxlLWNvbG9yKCRjcnVtYi1iZywgJGxpZ2h0bmVzczogJGNydW1iLWZ1bmN0aW9uLWZhY3RvcikgIWRlZmF1bHQ7XG4kY3J1bWItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHNldCB2YXJpb3VzIHRleHQgc3R5bGVzIGZvciBicmVhZGNydW1icy5cbiRjcnVtYi1mb250LXNpemU6IHJlbS1jYWxjKDExKSAhZGVmYXVsdDtcbiRjcnVtYi1mb250LWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcbiRjcnVtYi1mb250LWNvbG9yLWN1cnJlbnQ6ICRvaWwgIWRlZmF1bHQ7XG4kY3J1bWItZm9udC1jb2xvci11bmF2YWlsYWJsZTogJGFsdW1pbnVtICFkZWZhdWx0O1xuJGNydW1iLWZvbnQtdHJhbnNmb3JtOiB1cHBlcmNhc2UgIWRlZmF1bHQ7XG4kY3J1bWItbGluay1kZWNvcjogdW5kZXJsaW5lICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCB0aGUgc2xhc2ggYmV0d2VlbiBicmVhZGNydW1ic1xuJGNydW1iLXNsYXNoLWNvbG9yOiAkYmFzZSAhZGVmYXVsdDtcbiRjcnVtYi1zbGFzaDogXCIvXCIgIWRlZmF1bHQ7XG5cbi8vXG4vLyBCcmVhZGNydW1iIE1peGluc1xuLy9cblxuLy8gV2UgdXNlIHRoaXMgbWl4aW4gdG8gY3JlYXRlIGEgY29udGFpbmVyIGFyb3VuZCBvdXIgYnJlYWRjcnVtYnNcbkBtaXhpbiBjcnVtYi1jb250YWluZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogJGNydW1iLXBhZGRpbmc7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgYm9yZGVyLXN0eWxlOiAkY3J1bWItYm9yZGVyLXN0eWxlO1xuICBib3JkZXItd2lkdGg6ICRjcnVtYi1ib3JkZXItc2l6ZTtcblxuICAvLyBXZSBjb250cm9sIHdoaWNoIGJhY2tncm91bmQgY29sb3IgYW5kIGJvcmRlciBjb21lIHRocm91Z2guXG4gIGJhY2tncm91bmQtY29sb3I6ICRjcnVtYi1iZztcbiAgYm9yZGVyLWNvbG9yOiAkY3J1bWItYm9yZGVyLWNvbG9yO1xufVxuXG4vLyBXZSB1c2UgdGhpcyBtaXhpbiB0byBjcmVhdGUgYnJlYWRjcnVtYiBzdHlsZXMgZnJvbSBsaXN0IGl0ZW1zLlxuQG1peGluIGNydW1icyB7XG5cbiAgLy8gQSBub3JtYWwgc3RhdGUgd2lsbCBtYWtlIHRoZSBsaW5rcyBsb29rIGFuZCBhY3QgbGlrZSBjbGlja2FibGUgYnJlYWRjcnVtYnMuXG4gIG1hcmdpbjogMDtcbiAgZmxvYXQ6ICRkZWZhdWx0LWZsb2F0O1xuICBmb250LXNpemU6ICRjcnVtYi1mb250LXNpemU7XG4gIGxpbmUtaGVpZ2h0OiAkY3J1bWItZm9udC1zaXplO1xuICB0ZXh0LXRyYW5zZm9ybTogJGNydW1iLWZvbnQtdHJhbnNmb3JtO1xuICBjb2xvcjogJGNydW1iLWZvbnQtY29sb3I7XG5cbiAgJjpob3ZlciBhLCAmOmZvY3VzIGEgeyB0ZXh0LWRlY29yYXRpb246ICRjcnVtYi1saW5rLWRlY29yOyB9XG5cbiAgYSB7XG4gICAgY29sb3I6ICRjcnVtYi1mb250LWNvbG9yO1xuICB9XG5cbiAgLy8gQ3VycmVudCBpcyBmb3IgdGhlIGxpbmsgb2YgdGhlIGN1cnJlbnQgcGFnZVxuICAmLmN1cnJlbnQge1xuICAgIGN1cnNvcjogJGN1cnNvci1kZWZhdWx0LXZhbHVlO1xuICAgIGNvbG9yOiAkY3J1bWItZm9udC1jb2xvci1jdXJyZW50O1xuICAgIGEge1xuICAgICAgY3Vyc29yOiAkY3Vyc29yLWRlZmF1bHQtdmFsdWU7XG4gICAgICBjb2xvcjogJGNydW1iLWZvbnQtY29sb3ItY3VycmVudDtcbiAgICB9XG5cbiAgICAmOmhvdmVyLCAmOmhvdmVyIGEsXG4gICAgJjpmb2N1cywgJjpmb2N1cyBhIHsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gIH1cblxuICAvLyBVbmF2YWlsYWJsZSByZW1vdmVkIGNvbG9yIGFuZCBsaW5rIHN0eWxlcyBzbyBpdCBsb29rcyBpbmFjdGl2ZS5cbiAgJi51bmF2YWlsYWJsZSB7XG4gICAgY29sb3I6ICRjcnVtYi1mb250LWNvbG9yLXVuYXZhaWxhYmxlO1xuICAgIGEgeyBjb2xvcjogJGNydW1iLWZvbnQtY29sb3ItdW5hdmFpbGFibGU7IH1cblxuICAgICY6aG92ZXIsXG4gICAgJjpob3ZlciBhLFxuICAgICY6Zm9jdXMsXG4gICAgYTpmb2N1cyB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBjb2xvcjogJGNydW1iLWZvbnQtY29sb3ItdW5hdmFpbGFibGU7XG4gICAgICBjdXJzb3I6ICRjdXJzb3ItZGlzYWJsZWQtdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgJjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiI3skY3J1bWItc2xhc2h9XCI7XG4gICAgY29sb3I6ICRjcnVtYi1zbGFzaC1jb2xvcjtcbiAgICBtYXJnaW46IDAgJGNydW1iLXNpZGUtcGFkZGluZztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxcHg7XG4gIH1cblxuICAmOmZpcnN0LWNoaWxkOmJlZm9yZSB7XG4gICAgY29udGVudDogXCIgXCI7XG4gICAgbWFyZ2luOiAwO1xuICB9XG59XG5cbkBpbmNsdWRlIGV4cG9ydHMoXCJicmVhZGNydW1ic1wiKSB7XG4gIEBpZiAkaW5jbHVkZS1odG1sLW5hdi1jbGFzc2VzIHtcbiAgICAuYnJlYWRjcnVtYnMge1xuICAgICAgQGluY2x1ZGUgY3J1bWItY29udGFpbmVyO1xuICAgICAgQGluY2x1ZGUgcmFkaXVzKCRjcnVtYi1yYWRpdXMpO1xuXG4gICAgICAmPioge1xuICAgICAgICBAaW5jbHVkZSBjcnVtYnM7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8qIEFjY2Vzc2liaWxpdHkgLSBoaWRlcyB0aGUgZm9yd2FyZCBzbGFzaCAqL1xuW2FyaWEtbGFiZWw9XCJicmVhZGNydW1ic1wiXSBbYXJpYS1oaWRkZW49XCJ0cnVlXCJdOmFmdGVyIHtcbiAgY29udGVudDogXCIvXCI7XG4gIH1cbiIsIi8vIEZvdW5kYXRpb24gYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBpbXBvcnQgXCJnbG9iYWxcIjtcbkBpbXBvcnQgXCJidXR0b25zXCI7XG5cbi8vXG4vLyBAdmFyaWFibGVzXG4vL1xuJGluY2x1ZGUtaHRtbC1mb3JtLWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcyAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoaXMgdG8gc2V0IHRoZSBiYXNlIGZvciBsb3RzIG9mIGZvcm0gc3BhY2luZyBhbmQgcG9zaXRpb25pbmcgc3R5bGVzXG4kZm9ybS1zcGFjaW5nOiByZW0tY2FsYygxNikgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBzdHlsZSB0aGUgbGFiZWxzIGluIGRpZmZlcmVudCB3YXlzXG4kZm9ybS1sYWJlbC1wb2ludGVyOiBwb2ludGVyICFkZWZhdWx0O1xuJGZvcm0tbGFiZWwtZm9udC1zaXplOiByZW0tY2FsYygxNCkgIWRlZmF1bHQ7XG4kZm9ybS1sYWJlbC1mb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcbiRmb3JtLWxhYmVsLWxpbmUtaGVpZ2h0OiAxLjUgIWRlZmF1bHQ7XG4kZm9ybS1sYWJlbC1mb250LWNvbG9yOiBzY2FsZS1jb2xvcigkYmxhY2ssICRsaWdodG5lc3M6IDMwJSkgIWRlZmF1bHQ7XG4kZm9ybS1sYWJlbC1zbWFsbC10cmFuc2Zvcm06IGNhcGl0YWxpemUgIWRlZmF1bHQ7XG4kZm9ybS1sYWJlbC1ib3R0b20tbWFyZ2luOiAwICFkZWZhdWx0O1xuJGlucHV0LWZvbnQtZmFtaWx5OiBpbmhlcml0ICFkZWZhdWx0O1xuJGlucHV0LWZvbnQtY29sb3I6IHJnYmEoMCwwLDAsMC43NSkgIWRlZmF1bHQ7XG4kaW5wdXQtZm9udC1zaXplOiByZW0tY2FsYygxNCkgIWRlZmF1bHQ7XG4kaW5wdXQtYmctY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcbiRpbnB1dC1mb2N1cy1iZy1jb2xvcjogc2NhbGUtY29sb3IoJHdoaXRlLCAkbGlnaHRuZXNzOiAtMiUpICFkZWZhdWx0O1xuJGlucHV0LWJvcmRlci1jb2xvcjogc2NhbGUtY29sb3IoJHdoaXRlLCAkbGlnaHRuZXNzOiAtMjAlKSAhZGVmYXVsdDtcbiRpbnB1dC1mb2N1cy1ib3JkZXItY29sb3I6IHNjYWxlLWNvbG9yKCR3aGl0ZSwgJGxpZ2h0bmVzczogLTQwJSkgIWRlZmF1bHQ7XG4kaW5wdXQtYm9yZGVyLXN0eWxlOiBzb2xpZCAhZGVmYXVsdDtcbiRpbnB1dC1ib3JkZXItd2lkdGg6IDFweCAhZGVmYXVsdDtcbiRpbnB1dC1ib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcbiRpbnB1dC1kaXNhYmxlZC1iZzogJGdhaW5zYm9ybyAhZGVmYXVsdDtcbiRpbnB1dC1kaXNhYmxlZC1jdXJzb3I6ICRjdXJzb3ItZGVmYXVsdC12YWx1ZSAhZGVmYXVsdDtcbiRpbnB1dC1ib3gtc2hhZG93OiBpbnNldCAwIDFweCAycHggcmdiYSgwLDAsMCwwLjEpICFkZWZhdWx0O1xuJGlucHV0LWluY2x1ZGUtZ2xvd2luZy1lZmZlY3Q6IGZhbHNlICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gc3R5bGUgdGhlIGZpZWxkc2V0IGJvcmRlciBhbmQgc3BhY2luZy5cbiRmaWVsZHNldC1ib3JkZXItc3R5bGU6IHNvbGlkICFkZWZhdWx0O1xuJGZpZWxkc2V0LWJvcmRlci13aWR0aDogMXB4ICFkZWZhdWx0O1xuJGZpZWxkc2V0LWJvcmRlci1jb2xvcjogJGdhaW5zYm9ybyAhZGVmYXVsdDtcbiRmaWVsZHNldC1wYWRkaW5nOiByZW0tY2FsYygyMCkgIWRlZmF1bHQ7XG4kZmllbGRzZXQtbWFyZ2luOiByZW0tY2FsYygxOCAwKSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHN0eWxlIHRoZSBsZWdlbmRzIHdoZW4geW91IHVzZSB0aGVtXG4kbGVnZW5kLWJnOiAkd2hpdGUgIWRlZmF1bHQ7XG4kbGVnZW5kLWZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtYm9sZCAhZGVmYXVsdDtcbiRsZWdlbmQtcGFkZGluZzogcmVtLWNhbGMoMCAzKSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHN0eWxlIHRoZSBwcmVmaXggYW5kIHBvc3RmaXggaW5wdXQgZWxlbWVudHNcbiRpbnB1dC1wcmVmaXgtYmc6IHNjYWxlLWNvbG9yKCR3aGl0ZSwgJGxpZ2h0bmVzczogLTUlKSAhZGVmYXVsdDtcbiRpbnB1dC1wcmVmaXgtYm9yZGVyLWNvbG9yOiBzY2FsZS1jb2xvcigkd2hpdGUsICRsaWdodG5lc3M6IC0yMCUpICFkZWZhdWx0O1xuJGlucHV0LXByZWZpeC1ib3JkZXItc2l6ZTogMXB4ICFkZWZhdWx0O1xuJGlucHV0LXByZWZpeC1ib3JkZXItdHlwZTogc29saWQgIWRlZmF1bHQ7XG4kaW5wdXQtcHJlZml4LW92ZXJmbG93OiB2aXNpYmxlICFkZWZhdWx0O1xuJGlucHV0LXByZWZpeC1mb250LWNvbG9yOiAkb2lsICFkZWZhdWx0O1xuJGlucHV0LXByZWZpeC1mb250LWNvbG9yLWFsdDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhpcyBzZXR0aW5nIHRvIHR1cm4gb24vb2ZmIEhUTUw1IG51bWJlciBzcGlubmVycyAodGhlIHVwL2Rvd24gYXJyb3dzKVxuJGlucHV0LW51bWJlci1zcGlubmVyczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHN0eWxlIHRoZSBlcnJvciBzdGF0ZXMgZm9yIGlucHV0cyBhbmQgbGFiZWxzXG4kaW5wdXQtZXJyb3ItbWVzc2FnZS1wYWRkaW5nOiByZW0tY2FsYyg2IDkgOSkgIWRlZmF1bHQ7XG4kaW5wdXQtZXJyb3ItbWVzc2FnZS10b3A6IC0xcHggIWRlZmF1bHQ7XG4kaW5wdXQtZXJyb3ItbWVzc2FnZS1mb250LXNpemU6IHJlbS1jYWxjKDEyKSAhZGVmYXVsdDtcbiRpbnB1dC1lcnJvci1tZXNzYWdlLWZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuJGlucHV0LWVycm9yLW1lc3NhZ2UtZm9udC1zdHlsZTogaXRhbGljICFkZWZhdWx0O1xuJGlucHV0LWVycm9yLW1lc3NhZ2UtZm9udC1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuJGlucHV0LWVycm9yLW1lc3NhZ2UtYmctY29sb3I6ICRhbGVydC1jb2xvciAhZGVmYXVsdDtcbiRpbnB1dC1lcnJvci1tZXNzYWdlLWZvbnQtY29sb3ItYWx0OiAkb2lsICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhpcyB0byBzdHlsZSB0aGUgZ2xvd2luZyBlZmZlY3Qgb2YgaW5wdXRzIHdoZW4gZm9jdXNlZFxuJGdsb3dpbmctZWZmZWN0LWZhZGUtdGltZTogMC40NXMgIWRlZmF1bHQ7XG4kZ2xvd2luZy1lZmZlY3QtY29sb3I6ICRpbnB1dC1mb2N1cy1ib3JkZXItY29sb3IgIWRlZmF1bHQ7XG5cbi8vIFNlbGVjdCB2YXJpYWJsZXNcbiRzZWxlY3QtYmctY29sb3I6ICRnaG9zdCAhZGVmYXVsdDtcbiRzZWxlY3QtaG92ZXItYmctY29sb3I6IHNjYWxlLWNvbG9yKCRzZWxlY3QtYmctY29sb3IsICRsaWdodG5lc3M6IC0zJSkgIWRlZmF1bHQ7XG5cbi8vXG4vLyBATUlYSU5TXG4vL1xuXG4vLyBXZSB1c2UgdGhpcyBtaXhpbiB0byBnaXZlIHVzIGZvcm0gc3R5bGVzIGZvciByb3dzIGluc2lkZSBvZiBmb3Jtc1xuQG1peGluIGZvcm0tcm93LWJhc2Uge1xuICAucm93IHsgbWFyZ2luOiAwICgoLSRmb3JtLXNwYWNpbmcpIC8gMik7XG5cbiAgICAuY29sdW1uLFxuICAgIC5jb2x1bW5zIHsgcGFkZGluZzogMCAoJGZvcm0tc3BhY2luZyAvIDIpOyB9XG5cbiAgICAvLyBVc2UgdGhpcyB0byBjb2xsYXBzZSB0aGUgbWFyZ2lucyBvZiBhIGZvcm0gcm93XG4gICAgJi5jb2xsYXBzZSB7IG1hcmdpbjogMDtcblxuICAgICAgLmNvbHVtbixcbiAgICAgIC5jb2x1bW5zIHsgcGFkZGluZzogMDsgfVxuICAgICAgaW5wdXQge1xuICAgICAgICBAaW5jbHVkZSBzaWRlLXJhZGl1cygkb3Bwb3NpdGUtZGlyZWN0aW9uLCAwKTtcbiAgICAgIH1cblxuICAgIH1cbiAgfVxuICBpbnB1dC5jb2x1bW4sXG4gIGlucHV0LmNvbHVtbnMsXG4gIHRleHRhcmVhLmNvbHVtbixcbiAgdGV4dGFyZWEuY29sdW1ucyB7IHBhZGRpbmctI3skZGVmYXVsdC1mbG9hdH06ICgkZm9ybS1zcGFjaW5nIC8gMik7IH1cbn1cblxuLy8gQE1JWElOXG4vL1xuLy8gV2UgdXNlIHRoaXMgbWl4aW4gdG8gZ2l2ZSBhbGwgYmFzaWMgZm9ybSBlbGVtZW50cyB0aGVpciBzdHlsZVxuQG1peGluIGZvcm0tZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iZy1jb2xvcjtcbiAgZm9udC1mYW1pbHk6ICRpbnB1dC1mb250LWZhbWlseTtcbiAgYm9yZGVyOiB7XG4gICAgc3R5bGU6ICRpbnB1dC1ib3JkZXItc3R5bGU7XG4gICAgd2lkdGg6ICRpbnB1dC1ib3JkZXItd2lkdGg7XG4gICAgY29sb3I6ICRpbnB1dC1ib3JkZXItY29sb3I7XG4gIH1cbiAgYm94LXNoYWRvdzogJGlucHV0LWJveC1zaGFkb3c7XG4gIGNvbG9yOiAkaW5wdXQtZm9udC1jb2xvcjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogJGlucHV0LWZvbnQtc2l6ZTtcbiAgbWFyZ2luOiAwIDAgJGZvcm0tc3BhY2luZyAwO1xuICBwYWRkaW5nOiAkZm9ybS1zcGFjaW5nIC8gMjtcbiAgaGVpZ2h0OiAoJGlucHV0LWZvbnQtc2l6ZSArICgkZm9ybS1zcGFjaW5nICogMS41KSAtIHJlbS1jYWxjKDEpKTtcbiAgd2lkdGg6IDEwMCU7XG4gIEBpbmNsdWRlIGJveC1zaXppbmcoYm9yZGVyLWJveCk7XG4gIEBpZiAkaW5wdXQtaW5jbHVkZS1nbG93aW5nLWVmZmVjdCB7XG4gICAgQGluY2x1ZGUgYmxvY2stZ2xvd2luZy1lZmZlY3QoZm9jdXMsICRnbG93aW5nLWVmZmVjdC1mYWRlLXRpbWUsICRnbG93aW5nLWVmZmVjdC1jb2xvcik7XG4gIH1cbiAgLy8gQmFzaWMgZm9jdXMgc3R5bGVzXG4gICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQ6ICRpbnB1dC1mb2N1cy1iZy1jb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRpbnB1dC1mb2N1cy1ib3JkZXItY29sb3I7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgfVxuICAvLyBEaXNiYWxlZCBTdHlsZXNcbiAgJjpkaXNhYmxlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWRpc2FibGVkLWJnO1xuICAgIGN1cnNvcjogJGlucHV0LWRpc2FibGVkLWN1cnNvcjtcbiAgfVxuXG4gIC8vIERpc2FibGVkIGJhY2tncm91bmQgaW5wdXQgYmFja2dyb3VuZCBjb2xvclxuICAmW2Rpc2FibGVkXSxcbiAgJltyZWFkb25seV0sXG4gIGZpZWxkc2V0W2Rpc2FibGVkXSAmIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtZGlzYWJsZWQtYmc7XG4gICAgY3Vyc29yOiAkaW5wdXQtZGlzYWJsZWQtY3Vyc29yO1xuICB9XG59XG5cbi8vIEBNSVhJTlxuLy9cbi8vIFdlIHVzZSB0aGlzIG1peGluIHRvIGNyZWF0ZSBmb3JtIGxhYmVsc1xuLy9cbi8vICRhbGlnbm1lbnQgLSBBbGlnbm1lbnQgb3B0aW9ucy4gRGVmYXVsdDogZmFsc2UuIE9wdGlvbnM6IFtyaWdodCwgaW5saW5lLCBmYWxzZV1cbi8vICRiYXNlLXN0eWxlIC0gQ29udHJvbCB3aGV0aGVyIG9yIG5vdCB0aGUgYmFzZSBzdHlsZXMgY29tZSB0aHJvdWdoLiBEZWZhdWx0OiB0cnVlLlxuQG1peGluIGZvcm0tbGFiZWwoJGFsaWdubWVudDpmYWxzZSwgJGJhc2Utc3R5bGU6dHJ1ZSkge1xuXG4gIC8vIENvbnRyb2wgd2hldGhlciBvciBub3QgdGhlIGJhc2Ugc3R5bGVzIGNvbWUgdGhyb3VnaC5cbiAgQGlmICRiYXNlLXN0eWxlIHtcbiAgICBmb250LXNpemU6ICRmb3JtLWxhYmVsLWZvbnQtc2l6ZTtcbiAgICBjb2xvcjogJGZvcm0tbGFiZWwtZm9udC1jb2xvcjtcbiAgICBjdXJzb3I6ICRmb3JtLWxhYmVsLXBvaW50ZXI7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC13ZWlnaHQ6ICRmb3JtLWxhYmVsLWZvbnQtd2VpZ2h0O1xuICAgIGxpbmUtaGVpZ2h0OiAkZm9ybS1sYWJlbC1saW5lLWhlaWdodDtcbiAgICBtYXJnaW4tYm90dG9tOiAkZm9ybS1sYWJlbC1ib3R0b20tbWFyZ2luO1xuICB9XG5cbiAgLy8gQWxpZ25tZW50IG9wdGlvbnNcbiAgQGlmICRhbGlnbm1lbnQgPT0gcmlnaHQge1xuICAgIGZsb2F0OiBub25lICFpbXBvcnRhbnQ7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIH1cbiAgQGVsc2UgaWYgJGFsaWdubWVudCA9PSBpbmxpbmUge1xuICAgIG1hcmdpbjogMCAwICRmb3JtLXNwYWNpbmcgMDtcbiAgICBwYWRkaW5nOiAkZm9ybS1zcGFjaW5nIC8gMiArIHJlbS1jYWxjKCRpbnB1dC1ib3JkZXItd2lkdGgpIDA7XG4gIH1cbn1cblxuLy8gV2UgdXNlIHRoaXMgbWl4aW4gdG8gY3JlYXRlIHBvc3RmaXgvcHJlZml4IGZvcm0gTGFiZWxzXG5AbWl4aW4gcHJlZml4LXBvc3RmaXgtYmFzZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDI7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmctdG9wOiAwO1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgYm9yZGVyLXN0eWxlOiAkaW5wdXQtcHJlZml4LWJvcmRlci10eXBlO1xuICBib3JkZXItd2lkdGg6ICRpbnB1dC1wcmVmaXgtYm9yZGVyLXNpemU7XG4gIG92ZXJmbG93OiAkaW5wdXQtcHJlZml4LW92ZXJmbG93O1xuICBmb250LXNpemU6ICRmb3JtLWxhYmVsLWZvbnQtc2l6ZTtcbiAgaGVpZ2h0OiAoJGlucHV0LWZvbnQtc2l6ZSArICgkZm9ybS1zcGFjaW5nICogMS41KSAtIHJlbS1jYWxjKDEpKTtcbiAgbGluZS1oZWlnaHQ6ICgkaW5wdXQtZm9udC1zaXplICsgKCRmb3JtLXNwYWNpbmcgKiAxLjUpIC0gcmVtLWNhbGMoMSkpO1xufVxuXG4vLyBATUlYSU5cbi8vXG4vLyBXZSB1c2UgdGhpcyBtaXhpbiB0byBjcmVhdGUgcHJlZml4IGxhYmVsIHN0eWxlc1xuLy8gJGJnIC0gRGVmYXVsdDokaW5wdXQtcHJlZml4LWJnIHx8IHNjYWxlLWNvbG9yKCR3aGl0ZSwgJGxpZ2h0bmVzczogLTUlKSAhZGVmYXVsdDtcbi8vICRpcy1idXR0b24gLSBUb2dnbGUgcG9zaXRpb24gc2V0dGluZ3MgaWYgcHJlZml4IGlzIGEgYnV0dG9uLiBEZWZhdWx0OmZhbHNlXG4vL1xuQG1peGluIHByZWZpeCgkYmc6JGlucHV0LXByZWZpeC1iZywgJGJvcmRlcjokaW5wdXQtcHJlZml4LWJvcmRlci1jb2xvciwgJGlzLWJ1dHRvbjpmYWxzZSkge1xuXG4gIEBpZiAkYmcge1xuICAgICRiZy1saWdodG5lc3M6IGxpZ2h0bmVzcygkYmcpO1xuICAgIGJhY2tncm91bmQ6ICRiZztcbiAgICBib3JkZXItI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogbm9uZTtcblxuICAgIC8vIENvbnRyb2wgdGhlIGZvbnQgY29sb3IgYmFzZWQgb24gYmFja2dyb3VuZCBicmlnaHRuZXNzXG4gICAgQGlmICRiZy1saWdodG5lc3MgPiA3MCUgb3IgJGJnID09IHllbGxvdyB7IGNvbG9yOiAkaW5wdXQtcHJlZml4LWZvbnQtY29sb3I7IH1cbiAgICBAZWxzZSB7IGNvbG9yOiAkaW5wdXQtcHJlZml4LWZvbnQtY29sb3ItYWx0OyB9XG4gIH1cblxuICBAaWYgJGJvcmRlciB7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyO1xuICB9XG5cbiAgQGlmICRpcy1idXR0b24ge1xuICAgIHBhZGRpbmctI3skZGVmYXVsdC1mbG9hdH06IDA7XG4gICAgcGFkZGluZy0jeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAwO1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBib3JkZXI6IG5vbmU7XG4gIH1cblxufVxuXG4vLyBATUlYSU5cbi8vXG4vLyBXZSB1c2UgdGhpcyBtaXhpbiB0byBjcmVhdGUgcG9zdGZpeCBsYWJlbCBzdHlsZXNcbi8vICRiZyAtIERlZmF1bHQ6JGlucHV0LXByZWZpeC1iZyB8fCBzY2FsZS1jb2xvcigkd2hpdGUsICRsaWdodG5lc3M6IC01JSkgIWRlZmF1bHQ7XG4vLyAkaXMtYnV0dG9uIC0gVG9nZ2xlIHBvc2l0aW9uIHNldHRpbmdzIGlmIHByZWZpeCBpcyBhIGJ1dHRvbi4gRGVmYXVsdDogZmFsc2VcbkBtaXhpbiBwb3N0Zml4KCRiZzokaW5wdXQtcHJlZml4LWJnLCAkYm9yZGVyOiRpbnB1dC1wcmVmaXgtYm9yZGVyLWNvbG9yLCAkaXMtYnV0dG9uOmZhbHNlKSB7XG5cbiAgQGlmICRiZyB7XG4gICAgJGJnLWxpZ2h0bmVzczogbGlnaHRuZXNzKCRiZyk7XG4gICAgYmFja2dyb3VuZDogJGJnO1xuICAgIGJvcmRlci0jeyRkZWZhdWx0LWZsb2F0fTogbm9uZTtcblxuICAgIC8vIENvbnRyb2wgdGhlIGZvbnQgY29sb3IgYmFzZWQgb24gYmFja2dyb3VuZCBicmlnaHRuZXNzXG4gICAgQGlmICRiZy1saWdodG5lc3MgPiA3MCUgIG9yICRiZyA9PSB5ZWxsb3cgeyBjb2xvcjogJGlucHV0LXByZWZpeC1mb250LWNvbG9yOyB9XG4gICAgQGVsc2UgeyBjb2xvcjogJGlucHV0LXByZWZpeC1mb250LWNvbG9yLWFsdDsgfVxuICB9XG5cbiAgQGlmICRib3JkZXIge1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlcjtcbiAgfVxuXG4gIEBpZiAkaXMtYnV0dG9uIHtcbiAgICBwYWRkaW5nLSN7JGRlZmF1bHQtZmxvYXR9OiAwO1xuICAgIHBhZGRpbmctI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogMDtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgYm9yZGVyOiBub25lO1xuICB9XG5cbn1cblxuLy8gV2UgdXNlIHRoaXMgbWl4aW4gdG8gc3R5bGUgZmllbGRzZXRzXG5AbWl4aW4gZmllbGRzZXQge1xuICBib3JkZXI6ICRmaWVsZHNldC1ib3JkZXItd2lkdGggJGZpZWxkc2V0LWJvcmRlci1zdHlsZSAkZmllbGRzZXQtYm9yZGVyLWNvbG9yO1xuICBwYWRkaW5nOiAkZmllbGRzZXQtcGFkZGluZztcbiAgbWFyZ2luOiAkZmllbGRzZXQtbWFyZ2luO1xuXG4gIC8vIGFuZCBsZWdlbmQgc3R5bGVzXG4gIGxlZ2VuZCB7XG4gICAgZm9udC13ZWlnaHQ6ICRsZWdlbmQtZm9udC13ZWlnaHQ7XG4gICAgYmFja2dyb3VuZDogJGxlZ2VuZC1iZztcbiAgICBwYWRkaW5nOiAkbGVnZW5kLXBhZGRpbmc7XG4gICAgbWFyZ2luOiAwO1xuICAgIG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogcmVtLWNhbGMoLTMpO1xuICB9XG59XG5cbi8vIEBNSVhJTlxuLy9cbi8vIFdlIHVzZSB0aGlzIG1peGluIHRvIGNvbnRyb2wgYm9yZGVyIGFuZCBiYWNrZ3JvdW5kIGNvbG9yIG9mIGVycm9yIGlucHV0c1xuLy8gJGNvbG9yIC0gRGVmYXVsdDogJGFsZXJ0LWNvbG9yIChmb3VuZCBpbiBzZXR0aW5ncyBmaWxlKVxuQG1peGluIGZvcm0tZXJyb3ItY29sb3IoJGNvbG9yOiRhbGVydC1jb2xvcikge1xuICBib3JkZXItY29sb3I6ICRjb2xvcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkY29sb3IsIDAuMSk7XG5cbiAgLy8gR28gYmFjayB0byBub3JtYWwgb24gZm9jdXNcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZDogJGlucHV0LWZvY3VzLWJnLWNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGlucHV0LWZvY3VzLWJvcmRlci1jb2xvcjtcbiAgfVxufVxuXG4vLyBATUlYSU5cbi8vXG4vLyBXZSB1c2UgdGhpcyBzaW1wbGUgbWl4aW4gdG8gc3R5bGUgbGFiZWxzIGZvciBlcnJvciBpbnB1dHNcbi8vICRjb2xvciAtIERlZmF1bHQ6JGFsZXJ0LWNvbG9yLiBGb3VuZCBpbiBzZXR0aW5ncyBmaWxlXG5AbWl4aW4gZm9ybS1sYWJlbC1lcnJvci1jb2xvcigkY29sb3I6JGFsZXJ0LWNvbG9yKSB7IGNvbG9yOiAkY29sb3I7IH1cblxuLy8gQE1JWElOXG4vL1xuLy8gV2UgdXNlIHRoaXMgbWl4aW4gdG8gY3JlYXRlIGVycm9yIG1lc3NhZ2Ugc3R5bGVzXG4vLyAkYmcgLSBEZWZhdWx0OiAkYWxlcnQtY29sb3IgKEZvdW5kIGluIHNldHRpbmdzIGZpbGUpXG5AbWl4aW4gZm9ybS1lcnJvci1tZXNzYWdlKCRiZzokaW5wdXQtZXJyb3ItbWVzc2FnZS1iZy1jb2xvcikge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogJGlucHV0LWVycm9yLW1lc3NhZ2UtcGFkZGluZztcbiAgbWFyZ2luLXRvcDogJGlucHV0LWVycm9yLW1lc3NhZ2UtdG9wO1xuICBtYXJnaW4tYm90dG9tOiAkZm9ybS1zcGFjaW5nO1xuICBmb250LXNpemU6ICRpbnB1dC1lcnJvci1tZXNzYWdlLWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICRpbnB1dC1lcnJvci1tZXNzYWdlLWZvbnQtd2VpZ2h0O1xuICBmb250LXN0eWxlOiAkaW5wdXQtZXJyb3ItbWVzc2FnZS1mb250LXN0eWxlO1xuXG4gIC8vIFdlIGNhbiBjb250cm9sIHRoZSB0ZXh0IGNvbG9yIGJhc2VkIG9uIHRoZSBicmlnaHRuZXNzIG9mIHRoZSBiYWNrZ3JvdW5kLlxuICAkYmctbGlnaHRuZXNzOiBsaWdodG5lc3MoJGJnKTtcbiAgYmFja2dyb3VuZDogJGJnO1xuICBAaWYgJGJnLWxpZ2h0bmVzcyA8IDcwJSBvciAkYmcgPT0geWVsbG93IHsgY29sb3I6ICRpbnB1dC1lcnJvci1tZXNzYWdlLWZvbnQtY29sb3I7IH1cbiAgQGVsc2UgeyBjb2xvcjogJGlucHV0LWVycm9yLW1lc3NhZ2UtZm9udC1jb2xvci1hbHQ7IH1cbn1cblxuLy8gV2UgdXNlIHRoaXMgbWl4aW4gdG8gc3R5bGUgc2VsZWN0IGVsZW1lbnRzXG5AbWl4aW4gZm9ybS1zZWxlY3QgIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICRzZWxlY3QtYmctY29sb3I7XG5cbiAgLy8gSGlkZSB0aGUgZHJvcGRvd24gYXJyb3cgc2hvd24gaW4gbmV3ZXIgSUUgdmVyc2lvbnNcbiAgJjo6LW1zLWV4cGFuZCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC8vIFRoZSBjdXN0b20gYXJyb3cgaGFzIHNvbWUgZmFrZSBob3Jpem9udGFsIHBhZGRpbmcgc28gd2UgY2FuIGFsaWduIGl0XG4gIC8vIGZyb20gdGhlIHJpZ2h0IHNpZGUgb2YgdGhlIGVsZW1lbnQgd2l0aG91dCByZWx5aW5nIG9uIENTUzNcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlIWmxjbk5wYjI0OUlqRXVNU0lnZUQwaU1USndlQ0lnZVQwaU1IQjRJaUIzYVdSMGFEMGlNalJ3ZUNJZ2FHVnBaMmgwUFNJemNIZ2lJSFpwWlhkQ2IzZzlJakFnTUNBMklETWlJR1Z1WVdKc1pTMWlZV05yWjNKdmRXNWtQU0p1WlhjZ01DQXdJRFlnTXlJZ2VHMXNPbk53WVdObFBTSndjbVZ6WlhKMlpTSStQSEJ2YkhsbmIyNGdjRzlwYm5SelBTSTFMams1TWl3d0lESXVPVGt5TERNZ0xUQXVNREE0TERBZ0lpOCtQQzl6ZG1jKyk7XG5cbiAgLy8gV2UgY2FuIHNhZmVseSB1c2UgbGVmdG1vc3QgYW5kIHJpZ2h0bW9zdCBub3dcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogaWYoJHRleHQtZGlyZWN0aW9uID09ICdydGwnLCAwJSwgMTAwJSkgY2VudGVyO1xuXG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJvcmRlcjoge1xuICAgIHN0eWxlOiAkaW5wdXQtYm9yZGVyLXN0eWxlO1xuICAgIHdpZHRoOiAkaW5wdXQtYm9yZGVyLXdpZHRoO1xuICAgIGNvbG9yOiAkaW5wdXQtYm9yZGVyLWNvbG9yO1xuICB9XG4gIHBhZGRpbmc6ICgkZm9ybS1zcGFjaW5nIC8gMik7XG4gIGZvbnQtc2l6ZTogJGlucHV0LWZvbnQtc2l6ZTtcbiAgZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5O1xuICBjb2xvcjogJGlucHV0LWZvbnQtY29sb3I7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gIEBpbmNsdWRlIHJhZGl1cygwKTtcbiAgJi5yYWRpdXMgeyBAaW5jbHVkZSByYWRpdXMoJGdsb2JhbC1yYWRpdXMpOyB9XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRzZWxlY3QtaG92ZXItYmctY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkaW5wdXQtZm9jdXMtYm9yZGVyLWNvbG9yO1xuICB9XG4gIC8vIERpc2FibGVkIFN0eWxlc1xuICAmOmRpc2FibGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtZGlzYWJsZWQtYmc7XG4gICAgY3Vyc29yOiAkaW5wdXQtZGlzYWJsZWQtY3Vyc29yO1xuICB9XG59XG5cbi8vIFdlIHVzZSB0aGlzIG1peGluIHRvIHR1cm4gb24vb2ZmIEhUTUw1IG51bWJlciBzcGlubmVyc1xuQG1peGluIGh0bWw1bnVtYmVyKCRicm93c2VyLCAkb246dHJ1ZSkge1xuICBAaWYgJG9uPT1mYWxzZSB7XG4gICAgICBAaWYgJGJyb3dzZXI9PXdlYmtpdCB7XG4gICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgfSBAZWxzZSBpZiAkYnJvd3Nlcj09bW96IHtcbiAgICAgICAgLW1vei1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XG4gICAgICB9XG4gIH1cbn1cblxuQGluY2x1ZGUgZXhwb3J0cyhcImZvcm1cIikge1xuICBAaWYgJGluY2x1ZGUtaHRtbC1mb3JtLWNsYXNzZXMge1xuICAgIC8qIFN0YW5kYXJkIEZvcm1zICovXG4gICAgZm9ybSB7IG1hcmdpbjogMCAwICRmb3JtLXNwYWNpbmc7IH1cblxuICAgIC8qIFVzaW5nIGZvcm1zIHdpdGhpbiByb3dzLCB3ZSBuZWVkIHRvIHNldCBzb21lIGRlZmF1bHRzICovXG4gICAgZm9ybSAucm93IHsgQGluY2x1ZGUgZm9ybS1yb3ctYmFzZTsgfVxuXG4gICAgLyogTGFiZWwgU3R5bGVzICovXG4gICAgbGFiZWwgeyBAaW5jbHVkZSBmb3JtLWxhYmVsO1xuICAgICAgJi5yaWdodCB7IEBpbmNsdWRlIGZvcm0tbGFiZWwocmlnaHQsZmFsc2UpOyB9XG4gICAgICAmLmlubGluZSB7IEBpbmNsdWRlIGZvcm0tbGFiZWwoaW5saW5lLGZhbHNlKTsgfVxuICAgICAgLyogU3R5bGVzIGZvciByZXF1aXJlZCBpbnB1dHMgKi9cbiAgICAgIHNtYWxsIHtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06ICRmb3JtLWxhYmVsLXNtYWxsLXRyYW5zZm9ybTtcbiAgICAgICAgY29sb3I6IHNjYWxlLWNvbG9yKCRmb3JtLWxhYmVsLWZvbnQtY29sb3IsICRsaWdodG5lc3M6IDE1JSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyogQXR0YWNoIGVsZW1lbnRzIHRvIHRoZSBiZWdpbm5pbmcgb3IgZW5kIG9mIGFuIGlucHV0ICovXG4gICAgLnByZWZpeCxcbiAgICAucG9zdGZpeCB7IEBpbmNsdWRlIHByZWZpeC1wb3N0Zml4LWJhc2U7IH1cblxuICAgIC8qIEFkanVzdCBwYWRkaW5nLCBhbGlnbm1lbnQgYW5kIHJhZGl1cyBpZiBwcmUvcG9zdCBlbGVtZW50IGlzIGEgYnV0dG9uICovXG4gICAgLnBvc3RmaXguYnV0dG9uIHsgQGluY2x1ZGUgYnV0dG9uLXNpemUoZmFsc2UsZmFsc2UpOyBAaW5jbHVkZSBwb3N0Zml4KGZhbHNlLCBmYWxzZSwgdHJ1ZSk7IH1cbiAgICAucHJlZml4LmJ1dHRvbiB7IEBpbmNsdWRlIGJ1dHRvbi1zaXplKGZhbHNlLGZhbHNlKTsgQGluY2x1ZGUgcHJlZml4KGZhbHNlLCBmYWxzZSwgdHJ1ZSk7IH1cblxuICAgIC5wcmVmaXguYnV0dG9uLnJhZGl1cyB7IEBpbmNsdWRlIHJhZGl1cygwKTsgQGluY2x1ZGUgc2lkZS1yYWRpdXMoJGRlZmF1bHQtZmxvYXQsICRidXR0b24tcmFkaXVzKTsgfVxuICAgIC5wb3N0Zml4LmJ1dHRvbi5yYWRpdXMgeyBAaW5jbHVkZSByYWRpdXMoMCk7IEBpbmNsdWRlIHNpZGUtcmFkaXVzKCRvcHBvc2l0ZS1kaXJlY3Rpb24sICRidXR0b24tcmFkaXVzKTsgfVxuICAgIC5wcmVmaXguYnV0dG9uLnJvdW5kIHsgQGluY2x1ZGUgcmFkaXVzKDApOyBAaW5jbHVkZSBzaWRlLXJhZGl1cygkZGVmYXVsdC1mbG9hdCwgJGJ1dHRvbi1yb3VuZCk7IH1cbiAgICAucG9zdGZpeC5idXR0b24ucm91bmQgeyBAaW5jbHVkZSByYWRpdXMoMCk7IEBpbmNsdWRlIHNpZGUtcmFkaXVzKCRvcHBvc2l0ZS1kaXJlY3Rpb24sICRidXR0b24tcm91bmQpOyB9XG5cbiAgICAvKiBTZXBhcmF0ZSBwcmVmaXggYW5kIHBvc3RmaXggc3R5bGVzIHdoZW4gb24gc3BhbiBvciBsYWJlbCBzbyBidXR0b25zIGtlZXAgdGhlaXIgb3duICovXG4gICAgc3Bhbi5wcmVmaXgsbGFiZWwucHJlZml4IHsgQGluY2x1ZGUgcHJlZml4KCk7IH1cbiAgICBzcGFuLnBvc3RmaXgsbGFiZWwucG9zdGZpeCB7IEBpbmNsdWRlIHBvc3RmaXgoKTsgfVxuXG4gICAgLyogV2UgdXNlIHRoaXMgdG8gZ2V0IGJhc2ljIHN0eWxpbmcgb24gYWxsIGJhc2ljIGZvcm0gZWxlbWVudHMgKi9cbiAgICAje3RleHQtaW5wdXRzKGFsbCwgJ2lucHV0Jyl9IHtcbiAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICBAaW5jbHVkZSBmb3JtLWVsZW1lbnQ7XG4gICAgICBAaWYgJGlucHV0LWluY2x1ZGUtZ2xvd2luZy1lZmZlY3QgPT0gZmFsc2Uge1xuICAgICAgICAgIEBpbmNsdWRlIHNpbmdsZS10cmFuc2l0aW9uKGFsbCwgMC4xNXMsIGxpbmVhcik7XG4gICAgICB9XG4gICAgICAmLnJhZGl1cyB7XG4gICAgICAgIEBpbmNsdWRlIHJhZGl1cygkaW5wdXQtYm9yZGVyLXJhZGl1cyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZm9ybSB7XG4gICAgICAucm93IHtcbiAgICAgICAgLnByZWZpeC1yYWRpdXMucm93LmNvbGxhcHNlIHtcbiAgICAgICAgICBpbnB1dCxcbiAgICAgICAgICB0ZXh0YXJlYSxcbiAgICAgICAgICBzZWxlY3QsXG4gICAgICAgICAgYnV0dG9uIHsgQGluY2x1ZGUgcmFkaXVzKDApOyBAaW5jbHVkZSBzaWRlLXJhZGl1cygkb3Bwb3NpdGUtZGlyZWN0aW9uLCAkYnV0dG9uLXJhZGl1cyk7IH1cbiAgICAgICAgICAucHJlZml4IHsgQGluY2x1ZGUgcmFkaXVzKDApOyBAaW5jbHVkZSBzaWRlLXJhZGl1cygkZGVmYXVsdC1mbG9hdCwgJGJ1dHRvbi1yYWRpdXMpOyB9XG4gICAgICAgIH1cbiAgICAgICAgLnBvc3RmaXgtcmFkaXVzLnJvdy5jb2xsYXBzZSB7XG4gICAgICAgICAgaW5wdXQsXG4gICAgICAgICAgdGV4dGFyZWEsXG4gICAgICAgICAgc2VsZWN0LFxuICAgICAgICAgIGJ1dHRvbiB7IEBpbmNsdWRlIHJhZGl1cygwKTsgQGluY2x1ZGUgc2lkZS1yYWRpdXMoJGRlZmF1bHQtZmxvYXQsICRidXR0b24tcmFkaXVzKTsgfVxuICAgICAgICAgIC5wb3N0Zml4IHsgQGluY2x1ZGUgcmFkaXVzKDApOyBAaW5jbHVkZSBzaWRlLXJhZGl1cygkb3Bwb3NpdGUtZGlyZWN0aW9uLCAkYnV0dG9uLXJhZGl1cyk7IH1cbiAgICAgICAgfVxuICAgICAgICAucHJlZml4LXJvdW5kLnJvdy5jb2xsYXBzZSB7XG4gICAgICAgICAgaW5wdXQsXG4gICAgICAgICAgdGV4dGFyZWEsXG4gICAgICAgICAgc2VsZWN0LFxuICAgICAgICAgIGJ1dHRvbiB7IEBpbmNsdWRlIHJhZGl1cygwKTsgQGluY2x1ZGUgc2lkZS1yYWRpdXMoJG9wcG9zaXRlLWRpcmVjdGlvbiwgJGJ1dHRvbi1yb3VuZCk7IH1cbiAgICAgICAgICAucHJlZml4IHsgQGluY2x1ZGUgcmFkaXVzKDApOyBAaW5jbHVkZSBzaWRlLXJhZGl1cygkZGVmYXVsdC1mbG9hdCwgJGJ1dHRvbi1yb3VuZCk7IH1cbiAgICAgICAgfVxuICAgICAgICAucG9zdGZpeC1yb3VuZC5yb3cuY29sbGFwc2Uge1xuICAgICAgICAgIGlucHV0LFxuICAgICAgICAgIHRleHRhcmVhLFxuICAgICAgICAgIHNlbGVjdCxcbiAgICAgICAgICBidXR0b24geyBAaW5jbHVkZSByYWRpdXMoMCk7IEBpbmNsdWRlIHNpZGUtcmFkaXVzKCRkZWZhdWx0LWZsb2F0LCAkYnV0dG9uLXJvdW5kKTsgfVxuICAgICAgICAgIC5wb3N0Zml4IHsgQGluY2x1ZGUgcmFkaXVzKDApOyBAaW5jbHVkZSBzaWRlLXJhZGl1cygkb3Bwb3NpdGUtZGlyZWN0aW9uLCAkYnV0dG9uLXJvdW5kKTsgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIH1cblxuICAgIC8qIFJlc3BlY3QgZW5mb3JjZWQgYW1vdW50IG9mIHJvd3MgZm9yIHRleHRhcmVhICovXG4gICAgdGV4dGFyZWFbcm93c10ge1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgIH1cblxuXHQvKiBOb3QgYWxsb3cgcmVzaXplIG91dCBvZiBwYXJlbnQgKi9cblx0dGV4dGFyZWEge1xuXHRcdG1heC13aWR0aDogMTAwJTtcblx0fVxuXG4gICAgLyogQWRkIGhlaWdodCB2YWx1ZSBmb3Igc2VsZWN0IGVsZW1lbnRzIHRvIG1hdGNoIHRleHQgaW5wdXQgaGVpZ2h0ICovXG4gICAgc2VsZWN0IHtcbiAgICAgIEBpbmNsdWRlIGZvcm0tc2VsZWN0O1xuICAgICAgaGVpZ2h0OiAoJGlucHV0LWZvbnQtc2l6ZSArICgkZm9ybS1zcGFjaW5nICogMS41KSAtIHJlbS1jYWxjKDEpKTtcbiAgICAgICZbbXVsdGlwbGVdIHtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qIEFkanVzdCBtYXJnaW4gZm9yIGZvcm0gZWxlbWVudHMgYmVsb3cgKi9cbiAgICBpbnB1dFt0eXBlPVwiZmlsZVwiXSxcbiAgICBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sXG4gICAgaW5wdXRbdHlwZT1cInJhZGlvXCJdLFxuICAgIHNlbGVjdCB7XG4gICAgICBtYXJnaW46IDAgMCAkZm9ybS1zcGFjaW5nIDA7XG4gICAgfVxuXG4gICAgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdICsgbGFiZWwsXG4gICAgaW5wdXRbdHlwZT1cInJhZGlvXCJdICsgbGFiZWwge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiAkZm9ybS1zcGFjaW5nICogLjU7XG4gICAgICBtYXJnaW4tI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogJGZvcm0tc3BhY2luZztcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gICAgfVxuXG4gICAgLyogTm9ybWFsaXplIGZpbGUgaW5wdXQgd2lkdGggKi9cbiAgICBpbnB1dFt0eXBlPVwiZmlsZVwiXSB7XG4gICAgICB3aWR0aDoxMDAlO1xuICAgIH1cblxuICAgIC8qIEhUTUw1IE51bWJlciBzcGlubmVycyBzZXR0aW5ncyAqL1xuICAgIGlucHV0W3R5cGU9bnVtYmVyXSB7XG4gICAgICBAaW5jbHVkZSBodG1sNW51bWJlcihtb3osICRpbnB1dC1udW1iZXItc3Bpbm5lcnMpXG4gICAgfVxuICAgIGlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG4gICAgaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gICAgICBAaW5jbHVkZSBodG1sNW51bWJlcih3ZWJraXQsICRpbnB1dC1udW1iZXItc3Bpbm5lcnMpO1xuICAgIH1cblxuICAgIC8qIFdlIGFkZCBiYXNpYyBmaWVsZHNldCBzdHlsaW5nICovXG4gICAgZmllbGRzZXQge1xuICAgICAgQGluY2x1ZGUgZmllbGRzZXQ7XG4gICAgfVxuXG4gICAgLyogRXJyb3IgSGFuZGxpbmcgKi9cblxuICAgICN7ZGF0YSgnYWJpZGUnKX0ge1xuICAgICAgLmVycm9yIHNtYWxsLmVycm9yLCAuZXJyb3Igc3Bhbi5lcnJvciwgc3Bhbi5lcnJvciwgc21hbGwuZXJyb3Ige1xuICAgICAgICBAaW5jbHVkZSBmb3JtLWVycm9yLW1lc3NhZ2U7XG4gICAgICB9XG4gICAgICBzcGFuLmVycm9yLCBzbWFsbC5lcnJvciB7IGRpc3BsYXk6IG5vbmU7IH1cbiAgICB9XG5cbiAgICBzcGFuLmVycm9yLCBzbWFsbC5lcnJvciB7XG4gICAgICBAaW5jbHVkZSBmb3JtLWVycm9yLW1lc3NhZ2U7XG4gICAgfVxuXG4gICAgLmVycm9yIHtcbiAgICAgIGlucHV0LFxuICAgICAgdGV4dGFyZWEsXG4gICAgICBzZWxlY3Qge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgfVxuXG4gICAgICBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sXG4gICAgICBpbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkZm9ybS1zcGFjaW5nXG4gICAgICB9XG5cbiAgICAgIGxhYmVsLFxuICAgICAgbGFiZWwuZXJyb3Ige1xuICAgICAgICBAaW5jbHVkZSBmb3JtLWxhYmVsLWVycm9yLWNvbG9yO1xuICAgICAgfVxuXG4gICAgICBzbWFsbC5lcnJvciB7XG4gICAgICAgIEBpbmNsdWRlIGZvcm0tZXJyb3ItbWVzc2FnZTtcbiAgICAgIH1cblxuICAgICAgPiBsYWJlbCB7XG4gICAgICAgID4gc21hbGwge1xuICAgICAgICAgIGNvbG9yOiBzY2FsZS1jb2xvcigkZm9ybS1sYWJlbC1mb250LWNvbG9yLCAkbGlnaHRuZXNzOiAxNSUpO1xuICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgdGV4dC10cmFuc2Zvcm06ICRmb3JtLWxhYmVsLXNtYWxsLXRyYW5zZm9ybTtcbiAgICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICAgICAgZm9udC1zaXplOiA2MCU7XG4gICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBzcGFuLmVycm9yLW1lc3NhZ2Uge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpbnB1dC5lcnJvcixcbiAgICB0ZXh0YXJlYS5lcnJvcixcbiAgICBzZWxlY3QuZXJyb3Ige1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gICAgbGFiZWwuZXJyb3IgeyBAaW5jbHVkZSBmb3JtLWxhYmVsLWVycm9yLWNvbG9yOyB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBpbXBvcnQgXCJnbG9iYWxcIjtcblxuLy9cbi8vIEB2YXJpYWJsZXNcbi8vXG4kaW5jbHVkZS1odG1sLWJ1dHRvbi1jbGFzc2VzOiAkaW5jbHVkZS1odG1sLWNsYXNzZXMgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBidWlsZCBwYWRkaW5nIGZvciBidXR0b25zLlxuJGJ1dHRvbi10bnk6IHJlbS1jYWxjKDEwKSAhZGVmYXVsdDtcbiRidXR0b24tc21sOiByZW0tY2FsYygxNCkgIWRlZmF1bHQ7XG4kYnV0dG9uLW1lZDogcmVtLWNhbGMoMTYpICFkZWZhdWx0O1xuJGJ1dHRvbi1scmc6IHJlbS1jYWxjKDE4KSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoaXMgdG8gY29udHJvbCB0aGUgZGlzcGxheSBwcm9wZXJ0eS5cbiRidXR0b24tZGlzcGxheTogaW5saW5lLWJsb2NrICFkZWZhdWx0O1xuJGJ1dHRvbi1tYXJnaW4tYm90dG9tOiByZW0tY2FsYygyMCkgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIGJ1dHRvbiB0ZXh0IHN0eWxlcy5cbiRidXR0b24tZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5ICFkZWZhdWx0O1xuJGJ1dHRvbi1mb250LWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG4kYnV0dG9uLWZvbnQtY29sb3ItYWx0OiAkb2lsICFkZWZhdWx0O1xuJGJ1dHRvbi1mb250LXRueTogcmVtLWNhbGMoMTEpICFkZWZhdWx0O1xuJGJ1dHRvbi1mb250LXNtbDogcmVtLWNhbGMoMTMpICFkZWZhdWx0O1xuJGJ1dHRvbi1mb250LW1lZDogcmVtLWNhbGMoMTYpICFkZWZhdWx0O1xuJGJ1dHRvbi1mb250LWxyZzogcmVtLWNhbGMoMjApICFkZWZhdWx0O1xuJGJ1dHRvbi1mb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcbiRidXR0b24tZm9udC1hbGlnbjogY2VudGVyICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCB2YXJpb3VzIGhvdmVyIGVmZmVjdHMuXG4kYnV0dG9uLWZ1bmN0aW9uLWZhY3RvcjogLTIwJSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgYnV0dG9uIGJvcmRlciBzdHlsZXMuXG4kYnV0dG9uLWJvcmRlci13aWR0aDogMCAhZGVmYXVsdDtcbiRidXR0b24tYm9yZGVyLXN0eWxlOiBzb2xpZCAhZGVmYXVsdDtcbiRidXR0b24tYmctY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuJGJ1dHRvbi1iZy1ob3Zlcjogc2NhbGUtY29sb3IoJGJ1dHRvbi1iZy1jb2xvciwgJGxpZ2h0bmVzczogJGJ1dHRvbi1mdW5jdGlvbi1mYWN0b3IpICFkZWZhdWx0O1xuJGJ1dHRvbi1ib3JkZXItY29sb3I6ICRidXR0b24tYmctaG92ZXIgIWRlZmF1bHQ7XG4kc2Vjb25kYXJ5LWJ1dHRvbi1iZy1ob3Zlcjogc2NhbGUtY29sb3IoJHNlY29uZGFyeS1jb2xvciwgJGxpZ2h0bmVzczogJGJ1dHRvbi1mdW5jdGlvbi1mYWN0b3IpICFkZWZhdWx0O1xuJHNlY29uZGFyeS1idXR0b24tYm9yZGVyLWNvbG9yOiAkc2Vjb25kYXJ5LWJ1dHRvbi1iZy1ob3ZlciAhZGVmYXVsdDtcbiRzdWNjZXNzLWJ1dHRvbi1iZy1ob3Zlcjogc2NhbGUtY29sb3IoJHN1Y2Nlc3MtY29sb3IsICRsaWdodG5lc3M6ICRidXR0b24tZnVuY3Rpb24tZmFjdG9yKSAhZGVmYXVsdDtcbiRzdWNjZXNzLWJ1dHRvbi1ib3JkZXItY29sb3I6ICRzdWNjZXNzLWJ1dHRvbi1iZy1ob3ZlciAhZGVmYXVsdDtcbiRhbGVydC1idXR0b24tYmctaG92ZXI6IHNjYWxlLWNvbG9yKCRhbGVydC1jb2xvciwgJGxpZ2h0bmVzczogJGJ1dHRvbi1mdW5jdGlvbi1mYWN0b3IpICFkZWZhdWx0O1xuJGFsZXJ0LWJ1dHRvbi1ib3JkZXItY29sb3I6ICRhbGVydC1idXR0b24tYmctaG92ZXIgIWRlZmF1bHQ7XG4kd2FybmluZy1idXR0b24tYmctaG92ZXI6IHNjYWxlLWNvbG9yKCR3YXJuaW5nLWNvbG9yLCAkbGlnaHRuZXNzOiAkYnV0dG9uLWZ1bmN0aW9uLWZhY3RvcikgIWRlZmF1bHQ7XG4kd2FybmluZy1idXR0b24tYm9yZGVyLWNvbG9yOiAkd2FybmluZy1idXR0b24tYmctaG92ZXIgIWRlZmF1bHQ7XG4kaW5mby1idXR0b24tYmctaG92ZXI6IHNjYWxlLWNvbG9yKCRpbmZvLWNvbG9yLCAkbGlnaHRuZXNzOiAkYnV0dG9uLWZ1bmN0aW9uLWZhY3RvcikgIWRlZmF1bHQ7XG4kaW5mby1idXR0b24tYm9yZGVyLWNvbG9yOiAkaW5mby1idXR0b24tYmctaG92ZXIgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGlzIHRvIHNldCB0aGUgZGVmYXVsdCByYWRpdXMgdXNlZCB0aHJvdWdob3V0IHRoZSBjb3JlLlxuJGJ1dHRvbi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuJGJ1dHRvbi1yb3VuZDogJGdsb2JhbC1yb3VuZGVkICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhpcyB0byBzZXQgZGVmYXVsdCBvcGFjaXR5IGFuZCBjdXJzb3IgZm9yIGRpc2FibGVkIGJ1dHRvbnMuXG4kYnV0dG9uLWRpc2FibGVkLW9wYWNpdHk6IDAuNyAhZGVmYXVsdDtcbiRidXR0b24tZGlzYWJsZWQtY3Vyc29yOiAkY3Vyc29yLWRlZmF1bHQtdmFsdWUgIWRlZmF1bHQ7XG5cblxuLy9cbi8vIEBNSVhJTlxuLy9cbi8vIFdlIHVzZSB0aGlzIG1peGluIHRvIGNyZWF0ZSBhIGRlZmF1bHQgYnV0dG9uIGJhc2UuXG4vL1xuLy8gJHN0eWxlIC0gU2V0cyBiYXNlIHN0eWxlcy4gQ2FuIGJlIHNldCB0byBmYWxzZS4gRGVmYXVsdDogdHJ1ZS5cbi8vICRkaXNwbGF5IC0gVXNlZCB0byBjb250cm9sIGRpc3BsYXkgcHJvcGVydHkuIERlZmF1bHQ6ICRidXR0b24tZGlzcGxheSB8fCBpbmxpbmUtYmxvY2tcblxuQG1peGluIGJ1dHRvbi1iYXNlKCRzdHlsZTp0cnVlLCAkZGlzcGxheTokYnV0dG9uLWRpc3BsYXkpIHtcbiAgQGlmICRzdHlsZSB7XG4gICAgYm9yZGVyLXN0eWxlOiAkYnV0dG9uLWJvcmRlci1zdHlsZTtcbiAgICBib3JkZXItd2lkdGg6ICRidXR0b24tYm9yZGVyLXdpZHRoO1xuICAgIGN1cnNvcjogJGN1cnNvci1wb2ludGVyLXZhbHVlO1xuICAgIGZvbnQtZmFtaWx5OiAkYnV0dG9uLWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtd2VpZ2h0OiAkYnV0dG9uLWZvbnQtd2VpZ2h0O1xuICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gICAgbWFyZ2luOiAwIDAgJGJ1dHRvbi1tYXJnaW4tYm90dG9tO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgdGV4dC1hbGlnbjogJGJ1dHRvbi1mb250LWFsaWduO1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czowO1xuICB9XG4gIEBpZiAkZGlzcGxheSB7IGRpc3BsYXk6ICRkaXNwbGF5OyB9XG59XG5cbi8vIEBNSVhJTlxuLy9cbi8vIFdlIHVzZSB0aGlzIG1peGluIHRvIGFkZCBidXR0b24gc2l6ZSBzdHlsZXNcbi8vXG4vLyAkcGFkZGluZyAtIFVzZWQgdG8gYnVpbGQgcGFkZGluZyBmb3IgYnV0dG9ucyBEZWZhdWx0OiAkYnV0dG9uLW1lZCB8fD0gcmVtLWNhbGMoMTIpXG4vLyAkZnVsbC13aWR0aCAtIFdlIGNhbiBzZXQgJGZ1bGwtd2lkdGg6dHJ1ZSB0byByZW1vdmUgc2lkZSBwYWRkaW5nIGV4dGVuZCB3aWR0aCAtIERlZmF1bHQ6IGZhbHNlXG5cbkBtaXhpbiBidXR0b24tc2l6ZSgkcGFkZGluZzokYnV0dG9uLW1lZCwgJGZ1bGwtd2lkdGg6ZmFsc2UpIHtcblxuICAvLyBXZSBjb250cm9sIHdoaWNoIHBhZGRpbmcgc3R5bGVzIGNvbWUgdGhyb3VnaCxcbiAgLy8gdGhlc2UgY2FuIGJlIHR1cm5lZCBvZmYgYnkgc2V0dGluZyAkcGFkZGluZzpmYWxzZVxuICBAaWYgJHBhZGRpbmcge1xuICAgIHBhZGRpbmctdG9wOiAkcGFkZGluZztcbiAgICBwYWRkaW5nLSN7JG9wcG9zaXRlLWRpcmVjdGlvbn06ICRwYWRkaW5nICogMjtcbiAgICBwYWRkaW5nLWJvdHRvbTogJHBhZGRpbmcgKyByZW0tY2FsYygxKTtcbiAgICBwYWRkaW5nLSN7JGRlZmF1bHQtZmxvYXR9OiAkcGFkZGluZyAqIDI7XG5cbiAgICAvLyBXZSBjb250cm9sIHRoZSBmb250LXNpemUgYmFzZWQgb24gbWl4aW4gaW5wdXQuXG4gICAgQGlmICAgICAgJHBhZGRpbmcgPT0gJGJ1dHRvbi1tZWQgeyBmb250LXNpemU6ICRidXR0b24tZm9udC1tZWQ7IH1cbiAgICBAZWxzZSBpZiAkcGFkZGluZyA9PSAkYnV0dG9uLXRueSB7IGZvbnQtc2l6ZTogJGJ1dHRvbi1mb250LXRueTsgfVxuICAgIEBlbHNlIGlmICRwYWRkaW5nID09ICRidXR0b24tc21sIHsgZm9udC1zaXplOiAkYnV0dG9uLWZvbnQtc21sOyB9XG4gICAgQGVsc2UgaWYgJHBhZGRpbmcgPT0gJGJ1dHRvbi1scmcgeyBmb250LXNpemU6ICRidXR0b24tZm9udC1scmc7IH1cbiAgfVxuXG4gIC8vIFdlIGNhbiBzZXQgJGZ1bGwtd2lkdGg6dHJ1ZSB0byByZW1vdmUgc2lkZSBwYWRkaW5nIGV4dGVuZCB3aWR0aC5cbiAgQGlmICRmdWxsLXdpZHRoIHtcbiAgICAvLyBXZSBzdGlsbCBuZWVkIHRvIGNoZWNrIGlmICRwYWRkaW5nIGlzIHNldC5cbiAgICBAaWYgJHBhZGRpbmcge1xuICAgIHBhZGRpbmctdG9wOiAkcGFkZGluZztcbiAgICBwYWRkaW5nLWJvdHRvbTogJHBhZGRpbmcgKyByZW0tY2FsYygxKTtcbiAgICB9IEBlbHNlIGlmICRwYWRkaW5nID09IGZhbHNlIHtcbiAgICAgIHBhZGRpbmctdG9wOjA7XG4gICAgICBwYWRkaW5nLWJvdHRvbTowO1xuICAgIH1cbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuXG4vLyBATUlYSU5cbi8vXG4vLyB3ZSB1c2UgdGhpcyBtaXhpbiB0byBjcmVhdGUgdGhlIGJ1dHRvbiBob3ZlciBhbmQgYm9yZGVyIGNvbG9yc1xuXG4vLyBATUlYSU5cbi8vXG4vLyBXZSB1c2UgdGhpcyBtaXhpbiB0byBhZGQgYnV0dG9uIGNvbG9yIHN0eWxlc1xuLy9cbi8vICRiZyAtIEJhY2tncm91bmQgY29sb3IuIFdlIGNhbiBzZXQgJGJnOmZhbHNlIGZvciBhIHRyYW5zcGFyZW50IGJhY2tncm91bmQuIERlZmF1bHQ6ICRwcmltYXJ5LWNvbG9yLlxuLy8gJHJhZGl1cyAtIElmIHRydWUsIHNldCB0byBidXR0b24gcmFkaXVzIHdoaWNoIGlzICRidXR0b24tcmFkaXVzIHx8IGV4cGxpY2l0bHkgc2V0IHJhZGl1cyBhbW91bnQgaW4gcHggKGV4LiAkcmFkaXVzOjEwcHgpLiBEZWZhdWx0OiBmYWxzZVxuLy8gJGRpc2FibGVkIC0gV2UgY2FuIHNldCAkZGlzYWJsZWQ6dHJ1ZSB0byBjcmVhdGUgYSBkaXNhYmxlZCB0cmFuc3BhcmVudCBidXR0b24uIERlZmF1bHQ6IGZhbHNlXG4vLyAkYmctaG92ZXIgLSBCdXR0b24gSG92ZXIgQmFja2dyb3VuZCBDb2xvci4gRGVmYXVsdDogJGJ1dHRvbi1iZy1ob3ZlclxuLy8gJGJvcmRlci1jb2xvciAtIEJ1dHRvbiBCb3JkZXIgQ29sb3IuIERlZmF1bHQ6ICRidXR0b24tYm9yZGVyLWNvbG9yXG5AbWl4aW4gYnV0dG9uLXN0eWxlKCRiZzokYnV0dG9uLWJnLWNvbG9yLCAkcmFkaXVzOmZhbHNlLCAkZGlzYWJsZWQ6ZmFsc2UsICRiZy1ob3ZlcjpudWxsLCAkYm9yZGVyLWNvbG9yOm51bGwpIHtcblxuICAvLyBXZSBjb250cm9sIHdoaWNoIGJhY2tncm91bmQgc3R5bGVzIGFyZSB1c2VkLFxuICAvLyB0aGVzZSBjYW4gYmUgcmVtb3ZlZCBieSBzZXR0aW5nICRiZzpmYWxzZVxuICBAaWYgJGJnIHtcblxuICAgIEBpZiAkYmctaG92ZXIgPT0gbnVsbCB7XG4gICAgICAkYmctaG92ZXI6IGlmKCRiZyA9PSAkYnV0dG9uLWJnLWNvbG9yLCAkYnV0dG9uLWJnLWhvdmVyLCBzY2FsZS1jb2xvcigkYmcsICRsaWdodG5lc3M6ICRidXR0b24tZnVuY3Rpb24tZmFjdG9yKSk7XG4gICAgfVxuXG4gICAgQGlmICRib3JkZXItY29sb3IgPT0gbnVsbCB7XG4gICAgICAkYm9yZGVyLWNvbG9yOiBpZigkYmcgPT0gJGJ1dHRvbi1iZy1jb2xvciwgJGJ1dHRvbi1ib3JkZXItY29sb3IsIHNjYWxlLWNvbG9yKCRiZywgJGxpZ2h0bmVzczogJGJ1dHRvbi1mdW5jdGlvbi1mYWN0b3IpKTtcbiAgICB9XG5cbiAgICAvLyBUaGlzIGZpbmQgdGhlIGxpZ2h0bmVzcyBwZXJjZW50YWdlIG9mIHRoZSBiYWNrZ3JvdW5kIGNvbG9yLlxuICAgICRiZy1saWdodG5lc3M6IGxpZ2h0bmVzcygkYmcpO1xuICAgICRiZy1ob3Zlci1saWdodG5lc3M6IGxpZ2h0bmVzcygkYmctaG92ZXIpO1xuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJnO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMgeyBiYWNrZ3JvdW5kLWNvbG9yOiAkYmctaG92ZXI7IH1cblxuICAgIC8vIFdlIGNvbnRyb2wgdGhlIHRleHQgY29sb3IgZm9yIHlvdSBiYXNlZCBvbiB0aGUgYmFja2dyb3VuZCBjb2xvci5cbiAgICBjb2xvcjogaWYoJGJnLWxpZ2h0bmVzcyA+IDcwJSwgJGJ1dHRvbi1mb250LWNvbG9yLWFsdCwgJGJ1dHRvbi1mb250LWNvbG9yKTtcblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICBjb2xvcjogaWYoJGJnLWhvdmVyLWxpZ2h0bmVzcyA+IDcwJSwgJGJ1dHRvbi1mb250LWNvbG9yLWFsdCwgJGJ1dHRvbi1mb250LWNvbG9yKTtcbiAgICB9XG4gIH1cblxuICAvLyBXZSBjYW4gc2V0ICRkaXNhYmxlZDp0cnVlIHRvIGNyZWF0ZSBhIGRpc2FibGVkIHRyYW5zcGFyZW50IGJ1dHRvbi5cbiAgQGlmICRkaXNhYmxlZCB7XG4gICAgY3Vyc29yOiAkYnV0dG9uLWRpc2FibGVkLWN1cnNvcjtcbiAgICBvcGFjaXR5OiAkYnV0dG9uLWRpc2FibGVkLW9wYWNpdHk7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMgeyBiYWNrZ3JvdW5kLWNvbG9yOiAkYmc7IH1cbiAgfVxuXG4gIC8vIFdlIGNhbiBjb250cm9sIGhvdyBtdWNoIGJ1dHRvbiByYWRpdXMgaXMgdXNlZC5cbiAgQGlmICRyYWRpdXMgPT0gdHJ1ZSB7IEBpbmNsdWRlIHJhZGl1cygkYnV0dG9uLXJhZGl1cyk7IH1cbiAgQGVsc2UgaWYgJHJhZGl1cyB7IEBpbmNsdWRlIHJhZGl1cygkcmFkaXVzKTsgfVxuXG59XG5cbi8vIEBNSVhJTlxuLy9cbi8vIFdlIHVzZSB0aGlzIHRvIHF1aWNrbHkgY3JlYXRlIGJ1dHRvbnMgd2l0aCBhIHNpbmdsZSBtaXhpbi4gQXMgQGphcmVkaGFyZHkgcHV0cyBpdCwgXCJ0aGUga2l0Y2hlbiBzaW5rIG1peGluXCJcbi8vXG4vLyAkcGFkZGluZyAtIFVzZWQgdG8gYnVpbGQgcGFkZGluZyBmb3IgYnV0dG9ucyBEZWZhdWx0OiAkYnV0dG9uLW1lZCB8fD0gcmVtLWNhbGMoMTIpXG4vLyAkYmcgLSBQcmltYXJ5IGNvbG9yIHNldCBpbiBzZXR0aW5ncyBmaWxlLiBEZWZhdWx0OiAkYnV0dG9uLWJnLlxuLy8gJHJhZGl1cyAtIElmIHRydWUsIHNldCB0byBidXR0b24gcmFkaXVzIHdoaWNoIGlzICRnbG9iYWwtcmFkaXVzIHx8IGV4cGxpY2l0bHkgc2V0IHJhZGl1cyBhbW91bnQgaW4gcHggKGV4LiAkcmFkaXVzOjEwcHgpLiBEZWZhdWx0OmZhbHNlLlxuLy8gJGZ1bGwtd2lkdGggLSBXZSBjYW4gc2V0ICRmdWxsLXdpZHRoOnRydWUgdG8gcmVtb3ZlIHNpZGUgcGFkZGluZyBleHRlbmQgd2lkdGguIERlZmF1bHQ6ZmFsc2UuXG4vLyAkZGlzYWJsZWQgLSBXZSBjYW4gc2V0ICRkaXNhYmxlZDp0cnVlIHRvIGNyZWF0ZSBhIGRpc2FibGVkIHRyYW5zcGFyZW50IGJ1dHRvbi4gRGVmYXVsdDpmYWxzZS5cbi8vICRpcy1wcmVmaXggLSBOb3QgdXNlZD8gRGVmYXVsdDpmYWxzZS5cbi8vICRiZy1ob3ZlciAtIEJ1dHRvbiBIb3ZlciBDb2xvciAtIERlZmF1bHQgbnVsbCAtIHNlZSBidXR0b24tc3R5bGUgbWl4aW5cbi8vICRib3JkZXItY29sb3IgLSBCdXR0b24gQm9yZGVyIENvbG9yIC0gRGVmYXVsdCBudWxsIC0gc2VlIGJ1dHRvbi1zdHlsZSBtaXhpblxuLy8gJHRyYW5zaXRpb24gLSBXZSBjYW4gY29udHJvbCB3aGV0aGVyIG9yIG5vdCB0byBpbmNsdWRlIHRoZSBiYWNrZ3JvdW5kLWNvbG9yIHRyYW5zaXRpb24gcHJvcGVydHkgLSBEZWZhdWx0OnRydWUuXG5AbWl4aW4gYnV0dG9uKCRwYWRkaW5nOiRidXR0b24tbWVkLCAkYmc6JGJ1dHRvbi1iZy1jb2xvciwgJHJhZGl1czpmYWxzZSwgJGZ1bGwtd2lkdGg6ZmFsc2UsICRkaXNhYmxlZDpmYWxzZSwgJGlzLXByZWZpeDpmYWxzZSwgJGJnLWhvdmVyOm51bGwsICRib3JkZXItY29sb3I6bnVsbCwgJHRyYW5zaXRpb246IHRydWUpIHtcbiAgQGluY2x1ZGUgYnV0dG9uLWJhc2U7XG4gIEBpbmNsdWRlIGJ1dHRvbi1zaXplKCRwYWRkaW5nLCAkZnVsbC13aWR0aCk7XG4gIEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkYmcsICRyYWRpdXMsICRkaXNhYmxlZCwgJGJnLWhvdmVyLCAkYm9yZGVyLWNvbG9yKTtcblxuICBAaWYgJHRyYW5zaXRpb24ge1xuICAgIEBpbmNsdWRlIHNpbmdsZS10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IpO1xuICB9XG59XG5cblxuQGluY2x1ZGUgZXhwb3J0cyhcImJ1dHRvblwiKSB7XG4gIEBpZiAkaW5jbHVkZS1odG1sLWJ1dHRvbi1jbGFzc2VzIHtcblxuICAgIC8vIERlZmF1bHQgc3R5bGVzIGFwcGxpZWQgb3V0c2lkZSBvZiBtZWRpYSBxdWVyeVxuICAgIGJ1dHRvbiwgLmJ1dHRvbiB7XG4gICAgICBAaW5jbHVkZSBidXR0b24tYmFzZTtcbiAgICAgIEBpbmNsdWRlIGJ1dHRvbi1zaXplO1xuICAgICAgQGluY2x1ZGUgYnV0dG9uLXN0eWxlO1xuXG4gICAgICBAaW5jbHVkZSBzaW5nbGUtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yKTtcblxuICAgICAgJi5zZWNvbmRhcnkgeyBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGJnOiRzZWNvbmRhcnktY29sb3IsICRiZy1ob3Zlcjokc2Vjb25kYXJ5LWJ1dHRvbi1iZy1ob3ZlciwgJGJvcmRlci1jb2xvcjokc2Vjb25kYXJ5LWJ1dHRvbi1ib3JkZXItY29sb3IpOyB9XG4gICAgICAmLnN1Y2Nlc3MgICB7IEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkYmc6JHN1Y2Nlc3MtY29sb3IsICRiZy1ob3Zlcjokc3VjY2Vzcy1idXR0b24tYmctaG92ZXIsICRib3JkZXItY29sb3I6JHN1Y2Nlc3MtYnV0dG9uLWJvcmRlci1jb2xvcik7IH1cbiAgICAgICYuYWxlcnQgICAgIHsgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRiZzokYWxlcnQtY29sb3IsICRiZy1ob3ZlcjokYWxlcnQtYnV0dG9uLWJnLWhvdmVyLCAkYm9yZGVyLWNvbG9yOiRhbGVydC1idXR0b24tYm9yZGVyLWNvbG9yKTsgfVxuICAgICAgJi53YXJuaW5nICAgeyBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGJnOiR3YXJuaW5nLWNvbG9yLCAkYmctaG92ZXI6JHdhcm5pbmctYnV0dG9uLWJnLWhvdmVyLCAkYm9yZGVyLWNvbG9yOiR3YXJuaW5nLWJ1dHRvbi1ib3JkZXItY29sb3IpOyB9XG4gICAgICAmLmluZm8gICAgICB7IEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkYmc6JGluZm8tY29sb3IsICRiZy1ob3ZlcjokaW5mby1idXR0b24tYmctaG92ZXIsICRib3JkZXItY29sb3I6JGluZm8tYnV0dG9uLWJvcmRlci1jb2xvcik7IH1cblxuICAgICAgJi5sYXJnZSAgeyBAaW5jbHVkZSBidXR0b24tc2l6ZSgkcGFkZGluZzokYnV0dG9uLWxyZyk7IH1cbiAgICAgICYuc21hbGwgIHsgQGluY2x1ZGUgYnV0dG9uLXNpemUoJHBhZGRpbmc6JGJ1dHRvbi1zbWwpOyB9XG4gICAgICAmLnRpbnkgICB7IEBpbmNsdWRlIGJ1dHRvbi1zaXplKCRwYWRkaW5nOiRidXR0b24tdG55KTsgfVxuICAgICAgJi5leHBhbmQgeyBAaW5jbHVkZSBidXR0b24tc2l6ZSgkcGFkZGluZzpudWxsLCRmdWxsLXdpZHRoOnRydWUpOyB9XG5cbiAgICAgICYubGVmdC1hbGlnbiAgeyB0ZXh0LWFsaWduOiBsZWZ0OyB0ZXh0LWluZGVudDogcmVtLWNhbGMoMTIpOyB9XG4gICAgICAmLnJpZ2h0LWFsaWduIHsgdGV4dC1hbGlnbjogcmlnaHQ7IHBhZGRpbmctcmlnaHQ6IHJlbS1jYWxjKDEyKTsgfVxuXG4gICAgICAmLnJhZGl1cyB7IEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkYmc6ZmFsc2UsICRyYWRpdXM6dHJ1ZSk7IH1cbiAgICAgICYucm91bmQgIHsgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRiZzpmYWxzZSwgJHJhZGl1czokYnV0dG9uLXJvdW5kKTsgfVxuXG4gICAgICAmLmRpc2FibGVkLCAmW2Rpc2FibGVkXSB7IEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkYmc6JGJ1dHRvbi1iZy1jb2xvciwgJGRpc2FibGVkOnRydWUsICRiZy1ob3ZlcjokYnV0dG9uLWJnLWhvdmVyLCAkYm9yZGVyLWNvbG9yOiRidXR0b24tYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgJi5zZWNvbmRhcnkgeyBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGJnOiRzZWNvbmRhcnktY29sb3IsICRkaXNhYmxlZDp0cnVlLCAkYmctaG92ZXI6JHNlY29uZGFyeS1idXR0b24tYmctaG92ZXIsICRib3JkZXItY29sb3I6JHNlY29uZGFyeS1idXR0b24tYm9yZGVyLWNvbG9yKTsgfVxuICAgICAgICAmLnN1Y2Nlc3MgeyBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGJnOiRzdWNjZXNzLWNvbG9yLCAkZGlzYWJsZWQ6dHJ1ZSwgJGJnLWhvdmVyOiRzdWNjZXNzLWJ1dHRvbi1iZy1ob3ZlciwgJGJvcmRlci1jb2xvcjokc3VjY2Vzcy1idXR0b24tYm9yZGVyLWNvbG9yKTsgfVxuICAgICAgICAmLmFsZXJ0IHsgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRiZzokYWxlcnQtY29sb3IsICRkaXNhYmxlZDp0cnVlLCAkYmctaG92ZXI6JGFsZXJ0LWJ1dHRvbi1iZy1ob3ZlciwgJGJvcmRlci1jb2xvcjokYWxlcnQtYnV0dG9uLWJvcmRlci1jb2xvcik7IH1cbiAgICAgICAgJi53YXJuaW5nIHsgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRiZzokd2FybmluZy1jb2xvciwgJGRpc2FibGVkOnRydWUsICRiZy1ob3Zlcjokd2FybmluZy1idXR0b24tYmctaG92ZXIsICRib3JkZXItY29sb3I6JHdhcm5pbmctYnV0dG9uLWJvcmRlci1jb2xvcik7IH1cbiAgICAgICAgJi5pbmZvIHsgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRiZzokaW5mby1jb2xvciwgJGRpc2FibGVkOnRydWUsICRiZy1ob3ZlcjokaW5mby1idXR0b24tYmctaG92ZXIsICRib3JkZXItY29sb3I6JGluZm8tYnV0dG9uLWJvcmRlci1jb2xvcik7IH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvL2ZpcmVmb3ggMnB4IGZpeFxuICAgIGJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lciB7Ym9yZGVyOjA7IHBhZGRpbmc6MDt9XG5cbiAgICBAbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgICBidXR0b24sIC5idXR0b24ge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24tYmFzZSgkc3R5bGU6ZmFsc2UsICRkaXNwbGF5OmlubGluZS1ibG9jayk7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1zaXplKCRwYWRkaW5nOmZhbHNlLCAkZnVsbC13aWR0aDpmYWxzZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AaW1wb3J0IFwiZ2xvYmFsXCI7XG5cbi8vXG4vLyBAdmFyaWFibGVzXG4vL1xuJGluY2x1ZGUtaHRtbC1ncmlkLWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcyAhZGVmYXVsdDtcbiRpbmNsdWRlLXhsLWh0bWwtZ3JpZC1jbGFzc2VzOiBmYWxzZSAhZGVmYXVsdDtcblxuJHJvdy13aWR0aDogcmVtLWNhbGMoMTAwMCkgIWRlZmF1bHQ7XG4kdG90YWwtY29sdW1uczogMTIgIWRlZmF1bHQ7XG5cbiRsYXN0LWNoaWxkLWZsb2F0OiAkb3Bwb3NpdGUtZGlyZWN0aW9uICFkZWZhdWx0O1xuXG4vL1xuLy8gR3JpZCBGdW5jdGlvbnNcbi8vXG5cbi8vIERlcHJlY2F0ZWQ6IFdlJ2xsIGRyb3Agc3VwcG9ydCBmb3IgdGhpcyBpbiA1LjEsIHVzZSBncmlkLWNhbGMoKVxuQGZ1bmN0aW9uIGdyaWRDYWxjKCRjb2xOdW1iZXIsICR0b3RhbENvbHVtbnMpIHtcbiAgQHdhcm4gXCJncmlkQ2FsYygpIGlzIGRlcHJlY2F0ZWQsIHVzZSBncmlkLWNhbGMoKVwiO1xuICBAcmV0dXJuIGdyaWQtY2FsYygkY29sTnVtYmVyLCAkdG90YWxDb2x1bW5zKTtcbn1cblxuLy8gQEZVTkNUSU9OXG4vLyAkY29sTnVtYmVyIC0gRm91bmQgaW4gc2V0dGluZ3MgZmlsZVxuLy8gJHRvdGFsQ29sdW1ucyAtIEZvdW5kIGluIHNldHRpbmdzIGZpbGVcbkBmdW5jdGlvbiBncmlkLWNhbGMoJGNvbE51bWJlciwgJHRvdGFsQ29sdW1ucykge1xuICBAcmV0dXJuIHBlcmNlbnRhZ2UoKCRjb2xOdW1iZXIgLyAkdG90YWxDb2x1bW5zKSk7XG59XG5cbi8vXG4vLyBAbWl4aW5zXG4vL1xuXG4vLyBGb3IgY3JlYXRpbmcgY29udGFpbmVyLCBuZXN0ZWQsIGFuZCBjb2xsYXBzZWQgcm93cy5cbi8vXG4vL1xuLy8gJGJlaGF2aW9yIC0gQW55IHNwZWNpYWwgYmVoYXZpb3IgZm9yIHRoaXMgcm93PyBEZWZhdWx0OiBmYWxzZS4gT3B0aW9uczogbmVzdCwgY29sbGFwc2UsIG5lc3QtY29sbGFwc2UsIGZhbHNlLlxuQG1peGluIGdyaWQtcm93KCRiZWhhdmlvcjogZmFsc2UpIHtcblxuICAvLyB1c2UgQGluY2x1ZGUgZ3JpZC1yb3cobmVzdCk7IHRvIGluY2x1ZGUgYSBuZXN0ZWQgcm93XG4gIEBpZiAkYmVoYXZpb3IgPT0gbmVzdCB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiAtKCRjb2x1bW4tZ3V0dGVyLzIpO1xuICAgIG1hcmdpbi0jeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAtKCRjb2x1bW4tZ3V0dGVyLzIpO1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gIH1cblxuICAvLyB1c2UgQGluY2x1ZGUgZ3JpZC1yb3coY29sbGFwc2UpOyB0byBjb2xsYXBzZWQgYSBjb250YWluZXIgcm93IG1hcmdpbnNcbiAgQGVsc2UgaWYgJGJlaGF2aW9yID09IGNvbGxhcHNlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDA7XG4gICAgbWF4LXdpZHRoOiAkcm93LXdpZHRoO1xuICB9XG5cbiAgLy8gdXNlIEBpbmNsdWRlIGdyaWQtcm93KG5lc3QtY29sbGFwc2UpOyB0byBjb2xsYXBzZSBvdXRlciBtYXJnaW5zIG9uIGEgbmVzdGVkIHJvd1xuICBAZWxzZSBpZiAkYmVoYXZpb3IgPT0gbmVzdC1jb2xsYXBzZSB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWFyZ2luOiAwO1xuICAgIG1heC13aWR0aDogbm9uZTtcbiAgfVxuXG4gIC8vIHVzZSBAaW5jbHVkZSBncmlkLXJvdzsgdG8gdXNlIGEgY29udGFpbmVyIHJvd1xuICBAZWxzZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiBhdXRvO1xuICAgIG1hcmdpbi0jeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiBhdXRvO1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBtYXgtd2lkdGg6ICRyb3ctd2lkdGg7XG4gIH1cblxuICAvLyBDbGVhcmZpeCBmb3IgYWxsIHJvd3NcbiAgQGluY2x1ZGUgY2xlYXJmaXgoKTtcbn1cblxuLy8gQ3JlYXRlcyBhIGNvbHVtbiwgc2hvdWxkIGJlIHVzZWQgaW5zaWRlIG9mIGEgbWVkaWEgcXVlcnkgdG8gY29udHJvbCBsYXlvdXRzXG4vL1xuLy8gJGNvbHVtbnMgLSBUaGUgbnVtYmVyIG9mIGNvbHVtbnMgdGhpcyBzaG91bGQgYmVcbi8vICRsYXN0LWNvbHVtbiAtIElzIHRoaXMgdGhlIGxhc3QgY29sdW1uPyBEZWZhdWx0OiBmYWxzZS5cbi8vICRjZW50ZXIgLSBDZW50ZXIgdGhlc2UgY29sdW1ucz8gRGVmYXVsdDogZmFsc2UuXG4vLyAkb2Zmc2V0IC0gIyBvZiBjb2x1bW5zIHRvIG9mZnNldC4gRGVmYXVsdDogZmFsc2UuXG4vLyAkcHVzaCAtICMgb2YgY29sdW1ucyB0byBwdXNoLiBEZWZhdWx0OiBmYWxzZS5cbi8vICRwdWxsIC0gIyBvZiBjb2x1bW5zIHRvIHB1bGwuIERlZmF1bHQ6IGZhbHNlLlxuLy8gJGNvbGxhcHNlIC0gR2V0IHJpZCBvZiBndXR0ZXIgcGFkZGluZyBvbiBjb2x1bW4/IERlZmF1bHQ6IGZhbHNlLlxuLy8gJGZsb2F0IC0gU2hvdWxkIHRoaXMgZmxvYXQ/IERlZmF1bHQ6IHRydWUuIE9wdGlvbnM6IHRydWUsIGZhbHNlLCBsZWZ0LCByaWdodC5cbkBtaXhpbiBncmlkLWNvbHVtbihcbiAgJGNvbHVtbnM6ZmFsc2UsXG4gICRsYXN0LWNvbHVtbjpmYWxzZSxcbiAgJGNlbnRlcjpmYWxzZSxcbiAgJG9mZnNldDpmYWxzZSxcbiAgJHB1c2g6ZmFsc2UsXG4gICRwdWxsOmZhbHNlLFxuICAkY29sbGFwc2U6ZmFsc2UsXG4gICRmbG9hdDp0cnVlLFxuICAkcG9zaXRpb246ZmFsc2UpIHtcblxuICAvLyBJZiBwb3NpdGlvbmVkIGZvciBkZWZhdWx0IC5jb2x1bW4sIGluY2x1ZGUgcmVsYXRpdmUgcG9zaXRpb25cbiAgLy8gcHVzaCBhbmQgcHVsbCByZXF1aXJlIHBvc2l0aW9uIHNldFxuICBAaWYgJHBvc2l0aW9uIG9yICRwdXNoIG9yICRwdWxsIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cblxuICAvLyBJZiBjb2xsYXBzZWQsIGdldCByaWQgb2YgZ3V0dGVyIHBhZGRpbmdcbiAgQGlmICRjb2xsYXBzZSB7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gIH1cblxuICAvLyBHdXR0ZXIgcGFkZGluZyB3aGVuZXZlciBhIGNvbHVtbiBpc24ndCBzZXQgdG8gY29sbGFwc2VcbiAgLy8gKHVzZSAkY29sbGFwc2U6bnVsbCB0byBkbyBub3RoaW5nKVxuICBAZWxzZSBpZiAkY29sbGFwc2UgPT0gZmFsc2Uge1xuICAgIHBhZGRpbmctbGVmdDogKCRjb2x1bW4tZ3V0dGVyIC8gMik7XG4gICAgcGFkZGluZy1yaWdodDogKCRjb2x1bW4tZ3V0dGVyIC8gMik7XG4gIH1cblxuICAvLyBJZiBhIGNvbHVtbiBudW1iZXIgaXMgZ2l2ZW4sIGNhbGN1bGF0ZSB3aWR0aFxuICBAaWYgJGNvbHVtbnMge1xuICAgIHdpZHRoOiBncmlkLWNhbGMoJGNvbHVtbnMsICR0b3RhbC1jb2x1bW5zKTtcblxuICAgIC8vIElmIGxhc3QgY29sdW1uLCBmbG9hdCBuYXR1cmFsbHkgaW5zdGVhZCBvZiB0byB0aGUgcmlnaHRcbiAgICBAaWYgJGxhc3QtY29sdW1uIHsgZmxvYXQ6ICRvcHBvc2l0ZS1kaXJlY3Rpb247IH1cbiAgfVxuXG4gIC8vIFNvdXJjZSBPcmRlcmluZywgYWRkcyBsZWZ0L3JpZ2h0IGRlcGVuZGluZyBvbiB3aGljaCB5b3UgdXNlLlxuICBAaWYgJHB1c2ggeyAjeyRkZWZhdWx0LWZsb2F0fTogZ3JpZC1jYWxjKCRwdXNoLCAkdG90YWwtY29sdW1ucyk7ICN7JG9wcG9zaXRlLWRpcmVjdGlvbn06IGF1dG87IH1cbiAgQGlmICRwdWxsIHsgI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogZ3JpZC1jYWxjKCRwdWxsLCAkdG90YWwtY29sdW1ucyk7ICN7JGRlZmF1bHQtZmxvYXR9OiBhdXRvOyB9XG5cbiAgQGlmICRmbG9hdCB7XG4gICAgQGlmICRmbG9hdCA9PSBsZWZ0IG9yICRmbG9hdCA9PSB0cnVlIHsgZmxvYXQ6ICRkZWZhdWx0LWZsb2F0OyB9XG4gICAgQGVsc2UgaWYgJGZsb2F0ID09IHJpZ2h0IHsgZmxvYXQ6ICRvcHBvc2l0ZS1kaXJlY3Rpb247IH1cbiAgICBAZWxzZSB7IGZsb2F0OiBub25lOyB9XG4gIH1cblxuICAvLyBJZiBjZW50ZXJlZCwgZ2V0IHJpZCBvZiBmbG9hdCBhbmQgYWRkIGFwcHJvcHJpYXRlIG1hcmdpbnNcbiAgQGlmICRjZW50ZXIge1xuICAgIG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogYXV0bztcbiAgICBtYXJnaW4tI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogYXV0bztcbiAgICBmbG9hdDogbm9uZTtcbiAgfVxuXG4gIC8vIElmIG9mZnNldCwgY2FsY3VsYXRlIGFwcHJvcHJpYXRlIG1hcmdpbnNcbiAgQGlmICRvZmZzZXQgeyBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06IGdyaWQtY2FsYygkb2Zmc2V0LCAkdG90YWwtY29sdW1ucykgIWltcG9ydGFudDsgfVxuXG59XG5cbi8vIENyZWF0ZSBwcmVzZW50YXRpb25hbCBjbGFzc2VzIGZvciBncmlkXG4vL1xuLy8gJHNpemUgLSBOYW1lIG9mIGNsYXNzIHRvIHVzZSwgaS5lLiBcImxhcmdlXCIgd2lsbCBnZW5lcmF0ZSAubGFyZ2UtMSwgLmxhcmdlLTIsIGV0Yy5cbkBtaXhpbiBncmlkLWh0bWwtY2xhc3Nlcygkc2l6ZSkge1xuXG4gIEBmb3IgJGkgZnJvbSAwIHRocm91Z2ggJHRvdGFsLWNvbHVtbnMgLSAxIHtcbiAgICAuI3skc2l6ZX0tcHVzaC0jeyRpfSB7XG4gICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigkcHVzaDokaSwgJGNvbGxhcHNlOm51bGwsICRmbG9hdDpmYWxzZSk7XG4gICAgfVxuICAgIC4jeyRzaXplfS1wdWxsLSN7JGl9IHtcbiAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKCRwdWxsOiRpLCAkY29sbGFwc2U6bnVsbCwgJGZsb2F0OmZhbHNlKTtcbiAgICB9XG4gIH1cblxuICAuY29sdW1uLFxuICAuY29sdW1ucyB7IEBpbmNsdWRlIGdyaWQtY29sdW1uKCRjb2x1bW5zOmZhbHNlLCAkcG9zaXRpb246dHJ1ZSk7IH1cblxuXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJHRvdGFsLWNvbHVtbnMge1xuICAgIC4jeyRzaXplfS0jeyRpfSB7IEBpbmNsdWRlIGdyaWQtY29sdW1uKCRjb2x1bW5zOiRpLCRjb2xsYXBzZTpudWxsLCRmbG9hdDpmYWxzZSk7IH1cbiAgfVxuXG4gIEBmb3IgJGkgZnJvbSAwIHRocm91Z2ggJHRvdGFsLWNvbHVtbnMgLSAxIHtcbiAgICAuI3skc2l6ZX0tb2Zmc2V0LSN7JGl9IHsgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJG9mZnNldDokaSwgJGNvbGxhcHNlOm51bGwsJGZsb2F0OmZhbHNlKTsgfVxuICB9XG5cbiAgLiN7JHNpemV9LXJlc2V0LW9yZGVyIHtcbiAgICBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06IDA7XG4gICAgbWFyZ2luLSN7JG9wcG9zaXRlLWRpcmVjdGlvbn06IDA7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogYXV0bztcbiAgICBmbG9hdDogJGRlZmF1bHQtZmxvYXQ7XG4gIH1cblxuICAuY29sdW1uLiN7JHNpemV9LWNlbnRlcmVkLFxuICAuY29sdW1ucy4jeyRzaXplfS1jZW50ZXJlZCB7IEBpbmNsdWRlIGdyaWQtY29sdW1uKCRjZW50ZXI6dHJ1ZSwgJGNvbGxhcHNlOm51bGwsICRmbG9hdDpmYWxzZSk7IH1cblxuICAuY29sdW1uLiN7JHNpemV9LXVuY2VudGVyZWQsXG4gIC5jb2x1bW5zLiN7JHNpemV9LXVuY2VudGVyZWQge1xuICAgIG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogMDtcbiAgICBtYXJnaW4tI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogMDtcbiAgICBmbG9hdDogJGRlZmF1bHQtZmxvYXQ7XG4gIH1cblxuICAvLyBGaWdodGluZyBbY2xhc3MqPVwiY29sdW1uXCJdICsgW2NsYXNzKj1cImNvbHVtblwiXTpsYXN0LWNoaWxkXG4gIC5jb2x1bW4uI3skc2l6ZX0tY2VudGVyZWQ6bGFzdC1jaGlsZCxcbiAgLmNvbHVtbnMuI3skc2l6ZX0tY2VudGVyZWQ6bGFzdC1jaGlsZHtcbiAgICBmbG9hdDogbm9uZTtcbiAgfVxuXG4gIC8vIEZpZ2h0aW5nIC5jb2x1bW4uPHByZXZpb3VzLXNpemU+LWNlbnRlcmVkOmxhc3QtY2hpbGRcbiAgLmNvbHVtbi4jeyRzaXplfS11bmNlbnRlcmVkOmxhc3QtY2hpbGQsXG4gIC5jb2x1bW5zLiN7JHNpemV9LXVuY2VudGVyZWQ6bGFzdC1jaGlsZCB7XG4gICAgZmxvYXQ6ICRkZWZhdWx0LWZsb2F0O1xuICB9XG5cbiAgLmNvbHVtbi4jeyRzaXplfS11bmNlbnRlcmVkLm9wcG9zaXRlLFxuICAuY29sdW1ucy4jeyRzaXplfS11bmNlbnRlcmVkLm9wcG9zaXRlIHtcbiAgICBmbG9hdDogJG9wcG9zaXRlLWRpcmVjdGlvbjtcbiAgfVxuXG5cdC5yb3cge1xuXHRcdCYuI3skc2l6ZX0tY29sbGFwc2Uge1xuXHRcdFx0PiAuY29sdW1uLFxuXHRcdFx0PiAuY29sdW1ucyB7IEBpbmNsdWRlIGdyaWQtY29sdW1uKCRjb2xsYXBzZTp0cnVlLCAkZmxvYXQ6ZmFsc2UpOyB9XG5cblx0XHRcdC5yb3cge21hcmdpbi1sZWZ0OjA7IG1hcmdpbi1yaWdodDowO31cblx0XHR9XG5cdFx0Ji4jeyRzaXplfS11bmNvbGxhcHNlIHtcblx0XHRcdD4gLmNvbHVtbixcblx0XHRcdD4gLmNvbHVtbnMge1xuXHRcdFx0XHRAaW5jbHVkZSBncmlkLWNvbHVtbjtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuQGluY2x1ZGUgZXhwb3J0cyhcImdyaWRcIikge1xuICBAaWYgJGluY2x1ZGUtaHRtbC1ncmlkLWNsYXNzZXMge1xuICAgIC5yb3cge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1yb3c7XG5cbiAgICAgICYuY29sbGFwc2Uge1xuICAgICAgICAgPiAuY29sdW1uLFxuICAgICAgICAgPiAuY29sdW1ucyB7IEBpbmNsdWRlIGdyaWQtY29sdW1uKCRjb2xsYXBzZTp0cnVlLCAkZmxvYXQ6ZmFsc2UpOyB9XG5cbiAgICAgICAgLnJvdyB7bWFyZ2luLWxlZnQ6MDsgbWFyZ2luLXJpZ2h0OjA7fVxuICAgICAgfVxuXG4gICAgICAucm93IHsgQGluY2x1ZGUgZ3JpZC1yb3coJGJlaGF2aW9yOm5lc3QpO1xuICAgICAgICAmLmNvbGxhcHNlIHsgQGluY2x1ZGUgZ3JpZC1yb3coJGJlaGF2aW9yOm5lc3QtY29sbGFwc2UpOyB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmNvbHVtbixcbiAgICAuY29sdW1ucyB7IEBpbmNsdWRlIGdyaWQtY29sdW1uKCRjb2x1bW5zOiR0b3RhbC1jb2x1bW5zKTsgfVxuXG4gICAgW2NsYXNzKj1cImNvbHVtblwiXSArIFtjbGFzcyo9XCJjb2x1bW5cIl06bGFzdC1jaGlsZCB7IGZsb2F0OiAkbGFzdC1jaGlsZC1mbG9hdDsgfVxuICAgIFtjbGFzcyo9XCJjb2x1bW5cIl0gKyBbY2xhc3MqPVwiY29sdW1uXCJdLmVuZCB7IGZsb2F0OiAkZGVmYXVsdC1mbG9hdDsgfVxuXG4gICAgQG1lZGlhICN7JHNtYWxsLXVwfSB7XG4gICAgICBAaW5jbHVkZSBncmlkLWh0bWwtY2xhc3Nlcygkc2l6ZTpzbWFsbCk7XG4gICAgfVxuXG4gICAgQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1odG1sLWNsYXNzZXMoJHNpemU6bWVkaXVtKTtcbiAgICAgIC8vIE9sZCBwdXNoIGFuZCBwdWxsIGNsYXNzZXNcbiAgICAgIEBmb3IgJGkgZnJvbSAwIHRocm91Z2ggJHRvdGFsLWNvbHVtbnMgLSAxIHtcbiAgICAgICAgLnB1c2gtI3skaX0ge1xuICAgICAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKCRwdXNoOiRpLCAkY29sbGFwc2U6bnVsbCwgJGZsb2F0OmZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgICAucHVsbC0jeyRpfSB7XG4gICAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJHB1bGw6JGksICRjb2xsYXBzZTpudWxsLCAkZmxvYXQ6ZmFsc2UpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIEBtZWRpYSAjeyRsYXJnZS11cH0ge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1odG1sLWNsYXNzZXMoJHNpemU6bGFyZ2UpO1xuICAgICAgQGZvciAkaSBmcm9tIDAgdGhyb3VnaCAkdG90YWwtY29sdW1ucyAtIDEge1xuICAgICAgICAucHVzaC0jeyRpfSB7XG4gICAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJHB1c2g6JGksICRjb2xsYXBzZTpudWxsLCAkZmxvYXQ6ZmFsc2UpO1xuICAgICAgICB9XG4gICAgICAgIC5wdWxsLSN7JGl9IHtcbiAgICAgICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigkcHVsbDokaSwgJGNvbGxhcHNlOm51bGwsICRmbG9hdDpmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGlmICRpbmNsdWRlLXhsLWh0bWwtZ3JpZC1jbGFzc2VzIHtcbiAgICBAbWVkaWEgI3skeGxhcmdlLXVwfSB7XG4gICAgICBAaW5jbHVkZSBncmlkLWh0bWwtY2xhc3Nlcygkc2l6ZTp4bGFyZ2UpO1xuICAgIH1cbiAgICBAbWVkaWEgI3skeHhsYXJnZS11cH0ge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1odG1sLWNsYXNzZXMoJHNpemU6eHhsYXJnZSk7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AaW1wb3J0IFwiZ2xvYmFsXCI7XG5cbi8vXG4vLyBAdmFyaWFibGVzXG4vL1xuJGluY2x1ZGUtaHRtbC1pbmxpbmUtbGlzdC1jbGFzc2VzOiAkaW5jbHVkZS1odG1sLWNsYXNzZXMgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGlzIHRvIGNvbnRyb2wgdGhlIG1hcmdpbnMgYW5kIHBhZGRpbmcgb2YgdGhlIGlubGluZSBsaXN0LlxuJGlubGluZS1saXN0LXRvcC1tYXJnaW46IDAgIWRlZmF1bHQ7XG4kaW5saW5lLWxpc3Qtb3Bwb3NpdGUtbWFyZ2luOiAwICFkZWZhdWx0O1xuJGlubGluZS1saXN0LWJvdHRvbS1tYXJnaW46IHJlbS1jYWxjKDE3KSAhZGVmYXVsdDtcbiRpbmxpbmUtbGlzdC1kZWZhdWx0LWZsb2F0LW1hcmdpbjogcmVtLWNhbGMoLTIyKSAhZGVmYXVsdDtcbiRpbmxpbmUtbGlzdC1kZWZhdWx0LWZsb2F0LWxpc3QtbWFyZ2luOiByZW0tY2FsYygyMikgIWRlZmF1bHQ7XG5cbiRpbmxpbmUtbGlzdC1wYWRkaW5nOiAwICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhpcyB0byBjb250cm9sIHRoZSBvdmVyZmxvdyBvZiB0aGUgaW5saW5lIGxpc3QuXG4kaW5saW5lLWxpc3Qtb3ZlcmZsb3c6IGhpZGRlbiAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoaXMgdG8gY29udHJvbCB0aGUgbGlzdCBpdGVtc1xuJGlubGluZS1saXN0LWRpc3BsYXk6IGJsb2NrICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhpcyB0byBjb250cm9sIGFueSBlbGVtZW50cyB3aXRoaW4gbGlzdCBpdGVtc1xuJGlubGluZS1saXN0LWNoaWxkcmVuLWRpc3BsYXk6IGJsb2NrICFkZWZhdWx0O1xuXG4vL1xuLy8gQG1peGluc1xuLy9cbi8vIFdlIHVzZSB0aGlzIG1peGluIHRvIGNyZWF0ZSBpbmxpbmUgbGlzdHNcbkBtaXhpbiBpbmxpbmUtbGlzdCB7XG4gIG1hcmdpbjogJGlubGluZS1saXN0LXRvcC1tYXJnaW4gYXV0byAkaW5saW5lLWxpc3QtYm90dG9tLW1hcmdpbiBhdXRvO1xuICBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06ICRpbmxpbmUtbGlzdC1kZWZhdWx0LWZsb2F0LW1hcmdpbjtcbiAgbWFyZ2luLSN7JG9wcG9zaXRlLWRpcmVjdGlvbn06ICRpbmxpbmUtbGlzdC1vcHBvc2l0ZS1tYXJnaW47XG4gIHBhZGRpbmc6ICRpbmxpbmUtbGlzdC1wYWRkaW5nO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBvdmVyZmxvdzogJGlubGluZS1saXN0LW92ZXJmbG93O1xuXG4gICYgPiBsaSB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBmbG9hdDogJGRlZmF1bHQtZmxvYXQ7XG4gICAgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiAkaW5saW5lLWxpc3QtZGVmYXVsdC1mbG9hdC1saXN0LW1hcmdpbjtcbiAgICBkaXNwbGF5OiAkaW5saW5lLWxpc3QtZGlzcGxheTtcbiAgICAmPiogeyBkaXNwbGF5OiAkaW5saW5lLWxpc3QtY2hpbGRyZW4tZGlzcGxheTsgfVxuICB9XG59XG5cbkBpbmNsdWRlIGV4cG9ydHMoXCJpbmxpbmUtbGlzdFwiKSB7XG4gIEBpZiAkaW5jbHVkZS1odG1sLWlubGluZS1saXN0LWNsYXNzZXMge1xuICAgIC5pbmxpbmUtbGlzdCB7XG4gICAgICBAaW5jbHVkZSBpbmxpbmUtbGlzdCgpO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQGltcG9ydCBcImdsb2JhbFwiO1xuXG4vL1xuLy8gQG5hbWUgX3RhYmxlcy5zY3NzXG4vLyBAZGVwZW5kZW5jaWVzIF9nbG9iYWwuc2Nzc1xuLy9cblxuLy9cbi8vIEB2YXJpYWJsZXNcbi8vXG5cbiRpbmNsdWRlLWh0bWwtdGFibGUtY2xhc3NlczogJGluY2x1ZGUtaHRtbC1jbGFzc2VzICFkZWZhdWx0O1xuXG4vLyBUaGVzZSBjb250cm9sIHRoZSBiYWNrZ3JvdW5kIGNvbG9yIGZvciB0aGUgdGFibGUgYW5kIGV2ZW4gcm93c1xuJHRhYmxlLWJnOiAkd2hpdGUgIWRlZmF1bHQ7XG4kdGFibGUtZXZlbi1yb3ctYmc6ICRzbm93ICFkZWZhdWx0O1xuXG4vLyBUaGVzZSBjb250cm9sIHRoZSB0YWJsZSBjZWxsIGJvcmRlciBzdHlsZVxuJHRhYmxlLWJvcmRlci1zdHlsZTogc29saWQgIWRlZmF1bHQ7XG4kdGFibGUtYm9yZGVyLXNpemU6IDFweCAhZGVmYXVsdDtcbiR0YWJsZS1ib3JkZXItY29sb3I6ICRnYWluc2Jvcm8gIWRlZmF1bHQ7XG5cbi8vIFRoZXNlIGNvbnRyb2wgdGhlIHRhYmxlIGhlYWQgc3R5bGVzXG4kdGFibGUtaGVhZC1iZzogJHdoaXRlLXNtb2tlICFkZWZhdWx0O1xuJHRhYmxlLWhlYWQtZm9udC1zaXplOiByZW0tY2FsYygxNCkgIWRlZmF1bHQ7XG4kdGFibGUtaGVhZC1mb250LWNvbG9yOiAkamV0ICFkZWZhdWx0O1xuJHRhYmxlLWhlYWQtZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ib2xkICFkZWZhdWx0O1xuJHRhYmxlLWhlYWQtcGFkZGluZzogcmVtLWNhbGMoOCAxMCAxMCkgIWRlZmF1bHQ7XG5cbi8vIFRoZXNlIGNvbnRyb2wgdGhlIHRhYmxlIGZvb3Qgc3R5bGVzXG4kdGFibGUtZm9vdC1iZzogJHRhYmxlLWhlYWQtYmcgIWRlZmF1bHQ7XG4kdGFibGUtZm9vdC1mb250LXNpemU6ICR0YWJsZS1oZWFkLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiR0YWJsZS1mb290LWZvbnQtY29sb3I6ICR0YWJsZS1oZWFkLWZvbnQtY29sb3IgIWRlZmF1bHQ7XG4kdGFibGUtZm9vdC1mb250LXdlaWdodDogJHRhYmxlLWhlYWQtZm9udC13ZWlnaHQgIWRlZmF1bHQ7XG4kdGFibGUtZm9vdC1wYWRkaW5nOiAkdGFibGUtaGVhZC1wYWRkaW5nICFkZWZhdWx0O1xuXG4vLyBUaGVzZSBjb250cm9sIHRoZSBjYXB0aW9uXG4kdGFibGUtY2FwdGlvbi1iZzogdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG4kdGFibGUtY2FwdGlvbi1mb250LWNvbG9yOiAkdGFibGUtaGVhZC1mb250LWNvbG9yICFkZWZhdWx0O1xuJHRhYmxlLWNhcHRpb24tZm9udC1zaXplOiByZW0tY2FsYygxNikgIWRlZmF1bHQ7XG4kdGFibGUtY2FwdGlvbi1mb250LXdlaWdodDogYm9sZCAhZGVmYXVsdDtcblxuLy8gVGhlc2UgY29udHJvbCB0aGUgcm93IHBhZGRpbmcgYW5kIGZvbnQgc3R5bGVzXG4kdGFibGUtcm93LXBhZGRpbmc6IHJlbS1jYWxjKDkgMTApICFkZWZhdWx0O1xuJHRhYmxlLXJvdy1mb250LXNpemU6IHJlbS1jYWxjKDE0KSAhZGVmYXVsdDtcbiR0YWJsZS1yb3ctZm9udC1jb2xvcjogJGpldCAhZGVmYXVsdDtcbiR0YWJsZS1saW5lLWhlaWdodDogcmVtLWNhbGMoMTgpICFkZWZhdWx0O1xuXG4vLyBUaGVzZSBhcmUgZm9yIGNvbnRyb2xsaW5nIHRoZSBsYXlvdXQsIGRpc3BsYXkgYW5kIG1hcmdpbiBvZiB0YWJsZXNcbiR0YWJsZS1sYXlvdXQ6IGF1dG8gIWRlZmF1bHQ7XG4kdGFibGUtZGlzcGxheTogdGFibGUtY2VsbCAhZGVmYXVsdDtcbiR0YWJsZS1tYXJnaW4tYm90dG9tOiByZW0tY2FsYygyMCkgIWRlZmF1bHQ7XG5cblxuLy9cbi8vIEBtaXhpbnNcbi8vXG5cbkBtaXhpbiB0YWJsZSB7XG4gIGJhY2tncm91bmQ6ICR0YWJsZS1iZztcbiAgbWFyZ2luLWJvdHRvbTogJHRhYmxlLW1hcmdpbi1ib3R0b207XG4gIGJvcmRlcjogJHRhYmxlLWJvcmRlci1zdHlsZSAkdGFibGUtYm9yZGVyLXNpemUgJHRhYmxlLWJvcmRlci1jb2xvcjtcbiAgdGFibGUtbGF5b3V0OiAkdGFibGUtbGF5b3V0O1xuXG4gIGNhcHRpb24ge1xuICAgIGJhY2tncm91bmQ6ICR0YWJsZS1jYXB0aW9uLWJnO1xuICAgIGNvbG9yOiAkdGFibGUtY2FwdGlvbi1mb250LWNvbG9yO1xuICAgIGZvbnQ6IHtcbiAgICAgIHNpemU6ICR0YWJsZS1jYXB0aW9uLWZvbnQtc2l6ZTtcbiAgICAgIHdlaWdodDogJHRhYmxlLWNhcHRpb24tZm9udC13ZWlnaHQ7XG4gICAgfVxuICB9XG5cbiAgdGhlYWQge1xuICAgIGJhY2tncm91bmQ6ICR0YWJsZS1oZWFkLWJnO1xuXG4gICAgdHIge1xuICAgICAgdGgsXG4gICAgICB0ZCB7XG4gICAgICAgIHBhZGRpbmc6ICR0YWJsZS1oZWFkLXBhZGRpbmc7XG4gICAgICAgIGZvbnQtc2l6ZTogJHRhYmxlLWhlYWQtZm9udC1zaXplO1xuICAgICAgICBmb250LXdlaWdodDogJHRhYmxlLWhlYWQtZm9udC13ZWlnaHQ7XG4gICAgICAgIGNvbG9yOiAkdGFibGUtaGVhZC1mb250LWNvbG9yO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHRmb290IHtcbiAgICBiYWNrZ3JvdW5kOiAkdGFibGUtZm9vdC1iZztcblxuICAgIHRyIHtcbiAgICAgIHRoLFxuICAgICAgdGQge1xuICAgICAgICBwYWRkaW5nOiAkdGFibGUtZm9vdC1wYWRkaW5nO1xuICAgICAgICBmb250LXNpemU6ICR0YWJsZS1mb290LWZvbnQtc2l6ZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICR0YWJsZS1mb290LWZvbnQtd2VpZ2h0O1xuICAgICAgICBjb2xvcjogJHRhYmxlLWZvb3QtZm9udC1jb2xvcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB0ciB7XG4gICAgdGgsXG4gICAgdGQge1xuICAgICAgcGFkZGluZzogJHRhYmxlLXJvdy1wYWRkaW5nO1xuICAgICAgZm9udC1zaXplOiAkdGFibGUtcm93LWZvbnQtc2l6ZTtcbiAgICAgIGNvbG9yOiAkdGFibGUtcm93LWZvbnQtY29sb3I7XG4gICAgICB0ZXh0LWFsaWduOiAkZGVmYXVsdC1mbG9hdDtcbiAgICB9XG5cbiAgICAmLmV2ZW4sXG4gICAgJi5hbHQsXG4gICAgJjpudGgtb2YtdHlwZShldmVuKSB7IGJhY2tncm91bmQ6ICR0YWJsZS1ldmVuLXJvdy1iZzsgfVxuICB9XG5cbiAgdGhlYWQgdHIgdGgsXG4gIHRmb290IHRyIHRoLFxuICB0Zm9vdCB0ciB0ZCxcbiAgdGJvZHkgdHIgdGgsXG4gIHRib2R5IHRyIHRkLFxuICB0ciB0ZCB7IGRpc3BsYXk6ICR0YWJsZS1kaXNwbGF5OyBsaW5lLWhlaWdodDogJHRhYmxlLWxpbmUtaGVpZ2h0OyB9XG59XG5cblxuQGluY2x1ZGUgZXhwb3J0cyhcInRhYmxlXCIpIHtcbiAgQGlmICRpbmNsdWRlLWh0bWwtdGFibGUtY2xhc3NlcyB7XG4gICAgdGFibGUge1xuICAgICAgQGluY2x1ZGUgdGFibGU7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AaW1wb3J0IFwiZ2xvYmFsXCI7XG5AaW1wb3J0IFwiZ3JpZFwiO1xuXG4vL1xuLy8gQHZhcmlhYmxlc1xuLy9cblxuJGluY2x1ZGUtaHRtbC10YWJzLWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcyAhZGVmYXVsdDtcblxuJHRhYnMtbmF2aWdhdGlvbi1wYWRkaW5nOiByZW0tY2FsYygxNikgIWRlZmF1bHQ7XG4kdGFicy1uYXZpZ2F0aW9uLWJnLWNvbG9yOiAkc2lsdmVyICFkZWZhdWx0O1xuJHRhYnMtbmF2aWdhdGlvbi1hY3RpdmUtYmctY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcbiR0YWJzLW5hdmlnYXRpb24taG92ZXItYmctY29sb3I6IHNjYWxlLWNvbG9yKCR0YWJzLW5hdmlnYXRpb24tYmctY29sb3IsICRsaWdodG5lc3M6IC02JSkgIWRlZmF1bHQ7XG4kdGFicy1uYXZpZ2F0aW9uLWZvbnQtY29sb3I6ICRqZXQgIWRlZmF1bHQ7XG4kdGFicy1uYXZpZ2F0aW9uLWFjdGl2ZS1mb250LWNvbG9yOiAkdGFicy1uYXZpZ2F0aW9uLWZvbnQtY29sb3IgIWRlZmF1bHQ7XG4kdGFicy1uYXZpZ2F0aW9uLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTYpICFkZWZhdWx0O1xuJHRhYnMtbmF2aWdhdGlvbi1mb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHkgIWRlZmF1bHQ7XG5cbiR0YWJzLWNvbnRlbnQtbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMjQpICFkZWZhdWx0O1xuJHRhYnMtY29udGVudC1wYWRkaW5nOiAoJGNvbHVtbi1ndXR0ZXIvMikgIWRlZmF1bHQ7XG5cbiR0YWJzLXZlcnRpY2FsLW5hdmlnYXRpb24tbWFyZ2luLWJvdHRvbTogMS4yNXJlbSAhZGVmYXVsdDtcblxuQGluY2x1ZGUgZXhwb3J0cyhcInRhYlwiKSB7XG4gIEBpZiAkaW5jbHVkZS1odG1sLXRhYnMtY2xhc3NlcyB7XG4gICAgLnRhYnMge1xuICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgIGRkLCAudGFiLXRpdGxlIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIGZsb2F0OiAkZGVmYXVsdC1mbG9hdDtcbiAgICAgICAgPiBhIHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBiYWNrZ3JvdW5kOiB7XG4gICAgICAgICAgICBjb2xvcjogJHRhYnMtbmF2aWdhdGlvbi1iZy1jb2xvcjtcbiAgICAgICAgICB9XG4gICAgICAgICAgY29sb3I6ICR0YWJzLW5hdmlnYXRpb24tZm9udC1jb2xvcjtcbiAgICAgICAgICBwYWRkaW5nOiAkdGFicy1uYXZpZ2F0aW9uLXBhZGRpbmcgJHRhYnMtbmF2aWdhdGlvbi1wYWRkaW5nICogMjtcbiAgICAgICAgICBmb250LWZhbWlseTogJHRhYnMtbmF2aWdhdGlvbi1mb250LWZhbWlseTtcbiAgICAgICAgICBmb250LXNpemU6ICR0YWJzLW5hdmlnYXRpb24tZm9udC1zaXplO1xuICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDoge1xuICAgICAgICAgICAgICBjb2xvcjogJHRhYnMtbmF2aWdhdGlvbi1ob3Zlci1iZy1jb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgJjpmb2N1c3tcbiAgICAgICAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJi5hY3RpdmUgYSB7XG4gICAgICAgICAgYmFja2dyb3VuZDoge1xuICAgICAgICAgICAgY29sb3I6ICR0YWJzLW5hdmlnYXRpb24tYWN0aXZlLWJnLWNvbG9yO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb2xvcjokdGFicy1uYXZpZ2F0aW9uLWFjdGl2ZS1mb250LWNvbG9yO1xuICAgICAgICAgIH1cbiAgICAgIH1cbiAgICAgICYucmFkaXVzIHtcbiAgICAgICAgZGQ6Zmlyc3QtY2hpbGQsIC50YWI6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgIGEgeyBAaW5jbHVkZSBzaWRlLXJhZGl1cygkZGVmYXVsdC1mbG9hdCwgJGdsb2JhbC1yYWRpdXMpOyB9XG4gICAgICAgIH1cbiAgICAgICAgZGQ6bGFzdC1jaGlsZCwgLnRhYjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICBhIHsgQGluY2x1ZGUgc2lkZS1yYWRpdXMoJG9wcG9zaXRlLWRpcmVjdGlvbiwgJGdsb2JhbC1yYWRpdXMpOyB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICYudmVydGljYWwge1xuICAgICAgICBkZCwgLnRhYi10aXRsZSB7XG4gICAgICAgICAgcG9zaXRpb246IGluaGVyaXQ7XG4gICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnRhYnMtY29udGVudCB7XG4gICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICAgIG1hcmdpbi1ib3R0b206ICR0YWJzLWNvbnRlbnQtbWFyZ2luLWJvdHRvbTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgPiAuY29udGVudCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIGZsb2F0OiAkZGVmYXVsdC1mbG9hdDtcbiAgICAgICAgcGFkZGluZzogJHRhYnMtY29udGVudC1wYWRkaW5nIDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAmLmFjdGl2ZSB7IGRpc3BsYXk6IGJsb2NrOyBmbG9hdDogbm9uZTsgfVxuICAgICAgICAmLmNvbnRhaW5lZCB7IHBhZGRpbmc6ICR0YWJzLWNvbnRlbnQtcGFkZGluZzsgfVxuICAgICAgfVxuICAgICAgJi52ZXJ0aWNhbCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICA+IC5jb250ZW50IHsgcGFkZGluZzogMCAkdGFicy1jb250ZW50LXBhZGRpbmc7IH1cbiAgICAgIH1cbiAgICB9XG4gICAgQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgICAgLnRhYnMge1xuICAgICAgICAmLnZlcnRpY2FsIHtcbiAgICAgICAgICB3aWR0aDogMjAlO1xuICAgICAgICAgIG1heC13aWR0aDogMjAlO1xuICAgICAgICAgIGZsb2F0OiAkZGVmYXVsdC1mbG9hdDtcbiAgICAgICAgICBtYXJnaW46IDAgMCAkdGFicy12ZXJ0aWNhbC1uYXZpZ2F0aW9uLW1hcmdpbi1ib3R0b207XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC50YWJzLWNvbnRlbnQge1xuICAgICAgICAmLnZlcnRpY2FsIHtcbiAgICAgICAgICB3aWR0aDogODAlO1xuICAgICAgICAgIG1heC13aWR0aDogODAlO1xuICAgICAgICAgIGZsb2F0OiAkZGVmYXVsdC1mbG9hdDtcbiAgICAgICAgICBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06IC0xcHg7XG4gICAgICAgICAgcGFkZGluZy0jeyRkZWZhdWx0LWZsb2F0fTogMXJlbTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAubm8tanMge1xuICAgICAgLnRhYnMtY29udGVudCA+IC5jb250ZW50IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQGltcG9ydCBcImdsb2JhbFwiO1xuXG4vL1xuLy8gQHZhcmlhYmxlc1xuLy9cbiRpbmNsdWRlLWh0bWwtZ3JpZC1jbGFzc2VzOiAkaW5jbHVkZS1odG1sLWNsYXNzZXMgIWRlZmF1bHQ7XG4kaW5jbHVkZS14bC1odG1sLWdyaWQtY2xhc3NlczogZmFsc2UgIWRlZmF1bHQ7XG5cbiRyb3ctd2lkdGg6IHJlbS1jYWxjKDEwMDApICFkZWZhdWx0O1xuJHRvdGFsLWNvbHVtbnM6IDEyICFkZWZhdWx0O1xuXG4kbGFzdC1jaGlsZC1mbG9hdDogJG9wcG9zaXRlLWRpcmVjdGlvbiAhZGVmYXVsdDtcblxuLy9cbi8vIEdyaWQgRnVuY3Rpb25zXG4vL1xuXG4vLyBEZXByZWNhdGVkOiBXZSdsbCBkcm9wIHN1cHBvcnQgZm9yIHRoaXMgaW4gNS4xLCB1c2UgZ3JpZC1jYWxjKClcbkBmdW5jdGlvbiBncmlkQ2FsYygkY29sTnVtYmVyLCAkdG90YWxDb2x1bW5zKSB7XG4gIEB3YXJuIFwiZ3JpZENhbGMoKSBpcyBkZXByZWNhdGVkLCB1c2UgZ3JpZC1jYWxjKClcIjtcbiAgQHJldHVybiBncmlkLWNhbGMoJGNvbE51bWJlciwgJHRvdGFsQ29sdW1ucyk7XG59XG5cbi8vIEBGVU5DVElPTlxuLy8gJGNvbE51bWJlciAtIEZvdW5kIGluIHNldHRpbmdzIGZpbGVcbi8vICR0b3RhbENvbHVtbnMgLSBGb3VuZCBpbiBzZXR0aW5ncyBmaWxlXG5AZnVuY3Rpb24gZ3JpZC1jYWxjKCRjb2xOdW1iZXIsICR0b3RhbENvbHVtbnMpIHtcbiAgQHJldHVybiBwZXJjZW50YWdlKCgkY29sTnVtYmVyIC8gJHRvdGFsQ29sdW1ucykpO1xufVxuXG4vL1xuLy8gQG1peGluc1xuLy9cblxuLy8gRm9yIGNyZWF0aW5nIGNvbnRhaW5lciwgbmVzdGVkLCBhbmQgY29sbGFwc2VkIHJvd3MuXG4vL1xuLy9cbi8vICRiZWhhdmlvciAtIEFueSBzcGVjaWFsIGJlaGF2aW9yIGZvciB0aGlzIHJvdz8gRGVmYXVsdDogZmFsc2UuIE9wdGlvbnM6IG5lc3QsIGNvbGxhcHNlLCBuZXN0LWNvbGxhcHNlLCBmYWxzZS5cbkBtaXhpbiBncmlkLXJvdygkYmVoYXZpb3I6IGZhbHNlKSB7XG5cbiAgLy8gdXNlIEBpbmNsdWRlIGdyaWQtcm93KG5lc3QpOyB0byBpbmNsdWRlIGEgbmVzdGVkIHJvd1xuICBAaWYgJGJlaGF2aW9yID09IG5lc3Qge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogLSgkY29sdW1uLWd1dHRlci8yKTtcbiAgICBtYXJnaW4tI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogLSgkY29sdW1uLWd1dHRlci8yKTtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgbWF4LXdpZHRoOiBub25lO1xuICB9XG5cbiAgLy8gdXNlIEBpbmNsdWRlIGdyaWQtcm93KGNvbGxhcHNlKTsgdG8gY29sbGFwc2VkIGEgY29udGFpbmVyIHJvdyBtYXJnaW5zXG4gIEBlbHNlIGlmICRiZWhhdmlvciA9PSBjb2xsYXBzZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luOiAwO1xuICAgIG1heC13aWR0aDogJHJvdy13aWR0aDtcbiAgfVxuXG4gIC8vIHVzZSBAaW5jbHVkZSBncmlkLXJvdyhuZXN0LWNvbGxhcHNlKTsgdG8gY29sbGFwc2Ugb3V0ZXIgbWFyZ2lucyBvbiBhIG5lc3RlZCByb3dcbiAgQGVsc2UgaWYgJGJlaGF2aW9yID09IG5lc3QtY29sbGFwc2Uge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG1hcmdpbjogMDtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gIH1cblxuICAvLyB1c2UgQGluY2x1ZGUgZ3JpZC1yb3c7IHRvIHVzZSBhIGNvbnRhaW5lciByb3dcbiAgQGVsc2Uge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogYXV0bztcbiAgICBtYXJnaW4tI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogYXV0bztcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgbWF4LXdpZHRoOiAkcm93LXdpZHRoO1xuICB9XG5cbiAgLy8gQ2xlYXJmaXggZm9yIGFsbCByb3dzXG4gIEBpbmNsdWRlIGNsZWFyZml4KCk7XG59XG5cbi8vIENyZWF0ZXMgYSBjb2x1bW4sIHNob3VsZCBiZSB1c2VkIGluc2lkZSBvZiBhIG1lZGlhIHF1ZXJ5IHRvIGNvbnRyb2wgbGF5b3V0c1xuLy9cbi8vICRjb2x1bW5zIC0gVGhlIG51bWJlciBvZiBjb2x1bW5zIHRoaXMgc2hvdWxkIGJlXG4vLyAkbGFzdC1jb2x1bW4gLSBJcyB0aGlzIHRoZSBsYXN0IGNvbHVtbj8gRGVmYXVsdDogZmFsc2UuXG4vLyAkY2VudGVyIC0gQ2VudGVyIHRoZXNlIGNvbHVtbnM/IERlZmF1bHQ6IGZhbHNlLlxuLy8gJG9mZnNldCAtICMgb2YgY29sdW1ucyB0byBvZmZzZXQuIERlZmF1bHQ6IGZhbHNlLlxuLy8gJHB1c2ggLSAjIG9mIGNvbHVtbnMgdG8gcHVzaC4gRGVmYXVsdDogZmFsc2UuXG4vLyAkcHVsbCAtICMgb2YgY29sdW1ucyB0byBwdWxsLiBEZWZhdWx0OiBmYWxzZS5cbi8vICRjb2xsYXBzZSAtIEdldCByaWQgb2YgZ3V0dGVyIHBhZGRpbmcgb24gY29sdW1uPyBEZWZhdWx0OiBmYWxzZS5cbi8vICRmbG9hdCAtIFNob3VsZCB0aGlzIGZsb2F0PyBEZWZhdWx0OiB0cnVlLiBPcHRpb25zOiB0cnVlLCBmYWxzZSwgbGVmdCwgcmlnaHQuXG5AbWl4aW4gZ3JpZC1jb2x1bW4oXG4gICRjb2x1bW5zOmZhbHNlLFxuICAkbGFzdC1jb2x1bW46ZmFsc2UsXG4gICRjZW50ZXI6ZmFsc2UsXG4gICRvZmZzZXQ6ZmFsc2UsXG4gICRwdXNoOmZhbHNlLFxuICAkcHVsbDpmYWxzZSxcbiAgJGNvbGxhcHNlOmZhbHNlLFxuICAkZmxvYXQ6dHJ1ZSxcbiAgJHBvc2l0aW9uOmZhbHNlKSB7XG5cbiAgLy8gSWYgcG9zaXRpb25lZCBmb3IgZGVmYXVsdCAuY29sdW1uLCBpbmNsdWRlIHJlbGF0aXZlIHBvc2l0aW9uXG4gIC8vIHB1c2ggYW5kIHB1bGwgcmVxdWlyZSBwb3NpdGlvbiBzZXRcbiAgQGlmICRwb3NpdGlvbiBvciAkcHVzaCBvciAkcHVsbCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG5cbiAgLy8gSWYgY29sbGFwc2VkLCBnZXQgcmlkIG9mIGd1dHRlciBwYWRkaW5nXG4gIEBpZiAkY29sbGFwc2Uge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICB9XG5cbiAgLy8gR3V0dGVyIHBhZGRpbmcgd2hlbmV2ZXIgYSBjb2x1bW4gaXNuJ3Qgc2V0IHRvIGNvbGxhcHNlXG4gIC8vICh1c2UgJGNvbGxhcHNlOm51bGwgdG8gZG8gbm90aGluZylcbiAgQGVsc2UgaWYgJGNvbGxhcHNlID09IGZhbHNlIHtcbiAgICBwYWRkaW5nLWxlZnQ6ICgkY29sdW1uLWd1dHRlciAvIDIpO1xuICAgIHBhZGRpbmctcmlnaHQ6ICgkY29sdW1uLWd1dHRlciAvIDIpO1xuICB9XG5cbiAgLy8gSWYgYSBjb2x1bW4gbnVtYmVyIGlzIGdpdmVuLCBjYWxjdWxhdGUgd2lkdGhcbiAgQGlmICRjb2x1bW5zIHtcbiAgICB3aWR0aDogZ3JpZC1jYWxjKCRjb2x1bW5zLCAkdG90YWwtY29sdW1ucyk7XG5cbiAgICAvLyBJZiBsYXN0IGNvbHVtbiwgZmxvYXQgbmF0dXJhbGx5IGluc3RlYWQgb2YgdG8gdGhlIHJpZ2h0XG4gICAgQGlmICRsYXN0LWNvbHVtbiB7IGZsb2F0OiAkb3Bwb3NpdGUtZGlyZWN0aW9uOyB9XG4gIH1cblxuICAvLyBTb3VyY2UgT3JkZXJpbmcsIGFkZHMgbGVmdC9yaWdodCBkZXBlbmRpbmcgb24gd2hpY2ggeW91IHVzZS5cbiAgQGlmICRwdXNoIHsgI3skZGVmYXVsdC1mbG9hdH06IGdyaWQtY2FsYygkcHVzaCwgJHRvdGFsLWNvbHVtbnMpOyAjeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiBhdXRvOyB9XG4gIEBpZiAkcHVsbCB7ICN7JG9wcG9zaXRlLWRpcmVjdGlvbn06IGdyaWQtY2FsYygkcHVsbCwgJHRvdGFsLWNvbHVtbnMpOyAjeyRkZWZhdWx0LWZsb2F0fTogYXV0bzsgfVxuXG4gIEBpZiAkZmxvYXQge1xuICAgIEBpZiAkZmxvYXQgPT0gbGVmdCBvciAkZmxvYXQgPT0gdHJ1ZSB7IGZsb2F0OiAkZGVmYXVsdC1mbG9hdDsgfVxuICAgIEBlbHNlIGlmICRmbG9hdCA9PSByaWdodCB7IGZsb2F0OiAkb3Bwb3NpdGUtZGlyZWN0aW9uOyB9XG4gICAgQGVsc2UgeyBmbG9hdDogbm9uZTsgfVxuICB9XG5cbiAgLy8gSWYgY2VudGVyZWQsIGdldCByaWQgb2YgZmxvYXQgYW5kIGFkZCBhcHByb3ByaWF0ZSBtYXJnaW5zXG4gIEBpZiAkY2VudGVyIHtcbiAgICBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06IGF1dG87XG4gICAgbWFyZ2luLSN7JG9wcG9zaXRlLWRpcmVjdGlvbn06IGF1dG87XG4gICAgZmxvYXQ6IG5vbmU7XG4gIH1cblxuICAvLyBJZiBvZmZzZXQsIGNhbGN1bGF0ZSBhcHByb3ByaWF0ZSBtYXJnaW5zXG4gIEBpZiAkb2Zmc2V0IHsgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiBncmlkLWNhbGMoJG9mZnNldCwgJHRvdGFsLWNvbHVtbnMpICFpbXBvcnRhbnQ7IH1cblxufVxuXG4vLyBDcmVhdGUgcHJlc2VudGF0aW9uYWwgY2xhc3NlcyBmb3IgZ3JpZFxuLy9cbi8vICRzaXplIC0gTmFtZSBvZiBjbGFzcyB0byB1c2UsIGkuZS4gXCJsYXJnZVwiIHdpbGwgZ2VuZXJhdGUgLmxhcmdlLTEsIC5sYXJnZS0yLCBldGMuXG5AbWl4aW4gZ3JpZC1odG1sLWNsYXNzZXMoJHNpemUpIHtcblxuICBAZm9yICRpIGZyb20gMCB0aHJvdWdoICR0b3RhbC1jb2x1bW5zIC0gMSB7XG4gICAgLiN7JHNpemV9LXB1c2gtI3skaX0ge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJHB1c2g6JGksICRjb2xsYXBzZTpudWxsLCAkZmxvYXQ6ZmFsc2UpO1xuICAgIH1cbiAgICAuI3skc2l6ZX0tcHVsbC0jeyRpfSB7XG4gICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigkcHVsbDokaSwgJGNvbGxhcHNlOm51bGwsICRmbG9hdDpmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgLmNvbHVtbixcbiAgLmNvbHVtbnMgeyBAaW5jbHVkZSBncmlkLWNvbHVtbigkY29sdW1uczpmYWxzZSwgJHBvc2l0aW9uOnRydWUpOyB9XG5cblxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICR0b3RhbC1jb2x1bW5zIHtcbiAgICAuI3skc2l6ZX0tI3skaX0geyBAaW5jbHVkZSBncmlkLWNvbHVtbigkY29sdW1uczokaSwkY29sbGFwc2U6bnVsbCwkZmxvYXQ6ZmFsc2UpOyB9XG4gIH1cblxuICBAZm9yICRpIGZyb20gMCB0aHJvdWdoICR0b3RhbC1jb2x1bW5zIC0gMSB7XG4gICAgLiN7JHNpemV9LW9mZnNldC0jeyRpfSB7IEBpbmNsdWRlIGdyaWQtY29sdW1uKCRvZmZzZXQ6JGksICRjb2xsYXBzZTpudWxsLCRmbG9hdDpmYWxzZSk7IH1cbiAgfVxuXG4gIC4jeyRzaXplfS1yZXNldC1vcmRlciB7XG4gICAgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiAwO1xuICAgIG1hcmdpbi0jeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAwO1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgZmxvYXQ6ICRkZWZhdWx0LWZsb2F0O1xuICB9XG5cbiAgLmNvbHVtbi4jeyRzaXplfS1jZW50ZXJlZCxcbiAgLmNvbHVtbnMuI3skc2l6ZX0tY2VudGVyZWQgeyBAaW5jbHVkZSBncmlkLWNvbHVtbigkY2VudGVyOnRydWUsICRjb2xsYXBzZTpudWxsLCAkZmxvYXQ6ZmFsc2UpOyB9XG5cbiAgLmNvbHVtbi4jeyRzaXplfS11bmNlbnRlcmVkLFxuICAuY29sdW1ucy4jeyRzaXplfS11bmNlbnRlcmVkIHtcbiAgICBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06IDA7XG4gICAgbWFyZ2luLSN7JG9wcG9zaXRlLWRpcmVjdGlvbn06IDA7XG4gICAgZmxvYXQ6ICRkZWZhdWx0LWZsb2F0O1xuICB9XG5cbiAgLy8gRmlnaHRpbmcgW2NsYXNzKj1cImNvbHVtblwiXSArIFtjbGFzcyo9XCJjb2x1bW5cIl06bGFzdC1jaGlsZFxuICAuY29sdW1uLiN7JHNpemV9LWNlbnRlcmVkOmxhc3QtY2hpbGQsXG4gIC5jb2x1bW5zLiN7JHNpemV9LWNlbnRlcmVkOmxhc3QtY2hpbGR7XG4gICAgZmxvYXQ6IG5vbmU7XG4gIH1cblxuICAvLyBGaWdodGluZyAuY29sdW1uLjxwcmV2aW91cy1zaXplPi1jZW50ZXJlZDpsYXN0LWNoaWxkXG4gIC5jb2x1bW4uI3skc2l6ZX0tdW5jZW50ZXJlZDpsYXN0LWNoaWxkLFxuICAuY29sdW1ucy4jeyRzaXplfS11bmNlbnRlcmVkOmxhc3QtY2hpbGQge1xuICAgIGZsb2F0OiAkZGVmYXVsdC1mbG9hdDtcbiAgfVxuXG4gIC5jb2x1bW4uI3skc2l6ZX0tdW5jZW50ZXJlZC5vcHBvc2l0ZSxcbiAgLmNvbHVtbnMuI3skc2l6ZX0tdW5jZW50ZXJlZC5vcHBvc2l0ZSB7XG4gICAgZmxvYXQ6ICRvcHBvc2l0ZS1kaXJlY3Rpb247XG4gIH1cblxuXHQucm93IHtcblx0XHQmLiN7JHNpemV9LWNvbGxhcHNlIHtcblx0XHRcdD4gLmNvbHVtbixcblx0XHRcdD4gLmNvbHVtbnMgeyBAaW5jbHVkZSBncmlkLWNvbHVtbigkY29sbGFwc2U6dHJ1ZSwgJGZsb2F0OmZhbHNlKTsgfVxuXG5cdFx0XHQucm93IHttYXJnaW4tbGVmdDowOyBtYXJnaW4tcmlnaHQ6MDt9XG5cdFx0fVxuXHRcdCYuI3skc2l6ZX0tdW5jb2xsYXBzZSB7XG5cdFx0XHQ+IC5jb2x1bW4sXG5cdFx0XHQ+IC5jb2x1bW5zIHtcblx0XHRcdFx0QGluY2x1ZGUgZ3JpZC1jb2x1bW47XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbkBpbmNsdWRlIGV4cG9ydHMoXCJncmlkXCIpIHtcbiAgQGlmICRpbmNsdWRlLWh0bWwtZ3JpZC1jbGFzc2VzIHtcbiAgICAucm93IHtcbiAgICAgIEBpbmNsdWRlIGdyaWQtcm93O1xuXG4gICAgICAmLmNvbGxhcHNlIHtcbiAgICAgICAgID4gLmNvbHVtbixcbiAgICAgICAgID4gLmNvbHVtbnMgeyBAaW5jbHVkZSBncmlkLWNvbHVtbigkY29sbGFwc2U6dHJ1ZSwgJGZsb2F0OmZhbHNlKTsgfVxuXG4gICAgICAgIC5yb3cge21hcmdpbi1sZWZ0OjA7IG1hcmdpbi1yaWdodDowO31cbiAgICAgIH1cblxuICAgICAgLnJvdyB7IEBpbmNsdWRlIGdyaWQtcm93KCRiZWhhdmlvcjpuZXN0KTtcbiAgICAgICAgJi5jb2xsYXBzZSB7IEBpbmNsdWRlIGdyaWQtcm93KCRiZWhhdmlvcjpuZXN0LWNvbGxhcHNlKTsgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC5jb2x1bW4sXG4gICAgLmNvbHVtbnMgeyBAaW5jbHVkZSBncmlkLWNvbHVtbigkY29sdW1uczokdG90YWwtY29sdW1ucyk7IH1cblxuICAgIFtjbGFzcyo9XCJjb2x1bW5cIl0gKyBbY2xhc3MqPVwiY29sdW1uXCJdOmxhc3QtY2hpbGQgeyBmbG9hdDogJGxhc3QtY2hpbGQtZmxvYXQ7IH1cbiAgICBbY2xhc3MqPVwiY29sdW1uXCJdICsgW2NsYXNzKj1cImNvbHVtblwiXS5lbmQgeyBmbG9hdDogJGRlZmF1bHQtZmxvYXQ7IH1cblxuICAgIEBtZWRpYSAjeyRzbWFsbC11cH0ge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1odG1sLWNsYXNzZXMoJHNpemU6c21hbGwpO1xuICAgIH1cblxuICAgIEBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAgIEBpbmNsdWRlIGdyaWQtaHRtbC1jbGFzc2VzKCRzaXplOm1lZGl1bSk7XG4gICAgICAvLyBPbGQgcHVzaCBhbmQgcHVsbCBjbGFzc2VzXG4gICAgICBAZm9yICRpIGZyb20gMCB0aHJvdWdoICR0b3RhbC1jb2x1bW5zIC0gMSB7XG4gICAgICAgIC5wdXNoLSN7JGl9IHtcbiAgICAgICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigkcHVzaDokaSwgJGNvbGxhcHNlOm51bGwsICRmbG9hdDpmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgICAgLnB1bGwtI3skaX0ge1xuICAgICAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKCRwdWxsOiRpLCAkY29sbGFwc2U6bnVsbCwgJGZsb2F0OmZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBAbWVkaWEgI3skbGFyZ2UtdXB9IHtcbiAgICAgIEBpbmNsdWRlIGdyaWQtaHRtbC1jbGFzc2VzKCRzaXplOmxhcmdlKTtcbiAgICAgIEBmb3IgJGkgZnJvbSAwIHRocm91Z2ggJHRvdGFsLWNvbHVtbnMgLSAxIHtcbiAgICAgICAgLnB1c2gtI3skaX0ge1xuICAgICAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKCRwdXNoOiRpLCAkY29sbGFwc2U6bnVsbCwgJGZsb2F0OmZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgICAucHVsbC0jeyRpfSB7XG4gICAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJHB1bGw6JGksICRjb2xsYXBzZTpudWxsLCAkZmxvYXQ6ZmFsc2UpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBpZiAkaW5jbHVkZS14bC1odG1sLWdyaWQtY2xhc3NlcyB7XG4gICAgQG1lZGlhICN7JHhsYXJnZS11cH0ge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1odG1sLWNsYXNzZXMoJHNpemU6eGxhcmdlKTtcbiAgICB9XG4gICAgQG1lZGlhICN7JHh4bGFyZ2UtdXB9IHtcbiAgICAgIEBpbmNsdWRlIGdyaWQtaHRtbC1jbGFzc2VzKCRzaXplOnh4bGFyZ2UpO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQGltcG9ydCBcImdsb2JhbFwiO1xuXG4vL1xuLy8gQG5hbWUgX3RodW1icy5zY3NzXG4vLyBAZGVwZW5kZW5jaWVzIF9nbG9iYWxzLnNjc3Ncbi8vXG5cbi8vXG4vLyBAdmFyaWFibGVzXG4vL1xuXG4kaW5jbHVkZS1odG1sLW1lZGlhLWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcyAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgYm9yZGVyIHN0eWxlc1xuJHRodW1iLWJvcmRlci1zdHlsZTogc29saWQgIWRlZmF1bHQ7XG4kdGh1bWItYm9yZGVyLXdpZHRoOiA0cHggIWRlZmF1bHQ7XG4kdGh1bWItYm9yZGVyLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG4kdGh1bWItYm94LXNoYWRvdzogMCAwIDAgMXB4IHJnYmEoJGJsYWNrLC4yKSAhZGVmYXVsdDtcbiR0aHVtYi1ib3gtc2hhZG93LWhvdmVyOiAwIDAgNnB4IDFweCByZ2JhKCRwcmltYXJ5LWNvbG9yLDAuNSkgIWRlZmF1bHQ7XG5cbi8vIFJhZGl1cyBhbmQgdHJhbnNpdGlvbiBzcGVlZCBmb3IgdGh1bWJzXG4kdGh1bWItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcbiR0aHVtYi10cmFuc2l0aW9uLXNwZWVkOiAyMDBtcyAhZGVmYXVsdDtcblxuLy9cbi8vIEBtaXhpbnNcbi8vXG5cbi8vIFdlIHVzZSB0aGlzIHRvIGNyZWF0ZSBpbWFnZSB0aHVtYm5haWwgc3R5bGVzLlxuLy9cbi8vICRib3JkZXItd2lkdGggLSBXaWR0aCBvZiBib3JkZXIgYXJvdW5kIHRodW1ibmFpbC4gRGVmYXVsdDogJHRodW1iLWJvcmRlci13aWR0aC5cbi8vICRib3gtc2hhZG93IC0gQm94IHNoYWRvdyB0byBhcHBseSB0byB0aHVtYm5haWwuIERlZmF1bHQ6ICR0aHVtYi1ib3gtc2hhZG93LlxuLy8gJGJveC1zaGFkb3ctaG92ZXIgLSBCb3ggc2hhZG93IHRvIGFwcGx5IG9uIGhvdmVyLiBEZWZhdWx0OiAkdGh1bWItYm94LXNoYWRvdy1ob3Zlci5cbkBtaXhpbiB0aHVtYihcbiAgJGJvcmRlci13aWR0aDokdGh1bWItYm9yZGVyLXdpZHRoLCBcbiAgJGJveC1zaGFkb3c6JHRodW1iLWJveC1zaGFkb3csIFxuICAkYm94LXNoYWRvdy1ob3ZlcjokdGh1bWItYm94LXNoYWRvdy1ob3Zlcikge1xuICBsaW5lLWhlaWdodDogMDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBib3JkZXI6ICR0aHVtYi1ib3JkZXItc3R5bGUgJGJvcmRlci13aWR0aCAkdGh1bWItYm9yZGVyLWNvbG9yO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGJveC1zaGFkb3c6ICRib3gtc2hhZG93O1xuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIGJveC1zaGFkb3c6ICRib3gtc2hhZG93LWhvdmVyO1xuICB9XG59XG5cblxuQGluY2x1ZGUgZXhwb3J0cyhcInRodW1iXCIpIHtcbiAgQGlmICRpbmNsdWRlLWh0bWwtbWVkaWEtY2xhc3NlcyB7XG5cbiAgICAvKiBJbWFnZSBUaHVtYm5haWxzICovXG4gICAgLnRoIHtcbiAgICAgIEBpbmNsdWRlIHRodW1iO1xuICAgICAgQGluY2x1ZGUgc2luZ2xlLXRyYW5zaXRpb24oYWxsLCR0aHVtYi10cmFuc2l0aW9uLXNwZWVkLGVhc2Utb3V0KTtcblxuICAgICAgJi5yYWRpdXMgeyBAaW5jbHVkZSByYWRpdXMoJHRodW1iLXJhZGl1cyk7IH1cbiAgICB9XG4gIH1cbn0iLCIvLyBGb3VuZGF0aW9uIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AaW1wb3J0IFwiZ2xvYmFsXCI7XG5cbiRpbmNsdWRlLWh0bWwtdHlwZS1jbGFzc2VzOiAkaW5jbHVkZS1odG1sLWNsYXNzZXMgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIGhlYWRlciBmb250IHN0eWxlc1xuJGhlYWRlci1mb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHkgIWRlZmF1bHQ7XG4kaGVhZGVyLWZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuJGhlYWRlci1mb250LXN0eWxlOiBub3JtYWwgIWRlZmF1bHQ7XG4kaGVhZGVyLWZvbnQtY29sb3I6ICRqZXQgIWRlZmF1bHQ7XG4kaGVhZGVyLWxpbmUtaGVpZ2h0OiAxLjQgIWRlZmF1bHQ7XG4kaGVhZGVyLXRvcC1tYXJnaW46IC4ycmVtICFkZWZhdWx0O1xuJGhlYWRlci1ib3R0b20tbWFyZ2luOiAuNXJlbSAhZGVmYXVsdDtcbiRoZWFkZXItdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgaGVhZGVyIGZvbnQgc2l6ZXNcbiRoMS1mb250LXNpemU6IHJlbS1jYWxjKDQ0KSAhZGVmYXVsdDtcbiRoMi1mb250LXNpemU6IHJlbS1jYWxjKDM3KSAhZGVmYXVsdDtcbiRoMy1mb250LXNpemU6IHJlbS1jYWxjKDI3KSAhZGVmYXVsdDtcbiRoNC1mb250LXNpemU6IHJlbS1jYWxjKDIzKSAhZGVmYXVsdDtcbiRoNS1mb250LXNpemU6IHJlbS1jYWxjKDE4KSAhZGVmYXVsdDtcbiRoNi1mb250LXNpemU6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIGhlYWRlciBzaXplIHJlZHVjdGlvbiBvbiBzbWFsbCBzY3JlZW5zXG4kaDEtZm9udC1yZWR1Y3Rpb246IHJlbS1jYWxjKDEwKSAhZGVmYXVsdDtcbiRoMi1mb250LXJlZHVjdGlvbjogcmVtLWNhbGMoMTApICFkZWZhdWx0O1xuJGgzLWZvbnQtcmVkdWN0aW9uOiByZW0tY2FsYyg1KSAhZGVmYXVsdDtcbiRoNC1mb250LXJlZHVjdGlvbjogcmVtLWNhbGMoNSkgIWRlZmF1bHQ7XG4kaDUtZm9udC1yZWR1Y3Rpb246IDAgIWRlZmF1bHQ7XG4kaDYtZm9udC1yZWR1Y3Rpb246IDAgIWRlZmF1bHQ7XG5cbi8vIFRoZXNlIGNvbnRyb2wgaG93IHN1YmhlYWRlcnMgYXJlIHN0eWxlZC5cbiRzdWJoZWFkZXItbGluZS1oZWlnaHQ6IDEuNCAhZGVmYXVsdDtcbiRzdWJoZWFkZXItZm9udC1jb2xvcjogc2NhbGUtY29sb3IoJGhlYWRlci1mb250LWNvbG9yLCAkbGlnaHRuZXNzOiAzNSUpICFkZWZhdWx0O1xuJHN1YmhlYWRlci1mb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcbiRzdWJoZWFkZXItdG9wLW1hcmdpbjogLjJyZW0gIWRlZmF1bHQ7XG4kc3ViaGVhZGVyLWJvdHRvbS1tYXJnaW46IC41cmVtICFkZWZhdWx0O1xuXG4vLyBBIGdlbmVyYWwgPHNtYWxsPiBzdHlsaW5nXG4kc21hbGwtZm9udC1zaXplOiA2MCUgIWRlZmF1bHQ7XG4kc21hbGwtZm9udC1jb2xvcjogc2NhbGUtY29sb3IoJGhlYWRlci1mb250LWNvbG9yLCAkbGlnaHRuZXNzOiAzNSUpICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gc3R5bGUgcGFyYWdyYXBoc1xuJHBhcmFncmFwaC1mb250LWZhbWlseTogaW5oZXJpdCAhZGVmYXVsdDtcbiRwYXJhZ3JhcGgtZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG4kcGFyYWdyYXBoLWZvbnQtc2l6ZTogMXJlbSAhZGVmYXVsdDtcbiRwYXJhZ3JhcGgtbGluZS1oZWlnaHQ6IDEuNiAhZGVmYXVsdDtcbiRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMjApICFkZWZhdWx0O1xuJHBhcmFncmFwaC1hc2lkZS1mb250LXNpemU6IHJlbS1jYWxjKDE0KSAhZGVmYXVsdDtcbiRwYXJhZ3JhcGgtYXNpZGUtbGluZS1oZWlnaHQ6IDEuMzUgIWRlZmF1bHQ7XG4kcGFyYWdyYXBoLWFzaWRlLWZvbnQtc3R5bGU6IGl0YWxpYyAhZGVmYXVsdDtcbiRwYXJhZ3JhcGgtdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHN0eWxlIDxjb2RlPiB0YWdzXG4kY29kZS1jb2xvcjogJG9pbCAhZGVmYXVsdDtcbiRjb2RlLWZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktbW9ub3NwYWNlICFkZWZhdWx0O1xuJGNvZGUtZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG4kY29kZS1iYWNrZ3JvdW5kLWNvbG9yOiBzY2FsZS1jb2xvcigkc2Vjb25kYXJ5LWNvbG9yLCAkbGlnaHRuZXNzOiA3MCUpICFkZWZhdWx0O1xuJGNvZGUtYm9yZGVyLXNpemU6IDFweCAhZGVmYXVsdDtcbiRjb2RlLWJvcmRlci1zdHlsZTogc29saWQgIWRlZmF1bHQ7XG4kY29kZS1ib3JkZXItY29sb3I6IHNjYWxlLWNvbG9yKCRjb2RlLWJhY2tncm91bmQtY29sb3IsICRsaWdodG5lc3M6IC0xMCUpICFkZWZhdWx0O1xuJGNvZGUtcGFkZGluZzogcmVtLWNhbGMoMikgcmVtLWNhbGMoNSkgcmVtLWNhbGMoMSkgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBzdHlsZSBhbmNob3JzXG4kYW5jaG9yLXRleHQtZGVjb3JhdGlvbjogbm9uZSAhZGVmYXVsdDtcbiRhbmNob3ItdGV4dC1kZWNvcmF0aW9uLWhvdmVyOiBub25lICFkZWZhdWx0O1xuJGFuY2hvci1mb250LWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcbiRhbmNob3ItZm9udC1jb2xvci1ob3Zlcjogc2NhbGUtY29sb3IoJGFuY2hvci1mb250LWNvbG9yLCAkbGlnaHRuZXNzOiAtMTQlKSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHN0eWxlIHRoZSA8aHI+IGVsZW1lbnRcbiRoci1ib3JkZXItd2lkdGg6IDFweCAhZGVmYXVsdDtcbiRoci1ib3JkZXItc3R5bGU6IHNvbGlkICFkZWZhdWx0O1xuJGhyLWJvcmRlci1jb2xvcjogJGdhaW5zYm9ybyAhZGVmYXVsdDtcbiRoci1tYXJnaW46IHJlbS1jYWxjKDIwKSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHN0eWxlIGxpc3RzXG4kbGlzdC1mb250LWZhbWlseTogJHBhcmFncmFwaC1mb250LWZhbWlseSAhZGVmYXVsdDtcbiRsaXN0LWZvbnQtc2l6ZTogJHBhcmFncmFwaC1mb250LXNpemUgIWRlZmF1bHQ7XG4kbGlzdC1saW5lLWhlaWdodDogJHBhcmFncmFwaC1saW5lLWhlaWdodCAhZGVmYXVsdDtcbiRsaXN0LW1hcmdpbi1ib3R0b206ICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbSAhZGVmYXVsdDtcbiRsaXN0LXN0eWxlLXBvc2l0aW9uOiBvdXRzaWRlICFkZWZhdWx0O1xuJGxpc3Qtc2lkZS1tYXJnaW46IDEuMXJlbSAhZGVmYXVsdDtcbiRsaXN0LW9yZGVyZWQtc2lkZS1tYXJnaW46IDEuNHJlbSAhZGVmYXVsdDtcbiRsaXN0LXNpZGUtbWFyZ2luLW5vLWJ1bGxldDogMCAhZGVmYXVsdDtcbiRsaXN0LW5lc3RlZC1tYXJnaW46IHJlbS1jYWxjKDIwKSAhZGVmYXVsdDtcbiRkZWZpbml0aW9uLWxpc3QtaGVhZGVyLXdlaWdodDogJGZvbnQtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XG4kZGVmaW5pdGlvbi1saXN0LWhlYWRlci1tYXJnaW4tYm90dG9tOiAuM3JlbSAhZGVmYXVsdDtcbiRkZWZpbml0aW9uLWxpc3QtbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMTIpICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gc3R5bGUgYmxvY2txdW90ZXNcbiRibG9ja3F1b3RlLWZvbnQtY29sb3I6IHNjYWxlLWNvbG9yKCRoZWFkZXItZm9udC1jb2xvciwgJGxpZ2h0bmVzczogMzUlKSAhZGVmYXVsdDtcbiRibG9ja3F1b3RlLXBhZGRpbmc6IHJlbS1jYWxjKDkgMjAgMCAxOSkgIWRlZmF1bHQ7XG4kYmxvY2txdW90ZS1ib3JkZXI6IDFweCBzb2xpZCAkZ2FpbnNib3JvICFkZWZhdWx0O1xuJGJsb2NrcXVvdGUtY2l0ZS1mb250LXNpemU6IHJlbS1jYWxjKDEzKSAhZGVmYXVsdDtcbiRibG9ja3F1b3RlLWNpdGUtZm9udC1jb2xvcjogc2NhbGUtY29sb3IoJGhlYWRlci1mb250LWNvbG9yLCAkbGlnaHRuZXNzOiAyMyUpICFkZWZhdWx0O1xuJGJsb2NrcXVvdGUtY2l0ZS1saW5rLWNvbG9yOiAkYmxvY2txdW90ZS1jaXRlLWZvbnQtY29sb3IgIWRlZmF1bHQ7XG5cbi8vIEFjcm9ueW0gc3R5bGVzXG4kYWNyb255bS11bmRlcmxpbmU6IDFweCBkb3R0ZWQgJGdhaW5zYm9ybyAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgcGFkZGluZyBhbmQgbWFyZ2luXG4kbWljcm9mb3JtYXQtcGFkZGluZzogcmVtLWNhbGMoMTAgMTIpICFkZWZhdWx0O1xuJG1pY3JvZm9ybWF0LW1hcmdpbjogcmVtLWNhbGMoMCAwIDIwIDApICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCB0aGUgYm9yZGVyIHN0eWxlc1xuJG1pY3JvZm9ybWF0LWJvcmRlci13aWR0aDogMXB4ICFkZWZhdWx0O1xuJG1pY3JvZm9ybWF0LWJvcmRlci1zdHlsZTogc29saWQgIWRlZmF1bHQ7XG4kbWljcm9mb3JtYXQtYm9yZGVyLWNvbG9yOiAkZ2FpbnNib3JvICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCBmdWxsIG5hbWUgZm9udCBzdHlsZXNcbiRtaWNyb2Zvcm1hdC1mdWxsbmFtZS1mb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XG4kbWljcm9mb3JtYXQtZnVsbG5hbWUtZm9udC1zaXplOiByZW0tY2FsYygxNSkgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGlzIHRvIGNvbnRyb2wgdGhlIHN1bW1hcnkgZm9udCBzdHlsZXNcbiRtaWNyb2Zvcm1hdC1zdW1tYXJ5LWZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtYm9sZCAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoaXMgdG8gY29udHJvbCBhYmJyIHBhZGRpbmdcbiRtaWNyb2Zvcm1hdC1hYmJyLXBhZGRpbmc6IHJlbS1jYWxjKDAgMSkgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGlzIHRvIGNvbnRyb2wgYWJiciBmb250IHN0eWxlc1xuJG1pY3JvZm9ybWF0LWFiYnItZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ib2xkICFkZWZhdWx0O1xuJG1pY3JvZm9ybWF0LWFiYnItZm9udC1kZWNvcmF0aW9uOiBub25lICFkZWZhdWx0O1xuXG4vLyBUZXh0IGFsaWdubWVudCBjbGFzcyBuYW1lc1xuJGFsaWduLWNsYXNzLW5hbWVzOlxuICBzbWFsbC1vbmx5LFxuICBzbWFsbCxcbiAgbWVkaXVtLW9ubHksXG4gIG1lZGl1bSxcbiAgbGFyZ2Utb25seSxcbiAgbGFyZ2UsXG4gIHhsYXJnZS1vbmx5LFxuICB4bGFyZ2UsXG4gIHh4bGFyZ2Utb25seSxcbiAgeHhsYXJnZTtcblxuLy8gVGV4dCBhbGlnbm1lbnQgYnJlYWtwb2ludHNcbiRhbGlnbi1jbGFzcy1icmVha3BvaW50czpcbiAgJHNtYWxsLW9ubHksXG4gICRzbWFsbC11cCxcbiAgJG1lZGl1bS1vbmx5LFxuICAkbWVkaXVtLXVwLFxuICAkbGFyZ2Utb25seSxcbiAgJGxhcmdlLXVwLFxuICAkeGxhcmdlLW9ubHksXG4gICR4bGFyZ2UtdXAsXG4gICR4eGxhcmdlLW9ubHksXG4gICR4eGxhcmdlLXVwO1xuXG4vLyBHZW5lcmF0ZXMgdGV4dCBhbGlnbiBhbmQganVzdGlmeSBjbGFzc2VzXG5AbWl4aW4gYWxpZ24tY2xhc3Nlc3tcbiAgLnRleHQtbGVmdCAgICB7IHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDsgfVxuICAudGV4dC1yaWdodCAgIHsgdGV4dC1hbGlnbjogcmlnaHQgIWltcG9ydGFudDsgfVxuICAudGV4dC1jZW50ZXIgIHsgdGV4dC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7IH1cbiAgLnRleHQtanVzdGlmeSB7IHRleHQtYWxpZ246IGp1c3RpZnkgIWltcG9ydGFudDsgfVxuXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggbGVuZ3RoKCRhbGlnbi1jbGFzcy1uYW1lcykge1xuICAgIEBtZWRpYSAjeyhudGgoJGFsaWduLWNsYXNzLWJyZWFrcG9pbnRzLCAkaSkpfSB7XG4gICAgICAuI3sobnRoKCRhbGlnbi1jbGFzcy1uYW1lcywgJGkpKX0tdGV4dC1sZWZ0IHsgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50OyB9XG4gICAgICAuI3sobnRoKCRhbGlnbi1jbGFzcy1uYW1lcywgJGkpKX0tdGV4dC1yaWdodCAgIHsgdGV4dC1hbGlnbjogcmlnaHQgIWltcG9ydGFudDsgfVxuICAgICAgLiN7KG50aCgkYWxpZ24tY2xhc3MtbmFtZXMsICRpKSl9LXRleHQtY2VudGVyICB7IHRleHQtYWxpZ246IGNlbnRlciAhaW1wb3J0YW50OyB9XG4gICAgICAuI3sobnRoKCRhbGlnbi1jbGFzcy1uYW1lcywgJGkpKX0tdGV4dC1qdXN0aWZ5IHsgdGV4dC1hbGlnbjoganVzdGlmeSAhaW1wb3J0YW50OyB9XG4gICAgfVxuICB9XG59XG5cbi8vXG4vLyBUeXBvZ3JhcGh5IFBsYWNlaG9sZGVyc1xuLy9cblxuLy8gVGhlc2Ugd2lsbCB0aHJvdyBhIGRlcHJlY2F0aW9uIHdhcm5pbmcgaWYgdXNlZCB3aXRoaW4gYSBtZWRpYSBxdWVyeS5cbkBtaXhpbiBsZWFkIHtcbiAgZm9udC1zaXplOiAkcGFyYWdyYXBoLWZvbnQtc2l6ZSArIHJlbS1jYWxjKDMuNSk7XG4gIGxpbmUtaGVpZ2h0OiAxLjY7XG59XG5cbkBtaXhpbiBzdWJoZWFkZXIge1xuICBsaW5lLWhlaWdodDogJHN1YmhlYWRlci1saW5lLWhlaWdodDtcbiAgY29sb3I6ICRzdWJoZWFkZXItZm9udC1jb2xvcjtcbiAgZm9udC13ZWlnaHQ6ICRzdWJoZWFkZXItZm9udC13ZWlnaHQ7XG4gIG1hcmdpbi10b3A6ICRzdWJoZWFkZXItdG9wLW1hcmdpbjtcbiAgbWFyZ2luLWJvdHRvbTogJHN1YmhlYWRlci1ib3R0b20tbWFyZ2luO1xufVxuQGluY2x1ZGUgZXhwb3J0cyhcInR5cGVcIikge1xuICBAaWYgJGluY2x1ZGUtaHRtbC10eXBlLWNsYXNzZXMge1xuICAgIC8vIFJlc3BvbnNpdmUgVGV4dCBhbGlnbm1lbnRcbiAgICBAaW5jbHVkZSBhbGlnbi1jbGFzc2VzO1xuXG4gICAgLyogVHlwb2dyYXBoeSByZXNldHMgKi9cbiAgICBkaXYsXG4gICAgZGwsXG4gICAgZHQsXG4gICAgZGQsXG4gICAgdWwsXG4gICAgb2wsXG4gICAgbGksXG4gICAgaDEsXG4gICAgaDIsXG4gICAgaDMsXG4gICAgaDQsXG4gICAgaDUsXG4gICAgaDYsXG4gICAgcHJlLFxuICAgIGZvcm0sXG4gICAgcCxcbiAgICBibG9ja3F1b3RlLFxuICAgIHRoLFxuICAgIHRkIHtcbiAgICAgIG1hcmdpbjowO1xuICAgICAgcGFkZGluZzowO1xuICAgIH1cblxuICAgIC8qIERlZmF1bHQgTGluayBTdHlsZXMgKi9cbiAgICBhIHtcbiAgICAgIGNvbG9yOiAkYW5jaG9yLWZvbnQtY29sb3I7XG4gICAgICB0ZXh0LWRlY29yYXRpb246ICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uO1xuICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG5cbiAgICAgICY6aG92ZXIsXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgY29sb3I6ICRhbmNob3ItZm9udC1jb2xvci1ob3ZlcjtcbiAgICAgICAgQGlmICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uLWhvdmVyICE9ICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uIHtcbiAgICAgICAgXHR0ZXh0LWRlY29yYXRpb246ICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uLWhvdmVyO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGltZyB7IGJvcmRlcjpub25lOyB9XG4gICAgfVxuXG4gICAgLyogRGVmYXVsdCBwYXJhZ3JhcGggc3R5bGVzICovXG4gICAgcCB7XG4gICAgICBmb250LWZhbWlseTogJHBhcmFncmFwaC1mb250LWZhbWlseTtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkcGFyYWdyYXBoLWZvbnQtd2VpZ2h0O1xuICAgICAgZm9udC1zaXplOiAkcGFyYWdyYXBoLWZvbnQtc2l6ZTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAkcGFyYWdyYXBoLWxpbmUtaGVpZ2h0O1xuICAgICAgbWFyZ2luLWJvdHRvbTogJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tO1xuICAgICAgdGV4dC1yZW5kZXJpbmc6ICRwYXJhZ3JhcGgtdGV4dC1yZW5kZXJpbmc7XG5cbiAgICAgICYubGVhZCB7IEBpbmNsdWRlIGxlYWQ7IH1cblxuICAgICAgJiBhc2lkZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogJHBhcmFncmFwaC1hc2lkZS1mb250LXNpemU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkcGFyYWdyYXBoLWFzaWRlLWxpbmUtaGVpZ2h0O1xuICAgICAgICBmb250LXN0eWxlOiAkcGFyYWdyYXBoLWFzaWRlLWZvbnQtc3R5bGU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyogRGVmYXVsdCBoZWFkZXIgc3R5bGVzICovXG4gICAgaDEsIGgyLCBoMywgaDQsIGg1LCBoNiB7XG4gICAgICBmb250LWZhbWlseTogJGhlYWRlci1mb250LWZhbWlseTtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkaGVhZGVyLWZvbnQtd2VpZ2h0O1xuICAgICAgZm9udC1zdHlsZTogJGhlYWRlci1mb250LXN0eWxlO1xuICAgICAgY29sb3I6ICRoZWFkZXItZm9udC1jb2xvcjtcbiAgICAgIHRleHQtcmVuZGVyaW5nOiAkaGVhZGVyLXRleHQtcmVuZGVyaW5nO1xuICAgICAgbWFyZ2luLXRvcDogJGhlYWRlci10b3AtbWFyZ2luO1xuICAgICAgbWFyZ2luLWJvdHRvbTogJGhlYWRlci1ib3R0b20tbWFyZ2luO1xuICAgICAgbGluZS1oZWlnaHQ6ICRoZWFkZXItbGluZS1oZWlnaHQ7XG5cbiAgICAgIHNtYWxsIHtcbiAgICAgICAgZm9udC1zaXplOiAkc21hbGwtZm9udC1zaXplO1xuICAgICAgICBjb2xvcjogJHNtYWxsLWZvbnQtY29sb3I7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIGgxIHsgZm9udC1zaXplOiAkaDEtZm9udC1zaXplIC0gJGgxLWZvbnQtcmVkdWN0aW9uOyB9XG4gICAgaDIgeyBmb250LXNpemU6ICRoMi1mb250LXNpemUgLSAkaDItZm9udC1yZWR1Y3Rpb247IH1cbiAgICBoMyB7IGZvbnQtc2l6ZTogJGgzLWZvbnQtc2l6ZSAtICRoMy1mb250LXJlZHVjdGlvbjsgfVxuICAgIGg0IHsgZm9udC1zaXplOiAkaDQtZm9udC1zaXplIC0gJGg0LWZvbnQtcmVkdWN0aW9uOyB9XG4gICAgaDUgeyBmb250LXNpemU6ICRoNS1mb250LXNpemUgLSAkaDUtZm9udC1yZWR1Y3Rpb247IH1cbiAgICBoNiB7IGZvbnQtc2l6ZTogJGg2LWZvbnQtc2l6ZSAtICRoNi1mb250LXJlZHVjdGlvbjsgfVxuXG4gICAgLnN1YmhlYWRlciB7IEBpbmNsdWRlIHN1YmhlYWRlcjsgfVxuXG4gICAgaHIge1xuICAgICAgYm9yZGVyOiAkaHItYm9yZGVyLXN0eWxlICRoci1ib3JkZXItY29sb3I7XG4gICAgICBib3JkZXItd2lkdGg6ICRoci1ib3JkZXItd2lkdGggMCAwO1xuICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICBtYXJnaW46ICRoci1tYXJnaW4gMCAoJGhyLW1hcmdpbiAtIHJlbS1jYWxjKCRoci1ib3JkZXItd2lkdGgpKTtcbiAgICAgIGhlaWdodDogMDtcbiAgICB9XG5cbiAgICAvKiBIZWxwZnVsIFR5cG9ncmFwaHkgRGVmYXVsdHMgKi9cbiAgICBlbSxcbiAgICBpIHtcbiAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgIH1cblxuICAgIHN0cm9uZyxcbiAgICBiIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtYm9sZDtcbiAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgIH1cblxuICAgIHNtYWxsIHtcbiAgICAgIGZvbnQtc2l6ZTogJHNtYWxsLWZvbnQtc2l6ZTtcbiAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgIH1cblxuICAgIGNvZGUge1xuICAgICAgZm9udC1mYW1pbHk6ICRjb2RlLWZvbnQtZmFtaWx5O1xuICAgICAgZm9udC13ZWlnaHQ6ICRjb2RlLWZvbnQtd2VpZ2h0O1xuICAgICAgY29sb3I6ICRjb2RlLWNvbG9yO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvZGUtYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci13aWR0aDogJGNvZGUtYm9yZGVyLXNpemU7XG4gICAgICBib3JkZXItc3R5bGU6ICRjb2RlLWJvcmRlci1zdHlsZTtcbiAgICAgIGJvcmRlci1jb2xvcjogJGNvZGUtYm9yZGVyLWNvbG9yO1xuICAgICAgcGFkZGluZzogJGNvZGUtcGFkZGluZztcbiAgICB9XG5cbiAgICAvKiBMaXN0cyAqL1xuICAgIHVsLFxuICAgIG9sLFxuICAgIGRsIHtcbiAgICAgIGZvbnQtc2l6ZTogJGxpc3QtZm9udC1zaXplO1xuICAgICAgbGluZS1oZWlnaHQ6ICRsaXN0LWxpbmUtaGVpZ2h0O1xuICAgICAgbWFyZ2luLWJvdHRvbTogJGxpc3QtbWFyZ2luLWJvdHRvbTtcbiAgICAgIGxpc3Qtc3R5bGUtcG9zaXRpb246ICRsaXN0LXN0eWxlLXBvc2l0aW9uO1xuICAgICAgZm9udC1mYW1pbHk6ICRsaXN0LWZvbnQtZmFtaWx5O1xuICAgIH1cblxuICAgIHVsIHtcbiAgICAgIG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogJGxpc3Qtc2lkZS1tYXJnaW47XG4gICAgICAmLm5vLWJ1bGxldCB7XG4gICAgICAgIG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogJGxpc3Qtc2lkZS1tYXJnaW4tbm8tYnVsbGV0O1xuICAgICAgICBsaSB7XG4gICAgICAgICAgdWwsXG4gICAgICAgICAgb2wge1xuICAgICAgICAgICAgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiAkbGlzdC1uZXN0ZWQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyogVW5vcmRlcmVkIExpc3RzICovXG4gICAgdWwge1xuICAgICAgbGkge1xuICAgICAgICB1bCxcbiAgICAgICAgb2wge1xuICAgICAgICAgIG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogJGxpc3QtbmVzdGVkLW1hcmdpbjtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAmLnNxdWFyZSxcbiAgICAgICYuY2lyY2xlLFxuICAgICAgJi5kaXNjIHtcbiAgICAgICAgbGkgdWwgeyBsaXN0LXN0eWxlOiBpbmhlcml0OyB9XG4gICAgICB9XG5cbiAgICAgICYuc3F1YXJlIHsgbGlzdC1zdHlsZS10eXBlOiBzcXVhcmU7IG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogJGxpc3Qtc2lkZS1tYXJnaW47fVxuICAgICAgJi5jaXJjbGUgeyBsaXN0LXN0eWxlLXR5cGU6IGNpcmNsZTsgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiAkbGlzdC1zaWRlLW1hcmdpbjt9XG4gICAgICAmLmRpc2MgeyBsaXN0LXN0eWxlLXR5cGU6IGRpc2M7IG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogJGxpc3Qtc2lkZS1tYXJnaW47fVxuICAgICAgJi5uby1idWxsZXQgeyBsaXN0LXN0eWxlOiBub25lOyB9XG4gICAgfVxuXG4gICAgLyogT3JkZXJlZCBMaXN0cyAqL1xuICAgIG9sIHtcbiAgICAgIG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogJGxpc3Qtb3JkZXJlZC1zaWRlLW1hcmdpbjtcbiAgICAgIGxpIHtcbiAgICAgICAgdWwsXG4gICAgICAgIG9sIHtcbiAgICAgICAgICBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06ICRsaXN0LW5lc3RlZC1tYXJnaW47XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8qIERlZmluaXRpb24gTGlzdHMgKi9cbiAgICBkbCB7XG4gICAgICBkdCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRkZWZpbml0aW9uLWxpc3QtaGVhZGVyLW1hcmdpbi1ib3R0b207XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkZGVmaW5pdGlvbi1saXN0LWhlYWRlci13ZWlnaHQ7XG4gICAgICB9XG4gICAgICBkZCB7IG1hcmdpbi1ib3R0b206ICRkZWZpbml0aW9uLWxpc3QtbWFyZ2luLWJvdHRvbTsgfVxuICAgIH1cblxuICAgIC8qIEFiYnJldmlhdGlvbnMgKi9cbiAgICBhYmJyLFxuICAgIGFjcm9ueW0ge1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIGZvbnQtc2l6ZTogOTAlO1xuICAgICAgY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XG4gICAgICBjdXJzb3I6ICRjdXJzb3ItaGVscC12YWx1ZTtcbiAgICB9XG4gICAgYWJiciB7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICZbdGl0bGVdIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJGFjcm9ueW0tdW5kZXJsaW5lO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qIEJsb2NrcXVvdGVzICovXG4gICAgYmxvY2txdW90ZSB7XG4gICAgICBtYXJnaW46IDAgMCAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b207XG4gICAgICBwYWRkaW5nOiAkYmxvY2txdW90ZS1wYWRkaW5nO1xuICAgICAgYm9yZGVyLSN7JGRlZmF1bHQtZmxvYXR9OiAkYmxvY2txdW90ZS1ib3JkZXI7XG5cbiAgICAgIGNpdGUge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZm9udC1zaXplOiAkYmxvY2txdW90ZS1jaXRlLWZvbnQtc2l6ZTtcbiAgICAgICAgY29sb3I6ICRibG9ja3F1b3RlLWNpdGUtZm9udC1jb2xvcjtcbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgIGNvbnRlbnQ6IFwiXFwyMDE0IFxcMDAyMFwiO1xuICAgICAgICB9XG5cbiAgICAgICAgYSxcbiAgICAgICAgYTp2aXNpdGVkIHtcbiAgICAgICAgICBjb2xvcjogJGJsb2NrcXVvdGUtY2l0ZS1saW5rLWNvbG9yO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGJsb2NrcXVvdGUsXG4gICAgYmxvY2txdW90ZSBwIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiAkcGFyYWdyYXBoLWxpbmUtaGVpZ2h0O1xuICAgICAgY29sb3I6ICRibG9ja3F1b3RlLWZvbnQtY29sb3I7XG4gICAgfVxuXG4gICAgLyogTWljcm9mb3JtYXRzICovXG4gICAgLnZjYXJkIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIG1hcmdpbjogJG1pY3JvZm9ybWF0LW1hcmdpbjtcbiAgICAgIGJvcmRlcjogJG1pY3JvZm9ybWF0LWJvcmRlci13aWR0aCAkbWljcm9mb3JtYXQtYm9yZGVyLXN0eWxlICRtaWNyb2Zvcm1hdC1ib3JkZXItY29sb3I7XG4gICAgICBwYWRkaW5nOiAkbWljcm9mb3JtYXQtcGFkZGluZztcblxuICAgICAgbGkge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgICAgLmZuIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRtaWNyb2Zvcm1hdC1mdWxsbmFtZS1mb250LXdlaWdodDtcbiAgICAgICAgZm9udC1zaXplOiAkbWljcm9mb3JtYXQtZnVsbG5hbWUtZm9udC1zaXplO1xuICAgICAgfVxuICAgIH1cblxuICAgIC52ZXZlbnQge1xuICAgICAgLnN1bW1hcnkgeyBmb250LXdlaWdodDogJG1pY3JvZm9ybWF0LXN1bW1hcnktZm9udC13ZWlnaHQ7IH1cblxuICAgICAgYWJiciB7XG4gICAgICAgIGN1cnNvcjogJGN1cnNvci1kZWZhdWx0LXZhbHVlO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246ICRtaWNyb2Zvcm1hdC1hYmJyLWZvbnQtZGVjb3JhdGlvbjtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRtaWNyb2Zvcm1hdC1hYmJyLWZvbnQtd2VpZ2h0O1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6ICRtaWNyb2Zvcm1hdC1hYmJyLXBhZGRpbmc7XG4gICAgICB9XG4gICAgfVxuXG5cbiAgICBAbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgICBoMSxoMixoMyxoNCxoNSxoNiB7IGxpbmUtaGVpZ2h0OiAkaGVhZGVyLWxpbmUtaGVpZ2h0OyB9XG4gICAgICBoMSB7IGZvbnQtc2l6ZTogJGgxLWZvbnQtc2l6ZTsgfVxuICAgICAgaDIgeyBmb250LXNpemU6ICRoMi1mb250LXNpemU7IH1cbiAgICAgIGgzIHsgZm9udC1zaXplOiAkaDMtZm9udC1zaXplOyB9XG4gICAgICBoNCB7IGZvbnQtc2l6ZTogJGg0LWZvbnQtc2l6ZTsgfVxuICAgICAgaDUgeyBmb250LXNpemU6ICRoNS1mb250LXNpemU7IH1cbiAgICAgIGg2IHsgZm9udC1zaXplOiAkaDYtZm9udC1zaXplOyB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AaW1wb3J0IFwiZ2xvYmFsXCI7XG5cbi8vXG4vLyBGb3VuZGF0aW9uIFZpc2liaWxpdHkgQ2xhc3Nlc1xuLy9cbiRpbmNsdWRlLWh0bWwtdmlzaWJpbGl0eS1jbGFzc2VzOiAkaW5jbHVkZS1odG1sLWNsYXNzZXMgIWRlZmF1bHQ7XG4kaW5jbHVkZS1hY2Nlc3NpYmlsaXR5LWNsYXNzZXM6IHRydWUgIWRlZmF1bHQ7XG4kaW5jbHVkZS10YWJsZS12aXNpYmlsaXR5LWNsYXNzZXM6IHRydWUgIWRlZmF1bHQ7XG4kaW5jbHVkZS1sZWdhY3ktdmlzaWJpbGl0eS1jbGFzc2VzOiB0cnVlICFkZWZhdWx0O1xuXG4vL1xuLy8gTWVkaWEgQ2xhc3MgTmFtZXNcbi8vXG4vLyBWaXNpYmlsaXR5IEJyZWFrcG9pbnRzXG4kdmlzaWJpbGl0eS1icmVha3BvaW50LXNpemVzOlxuICBzbWFsbCxcbiAgbWVkaXVtLFxuICBsYXJnZSxcbiAgeGxhcmdlLFxuICB4eGxhcmdlO1xuXG4kdmlzaWJpbGl0eS1icmVha3BvaW50LXF1ZXJpZXM6XG4gIHVucXVvdGUoJHNtYWxsLXVwKSxcbiAgdW5xdW90ZSgkbWVkaXVtLXVwKSxcbiAgdW5xdW90ZSgkbGFyZ2UtdXApLFxuICB1bnF1b3RlKCR4bGFyZ2UtdXApLFxuICB1bnF1b3RlKCR4eGxhcmdlLXVwKTtcblxuQG1peGluIHZpc2liaWxpdHktbG9vcCB7XG4gIEBlYWNoICRjdXJyZW50LXZpc2liaWxpdHktYnJlYWtwb2ludCBpbiAkdmlzaWJpbGl0eS1icmVha3BvaW50LXNpemVzIHtcbiAgICAkdmlzaWJpbGl0eS1pbmhlcml0LWxpc3Q6ICgpO1xuICAgICR2aXNpYmlsaXR5LW5vbmUtbGlzdDogKCk7XG5cbiAgICAkdmlzaWJpbGl0eS12aXNpYmxlLWxpc3Q6ICgpO1xuICAgICR2aXNpYmlsaXR5LWhpZGRlbi1saXN0OiAoKTtcblxuICAgICR2aXNpYmlsaXR5LXRhYmxlLWxpc3Q6ICgpO1xuICAgICR2aXNpYmlsaXR5LXRhYmxlLWhlYWRlci1ncm91cC1saXN0OiAoKTtcbiAgICAkdmlzaWJpbGl0eS10YWJsZS1yb3ctZ3JvdXAtbGlzdDogKCk7XG4gICAgJHZpc2liaWxpdHktdGFibGUtcm93LWxpc3Q6ICgpO1xuICAgICR2aXNpYmlsaXR5LXRhYmxlLWNlbGwtbGlzdDogKCk7XG5cbiAgICBAZWFjaCAkdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnQgaW4gJHZpc2liaWxpdHktYnJlYWtwb2ludC1zaXplcyB7XG4gICAgICBAaWYgaW5kZXgoJHZpc2liaWxpdHktYnJlYWtwb2ludC1zaXplcywgJHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50KSA8IGluZGV4KCR2aXNpYmlsaXR5LWJyZWFrcG9pbnQtc2l6ZXMsICRjdXJyZW50LXZpc2liaWxpdHktYnJlYWtwb2ludCkge1xuICAgICAgICAvLyBTbWFsbGVyIHRoYW4gY3VycmVudCBicmVha3BvaW50XG5cbiAgICAgICAgJHZpc2liaWxpdHktaW5oZXJpdC1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktaW5oZXJpdC1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICcuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIC5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgJHZpc2liaWxpdHktbm9uZS1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktbm9uZS1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICcuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgJHZpc2liaWxpdHktdmlzaWJsZS1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdmlzaWJsZS1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICcuaGlkZGVuLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgLnZpc2libGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAkdmlzaWJpbGl0eS1oaWRkZW4tbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LWhpZGRlbi1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICcudmlzaWJsZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIC5oaWRkZW4tZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAndGFibGUuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIHRhYmxlLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1oZWFkZXItZ3JvdXAtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLWhlYWRlci1ncm91cC1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICd0aGVhZC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgdGhlYWQuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwJ1xuICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLXJvdy1ncm91cC1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtcm93LWdyb3VwLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgJ3Rib2R5LmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCB0Ym9keS5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgJHZpc2liaWxpdHktdGFibGUtcm93LWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1yb3ctbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAndHIuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIHRyLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1jZWxsLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1jZWxsLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgJ3RoLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCB0ZC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgdGguc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwLCB0ZC5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcblxuICAgICAgICAvLyBGb3VuZGF0aW9uIDQgY29tcGF0aWJpbGl0eTpcbiAgICAgICAgLy8gSW5jbHVkZSAuc2hvdy9oaWRlLWZvci1bc2l6ZV0gYW5kIC5zaG93L2hpZGUtZm9yLVtzaXplXS1kb3duIGNsYXNzZXNcbiAgICAgICAgLy8gZm9yIHNtYWxsLCBtZWRpdW0sIGFuZCBsYXJnZSBicmVha3BvaW50cyBvbmx5XG4gICAgICAgIEBpZiAkaW5jbHVkZS1sZWdhY3ktdmlzaWJpbGl0eS1jbGFzc2VzIGFuZCBpbmRleCgoc21hbGwsIG1lZGl1bSwgbGFyZ2UpLCAkdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnQpICE9IGZhbHNlIHtcbiAgICAgICAgICAkdmlzaWJpbGl0eS1pbmhlcml0LWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS1pbmhlcml0LWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAnLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgICAkdmlzaWJpbGl0eS1ub25lLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS1ub25lLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAnLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgICAkdmlzaWJpbGl0eS12aXNpYmxlLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS12aXNpYmxlLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAnLmhpZGRlbi1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCAuaGlkZGVuLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93bidcbiAgICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICAgJHZpc2liaWxpdHktaGlkZGVuLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS1oaWRkZW4tbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAgICcudmlzaWJsZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCAudmlzaWJsZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICAgJ3RhYmxlLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgdGFibGUuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLWhlYWRlci1ncm91cC1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtaGVhZGVyLWdyb3VwLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAndGhlYWQuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCB0aGVhZC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93bidcbiAgICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICAgJHZpc2liaWxpdHktdGFibGUtcm93LWdyb3VwLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1yb3ctZ3JvdXAtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAgICd0Ym9keS5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIHRib2R5LmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1yb3ctbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLXJvdy1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICAgJ3RyLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgdHIuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLWNlbGwtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLWNlbGwtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAgICd0aC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIHRkLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgdGguaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24sIHRkLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgfVxuXG4gICAgICB9IEBlbHNlIGlmIGluZGV4KCR2aXNpYmlsaXR5LWJyZWFrcG9pbnQtc2l6ZXMsICR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludCkgPiBpbmRleCgkdmlzaWJpbGl0eS1icmVha3BvaW50LXNpemVzLCAkY3VycmVudC12aXNpYmlsaXR5LWJyZWFrcG9pbnQpIHtcbiAgICAgICAgLy8gTGFyZ2VyIHRoYW4gY3VycmVudCBicmVha3BvaW50XG5cbiAgICAgICAgJHZpc2liaWxpdHktaW5oZXJpdC1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktaW5oZXJpdC1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICcuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgJHZpc2liaWxpdHktbm9uZS1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktbm9uZS1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICcuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIC5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgJHZpc2liaWxpdHktdmlzaWJsZS1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdmlzaWJsZS1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICcuaGlkZGVuLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgLmhpZGRlbi1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwJ1xuICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICR2aXNpYmlsaXR5LWhpZGRlbi1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktaGlkZGVuLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgJy52aXNpYmxlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgLnZpc2libGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAndGFibGUuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIHRhYmxlLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1oZWFkZXItZ3JvdXAtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLWhlYWRlci1ncm91cC1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICd0aGVhZC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgdGhlYWQuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwJ1xuICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLXJvdy1ncm91cC1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtcm93LWdyb3VwLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgJ3Rib2R5LmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCB0Ym9keS5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgJHZpc2liaWxpdHktdGFibGUtcm93LWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1yb3ctbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAndHIuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIHRyLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1jZWxsLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1jZWxsLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgJ3RoLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCB0ZC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgdGguaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwLCB0ZC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcblxuICAgICAgICAvLyBGb3VuZGF0aW9uIDQgY29tcGF0aWJpbGl0eTpcbiAgICAgICAgLy8gSW5jbHVkZSAuc2hvdy9oaWRlLWZvci1bc2l6ZV0gYW5kIC5zaG93L2hpZGUtZm9yLVtzaXplXS1kb3duIGNsYXNzZXNcbiAgICAgICAgLy8gZm9yIHNtYWxsLCBtZWRpdW0sIGFuZCBsYXJnZSBicmVha3BvaW50cyBvbmx5XG4gICAgICAgIEBpZiAkaW5jbHVkZS1sZWdhY3ktdmlzaWJpbGl0eS1jbGFzc2VzIGFuZCBpbmRleCgoc21hbGwsIG1lZGl1bSwgbGFyZ2UpLCAkdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnQpICE9IGZhbHNlIHtcbiAgICAgICAgICAkdmlzaWJpbGl0eS1pbmhlcml0LWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS1pbmhlcml0LWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAnLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgICAkdmlzaWJpbGl0eS1ub25lLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS1ub25lLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAnLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgICAkdmlzaWJpbGl0eS12aXNpYmxlLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS12aXNpYmxlLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAnLmhpZGRlbi1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCAudmlzaWJsZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAgICR2aXNpYmlsaXR5LWhpZGRlbi1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktaGlkZGVuLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAnLnZpc2libGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgLmhpZGRlbi1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICAgJ3RhYmxlLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgdGFibGUuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLWhlYWRlci1ncm91cC1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtaGVhZGVyLWdyb3VwLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAndGhlYWQuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCB0aGVhZC5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93bidcbiAgICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICAgJHZpc2liaWxpdHktdGFibGUtcm93LWdyb3VwLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1yb3ctZ3JvdXAtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAgICd0Ym9keS5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIHRib2R5LnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1yb3ctbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLXJvdy1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICAgJ3RyLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgdHIuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLWNlbGwtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLWNlbGwtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAgICd0aC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIHRkLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgdGguc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24sIHRkLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgfVxuXG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgLy8gQ3VycmVudCBicmVha3BvaW50XG5cbiAgICAgICAgJHZpc2liaWxpdHktaW5oZXJpdC1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktaW5oZXJpdC1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICcuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIC5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgJHZpc2liaWxpdHktbm9uZS1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktbm9uZS1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICcuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgJHZpc2liaWxpdHktdmlzaWJsZS1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdmlzaWJsZS1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICcudmlzaWJsZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIC52aXNpYmxlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgJHZpc2liaWxpdHktaGlkZGVuLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS1oaWRkZW4tbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAnLmhpZGRlbi1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIC5oaWRkZW4tZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAndGFibGUuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIHRhYmxlLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1oZWFkZXItZ3JvdXAtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLWhlYWRlci1ncm91cC1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICd0aGVhZC5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgdGhlYWQuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwJ1xuICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLXJvdy1ncm91cC1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtcm93LWdyb3VwLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgJ3Rib2R5LnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCB0Ym9keS5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgJHZpc2liaWxpdHktdGFibGUtcm93LWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1yb3ctbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAndHIuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIHRyLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1jZWxsLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1jZWxsLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgJ3RoLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCB0ZC5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgdGguc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwLCB0ZC5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcblxuICAgICAgICAvLyBGb3VuZGF0aW9uIDQgY29tcGF0aWJpbGl0eTpcbiAgICAgICAgLy8gSW5jbHVkZSAuc2hvdy9oaWRlLWZvci1bc2l6ZV0gYW5kIC5zaG93L2hpZGUtZm9yLVtzaXplXS1kb3duIGNsYXNzZXNcbiAgICAgICAgLy8gZm9yIHNtYWxsLCBtZWRpdW0sIGFuZCBsYXJnZSBicmVha3BvaW50cyBvbmx5XG4gICAgICAgIEBpZiAkaW5jbHVkZS1sZWdhY3ktdmlzaWJpbGl0eS1jbGFzc2VzIGFuZCBpbmRleCgoc21hbGwsIG1lZGl1bSwgbGFyZ2UpLCAkdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnQpICE9IGZhbHNlIHtcbiAgICAgICAgICAkdmlzaWJpbGl0eS1pbmhlcml0LWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS1pbmhlcml0LWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAnLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgICAkdmlzaWJpbGl0eS1ub25lLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS1ub25lLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAnLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgICAkdmlzaWJpbGl0eS12aXNpYmxlLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS12aXNpYmxlLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAnLnZpc2libGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgLnZpc2libGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgICAkdmlzaWJpbGl0eS1oaWRkZW4tbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LWhpZGRlbi1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICAgJy5oaWRkZW4tZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgLmhpZGRlbi1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICAgJ3RhYmxlLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgdGFibGUuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLWhlYWRlci1ncm91cC1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtaGVhZGVyLWdyb3VwLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAndGhlYWQuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCB0aGVhZC5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93bidcbiAgICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICAgJHZpc2liaWxpdHktdGFibGUtcm93LWdyb3VwLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1yb3ctZ3JvdXAtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAgICd0Ym9keS5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIHRib2R5LnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1yb3ctbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLXJvdy1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICAgJ3RyLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgdHIuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLWNlbGwtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLWNlbGwtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAgICd0aC5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIHRkLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgdGguc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24sIHRkLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8qICN7JGN1cnJlbnQtdmlzaWJpbGl0eS1icmVha3BvaW50fSBkaXNwbGF5cyAqL1xuICAgIEBtZWRpYSAje250aCgkdmlzaWJpbGl0eS1icmVha3BvaW50LXF1ZXJpZXMsIGluZGV4KCR2aXNpYmlsaXR5LWJyZWFrcG9pbnQtc2l6ZXMsICRjdXJyZW50LXZpc2liaWxpdHktYnJlYWtwb2ludCkpfSB7XG4gICAgICAjeyR2aXNpYmlsaXR5LWluaGVyaXQtbGlzdH0ge1xuICAgICAgICBkaXNwbGF5OiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgICAjeyR2aXNpYmlsaXR5LW5vbmUtbGlzdH0ge1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgICBAaWYgJGluY2x1ZGUtYWNjZXNzaWJpbGl0eS1jbGFzc2VzICE9IGZhbHNlIHtcbiAgICAgICAgI3skdmlzaWJpbGl0eS12aXNpYmxlLWxpc3R9IHtcbiAgICAgICAgICBAaW5jbHVkZSBlbGVtZW50LWludmlzaWJsZS1vZmY7XG4gICAgICAgIH1cbiAgICAgICAgI3skdmlzaWJpbGl0eS1oaWRkZW4tbGlzdH0ge1xuICAgICAgICAgIEBpbmNsdWRlIGVsZW1lbnQtaW52aXNpYmxlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAaWYgJGluY2x1ZGUtdGFibGUtdmlzaWJpbGl0eS1jbGFzc2VzICE9IGZhbHNlIHtcbiAgICAgICAgI3skdmlzaWJpbGl0eS10YWJsZS1saXN0fSB7XG4gICAgICAgICAgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgICAjeyR2aXNpYmlsaXR5LXRhYmxlLWhlYWRlci1ncm91cC1saXN0fSB7XG4gICAgICAgICAgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgICAgI3skdmlzaWJpbGl0eS10YWJsZS1yb3ctZ3JvdXAtbGlzdH0ge1xuICAgICAgICAgIGRpc3BsYXk6IHRhYmxlLXJvdy1ncm91cCAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICAgICN7JHZpc2liaWxpdHktdGFibGUtcm93LWxpc3R9IHtcbiAgICAgICAgICBkaXNwbGF5OiB0YWJsZS1yb3c7XG4gICAgICAgIH1cbiAgICAgICAgI3skdmlzaWJpbGl0eS10YWJsZS1jZWxsLWxpc3R9IHtcbiAgICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuXG5AaWYgJGluY2x1ZGUtaHRtbC12aXNpYmlsaXR5LWNsYXNzZXMgIT0gZmFsc2Uge1xuXG4gIEBpbmNsdWRlIHZpc2liaWxpdHktbG9vcDtcblxuICAvKiBPcmllbnRhdGlvbiB0YXJnZXRpbmcgKi9cbiAgLnNob3ctZm9yLWxhbmRzY2FwZSxcbiAgLmhpZGUtZm9yLXBvcnRyYWl0IHsgZGlzcGxheTogaW5oZXJpdCAhaW1wb3J0YW50OyB9XG4gIC5oaWRlLWZvci1sYW5kc2NhcGUsXG4gIC5zaG93LWZvci1wb3J0cmFpdCB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4gIC8qIFNwZWNpZmljIHZpc2liaWxpdHkgZm9yIHRhYmxlcyAqL1xuICB0YWJsZSB7XG4gICAgJi5oaWRlLWZvci1sYW5kc2NhcGUsXG4gICAgJi5zaG93LWZvci1wb3J0cmFpdCB7IGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7IH1cbiAgfVxuICB0aGVhZCB7XG4gICAgJi5oaWRlLWZvci1sYW5kc2NhcGUsXG4gICAgJi5zaG93LWZvci1wb3J0cmFpdCB7IGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cCAhaW1wb3J0YW50OyB9XG4gIH1cbiAgdGJvZHkge1xuICAgICYuaGlkZS1mb3ItbGFuZHNjYXBlLFxuICAgICYuc2hvdy1mb3ItcG9ydHJhaXQgeyBkaXNwbGF5OiB0YWJsZS1yb3ctZ3JvdXAgIWltcG9ydGFudDsgfVxuICB9XG4gIHRyIHtcbiAgICAmLmhpZGUtZm9yLWxhbmRzY2FwZSxcbiAgICAmLnNob3ctZm9yLXBvcnRyYWl0IHsgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQ7IH1cbiAgfVxuICB0ZCxcbiAgdGgge1xuICAgICYuaGlkZS1mb3ItbGFuZHNjYXBlLFxuICAgICYuc2hvdy1mb3ItcG9ydHJhaXQgeyBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cbiAgfVxuXG4gIEBtZWRpYSAjeyRsYW5kc2NhcGV9IHtcbiAgICAuc2hvdy1mb3ItbGFuZHNjYXBlLFxuICAgIC5oaWRlLWZvci1wb3J0cmFpdCB7IGRpc3BsYXk6IGluaGVyaXQgIWltcG9ydGFudDsgfVxuICAgIC5oaWRlLWZvci1sYW5kc2NhcGUsXG4gICAgLnNob3ctZm9yLXBvcnRyYWl0IHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbiAgICAvKiBTcGVjaWZpYyB2aXNpYmlsaXR5IGZvciB0YWJsZXMgKi9cbiAgICB0YWJsZSB7XG4gICAgICAmLnNob3ctZm9yLWxhbmRzY2FwZSxcbiAgICAgICYuaGlkZS1mb3ItcG9ydHJhaXQgeyBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50OyB9XG4gICAgfVxuICAgIHRoZWFkIHtcbiAgICAgICYuc2hvdy1mb3ItbGFuZHNjYXBlLFxuICAgICAgJi5oaWRlLWZvci1wb3J0cmFpdCB7IGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cCAhaW1wb3J0YW50OyB9XG4gICAgfVxuICAgIHRib2R5IHtcbiAgICAgICYuc2hvdy1mb3ItbGFuZHNjYXBlLFxuICAgICAgJi5oaWRlLWZvci1wb3J0cmFpdCB7IGRpc3BsYXk6IHRhYmxlLXJvdy1ncm91cCAhaW1wb3J0YW50OyB9XG4gICAgfVxuICAgIHRyIHtcbiAgICAgICYuc2hvdy1mb3ItbGFuZHNjYXBlLFxuICAgICAgJi5oaWRlLWZvci1wb3J0cmFpdCB7IGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50OyB9XG4gICAgfVxuICAgIHRkLFxuICAgIHRoIHtcbiAgICAgICYuc2hvdy1mb3ItbGFuZHNjYXBlLFxuICAgICAgJi5oaWRlLWZvci1wb3J0cmFpdCB7IGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuICAgIH1cbiAgfVxuXG4gIEBtZWRpYSAjeyRwb3J0cmFpdH0ge1xuICAgIC5zaG93LWZvci1wb3J0cmFpdCxcbiAgICAuaGlkZS1mb3ItbGFuZHNjYXBlIHsgZGlzcGxheTogaW5oZXJpdCAhaW1wb3J0YW50OyB9XG4gICAgLmhpZGUtZm9yLXBvcnRyYWl0LFxuICAgIC5zaG93LWZvci1sYW5kc2NhcGUgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuICAgIC8qIFNwZWNpZmljIHZpc2liaWxpdHkgZm9yIHRhYmxlcyAqL1xuICAgIHRhYmxlIHtcbiAgICAgICYuc2hvdy1mb3ItcG9ydHJhaXQsXG4gICAgICAmLmhpZGUtZm9yLWxhbmRzY2FwZSB7IGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7IH1cbiAgICB9XG4gICAgdGhlYWQge1xuICAgICAgJi5zaG93LWZvci1wb3J0cmFpdCxcbiAgICAgICYuaGlkZS1mb3ItbGFuZHNjYXBlIHsgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgICB9XG4gICAgdGJvZHkge1xuICAgICAgJi5zaG93LWZvci1wb3J0cmFpdCxcbiAgICAgICYuaGlkZS1mb3ItbGFuZHNjYXBlIHsgZGlzcGxheTogdGFibGUtcm93LWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgICB9XG4gICAgdHIge1xuICAgICAgJi5zaG93LWZvci1wb3J0cmFpdCxcbiAgICAgICYuaGlkZS1mb3ItbGFuZHNjYXBlIHsgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQ7IH1cbiAgICB9XG4gICAgdGQsXG4gICAgdGgge1xuICAgICAgJi5zaG93LWZvci1wb3J0cmFpdCxcbiAgICAgICYuaGlkZS1mb3ItbGFuZHNjYXBlIHsgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG4gICAgfVxuICB9XG5cbiAgLyogVG91Y2gtZW5hYmxlZCBkZXZpY2UgdGFyZ2V0aW5nICovXG4gIC5zaG93LWZvci10b3VjaCB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuICAuaGlkZS1mb3ItdG91Y2ggeyBkaXNwbGF5OiBpbmhlcml0ICFpbXBvcnRhbnQ7IH1cbiAgLnRvdWNoIC5zaG93LWZvci10b3VjaCB7IGRpc3BsYXk6IGluaGVyaXQgIWltcG9ydGFudDsgfVxuICAudG91Y2ggLmhpZGUtZm9yLXRvdWNoIHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbiAgLyogU3BlY2lmaWMgdmlzaWJpbGl0eSBmb3IgdGFibGVzICovXG4gIHRhYmxlLmhpZGUtZm9yLXRvdWNoIHsgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDsgfVxuICAudG91Y2ggdGFibGUuc2hvdy1mb3ItdG91Y2ggeyBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50OyB9XG4gIHRoZWFkLmhpZGUtZm9yLXRvdWNoIHsgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgLnRvdWNoIHRoZWFkLnNob3ctZm9yLXRvdWNoIHsgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgdGJvZHkuaGlkZS1mb3ItdG91Y2ggeyBkaXNwbGF5OiB0YWJsZS1yb3ctZ3JvdXAgIWltcG9ydGFudDsgfVxuICAudG91Y2ggdGJvZHkuc2hvdy1mb3ItdG91Y2ggeyBkaXNwbGF5OiB0YWJsZS1yb3ctZ3JvdXAgIWltcG9ydGFudDsgfVxuICB0ci5oaWRlLWZvci10b3VjaCB7IGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50OyB9XG4gIC50b3VjaCB0ci5zaG93LWZvci10b3VjaCB7IGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50OyB9XG4gIHRkLmhpZGUtZm9yLXRvdWNoIHsgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG4gIC50b3VjaCB0ZC5zaG93LWZvci10b3VjaCB7IGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuICB0aC5oaWRlLWZvci10b3VjaCB7IGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuICAudG91Y2ggdGguc2hvdy1mb3ItdG91Y2ggeyBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cblxuICAvLyBPbmx5IGluY2x1ZGUgdGhlc2Ugc3R5bGVzIGlmIHlvdSB3YW50IHRoZW0uXG4gICAgQGlmICRpbmNsdWRlLXByaW50LXN0eWxlcyB7XG4gICAgICAvKlxuICAgICAgICogUHJpbnQgc3R5bGVzLlxuICAgICAgICpcbiAgICAgICAqIElubGluZWQgdG8gYXZvaWQgcmVxdWlyZWQgSFRUUCBjb25uZWN0aW9uOiB3d3cucGhwaWVkLmNvbS9kZWxheS1sb2FkaW5nLXlvdXItcHJpbnQtY3NzL1xuICAgICAgICogQ3JlZGl0IHRvIFBhdWwgSXJpc2ggYW5kIEhUTUw1IEJvaWxlcnBsYXRlIChodG1sNWJvaWxlcnBsYXRlLmNvbSlcbiAgICAgICovXG4gICAgICAucHJpbnQtb25seSB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuICAgICAgQG1lZGlhIHByaW50IHtcbiAgICAgICAgKiB7XG4gICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgICAgICBjb2xvcjogJGJsYWNrICFpbXBvcnRhbnQ7IC8qIEJsYWNrIHByaW50cyBmYXN0ZXI6IGg1YnAuY29tL3MgKi9cbiAgICAgICAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgICAgdGV4dC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgICAuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiBibG9jazsgfVxuICAgICAgICAuaGlkZS1mb3ItcHJpbnQgeyBkaXNwbGF5OiBub25lOyB9XG5cbiAgICAgICAgdGFibGUuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50OyB9XG4gICAgICAgIHRoZWFkLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgICAgICAgdGJvZHkuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1yb3ctZ3JvdXAgIWltcG9ydGFudDsgfVxuICAgICAgICB0ci5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50OyB9XG4gICAgICAgIHRkLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG4gICAgICAgIHRoLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG5cbiAgICAgICAgYSxcbiAgICAgICAgYTp2aXNpdGVkIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7fVxuICAgICAgICBhW2hyZWZdOmFmdGVyIHsgY29udGVudDogXCIgKFwiIGF0dHIoaHJlZikgXCIpXCI7IH1cblxuICAgICAgICBhYmJyW3RpdGxlXTphZnRlciB7IGNvbnRlbnQ6IFwiIChcIiBhdHRyKHRpdGxlKSBcIilcIjsgfVxuXG4gICAgICAgIC8vIERvbid0IHNob3cgbGlua3MgZm9yIGltYWdlcywgb3IgamF2YXNjcmlwdC9pbnRlcm5hbCBsaW5rc1xuICAgICAgICAuaXIgYTphZnRlcixcbiAgICAgICAgYVtocmVmXj1cImphdmFzY3JpcHQ6XCJdOmFmdGVyLFxuICAgICAgICBhW2hyZWZePVwiI1wiXTphZnRlciB7IGNvbnRlbnQ6IFwiXCI7IH1cblxuICAgICAgICBwcmUsXG4gICAgICAgIGJsb2NrcXVvdGUge1xuICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRhbHVtaW51bTtcbiAgICAgICAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gICAgICAgIH1cblxuICAgICAgICB0aGVhZCB7IGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cDsgLyogaDVicC5jb20vdCAqLyB9XG5cbiAgICAgICAgdHIsXG4gICAgICAgIGltZyB7IHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDsgfVxuXG4gICAgICAgIGltZyB7IG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG5cbiAgICAgICAgQHBhZ2UgeyBtYXJnaW46IDAuNWNtOyB9XG5cbiAgICAgICAgcCxcbiAgICAgICAgaDIsXG4gICAgICAgIGgzIHtcbiAgICAgICAgICBvcnBoYW5zOiAzO1xuICAgICAgICAgIHdpZG93czogMztcbiAgICAgICAgfVxuXG4gICAgICAgIGgyLFxuICAgICAgICBoMyB7IHBhZ2UtYnJlYWstYWZ0ZXI6IGF2b2lkOyB9XG5cbiAgICAgICAgLmhpZGUtb24tcHJpbnQgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cbiAgICAgICAgLnByaW50LW9ubHkgeyBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9XG4gICAgICAgIC5oaWRlLWZvci1wcmludCB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuICAgICAgICAuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiBpbmhlcml0ICFpbXBvcnRhbnQ7IH1cbiAgICAgIH1cbiAgICB9XG5cbiAgLyogUHJpbnQgdmlzaWJpbGl0eSAqL1xuICAgIEBtZWRpYSBwcmludCB7XG4gICAgICAuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiBibG9jazsgfVxuICAgICAgLmhpZGUtZm9yLXByaW50IHsgZGlzcGxheTogbm9uZTsgfVxuXG4gICAgICB0YWJsZS5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7IH1cbiAgICAgIHRoZWFkLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgICAgIHRib2R5LnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtcm93LWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgICAgIHRyLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQ7IH1cbiAgICAgIHRkLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG4gICAgICB0aC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuICB9XG59XG4iLCIvKipcbiAqIEljb01vb24gZ2VuZXJhdGVkIGljb25zXG4gKiBTZWUgdGhlIHRoZW1lIGFzc2V0cy9mb250cyBmb2xkZXIgZm9yIGZvbnQgZmlsZXNcbiAqIGFuZCBqc29uIGZpbGUgdG8gdXNlIG9uIGljb21vb24gdG8gZGV2ZWxvcCB0aGlzXG4gKiBmb250IGZ1cnRoZXJcbiAqXG4gKiBUaGlzIGljb24gZm9udCBpcyBsYXJnZWx5IGJhc2VkIG9uIGEgY3VzdG9tIHNlbGVjdGlvblxuICogb2YgaWNvbnMgZnJvbSB0aGUgTWF0ZXJpYWwgRGVzaWduIGljb24gcGFjay5cbiAqL1xuXG5AaW1wb3J0ICdpY29uLXZhcnMnO1xuXG4kaWNvbW9vbi1mb250LXBhdGg6IFwiL2Fzc2V0czIvZm9udHMvcGlvbmVlclwiICFkZWZhdWx0O1xuXG5AbWl4aW4gaWNvbigkaWNvbjogZmFsc2UpIHtcblx0LyogdXNlICFpbXBvcnRhbnQgdG8gcHJldmVudCBpc3N1ZXMgd2l0aCBicm93c2VyIGV4dGVuc2lvbnMgdGhhdCBjaGFuZ2UgZm9udHMgKi9cbiAgICBmb250LWZhbWlseTogJ3Bpb25lZXInICFpbXBvcnRhbnQ7XG4gICAgc3BlYWs6IG5vbmU7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAvKiBCZXR0ZXIgRm9udCBSZW5kZXJpbmcgPT09PT09PT09PT0gKi9cbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuXG5cdEBpZiAkaWNvbiB7XG5cdFx0Y29udGVudDogXCIjeyRpY29ufVwiO1xuXHR9XG59XG5cbkBmb250LWZhY2Uge1xuXHRmb250LWZhbWlseTogJ3Bpb25lZXInO1xuICAgIHNyYzp1cmwoJyN7JGljb21vb24tZm9udC1wYXRofS9waW9uZWVyLmVvdD90bDJjZjcnKTtcbiAgICBzcmM6dXJsKCcjeyRpY29tb29uLWZvbnQtcGF0aH0vcGlvbmVlci5lb3Q/dGwyY2Y3I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuICAgICAgICB1cmwoJyN7JGljb21vb24tZm9udC1wYXRofS9waW9uZWVyLnR0Zj90bDJjZjcnKSBmb3JtYXQoJ3RydWV0eXBlJyksXG4gICAgICAgIHVybCgnI3skaWNvbW9vbi1mb250LXBhdGh9L3Bpb25lZXIud29mZj90bDJjZjcnKSBmb3JtYXQoJ3dvZmYnKSxcbiAgICAgICAgdXJsKCcjeyRpY29tb29uLWZvbnQtcGF0aH0vcGlvbmVlci5zdmc/dGwyY2Y3I3Bpb25lZXInKSBmb3JtYXQoJ3N2ZycpO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG5bY2xhc3NePVwiaWNvbi1cIl0sXG5bY2xhc3MqPVwiIGljb24tXCJdIHtcblx0QGluY2x1ZGUgaWNvbigpO1xufVxuXG4uaWNvbi1tZWRpdW06YmVmb3JlIHtcblx0Zm9udC1zaXplOiAxLjI1ZW07XG5cdHZlcnRpY2FsLWFsaWduOiAtNy41JTtcbn1cblxuLmljb24tbGFyZ2U6YmVmb3JlIHtcblx0Zm9udC1zaXplOiAxLjVlbTtcblx0dmVydGljYWwtYWxpZ246IC0xNSU7XG59XG5cbi5pY29uLXhsYXJnZTpiZWZvcmUge1xuXHRmb250LXNpemU6IDJlbTtcblx0dmVydGljYWwtYWxpZ246IC0xNSU7XG59XG5cbi5pY29uLWxvY2FsLXNoaXBwaW5nIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1sb2NhbC1zaGlwcGluZztcbiAgICB9XG59XG4uaWNvbi1zdG9ja2V4Y2hhbmdlIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1zdG9ja2V4Y2hhbmdlO1xuICAgIH1cbn1cbi5pY29uLWNyZWRpdC1jYXJkIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1jcmVkaXQtY2FyZDtcbiAgICB9XG59XG4uaWNvbi1wbGFjZSB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkaWNvbi12YXItcGxhY2U7XG4gICAgfVxufVxuLmljb24td2FsbGV0LWdpZnRjYXJkIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci13YWxsZXQtZ2lmdGNhcmQ7XG4gICAgfVxufVxuLmljb24tZmxpZ2h0IHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1mbGlnaHQ7XG4gICAgfVxufVxuLmljb24tYWRkLXNob3BwaW5nLWNhcnQge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLWFkZC1zaG9wcGluZy1jYXJ0O1xuICAgIH1cbn1cbi5pY29uLWRlbGV0ZSB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkaWNvbi12YXItZGVsZXRlO1xuICAgIH1cbn1cbi5pY29uLWV4aXQtdG8tYXBwIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1leGl0LXRvLWFwcDtcbiAgICB9XG59XG4uaWNvbi1mYXZvcml0ZSB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkaWNvbi12YXItZmF2b3JpdGU7XG4gICAgfVxufVxuLmljb24taG9tZSB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkaWNvbi12YXItaG9tZTtcbiAgICB9XG59XG4uaWNvbi1pbmZvIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1pbmZvO1xuICAgIH1cbn1cbi5pY29uLWxhbmd1YWdlIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1sYW5ndWFnZTtcbiAgICB9XG59XG4uaWNvbi1wcmludCB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkaWNvbi12YXItcHJpbnQ7XG4gICAgfVxufVxuLmljb24tc2VhcmNoIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1zZWFyY2g7XG4gICAgfVxufVxuLmljb24tc2hvcHBpbmctY2FydCB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkaWNvbi12YXItc2hvcHBpbmctY2FydDtcbiAgICB9XG59XG4uaWNvbi1lcnJvciB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkaWNvbi12YXItZXJyb3I7XG4gICAgfVxufVxuLmljb24td2FybmluZyB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkaWNvbi12YXItd2FybmluZztcbiAgICB9XG59XG4uaWNvbi1jYWxsIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1jYWxsO1xuICAgIH1cbn1cbi5pY29uLXZwbi1rZXkge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLXZwbi1rZXk7XG4gICAgfVxufVxuLmljb24tYWRkIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1hZGQ7XG4gICAgfVxufVxuLmljb24tbWFpbCB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkaWNvbi12YXItbWFpbDtcbiAgICB9XG59XG4uaWNvbi1hdHRhY2gtbW9uZXkge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLWF0dGFjaC1tb25leTtcbiAgICB9XG59XG4uaWNvbi1rZXlib2FyZC1hcnJvdy1kb3duIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1rZXlib2FyZC1hcnJvdy1kb3duO1xuICAgIH1cbn1cbi5pY29uLWJyaWdodG5lc3MtMSB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkaWNvbi12YXItYnJpZ2h0bmVzcy0xO1xuICAgIH1cbn1cbi5pY29uLWNoZWNrIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1jaGVjaztcbiAgICB9XG59XG4uaWNvbi1jaGV2cm9uLWxlZnQge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLWNoZXZyb24tbGVmdDtcbiAgICB9XG59XG4uaWNvbi1jaGV2cm9uLXJpZ2h0IHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1jaGV2cm9uLXJpZ2h0O1xuICAgIH1cbn1cbi5pY29uLWNsb3NlIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1jbG9zZTtcbiAgICB9XG59XG4uaWNvbi1tZW51IHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1tZW51O1xuICAgIH1cbn1cbi5pY29uLXJlZnJlc2gge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLXJlZnJlc2g7XG4gICAgfVxufVxuLmljb24tcGVyc29uIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1wZXJzb247XG4gICAgfVxufVxuLmljb24tc3RhciB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkaWNvbi12YXItc3RhcjtcbiAgICB9XG59XG4uaWNvbi1zdGFyLWhhbGYge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLXN0YXItaGFsZjtcbiAgICB9XG59XG4uaWNvbi1zdGFyLW91dGxpbmUge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLXN0YXItb3V0bGluZTtcbiAgICB9XG59XG4uaWNvbi1nb29nbGVwbHVzIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1nb29nbGVwbHVzO1xuICAgIH1cbn1cbi5pY29uLWZhY2Vib29rIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1mYWNlYm9vaztcbiAgICB9XG59XG4uaWNvbi1lbGxvIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1lbGxvO1xuICAgIH1cbn1cbi5pY29uLWluc3RhZ3JhbSB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkaWNvbi12YXItaW5zdGFncmFtO1xuICAgIH1cbn1cbi5pY29uLXR3aXR0ZXIge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGljb24tdmFyLXR3aXR0ZXI7XG4gICAgfVxufVxuLmljb24teW91dHViZSB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkaWNvbi12YXIteW91dHViZTtcbiAgICB9XG59XG4uaWNvbi12aW1lbyB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkaWNvbi12YXItdmltZW87XG4gICAgfVxufVxuLmljb24tZmxpY2tyIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1mbGlja3I7XG4gICAgfVxufVxuLmljb24tYmxvZ2dlciB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkaWNvbi12YXItYmxvZ2dlcjtcbiAgICB9XG59XG4uaWNvbi1saW5rZWRpbiB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkaWNvbi12YXItbGlua2VkaW47XG4gICAgfVxufVxuLmljb24tcGludGVyZXN0IHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRpY29uLXZhci1waW50ZXJlc3Q7XG4gICAgfVxufVxuIiwiJGljb24tdmFyLWxvY2FsLXNoaXBwaW5nOiBcIlxcZTYyM1wiO1xuJGljb24tdmFyLXN0b2NrZXhjaGFuZ2U6IFwiXFxlNjIwXCI7XG4kaWNvbi12YXItY3JlZGl0LWNhcmQ6IFwiXFxlNjIyXCI7XG4kaWNvbi12YXItcGxhY2U6IFwiXFxlNjIxXCI7XG4kaWNvbi12YXItd2FsbGV0LWdpZnRjYXJkOiBcIlxcZTYxZVwiO1xuJGljb24tdmFyLWZsaWdodDogXCJcXGU2MWZcIjtcbiRpY29uLXZhci1hZGQtc2hvcHBpbmctY2FydDogXCJcXGU2MDBcIjtcbiRpY29uLXZhci1kZWxldGU6IFwiXFxlNjAxXCI7XG4kaWNvbi12YXItZXhpdC10by1hcHA6IFwiXFxlNjAyXCI7XG4kaWNvbi12YXItZmF2b3JpdGU6IFwiXFxlNjAzXCI7XG4kaWNvbi12YXItaG9tZTogXCJcXGU2MWNcIjtcbiRpY29uLXZhci1pbmZvOiBcIlxcZTYxOFwiO1xuJGljb24tdmFyLWxhbmd1YWdlOiBcIlxcZTYwNFwiO1xuJGljb24tdmFyLXByaW50OiBcIlxcZTYwNVwiO1xuJGljb24tdmFyLXNlYXJjaDogXCJcXGU2MDZcIjtcbiRpY29uLXZhci1zaG9wcGluZy1jYXJ0OiBcIlxcZTYwN1wiO1xuJGljb24tdmFyLWVycm9yOiBcIlxcZTYxOVwiO1xuJGljb24tdmFyLXdhcm5pbmc6IFwiXFxlNjFhXCI7XG4kaWNvbi12YXItY2FsbDogXCJcXGU2MDhcIjtcbiRpY29uLXZhci12cG4ta2V5OiBcIlxcZTYwOVwiO1xuJGljb24tdmFyLWFkZDogXCJcXGU2MGFcIjtcbiRpY29uLXZhci1tYWlsOiBcIlxcZTYwYlwiO1xuJGljb24tdmFyLWF0dGFjaC1tb25leTogXCJcXGU2MGNcIjtcbiRpY29uLXZhci1rZXlib2FyZC1hcnJvdy1kb3duOiBcIlxcZTYwZFwiO1xuJGljb24tdmFyLWJyaWdodG5lc3MtMTogXCJcXGU2MGVcIjtcbiRpY29uLXZhci1jaGVjazogXCJcXGU2MWJcIjtcbiRpY29uLXZhci1jaGV2cm9uLWxlZnQ6IFwiXFxlNjBmXCI7XG4kaWNvbi12YXItY2hldnJvbi1yaWdodDogXCJcXGU2MTBcIjtcbiRpY29uLXZhci1jbG9zZTogXCJcXGU2MTFcIjtcbiRpY29uLXZhci1tZW51OiBcIlxcZTYxMlwiO1xuJGljb24tdmFyLXJlZnJlc2g6IFwiXFxlNjE3XCI7XG4kaWNvbi12YXItcGVyc29uOiBcIlxcZTYxM1wiO1xuJGljb24tdmFyLXN0YXI6IFwiXFxlNjE0XCI7XG4kaWNvbi12YXItc3Rhci1oYWxmOiBcIlxcZTYxNVwiO1xuJGljb24tdmFyLXN0YXItb3V0bGluZTogXCJcXGU2MTZcIjtcbiRpY29uLXZhci1nb29nbGVwbHVzOiBcIlxcZWE4OFwiO1xuJGljb24tdmFyLWZhY2Vib29rOiBcIlxcZWE4Y1wiO1xuJGljb24tdmFyLWVsbG86IFwiXFxlYThmXCI7XG4kaWNvbi12YXItaW5zdGFncmFtOiBcIlxcZWE5MFwiO1xuJGljb24tdmFyLXR3aXR0ZXI6IFwiXFxlYTkxXCI7XG4kaWNvbi12YXIteW91dHViZTogXCJcXGVhOTlcIjtcbiRpY29uLXZhci12aW1lbzogXCJcXGVhOWNcIjtcbiRpY29uLXZhci1mbGlja3I6IFwiXFxlYWExXCI7XG4kaWNvbi12YXItYmxvZ2dlcjogXCJcXGVhYjlcIjtcbiRpY29uLXZhci1saW5rZWRpbjogXCJcXGVhYzlcIjtcbiRpY29uLXZhci1waW50ZXJlc3Q6IFwiXFxlYWQwXCI7IiwiLm1haW4tY29udGVudCB7XG5cdGEge1xuXHRcdHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXHR9XG5cblx0LnByb2R1Y3RsaXN0X19wcm9kdWN0IGEsXG5cdC5wcm9kdWN0X19icmVhZGNydW1icyBhLFxuXHQuY2F0ZWdvcnlsaXN0X19jYXRlZ29yeSBhLFxuXHQuY2hlY2tvdXQgYSxcblx0YS5idXR0b24sXG5cdC5zb2NpYWwtYnV0dG9ucy1saXN0IGEge1xuXHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0fVxufSIsIiRzbWFsbC1wbHVzLXJhbmdlOiAoMjdlbSwgdXBwZXItYm91bmQoJHNtYWxsLXJhbmdlKSkgIWRlZmF1bHQ7XG4kbWVkaXVtLWRvd246ICAgICAgXCIjeyRzY3JlZW59IGFuZCAobWF4LXdpZHRoOiAje3VwcGVyLWJvdW5kKCRtZWRpdW0tcmFuZ2UpfSlcIjtcbiRzbWFsbC1kb3duOiAgICAgICBcIiN7JHNjcmVlbn0gYW5kIChtYXgtd2lkdGg6ICN7dXBwZXItYm91bmQoJHNtYWxsLXJhbmdlKX0pXCI7XG4kc21hbGwtcGx1czogICAgICAgXCIjeyRzY3JlZW59IGFuZCAobWluLXdpZHRoOiAje2xvd2VyLWJvdW5kKCRzbWFsbC1wbHVzLXJhbmdlKX0pXCI7XG4kc21hbGwtcGx1cy11cDogICAgJHNtYWxsLXBsdXM7XG4kc21hbGwtcGx1cy1kb3duOiAgXCIjeyRzY3JlZW59IGFuZCAobWF4LXdpZHRoOiN7dXBwZXItYm91bmQoJHNtYWxsLXBsdXMtcmFuZ2UpfSlcIjtcbiRzbWFsbC1wbHVzLW9ubHk6ICBcIiN7JHNjcmVlbn0gYW5kIChtaW4td2lkdGg6ICN7bG93ZXItYm91bmQoJHNtYWxsLXBsdXMtcmFuZ2UpfSkgYW5kIChtYXgtd2lkdGg6I3t1cHBlci1ib3VuZCgkc21hbGwtcGx1cy1yYW5nZSl9KVwiOyIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcbiAgICBodG1sIHtcbiAgICAgICAgZm9udC1zaXplOiA4Ny41JTtcbiAgICB9XG59XG5cbi52ZXJ0aWNhbC1wb3MtaGVscGVyIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5pcy1oaWRkZW4ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbkBtZWRpYSAjeyRtZWRpdW0tZG93bn0ge1xuICAgIC5oaWRlX29uX21vYmlsZSB7XG4gICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59IiwiQGltcG9ydCBcImhlYWRlci9zZXR0aW5nc1wiO1xuQGltcG9ydCBcImhlYWRlci91dGlscy1uYXZcIjtcbkBpbXBvcnQgXCJoZWFkZXIvb2ZmY2FudmFzLW5hdlwiO1xuQGltcG9ydCBcImhlYWRlci9sb2dvLWxpbmVcIjtcbkBpbXBvcnQgXCJoZWFkZXIvbWFpbi1uYXZcIjtcbiIsIiRsb2dvLWhlaWdodDogICAgICAgICAgICAgICAgICAgIHJlbS1jYWxjKDYwKSAhZGVmYXVsdDtcbiRsb2dvLWxhcmdlLWhlaWdodDogICAgICAgICAgICAgIHJlbS1jYWxjKDgwKSAhZGVmYXVsdDtcbiRsb2dvLXJvdy1zcGFjaW5nOiAgICAgICAgICAgICAgIDEuNXJlbSAhZGVmYXVsdDtcbiRsb2dvLWxhcmdlLXJvdy1zcGFjaW5nOiAgICAgICAgIDIuNXJlbSAhZGVmYXVsdDtcbiRtZW51LWl0ZW1zLXNwYWNpbmc6ICAgICAgICAgICAgIDFyZW0gIWRlZmF1bHQ7XG4kdXRpbHMtbmF2LWJhci1oZWlnaHQ6ICAgICAgICAgICAzcmVtICFkZWZhdWx0O1xuJHV0aWxzLW5hdi1mb250LWNvbG9yOiAgICAgICAgICAgJGJvZHktZm9udC1jb2xvciAhZGVmYXVsdDtcbiR1dGlscy1uYXYtZm9udC1zaXplOiAgICAgICAgICAgIHJlbS1jYWxjKDE0KSAhZGVmYXVsdDtcbiR1dGlscy1uYXYtc2VwYXJhdG9yLWNvbG9yOiAgICAgIGxpZ2h0ZW4oJHV0aWxzLW5hdi1mb250LWNvbG9yLCA1MCUpICFkZWZhdWx0O1xuJHV0aWxzLW5hdi1pdGVtLXNwYWNpbmc6ICAgICAgICAgLjVyZW0gIWRlZmF1bHQ7XG4kdXRpbHMtbmF2LWxpbmUtaGVpZ2h0OiAgICAgICAgICAxLjJyZW0gIWRlZmF1bHQ7XG4kb2ZmLWNhbnZhcy1iYWNrZ3JvdW5kOiAgICAgICAgICAjMzMzICFkZWZhdWx0O1xuJG9mZi1jYW52YXMtbGluay1jb2xvcjogICAgICAgICAgI2ZmZiAhZGVmYXVsdDtcbiRvZmYtY2FudmFzLWl0ZW0tcGFkZGluZzogICAgICAgIDJyZW0gIWRlZmF1bHQ7XG4kb2ZmLWNhbnZhcy1pdGVtLWhlaWdodDogICAgICAgICByZW0tY2FsYyg0NCkgIWRlZmF1bHQ7XG4kb2ZmLWNhbnZhcy1pdGVtLWxpbmUtY29sb3I6ICAgICByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSkgIWRlZmF1bHQ7XG4kb2ZmLWNhbnZhcy1pdGVtLWxpbmUtaGVpZ2h0OiAgICAxLjIgIWRlZmF1bHQ7XG4kb2ZmLWNhbnZhcy1vbi1tZWRpdW06ICAgICAgICAgICB0cnVlICFkZWZhdWx0O1xuJG9mZi1jYW52YXMtdG9wLXBhZGRpbmc6ICAgICAgICAgJHV0aWxzLW5hdi1iYXItaGVpZ2h0ICFkZWZhdWx0O1xuJG9mZi1jYW52YXMtdG9wLXBvc2l0aW9uOiAgICAgICAgJGxvZ28taGVpZ2h0ICsgJG9mZi1jYW52YXMtdG9wLXBhZGRpbmcgKyAkbG9nby1yb3ctc3BhY2luZyAqIDIgIWRlZmF1bHQ7XG4kb2ZmLWNhbnZhcy1uYXYtc21hbGwtc2l6ZTogICAgICA3MCUgIWRlZmF1bHQ7XG4kb2ZmLWNhbnZhcy1uYXYtbWVkaXVtLXNpemU6ICAgICA1MCUgIWRlZmF1bHQ7XG4kb2ZmLWNhbnZhcy1jbG9zZS1idG4taGVpZ2h0OiAgICAkdXRpbHMtbmF2LWJhci1oZWlnaHQgIWRlZmF1bHQ7XG4kbmF2LWxpbmUtaGVpZ2h0OiAgICAgICAgICAgICAgICAzLjVyZW0gIWRlZmF1bHQ7XG4kbmF2LWJ0bi1oZWlnaHQ6ICAgICAgICAgICAgICAgICAzcmVtICFkZWZhdWx0O1xuJG5hdi1pY29uLXNwYWNpbmc6ICAgICAgICAgICAgICAgLjRyZW0gIWRlZmF1bHQ7XG4kbmF2LXN1Ym1lbnUtYm9yZGVyLWNvbG9yOiAgICAgICAkYm9yZGVyLWNvbG9yICFkZWZhdWx0O1xuJG5hdi1maXJzdC1sZXZlbC1mb250LXdlaWdodDogICAgYm9sZCAhZGVmYXVsdDtcbiRuYXYtZmlyc3QtbGV2ZWwtdGV4dC10cmFuc2Zvcm06IG5vbmUgIWRlZmF1bHQ7XG4kbmF2LWZpcnN0LWxldmVsLWZvbnQtc2l6ZTogICAgICAxcmVtICFkZWZhdWx0O1xuJG5hdi1ob3Jpem9udGFsLXNpZGUtcGFkZGluZzogICAgMXJlbSAhZGVmYXVsdDtcbiRuYXYtZmlyc3QtbGV2ZWwtc3BhY2luZzogICAgICAgIDAgIWRlZmF1bHQ7XG4kbmF2LWZpcnN0LWxldmVsLXNpZGUtcGFkZGluZzogICAxcmVtICFkZWZhdWx0OyIsIiR1dGlscy1uYXYtZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5ICFkZWZhdWx0O1xuXG4jdXRpbHMtbmF2IHtcbiAgICBmb250LWZhbWlseTogJHV0aWxzLW5hdi1mb250LWZhbWlseTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG4gICAgLmljb24ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA0cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4yZW07XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiAtNyU7XG4gICAgfVxufVxuXG4jdXNlci1uYXYge1xuICAgICYucmlnaHQgbGk6bGFzdC1jaGlsZCBhIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogJHV0aWxzLW5hdi1pdGVtLXNwYWNpbmc7XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICAgIEBpbmNsdWRlIHNpbmdsZS10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRob3Zlci1jb2xvcjtcbiAgICAgICAgICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkaG92ZXItY29sb3IsICRob3Zlci1jb2xvcik7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XG4gICAgI3VzZXItbmF2IHtcbiAgICAgICAgLmljb24ge1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygyMik7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHV0aWxzLW5hdi1iYXItaGVpZ2h0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgI3V0aWxzLW5hdiB7XG4gICAgICAgIHNwYW4uaGlkZS1mb3Itc21hbGwge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbiN0b29scy1uYXYge1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4ucGlwZWQtbmF2IHtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1zaXplOiAkdXRpbHMtbmF2LWZvbnQtc2l6ZTtcbiAgICBoZWlnaHQ6ICR1dGlscy1uYXYtYmFyLWhlaWdodDtcblxuICAgIGxpIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBsaW5lLWhlaWdodDogJHV0aWxzLW5hdi1iYXItaGVpZ2h0O1xuICAgICAgICBoZWlnaHQ6ICR1dGlscy1uYXYtYmFyLWhlaWdodDtcbiAgICB9XG5cbiAgICAmLmxlZnQge1xuICAgICAgICBsaTpmaXJzdC1jaGlsZCBhIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYucmlnaHQge1xuICAgICAgICBsaTpsYXN0LWNoaWxkIGEge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYubm8tc2VwYXJhdG9yIHtcbiAgICAgICAgYSB7XG4gICAgICAgICAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGEge1xuICAgICAgICBwYWRkaW5nOiAwICR1dGlscy1uYXYtaXRlbS1zcGFjaW5nO1xuICAgIH1cblxufSIsIkBpZiAoJG9mZi1jYW52YXMtcG9zaXRpb24gIT0gbGVmdCBhbmQgJG9mZi1jYW52YXMtcG9zaXRpb24gIT0gcmlnaHQpIHtcbiAgICBAd2FybiBcIiRvZmYtY2FudmFzLXBvc2l0aW9uIG11c3QgYmUgbGVmdCBvciByaWdodCwgd2FzICN7JG9mZi1jYW52YXMtcG9zaXRpb259LlwiO1xufVxuXG4kb2ZmLWNhbnZhcy1vbi1sYXJnZTogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vIE9mZiBjYW52YXMgbWVkaWEgcXVlcnkgaXMgbm90IG1vYmlsZSBmaXJzdC4gVGhlIHNoYW1lIVxuJG9mZi1jYW52YXMtYXQ6IGlmKCRvZmYtY2FudmFzLW9uLW1lZGl1bSA9PSB0cnVlLCAkbWVkaXVtLWRvd24sICRzbWFsbC1kb3duKTtcblxuYm9keSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1pbi13aWR0aDogMjBlbTtcbn1cblxuI291dGVyLXdyYXAge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4jaW5uZXItd3JhcCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4uYmxvY2sge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmJsb2NrLXRpdGxlIHtcbiAgICBAaW5jbHVkZSBhY2Nlc3NpYmxlLWhpZGUoKTtcbn1cblxuQG1lZGlhICN7JG9mZi1jYW52YXMtYXR9IHtcbiAgICAjbmF2IHtcbiAgICAgICAgei1pbmRleDogMjAwO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHBhZGRpbmctdG9wOiAkb2ZmLWNhbnZhcy10b3AtcGFkZGluZztcbiAgICAgICAgdG9wOiAkb2ZmLWNhbnZhcy10b3AtcG9zaXRpb247XG5cbiAgICAgICAgJjpub3QoOnRhcmdldCkge1xuICAgICAgICAgICAgei1pbmRleDogLTE7XG4gICAgICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6dGFyZ2V0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRvZmYtY2FudmFzLWJhY2tncm91bmQ7XG4gICAgICAgICAgICAubWFpbi1uYXZfX2Nsb3NlLWJ0biB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuYmxvY2sge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogMjtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAuY29sdW1ucyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgdWwge1xuICAgICAgICAgICAgJjpiZWZvcmUsXG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5qcy1yZWFkeXtcbiAgICAgICAgI25hdiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogJG9mZi1jYW52YXMtbmF2LXNtYWxsLXNpemU7XG4gICAgICAgICAgICAjeyRvZmYtY2FudmFzLXBvc2l0aW9ufTogLSN7JG9mZi1jYW52YXMtbmF2LXNtYWxsLXNpemV9O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJG9mZi1jYW52YXMtYmFja2dyb3VuZDtcbiAgICAgICAgICAgIEBpbmNsdWRlIHByZWZpeGVyKGJveC1zaGFkb3csIGluc2V0IGlmKCRvZmYtY2FudmFzLXBvc2l0aW9uID09IGxlZnQsIC0xLjVlbSwgMS41ZW0pIDAgMS41ZW0gLTAuNzVlbSByZ2JhKDAsIDAsIDAsIDAuMjUpLCBtb3ogc3BlYyk7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogJG9mZi1jYW52YXMtdG9wLXBhZGRpbmc7XG5cbiAgICAgICAgICAgIC5ibG9jayB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAjaW5uZXItd3JhcCB7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmpzLW5hdiAjaW5uZXItd3JhcCB7XG4gICAgICAgICN7JG9mZi1jYW52YXMtcG9zaXRpb259OiAkb2ZmLWNhbnZhcy1uYXYtc21hbGwtc2l6ZTtcbiAgICB9XG5cbiAgICAuY3NzdHJhbnNmb3JtczNkLmNzc3RyYW5zaXRpb25zLmpzLXJlYWR5IHtcbiAgICAgICAgI25hdiB7XG4gICAgICAgICAgICAjeyRvZmYtY2FudmFzLXBvc2l0aW9ufTogMDtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zbGF0ZTNkKGlmKCRvZmYtY2FudmFzLXBvc2l0aW9uID09IGxlZnQsIC0xMDAlLCAxMDAlKSwgMCwgMCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBiYWNrZmFjZS12aXNpYmlsaXR5KGhpZGRlbik7XG4gICAgICAgIH1cblxuICAgICAgICAjaW5uZXItd3JhcCB7XG4gICAgICAgICAgICAjeyRvZmYtY2FudmFzLXBvc2l0aW9ufTogMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgLy8gQGluY2x1ZGUgdHJhbnNsYXRlM2QoMCwwLDApOyAvLyBEaXNhYmxlZCEgQ2F1c2VkIGFsbCBraW5kcyBvZiB3ZWlyZCBibHVycmluZyBpbiBBbmRyb2lkIEZpcmVmb3hcbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIDUwMG1zIGVhc2UpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmNzc3RyYW5zZm9ybXMzZC5jc3N0cmFuc2l0aW9ucy5qcy1uYXYgI2lubmVyLXdyYXAge1xuICAgICAgICBAaW5jbHVkZSBiYWNrZmFjZS12aXNpYmlsaXR5KGhpZGRlbik7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zbGF0ZTNkKGlmKCRvZmYtY2FudmFzLXBvc2l0aW9uID09IGxlZnQsICRvZmYtY2FudmFzLW5hdi1zbWFsbC1zaXplLCAtJG9mZi1jYW52YXMtbmF2LXNtYWxsLXNpemUpLCAwLCAwLCBzY2FsZTNkKDEsIDEsIDEpKTtcbiAgICB9XG5cbiAgICAuY3NzdHJhbnNmb3JtczNkLmNzc3RyYW5zaXRpb25zLmpzLXJlYWR5ICNuYXYgLmJsb2NrIHtcbiAgICAgICAgb3BhY2l0eTogMC43O1xuICAgICAgICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMzAwbXMgMTAwbXMgZWFzZSwgLXdlYmtpdC10cmFuc2Zvcm0gNTAwbXMgZWFzZSwgdmlzaWJpbGl0eSA1MDBtcyBlYXNlO1xuICAgICAgICAtbW96LXRyYW5zaXRpb246IG9wYWNpdHkgMzAwbXMgMTAwbXMgZWFzZSwgLW1vei10cmFuc2Zvcm0gNTAwbXMgZWFzZSwgdmlzaWJpbGl0eSA1MDBtcyBlYXNlO1xuICAgICAgICAtby10cmFuc2l0aW9uOiBvcGFjaXR5IDMwMG1zIDEwMG1zIGVhc2UsIC1vLXRyYW5zZm9ybSA1MDBtcyBlYXNlLCB2aXNpYmlsaXR5IDUwMG1zIGVhc2U7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMzAwbXMgMTAwbXMgZWFzZSwgdHJhbnNmb3JtIDUwMG1zIGVhc2UsIHZpc2liaWxpdHkgNTAwbXMgZWFzZTtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNsYXRlM2QoaWYoJG9mZi1jYW52YXMtcG9zaXRpb24gPT0gbGVmdCwgJG9mZi1jYW52YXMtbmF2LXNtYWxsLXNpemUsIC0kb2ZmLWNhbnZhcy1uYXYtc21hbGwtc2l6ZSksIDAsIDAsIHNjYWxlM2QoMC45LCAwLjksIDAuOSkpO1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0tb3JpZ2luKDUwJSAwJSk7XG4gICAgICAgIC8vdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIH1cblxuICAgIC5jc3N0cmFuc2Zvcm1zM2QuY3NzdHJhbnNpdGlvbnMuanMtbmF2ICNuYXYgLmJsb2NrIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgLy92aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2xhdGUzZCgwLDAsMCk7XG4gICAgfVxuXG4gICAgLy8gVG8gYXZvaWQgbWVtb3J5IGxlYWtzIG9uIG1vYmlsZSBkZXZpY2VzXG4gICAgLmNzc3RyYW5zZm9ybXMzZC5jc3N0cmFuc2l0aW9ucyAjbmF2IHtcbiAgICAgICAgLy8gYXMgdGVtcHRpbmcgYXMgaXQgaXMgdG8gdXNlIGRpc3BsYXk6IG5vbmUsIHZpc2liaWxpdHk6IGhpZGRlbiBpcyBhbmltYXRhYmxlXG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbih2aXNpYmlsaXR5IDUwMG1zIGVhc2UpO1xuICAgIH1cbiAgICAuY3NzdHJhbnNmb3JtczNkLmNzc3RyYW5zaXRpb25zLmpzLW5hdiAjbmF2IHtcbiAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICB9XG59XG5cbkBpZiAkb2ZmLWNhbnZhcy1vbi1tZWRpdW0ge1xuICAgIC8vIERpZmZlcmVudCBuYXYgc2l6ZSBvbiBtZWRpdW1cbiAgICBAbWVkaWEgI3skbWVkaXVtLW9ubHl9IHtcbiAgICAgICAgLmpzLXJlYWR5IHtcbiAgICAgICAgICAgICNuYXYge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAkb2ZmLWNhbnZhcy1uYXYtbWVkaXVtLXNpemU7XG4gICAgICAgICAgICAgICAgI3skb2ZmLWNhbnZhcy1wb3NpdGlvbn06IC0jeyRvZmYtY2FudmFzLW5hdi1tZWRpdW0tc2l6ZX07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuanMtbmF2ICNpbm5lci13cmFwIHtcbiAgICAgICAgICAgICN7JG9mZi1jYW52YXMtcG9zaXRpb259OiAkb2ZmLWNhbnZhcy1uYXYtbWVkaXVtLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAuY3NzdHJhbnNmb3JtczNkLmNzc3RyYW5zaXRpb25zLmpzLW5hdiAjaW5uZXItd3JhcCB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2xhdGUzZChpZigkb2ZmLWNhbnZhcy1wb3NpdGlvbiA9PSBsZWZ0LCAkb2ZmLWNhbnZhcy1uYXYtbWVkaXVtLXNpemUsIC0kb2ZmLWNhbnZhcy1uYXYtbWVkaXVtLXNpemUpLCAwLCAwLCBzY2FsZTNkKDEsIDEsIDEpKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQGlmICRvZmYtY2FudmFzLW9uLWxhcmdlIHtcbiAgICAvLyBEaWZmZXJlbnQgbmF2IHNpemUgb24gbWVkaXVtXG4gICAgQG1lZGlhICN7JGxhcmdlLXVwfSB7XG4gICAgICAgIC5qcy1uYXYge1xuICAgICAgICAgICAgI25hdiB7XG4gICAgICAgICAgICAgICAgei1pbmRleDogMjAwO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAkb2ZmLWNhbnZhcy10b3AtcGFkZGluZztcbiAgICAgICAgICAgICAgICB0b3A6ICRvZmYtY2FudmFzLXRvcC1wb3NpdGlvbjtcblxuICAgICAgICAgICAgICAgICY6bm90KDp0YXJnZXQpIHtcbiAgICAgICAgICAgICAgICAgICAgei1pbmRleDogLTE7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjp0YXJnZXQge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkb2ZmLWNhbnZhcy1iYWNrZ3JvdW5kO1xuICAgICAgICAgICAgICAgICAgICAubWFpbi1uYXZfX2Nsb3NlLWJ0biB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5ibG9jayB7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICAgICAgei1pbmRleDogMjtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAuY29sdW1ucyB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdWwge1xuICAgICAgICAgICAgICAgICAgICAmOmJlZm9yZSxcbiAgICAgICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmpzLW5hdiAjaW5uZXItd3JhcCB7XG4gICAgICAgICAgICAjeyRvZmYtY2FudmFzLXBvc2l0aW9ufTogJG9mZi1jYW52YXMtbmF2LW1lZGl1bS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNzc3RyYW5zZm9ybXMzZC5jc3N0cmFuc2l0aW9ucy5qcy1uYXYgI2lubmVyLXdyYXAge1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNsYXRlM2QoaWYoJG9mZi1jYW52YXMtcG9zaXRpb24gPT0gbGVmdCwgJG9mZi1jYW52YXMtbmF2LW1lZGl1bS1zaXplLCAtJG9mZi1jYW52YXMtbmF2LW1lZGl1bS1zaXplKSwgMCwgMCwgc2NhbGUzZCgxLCAxLCAxKSk7XG4gICAgICAgIH1cbiAgICB9XG59IiwiJG5hdi1zZWFyY2gtcmFkaXVzOiAkYnV0dG9uLXJhZGl1cyAhZGVmYXVsdDtcbiR0ZXh0LWxvZ28tZm9udC1zaXplOiAkaDEtZm9udC1zaXplICFkZWZhdWx0O1xuXG4jbG9nby1yb3cge1xuICAgIHBhZGRpbmc6ICRsb2dvLXJvdy1zcGFjaW5nIDA7XG59XG5cbiNsb2dvIHtcbiAgICBoZWlnaHQ6ICRsb2dvLWhlaWdodDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgYSB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG5cbiAgICBoMSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkbG9nby1oZWlnaHQ7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgZm9udC1zaXplOiAkdGV4dC1sb2dvLWZvbnQtc2l6ZTtcbiAgICB9XG5cbiAgICBpbWcge1xuICAgICAgICBtYXgtaGVpZ2h0OiAkbG9nby1oZWlnaHQ7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG59XG5cbiNleHRyYS1uYXYge1xuICAgIC5jYXJ0LWFuZC1jaGVja291dCB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAjeygkbG9nby1oZWlnaHQgLSAkYnV0dG9uLXNpemUpLzJ9O1xuXG4gICAgICAgICYucmlnaHQge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZm9ybSB7XG4gICAgICAgIGlucHV0LCAuYnV0dG9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICAgICAgaW5wdXQge1xuICAgICAgICAgICAgQGlmKCRuYXYtc2VhcmNoLXJhZGl1cykge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHNpZGUtcmFkaXVzKGxlZnQsICRuYXYtc2VhcmNoLXJhZGl1cyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgYnV0dG9uIHtcbiAgICAgICAgICAgIEBpZigkbmF2LXNlYXJjaC1yYWRpdXMpIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBzaWRlLXJhZGl1cyhyaWdodCwgJG5hdi1zZWFyY2gtcmFkaXVzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuI2NvbnRhY3QtbmF2IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBjbGVhcjogYm90aDtcbiAgICBcbiAgICBsaSB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpO1xuICAgICAgICBoZWlnaHQ6ICN7JGxvZ28taGVpZ2h0IC0gJGJ1dHRvbi1zaXplfTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDFlbTtcbiAgICB9XG59XG5cbkBtZWRpYSAjeyRsYXJnZS11cH0ge1xuICAgICNsb2dvLXJvdyB7XG4gICAgICAgIHBhZGRpbmc6ICRsb2dvLWxhcmdlLXJvdy1zcGFjaW5nIDA7XG4gICAgfVxuXG4gICAgI2V4dHJhLW5hdiB7XG4gICAgICAgIC5jYXJ0LWFuZC1jaGVja291dHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAjeygkbG9nby1sYXJnZS1oZWlnaHQgLSAkYnV0dG9uLXNpemUpLzJ9O1xuICAgICAgICB9XG5cbiAgICAgICAgLnBpcGVkLW5hdiB7XG4gICAgICAgICAgICBsaTpmaXJzdC1jaGlsZCBhIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAjbG9nbyB7XG4gICAgICAgIGhlaWdodDogJGxvZ28tbGFyZ2UtaGVpZ2h0O1xuXG4gICAgICAgIGgxIHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkbG9nby1sYXJnZS1oZWlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICBpbWcge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogJGxvZ28tbGFyZ2UtaGVpZ2h0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgI2NvbnRhY3QtbmF2IHtcbiAgICAgICAgaGVpZ2h0OiAjeygkbG9nby1sYXJnZS1oZWlnaHQgLSAkYnV0dG9uLXNpemUpLzJ9O1xuICAgICAgICBsaW5lLWhlaWdodDogI3soJGxvZ28tbGFyZ2UtaGVpZ2h0IC0gJGJ1dHRvbi1zaXplKS8yfTtcbiAgICB9XG59IiwiLyoqXG4gKiBXZSdyZSB1c2luZyB0d28gbWVudSBjb25jZXB0cyBoZXJlXG4gKiBPZmYgY2FudmFzIG5hdmlnYXRpb24sIGFzIHNlZW4gb24gaHR0cDovL3d3dy5zbWFzaGluZ21hZ2F6aW5lLmNvbS8yMDEzLzAxLzE1L29mZi1jYW52YXMtbmF2aWdhdGlvbi1mb3ItcmVzcG9uc2l2ZS13ZWJzaXRlL1xuICogU21hcnQgbWVudXMsIGFzIHNlZW4gb24gaHR0cDovL3d3dy5zbWFydG1lbnVzLm9yZy9cbiAqL1xuJG1lbnUtZm9udC1mYW1pbHkgICAgICAgICAgOiAkYm9keS1mb250LWZhbWlseSAhZGVmYXVsdDtcbiRtZW51LWZvbnQtY29sb3IgICAgICAgICAgIDogaWYobHVtYSgkbmF2aWdhdGlvbi1iZykgPCA1MCwgJGFsdGVybmF0aXZlLWZvbnQtY29sb3IsICRib2R5LWZvbnQtY29sb3IpICFkZWZhdWx0O1xuJG1lbnUtZHJvcGRvd24tYmcgICAgICAgICAgOiByZ2JhKCNmZmYsIC45NykgIWRlZmF1bHQ7XG4kbWVudS1kcm9wZG93bi1saW5rLWNvbG9yICA6IGlmKGx1bWEoJG1lbnUtZHJvcGRvd24tYmcpIDwgNTAsIGFjY2Vzc2libGUtbHVtaW5hbmNlKCRsaWdodC1ib2R5LXRleHQsICRtZW51LWRyb3Bkb3duLWJnKSwgYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGRhcmstYm9keS10ZXh0LCAkbWVudS1kcm9wZG93bi1iZykpICFkZWZhdWx0O1xuJG1lbnUtbmF2aWdhdGlvbi1saW5rLWNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkbWVudS1mb250LWNvbG9yLCAkbmF2aWdhdGlvbi1iZykgIWRlZmF1bHQ7XG4vLyRtZW51LWl0ZW0tY29sb3IgICAgICAgICAgIDpcbi8vJG1lbnUtaXRlbS1iZyAgICAgICAgICAgICAgOlxuJG1lbnUtaXRlbS1jb250cmFzdC1jb2xvciAgOiAkbmF2aWdhdGlvbi1iZyAhZGVmYXVsdDtcbiRtZW51LWl0ZW0taG92ZXItY29sb3IgICAgIDogJGhvdmVyLWJnLXRleHQtY29sb3IgIWRlZmF1bHQ7XG4kbWVudS1pdGVtLWhvdmVyLWJnICAgICAgICA6ICRob3Zlci1jb2xvciAhZGVmYXVsdDtcbiRtZW51LWl0ZW0tYWN0aXZlLWNvbG9yICAgIDogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG4kbWVudS1pdGVtLWFjdGl2ZS1iZyAgICAgICA6ICRuYXZpZ2F0aW9uLWJnICFkZWZhdWx0O1xuJG1lbnUtaXRlbS1hY3RpdmUtaG92ZXItY29sb3I6ICRuYXZpZ2F0aW9uLWJnICFkZWZhdWx0O1xuJG1lbnUtaXRlbS1hY3RpdmUtaG92ZXItYmcgOiBpZihsdW1hKCRwcmltYXJ5LWNvbG9yKSA8IDUwLCBsaWdodGVuKCRwcmltYXJ5LWNvbG9yLCAxMCUpLCBkYXJrZW4oJHByaW1hcnktY29sb3IsIDEwJSkpICFkZWZhdWx0O1xuXG4kbmF2LXRvZ2dsZXItc2l6ZTogKCRsaXN0LWxpbmUtaGVpZ2h0ICogJGxpc3QtZm9udC1zaXplKSAhZGVmYXVsdDtcbiRuYXYtdG9nZ2xlci1iYWNrZHJvcDogJGNvbnRlbnQtYmcgIWRlZmF1bHQ7XG4kbmF2LXRvZ2dsZXItY3VycmVudC1iYWNrZHJvcDogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG4kbmF2LXRvZ2dsZXItaG92ZXItYmc6ICRib3JkZXItY29sb3IgIWRlZmF1bHQ7XG5cbiRtZW51LWhvcml6b250YWwtYnJlYWtwb2ludDogaWYoJG9mZi1jYW52YXMtb24tbWVkaXVtID09IHRydWUsICRsYXJnZS11cCwgJG1lZGl1bS11cCk7XG4kb3ZlcnJpZGUtaW5saW5lLXBvcy1hdDogaWYoJG9mZi1jYW52YXMtb24tbWVkaXVtID09IHRydWUsICRtZWRpdW0tZG93biwgJHNtYWxsLWRvd24pO1xuXG4vLyBOYXZpZ2F0aW9uIGNvbnRhaW5lclxuLm1haW4tbmF2IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB6LWluZGV4OiAyMDA7XG4gICAgZm9udC1mYW1pbHk6ICRtZW51LWZvbnQtZmFtaWx5O1xuXG4gICAgdWwge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICAgICAgZGlyZWN0aW9uOiBsdHI7XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICAgIGNvbG9yOiAkbWVudS1uYXZpZ2F0aW9uLWxpbmstY29sb3I7XG4gICAgICAgIEBpbmNsdWRlIHNpbmdsZS10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICB9XG5cbiAgICAuaWNvbi1tZW51OmJlZm9yZSB7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiAtMTIlO1xuICAgIH1cbn1cblxuLy8ganMga2VlcEluVmlld3BvcnQgYnVnZml4XG4uc20ge1xuICAgIC5zY3JvbGwtdXAsIC5zY3JvbGwtZG93biB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmUhaW1wb3J0YW50O1xuICAgIH1cbn1cblxuLy8gT2ZmIGNhbnZhcyBtZW51IGl0ZW1zXG4ubWFpbi1uYXZfX2l0ZW0gYSwgYS5tYWluLW5hdl9fY2xvc2UtYnRuIHtcbiAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJG9mZi1jYW52YXMtbGluay1jb2xvciwgJG9mZi1jYW52YXMtYmFja2dyb3VuZCk7XG59XG5cbi8vIE9mZi1jYW52YXMgbmF2aWdhdGlvbiBjbG9zZSBidXR0b25cbi5tYWluLW5hdl9fY2xvc2UtYnRuIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgcGFkZGluZzogMCAxcmVtO1xuICAgIGJvcmRlcjogMDtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG9wYWNpdHk6IDAuNztcbiAgICB0ZXh0LWFsaWduOiBpZigkb2ZmLWNhbnZhcy1wb3NpdGlvbiA9PSBsZWZ0LCByaWdodCwgbGVmdCk7XG4gICAgbGluZS1oZWlnaHQ6ICRvZmYtY2FudmFzLWNsb3NlLWJ0bi1oZWlnaHQ7XG4gICAgaGVpZ2h0OiAkb2ZmLWNhbnZhcy1jbG9zZS1idG4taGVpZ2h0O1xuICAgIEBpbmNsdWRlIHByZWZpeGVyKHRhcC1oaWdobGlnaHQtY29sb3IsIHJnYmEoMCwgMCwgMCwgMCksIHdlYmtpdCk7XG5cbiAgICAmOmZvY3VzLFxuICAgICY6aG92ZXIsXG4gICAgJi5oaWdobGlnaHRlZCB7XG4gICAgICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkb2ZmLWNhbnZhcy1saW5rLWNvbG9yLCAkaG92ZXItY29sb3IpICFpbXBvcnRhbnQ7XG4gICAgICAgIGJhY2tncm91bmQ6ICRob3Zlci1jb2xvcjtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICBpIHtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxMik7XG4gICAgICAgIHBhZGRpbmctI3skb2ZmLWNhbnZhcy1wb3NpdGlvbn06IC40cmVtO1xuICAgIH1cbn1cblxuLy8gVGhlIG1lbnUvc2VhcmNoIGJ1dHRvbnMgaW4gdGhlIGNvbXBhY3QgbWVudVxuLm5hdi1jb21wYWN0IHtcbiAgICBsaSB7XG4gICAgICAgIGhlaWdodDogJG5hdi1saW5lLWhlaWdodDtcbiAgICB9XG5cbiAgICBhIHtcbiAgICAgICAgY29sb3I6ICRtZW51LW5hdmlnYXRpb24tbGluay1jb2xvcjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkbmF2LWxpbmUtaGVpZ2h0O1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB9XG59XG5cbiNuYXYtb3Blbi1idG4ge1xuICAgIHBhZGRpbmc6IDA7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIH1cbn1cblxuLm5hdi1vZmZjYW52YXMge1xuICAgIGxpIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkb2ZmLWNhbnZhcy1pdGVtLWxpbmUtY29sb3I7XG5cbiAgICAgICAgbGkge1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1zdHlsZTogZG90dGVkO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyBOYXYgaXRlbXMgc3R5bGluZ1xuLm1haW4tbmF2X19pdGVtIHtcbiAgICBkaXJlY3Rpb246IGx0cjtcblxuICAgIGEge1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICBwYWRkaW5nOiAwICRuYXYtaG9yaXpvbnRhbC1zaWRlLXBhZGRpbmc7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzLFxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmLmhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRtZW51LWl0ZW0taG92ZXItYmc7XG4gICAgICAgICAgICBjb2xvcjogJG1lbnUtaXRlbS1ob3Zlci1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5kaXNhYmxlZCB7XG4gICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLmN1cnJlbnQsXG4gICAgJi5zZWxlY3RlZCB7XG4gICAgICAgICYgPiBhIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbG9yZWQtYmctZWxlbWVudCgkbWVudS1pdGVtLWFjdGl2ZS1iZywgJG1lbnUtaXRlbS1hY3RpdmUtY29sb3IsICRtZW51LWl0ZW0tY29udHJhc3QtY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgJGFjdGl2ZS1ob3Zlci1iZzogaWYobHVtYSgkbWVudS1pdGVtLWFjdGl2ZS1ob3Zlci1iZykgPCA1MCwgbGlnaHRlbigkbWVudS1pdGVtLWFjdGl2ZS1ob3Zlci1iZywgMTAlKSwgZGFya2VuKCRtZW51LWl0ZW0tYWN0aXZlLWhvdmVyLWJnLCAxMCUpKSAhZGVmYXVsdDtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb2xvcmVkLWJnLWVsZW1lbnQoJGFjdGl2ZS1ob3Zlci1iZywgI2ZmZiwgJG1lbnUtaXRlbS1jb250cmFzdC1jb2xvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvL1RoaXMgc3R5bGluZyBvbmx5IGFwcGxpZXMgaWYgLnNtIGlzIGFkZGVkIHRvIHRoZSB0b3AgPHVsPiBlbGVtZW50LCBhcyBhcnJvd3MgZG9uJ3Qgd29yayBpZiBzbWFydG1lbnUgaXNuJ3QgbG9hZGVkIGFueXdheVxuICAgICYucGFyZW50ID4gYSB7XG4gICAgICAgIC8vIFNob3cgYXJyb3cgZm9yIHBhcmVudCBpdGVtc1xuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGljb24oJGljb24tdmFyLWtleWJvYXJkLWFycm93LWRvd24pO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkbmF2LWljb24tc3BhY2luZztcbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24odHJhbnNmb3JtLCA0MDBtcyBlYXNlKTtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICYuaGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgJiB+IHVsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBhY2Nlc3NpYmxlLXNob3coJHBvc2l0aW9uOiByZWxhdGl2ZSk7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIFJvdGF0ZSBhcnJvdyBvbiBob3ZlclxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHJvdGF0ZXgoMTgwZGVnKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLnBhcmVudC5sZXZlbC0xID4gYTphZnRlciB7XG4gICAgICAgIEBleHRlbmQgLmljb24ta2V5Ym9hcmQtYXJyb3ctZG93bjpiZWZvcmU7XG4gICAgfVxufVxuXG4vKipcbiAqIE5hdiBpdGVtcyBzaG91bGQgaGF2ZSBwYWRkaW5nIGFuZCBhIGxvdyBsaW5lIGhlaWdodFxuICogSWYgbm90LCBtdWx0aS1saW5lIGl0ZW1zIHdpbGwgYmUgaHVnZVxuICovXG4ubWFpbi1uYXZfX2xpc3Qge1xuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLDAsMCwwKTtcblxuICAgIGEge1xuICAgICAgICBsaW5lLWhlaWdodDogJG9mZi1jYW52YXMtaXRlbS1saW5lLWhlaWdodCAqIDFyZW07XG4gICAgICAgIHBhZGRpbmc6ICN7KCRvZmYtY2FudmFzLWl0ZW0taGVpZ2h0IC0gJG9mZi1jYW52YXMtaXRlbS1saW5lLWhlaWdodCAqIDFyZW0pLzJ9IDFyZW07XG4gICAgfVxuXG4gICAgLy8gRXh0cmEgYm90dG9tIGJvcmRlciBmb3IgdGhlIGxhc3Qgb2YgdGhlIGZpcnN0IGxldmVsIGVsZW1lbnRzXG4gICAgJi5sZXZlbC0wID4gbGk6bGFzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkb2ZmLWNhbnZhcy1pdGVtLWxpbmUtY29sb3I7XG4gICAgfVxufVxuXG4vLyBTdWJtZW51XG4ubWFpbi1uYXZfX3N1Ym1lbnUge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHotaW5kZXg6IDIwMTtcbiAgICBAaW5jbHVkZSBhY2Nlc3NpYmxlLWhpZGUoKTtcblxuICAgIGEge1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAycmVtO1xuICAgIH1cblxuICAgIGh0bWwubm8tanMgJi5hY3RpdmUge1xuICAgICAgICBAaW5jbHVkZSBhY2Nlc3NpYmxlLXNob3coKTtcbiAgICB9XG5cbn1cblxuLy9TdWJzdWJtZW51XG4ubWFpbi1uYXZfX3N1Ym1lbnUubGV2ZWwtMiB7XG4gICAgYSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMy41cmVtO1xuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGljb24oJGljb24tdmFyLWNoZXZyb24tcmlnaHQpO1xuICAgICAgICAgICAgb3BhY2l0eTogLjU7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDEyKTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkb2ZmLWNhbnZhcy1pdGVtLWxpbmUtaGVpZ2h0ICogMXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRuYXYtaWNvbi1zcGFjaW5nO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uanMtbmF2IHtcbiAgICAjb3V0ZXItd3JhcCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDA7XG4gICAgfVxuXG4gICAgLmNvbnRlbnQtd3JhcHBlciA+ICo6bm90KCNuYXYpIHtcbiAgICAgICAgb3BhY2l0eTogLjQ7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24ob3BhY2l0eSwgNTAwbXMpO1xuICAgIH1cbn1cblxuLyogRml4IHdlaXJkIGJ1ZyBpbiBDaHJvbWUgd2hlcmUgbWVudSBkaXNhcHBlYXJzIG9uIGhvdmVyICovXG4ubWFpbi1uYXZfX2l0ZW0sXG4ubWFpbi1uYXZfX3N1Ym1lbnUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwcHgsIDBweCwgMHB4KTtcbn1cblxuLmJsb2NrLW5hdl9faXRlbS5wYXJlbnQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuQG1peGluIG1haW4tbmF2X190b2dnbGUtLWNvbG9ycygkY29sb3I6ICRwcmltYXJ5LWNvbG9yLCAkYmFja2Ryb3A6ICRuYXYtdG9nZ2xlci1iYWNrZHJvcCwgJGhvdmVyLWJnOiAkbmF2LXRvZ2dsZXItaG92ZXItYmcsICRob3Zlci1jb2xvcjogJHByaW1hcnktY29sb3Ipe1xuICAgICYsXG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb2xvcjogcmdiYShhY2Nlc3NpYmxlLWx1bWluYW5jZSgkY29sb3IsICRiYWNrZHJvcCksIDAuOSkgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAmLnRvZ2dsZWQ6YmVmb3JlIHtcbiAgICAgICAgY29sb3I6IHJnYmEoYWNjZXNzaWJsZS1sdW1pbmFuY2UoaWYobHVtYSgkYmFja2Ryb3ApIDwgNTAsICMwMDAsICNmZmYpLCAkYmFja2Ryb3ApLCAuNykgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgIGJhY2tncm91bmQ6ICRob3Zlci1iZztcblxuICAgICAgICAmLCAmOmJlZm9yZSB7XG4gICAgICAgICAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UocmdiYShhY2Nlc3NpYmxlLWx1bWluYW5jZSgkaG92ZXItY29sb3IsICRiYWNrZHJvcCksIDAuOSksICRob3Zlci1iZykgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm1haW4tbmF2X190b2dnbGUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgaGVpZ2h0OiAkbmF2LXRvZ2dsZXItc2l6ZTtcbiAgICB3aWR0aDogJG5hdi10b2dnbGVyLXNpemU7XG4gICAgbGluZS1oZWlnaHQ6ICRuYXYtdG9nZ2xlci1zaXplO1xuXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIDMwMG1zIGVhc2UpO1xuXG4gICAgJjpiZWZvcmUge1xuICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgIGhlaWdodDogJG5hdi10b2dnbGVyLXNpemU7XG4gICAgICAgIHdpZHRoOiAkbmF2LXRvZ2dsZXItc2l6ZTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQgIWltcG9ydGFudDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtYWluLW5hdl9fdG9nZ2xlLS1jb2xvcnMoKTtcblxuICAgIC5mb290ZXItYmcgJiB7XG4gICAgICAgIEBpbmNsdWRlIG1haW4tbmF2X190b2dnbGUtLWNvbG9ycygkY29sb3I6ICRwcmltYXJ5LWNvbG9yLCAkYmFja2Ryb3A6ICRmb290ZXItYmcsICRob3Zlci1iZzogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJG5hdi10b2dnbGVyLWhvdmVyLWJnLCAkZm9vdGVyLWJnLCAxLjEpKTtcbiAgICB9XG59XG4uY3VycmVudCB7XG4gICAgPiAubWFpbi1uYXZfX3RvZ2dsZSB7XG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbG9yOiByZ2JhKGFjY2Vzc2libGUtbHVtaW5hbmNlKCNmZmYsICRuYXYtdG9nZ2xlci1jdXJyZW50LWJhY2tkcm9wKSwgMC43NSkgIWltcG9ydGFudDtcblxuICAgICAgICAgICAgLmZvb3Rlci1iZyAmIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogcmdiYShhY2Nlc3NpYmxlLWx1bWluYW5jZSgjZmZmLCAkZm9vdGVyLWJnKSwgMC43NSkgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaWYobHVtYSgkbmF2LXRvZ2dsZXItY3VycmVudC1iYWNrZHJvcCkgPCA1MCwgbGlnaHRlbigkbmF2LXRvZ2dsZXItY3VycmVudC1iYWNrZHJvcCwgMTAlKSwgZGFya2VuKCRuYXYtdG9nZ2xlci1jdXJyZW50LWJhY2tkcm9wLCAxMCUpKTtcblxuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbG9yOiByZ2JhKGFjY2Vzc2libGUtbHVtaW5hbmNlKCNmZmYsICRuYXYtdG9nZ2xlci1jdXJyZW50LWJhY2tkcm9wKSwgMSkgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gU3R5bGluZyBmb3IgaW5pdGlhbGl6aW5nIHRoZSBtZW51IHdpdGggc3VibWVudXMgb3BlblxuLmJsb2NrLW5hdl9faXRlbSB7XG4gICAgJi5zZWxlY3RlZC5wYXJlbnQsXG4gICAgJi5jdXJyZW50LnBhcmVudCB7XG4gICAgICAgIC8vIFJvdGF0ZSB0aGUgY3Jvc3NcbiAgICAgICAgPiAubWFpbi1uYXZfX3RvZ2dsZTpiZWZvcmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHJvdGF0ZSgxMzVkZWcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgID4gLm1haW4tbmF2X190b2dnbGUudG9nZ2xlZDpiZWZvcmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHJvdGF0ZSgwZGVnKSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtZWRpYSAjeyRvdmVycmlkZS1pbmxpbmUtcG9zLWF0fSB7XG4gICAgLy8gT3ZlcnJpZGUgaW5saW5lIHBvc2l0aW9uaW5nIGRvbmUgYnkgSlNcbiAgICAubWFpbi1uYXZfX2l0ZW0ucGFyZW50ID4gYS5oaWdobGlnaHRlZCB+IHVsIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDtcbiAgICAgICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuICAgIH1cbn1cblxuQGlmICRvZmYtY2FudmFzLW9uLW1lZGl1bSB7XG4gICAgLyogSW5jcmVhc2UgcGFkZGluZyBpbiBtZW51IGl0ZW1zIG9uIG1lZGl1bSBzY3JlZW5zICovXG4gICAgQG1lZGlhICN7JG1lZGl1bS1vbmx5fSB7XG4gICAgICAgIC5tYWluLW5hdl9fbGlzdCB7XG4gICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDEuNXJlbTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubWFpbi1uYXZfX3N1Ym1lbnUge1xuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAyLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubWFpbi1uYXZfX2Nsb3NlLWJ0biB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDEuNXJlbTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1lZGlhICN7JG1lbnUtaG9yaXpvbnRhbC1icmVha3BvaW50fSB7XG5cbiAgICAubWFpbi1uYXZfX2Zyb250cGFnZS1saW5rIC5pY29uLWhvbWUge1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDIwKTtcbiAgICB9XG5cbiAgICAubWFpbi1uYXZfX2l0ZW0ge1xuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRuYXYtaG9yaXpvbnRhbC1zaWRlLXBhZGRpbmc7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkbmF2LWhvcml6b250YWwtc2lkZS1wYWRkaW5nO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgICAgICAgICAgIGNvbG9yOiAkbWVudS1uYXZpZ2F0aW9uLWxpbmstY29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBGaXJzdCBsZXZlbCBtZW51IGl0ZW1zXG4gICAgICAgICYubGV2ZWwtMCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICAgICAgei1pbmRleDogMTAxO1xuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgei1pbmRleDogMTAyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAkbmF2LWZpcnN0LWxldmVsLXNwYWNpbmc7XG5cbiAgICAgICAgICAgIEBpZiAkbmF2LWZpcnN0LWxldmVsLXNwYWNpbmcgPiAwIHtcbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmID4gYSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkbmF2LWZpcnN0LWxldmVsLXNpZGUtcGFkZGluZztcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkbmF2LWZpcnN0LWxldmVsLXNpZGUtcGFkZGluZztcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogJG5hdi1saW5lLWhlaWdodDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJG5hdi1maXJzdC1sZXZlbC1mb250LXdlaWdodDtcbiAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogJG5hdi1maXJzdC1sZXZlbC10ZXh0LXRyYW5zZm9ybTtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICRuYXYtZmlyc3QtbGV2ZWwtZm9udC1zaXplO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLnBhcmVudCA+IGE6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkbmF2LWxpbmUtaGVpZ2h0O1xuICAgICAgICAgICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gU2hvdyBzdWJtZW51IG9uIGhpZ2hsaWdodGluZ1xuICAgICAgICAmLnBhcmVudCA+IGEuaGlnaGxpZ2h0ZWQgfiB1bCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDE1ZW07XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwZW07XG4gICAgICAgICAgICBib3gtc2hhZG93OiAxcHggMCAwICRuYXYtc3VibWVudS1ib3JkZXItY29sb3IsIDAgMXB4IDAgJG5hdi1zdWJtZW51LWJvcmRlci1jb2xvciwgLTFweCAwIDAgJG5hdi1zdWJtZW51LWJvcmRlci1jb2xvciwgMCAtMXB4IDAgJG5hdi1zdWJtZW51LWJvcmRlci1jb2xvcjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkbmF2LXN1Ym1lbnUtYm9yZGVyLWNvbG9yOyAvLyBOb3QgYWxsIGJyb3dzZXJzIHN1cHBvcnQgdGhpc1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gT3ZlcnJpZGUgc21hbGwgc2NyZWVuIHNldHRpbmdzXG4gICAgLm5hdi1vZmZjYW52YXMge1xuICAgICAgICBsaSB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IG5vbmU7XG5cbiAgICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAqLFxuICAgICAgICAgICAgKjpiZWZvcmUsXG4gICAgICAgICAgICAqOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBib3gtc2l6aW5nKGNvbnRlbnQtYm94KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5tYWluLW5hdl9fY2xvc2UtYnRuIHtcbiAgICAgICAgQGluY2x1ZGUgYWNjZXNzaWJsZS1oaWRlKCk7XG4gICAgfVxuXG4gICAgLy8gSGlkZSBzdWJtZW51cyBieSBkZWZhdWx0XG4gICAgLm1haW4tbmF2X19zdWJtZW51IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IC05OTk5OTlweDtcbiAgICAgICAgbGVmdDogLTgwMHB4OyAvLyBAVE9ETyBJbnZlc3RpZ2F0ZSBpZiB0aGlzIGlzIHRoZSBjdWxwcml0IGJlaGluZCBhIGZsYXNoIGJ1ZyBvbiBDaHJvbWUgd2hlcmUgdGhlIHN1Ym1lbnUganVzdCBkaXNzYXBwZWFycyByYW5kb21seVxuICAgICAgICBiYWNrZ3JvdW5kOiAkbWVudS1kcm9wZG93bi1iZztcblxuICAgICAgICBhIHtcbiAgICAgICAgICAgIGNvbG9yOiAkbWVudS1kcm9wZG93bi1saW5rLWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm1haW4tbmF2X19pdGVtIHtcbiAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkbmF2LXN1Ym1lbnUtYm9yZGVyLWNvbG9yO1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogT24gbWVudSBsZXZlbCAxIHdlIHVzZSBwbHVzIHNpZ24gYXMgcGFyZW50IGluZGljYXRvciwgc2luY2UgbGV2ZWwgMlxuICAgICAqIHN1Ym1lbnVzIG1heSBwb3AgdXAgYm90aCB0byB0aGUgbGVmdCBhbmQgdG8gdGhlIHJpZ2h0XG4gICAgICovXG4gICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggNSB7XG4gICAgICAgICAubWFpbi1uYXZfX2l0ZW0ubGV2ZWwtI3skaX0ucGFyZW50IHtcbiAgICAgICAgICAgICAmID4gYSB7XG4gICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICAgY29udGVudDogJGljb24tdmFyLWFkZDtcbiAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpO1xuICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDMwMG1zIGVhc2UpO1xuICAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogLjY7XG4gICAgICAgICAgICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICYuaGlnaGxpZ2h0ZWQ6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHJvdGF0ZSgxMzVkZWcpKTtcbiAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICB9XG4gICAgICAgICB9XG4gXHR9XG5cblxuICAgIC5tYWluLW5hdl9fc3VibWVudS5sZXZlbC0yIGEge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDFyZW07XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn0iLCIkbWVkaWEtZ3JpZC1ib3JkZXItcmFkaXVzOiBtYXgoJGdsb2JhbC1yYWRpdXMsIDJweCkgIWRlZmF1bHQ7XG5cbkBpbXBvcnQgXCJtYWluL3RvcGJhbm5lcnNcIjtcbkBpbXBvcnQgXCJtYWluL3Byb2R1Y3RsaXN0XCI7XG5AaW1wb3J0IFwibWFpbi9jYXRlZ29yeWxpc3Qvc3R5bGVcIjtcbkBpbXBvcnQgXCJtYWluL3BhZ2VcIjsiLCIjdG9wYmFubmVycyB7XG4gICAgcGFkZGluZzogMnJlbSAwO1xufSIsIiRwcm9kdWN0LWdyaWQtZGlzY291bnQtY29ybmVyLXNpemU6ICAgIDUgIWRlZmF1bHQ7XG4kcHJvZHVjdC1ncmlkLWRpc2NvdW50LWNvbG9yOiAgICAgICAgICAkY2FsbC10by1hY3Rpb24tY29sb3IgIWRlZmF1bHQ7XG4kcHJvZHVjdC1ncmlkLWRpc2NvdW50LXNpemU6ICAgICAgICAgICBzcXJ0KDIgKiAocG93KCRwcm9kdWN0LWdyaWQtZGlzY291bnQtY29ybmVyLXNpemUsIDIpKSk7XG4kcHJvZHVjdC1ncmlkLWRpc2NvdW50LWZvbnQtc2l6ZTogICAgICByZW0tY2FsYygyMCkgIWRlZmF1bHQ7XG4kcHJvZHVjdC1ncmlkLWRpc2NvdW50LXBvczogICAgICAgICAgICAoJHByb2R1Y3QtZ3JpZC1kaXNjb3VudC1zaXplIC0gJHByb2R1Y3QtZ3JpZC1kaXNjb3VudC1jb3JuZXItc2l6ZSkgLyAyO1xuJHByb2R1Y3QtZ3JpZC1kaXNjb3VudC1mb250LWNvbG9yOiAgICAgYWNjZXNzaWJsZS1sdW1pbmFuY2UoI2ZmZiwgJHByb2R1Y3QtZ3JpZC1kaXNjb3VudC1jb2xvcikgIWRlZmF1bHQ7XG4kcHJvZHVjdC1ncmlkLWRpc2NvdW50LWZvbnQtY29sb3ItYWx0OiAjMzMzICFkZWZhdWx0O1xuJHByb2R1Y3QtZ3JpZC1kaXNjb3VudC1iZy1saWdodG5lc3M6ICAgbGlnaHRuZXNzKCRwcm9kdWN0LWdyaWQtZGlzY291bnQtY29sb3IpICFkZWZhdWx0O1xuXG4kcHJvZHVjdC1ncmlkLWJ1eS1idXR0b24tdG9wLXNwYWNpbmc6ICAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b20gIWRlZmF1bHQ7XG4kcHJvZHVjdC1ncmlkLWJ1eS1idXR0b24tZGlzdGFuY2U6ICAgICByZW0tY2FsYygxOCkgKyAkYnV0dG9uLW1lZCArICRwcm9kdWN0LWdyaWQtYnV5LWJ1dHRvbi10b3Atc3BhY2luZyArICRjb2x1bW4tZ3V0dGVyICFkZWZhdWx0OyAvLyBidXR0b24gbGluZSBoZWlnaHQgKyBidXR0b24gcGFkZGluZyArIGJ1dHRvbiB0b3Agc3BhY2luZyArIHByb2R1Y3QgYm94IHBhZGRpbmdcblxuQGltcG9ydCBcInByb2R1Y3RsaXN0L3N0eWxlXCI7XG5AaW1wb3J0IFwicHJvZHVjdGxpc3QvYnV5LWJ1dHRvbnNcIjtcbiIsIi5wcm9kdWN0bGlzdF9fcHJvZHVjdC13cmFwIHtcbiAgICAkX3Byb2R1Y3QtZ3JpZC1kaXNjb3VudC1jb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJHByb2R1Y3QtZ3JpZC1kaXNjb3VudC1jb2xvciwgJGNvbnRlbnQtYmcsIDEuMSk7XG4gICAgXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYm9yZGVyLXJhZGl1czogJG1lZGlhLWdyaWQtYm9yZGVyLXJhZGl1cztcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCRjb250ZW50LWJnLCAxMCUpO1xuICAgIEBpbmNsdWRlIHNpbmdsZS10cmFuc2l0aW9uKGJvcmRlci1jb2xvciwgMTUwbXMpO1xuICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGVaKDApKTtcblxuICAgIC5vbi1zYWxlICYge1xuICAgICAgICBib3JkZXItY29sb3I6ICRfcHJvZHVjdC1ncmlkLWRpc2NvdW50LWNvbG9yO1xuICAgICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMHB4O1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkX3Byb2R1Y3QtZ3JpZC1kaXNjb3VudC1jb2xvciAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJiA+IHAge1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMztcblxuICAgICAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnByaWNlIHtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRoZWFkZXItZm9udC1mYW1pbHk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDIwKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IHJlbS1jYWxjKDQwKTtcbiAgICB9XG5cbiAgICAucHJpY2UtLW9yaWdpbmFsIHtcbiAgICAgICAgQGV4dGVuZCAuc3VidGxlO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IHJlbS1jYWxjKDQwKTtcbiAgICB9XG5cbiAgICAuY3VycmVuY3kge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC5wcmljZV9fc2FsZXByaWNlLXRleHQge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC5rbGFybmEtaW5mbyB7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICBvcGFjaXR5OiAuNztcbiAgICAgICAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApOyBcblxuICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgIGNvbG9yOiAkYW5jaG9yLWZvbnQtY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAudmF0LWluZm8ge1xuICAgICAgICBAaW5jbHVkZSBhY2Nlc3NpYmxlLWhpZGUoKTtcbiAgICB9XG5cbiAgICAub24tc2FsZSAmOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAwICN7JHByb2R1Y3QtZ3JpZC1kaXNjb3VudC1jb3JuZXItc2l6ZX1yZW0gI3skcHJvZHVjdC1ncmlkLWRpc2NvdW50LWNvcm5lci1zaXplfXJlbSAwO1xuICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICRfcHJvZHVjdC1ncmlkLWRpc2NvdW50LWNvbG9yIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICB9XG5cbiAgICAuZGlzY291bnQge1xuICAgICAgICBmb250LWZhbWlseTogJGhlYWRlci1mb250LWZhbWlseTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIGZvbnQtc2l6ZTogJHByb2R1Y3QtZ3JpZC1kaXNjb3VudC1mb250LXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHJpZ2h0OiAtI3skcHJvZHVjdC1ncmlkLWRpc2NvdW50LXBvc31yZW07XG4gICAgICAgIHRvcDogLSN7JHByb2R1Y3QtZ3JpZC1kaXNjb3VudC1wb3N9cmVtO1xuICAgICAgICB3aWR0aDogI3skcHJvZHVjdC1ncmlkLWRpc2NvdW50LXNpemV9cmVtO1xuICAgICAgICBoZWlnaHQ6ICAjeyRwcm9kdWN0LWdyaWQtZGlzY291bnQtc2l6ZX1yZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAjeyRwcm9kdWN0LWdyaWQtZGlzY291bnQtc2l6ZS8yICsgMX1yZW07XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgei1pbmRleDogMztcblxuICAgICAgICBAaWYgbHVtYSgkX3Byb2R1Y3QtZ3JpZC1kaXNjb3VudC1jb2xvcikgPiA3MCB7XG4gICAgICAgICAgICBjb2xvcjogJHByb2R1Y3QtZ3JpZC1kaXNjb3VudC1mb250LWNvbG9yLWFsdDtcbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICBjb2xvcjogJHByb2R1Y3QtZ3JpZC1kaXNjb3VudC1mb250LWNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHJvdGF0ZSg0NWRlZykgdHJhbnNsYXRlWigwKSk7XG5cbiAgICAgICAgLm5vLWNzc3RyYW5zZm9ybXMgJiB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMXJlbTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6ICN7JGNvbHVtbi1ndXR0ZXIvMn0gI3skY29sdW1uLWd1dHRlci8yfSAwIDA7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ucHJvZHVjdGxpc3RfX3Byb2R1Y3RfX2hlYWRsaW5lIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTYpO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XG59XG5cbiIsIiRwcm9kdWN0bGlzdF9wcm9kdWN0LWJ1dHRvbi13cmFwLWJnLW9wYWNpdHk6IDAuNyAhZGVmYXVsdDtcbiRwcm9kdWN0bGlzdC1idXktYnV0dG9uLXdpZHRoOiAxMDAlICFkZWZhdWx0O1xuJHByb2R1Y3RsaXN0LWJ1eS1idXR0b24tc3BhY2luZzogJGNvbHVtbi1ndXR0ZXIvMiAhZGVmYXVsdDtcblxuLnByb2R1Y3RsaXN0X19wcm9kdWN0X19idXR0b24ge1xuICAgIHdpZHRoOiAkcHJvZHVjdGxpc3QtYnV5LWJ1dHRvbi13aWR0aDtcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbn1cblxuLnByb2R1Y3RsaXN0X19wcm9kdWN0X19idXR0b24td3JhcCB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgkY29udGVudC1iZywgJHByb2R1Y3RsaXN0X3Byb2R1Y3QtYnV0dG9uLXdyYXAtYmctb3BhY2l0eSk7XG4gICAgYm9yZGVyLXJhZGl1czogJG1lZGlhLWdyaWQtYm9yZGVyLXJhZGl1cztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxMDAlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHotaW5kZXg6IDQ7XG4gICAgbWFyZ2luLWxlZnQ6IC0oJGVxdWFsLWNvbC1pbm5lci1wYWRkaW5nKTtcbiAgICBwYWRkaW5nOiAkcHJvZHVjdC1ncmlkLWJ1eS1idXR0b24tdG9wLXNwYWNpbmcgJHByb2R1Y3RsaXN0LWJ1eS1idXR0b24tc3BhY2luZyAkcHJvZHVjdGxpc3QtYnV5LWJ1dHRvbi1zcGFjaW5nICRwcm9kdWN0bGlzdC1idXktYnV0dG9uLXNwYWNpbmc7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDE1MG1zIGVhc2UpO1xuXG4gICAgLmJ1dHRvbiB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxufVxuXG4vKiBCdXkgYnV0dG9uIHRyYW5zZm9ybSAqL1xuLmNzc3RyYW5zZm9ybXMge1xuICAgIC5wcm9kdWN0bGlzdF9fcHJvZHVjdC13cmFwOmhvdmVyIHtcbiAgICAgICAgLnByb2R1Y3RsaXN0X19wcm9kdWN0X19idXR0b24td3JhcCB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlKDAsIC0jeyRwcm9kdWN0LWdyaWQtYnV5LWJ1dHRvbi1kaXN0YW5jZX0pKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogRm9yIGJyb3dzZXJzIHdpdGhvdXQgdHJhbnNmb3JtIHN1cHBvcnQsIGp1c3QgY2hhbmdlIGJvdHRvbSBwb3NpdGlvbiAqL1xuLm5vLWNzc3RyYW5zZm9ybXMge1xuICAgIC5wcm9kdWN0bGlzdF9fcHJvZHVjdF9fYnV0dG9uLXdyYXAge1xuICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIGJvdHRvbTogLTEwMCU7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYm90dG9tLCAxNTBtcyBlYXNlKTtcbiAgICB9XG5cbiAgICAucHJvZHVjdGxpc3RfX3Byb2R1Y3Qtd3JhcDpob3ZlciB7XG4gICAgICAgIC5wcm9kdWN0bGlzdF9fcHJvZHVjdF9fYnV0dG9uLXdyYXAge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKipcbiAqIEZvciBicm93c2VycyB3aXRoIHRvdWNoIHN1cHBvcnQsIHdlIGFzc3VtZSBubyBzdXBwb3J0IGZvciA6aG92ZXIgYW5kXG4gKiBtYWtlIHNvbWUgYWx0ZXJhdGlvbnMuXG4gKi9cbi50b3VjaCB7XG4gICAgLnByb2R1Y3RsaXN0X19wcm9kdWN0X19idXR0b24td3JhcCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufSIsIiRjYXRlZ29yeS1ncmlkLWJvcmRlci1jb2xvcjogICNlYWVhZWEgIWRlZmF1bHQ7XG4kY2F0ZWdvcnktZ3JpZC1ib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cysyICFkZWZhdWx0O1xuJGNhdGVnb3J5LWdyaWQtYm9yZGVyLXNpemU6ICAgMXB4ICFkZWZhdWx0O1xuJGNhdGVnb3J5LWdyaWQtZm9udC1jb2xvcjogICAgbGlnaHRlbigkYm9keS1mb250LWNvbG9yLCAzMCUpICFkZWZhdWx0O1xuXG4uY2F0ZWdvcnlsaXN0X19jYXRlZ29yeS13cmFwIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYm9yZGVyLXJhZGl1czogJG1lZGlhLWdyaWQtYm9yZGVyLXJhZGl1cztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCRjb250ZW50LWJnLCAxMCUpO1xuICAgIEBpbmNsdWRlIHNpbmdsZS10cmFuc2l0aW9uKGJvcmRlci1jb2xvciwgMTUwbXMpO1xufVxuXG4uY2F0ZWdvcnlsaXN0X19jYXRlZ29yeV9faGVhZGxpbmUge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDI0KTtcbn0iLCIvLyBJZiBzZWN0aW9uIGNvbG9ycyBkbyBub3QgZGlmZmVyIGVub3VnaCBpbiBiYWNrZ3JvdW5kIGNvbG9yLCB3ZSBzZXQgdXAgYSBib3JkZXJcbi8vIFRoZSBib3JkZXIgc2hvdWxkIGJlIGxpZ2h0ZXIgdGhhbiB0aGUgbGlnaHRlc3Qgc2VjdGlvbiBpZiB0aGUgc2VjdGlvbnMgYXJlIGRhcmssXG4vLyBhbmQgZGFya2VyIHRoYW4gdGhlIGRhcmtlcnN0IHNlY3Rpb24gaWYgc2VjdGlvbnMgYXJlIGxpZ2h0XG5AbWl4aW4gc2VjdGlvbi1ib3JkZXItY29sb3IoJHNlY3Rpb24tYmctY29sb3IsICRwcmV2aW91cy1zZWN0aW9uLWNvbG9yLCAkY29udHJhc3QtcmF0aW8tdGhyZXNob2xkOiAyLCAkcmV0aW5hOiBmYWxzZSkge1xuICAgIEBpZiBjb250cmFzdC1yYXRpbygkc2VjdGlvbi1iZy1jb2xvciwgJHByZXZpb3VzLXNlY3Rpb24tY29sb3IpIDw9ICRjb250cmFzdC1yYXRpby10aHJlc2hvbGQge1xuICAgICAgICBAaWYgbHVtYSgkc2VjdGlvbi1iZy1jb2xvcikgPCBsdW1hKCRwcmV2aW91cy1zZWN0aW9uLWNvbG9yKSB7XG4gICAgICAgICAgICAkZGFya2VzdC1zZWN0aW9uLWNvbG9yOiAkc2VjdGlvbi1iZy1jb2xvcjtcbiAgICAgICAgICAgICRsaWdodGVzdC1zZWN0aW9uLWNvbG9yOiAkcHJldmlvdXMtc2VjdGlvbi1jb2xvcjtcbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAkbGlnaHRlc3Qtc2VjdGlvbi1jb2xvcjogJHNlY3Rpb24tYmctY29sb3I7XG4gICAgICAgICAgICAkZGFya2VzdC1zZWN0aW9uLWNvbG9yOiAkcHJldmlvdXMtc2VjdGlvbi1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgICRzZWN0aW9uLWJvcmRlci1jb2xvcjogaWYobHVtYSgkc2VjdGlvbi1iZy1jb2xvcikgPCA1LCBsaWdodGVuKCRsaWdodGVzdC1zZWN0aW9uLWNvbG9yLCAxMCUpLCBkYXJrZW4oJGRhcmtlc3Qtc2VjdGlvbi1jb2xvciwgMTAlKSk7XG5cbiAgICAgICAgQGlmICRyZXRpbmEge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGFpcmxpbmUtYm9yZGVyKCRzZWN0aW9uLWJvcmRlci1jb2xvcik7XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZWN0aW9uLWJvcmRlci1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuI2xvZ28tcm93IHtcbiAgICBAaW5jbHVkZSBzZWN0aW9uLWJvcmRlci1jb2xvcigkaGVhZGVyLWJnLCAkbmF2aWdhdGlvbi1iZywgMSk7XG59XG5cbi51c2VyLW5hdiB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xufVxuXG4jbmF2IHtcbiAgICBAaW5jbHVkZSBzZWN0aW9uLWJvcmRlci1jb2xvcigkbmF2aWdhdGlvbi1iZywgJGhlYWRlci1iZywgMSk7XG59XG5cbiNtYWluIHtcbiAgICBAaW5jbHVkZSBzZWN0aW9uLWJvcmRlci1jb2xvcigkY29udGVudC1iZywgJG5hdmlnYXRpb24tYmcsIDEpO1xufVxuXG4jbWFpbi1jb250ZW50LFxuI21haW4tY29udGVudC1vbmVwYWdlIHtcbiAgICBwYWRkaW5nLXRvcDogJGNvbHVtbi1ndXR0ZXI7XG4gICAgcGFkZGluZy1ib3R0b206ICRjb2x1bW4tZ3V0dGVyO1xuXG4gICAgJiA+IC5icmVhZGNydW1ic19fd3JhcHBlcjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi10b3A6IC0kY29sdW1uLWd1dHRlcjtcbiAgICAgICAgcGFkZGluZzogJHBhZ2UtdGl0bGUtcGFkZGluZyAwO1xuICAgIH1cbn1cblxuI2Zvb3RlciB7XG4gICAgcGFkZGluZy10b3A6ICRjb2x1bW4tZ3V0dGVyO1xuICAgIEBpbmNsdWRlIHNlY3Rpb24tYm9yZGVyLWNvbG9yKCRmb290ZXItYmcsICRjb250ZW50LWJnKTtcbn1cblxuI2VuZCB7XG4gICAgQGluY2x1ZGUgc2VjdGlvbi1ib3JkZXItY29sb3IoJGVuZC1iZywgJGZvb3Rlci1iZyk7XG4gICAgcGFkZGluZzogJGNvbHVtbi1ndXR0ZXIgMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5wYWdlX190aXRsZSB7XG4gICAgbWFyZ2luLXRvcDogLSRjb2x1bW4tZ3V0dGVyO1xuICAgIHBhZGRpbmc6ICRwYWdlLXRpdGxlLXBhZGRpbmcgMDtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtICogJHBhcmFncmFwaC1saW5lLWhlaWdodDtcblxuICAgIEBleHRlbmQgLmJvcmRlcmVkLS1ib3R0b207XG4gICAgQGV4dGVuZCAlY29udGVudF9fYm9yZGVyZWQtLWhhcmQ7XG5cbiAgICBoMSB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG59IiwiLmZvb3Rlcl9fbGlua3Mge1xuICAgIGxpIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIC41cmVtO1xuXG4gICAgICAgICAgICBodG1sLnRvdWNoICYge1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkdG91Y2gtZnJpZW5kbHktc2l6ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmZvb3Rlcl9fY29tcGFueS1pbmZvLFxuLmZvb3Rlcl9fbWFkZS1ieSB7XG4gICAgbGluZS1oZWlnaHQ6ICRwYXJhZ3JhcGgtbGluZS1oZWlnaHQ7XG59XG5cbi5mb290ZXJfX21hZGUtYnkge1xuICAgIHBhZGRpbmctdG9wOiAxcmVtO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbn1cblxuLmZvb3Rlcl9fY29va2llX25vdGljZSB7XG4gICAgbWFyZ2luLXRvcDogMS4yNXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6MjUlO1xuICAgIHBhZGRpbmctcmlnaHQ6IDI1JTtcbiAgICBmb250LXNpemU6IDEzcHg7XG59XG5cbkBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAuZm9vdGVyX19saW5rcyB7XG4gICAgICAgIG1hcmdpbi10b3A6IC41cmVtO1xuICAgIH1cbn0iLCIkYWxlcnQtYm94LWZvb3Rlci1zaXplOiAkdG91Y2gtZnJpZW5kbHktc2l6ZSAhZGVmYXVsdDtcblxuQG1peGluIGFsZXJ0LXN0eWxlKCRjb2xvcikge1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3JkZXItbGVmdDogJGFsZXJ0LXNpZGUtYm9yZGVyLXNpemUgc29saWQgJGNvbG9yO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XG59XG5cbi8vIFVzaW5nIGZvdW5kYXRpb24ncyBhbGVydCBib3hlcyBzdHlsaW5nXG4uYWxlcnQtYm94IHtcbiAgICBAaW5jbHVkZSBhbGVydDtcbiAgICBsaW5lLWhlaWdodDogJGFsZXJ0LWxpbmUtaGVpZ2h0O1xuICAgIGJveC1zaGFkb3c6IDJweCAycHggNHB4IHJnYmEoMCwwLDAsLjQpO1xuICAgIFxuICAgICYuYWxlcnQtYm94LS13aXRoY2xvc2Uge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAjeyRhbGVydC1wYWRkaW5nLW9wcG9zaXRlLWRpcmVjdGlvbiAqIDEuNX07XG4gICAgfVxuICBcbiAgICA+IHA6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgLmNsb3NlICAgICAgeyBAaW5jbHVkZSBhbGVydC1jbG9zZTsgfVxuICAgICYucmFkaXVzICAgIHsgQGluY2x1ZGUgcmFkaXVzKCRhbGVydC1yYWRpdXMpOyB9XG4gICAgJi5yb3VuZCAgICAgeyBAaW5jbHVkZSByYWRpdXMoJGdsb2JhbC1yb3VuZGVkKTsgfVxuXG4gICAgJi5zdWNjZXNzLFxuICAgICYuYWxlcnQtc3VjY2VzcyAgIHsgQGluY2x1ZGUgYWxlcnQtc3R5bGUoJHN1Y2Nlc3MtY29sb3IpOyB9XG4gICAgJi5hbGVydCxcbiAgICAmLmFsZXJ0LWFsZXJ0ICAgICB7IEBpbmNsdWRlIGFsZXJ0LXN0eWxlKCRhbGVydC1jb2xvcik7IH1cbiAgICAmLnNlY29uZGFyeSxcbiAgICAmLmFsZXJ0LXNlY29uZGFyeSB7IEBpbmNsdWRlIGFsZXJ0LXN0eWxlKCRzZWNvbmRhcnktY29sb3IpOyB9XG4gICAgJi53YXJuaW5nLFxuICAgICYuYWxlcnQtd2FybmluZyAgIHsgQGluY2x1ZGUgYWxlcnQtc3R5bGUoJHdhcm5pbmctY29sb3IpOyB9XG4gICAgJi5pbmZvLFxuICAgICYuYWxlcnQtaW5mbyAgICAgIHsgQGluY2x1ZGUgYWxlcnQtc3R5bGUoJGluZm8tY29sb3IpOyB9XG4gICAgJi5hbGVydC1jbG9zZSAgICAgeyBvcGFjaXR5OiAwfVxuXG4gICAgJjpmb2N1cyB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgfVxufVxuXG4uYWxlcnQtYm94X19pY29uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygxNik7XG4gICAgdG9wOiAkYWxlcnQtcGFkZGluZy10b3A7XG4gICAgbGVmdDogLSgkYWxlcnQtc2lkZS1ib3JkZXItc2l6ZS8yICsgLjVyZW0pO1xuICAgIGxpbmUtaGVpZ2h0OiAkYWxlcnQtbGluZS1oZWlnaHQ7XG4gICAgaGVpZ2h0OiAkYWxlcnQtbGluZS1oZWlnaHQgKiAxcmVtO1xuICAgIGNvbG9yOiAjZmZmO1xufVxuXG4uYWxlcnQtYm94X19tZXNzYWdlLFxuLmFsZXJ0LWJveF9fbWVzc2FnZSA+ICoge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogJGFsZXJ0LWZvbnQtc2l6ZTtcbn1cbi5hbGVydC1ib3hfX21lc3NhZ2Ugc3Ryb25nIHtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLmFsZXJ0LWJveF9fbWVzc2FnZSA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLmFsZXJ0LWJveC0td2l0aGZvb3RlciB7XG4gICAgLmFsZXJ0LWJveF9fbWVzc2FnZSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRhbGVydC1ib3gtZm9vdGVyLXNpemU7XG4gICAgfVxufVxuXG4jY2FydC1ub3RpZnkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5hbGVydC1ib3hfX3Byb2dyZXNzYmFyIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4uYWxlcnQtYm94X19mb290ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcmlnaHQ6IDA7XG4gICAgaGVpZ2h0OiAkYWxlcnQtYm94LWZvb3Rlci1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiAkYWxlcnQtYm94LWZvb3Rlci1zaXplO1xuXG4gICAgYSB7XG4gICAgICAgIHBhZGRpbmc6IDAgJGFsZXJ0LXBhZGRpbmctZGVmYXVsdC1mbG9hdCAwICRhbGVydC1wYWRkaW5nLWRlZmF1bHQtZmxvYXQ7XG4gICAgICAgIGNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuXG4gICAgICAgICYubGVmdCAuZmEge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogLjNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLnJpZ2h0IC5mYSB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IC4zcmVtO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgLmFsZXJ0LWJveCB7XG4gICAgICAgIG1heC13aWR0aDogNjAlO1xuICAgIH1cbn1cblxuQG1lZGlhICN7JGxhcmdlLXVwfSB7XG4gICAgLmFsZXJ0LWJveCB7XG4gICAgICAgIG1heC13aWR0aDogNDAlO1xuICAgIH1cbn1cblxuQG1lZGlhICN7JHhsYXJnZS11cH0ge1xuICAgIC5hbGVydC1ib3gge1xuICAgICAgICBtYXgtd2lkdGg6IDMwJTtcbiAgICB9XG59XG4iLCIvKipcbiAqIEJvcnJvd2VkIHBhcnRzIG9mIGh0dHBzOi8vZ2l0aHViLmNvbS9kYW5lZGVuL2FuaW1hdGUuY3NzXG4gKi9cblxuLmFuaW1hdGVkIHtcbiAgICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tZHVyYXRpb24sIDFzLCB3ZWJraXQgc3BlYyk7XG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWZpbGwtbW9kZSwgYm90aCwgd2Via2l0IHNwZWMpO1xufVxuXG4uYW5pbWF0ZSxcbi5ncm93bC1hbmltYXRlZCB7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgLjRzIGVhc2UtaW4tb3V0KTtcbn1cblxuQGluY2x1ZGUga2V5ZnJhbWVzKGZhZGVJbkRvd24pIHtcbiAgICAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zbGF0ZTNkKDAsIC0xMDAlLCAwKTtcbiAgICB9XG5cbiAgICAxMDAlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNmb3JtLCBub25lLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG4gICAgfVxufVxuXG4uZmFkZUluRG93biB7XG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLW5hbWUsIGZhZGVJbkRvd24sIHdlYmtpdCBzcGVjKTtcbn1cblxuQGluY2x1ZGUga2V5ZnJhbWVzKGZhZGVPdXRVcCkge1xuICAgIDAlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAxMDAlIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApO1xuICAgIH1cbn1cblxuLmZhZGVPdXRVcCB7XG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLW5hbWUsIGZhZGVPdXRVcCwgd2Via2l0IHNwZWMpO1xufSIsIiRiZXN0c2VsbGVyLWltYWdlLXNpemU6ICR0b3VjaC1mcmllbmRseS1zaXplICFkZWZhdWx0O1xuXG4uYmVzdHNlbGxlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogLjI1cmVtIDA7XG5cbiAgICAucm93IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cbn1cblxuLmJlc3RzZWxsZXJfX3RpdGxlIHtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiAgICBwYWRkaW5nOiAoKCR0b3VjaC1mcmllbmRseS1zaXplIC0gKDFyZW0gKiAkcGFyYWdyYXBoLWxpbmUtaGVpZ2h0KSkvMikgMDtcbn1cblxuLmJlc3RzZWxsZXJfX2ltYWdlIHtcbiAgICB3aWR0aDogJGJlc3RzZWxsZXItaW1hZ2Utc2l6ZTtcbiAgICBoZWlnaHQ6ICRiZXN0c2VsbGVyLWltYWdlLXNpemU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiA1MCU7XG4gICAgbWFyZ2luLXRvcDogLSN7JGJlc3RzZWxsZXItaW1hZ2Utc2l6ZSAvIDJ9O1xuICAgIGxpbmUtaGVpZ2h0OiAkYmVzdHNlbGxlci1pbWFnZS1zaXplO1xufVxuXG4uYmVzdHNlbGxlcl9faW1hZ2UgaW1nIHtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgbWF4LXdpZHRoOiAkYmVzdHNlbGxlci1pbWFnZS1zaXplO1xuICAgIG1heC1oZWlnaHQ6ICRiZXN0c2VsbGVyLWltYWdlLXNpemU7XG59IiwiLmJsb2NrLWltYWdlLWdyaWQge1xuICAgIEBpbmNsdWRlIGJsb2NrLWdyaWQoMyk7XG59IiwiLmJsb2NrX19ib3hfX2hlYWRsaW5lIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMjApO1xuICAgIHBhZGRpbmc6IC41cmVtICRjb2x1bW4tZ3V0dGVyLzIgLjVyZW0gJGNvbHVtbi1ndXR0ZXIvMjtcbiAgICBtYXJnaW46IDA7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cblxuICAgICY6YWZ0ZXIge1xuICAgICAgICBAaW5jbHVkZSBpY29uKCRpY29uLXZhci1rZXlib2FyZC1hcnJvdy1kb3duKTtcbiAgICAgICAgQGV4dGVuZCAuaWNvbi1sYXJnZTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAuNXJlbTtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKHRyYW5zZm9ybSA0MDBtcyBlYXNlKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICB9XG5cbiAgICAmLnRvZ2dsZWQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgICAgICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCNmZmYsICRwcmltYXJ5LWNvbG9yKTtcblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybShyb3RhdGV4KDE4MGRlZykpO1xuICAgICAgICB9XG4gICAgfVxuXG59XG5cbi5ibG9ja19fYm94X19jb250ZW50IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHBhZGRpbmc6IC41cmVtICRjb2x1bW4tZ3V0dGVyLzIgJGNvbHVtbi1ndXR0ZXIgJGNvbHVtbi1ndXR0ZXIvMjtcbn1cblxuLmJsb2NrX19ib3gge1xuICAgIHVsIHtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgIHVsIGxpIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMXJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGxpIHtcbiAgICAgICAgYSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cblxuICAgICAgICAmLnBhcmVudCB7XG4gICAgICAgICAgICA+IGEuanMtdG9nZ2xlLXZpc2liaWxpdHk6YmVmb3JlLCA+IC5tYWluLW5hdl9fdG9nZ2xlOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgMzAwbXMgZWFzZSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaWNvbigkaWNvbi12YXItYWRkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPiBhLnRvZ2dsZWQsID4gLm1haW4tbmF2X190b2dnbGUudG9nZ2xlZCB7XG4gICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0ocm90YXRlKDEzNWRlZykpO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGFsZXJ0LWNvbG9yO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPiB1bCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICYuYmxvY2tfX2JveC0tbG9nb19saXN0IGE6YmVmb3JlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbi5ibG9ja19fbG9naW5fX2ZvcmdvdHBhc3N3b3JkIHtcbiAgICBAaW5jbHVkZSBidXR0b24tc2l6ZSgkcGFkZGluZzokYnV0dG9uLXNtbCk7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG59XG5cbiNmb290ZXIge1xuICAgIC5mb290ZXItYmxvY2s6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRjb2x1bW4tZ3V0dGVyO1xuXG4gICAgICAgIC5ibG9ja19fYm94Omxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpZiBsdW1hKCRmb290ZXItYmcpIDwgNTAge1xuICAgICAgICAkZm9vdGVyLXRleHQtY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRsaWdodC1ib2R5LXRleHQsICRmb290ZXItYmcpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgICAkZm9vdGVyLXRleHQtY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRkYXJrLWJvZHktdGV4dCwgJGZvb3Rlci1iZyk7XG4gICAgfVxuICAgICRmb290ZXItbGluay1wYWRkaW5nOiAoKCgkdG91Y2gtZnJpZW5kbHktc2l6ZSAtICgxcmVtICogJHBhcmFncmFwaC1saW5lLWhlaWdodCkpLzIpICsgLjI1cmVtKSAhZGVmYXVsdDtcblxuICAgIC5ibG9ja19fYm94IHtcbiAgICAgICAgbGkgYS5uZXV0cmFsLWxpbms6YmVmb3JlLFxuICAgICAgICBsaS5uZXV0cmFsLWxpbmsgPiBhOmJlZm9yZSB7XG4gICAgICAgICAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJHByaW1hcnktY29sb3IsICRmb290ZXItYmcpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGkgYS50b2dnbGVkOmJlZm9yZSB7XG4gICAgICAgICAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGFsZXJ0LWNvbG9yLCAkZm9vdGVyLWJnKTtcbiAgICAgICAgfVxuICAgICAgICAubWFpbi1uYXZfX3RvZ2dsZSwgLm1haW4tbmF2X190b2dnbGU6YmVmb3JlIHtcbiAgICAgICAgICAgIGhlaWdodDogcmVtLWNhbGMoNTApO1xuICAgICAgICAgICAgd2lkdGg6IHJlbS1jYWxjKDUwKTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiByZW0tY2FsYyg1MCk7XG4gICAgICAgICAgICB0ZXh0LWluZGVudDogMDtcbiAgICAgICAgfVxuICAgICAgICBsaS5sZXZlbC0wIHtcbiAgICAgICAgICAgICYsIGxpIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggcmdiYSgkZm9vdGVyLXRleHQtY29sb3IsICRib3JkZXItZGVmYXVsdC1vcGFjaXR5KSBzb2xpZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3Atd2lkdGg6IDBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6ICRmb290ZXItbGluay1wYWRkaW5nIDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLyoqXG4gICAgICAgICAqIE9uIG1lbnUgbGV2ZWwgMSB3ZSB1c2UgcGx1cyBzaWduIGFzIHBhcmVudCBpbmRpY2F0b3IsIHNpbmNlIGxldmVsIDJcbiAgICAgICAgICogc3VibWVudXMgbWF5IHBvcCB1cCBib3RoIHRvIHRoZSBsZWZ0IGFuZCB0byB0aGUgcmlnaHRcbiAgICAgICAgICovXG4gICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggNSB7XG4gICAgICAgICAgICBsaS5sZXZlbC0jeyRpfSB7XG4gICAgICAgICAgICAgICAgdGV4dC1pbmRlbnQ6ICgkZm9vdGVyLWxpbmstcGFkZGluZyAqIDEuNSkgKiAkaTtcbiAgICAgICAgICAgICB9XG4gICAgIFx0fVxuICAgICAgICBsaS5wYXJlbnQge1xuXG4gICAgXHRcdCYgPiBhIHtcbiAgICBcdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgXHRcdH1cblxuICAgIFx0XHQmLmN1cnJlbnQsXG4gICAgXHRcdCYuc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgICYgPiB1bCB7XG4gICAgXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAjZm9vdGVyIHtcbiAgICAgICAgLmZvb3Rlci1ibG9jazpmaXJzdC1jaGlsZCxcbiAgICAgICAgLmZvb3Rlci1ibG9jazpudGgtbGFzdC1jaGlsZCgyKSB7XG4gICAgICAgICAgICAuYmxvY2tfX2JveDpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuYmxvY2tfX2JveDpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMXB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmJsb2NrX19ib3hfX2hlYWRsaW5lIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuXG4gICAgICAgICYudG9nZ2xlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICAgICAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGN1cnNvcjogaW5oZXJpdDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5ibG9ja19fYm94X19jb250ZW50IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICAgICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICAgIG9wYWNpdHk6IDEgIWltcG9ydGFudDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIH1cbn1cblxuQG1lZGlhICN7JGxhcmdlLXVwfSB7XG4gICAgI2Zvb3RlciB7XG4gICAgICAgIC5mb290ZXItYmxvY2sge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogJGNvbHVtbi1ndXR0ZXI7XG5cbiAgICAgICAgICAgIC5ibG9ja19fYm94Omxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59IiwiLmJsb2NrX19ib3gtLWJhbm5lcnMsXG4uYmxvY2tfX2JveC0tYmFubmVyc19yaWdodCxcbi5ibG9ja19fYm94LS1iYW5uZXJzX2xlZnQge1xuICAgIFxuICAgICYsIC5ibG9ja19fYm94X19jb250ZW50IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQhaW1wb3J0YW50O1xuICAgIH1cbiAgICBcbiAgICBcbiAgICAuYmxvY2tfX2JveF9faGVhZGxpbmUtd3JhcHBlcixcbiAgICAuYmxvY2tfX2JveF9faGVhZGxpbmUge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC53cmFwcGVyX2Jhbm5lciB7XG4gICAgXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICBcdCYgPiBkaXYge1xuICAgIFx0XHRtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgIC8vIEZ1bGwgc2l6ZSB0aGUgaW1hZ2VcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICBAaWYgJGdsb2JhbC1yYWRpdXMgPiAwIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgLSAxOyAvLyBWaXN1YWwgc2ltaWxhcml0eSB0byBib3hlc1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgIFx0XHQmOmxhc3QtY2hpbGQge1xuICAgIFx0XHRcdG1hcmdpbi1ib3R0b206IDA7XG4gICAgXHRcdH1cbiAgICBcdH1cbiAgICB9XG59XG5cbiIsIiVib3JkZXJlZCB7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6IDA7XG59XG5cbi5ib3JkZXJlZCB7XG4gICAgQGV4dGVuZCAlYm9yZGVyZWQ7XG59XG5cbi5ib3JkZXJlZC0tYWxsIHtcbiAgICBAZXh0ZW5kICVib3JkZXJlZDtcbiAgICBib3JkZXItd2lkdGg6IDFweDtcbn1cblxuLmJvcmRlcmVkLS1ib3R0b20ge1xuICAgIEBleHRlbmQgJWJvcmRlcmVkO1xuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDFweDtcblxuICAgICYuYm9yZGVyZWRfX2xpc3QtaXRlbTpsYXN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgICB9XG59XG5cbi5ib3JkZXJlZC0tdG9wIHtcbiAgICBAZXh0ZW5kICVib3JkZXJlZDtcbiAgICBib3JkZXItdG9wLXdpZHRoOiAxcHg7XG59XG5cbi5ib3JkZXJlZC0tbGVmdCB7XG4gICAgQGV4dGVuZCAlYm9yZGVyZWQ7XG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDFweDtcbn1cblxuLmJvcmRlcmVkLS1yaWdodCB7XG4gICAgQGV4dGVuZCAlYm9yZGVyZWQ7XG4gICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XG59IiwiLyogc2VlIGZvdW5kYXRpb24vY29tcG9uZW50cy9icmVhZGNydW1icyBmb3IgdGhlIGJhc2Ugc3R5bGluZyBhbmQgb3B0aW9ucyAqL1xuXG4vLyBUaGlzIGlzIHRvIG1ha2UgaXQgcG9zc2libGUgdG8gZGlzYWJsZSBmb3VuZGF0aW9uIG5hdiBzdHlsaW5nIHdpdGhvdXQgbG9zaW5nIGJyZWFkY3J1bWJzXG4kaW5jbHVkZS1xdWlja2ZpeC1icmVhZGNydW1icy1jbGFzc2VzOiB0cnVlICFkZWZhdWx0O1xuXG4kYnJlYWRjcnVtYi1jb250YWluZXItaGVpZ2h0OiAkaDEtZm9udC1zaXplICogJGhlYWRlci1saW5lLWhlaWdodCAhZGVmYXVsdDtcbiRicmVhZGNydW1iLWxpbmUtaGVpZ2h0OiAgICAgICRwYXJhZ3JhcGgtbGluZS1oZWlnaHQgIWRlZmF1bHQ7XG4kYnJlYWRjcnVtYi1wYWRkaW5nOiAgICAgICAgICAoJGJyZWFkY3J1bWItY29udGFpbmVyLWhlaWdodCAtICRjcnVtYi1mb250LXNpemUgKiAkYnJlYWRjcnVtYi1saW5lLWhlaWdodCkgLyAyICFkZWZhdWx0O1xuXG5AaWYgJGluY2x1ZGUtcXVpY2tmaXgtYnJlYWRjcnVtYnMtY2xhc3NlcyBhbmQgbm90ICRpbmNsdWRlLWh0bWwtbmF2LWNsYXNzZXMge1xuICAgIC5icmVhZGNydW1icyB7XG4gICAgICBAaW5jbHVkZSBjcnVtYi1jb250YWluZXI7XG4gICAgICBAaW5jbHVkZSByYWRpdXMoJGNydW1iLXJhZGl1cyk7XG5cbiAgICAgICY+KiB7XG4gICAgICAgIEBpbmNsdWRlIGNydW1icztcbiAgICAgIH1cbiAgICB9XG59XG5cbkBpZiAkaW5jbHVkZS1xdWlja2ZpeC1icmVhZGNydW1icy1jbGFzc2VzIHtcbiAgICAuYnJlYWRjcnVtYnMge1xuICAgICAgICBmb250LWZhbWlseTogJGNydW1iLWZvbnQtZmFtaWx5O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblxuICAgICAgICAmID4gbGkge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRicmVhZGNydW1iLWxpbmUtaGVpZ2h0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmJyZWFkY3J1bWJzICsgaDEge1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgIH1cblxuICAgIEBtZWRpYSAjeyRsYXJnZS11cH0ge1xuICAgICAgICAuYnJlYWRjcnVtYnMge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkaDEtZm9udC1zaXplICogJGhlYWRlci1saW5lLWhlaWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRicmVhZGNydW1iLXBhZGRpbmcgMDtcbiAgICAgICAgfVxuICAgIH1cbn0iLCJib2R5IHtcbiAgICAuYnV0dG9uLCBidXR0b24ge1xuICAgIFx0QGV4dGVuZCAuYnV0dG9uLnJhZGl1cztcbiAgICB9XG59IiwiJGJ4c2xpZGVyLWNvbnRyb2xzLXNpemU6ICR0b3VjaC1mcmllbmRseS1zaXplICFkZWZhdWx0O1xuJGJ4c2xpZGVyLWNvbnRyb2xzLWJvcmRlci1zaXplOiAyICFkZWZhdWx0O1xuJGJ4c2xpZGVyLWJ1bGxldC1uYXYtc2l6ZTogJHRvdWNoLWZyaWVuZGx5LXNpemUgIWRlZmF1bHQ7XG4kYnhzbGlkZXItY29udHJvbHMtbmF2aWdhdGlvbi1yYWRpdXM6ICRieHNsaWRlci1jb250cm9scy1zaXplLzIgIWRlZmF1bHQ7XG4kYnhzbGlkZXItY29udHJvbHMtbmF2aWdhdGlvbi1sb2NhdGlvbjogb3V0c2lkZSAhZGVmYXVsdDtcbiRieHNsaWRlci1wYWdlci1saW5rLWJnOiAkY29udGVudC1iZyAhZGVmYXVsdDtcbiRieHNsaWRlci1uYXYtYXJyb3ctc2l6ZTogcmVtLWNhbGMoMzApICFkZWZhdWx0O1xuXG4uYngtd3JhcHBlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uYngtY29udHJvbHMtZGlyZWN0aW9uIGEge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICBtYXJnaW4tdG9wOiAtI3skYnhzbGlkZXItY29udHJvbHMtc2l6ZS8yfTtcbiAgICBvdXRsaW5lOiAwO1xuICAgIHdpZHRoOiAkYnhzbGlkZXItY29udHJvbHMtc2l6ZTtcbiAgICBoZWlnaHQ6ICRieHNsaWRlci1jb250cm9scy1zaXplO1xuICAgIHRleHQtaW5kZW50OiAxMDAlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIHotaW5kZXg6IDEwMDtcbiAgICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMjAwbXMsIC13ZWJraXQtdHJhbnNmb3JtIDE1MG1zIGVhc2U7XG4gICAgLXdlYmtpdC10cmFuc2l0aW9uLWRlbGF5OiBlYXNlLCAwcztcbiAgICAtbW96LXRyYW5zaXRpb246IG9wYWNpdHkgMjAwbXMgZWFzZSwgLW1vei10cmFuc2Zvcm0gMTUwbXMgZWFzZTtcbiAgICAtby10cmFuc2l0aW9uOiBvcGFjaXR5IDIwMG1zIGVhc2UsIC1vLXRyYW5zZm9ybSAxNTBtcyBlYXNlO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMjAwbXMgZWFzZSwgdHJhbnNmb3JtIDE1MG1zIGVhc2U7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygyMik7XG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoYm9yZGVyLXJhZGl1cywgJGJ4c2xpZGVyLWNvbnRyb2xzLW5hdmlnYXRpb24tcmFkaXVzLCBtcyBzcGVjKTtcbiAgICBib3JkZXI6ICN7JGJ4c2xpZGVyLWNvbnRyb2xzLWJvcmRlci1zaXplfXB4IHNvbGlkICNmZmY7XG5cbiAgICAuc2xpZGVyX193aXRoLW5hdiAmIHtcbiAgICAgICAgbWFyZ2luLXRvcDogLSN7JGJ4c2xpZGVyLWNvbnRyb2xzLXNpemUvMiArICRieHNsaWRlci1idWxsZXQtbmF2LXNpemUvMn07XG4gICAgfVxuICAgXG4gICAgJjphZnRlciB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbih0ZXh0LWluZGVudCAyMDBtcyBlYXNlKTtcbiAgICAgICAgd2lkdGg6ICRieHNsaWRlci1jb250cm9scy1zaXplO1xuICAgICAgICBmb250LXNpemU6ICRieHNsaWRlci1uYXYtYXJyb3ctc2l6ZTtcbiAgICAgICAgdG9wOiAtI3skYnhzbGlkZXItY29udHJvbHMtYm9yZGVyLXNpemV9cHg7XG4gICAgICAgIGxlZnQ6IC0jeyRieHNsaWRlci1jb250cm9scy1ib3JkZXItc2l6ZX1weDtcbiAgICAgICAgei1pbmRleDogMTAxO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgJi5kaXNhYmxlZCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG4vLyBSZXZlcnNlIGNvbG9yc1xuQGlmIGxpZ2h0bmVzcygkY29udGVudC1iZykgPiA1MCUge1xuICAgIC5ieC1jb250cm9scy1kaXJlY3Rpb24gYSB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLCAuNCk7XG4gICAgICAgIGJvcmRlcjogI3skYnhzbGlkZXItY29udHJvbHMtYm9yZGVyLXNpemV9cHggc29saWQgI2ZmZjtcblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLCAuOSk7XG4gICAgICAgIH1cbiAgICB9XG59IEBlbHNlIHtcbiAgICAuYngtY29udHJvbHMtZGlyZWN0aW9uIGEge1xuICAgICAgICBjb2xvcjogIzAwMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwgLjI1KTtcbiAgICAgICAgYm9yZGVyOiAjeyRieHNsaWRlci1jb250cm9scy1ib3JkZXItc2l6ZX1weCBzb2xpZCAjMDAwO1xuXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgY29sb3I6ICMwMDA7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsIC45KTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmJ4LW5leHQge1xuICAgIHJpZ2h0OiAjeyRjb2x1bW4tZ3V0dGVyLzJ9O1xuXG4gICAgJjphZnRlciB7XG4gICAgICAgIEBpbmNsdWRlIGljb24oJGljb24tdmFyLWNoZXZyb24tcmlnaHQpO1xuICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgdGV4dC1pbmRlbnQ6IDNweDtcbiAgICB9XG5cbiAgICAmOmhvdmVyOmFmdGVyLFxuICAgICY6Zm9jdXM6YWZ0ZXIge1xuICAgICAgICB0ZXh0LWluZGVudDogOXB4O1xuICAgIH1cblxuICAgICY6YWN0aXZlOmFmdGVyIHtcbiAgICAgICAgdGV4dC1pbmRlbnQ6IDA7XG4gICAgfVxuXG59XG5cbi5ieC1wcmV2IHtcbiAgICBsZWZ0OiAjeyRjb2x1bW4tZ3V0dGVyLzJ9O1xuXG4gICAgJjphZnRlciB7XG4gICAgICAgIEBpbmNsdWRlIGljb24oJGljb24tdmFyLWNoZXZyb24tbGVmdCk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICB0ZXh0LWluZGVudDogLTNweDtcbiAgICB9XG5cbiAgICAmOmhvdmVyOmFmdGVyLFxuICAgICY6Zm9jdXM6YWZ0ZXIge1xuICAgICAgICB0ZXh0LWluZGVudDogLTlweDtcbiAgICB9XG5cbiAgICAmOmFjdGl2ZTphZnRlciB7XG4gICAgICAgIHRleHQtaW5kZW50OiAwO1xuICAgIH1cbn1cblxuLmJ4LXBhZ2VyIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgLy8gVG8gcHJldmVudCBsYXJnZSBwYWludCBmcmFtZXMgb24gY2hyb21lIGZvciAuYngtcGFnZXItaXRlbVxuICAgIC8vIFdpdGhvdXQgdGhpcyAuYngtcGFnZXItaXRlbSBjb25zdW1lIDUuOE1CIGluc3RlYWQgb2YgNS44S0JcbiAgICBvdmVyZmxvdzogaGlkZGVuOyBcbn1cblxuLmJ4LXBhZ2VyLWl0ZW0ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5ieC1wYWdlci1saW5rIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiAkYnhzbGlkZXItYnVsbGV0LW5hdi1zaXplO1xuICAgIHdpZHRoOiAkYnhzbGlkZXItYnVsbGV0LW5hdi1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiAkYnhzbGlkZXItYnVsbGV0LW5hdi1zaXplO1xuICAgIGZvbnQtc2l6ZTogMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgJjphZnRlciB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBmb250LXNpemU6IC44cmVtO1xuICAgICAgICBvcGFjaXR5OiAuMjU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBAaW5jbHVkZSBpY29uKCRpY29uLXZhci1icmlnaHRuZXNzLTEpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnhzbGlkZXItcGFnZXItbGluay1iZztcbiAgICAgICAgQGlmICRieHNsaWRlci1wYWdlci1saW5rLWJnICE9IHRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgIEBpZiBsdW1hKCRieHNsaWRlci1wYWdlci1saW5rLWJnKSA8IDUwIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoI2ZmZiwgJGJ4c2xpZGVyLXBhZ2VyLWxpbmstYmcpO1xuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCMwMDAsICRieHNsaWRlci1wYWdlci1saW5rLWJnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGNvbnRlbnQtYmcsICRjb250ZW50LWJnKTtcbiAgICAgICAgfVxuICAgICAgICBoZWlnaHQ6ICRieHNsaWRlci1idWxsZXQtbmF2LXNpemU7XG4gICAgICAgIHdpZHRoOiAkYnhzbGlkZXItYnVsbGV0LW5hdi1zaXplO1xuICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGZvbnQtc2l6ZSAyMDBtcyBlYXNlKTtcbiAgICB9XG5cbiAgICAmLmFjdGl2ZTphZnRlciB7XG4gICAgICAgIG9wYWNpdHk6IC43NTtcbiAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgIH1cblxuICAgICY6aG92ZXI6YWZ0ZXIsXG4gICAgJjpmb2N1czphZnRlciB7XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgQGlmICRieHNsaWRlci1wYWdlci1saW5rLWJnICE9IHRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkcHJpbWFyeS1jb2xvciwgJGJ4c2xpZGVyLXBhZ2VyLWxpbmstYmcpO1xuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkcHJpbWFyeS1jb2xvciwgJGNvbnRlbnQtYmcpO1xuICAgICAgICB9XG4gICAgICAgIG9wYWNpdHk6IC43NTtcbiAgICB9XG59XG5cbkBpZiAkYnhzbGlkZXItY29udHJvbHMtbmF2aWdhdGlvbi1sb2NhdGlvbiA9PSBvdXRzaWRlIHtcbiAgICBAbWVkaWEgI3skeGxhcmdlLXVwfSB7XG4gICAgICAgIC5ieC1wcmV2IHtcbiAgICAgICAgICAgIGxlZnQ6IC0jeyRieHNsaWRlci1jb250cm9scy1zaXplICsgJGNvbHVtbi1ndXR0ZXJ9O1xuICAgICAgICB9XG5cbiAgICAgICAgLmJ4LW5leHQge1xuICAgICAgICAgICAgcmlnaHQ6IC0jeyRieHNsaWRlci1jb250cm9scy1zaXplICsgJGNvbHVtbi1ndXR0ZXJ9O1xuICAgICAgICB9XG4gICAgICAgIFxuICAgIH1cbn0iLCIkY2FydC1zdHlsZTogZnVsbCAhZGVmYXVsdDtcbiRjYXJ0LXF1YW50aXR5LWJhZGdlLXNpemU6IDEuNXJlbSAhZGVmYXVsdDtcbiRjYXJ0LXF1YW50aXR5LWJhZGdlLXJhZGl1czogNTAlICFkZWZhdWx0O1xuXG5AaW1wb3J0IFwiY2FydC1idXR0b24tZnVsbFwiO1xuQGltcG9ydCBcImNhcnQtYnV0dG9uLXNpbXBsZVwiO1xuXG5AaWYgJGNhcnQtc3R5bGUgPT0gZnVsbCB7XG4gICAgQGluY2x1ZGUgY2FydC1idXR0b24tZnVsbCgpO1xufSBAZWxzZWlmICRjYXJ0LXN0eWxlID09IHNpbXBsZSB7XG4gICAgQGluY2x1ZGUgY2FydC1idXR0b24tc2ltcGxlKCk7XG59XG4iLCIvLyBDYXJ0IGJ1dHRvbiB3aXRoIHF1YW50aXR5LCBzdW0gYW5kIGNoZWNrb3V0IGJ1dHRvblxuXG5AbWl4aW4gY2FydC1idXR0b24tZnVsbCgpIHtcbiAgICAuY2FydC1idXR0b25fX3F1YW50aXR5LFxuICAgIC5jYXJ0LWJ1dHRvbl9fc3VtLFxuICAgIC5jYXJ0LWJ1dHRvbl9fY3VycmVuY3kge1xuICAgICAgICBsaW5lLWhlaWdodDogJGNhcnQtcXVhbnRpdHktYmFkZ2Utc2l6ZTtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxMik7XG4gICAgICAgIGhlaWdodDogJGNhcnQtcXVhbnRpdHktYmFkZ2Utc2l6ZTtcbiAgICB9XG5cbiAgICAuY2FydC1idXR0b25fX3N1bSxcbiAgICAuY2FydC1idXR0b25fX2N1cnJlbmN5IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAuY2FydC1idXR0b25fX3F1YW50aXR5IHtcbiAgICAgICAgQGV4dGVuZCAuY2FsbC10by1hY3Rpb24tY29sb3ItYmc7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgQGluY2x1ZGUgcmFkaXVzKCRjYXJ0LXF1YW50aXR5LWJhZGdlLXJhZGl1cyk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRjYXJ0LXF1YW50aXR5LWJhZGdlLXNpemU7XG5cbiAgICAgICAgLmNhcnQtYnV0dG9uLS1lbXB0eSAmIHtcbiAgICAgICAgICAgIEBleHRlbmQgLnNlY29uZGFyeS1jb2xvci1iZztcbiAgICAgICAgfVxuXG4gICAgICAgIC5jYXJ0LWJ1dHRvbjpob3ZlciAmLFxuICAgICAgICAuY2FydC1idXR0b24tLWhpZ2hsaWdodGVkICYge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGhvdmVyLWNvbG9yICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBjb2xvcjogJGhvdmVyLWJnLXRleHQtY29sb3I7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgM3B4IDNweCByZ2JhKDAsIDAsIDAsIC4xKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIDIwMG1zIGVhc2UpO1xuICAgIH1cblxuICAgIC5pY29uLWxhcmdlci10aGFuOmFmdGVyIHtcbiAgICAgICAgQGluY2x1ZGUgaWNvbigkaWNvbi12YXItY2hldnJvbi1yaWdodCk7XG4gICAgICAgIG1hcmdpbi1yaWdodDogLTNweDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC00cHg7XG4gICAgfVxuXG4gICAgLmNhcnQtYnV0dG9uIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IHJlbS1jYWxjKDM3KTtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuICAgICAgICBjb2xvcjogJGJvZHktZm9udC1jb2xvcjtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMXJlbTtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmNoZWNrb3V0LWJ1dHRvbiB7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBAaW5jbHVkZSBidXR0b24tc2l6ZShyZW0tY2FsYygxMCkpO1xuICAgICAgICBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGNhbGwtdG8tYWN0aW9uLWNvbG9yLCB0cnVlKTtcbiAgICAgICAgcGFkZGluZzogMCAxcmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogJGJ1dHRvbi1zaXplO1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRob3Zlci1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jYXJ0LWljb246YmVmb3JlIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLTlweDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jYXJ0LWJ1dHRvbi0tZW1wdHkge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuXG4gICAgICAgIC5jYXJ0LWJ1dHRvbl9fc3VtLFxuICAgICAgICAuY2FydC1idXR0b25fX2N1cnJlbmN5LFxuICAgICAgICB+IC5jaGVja291dC1idXR0b24ge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmNhcnRfX2ljb24tY2FydCB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IC4xcmVtO1xuICAgIH1cblxuICAgIC5jYXJ0LWJ1dHRvbl9fdGV4dCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLmNhcnRfX2ljb24tcHJvY2VkZSAge1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDEzKTtcbiAgICB9XG5cbiAgICBAbWVkaWEgI3skc21hbGwtcGx1cy11cH0ge1xuICAgICAgICAuY2FydC1idXR0b25fX3N1bSxcbiAgICAgICAgLmNhcnQtYnV0dG9uX19jdXJyZW5jeSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cbiAgICB9XG59IiwiJGNhcnQtcXVhbnRpdHktYmFkZ2Utb2Zmc2V0OiA0cHg7XG5cbkBtaXhpbiBjYXJ0LWJ1dHRvbi1zaW1wbGUoKSB7XG5cbiAgICAuY2FydC1hbmQtY2hlY2tvdXQge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxuXG4gICAgLmNhcnQtYnV0dG9uX19xdWFudGl0eSB7XG4gICAgICAgIHBvc2l0aW9uOmFic29sdXRlO1xuICAgICAgICBib3R0b206IC0jeyRjYXJ0LXF1YW50aXR5LWJhZGdlLW9mZnNldH07XG4gICAgICAgIHJpZ2h0OiAtI3skY2FydC1xdWFudGl0eS1iYWRnZS1vZmZzZXR9O1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDEyKTtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxMik7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkY2FydC1xdWFudGl0eS1iYWRnZS1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRjYXJ0LXF1YW50aXR5LWJhZGdlLXNpemU7XG4gICAgICAgIEBpbmNsdWRlIHJhZGl1cygwKTtcbiAgICAgICAgcGFkZGluZzogMCA0cHg7XG4gICAgICAgIEBleHRlbmQgLmNhbGwtdG8tYWN0aW9uLWNvbG9yLWJnO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgb3BhY2l0eTogLjk7XG5cbiAgICAgICAgLmNhcnQtYnV0dG9uLS1lbXB0eSAmIHtcbiAgICAgICAgICAgIEBleHRlbmQgLnNlY29uZGFyeS1jb2xvci1iZztcbiAgICAgICAgICAgIG9wYWNpdHk6IC45O1xuICAgICAgICB9XG5cbiAgICAgICAgLmNhcnQtYnV0dG9uOmhvdmVyICYsXG4gICAgICAgIC5jYXJ0LWJ1dHRvbi0taGlnaGxpZ2h0ZWQgJiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaG92ZXItY29sb3IgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGNvbG9yOiAkaG92ZXItYmctdGV4dC1jb2xvcjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAzcHggM3B4IHJnYmEoMCwgMCwgMCwgLjEpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgMjAwbXMgZWFzZSk7XG4gICAgfVxuXG4gICAgLmljb24tbGFyZ2VyLXRoYW46YWZ0ZXIge1xuICAgICAgICBAaW5jbHVkZSBpY29uKCRpY29uLXZhci1jaGV2cm9uLXJpZ2h0KTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtM3B4O1xuICAgICAgICBtYXJnaW4tbGVmdDogLTRweDtcbiAgICB9XG5cbiAgICAuY2FydC1idXR0b25fX2ljb246YmVmb3JlIHtcbiAgICAgICAgZm9udC1zaXplOiAycmVtO1xuICAgIH1cblxuICAgIC5jYXJ0LWJ1dHRvbl9fdGV4dCxcbiAgICAuY2FydC1idXR0b25fX3N1bSxcbiAgICAuY2FydC1idXR0b25fX2N1cnJlbmN5IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAuY2FydC1hbmQtY2hlY2tvdXQgLmNoZWNrb3V0LWJ1dHRvbiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG59IiwiJGNoZWNrb3V0LXNtYWxsLXNwYWNpbmc6IHJlbS1jYWxjKDIwKSAhZGVmYXVsdDtcbiRjaGVja291dC1tZWRpdW0tc3BhY2luZzogcmVtLWNhbGMoMzApICFkZWZhdWx0O1xuJGNoZWNrb3V0LWxhcmdlLXNwYWNpbmc6IHJlbS1jYWxjKDY5KSAhZGVmYXVsdDtcblxuJGNoZWNrb3V0LXN0ZXBzLWNvbnRhaW5lci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG5AaWYgKCRjaGVja291dC1zdGVwcy1jb250YWluZXItcmFkaXVzID4gMCkge1xuICAgICRjaGVja291dC1zdGVwcy1pbm5lci1jb250YWluZXItcmFkaXVzOiAkY2hlY2tvdXQtc3RlcHMtY29udGFpbmVyLXJhZGl1cyAtIDJweDtcbn0gQGVsc2Uge1xuICAgICRjaGVja291dC1zdGVwcy1pbm5lci1jb250YWluZXItcmFkaXVzOiAkY2hlY2tvdXQtc3RlcHMtY29udGFpbmVyLXJhZGl1cztcbn1cblxuJGVkaXQtc3RlcC1idG4tYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vIFVzZSByZWd1bGFyIGdyaWQgbWFyZ2lucyBmb3IgdGhlIGNoZWNrb3V0IGZvcm0gZ3JpZFxuI2thc3NlX29uZV9mb3JtLFxuI2thc3NlX29uZV9sb2dnaW5uIHtcbiAgICAucm93IC5yb3cge1xuICAgICAgICBAaW5jbHVkZSBncmlkLXJvdygkYmVoYXZpb3I6IG5lc3QpO1xuXG4gICAgICAgIC5jb2x1bW4sXG4gICAgICAgIC5jb2x1bW5zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIFplYnJhIHRhYmxlIHN0eWxpbmdcbiNrYXNzZV9vbmVfZm9ybSAuemVicmEge1xuICAgIGJvcmRlci1zcGFjaW5nOiAwO1xuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbiNrYXNzZV9vbmVfZm9ybSAuemVicmEgdHI6bGFzdC1jaGlsZCB0ZCB7XG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbn1cblxuLmNoZWNrb3V0X19zdGVwcyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNoZWNrb3V0LXN0ZXBzLWJnO1xuICAgIHBhZGRpbmc6IDJweDtcbiAgICBib3JkZXItcmFkaXVzOiAkY2hlY2tvdXQtc3RlcHMtY29udGFpbmVyLXJhZGl1cztcbiAgICBtYXJnaW4tdG9wOiAxZW07XG59XG5cbi8qIEVOSVJPIHNlYXJjaCAqL1xuXG4jZW5pcm9fZmV0Y2gge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuI2VuaXJvX29wdGlvbnMsXG4jZW5pcm9fbWVzc2FnZSxcbiNjbGllbnRfb3B0aW9ucyB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuI2VuaXJvX21lc3NhZ2Uge1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxZW07XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcbn1cblxuI2VuaXJvX29wdGlvbnMge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDNweCA2cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2JiYjtcbn1cblxuLmNhcnQtY29udGVudHMgLm1pbmktaW1nIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlci1yaWdodDogMDtcbn1cblxuLm1pbmktaW1nIGltZyB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLyogYnV0dG9ucyAqL1xuXG4uYnV0dG9uIC5hcnJvdyB7XG4gICAgcGFkZGluZy1sZWZ0OiAuNHJlbTtcbn1cblxuLmNoZWNrb3V0X19zdGVwX19jb250ZW50cyB7XG4gICAgYnV0dG9uLFxuICAgIC5idXR0b24ge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbn1cblxuYS5kaWFsb2dfdHJpZ2dlcixcbmEuZGlhbG9nX3RyaWdnZXI6bGluayxcbmEuZGlhbG9nX3RyaWdnZXI6dmlzaXRlZCB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5cbi5jaGVja291dF9fc3RlcF9fY29udGVudHMge1xuICAgIC5kaWFsb2ctcG9wdXAge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxZW07XG4gICAgfVxufVxuXG4uZGlhbG9nLXBvcHVwIGgyIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xufVxuXG4uZGlhbG9nLXBvcHVwIHtcbiAgICAua2Fzc2Vfb25lX2xvZ2dpbm5fZXJyb3Ige1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cblxuICAgIC5mb3JtX3N1Ym1pdCB7XG4gICAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAuNWVtO1xuICAgIH1cblxuICAgIC5mb3Jnb3RfcGFzc3dkIHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgfVxufVxuXG4uYWRkb25fYnV0dG9ucyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIHBhZGRpbmctcmlnaHQ6ICRjaGVja291dC1zbWFsbC1zcGFjaW5nO1xuICAgIGNsZWFyOiBib3RoO1xuICAgIG1hcmdpbi1ib3R0b206IC41cmVtO1xuXG4gICAgLmVkaXRfc3RlcCB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDJyZW07XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcblxuICAgICAgICAmLnRvZ2dsZWQgLmljb24tYWRkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybShyb3RhdGUoLTEzNWRlZykpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmljb24tYWRkIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEuNXJlbTtcbiAgICAgICAgd2lkdGg6IDFyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjVyZW07XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbih0cmFuc2Zvcm0gMC4zcyBlYXNlKTtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHJvdGF0ZSgwZGVnKSk7XG4gICAgfVxuXG4gICAgLmNoZWNrb3V0X19zdGVwLS1pbmFjdGl2ZSAmIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbi5uZXh0LXN0ZXAtYnRuIHtcbiAgICAmLmJ1dHRvbiB7XG4gICAgICAgIEBleHRlbmQgJWNvbnRlbnRfX3ByaW1hcnktY29sb3ItYmc7XG4gICAgfVxuXG4gICAgLmljb24ge1xuICAgICAgICBtYXJnaW4tbGVmdDogLjVlbTtcbiAgICB9XG59XG5cbi5jaGVja291dF9fc3RlcCAjY2xpZW50X2ZldGNoIHtcbiAgICBAZXh0ZW5kICVjb250ZW50X19wcmltYXJ5LWNvbG9yLWJnO1xufVxuXG4uZWRpdF9zdGVwLFxuLm1hcmtlcl9lZGl0X3N0ZXAge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIHBhZGRpbmc6IDAgLjVlbTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZWRpdC1zdGVwLWJ1dHRvbi1iZztcbiAgICBjb2xvcjogJGVkaXQtc3RlcC1idXR0b24tdGV4dC1jb2xvcjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogJGVkaXQtc3RlcC1idG4tYm9yZGVyLXJhZGl1cztcbiAgICBmb250LXNpemU6IDExcHg7XG59XG5cbi5wbHVzLWljb24ge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4uZWRpdF9zdGVwOmxpbmssXG4uZWRpdF9zdGVwOnZpc2l0ZWQge1xuICAgIGNvbG9yOiAkZWRpdC1zdGVwLWJ1dHRvbi10ZXh0LWNvbG9yO1xufVxuXG4uY2hlY2tvdXQge1xuICAgIC5jaGVja291dF9fc3RlcC0taW5hY3RpdmU6aG92ZXIgLmVkaXRfc3RlcCxcbiAgICAuY2hlY2tvdXRfX3N0ZXAtLWluYWN0aXZlIC5lZGl0X3N0ZXA6Zm9jdXMsXG4gICAgLmVkaXRfc3RlcDpob3ZlcixcbiAgICAuZWRpdF9zdGVwOmZvY3VzIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGVkaXQtc3RlcC1ob3Zlci1iZztcbiAgICAgICAgY29sb3I6ICRlZGl0LXN0ZXAtaG92ZXItdGV4dC1jb2xvcjtcbiAgICB9XG59XG5cbi5lZGl0X3N0ZXA6aG92ZXIgLnBsdXMtaWNvbiB7XG4gICAgY29sb3I6ICRlZGl0LXN0ZXAtaG92ZXItdGV4dC1jb2xvcjtcbn1cblxuLmVkaXRfc3RlcCB7XG4gICAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIG1hcmdpbjogMTlweCAkY2hlY2tvdXQtc21hbGwtc3BhY2luZyAwIDA7XG59XG5cbi5tYXJrZXJfZWRpdF9zdGVwIHtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBtYXJnaW4tdG9wOiAtNHB4O1xufVxuXG4jcHJvZ3Jlc3MtbGlzdCAuY29tcGxldGUgLm1hcmtlcl9lZGl0X3N0ZXAge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmbG9hdDogbm9uZTtcbn1cblxuaW5wdXQuY2hlY2tvdXRfX3F0eSB7XG4gICAgd2lkdGg6IDNyZW07XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xufVxuXG4vLyBVcGRhdGUgY2FydCBidXR0b25cblxuLmNoZWNrb3V0X191cGRhdGUtY2FydC1idG4ge1xuICAgIC5jaGVja291dF9fdXBkYXRlLWNhcnQtYnRuX191cGRhdGUge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgfVxuXG4gICAgLmNoZWNrb3V0X191cGRhdGUtY2FydC1idG5fX2xvYWRpbmcge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuLmNoZWNrb3V0X191cGRhdGUtY2FydC1idG46ZGlzYWJsZWQge1xuICAgIC5jaGVja291dF9fdXBkYXRlLWNhcnQtYnRuX191cGRhdGUge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC5jaGVja291dF9fdXBkYXRlLWNhcnQtYnRuX19sb2FkaW5nIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgIH1cbn1cblxuLy8gVXBkYXRlIGNhcnQgYnV0dG9uIGFuaW1hdGlvblxuLmVsbGlwc2lzX29uZSxcbi5lbGxpcHNpc190d28sXG4uZWxsaXBzaXNfdGhyZWUge1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMjApO1xuICAgIGxpbmUtaGVpZ2h0OiAxcmVtO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgQGluY2x1ZGUgYW5pbWF0aW9uKGVsbGlwc2lzIDAuOXMgaW5maW5pdGUpO1xuICAgIEBpbmNsdWRlIGFuaW1hdGlvbi1kZWxheSgwcyk7XG59XG5cbi5lbGxpcHNpc190d28ge1xuICAgIEBpbmNsdWRlIGFuaW1hdGlvbi1kZWxheSgwLjJzKTtcbn1cblxuLmVsbGlwc2lzX3RocmVlIHtcbiAgICBAaW5jbHVkZSBhbmltYXRpb24tZGVsYXkoMC4zcyk7XG59XG5cbkBpbmNsdWRlIGtleWZyYW1lcyhlbGxpcHNpcykge1xuICAgICAgMCUgeyBvcGFjaXR5OiAwOyB9XG4gICAgIDUwJSB7IG9wYWNpdHk6IDA7IH1cbiAgICAxMDAlIHsgb3BhY2l0eTogMTsgfVxufVxuXG4uZGlhbG9nLXBvcHVwIGlucHV0W3R5cGU9XCJlbWFpbFwiXSxcbi5kaWFsb2ctcG9wdXAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuXG4ubXNnYm94IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHBhZGRpbmc6IDFlbSAxZW0gMWVtIDFlbTtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBjbGVhcjogYm90aDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbXNnYm94LWJnO1xuICAgIGJvcmRlci1sZWZ0OiA1cHggc29saWQgJG1zZ2JveC1ib3JkZXItY29sb3I7XG4gICAgbWFyZ2luLWJvdHRvbTogMWVtO1xuXG4gICAgYSB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIH1cblxuICAgIHAge1xuICAgICAgICBwYWRkaW5nOiAwIDJlbSAwIDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG59XG5cbi5tc2dib3hfX2Nsb3NlIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygyMSk7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgY29sb3I6ICRtc2dib3gtY2xvc2UtdGV4dC1jb2xvcjtcbiAgICB0ZXh0LXNoYWRvdzogMCAxcHggMCAkbXNnYm94LWNsb3NlLXNoYWRvdy1jb2xvcjtcbiAgICBvcGFjaXR5OiAwLjI7XG4gICAgZm9udC1mYW1pbHk6ICdIZWx2ZXRpY2EgTmV1ZScsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQhaW1wb3J0YW50O1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgcGFkZGluZzogMDtcblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIH1cbn1cblxuXG4uY2hlY2tvdXRfX3N0ZXAge1xuICAgIHBhZGRpbmctdG9wOiAuNWVtO1xuICAgIHBhZGRpbmctYm90dG9tOiAyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMXB4O1xuICAgIGJhY2tncm91bmQ6ICRjb250ZW50LWJnO1xufVxuXG4uY2hlY2tvdXRfX3N0ZXAtLWluYWN0aXZlIHtcbiAgICBwYWRkaW5nLXRvcDogMDtcbn1cblxuI2pzLWNoZWNrb3V0c3RlcF9fb3ZlcnZpZXcgLmNoZWNrb3V0X19zdGVwX19jb250ZW50cyB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuI2pzLWNoZWNrb3V0c3RlcF9fb3ZlcnZpZXcsXG4janMtY2hlY2tvdXRzdGVwX19wYXltZXRob2Qge1xuICAgIC5qcy10b2dnbGUtdmlzaWJpbGl0eS5lZGl0X3N0ZXAge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICBtYXJnaW4tbGVmdDogMWVtO1xuICAgIH1cbn1cblxuLmNoZWNrb3V0X19zdGVwIHtcbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJGNoZWNrb3V0LXN0ZXBzLWlubmVyLWNvbnRhaW5lci1yYWRpdXMgJGNoZWNrb3V0LXN0ZXBzLWlubmVyLWNvbnRhaW5lci1yYWRpdXMgMCAwO1xuICAgIH1cblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAgMCAkY2hlY2tvdXQtc3RlcHMtaW5uZXItY29udGFpbmVyLXJhZGl1cyAkY2hlY2tvdXQtc3RlcHMtaW5uZXItY29udGFpbmVyLXJhZGl1cztcbiAgICB9XG59XG5cblxuLyogSW5hY3RpdmUgc3RlcCBzdHlsZXMgKi9cblxuLmNoZWNrb3V0X19zdGVwLS1pbmFjdGl2ZSB7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgYmFja2dyb3VuZDogJGNoZWNrb3V0LXN0ZXAtaW5hY3RpdmUtYmc7XG59XG5cbi5jaGVja291dF9fc3RlcF9fbWlycm9yLFxuLmNoZWNrb3V0X19zdGVwLS1pbmFjdGl2ZSAuY2hlY2tvdXRfX3N0ZXBfX2NvbnRlbnRzIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4uY2hlY2tvdXRfX3N0ZXAtLWluYWN0aXZlLnZhbGlkIC5jaGVja291dF9fc3RlcF9fbWlycm9yIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBjbGVhcjogYm90aDtcbn1cblxuI2pzLWNoZWNrb3V0c3RlcF9fYWRkcmVzcyB7XG4gICAgaDIge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICAgIH1cbiAgICAuY2hlY2tvdXRfX3N0ZXBfX21pcnJvciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG4uY2hlY2tvdXRfX3N0ZXBfX2NvbnRlbnRzIHtcbiAgICBwYWRkaW5nOiAwICRjaGVja291dC1zbWFsbC1zcGFjaW5nO1xuICAgIGNsZWFyOiBib3RoO1xufVxuXG4ja2Fzc2Vfb25lX2xvZ2luX3F1ZXN0aW9uLFxuI3dlbGNvbWVfbXNnLFxuI3dlbGNvbWVfbXNnLS10cnVlIHtcbiAgICBsaW5lLWhlaWdodDogMS41cmVtO1xufVxuXG4ja2Fzc2Vfb25lX2xvZ2luX3F1ZXN0aW9uIHAuc3VidGxlIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xufVxuXG4ua2Fzc2Vfb25lX2xvZ2dpbm5fZXJyb3Ige1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG59XG5cbi5jaGVja291dF9fc3RlcC0taW5hY3RpdmUgaDIge1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGNvbG9yOiByZ2JhKCRjb250ZW50LXRleHQtY29sb3IsIDAuOCk7XG59XG5cbi5jaGVja291dF9fc3RlcF9fbWlycm9yIHtcbiAgICBjb2xvcjogIzg4ODtcbiAgICBwYWRkaW5nOiAwICRjaGVja291dC1zbWFsbC1zcGFjaW5nIDEuNWVtICRjaGVja291dC1sYXJnZS1zcGFjaW5nO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcblxuICAgIGgzIHtcbiAgICAgICAgbWFyZ2luOiAwIDAgLjVlbSAwO1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgfVxufVxuXG4ubWlycm9yX19maXJzdC1uYW1lLFxuLm1pcnJvcl9fbGFzdC1uYW1lLFxuLm1pcnJvcl9femlwLFxuLm1pcnJvcl9fY2l0eSB7XG4gICAgZGlzcGxheTogaW5saW5lO1xufVxuXG5cbi8qIGVuZCBpbmFjdGl2ZSBzdGVwIHN0eWxlcyAqL1xuXG4vKiBmcmVpZ2h0IG9wdGlvbnMgKi9cblxuLmZyZWlnaHQtb3B0aW9ucyxcbi5wYXltZW50LW9wdGlvbnMge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG4gICAgLmZyZWlnaHQtb3B0aW9uLFxuICAgIC5wYXltZW50LW9wdGlvbiB7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIEBleHRlbmQgLmJvcmRlcmVkLS1ib3R0b207XG4gICAgICAgIEBleHRlbmQgJWNvbnRlbnRfX2JvcmRlcmVkO1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnBheW1lbnQtb3B0aW9uIHtcbiAgICAgICAgZGlzcGxheTogdGFibGU7XG5cbiAgICAgICAgbGFiZWwge1xuICAgICAgICAgICAgZGlzcGxheTogdGFibGUtcm93O1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICAgICAmID4gKiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDFlbSAwIDFlbSAwO1xuXG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogNXB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5wYXltZW50LW9wdGlvbl9fcHJpY2Uge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAxZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLnRlc3Qge1xuICAgICAgICAgICAgLnBheW1lbnQtb3B0aW9uX19uYW1lOjphZnRlciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC41cmVtO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBpY29uKCRpY29uLXZhci13YXJuaW5nKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGFsZXJ0LWNvbG9yLCAkY29udGVudC1iZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuZnJlaWdodC1vcHRpb24ge1xuXG4gICAgICAgIGxhYmVsIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgcGFkZGluZzogMWVtIDVweCAxZW0gJGNoZWNrb3V0LW1lZGl1bS1zcGFjaW5nO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBpbnB1dFt0eXBlPXJhZGlvXSB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMjJweDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAycHg7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5mcmVpZ2h0LW9wdGlvbl9fbmFtZSB7XG4gICAgICAgIHdpZHRoOiA2MiU7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmctbGVmdDogM3B4O1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICB9XG5cbiAgICAuZnJlaWdodC1vcHRpb25fX3ByaWNlIHtcbiAgICAgICAgd2lkdGg6IDI5JTtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICB9XG5cbiAgICAuZnJlaWdodC1vcHRpb25fX2Rlc2MsXG4gICAgLnBheW1lbnQtb3B0aW9uX19kZXNjLFxuICAgIC5hdHRyaWJ1dGUge1xuICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCM5OTksICRjb250ZW50LWJnLCAyKTtcbiAgICAgICAgcGFkZGluZzogLjVlbSA4MHB4IC41ZW0gM3B4O1xuICAgIH1cblxuICAgIC5mcmVpZ2h0LW9wdGlvbl9fZGVzYyB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgLmF0dHJpYnV0ZSB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuXG4gICAgLnBheW1lbnQtb3B0aW9uX19uYW1lIHtcbiAgICAgICAgd2lkdGg6IDQwJTtcbiAgICB9XG5cbiAgICAucGF5bWVudC1vcHRpb25fX2lucHV0LXdyYXAge1xuICAgICAgICB3aWR0aDogJGNoZWNrb3V0LW1lZGl1bS1zcGFjaW5nO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDVweDtcblxuICAgICAgICAucmVtb3ZlX2dpZnRjYXJkIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgICAgIH1cblxuICAgICAgICBpbnB1dCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogM3B4O1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMnB4O1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wYXltZW50LW9wdGlvbl9fcHJpY2Uge1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogNXB4O1xuICAgIH1cblxuLyogZW5kIGZyZWlnaHQgb3B0aW9ucyAqL1xuXG5cbi8qIGVkaXQgc3RlcCBidXR0b24gKi9cbi5jaGVja291dF9fc3RlcC0taW5hY3RpdmUudmFsaWQgLmVkaXRfc3RlcCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5pcy10b2dnbGVyIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5rYXNzZV9tYWluIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBmbG9hdDogbGVmdDtcbn1cblxuLmNoZWNrb3V0X19zdGVwX19oZWFkbGluZSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbGluZS1oZWlnaHQ6IDI4cHg7XG4gICAgaGVpZ2h0OiAyOHB4O1xuICAgIG1hcmdpbjogMTZweCAwO1xuICAgIHBhZGRpbmc6IDAgMTBweCAwIDA7XG4gICAgY2xlYXI6IHJpZ2h0O1xuICAgIGZvbnQtc2l6ZTogMThweDtcbn1cblxuLmNoZWNrb3V0X19zdGVwLS1pbmFjdGl2ZSB7XG4gICAgJi52YWxpZCB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAua2Fzc2Vfb25lX3N0ZXBfbnVtYmVyIHtcbiAgICAgICAgICAgIEBleHRlbmQgJWNvbnRlbnRfX3ByaW1hcnktY29sb3ItYmc7XG4gICAgICAgIH1cblxuICAgICAgICBoMiB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cblxuLmthc3NlX29uZV9zdGVwX251bWJlciB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgaGVpZ2h0OiAyOHB4O1xuICAgIHdpZHRoOiAyOHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAyOHB4O1xuICAgIGZvbnQtc2l6ZTogMTdweDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB6LWluZGV4OiAxO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc3RlcC1udW1iZXItYmc7XG4gICAgbWFyZ2luOiAxNnB4ICRjaGVja291dC1zbWFsbC1zcGFjaW5nIDhweCAkY2hlY2tvdXQtc21hbGwtc3BhY2luZztcbiAgICBwYWRkaW5nOiAwO1xuICAgIGNvbG9yOiAkc3RlcC1udW1iZXItdGV4dC1jb2xvcjtcbn1cblxuYnV0dG9uLnJlbW92ZV9naWZ0Y2FyZCxcbmJ1dHRvbi5yZW1vdmVfcmFiYXR0IHtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgbWFyZ2luLWxlZnQ6IC41ZW07XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIHBhZGRpbmc6IDA7XG5cbiAgICAmLFxuICAgICY6bGluayxcbiAgICAmOnZpc2l0ZWQsXG4gICAgJjpob3ZlcixcbiAgICAmOmFjdGl2ZSxcbiAgICAmOmZvY3VzIHtcbiAgICAgICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRhbGVydC1jb2xvciwgJGNvbnRlbnQtYmcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICB9XG59XG5cbi5rYXNzZV9vbmVfc3RlcF9udW1iZXItLWluZm8ge1xuICAgIGZvbnQtZmFtaWx5OiBHZW9yZ2lhLCAnVGltZXMgTmV3IFJvbWFuJywgVGltZXMsIHNlcmlmO1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuI2thc3NlX29uZV9mb3JtIGxhYmVsLmVycm9yIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBjbGVhcjogYm90aDtcbiAgICBjb2xvcjogI2I5NGE0ODtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBsaW5lLWhlaWdodDogMS41ZW07XG4gICAgcGFkZGluZy1ib3R0b206IC41ZW07XG59XG5cbiNrYXNzZV9vbmVfcG9wdXBfYXJlYSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOjMyMHB4O1xuICAgIC8qaGVpZ2h0OiAgIDE1NXB4OyovXG4gICAgcGFkZGluZzoxNXB4O1xuICAgIG1hcmdpbjoxZW0gMCAwIDA7XG4gICAgY29sb3I6IzAwMDtcbiAgICBiYWNrZ3JvdW5kOiNmZmZmZmY7IC8qIGRlZmF1bHQgYmFja2dyb3VuZCBmb3IgYnJvd3NlcnMgd2l0aG91dCBncmFkaWVudCBzdXBwb3J0ICovXG4gICAgLyogY3NzMyAqL1xuICAgIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCgjZmZmLCAjZjFmMWYxKTtcbiAgICBib3JkZXItcmFkaXVzOjEwcHg7XG4gICAgYm9yZGVyLXN0eWxlOnNvbGlkO1xuICAgIGJvcmRlci13aWR0aDoxcHg7XG4gICAgYm9yZGVyLWNvbG9yOiNjYmNiY2I7XG59XG5cbiNrYXNzZV9vbmVfcG9wdXAge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6IDEwMjtcbn1cblxuI2thc3NlX29uZV9wb3B1cF9hcmVhIHNwYW4ge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4uZnJha3Rfd3JhcHBlcixcbi5wYXltZW50X3dyYXBwZXIsXG4ucGF5bWVudF93cmFwcGVyID4gbGFiZWwuZXJyb3IsXG4uZnJha3Rfd3JhcHBlciA+IGxhYmVsLmVycm9yIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxZW07XG59XG5cbiNrYXNzZV9vbmVfb3JkcmVfb3ZlcnNpa3Qge1xuICAgIG1hcmdpbi1ib3R0b206IDEuNWVtO1xuXG4gICAgdHI6bnRoLW9mLXR5cGUoZXZlbikge1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICB9XG59XG5cbi5zdWJ0bGUge1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbn1cblxuI2thc3NlX29uZV9mb3JtIC5zdWJ0YXhlcyB7XG4gICAgQGV4dGVuZCAuc3VidGxlO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4jd2VsY29tZV9tc2cge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5oYXNQbGFjZWhvbGRlciB7XG4gICAgY29sb3I6ICNiYmI7XG59XG5cbi5taW5pLWltZyB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbmxhYmVsW2Zvcj1cImtqb3BzYmV0XCJdIGEge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIHRleHQtdHJhbnNmb3JtOiBsb3dlcmNhc2U7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgY3Vyc29yOiBoZWxwO1xuICAgIH1cbn1cblxubGFiZWxbZm9yPVwia2pvcHNiZXRcIl0gYSBiIHtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xufVxuXG50YWJsZS5saW5lZCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjVlbTtcbiAgICBjbGVhcjogYm90aDtcblxuICAgIHRoLFxuICAgIHRkIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNWVtO1xuICAgICAgICBwYWRkaW5nOiA1cHggN3B4O1xuICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBkb3R0ZWQgJHRhYmxlLXN1YnRsZS1ib3JkZXItY29sb3I7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHRoZWFkIHRoIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR0YWJsZS1ib3JkZXItY29sb3I7XG4gICAgfVxuXG4gICAgdGJvZHkge1xuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggZGFzaGVkICR0YWJsZS1zdWJ0bGUtYm9yZGVyLWNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgdHI6Zmlyc3QtY2hpbGQgdGQge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHRmb290IHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG5cbiAgICAgICAgdGQge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR0YWJsZS1ib3JkZXItY29sb3I7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5zdW0gdGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogM3B4IGRvdWJsZSAkdGFibGUtYm9yZGVyLWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnByaWNlIHtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgfVxufVxuXG4uY29udHJvbC1ncm91cCB7XG4gICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJGNvbHVtbnM6IDEyKTtcblxuICAgIC5yb3cuY29sbGFwc2UgPiAmIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIH1cbn1cblxuLmNoZWNrb3V0X19zdW0tdG9vLXNtYWxsX19lcnJvcm1zZyB7XG4gICAgZGlzcGxheTogbm9uZTtcblxuICAgIC5jaGVja291dF9fc3VtLXRvby1zbWFsbCAmIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxufVxuXG4uY2hlY2tvdXRfX3N1bS10b28tc21hbGwge1xuICAgIC5jaGVja291dF9fc3VtLXRvby1zbWFsbF9fZXJyb3Jtc2cge1xuICAgICAgICBjb2xvcjogJGFsZXJ0LWNvbG9yO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG59XG5cblxuQG1lZGlhICN7JHNtYWxsLXBsdXMtdXB9IHtcbiAgICAuY29udHJvbC1ncm91cCB7XG4gICAgICAgIHdpZHRoOiBncmlkLWNhbGMoMTAsICR0b3RhbC1jb2x1bW5zKTtcbiAgICB9XG5cbiAgICAuYWRkb25fYnV0dG9ucyB7XG4gICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgY2xlYXI6IHJpZ2h0O1xuICAgIH1cbn1cblxuQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgIC5hZGRvbl9idXR0b25zIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogJGNoZWNrb3V0LW1lZGl1bS1zcGFjaW5nO1xuICAgIH1cblxuICAgIC5jYXJ0LWNvbnRlbnRzIC5taW5pLWltZyB7XG4gICAgICAgIHBhZGRpbmc6IDVweCA3cHg7XG4gICAgfVxuXG4gICAgLm1pbmktaW1nIGltZyB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIC5jaGVja291dF9fc3RlcF9fY29udGVudHMge1xuICAgICAgICBwYWRkaW5nOiAwICRjaGVja291dC1tZWRpdW0tc3BhY2luZyAwICRjaGVja291dC1sYXJnZS1zcGFjaW5nO1xuICAgIH1cblxuICAgIC5jb250cm9sLWdyb3VwIHtcbiAgICAgICAgd2lkdGg6IGdyaWQtY2FsYygxMiwgJHRvdGFsLWNvbHVtbnMpO1xuICAgIH1cblxuICAgIC5jaGVja291dC1sb2dpbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuICAgIH1cblxuICAgIC5jaGVja291dF9fc3RlcF9fY29udGVudHMge1xuICAgICAgICAubmV4dC1zdGVwLWJ0biB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b24tc2l6ZTtcbiAgICAgICAgICAgIC5hcnJvdyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jaGVja291dF9fc3RlcF9fbWlycm9yIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAkY2hlY2tvdXQtbGFyZ2Utc3BhY2luZztcbiAgICAgICAgcGFkZGluZy1yaWdodDogJGNoZWNrb3V0LW1lZGl1bS1zcGFjaW5nO1xuICAgIH1cblxuICAgICNqcy1jaGVja291dHN0ZXBfX2FkZHJlc3MuY2hlY2tvdXRfX3N0ZXAtLWluYWN0aXZlLnZhbGlkIHtcbiAgICAgICAgLmNoZWNrb3V0X19zdGVwX19taXJyb3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBoMiB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuY2hlY2tvdXRfX3N0ZXBfX21pcnJvcl9fYWRkcmVzcyB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgLmZyZWlnaHQtb3B0aW9uIHtcbiAgICAgICAgaW5wdXRbdHlwZT1yYWRpb10ge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLTIycHg7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMnB4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AbWVkaWEgI3skbGFyZ2UtdXB9IHtcbiAgICAuY2hlY2tvdXRfX3N0ZXBfX2NvbnRlbnRzLFxuICAgIC5jaGVja291dF9fc3RlcF9fbWlycm9yLFxuICAgIC5hZGRvbl9idXR0b25zIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogJGNoZWNrb3V0LWxhcmdlLXNwYWNpbmc7XG4gICAgfVxufSIsIkBpbXBvcnQgXCJmb3VuZGF0aW9uL2NvbXBvbmVudHMvcmV2ZWFsXCI7XG4vL0BpbXBvcnQgXCJxdWlja2ZpeC9mdW5jdGlvbnMvc2Fzcy1zdmdcIjsgdGhpcyBkb2VzIG5vdCB3b3JrIG9uIHNhc3NjIG9uIG91ciBzZXJ2ZXIsIHVzZSBpdCB3aGVuIHlvdSBuZWVkIHRvIGNoYW5nZSB0aGUgYmFzZTY0IHN0cmluZyBieSBoYW5kXG5cbiRjaGVja291dC1rY28tZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgJ1JvYm90bycsICdPeHlnZW4nLCAnVWJ1bnR1JywgJ0NhbnRhcmVsbCcsICdGaXJhIFNhbnMnLCAnRHJvaWQgU2FucycsICdIZWx2ZXRpY2EgTmV1ZScsIHNhbnMtc2VyaWYgIWRlZmF1bHQ7XG4kY2hlY2tvdXQta2NvLWNlbGwtcGFkZGluZzogLjVyZW0gLjc1cmVtICFkZWZhdWx0O1xuJGNoZWNrb3V0LWtjby1xdHktaGVpZ2h0OiAycmVtICFkZWZhdWx0O1xuJGNoZWNrb3V0LWtjby1yb3ctaGVpZ2h0OiAkY2hlY2tvdXQta2NvLXF0eS1oZWlnaHQgKyBudGgoJGNoZWNrb3V0LWtjby1jZWxsLXBhZGRpbmcsIDEpICogMjtcbiRjaGVja291dC1rY28tY2FydC1mb250LXNpemU6IHJlbS1jYWxjKDEzKSAhZGVmYXVsdDtcbiRjaGVja291dC1rY28tY2FydC1saW5lLWhlaWdodDogMS41ICFkZWZhdWx0O1xuJGNoZWNrb3V0LWtjby1hdHRyaWJ1dGUtZmxhZy1zaXplOiByZW0tY2FsYygxMCkgIWRlZmF1bHQ7XG5cbiRjaGVja291dC1rY28ta2xhcm5hLWZvY3VzLWNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgjMDA4OWNmLCAkY29udGVudC1iZykgIWRlZmF1bHQ7XG4kY2hlY2tvdXQta2NvLXRodW1iLWhlaWdodDogJGNoZWNrb3V0LWtjby1jYXJ0LWZvbnQtc2l6ZSAqICRjaGVja291dC1rY28tY2FydC1saW5lLWhlaWdodCArIG50aCgkY2hlY2tvdXQta2NvLWNlbGwtcGFkZGluZywgMSkgKiAyO1xuJGNoZWNrb3V0LWtjby10cmFuc2l0aW9uLWR1cmF0aW9uOiA2MDBtcyAhZGVmYXVsdDtcbiRjaGVja291dC1rY28tdHJhbnNpdGlvbi10aW1pbmc6IGVhc2UgIWRlZmF1bHQ7XG4kY2hlY2tvdXQta2NvLW92ZXJsYXktYmc6IHJnYmEoYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGNvbnRlbnQtYmcsICRjb250ZW50LWJnLCA1KSwgMC41KSAhZGVmYXVsdDtcbiRjaGVja291dC1rY28tb3ZlcmxheS1jb2xvcjogcmdiYShhY2Nlc3NpYmxlLWx1bWluYW5jZSgkY2hlY2tvdXQta2NvLW92ZXJsYXktYmcsICRjaGVja291dC1rY28tb3ZlcmxheS1iZywgMjEpLCAxKSAhZGVmYXVsdDtcbiRjaGVja291dC1rY28tYm9yZGVyLWNvbG9yOiByZ2JhKCRjb250ZW50LXRleHQtY29sb3IsIDAuMikgIWRlZmF1bHQ7XG4kY2hlY2tvdXQta2NvLWRpc2NvdW50X19yYXRlX3N0eWxlOiAndHJhbnNwYXJlbnQnICFkZWZhdWx0O1xuJGNoZWNrb3V0LWtjby1hY3RpdmUtYm9yZGVyLWNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkcHJpbWFyeS1jb2xvciwgJGNvbnRlbnQtYmcpICFkZWZhdWx0O1xuJGNoZWNrb3V0LWtjby1yYWRpby1zaXplOiAxNHB4ICFkZWZhdWx0O1xuXG4vLyBSZWFsIGNlbGwgcGFkZGluZzogU2l6ZSBvZiB0aGUgYmlnZ2VzdCBlbGVtZW50IHBsdXMgY2VsbCBwYWRkaW5nIG1pbnVzIGJvcmRlciBzaXplLCBtaW51cyBzaXplIG9mIHRleHQsIGRpdmlkZWQgYnkgdHdvXG4kY2hlY2tvdXQta2NvLXJlYWwtY2VsbC1wYWRkaW5nOiAoJGNoZWNrb3V0LWtjby1xdHktaGVpZ2h0ICsgbnRoKCRjaGVja291dC1rY28tY2VsbC1wYWRkaW5nLCAxKSAqIDIgLSByZW0tY2FsYygyKSAtICRjaGVja291dC1rY28tY2FydC1mb250LXNpemUgKiAkY2hlY2tvdXQta2NvLWNhcnQtbGluZS1oZWlnaHQpLzIgbnRoKCRjaGVja291dC1rY28tY2VsbC1wYWRkaW5nLCAyKSAtIHJlbS1jYWxjKDEpO1xuXG4vLyBWYXJpYWJsZXMgdXNlZCB0byBjb21wZW5zYXRlIGZvciBwYWRkaW5nL21hcmdpbiBpbnNpZGUgS0NPIGlmcmFtZVxuJGtjby1wYWRkaW5nOiAyMHB4IDEycHggMjBweCAxMnB4O1xuJGtjby1tYXgtd2lkdGg6IDY0MHB4O1xuXG5cbiRzZWxlY3QtaW5wdXQtYmc6ICRzZWxlY3QtYmctY29sb3IgIWRlZmF1bHQ7XG4kc2VsZWN0LWlucHV0LWJvcmRlci1yYWRpdXM6IDNweCAhZGVmYXVsdDtcbiRzZWxlY3Qtb3B0aW9uLXNlbGVjdGVkLWNvbG9yOiAkaW5wdXQtZm9udC1jb2xvcjtcbiRzZWxlY3Qtb3B0aW9uLXNlbGVjdGVkLWJnOiAkc2VsZWN0LWJnLWNvbG9yO1xuJHNlbGVjdC1vcHRpb24tZm9jdXNlZC1iZzogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJHByaW1hcnktY29sb3IsICRzZWxlY3QtaW5wdXQtYmcsIDIpICFkZWZhdWx0O1xuJHNlbGVjdC1vcHRpb24tZm9jdXNlZC1jb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2Uod2hpdGUsICRzZWxlY3Qtb3B0aW9uLWZvY3VzZWQtYmcsIDMpO1xuJHNlbGVjdC1pbnB1dC1ib3JkZXItd2lkdGg6IDBweDtcblxuQGltcG9ydCBcInF1aWNrZml4L2NvbXBvbmVudHMvcmVhY3Qtc2VsZWN0XCI7XG5cbkBtaXhpbiBhY3Rpdml0eS1pbmRpY2F0b3IoJGFjdGl2aXR5LWNvbG9yOiAkY29udGVudC1iZywgJGFjdGl2aXR5LWJnOiAkYWN0aXZpdHktY29sb3IpIHtcblxuICAgIC8qIFdlIGNhbm5vdCBydW4gdGhpcyB1c2luZyBzYXNzYyB5ZXRcbiAgICBAaW5jbHVkZSBzdmcoKFxuICAgICAgICB2aWV3Qm94OiAwIDAgMjQgMjRcbiAgICAgICkpIHtcbiAgICAgICAgQGluY2x1ZGUgc3ZnKCdkZWZzJykge1xuICAgICAgICAgIEBpbmNsdWRlIHN2ZygncmFkaWFsR3JhZGllbnQnLCAoXG4gICAgICAgICAgICBjeDogJzI1JScsXG4gICAgICAgICAgICBjeTogJzI1JScsXG4gICAgICAgICAgICBpZDogJ2EnXG4gICAgICAgICAgKSkge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHN2Zygnc3RvcCcsIChcbiAgICAgICAgICAgICAgICAgIHN0b3AtY29sb3I6ICRhY3Rpdml0eS1jb2xvcixcbiAgICAgICAgICAgICAgICAgIG9mZnNldDogJzEwJSdcbiAgICAgICAgICAgICAgICApKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBzdmcoJ3N0b3AnLCAoXG4gICAgICAgICAgICAgICAgICBzdG9wLWNvbG9yOiAkYWN0aXZpdHktY29sb3IsXG4gICAgICAgICAgICAgICAgICBzdG9wLW9wYWNpdHk6IDAuMSxcbiAgICAgICAgICAgICAgICAgIG9mZnNldDogJzEwMCUnXG4gICAgICAgICAgICAgICAgKSk7XG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBzdmcoJ2NpcmNsZScsIChcbiAgICAgICAgICAgIGZpbGw6IG5vbmUsXG4gICAgICAgICAgICBjeDogMTIsXG4gICAgICAgICAgICBjeTogMTIsXG4gICAgICAgICAgICByOiAxMCxcbiAgICAgICAgICAgIC8vc3Ryb2tlLXdpZHRoOiAyLFxuICAgICAgICAgICAgc3Ryb2tlOiBcInVybCgjYSlcIlxuICAgICAgICApKTtcbiAgICAgIH1cbiAgICAgIC8vKi9cbiAgICAgICRjb2xvcjogc3RyLXNsaWNlKGllLWhleC1zdHIoJGFjdGl2aXR5LWNvbG9yKSwgNCk7XG4gICAgICAkYmc6IHN0ci1zbGljZShpZS1oZXgtc3RyKCRhY3Rpdml0eS1iZyksIDQpO1xuICAgICAgY29udGVudDogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmOCwlM0NzdmclMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAyNCUyMDI0JTIyJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3JTJFdzMlMkVvcmclMkYyMDAwJTJGc3ZnJTIyJTNFJTNDZGVmcyUyMCUzRSUzQ3JhZGlhbEdyYWRpZW50JTIwY3glM0QlMjIyNSUyNSUyMiUyMGN5JTNEJTIyMjUlMjUlMjIlMjBpZCUzRCUyMmElMjIlM0UlM0NzdG9wJTIwc3RvcCUyRGNvbG9yJTNEJTIyJTIzI3skY29sb3J9JTIyJTIwb2Zmc2V0JTNEJTIyMTAlMjUlMjIlMkYlM0UlM0NzdG9wJTIwc3RvcCUyRGNvbG9yJTNEJTIyJTIzI3skYmd9JTIyJTIwc3RvcCUyRG9wYWNpdHklM0QlMjIwJTJFMSUyMiUyMG9mZnNldCUzRCUyMjEwMCUyNSUyMiUyRiUzRSUzQyUyRnJhZGlhbEdyYWRpZW50JTNFJTNDJTJGZGVmcyUzRSUzQ2NpcmNsZSUyMGZpbGwlM0QlMjJub25lJTIyJTIwY3glM0QlMjIxMiUyMiUyMGN5JTNEJTIyMTIlMjIlMjByJTNEJTIyMTAlMjIlMjBzdHJva2UlM0QlMjJ1cmwlMjglMjNhJTI5JTIyJTJGJTNFJTNDJTJGc3ZnJTNFXCIpO1xufVxuXG4ldGFidWxhci1udW1zIHtcbiAgICAvLyB0YWJ1bGFyIG51bWJlciBzcGFjaW5nIG1ha2VzIG51bWJlcnMgZWFzaWVyIHRvIHJlYWQgaW4gdGFibGVzXG4gICAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtcztcbiAgICAtbW96LWZvbnQtZmVhdHVyZS1zZXR0aW5nczogXCJ0bnVtXCI7XG4gICAgLXdlYmtpdC1mb250LWZlYXR1cmUtc2V0dGluZ3M6IFwidG51bVwiO1xuICAgIGZvbnQtZmVhdHVyZS1zZXR0aW5nczogXCJ0bnVtXCI7XG59XG5cbiVkZWNvcmF0ZWQtcmFkaW8ge1xuICAgICRjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJHByaW1hcnktY29sb3IsICRjb250ZW50LWJnKTtcbiAgICBpbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgIH1cbiAgICBpbnB1dFt0eXBlPVwicmFkaW9cIl0gKyBzcGFuIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAmOmJlZm9yZSxcbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnLic7XG4gICAgICAgICAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgICAgICAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogLSgkY2hlY2tvdXQta2NvLXJhZGlvLXNpemUvMik7XG4gICAgICAgICAgICBsZWZ0OiAtKCgoJGNvbHVtbi1ndXR0ZXIpICsgcmVtLWNhbGMoJGNoZWNrb3V0LWtjby1yYWRpby1zaXplKSkvMik7XG4gICAgICAgICAgICB3aWR0aDogJGNoZWNrb3V0LWtjby1yYWRpby1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY2hlY2tvdXQta2NvLXJhZGlvLXNpemU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAwcHg7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAzMDBtcyBjdWJpYy1iZXppZXIoMC42NSwgMC4wNSwgMC4zNiwgMSkpO1xuICAgICAgICB9XG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybShzY2FsZSgwLjgpKTtcbiAgICAgICAgfVxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogYmxhY2sgMCAwIDFweCwgaW5zZXQgYmxhY2sgMCAwIDFweDtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybShzY2FsZSgxKSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaW5wdXRbdHlwZT1cInJhZGlvXCJdOmNoZWNrZWQgKyBzcGFuIHtcbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHNjYWxlKDEpKTtcbiAgICAgICAgfVxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybShzY2FsZSgwLjQpKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGhzbGEoMCwgMCUsIDAlLCAwKSAwIDAgMXB4LCBpbnNldCBoc2xhKDAsIDAlLCAwJSwgMCkgMCAwIDFweDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpbnB1dFt0eXBlPVwicmFkaW9cIl1bZGlzYWJsZWRdICsgc3BhbiAmOmJlZm9yZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKGdyYXlzY2FsZSgkY29sb3IpLCB3aGl0ZSk7XG4gICAgfVxufVxuXG5mb3JtOmludmFsaWQge1xuICAgIC5qcy1rYXNzZS1vbmUtc3VibWl0IHtcbiAgICAgICAgJGJnOiBhY2Nlc3NpYmxlLWx1bWluYW5jZShncmF5LCAkY29udGVudC1iZyk7XG4gICAgICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZShncmF5LCAkYmcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmc7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7ICAgICAgIC8qIElFL0VkZ2UgKi9cbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgIG9wYWNpdHk6IDAuNjtcbiAgICB9XG59XG5cbi5jaGVja291dF9fc3RlcC0tc2hpcHBpbmcge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAyO1xufVxuLmZyZWlnaHQtLXBpY2t1cC1wb2ludCB7XG4gICAgY2xlYXI6IGJvdGg7XG59XG4uU2VsZWN0LWNvbnRyb2wge1xuICAgIC8vIEBUT0RPIHJldXNlIG91ciB2YXJpYWJsZXMgc28gaXQgd29ya3MgaW4gYWxsIHRoZW1lcyBhbmQgYW55IGNvbmZpZyBsaWtlIDxzZWxlY3Q+XG4gICAgZm9udC1zaXplOiAkaW5wdXQtZm9udC1zaXplO1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgbWFyZ2luLWxlZnQ6IDFweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDFweDtcbiAgICBib3gtc2hhZG93OiAkaW5wdXQtYm9yZGVyLWNvbG9yIDAgMCAwIDFweDtcblxuICAgICY6aG92ZXIge1xuICAgICAgICBib3gtc2hhZG93OiAkaW5wdXQtYm9yZGVyLWNvbG9yIDAgMCAwIDFweCwgaHNsYSgwLCAwJSwgMCUsIC4xKSAwIDVweCAxMHB4O1xuICAgIH1cbn1cbi5TZWxlY3Qtb3B0aW9uIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZm9udC1zaXplOiAkaW5wdXQtZm9udC1zaXplO1xuICAgIHBhZGRpbmctbGVmdDogMS42ZW07XG59XG4uU2VsZWN0LW9wdGlvbi5pcy1zZWxlY3RlZDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICfinJMnO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4yKTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiByZW0tY2FsYyg4cHgpO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxLjZlbTtcbn1cbi5TZWxlY3Qtb3B0aW9uLmlzLXNlbGVjdGVkOmhvdmVyIHtcbiAgICBjb2xvcjogJHNlbGVjdC1vcHRpb24tZm9jdXNlZC1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2VsZWN0LW9wdGlvbi1mb2N1c2VkLWJnO1xufVxuLlNlbGVjdC1tZW51LW91dGVyIHtcbiAgICBib3JkZXItd2lkdGg6IDBweDtcbiAgICBtYXJnaW4tbGVmdDogMXB4O1xuICAgIG1hcmdpbi1yaWdodDogMXB4O1xufVxuLlNlbGVjdC1tZW51IHtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogM3B4O1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDNweDtcbiAgICBib3gtc2hhZG93OiAkaW5wdXQtYm9yZGVyLWNvbG9yIDAgMCAwIDFweCwgaHNsYSgwLCAwJSwgMCUsIC4xKSAwIDVweCAxMHB4O1xufVxuXG4uY2hlY2tvdXQtLWtjbyAuanMtYXR0YWNoX2NvbW1lbnQge1xuXG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuXG4gICAgJjpiZWZvcmUge1xuICAgICAgICBAaW5jbHVkZSBpY29uKCRpY29uLXZhci1hZGQpO1xuICAgIH1cbn1cblxuI2tsYXJuYS1jaGVja291dC1jb250YWluZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXgtd2lkdGg6ICRrY28tbWF4LXdpZHRoICsgbnRoKCRrY28tcGFkZGluZywgMikgKyBudGgoJGtjby1wYWRkaW5nLCA0KTsgLy8gbWF4IHdpZHRoICsgc2lkZSBwYWRkaW5nc1xuICAgIEBpZiAkY29udGVudC1iZyAhPSAjZmZmIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICB9XG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7IC8vIGtsYXJuYXMgaWZyYW1lIGlzIGFsd2F5cyB3aGl0ZVxufVxuXG4uY2hlY2tvdXQtLWtjb19fb3ZlcmxheSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGNvbnRlbnQtYmcsICRjb250ZW50LWJnKTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICB6LWluZGV4OiAxO1xuXG4gICAgJiwgJiArICoge1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0tb3JpZ2luKDUwJSAwJSk7XG4gICAgfVxuXG4gICAgZW0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxNik7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiByZW0tY2FsYygxMCk7XG4gICAgICAgIHJpZ2h0OiByZW0tY2FsYygxMCk7XG4gICAgfVxufVxuXG4uZnJlaWdodC1vcHRpb24ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGJvcmRlcjogMXB4IHJnYmEoJGNoZWNrb3V0LWtjby1hY3RpdmUtYm9yZGVyLWNvbG9yLCAwLjYpIHNvbGlkO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IC0oJGNvbHVtbi1ndXR0ZXIvNCk7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBib3R0b206IC0oJGNvbHVtbi1ndXR0ZXIvOCk7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybShzY2FsZVgoMC45OCkgc2NhbGVZKDAuOCkpO1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAzMDBtcyBjdWJpYy1iZXppZXIoMC42NSwgMC4wNSwgMC4zNiwgMSkpO1xuICAgIH1cbiAgICAmLmFjdGl2ZSB7XG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0oc2NhbGVYKDEpIHNjYWxlWSgxKSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgPiBsYWJlbCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgQGV4dGVuZCAlZGVjb3JhdGVkLXJhZGlvO1xuICAgIH1cbiAgICAmLmluYWN0aXZlIHtcbiAgICAgICAgPiAqIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuMztcbiAgICAgICAgfVxuICAgIH1cbn1cbi5rY29fc2hpcHBpbmdfc2hvd19tb3JlX29wdGlvbnMge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgbWFyZ2luLWxlZnQ6IDNweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogLjVyZW07XG4gICAgcGFkZGluZy10b3A6IC43NXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDEuNXJlbTtcbn1cblxuLmNoZWNrb3V0LS1rY29fX3BheW1lbnQtb3B0aW9ucywgLmN1c3RvbWVyLXR5cGUge1xuICAgIC5jb250cm9sLWdyb3VwIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMnJlbTtcbiAgICAgICAgYm94LXNoYWRvdy1ib3R0b206IDAgMXB4IDAgJGNoZWNrb3V0LWtjby1ib3JkZXItY29sb3I7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgIGxhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIDE1MG1zIGVhc2UpO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjY7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuICAgICAgICA6Y2hlY2tlZCArIGxhYmVsIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gT3ZlcnJpZGUgc3R1cGlkIGhhcmRjb2RlZCBGb3VuZGF0aW9uIHN0eWxpbmdcbi5yZXZlYWwtbW9kYWwge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDE2cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbnRlbnQtYmc7XG5cbiAgICAuY2xvc2UtcmV2ZWFsLW1vZGFsIHtcbiAgICAgICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRjb250ZW50LWJnLCAkY29udGVudC1iZyk7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCNmMDAsICRjb250ZW50LWJnKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBAbWVkaWEgI3skc21hbGwtb25seX0ge1xuICAgICAgbWluLWhlaWdodDogaW5pdGlhbCFpbXBvcnRhbnQ7XG4gICAgfVxufVxuXG4uY2hlY2tvdXQtLWtjb19fcGFnZS1oZWFkZXIge1xuICAgIGZvbnQtZmFtaWx5OiAkY2hlY2tvdXQta2NvLWZvbnQtZmFtaWx5O1xufVxuXG4uY2hlY2tvdXQtLWtjb19fY3VzdG9tLWludHJvIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luLWJvdHRvbTogMmVtO1xuICAgIEBleHRlbmQgLmJvcmRlcmVkO1xuICAgIEBleHRlbmQgLmJvcmRlcmVkLS1ib3R0b207XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgfVxufVxuXG4uY2hlY2tvdXQtLWtjbyB7XG4gICAgZm9udC1mYW1pbHk6ICRjaGVja291dC1rY28tZm9udC1mYW1pbHk7XG5cbiAgICAucHJpY2UtZGlmZiB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB9XG4gICAgLmN1cnJlbnQtcHJpY2Uge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG9wYWNpdHk6IDAuNzU7XG4gICAgfVxuICAgIC5wZW5kaW5nLXByaWNlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICBsaW5lLWhlaWdodDogMWVtO1xuICAgICAgICBoZWlnaHQ6IDFlbTtcbiAgICB9XG5cbiAgICAuY2hlY2tvdXRfX3N0ZXBfX2hlYWRsaW5lIHtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRjaGVja291dC1rY28tZm9udC1mYW1pbHk7XG4gICAgfVxuXG4gICAgJi5jaGVja291dF9fc3RlcHMge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB9XG5cbiAgICAuY2hlY2tvdXRfX3N0ZXAge1xuICAgICAgICBwYWRkaW5nLXRvcDogMXJlbTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDFyZW07XG4gICAgICAgIEBleHRlbmQgLmJvcmRlcmVkO1xuICAgICAgICBAZXh0ZW5kIC5ib3JkZXJlZC0tYm90dG9tO1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuY2hlY2tvdXRfX2JvdHRvbS10b29sYmFyID4gLmNvbHVtbnMge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVlbTtcbiAgICB9XG5cbiAgICAuY2hlY2tvdXRfX3N0ZXBfX2hlYWRsaW5lIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXJnaW46IDAgMCAuNXJlbSAwO1xuICAgICAgICBwYWRkaW5nOiAwIDAgLjVyZW0gMDtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgIH1cblxuICAgIC5rYXNzZV9vbmVfc3RlcF9udW1iZXIge1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cblxuICAgIC5hZGRvbl9idXR0b25zIHtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIC5lZGl0X3N0ZXAge1xuICAgICAgICAgICAgJGJnOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkc2Vjb25kYXJ5LWNvbG9yLCAkY29udGVudC1iZywgMS4yKTtcbiAgICAgICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC41cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiZztcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJHNlY29uZGFyeS1idXR0b24tYm9yZGVyLWNvbG9yLCAkY29udGVudC1iZyk7XG4gICAgICAgICAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJHNlY29uZGFyeS1jb2xvciwgJGJnLCA2KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIDMwMG1zIGVhc2UpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAkYmc6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRzZWNvbmRhcnktY29sb3IsICRjb250ZW50LWJnLCAyKTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmc7XG4gICAgICAgICAgICAgICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRzZWNvbmRhcnktY29sb3IsICRiZywgNik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gQXBwbHkgdGhlIEtDTyBzdHlsaW5nLCB0byBtYWtlIHRoaW5ncyBhcHBlYXIgbGlrZSBLQ09cbiAgICAuY2hlY2tvdXQta2NvX19hZGRyZXNzLWZvcm0ge1xuICAgICAgICBpbnB1dCwgYnV0dG9uLCBzZWxlY3Qge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgICAgICB9XG4gICAgICAgIC5jaGVja291dC0ta2NvX19zaGlwcGluZy1jb3VudHJ5IHtcbiAgICAgICAgICAgIHNlbGVjdFtkaXNhYmxlZF0ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBidXR0b24sXG4gICAgLmJ1dHRvbixcbiAgICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdLFxuICAgIC5lZGl0X3N0ZXAge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgfVxuXG4gICAgYnV0dG9uLFxuICAgIC5idXR0b24sXG4gICAgaW5wdXRbdHlwZT1zdWJtaXRdLFxuICAgIC5lZGl0X3N0ZXAge1xuICAgICAgICAmOm5vdCgucmVtb3ZlX3JhYmF0dCk6bm90KC5yZW1vdmVfZ2lmdGNhcmQpIHtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRjaGVja291dC1rY28tZm9udC1mYW1pbHk7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIHJnYmEoMjU1LDI1NSwyNTUsMC4xKSwgaW5zZXQgMCAtM3B4IDAgcmdiYSgwLDAsMCwwLjEpLCAwIDJweCA1cHggcmdiYSgwLDAsMCwwLjEpO1xuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAzcHggMCByZ2JhKDAsMCwwLDAuMSk7XG4gICAgICAgICAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5uZXh0LXN0ZXAtYnRuIHtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4gICAgfVxuXG4gICAgLmVkaXRfc3RlcCB7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTMpO1xuXG4gICAgICAgIC5pY29uLWFkZCB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS42cmVtOyAvKiB0byBmaXhlZCBhIG1lc3NlZCB1cCByb3RhdGUgYW5pbWF0aW9uICovXG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAxNTBtcyBlYXNlKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuZGlzYWJsZWQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuMztcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgLW1zLXVzZXItc2VsZWN0OiBub25lOyAgICAgICAvKiBJRS9FZGdlICovXG4gICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxuICAgIGlucHV0W3R5cGU9XCJudW1iZXJcIl0sXG4gICAgaW5wdXRbdHlwZT1cInRlbFwiXSxcbiAgICBpbnB1dFt0eXBlPVwiZW1haWxcIl0ge1xuICAgICAgICAmOmZvY3VzLCAmLmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRjaGVja291dC1rY28ta2xhcm5hLWZvY3VzLWNvbG9yO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IDAgaHNsYSgwLCAwJSwgMCUsIDAuMTcpLGluc2V0IDAgMXB4IDNweCByZ2JhKDAsMCwwLDAuMDYpLDAgMCAzcHggMXB4ICRjaGVja291dC1rY28ta2xhcm5hLWZvY3VzLWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnppcCB7XG4gICAgICAgICY6Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG4gICAgICAgICY6Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICAgICAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuLmNoZWNrb3V0LS1rY29fX3NoaXBwaW5nLXppcCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgbGFiZWwge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBtYXJnaW4tdG9wOiAtMS4xMjVyZW07XG4gICAgICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIGNvbG9yOiByZ2JhKCRpbnB1dC1mb250LWNvbG9yLCAuNSk7XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICBsZWZ0OiA1ZW07XG4gICAgICAgIGxlZnQ6IDdjaDtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybS1vcmlnaW4oOTAlIDUwJSk7XG4gICAgfVxuICAgIGlucHV0LmludmFsaWQ6bm90KDpmb2N1cykge1xuICAgICAgICAkY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCNmMDAsICRjb250ZW50LWJnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yO1xuICAgICAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoI2YwMCwgJGlucHV0LWJnLWNvbG9yKTtcbiAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IDAgaHNsYSgwLCAwJSwgMCUsIDAuMTcpLGluc2V0IDAgMXB4IDNweCByZ2JhKDAsMCwwLDAuMDYpLDAgMCAzcHggMXB4ICRjb2xvcjtcbiAgICB9XG59XG5cbi8vIENvbXBlbnNhdGUgZm9yIHRoZSBLQ08gd2luZG93J3MgcGFkZGluZy9tYXJnaW5cbi5jaGVja291dF9fc3RlcC0ta2NvLXdpbmRvdyB7XG4gICAgJjpvbmx5LWNoaWxkIHtcbiAgICAgICAgLmNoZWNrb3V0X19zdGVwX19jb250ZW50cyB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ua2NvLXBheW1lbnQtd3JhcHBlciwgLmFsdGVybmF0ZS1wYXltZW50LXdyYXBwZXIge1xuICAgIG1pbi1oZWlnaHQ6IDMwMHB4O1xufVxuLmtjby1wYXltZW50LXdyYXBwZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgLy8gdG8gcG9zaXRpb24gb3ZlcmxheVxuICAgIG1hcmdpbjogLTEqbnRoKCRrY28tcGFkZGluZywgMSkgLTEqbnRoKCRrY28tcGFkZGluZywgMikgLTEqbnRoKCRrY28tcGFkZGluZywgMikgLTEqbnRoKCRrY28tcGFkZGluZywgNCk7IC8vIENvbXBlbnNhdGUgZm9yIGtsYXJuYSB3aW5kb3cgcGFkZGluZ1xufVxuXG4uYWx0ZXJuYXRlLXBheW1lbnQtd3JhcHBlciB7XG4gICAgLmNoZWNrb3V0X19zdGVwX19oZWFkbGluZSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiByZW0tY2FsYyg5KTtcbiAgICB9XG59XG5cbi5jaGVja291dF9fc3RlcHMtLWljb25pemVkIHtcbiAgICAua2Fzc2Vfb25lX3N0ZXBfbnVtYmVyIHtcbiAgICAgICAgd2lkdGg6IDIuNXJlbTtcbiAgICAgICAgaGVpZ2h0OiAyLjVyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyLjVyZW07XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxLjI1cmVtO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XG4gICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCA1cHggcmdiYSgwLDAsMCwuNSk7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogN3B4O1xuICAgICAgICAgICAgbGVmdDogN3B4O1xuICAgICAgICAgICAgcmlnaHQ6IDdweDtcbiAgICAgICAgICAgIGJvdHRvbTogN3B4O1xuICAgICAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgfVxuICAgICAgICAuaWNvbi1sb2FkaW5nLWluZGljYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwcHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGkge1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMCA1cHggcmdiYSgwLDAsMCwuNSk7XG4gICAgICAgICAgICBjb2xvcjogJGNvbnRlbnQtYmc7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuY2hlY2tvdXRfX3N0ZXBfX2hlYWRsaW5lIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDIuNXJlbTtcbiAgICB9XG59XG5cbi5jaGVja291dC0ta2NvX193cmFwcGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICBtaW4taGVpZ2h0OiAyMTBweDtcbiAgICBtaW4taGVpZ2h0OiA1MHZoO1xuXG4gICAgLmFjdGl2aXR5LWluZGljYXRvciB7XG4gICAgICAgICRzaXplOiAzOHB4O1xuICAgICAgICAkYmc6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRwcmltYXJ5LWNvbG9yLCAkY29udGVudC1iZyk7XG5cbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTsgICAgICAgLyogSUUvRWRnZSAqL1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHotaW5kZXg6IDMwMDtcbiAgICAgICAgaGVpZ2h0OiAkc2l6ZTtcbiAgICAgICAgd2lkdGg6ICRzaXplO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAwcHg7XG4gICAgICAgIGJveC1zaGFkb3c6IHJnYmEoMCwgMCwgMCwgMC41KSAwIDAgMXB4LCByZ2JhKDAsIDAsIDAsIDAuMykgMCAycHggNnB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmc7XG4gICAgICAgIHBhZGRpbmc6IDRweDtcbiAgICAgICAgei1pbmRleDogNDAwO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNpemUgLyAyO1xuICAgICAgICBtYXJnaW4tbGVmdDogLSRzaXplIC8gMjtcblxuICAgICAgICB3aWxsLWNoYW5nZTogb3BhY2l0eSwgdHJhbnNmb3JtO1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0oc2NhbGUoMC42KSk7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIDMwMG1zIGN1YmljLWJlemllciguNjUsLjA1LC4zNiwxKSk7XG5cbiAgICAgICAgLnN2ZyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgQGluY2x1ZGUgYW5pbWF0aW9uKGFjdGl2aXR5LXJvdGF0ZSA2MDBtcyBsaW5lYXIgaW5maW5pdGUpO1xuXG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYWN0aXZpdHktaW5kaWNhdG9yKCRjb250ZW50LWJnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYgKyBkaXYge1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihvcGFjaXR5IDMwMG1zIGN1YmljLWJlemllciguNjUsLjA1LC4zNiwxKSk7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5pcy1sb2FkaW5nLFxuICAgICYuaXMtdXBsb2FkaW5nIHtcbiAgICAgICAgY3Vyc29yOiBwcm9ncmVzcztcblxuICAgICAgICAuYWN0aXZpdHktaW5kaWNhdG9yIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybShzY2FsZSgxKSk7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuXG4gICAgICAgICAgICAmICsgZGl2IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKG9wYWNpdHkgMzAwMG1zIGVhc2Utb3V0KTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7ICAgICAgIC8qIElFL0VkZ2UgKi9cbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjI1O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4ua2Fzc2Vfb25lX3N0ZXBfbnVtYmVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4vLyBAVE9ETyB3ZSBtaWdodCB3YW50IHRvIHJldXNlIHRoaXMgb3RoZXIgcGxhY2VzIGluIHRoZSBmdXR1cmVcbi5pY29uLWxvYWRpbmctaW5kaWNhdG9yLmlzLWxvYWRpbmcge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgIGhlaWdodDogMWVtO1xuICAgICAgICB3aWR0aDogMWVtO1xuICAgICAgICBtYXJnaW46IC4zZW07XG5cbiAgICAgICAgQGluY2x1ZGUgYWN0aXZpdHktaW5kaWNhdG9yKGFjY2Vzc2libGUtbHVtaW5hbmNlKCRjb250ZW50LWJnLCAkc3RlcC1udW1iZXItYmcpLCAkY29udGVudC1iZyk7XG4gICAgfVxuICAgIEBpbmNsdWRlIGFuaW1hdGlvbihhY3Rpdml0eS1yb3RhdGUgNjAwbXMgbGluZWFyIGluZmluaXRlKTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgLyp3aWR0aDogMnJlbTtcbiAgICB3aWR0aDogcmVtLWNhbGMoMjQpO1xuICAgIGhlaWdodDogMnJlbTtcbiAgICBoZWlnaHQ6IHJlbS1jYWxjKDI0KTtcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygxMik7XG4gICAgbGluZS1oZWlnaHQ6IDJyZW07XG4gICAgbGluZS1oZWlnaHQ6IHJlbS1jYWxjKDI0KTtcbiAgICAqL1xufVxuXG50YWJsZS5jaGVja291dC0ta2NvX19jYXJ0IHtcblxuICAgIC8vIGJveC1zaGFkb3c6IDAgMCAxcmVtIHJnYmEoMCwwLDAsMC4xKTtcbiAgICBvdXRsaW5lOiAxcHggc29saWQgcmdiYSgkY29udGVudC10ZXh0LWNvbG9yLCAwLjEpO1xuXG4gICAgdGgsXG4gICAgdGQge1xuICAgICAgICBmb250LXNpemU6ICRjaGVja291dC1rY28tY2FydC1mb250LXNpemU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkY2hlY2tvdXQta2NvLWNhcnQtbGluZS1oZWlnaHQ7XG4gICAgICAgIHBhZGRpbmc6ICRjaGVja291dC1rY28tY2VsbC1wYWRkaW5nO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKCRjb250ZW50LXRleHQtY29sb3IsIDAuMDUpO1xuXG4gICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLnByaWNlIHtcbiAgICAgICAgICAgIEBleHRlbmQgJXRhYnVsYXItbnVtcztcblxuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgIHdpZHRoOiAxcHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0aGVhZCB0aCB7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgM3B4IDAgcmdiYSgwLDAsMCwwLjA0KTtcbiAgICAgICAgcGFkZGluZzogLjc1cmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgkY29udGVudC10ZXh0LWNvbG9yLCAwLjA1KTtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoI2ZmZiwgMC41KTtcbiAgICB9XG5cbiAgICB0Ym9keSB0cjpsYXN0LWNoaWxkIHRkIHtcbiAgICAgICAgYm94LXNoYWRvdzogMCAzcHggMCByZ2JhKDAsMCwwLDAuMDIpO1xuICAgIH1cblxuICAgIHRmb290LnN1bSB0ZCB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKCNmZmYsIDAuNSk7XG4gICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgM3B4IDAgcmdiYSgwLDAsMCwwLjA0KTtcbiAgICB9XG5cbiAgICAubWluaS1pbWcge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1yaWdodDogbm9uZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgcGFkZGluZzogMDtcblxuICAgICAgICBpbWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAkY2hlY2tvdXQta2NvLXRodW1iLWhlaWdodDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5kaXNjb3VudCxcbiAgICAuc2hpcHBpbmcsXG4gICAgLmdpZnRjYXJkIHtcbiAgICAgICAgLm1pbmktaW1nIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIFtjbGFzc149XCJpY29uLVwiXSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IG50aCgkY2hlY2tvdXQta2NvLWNlbGwtcGFkZGluZywgMik7XG4gICAgICAgICAgICAgICAgdG9wOiAxcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAucHJvZHVjdC1uYW1lIHtcbiAgICAgICAgICAgIHRleHQtaW5kZW50OiBudGgoJGNoZWNrb3V0LWtjby1jZWxsLXBhZGRpbmcsIDIpICogMjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5kaXNjb3VudF9fcmF0ZSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxMSk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbWFyZ2luOiByZW0tY2FsYygtNiA2IDAgNik7XG4gICAgICAgIHBhZGRpbmc6IHJlbS1jYWxjKDIgNSk7XG5cbiAgICAgICAgQGlmICRjaGVja291dC1rY28tZGlzY291bnRfX3JhdGVfc3R5bGUgPT0gJ3NvbGlkJyB7XG4gICAgICAgICAgICBjb2xvcjogJGNvbnRlbnQtYmc7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkY2FsbC10by1hY3Rpb24tY29sb3IsICRjb250ZW50LWJnKTtcbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAkZGlzY291bnRfX3JhdGVfY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRjYWxsLXRvLWFjdGlvbi1jb2xvciwgJGNvbnRlbnQtYmcpICFkZWZhdWx0O1xuICAgICAgICAgICAgY29sb3I6ICRkaXNjb3VudF9fcmF0ZV9jb2xvcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJGRpc2NvdW50X19yYXRlX2NvbG9yLCAwLjI1KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5hdHRyaWJ1dGVzIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICB9XG5cbiAgICAucHJvZHVjdC1uYW1lIHtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgLy8gbmVjZXNzYXJ5IGZvciB0aGUgYXR0cmlidXRlcyBwb3B1cFxuICAgIH1cblxuICAgIC5jaGVja291dF9fcXR5IHtcbiAgICAgICAgaGVpZ2h0OiAkY2hlY2tvdXQta2NvLXF0eS1oZWlnaHQ7XG4gICAgICAgIHBhZGRpbmc6IC4yNXJlbSAwIC4yNXJlbSAuMjVyZW07XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgQGV4dGVuZCAldGFidWxhci1udW1zO1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAzMDBtcyBlYXNlKTtcblxuICAgICAgICAmLnByaW1hcnktY29sb3ItYmc6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDFweCAwIGhzbGEoMCwgMCUsIDAlLCAwLjE3KSxpbnNldCAwIDFweCAzcHggcmdiYSgwLDAsMCwwLjA2KSwwIDAgM3B4IDFweCAkcHJpbWFyeS1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5zdWJ0YXhlcyB7XG4gICAgICAgIG9wYWNpdHk6IDAuNjtcbiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIH1cblxuICAgIC5zZXJ2aWNlLFxuICAgIC5kaXNjb3VudCxcbiAgICAuZ2lmdGNhcmQsXG4gICAgLnNoaXBwaW5nIHtcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5jaGVja291dC0ta2NvX19mcmVpZ2h0LXByb3RpcCB7XG4gICAgJGJnOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkY29udGVudC1iZywgJGNvbnRlbnQtYmcsIDEuMSk7XG4gICAgJGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkYmcsICRiZyk7XG4gICAgYm90dG9tOiAxMDAlO1xuXG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJnO1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBtYXJnaW4tYm90dG9tOiAtMC41cmVtO1xuICAgIHBhZGRpbmc6IDRweCA3cHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgc3Ryb25nIHtcbiAgICAgICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRiZywgJGJnLCA2KTtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB9XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKDZweCwgJGJnLCB0b3ApO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgbGVmdDogOHB4O1xuICAgIH1cbn1cblxuIC5jaGVja291dC0ta2NvX19wYXltZW50LW5vdGljZSB7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4uY2hlY2tvdXRfX3Byb2R1Y3QtbmFtZS13cmFwIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4ucHJvZHVjdC1uYW1lLS1oYXMtYXR0cmlidXRlcyB7XG4gICAgJjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogMjtcbiAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAwICRjaGVja291dC1rY28tYXR0cmlidXRlLWZsYWctc2l6ZSAkY2hlY2tvdXQta2NvLWF0dHJpYnV0ZS1mbGFnLXNpemUgMDtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkY2FsbC10by1hY3Rpb24tY29sb3IsICRjb250ZW50LWJnKSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgICB9XG5cbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuXG4gICAgICAgIC5jaGVja291dF9fcHJvZHVjdC1uYW1lLXdyYXAge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB6LWluZGV4OiAzO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZzogJGNoZWNrb3V0LWtjby1yZWFsLWNlbGwtcGFkZGluZztcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGlmKCRjb250ZW50LWJnLWlzLWRhcmssIGxpZ2h0ZW4oJGNvbnRlbnQtYmcsIDQlKSwgZGFya2VuKCRjb250ZW50LWJnLCA0JSkpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJGNvbnRlbnQtYmc7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMTBweCByZ2JhKDAsMCwwLDAuMSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5jaGVja291dC0ta2NvX19jb3Jwb3JhdGUtbGluayB7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbn1cblxuLmNoZWNrb3V0LS1rY29fX2tlZXAtc2hvcHBpbmcge1xuICAgIG1hcmdpbi1sZWZ0OiAuNXJlbTtcbn1cblxuLmNoZWNrb3V0LS1rY29fX3BheW1lbnQtbm90aWNlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nLXRvcDogcmVtLWNhbGMoNyk7XG4gICAgcGFkZGluZy1ib3R0b206IHJlbS1jYWxjKDcpO1xufVxuXG4ua2NvX3NoaXBwaW5nX29wdGlvbnMge1xuICAgIG1hcmdpbi10b3A6ICRjb2x1bW4tZ3V0dGVyLzQ7XG4gICAgbWFyZ2luLWJvdHRvbTogJGNvbHVtbi1ndXR0ZXIvNDtcbiAgICAuZnJlaWdodC1vcHRpb24ge1xuICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuXG4gICAgICAgIGxhYmVsIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAkY29sdW1uLWd1dHRlci8yO1xuICAgICAgICAgICAgcGFkZGluZy10b3A6ICRjb2x1bW4tZ3V0dGVyLzI7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICgkY29sdW1uLWd1dHRlci8yKSArIHJlbS1jYWxjKCRjaGVja291dC1rY28tcmFkaW8tc2l6ZSk7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkY29sdW1uLWd1dHRlci8yO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uY2hlY2tvdXRfX3BheW1lbnQtbWV0aG9kcy1saXN0IHtcbiAgICA+IDpmaXJzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICgkY29sdW1uLWd1dHRlci84KTtcbiAgICB9XG4gICAgJGJvcmRlci1jb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJHByaW1hcnktY29sb3IsICRjb250ZW50LWJnKTtcblxuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG5cbiAgICAucGF5bWVudC1tZXRob2Qge1xuICAgICAgICAmOmZpcnN0LW9mLXR5cGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihib3gtc2hhZG93IDMwMG1zIGN1YmljLWJlemllcigwLjY1LCAwLjA1LCAwLjM2LCAxKSk7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIC0xcHggMCByZ2JhKCRjaGVja291dC1rY28tYm9yZGVyLWNvbG9yLCAwKTtcbiAgICAgICAgICAgICY6Zmlyc3Qtb2YtdHlwZTpub3QoLnBheW1lbnQtbWV0aG9kLS1hY3RpdmUpIHtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiAwIC0xcHggMCAkY2hlY2tvdXQta2NvLWJvcmRlci1jb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrOyAvLyBEbyBub3QgdXNlIGlubGluZS1ibG9jaywgaXQgY2F1c2VzIGlycml0YXRpbmcgd2hpdGUtc3BhY2VcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCByZ2JhKCRjaGVja291dC1rY28tYWN0aXZlLWJvcmRlci1jb2xvciwgMC42KSBzb2xpZDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJGNvbnRlbnQtYmc7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogLSgkY29sdW1uLWd1dHRlci84KTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogLSgkY29sdW1uLWd1dHRlci84KTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0oc2NhbGVYKDAuOTgpIHNjYWxlWSgwLjgpKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIDMwMG1zIGN1YmljLWJlemllcigwLjY1LCAwLjA1LCAwLjM2LCAxKSk7XG4gICAgICAgIH1cbiAgICAgICAgJi5wYXltZW50LW1ldGhvZC0tYWN0aXZlIHtcbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybShzY2FsZVgoMSkgc2NhbGVZKDEpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGxhYmVsIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAoJGNvbHVtbi1ndXR0ZXIvMikgKyByZW0tY2FsYygkY2hlY2tvdXQta2NvLXJhZGlvLXNpemUpO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJGNvbHVtbi1ndXR0ZXI7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogJGNvbHVtbi1ndXR0ZXIvNDtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAkY29sdW1uLWd1dHRlci80O1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgQGV4dGVuZCAlZGVjb3JhdGVkLXJhZGlvO1xuXG4gICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IHJlbS1jYWxjKDIyKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlucHV0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTUwcHg7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHB4O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjJyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IC41cmVtO1xuICAgIH1cbn1cbi5jaGVja291dF9fcGF5bWVudC1tZXRob2RzLXByZWZpeCwgLnBheW1lbnQtbWV0aG9kIHtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDE1KTtcbn1cbi5jaGVja291dC0ta2NvX19hbHRlcm5hdGUtcGF5bWVudCB7XG4gICAgaW5wdXQuY2hlY2stdmFsaWRpdHk6aW52YWxpZDpub3QoOmZvY3VzKSwgaW5wdXQuY2hlY2stdmFsaWRpdHkuaW52YWxpZDpub3QoOmZvY3VzKSB7XG4gICAgICAgICRjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoI2YwMCwgJGNvbnRlbnQtYmcpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3I7XG4gICAgICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgjZjAwLCAkaW5wdXQtYmctY29sb3IpO1xuICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggMCBoc2xhKDAsIDAlLCAwJSwgMC4xNyksaW5zZXQgMCAxcHggM3B4IHJnYmEoMCwwLDAsMC4wNiksMCAwIDNweCAxcHggJGNvbG9yO1xuICAgIH1cbn1cblxuLy8gQFRPRE8gbmVlZHMgbW9yZSB3b3JrXG4vL0BtZWRpYSAjeyRzbWFsbC1wbHVzLWRvd259IHtcbi8vICAgIC8vIERpc2FibGUgaU9TIHRleHQgaW5wdXQgem9vbSwgaU9TIDkgY2hhbmdlZCBmb250LXNpemUgZnJvbSAxNnB4IHRvIDIycHhcbi8vICAgIC5jaGVja291dC0ta2NvIHtcbi8vICAgICAgICBpbnB1dFt0eXBlPVwidGV4dFwiXSxcbi8vICAgICAgICBpbnB1dFt0eXBlPVwiZW1haWxcIl0sXG4vLyAgICAgICAgaW5wdXRbdHlwZT1cInRlbFwiXSxcbi8vICAgICAgICBzZWxlY3Qge1xuLy8gICAgICAgICAgICBwYWRkaW5nOiAwLjJyZW0gMC41cmVtO1xuLy8gICAgICAgIH1cbi8vICAgICAgICBpbnB1dFt0eXBlPVwidGV4dFwiXSxcbi8vICAgICAgICBpbnB1dFt0eXBlPVwiZW1haWxcIl0sXG4vLyAgICAgICAgaW5wdXRbdHlwZT1cInRlbFwiXSxcbi8vICAgICAgICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdLFxuLy8gICAgICAgIHNlbGVjdCB7XG4vLyAgICAgICAgICAgIGZvbnQtc2l6ZTogMjJweDtcbi8vICAgICAgICB9XG4vLyAgICB9XG4vL31cbi5rY28tcGF5bWVudC13cmFwcGVyIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xufVxuXG5AbWVkaWEgI3skc21hbGwtb25seX0ge1xuICAgIC5jaGVja291dF9fYm90dG9tLXRvb2xiYXItcmlnaHQge1xuICAgICAgICBidXR0b24uanMtY2hlY2tvdXRfdXBkYXRlIHtcbiAgICAgICAgICAgIHRvcDogLSgkY29sdW1uLWd1dHRlci8yKSFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmNoZWNrb3V0X19wYXltZW50LW1ldGhvZHMtbGlzdCB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogJGNvbHVtbi1ndXR0ZXIvMjtcbiAgICAgICAgcGFkZGluZy1yaWdodDogJGNvbHVtbi1ndXR0ZXIvMjtcbiAgICB9XG59XG5cbkBtZWRpYSAjeyRzbWFsbC1wbHVzLXVwfSB7XG4gICAgLmNoZWNrb3V0LS1rY29fX3BheW1lbnQgLmNvbnRyb2wtZ3JvdXAge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gICAgLy8gQFRPRE8gd2h5IGlzIHRoaXMga2Nvcz9cbiAgICAuY2hlY2tvdXQtLWtjb3Mge1xuICAgICAgICAuYWRkb25fYnV0dG9ucyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IHJlbS1jYWxjKDcpICsgMXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuXG4gICAgICAgICAgICAuZWRpdF9zdGVwLmRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2shaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5AbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgLnJvdyAucm93LmNoZWNrb3V0LWtjb19fYWRkcmVzcy1mb3JtIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogJGNvbHVtbi1ndXR0ZXIvMjtcbiAgICB9XG4gICAgLnJvdyAuY2hlY2tvdXQtLWtjb19fZnJlaWdodC1vcHRpb25zIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAkY29sdW1uLWd1dHRlci8yO1xuICAgIH1cbiAgICAuY2hlY2tvdXQtLWtjb19fZnJlaWdodCB7XG4gICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDFweCAwIDAgJGNoZWNrb3V0LWtjby1ib3JkZXItY29sb3I7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRjb2x1bW4tZ3V0dGVyLzI7XG4gICAgfVxuICAgIC5jaGVja291dC0ta2NvX19wYXltZW50LWFsdGVybmF0aXZlcyB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAkY29sdW1uLWd1dHRlci8yO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6ICgkY29sdW1uLWd1dHRlci8yKTtcbiAgICB9XG4gICAgLmNoZWNrb3V0X19wYXltZW50LW1ldGhvZHMtbGlzdCB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogJGNvbHVtbi1ndXR0ZXIvMjtcbiAgICAgICAgcGFkZGluZy1yaWdodDogJGNvbHVtbi1ndXR0ZXIvMjtcbiAgICB9XG5cbiAgICAuY2hlY2tvdXQtLWtjbyB7XG4gICAgICAgIC5hZGRvbl9idXR0b25zIHtcbiAgICAgICAgICAgIHRvcDogcmVtLWNhbGMoNikgKyAxcmVtO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJGNvbHVtbi1ndXR0ZXI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0YWJsZS5jaGVja291dC0ta2NvX19jYXJ0IHtcbiAgICAgICAgLm1pbmktaW1nIHtcbiAgICAgICAgICAgIHdpZHRoOiA3NXB4O1xuICAgICAgICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcblxuICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuZGlzY291bnQsXG4gICAgICAgIC5zaGlwcGluZyxcbiAgICAgICAgLmdpZnRjYXJkIHtcbiAgICAgICAgICAgIC5taW5pLWltZyB7XG4gICAgICAgICAgICAgICAgW2NsYXNzXj1cImljb24tXCJdIHtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAucHJvZHVjdC1uYW1lIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWluZGVudDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5wcm9kdWN0LW5hbWUge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuY2hlY2tvdXRfX3N0ZXBfX2NvbnRlbnRzIHtcbiAgICAgICAgcGFkZGluZzogMCAxLjI1cmVtIDAgMS4yNXJlbTtcbiAgICB9XG5cbiAgICAuY2hlY2tvdXQtLWtjb19fb3ZlcmxheSB7XG4gICAgICAgIGxlZnQ6IDEuODEyNXJlbTtcbiAgICB9XG5cbiAgICAuY2hlY2tvdXQtLWtjb19fcGF5bWVudCB7XG4gICAgICAgIGJveC1zaGFkb3c6IGluc2V0ICRjb250ZW50LWJnIDAgMzBweCAwLCBpbnNldCAkY29udGVudC1iZyAwIC0zMHB4IDAsIGluc2V0ICRjaGVja291dC1rY28tYm9yZGVyLWNvbG9yIDFweCAxcHggMDtcbiAgICB9XG4gICAgLmtjby1wYXltZW50LWJvcmRlcmVkLXdyYXBwZXIge1xuICAgICAgICBtYXJnaW4tbGVmdDogLjVyZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0xLjE1cmVtO1xuICAgICAgICBtaW4taGVpZ2h0OiAzMDBweDtcbiAgICB9XG5cbiAgICAua2NvLXBheW1lbnQtd3JhcHBlciwgLmFsdGVybmF0ZS1wYXltZW50LXdyYXBwZXIge1xuICAgICAgICBtaW4taGVpZ2h0OiAzMDBweDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbnRlbnQtYmc7XG4gICAgICAgIG1hcmdpbjowO1xuICAgIH1cblxuICAgIC5hbHRlcm5hdGUtcGF5bWVudC13cmFwcGVyIHtcbiAgICAgICAgbWFyZ2luLXRvcDogLTEuNXJlbTtcbiAgICAgICAgLmNoZWNrb3V0X19zdGVwX19oZWFkbGluZSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAtMnJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDUpO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IHJlbS1jYWxjKDkpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uanMtYXR0YWNoX2NvbW1lbnQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuLmNoZWNrb3V0X19ib3R0b20tdG9vbGJhci1yaWdodCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgYnV0dG9uLmpzLWNoZWNrb3V0X3VwZGF0ZSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwcHg7XG4gICAgICAgIHJpZ2h0OiAkY29sdW1uLWd1dHRlci8yO1xuICAgIH1cbn1cbi5jaGVja291dC0ta2NvX19mcmVpZ2h0LW9wdGlvbnMge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtaW4taGVpZ2h0OiA2cmVtO1xuICAgIG1hcmdpbi10b3A6IDA7XG59XG5cblxuQG1lZGlhICN7JGxhcmdlLXVwfSB7XG4gICAgLnJvdyAucm93LmNoZWNrb3V0LWtjb19fYWRkcmVzcy1mb3JtLCAuY2hlY2tvdXRfX3BheW1lbnQtbWV0aG9kcy1saXN0IHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogJGNvbHVtbi1ndXR0ZXI7XG4gICAgfVxuICAgIC5yb3cgLmNoZWNrb3V0LS1rY29fX2ZyZWlnaHQtb3B0aW9ucywgLmFsdGVybmF0ZS1wYXltZW50LXdyYXBwZXIge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6ICRjb2x1bW4tZ3V0dGVyO1xuICAgIH1cblxuICAgIC5zdWJtaXQtZnJlaWdodC1kZXRhaWxzIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgLmNoZWNrb3V0LS1rY29fX2NvcnBvcmF0ZS1saW5rIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AaW1wb3J0IFwiZ2xvYmFsXCI7XG5AaW1wb3J0IFwiZ3JpZFwiO1xuXG4vL1xuLy8gQG5hbWUgX3JldmVhbC5zY3NzXG4vLyBAZGVwZW5kZW5jaWVzIF9nbG9iYWwuc2Nzc1xuLy9cblxuJGluY2x1ZGUtaHRtbC1yZXZlYWwtY2xhc3NlczogJGluY2x1ZGUtaHRtbC1jbGFzc2VzICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCB0aGUgc3R5bGUgb2YgdGhlIHJldmVhbCBvdmVybGF5LlxuJHJldmVhbC1vdmVybGF5LWJnOiByZ2JhKCRibGFjaywgLjQ1KSAhZGVmYXVsdDtcbiRyZXZlYWwtb3ZlcmxheS1iZy1vbGQ6ICRibGFjayAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgdGhlIHN0eWxlIG9mIHRoZSBtb2RhbCBpdHNlbGYuXG4kcmV2ZWFsLW1vZGFsLWJnOiAkd2hpdGUgIWRlZmF1bHQ7XG4kcmV2ZWFsLXBvc2l0aW9uLXRvcDogcmVtLWNhbGMoMTAwKSAhZGVmYXVsdDtcbiRyZXZlYWwtZGVmYXVsdC13aWR0aDogODAlICFkZWZhdWx0O1xuJHJldmVhbC1tYXgtd2lkdGg6ICRyb3ctd2lkdGggIWRlZmF1bHQ7XG4kcmV2ZWFsLW1vZGFsLXBhZGRpbmc6IHJlbS1jYWxjKDIwKSAhZGVmYXVsdDtcbiRyZXZlYWwtYm94LXNoYWRvdzogMCAwIDEwcHggcmdiYSgkYmxhY2ssLjQpICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gc3R5bGUgdGhlIHJldmVhbCBjbG9zZSBidXR0b25cbiRyZXZlYWwtY2xvc2UtZm9udC1zaXplOiByZW0tY2FsYyg0MCkgIWRlZmF1bHQ7XG4kcmV2ZWFsLWNsb3NlLXRvcDogcmVtLWNhbGMoMTApICFkZWZhdWx0O1xuJHJldmVhbC1jbG9zZS1zaWRlOiByZW0tY2FsYygyMikgIWRlZmF1bHQ7XG4kcmV2ZWFsLWNsb3NlLWNvbG9yOiAkYmFzZSAhZGVmYXVsdDtcbiRyZXZlYWwtY2xvc2Utd2VpZ2h0OiAkZm9udC13ZWlnaHQtYm9sZCAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoaXMgdG8gc2V0IHRoZSBkZWZhdWx0IHJhZGl1cyB1c2VkIHRocm91Z2hvdXQgdGhlIGNvcmUuXG4kcmV2ZWFsLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG4kcmV2ZWFsLXJvdW5kOiAkZ2xvYmFsLXJvdW5kZWQgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIHRoZSBtb2RhbCBib3JkZXJcbiRyZXZlYWwtYm9yZGVyLXN0eWxlOiBzb2xpZCAhZGVmYXVsdDtcbiRyZXZlYWwtYm9yZGVyLXdpZHRoOiAxcHggIWRlZmF1bHQ7XG4kcmV2ZWFsLWJvcmRlci1jb2xvcjogJHN0ZWVsICFkZWZhdWx0O1xuXG4kcmV2ZWFsLW1vZGFsLWNsYXNzOiBcInJldmVhbC1tb2RhbFwiICFkZWZhdWx0O1xuJGNsb3NlLXJldmVhbC1tb2RhbC1jbGFzczogXCJjbG9zZS1yZXZlYWwtbW9kYWxcIiAhZGVmYXVsdDtcblxuLy8gU2V0IGJhc2Ugei1pbmRleFxuJHotaW5kZXgtYmFzZTogMTAwNTtcblxuLy9cbi8vIEBtaXhpbnNcbi8vXG5cbi8vIFdlIHVzZSB0aGlzIHRvIGNyZWF0ZSB0aGUgcmV2ZWFsIGJhY2tncm91bmQgb3ZlcmxheSBzdHlsZXNcbkBtaXhpbiByZXZlYWwtYmcoICRpbmNsdWRlLXotaW5kZXgtdmFsdWU6IHRydWUgKSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgLy8gcG9zaXRpb246IGFic29sdXRlOyAvLyBhbGxvd3MgbW9kYWwgYmFja2dyb3VuZCB0byBleHRlbmQgYmV5b25kIHdpbmRvdyBwb3NpdGlvblxuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJhY2tncm91bmQ6ICRyZXZlYWwtb3ZlcmxheS1iZy1vbGQ7IC8vIEF1dG9wcmVmaXhlciBzaG91bGQgYmUgdXNlZCB0byBhdm9pZCBzdWNoIHZhcmlhYmxlcyBuZWVkZWQgd2hlbiBGb3VuZGF0aW9uIGZvciBTaXRlcyBjYW4gZG8gc28gaW4gdGhlIG5lYXIgZnV0dXJlLlxuICBiYWNrZ3JvdW5kOiAkcmV2ZWFsLW92ZXJsYXktYmc7XG4gIHotaW5kZXg6IGlmKCAkaW5jbHVkZS16LWluZGV4LXZhbHVlLCAkei1pbmRleC1iYXNlIC0gMSwgYXV0byApO1xuICBkaXNwbGF5OiBub25lO1xuICAjeyRkZWZhdWx0LWZsb2F0fTogMDtcbn1cblxuLy8gV2UgdXNlIHRoaXMgbWl4aW4gdG8gY3JlYXRlIHRoZSBzdHJ1Y3R1cmUgb2YgYSByZXZlYWwgbW9kYWxcbi8vXG4vLyAkYmFzZS1zdHlsZSAtIFByb3ZpZGVzIHJldmVhbCBiYXNlIHN0eWxlcywgY2FuIGJlIHNldCB0byBmYWxzZSB0byBvdmVycmlkZS4gRGVmYXVsdDogdHJ1ZSwgT3B0aW9uczogZmFsc2Vcbi8vICR3aWR0aCAtIFNldHMgcmV2ZWFsIHdpZHRoIERlZmF1bHQ6ICRyZXZlYWwtZGVmYXVsdC13aWR0aCB8fCA4MCVcbi8vXG5AbWl4aW4gcmV2ZWFsLW1vZGFsLWJhc2UoICRiYXNlLXN0eWxlOiB0cnVlLCAkd2lkdGg6JHJldmVhbC1kZWZhdWx0LXdpZHRoLCAkbWF4LXdpZHRoOiRyZXZlYWwtbWF4LXdpZHRoLCAkYm9yZGVyLXJhZGl1czogJHJldmVhbC1yYWRpdXMpIHtcbiAgQGlmICRiYXNlLXN0eWxlIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogJHotaW5kZXgtYmFzZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB0b3A6MDtcbiAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAjeyRkZWZhdWx0LWZsb2F0fTogMDtcblxuICAgIEBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XG4gICAgICBtaW4taGVpZ2h0OjEwMHZoO1xuICAgIH1cblxuICAgIC8vIE1ha2Ugc3VyZSByb3dzIGRvbid0IGhhdmUgYSBtaW4td2lkdGggb24gdGhlbVxuICAgIC5jb2x1bW4sIC5jb2x1bW5zIHsgbWluLXdpZHRoOiAwOyB9XG5cbiAgICAvLyBHZXQgcmlkIG9mIG1hcmdpbiBmcm9tIGZpcnN0IGFuZCBsYXN0IGVsZW1lbnQgaW5zaWRlIG1vZGFsXG4gICAgJiA+IDpmaXJzdC1jaGlsZCB7IG1hcmdpbi10b3A6IDA7IH1cblxuICAgICYgPiA6bGFzdC1jaGlsZCB7IG1hcmdpbi1ib3R0b206IDA7IH1cbiAgfVxuXG4gIEBpZiAkd2lkdGgge1xuICAgIEBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAgIHdpZHRoOiAkd2lkdGg7XG4gICAgICBtYXgtd2lkdGg6ICRtYXgtd2lkdGg7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICBtYXJnaW46IDAgYXV0bztcbiAgICB9XG4gIH1cbn1cblxuLy8gV2UgdXNlIHRoaXMgdG8gc3R5bGUgdGhlIHJldmVhbCBtb2RhbCBkZWZhdWx0c1xuLy9cbi8vICRiZyAtIFNldHMgYmFja2dyb3VuZCBjb2xvciBvZiByZXZlYWwgbW9kYWwuIERlZmF1bHQ6ICRyZXZlYWwtbW9kYWwtYmcgfHwgJHdoaXRlXG4vLyAkcGFkZGluZyAtIFBhZGRpbmcgdG8gYXBwbHkgdG8gcmV2ZWFsIG1vZGFsLiBEZWZhdWx0OiAkcmV2ZWFsLW1vZGFsLXBhZGRpbmcuXG4vLyAkYm9yZGVyIC0gQ2hvb3NlIHdoZXRoZXIgcmV2ZWFsIHVzZXMgYSBib3JkZXIuIERlZmF1bHQ6IHRydWUsIE9wdGlvbnM6IGZhbHNlXG4vLyAkYm9yZGVyLXN0eWxlIC0gU2V0IHJldmVhbCBib3JkZXIgc3R5bGUuIERlZmF1bHQ6ICRyZXZlYWwtYm9yZGVyLXN0eWxlIHx8IHNvbGlkXG4vLyAkYm9yZGVyLXdpZHRoIC0gV2lkdGggb2YgYm9yZGVyIChpLmUuIDFweCkuIERlZmF1bHQ6ICRyZXZlYWwtYm9yZGVyLXdpZHRoLlxuLy8gJGJvcmRlci1jb2xvciAtIENvbG9yIG9mIGJvcmRlci4gRGVmYXVsdDogJHJldmVhbC1ib3JkZXItY29sb3IuXG4vLyAkYm94LXNoYWRvdyAtIENob29zZSB3aGV0aGVyIG9yIG5vdCB0byBpbmNsdWRlIHRoZSBkZWZhdWx0IGJveC1zaGFkb3cuIERlZmF1bHQ6IHRydWUsIE9wdGlvbnM6IGZhbHNlXG4vLyAkcmFkaXVzIC0gSWYgdHJ1ZSwgc2V0IHRvIG1vZGFsIHJhZGl1cyB3aGljaCBpcyAkZ2xvYmFsLXJhZGl1cyB8fCBleHBsaWNpdGx5IHNldCByYWRpdXMgYW1vdW50IGluIHB4IChleC4gJHJhZGl1czoxMHB4KS4gRGVmYXVsdDogZmFsc2Vcbi8vICR0b3Atb2Zmc2V0IC0gRGVmYXVsdDogJHJldmVhbC1wb3NpdGlvbi10b3AgfHwgNTBweFxuQG1peGluIHJldmVhbC1tb2RhbC1zdHlsZShcbiAgJGJnOmZhbHNlLFxuICAkcGFkZGluZzpmYWxzZSxcbiAgJGJvcmRlcjpmYWxzZSxcbiAgJGJvcmRlci1zdHlsZTokcmV2ZWFsLWJvcmRlci1zdHlsZSxcbiAgJGJvcmRlci13aWR0aDokcmV2ZWFsLWJvcmRlci13aWR0aCxcbiAgJGJvcmRlci1jb2xvcjokcmV2ZWFsLWJvcmRlci1jb2xvcixcbiAgJGJveC1zaGFkb3c6ZmFsc2UsXG4gICRyYWRpdXM6ZmFsc2UsXG4gICR0b3Atb2Zmc2V0OmZhbHNlKSB7XG5cbiAgQGlmICRiZyB7IGJhY2tncm91bmQtY29sb3I6ICRiZzsgfVxuICBAaWYgJHBhZGRpbmcgIT0gZmFsc2UgeyBwYWRkaW5nOiAkcGFkZGluZzsgfVxuXG4gIEBpZiAkYm9yZGVyIHsgYm9yZGVyOiAkYm9yZGVyLXN0eWxlICRib3JkZXItd2lkdGggJGJvcmRlci1jb2xvcjsgfVxuXG4gIC8vIFdlIGNhbiBjaG9vc2Ugd2hldGhlciBvciBub3QgdG8gaW5jbHVkZSB0aGUgZGVmYXVsdCBib3gtc2hhZG93LlxuICBAaWYgJGJveC1zaGFkb3cge1xuICAgIGJveC1zaGFkb3c6ICRyZXZlYWwtYm94LXNoYWRvdztcbiAgfVxuXG4gIC8vIFdlIGNhbiBjb250cm9sIGhvdyBtdWNoIHJhZGl1cyBpcyB1c2VkIG9uIHRoZSBtb2RhbFxuICBAaWYgJHJhZGl1cyA9PSB0cnVlIHsgQGluY2x1ZGUgcmFkaXVzKCRyZXZlYWwtcmFkaXVzKTsgfVxuICBAZWxzZSBpZiAkcmFkaXVzIHsgQGluY2x1ZGUgcmFkaXVzKCRyYWRpdXMpOyB9XG5cbiAgQGlmICR0b3Atb2Zmc2V0IHtcbiAgICBAbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgICB0b3A6ICR0b3Atb2Zmc2V0O1xuICAgIH1cbiAgfVxufVxuXG4vLyBXZSB1c2UgdGhpcyB0byBjcmVhdGUgYSBjbG9zZSBidXR0b24gZm9yIHRoZSByZXZlYWwgbW9kYWxcbi8vXG4vLyAkY29sb3IgLSBEZWZhdWx0OiAkcmV2ZWFsLWNsb3NlLWNvbG9yIHx8ICRiYXNlXG5AbWl4aW4gcmV2ZWFsLWNsb3NlKCRjb2xvcjokcmV2ZWFsLWNsb3NlLWNvbG9yKSB7XG4gIGZvbnQtc2l6ZTogJHJldmVhbC1jbG9zZS1mb250LXNpemU7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogJHJldmVhbC1jbG9zZS10b3A7XG4gICN7JG9wcG9zaXRlLWRpcmVjdGlvbn06ICRyZXZlYWwtY2xvc2Utc2lkZTtcbiAgY29sb3I6ICRjb2xvcjtcbiAgZm9udC13ZWlnaHQ6ICRyZXZlYWwtY2xvc2Utd2VpZ2h0O1xuICBjdXJzb3I6ICRjdXJzb3ItcG9pbnRlci12YWx1ZTtcbn1cblxuQGluY2x1ZGUgZXhwb3J0cyhcInJldmVhbFwiKSB7XG4gIEBpZiAkaW5jbHVkZS1odG1sLXJldmVhbC1jbGFzc2VzIHtcblxuICAgIC8vIFJldmVhbCBNb2RhbHNcbiAgICAucmV2ZWFsLW1vZGFsLWJnIHsgQGluY2x1ZGUgcmV2ZWFsLWJnOyB9XG5cbiAgICAuI3skcmV2ZWFsLW1vZGFsLWNsYXNzfSB7XG4gICAgICBAaW5jbHVkZSByZXZlYWwtbW9kYWwtYmFzZTtcbiAgICAgIEBpbmNsdWRlIHJldmVhbC1tb2RhbC1zdHlsZShcbiAgICAgICAgJGJnOiRyZXZlYWwtbW9kYWwtYmcsXG4gICAgICAgICRwYWRkaW5nOiRyZXZlYWwtbW9kYWwtcGFkZGluZyAqIDEuNSxcbiAgICAgICAgJGJvcmRlcjp0cnVlLFxuICAgICAgICAkYm94LXNoYWRvdzp0cnVlLFxuICAgICAgICAkcmFkaXVzOmZhbHNlLFxuICAgICAgICAkdG9wLW9mZnNldDokcmV2ZWFsLXBvc2l0aW9uLXRvcFxuICAgICAgKTtcblxuICAgICAgJi5yYWRpdXMgeyBAaW5jbHVkZSByZXZlYWwtbW9kYWwtc3R5bGUoJHJhZGl1czp0cnVlKTsgfVxuICAgICAgJi5yb3VuZCAgeyBAaW5jbHVkZSByZXZlYWwtbW9kYWwtc3R5bGUoJHJhZGl1czokcmV2ZWFsLXJvdW5kKTsgfVxuICAgICAgJi5jb2xsYXBzZSB7IEBpbmNsdWRlIHJldmVhbC1tb2RhbC1zdHlsZSgkcGFkZGluZzowKTsgfVxuICAgICAgJi50aW55ICB7IEBpbmNsdWRlIHJldmVhbC1tb2RhbC1iYXNlKGZhbHNlLCAzMCUpOyB9XG4gICAgICAmLnNtYWxsIHsgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLWJhc2UoZmFsc2UsIDQwJSk7IH1cbiAgICAgICYubWVkaXVtICB7IEBpbmNsdWRlIHJldmVhbC1tb2RhbC1iYXNlKGZhbHNlLCA2MCUpOyB9XG4gICAgICAmLmxhcmdlIHsgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLWJhc2UoZmFsc2UsIDcwJSk7IH1cbiAgICAgICYueGxhcmdlIHsgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLWJhc2UoZmFsc2UsIDk1JSk7IH1cbiAgICAgICYuZnVsbCB7XG4gICAgICAgIEBpbmNsdWRlIHJldmVhbC1tb2RhbC1iYXNlKGZhbHNlLCAxMDAlKTtcbiAgICAgICAgdG9wOjA7XG4gICAgICAgIGxlZnQ6MDtcbiAgICAgICAgaGVpZ2h0OjEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwdmg7XG4gICAgICAgIG1pbi1oZWlnaHQ6MTAwdmg7XG4gICAgICAgIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgICAgXG4gICAgICAvLyBNb2RhbHMgcHVzaGVkIHRvIGJhY2tcbiAgICAgICYudG9iYWNrIHtcbiAgICAgICAgei1pbmRleDogJHotaW5kZXgtYmFzZSAtIDI7XG4gICAgICB9XG5cbiAgICAgIC4jeyRjbG9zZS1yZXZlYWwtbW9kYWwtY2xhc3N9IHsgQGluY2x1ZGUgcmV2ZWFsLWNsb3NlOyB9XG4gICAgfVxuICB9XG59XG4iLCJAaW1wb3J0IFwicmVhY3Qtc2VsZWN0L3NlbGVjdFwiO1xuQGltcG9ydCBcInJlYWN0LXNlbGVjdC9jb250cm9sXCI7XG5AaW1wb3J0IFwicmVhY3Qtc2VsZWN0L21lbnVcIjtcbkBpbXBvcnQgXCJyZWFjdC1zZWxlY3QvbWl4aW5zXCI7XG5AaW1wb3J0IFwicmVhY3Qtc2VsZWN0L211bHRpXCI7XG5AaW1wb3J0IFwicmVhY3Qtc2VsZWN0L3NwaW5uZXJcIjtcbiIsIi8qKlxuICogUmVhY3QgU2VsZWN0XG4gKiA9PT09PT09PT09PT1cbiAqIENyZWF0ZWQgYnkgSmVkIFdhdHNvbiBhbmQgSm9zcyBNYWNraXNvbiBmb3IgS2V5c3RvbmVKUywgaHR0cDovL3d3dy5rZXlzdG9uZWpzLmNvbS9cbiAqIGh0dHBzOi8vdHdpdHRlci5jb20vamVkd2F0c29uIGh0dHBzOi8vdHdpdHRlci5jb20vam9zc21hY2tpc29uIGh0dHBzOi8vdHdpdHRlci5jb20va2V5c3RvbmVqc1xuICogTUlUIExpY2Vuc2U6IGh0dHBzOi8vZ2l0aHViLmNvbS9rZXlzdG9uZWpzL3JlYWN0LXNlbGVjdFxuKi9cblxuLy8gVmFyaWFibGVzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gY29udHJvbCBvcHRpb25zXG4kc2VsZWN0LWlucHV0LWJnOiAgICAgICAgICAgICAgICAgICNmZmYgIWRlZmF1bHQ7XG4kc2VsZWN0LWlucHV0LWJnLWRpc2FibGVkOiAgICAgICAgICNmOWY5ZjkgIWRlZmF1bHQ7XG4kc2VsZWN0LWlucHV0LWJvcmRlci1jb2xvcjogICAgICAgICNjY2MgIWRlZmF1bHQ7XG4kc2VsZWN0LWlucHV0LWJvcmRlci1yYWRpdXM6ICAgICAgIDRweCAhZGVmYXVsdDtcbiRzZWxlY3QtaW5wdXQtYm9yZGVyLWZvY3VzOiAgICAgICAgIzA4YyAhZGVmYXVsdDsgLy8gYmx1ZVxuJHNlbGVjdC1pbnB1dC1ib3JkZXItd2lkdGg6ICAgICAgICAxcHggIWRlZmF1bHQ7XG4kc2VsZWN0LWlucHV0LWhlaWdodDogICAgICAgICAgICAgIDM2cHggIWRlZmF1bHQ7XG4kc2VsZWN0LWlucHV0LWludGVybmFsLWhlaWdodDogICAgICgkc2VsZWN0LWlucHV0LWhlaWdodCAtICgkc2VsZWN0LWlucHV0LWJvcmRlci13aWR0aCAqIDIpKSAhZGVmYXVsdDtcbiRzZWxlY3QtaW5wdXQtcGxhY2Vob2xkZXI6ICAgICAgICAgI2FhYSAhZGVmYXVsdDtcbiRzZWxlY3QtdGV4dC1jb2xvcjogICAgICAgICAgICAgICAgIzMzMyAhZGVmYXVsdDtcbiRzZWxlY3QtbGluay1ob3Zlci1jb2xvcjogICAgICAgICAgJHNlbGVjdC1pbnB1dC1ib3JkZXItZm9jdXMgIWRlZmF1bHQ7XG5cbiRzZWxlY3QtcGFkZGluZy12ZXJ0aWNhbDogICAgICAgICAgOHB4ICFkZWZhdWx0O1xuJHNlbGVjdC1wYWRkaW5nLWhvcml6b250YWw6ICAgICAgICAxMHB4ICFkZWZhdWx0O1xuXG4vLyBtZW51IG9wdGlvbnNcbiRzZWxlY3QtbWVudS16aW5kZXg6ICAgICAgICAgICAgICAgMTAwMCAhZGVmYXVsdDtcbiRzZWxlY3QtbWVudS1tYXgtaGVpZ2h0OiAgICAgICAgICAgMjAwcHggIWRlZmF1bHQ7XG5cbiRzZWxlY3Qtb3B0aW9uLWNvbG9yOiAgICAgICAgICAgICAgbGlnaHRlbigkc2VsZWN0LXRleHQtY29sb3IsIDIwJSkgIWRlZmF1bHQ7XG4kc2VsZWN0LW9wdGlvbi1iZzogICAgICAgICAgICAgICAgICRzZWxlY3QtaW5wdXQtYmcgIWRlZmF1bHQ7XG4kc2VsZWN0LW9wdGlvbi1mb2N1c2VkLWNvbG9yOiAgICAgICRzZWxlY3QtdGV4dC1jb2xvciAhZGVmYXVsdDtcbiRzZWxlY3Qtb3B0aW9uLWZvY3VzZWQtYmc6ICAgICAgICAgI2YyZjlmYyAhZGVmYXVsdDsgLy8gcGFsZSBibHVlXG4kc2VsZWN0LW9wdGlvbi1zZWxlY3RlZC1jb2xvcjogICAgICRzZWxlY3QtdGV4dC1jb2xvciAhZGVmYXVsdDtcbiRzZWxlY3Qtb3B0aW9uLXNlbGVjdGVkLWJnOiAgICAgICAgI0RBRDFEMSAhZGVmYXVsdDsgLy8gZ3JheVxuJHNlbGVjdC1vcHRpb24tZGlzYWJsZWQtY29sb3I6ICAgICBsaWdodGVuKCRzZWxlY3QtdGV4dC1jb2xvciwgNjAlKSAhZGVmYXVsdDtcblxuJHNlbGVjdC1ub3Jlc3VsdHMtY29sb3I6ICAgICAgICAgICBsaWdodGVuKCRzZWxlY3QtdGV4dC1jb2xvciwgNDAlKSAhZGVmYXVsdDtcblxuLy8gY2xlYXIgXCJ4XCIgYnV0dG9uXG4kc2VsZWN0LWNsZWFyLXNpemU6ICAgICAgICAgICAgICAgIGZsb29yKCgkc2VsZWN0LWlucHV0LWhlaWdodCAvIDIpKSAhZGVmYXVsdDtcbiRzZWxlY3QtY2xlYXItY29sb3I6ICAgICAgICAgICAgICAgIzk5OSAhZGVmYXVsdDtcbiRzZWxlY3QtY2xlYXItaG92ZXItY29sb3I6ICAgICAgICAgI0QwMDIxQiAhZGVmYXVsdDsgLy8gcmVkXG4kc2VsZWN0LWNsZWFyLXdpZHRoOiAgICAgICAgICAgICAgICgkc2VsZWN0LWlucHV0LWludGVybmFsLWhlaWdodCAvIDIpICFkZWZhdWx0O1xuXG4vLyBhcnJvdyBpbmRpY2F0b3JcbiRzZWxlY3QtYXJyb3ctY29sb3I6ICAgICAgICAgICAgICAgIzk5OSAhZGVmYXVsdDtcbiRzZWxlY3QtYXJyb3ctY29sb3ItaG92ZXI6ICAgICAgICAgIzY2NiAhZGVmYXVsdDtcbiRzZWxlY3QtYXJyb3ctd2lkdGg6ICAgICAgICAgICAgICAgNXB4ICFkZWZhdWx0O1xuXG4vLyBsb2FkaW5nIGluZGljYXRvclxuJHNlbGVjdC1sb2FkaW5nLXNpemU6ICAgICAgICAgICAgICAxNnB4ICFkZWZhdWx0O1xuJHNlbGVjdC1sb2FkaW5nLWNvbG9yOiAgICAgICAgICAgICAkc2VsZWN0LXRleHQtY29sb3IgIWRlZmF1bHQ7XG4kc2VsZWN0LWxvYWRpbmctY29sb3ItYmc6ICAgICAgICAgICRzZWxlY3QtaW5wdXQtYm9yZGVyLWNvbG9yICFkZWZhdWx0O1xuXG4vLyBtdWx0aS1zZWxlY3QgaXRlbVxuJHNlbGVjdC1pdGVtLWJvcmRlci1yYWRpdXM6ICAgICAgICAycHggIWRlZmF1bHQ7XG4kc2VsZWN0LWl0ZW0tZ3V0dGVyOiAgICAgICAgICAgICAgIDVweCAhZGVmYXVsdDtcbiRzZWxlY3QtaXRlbS1wYWRkaW5nLXZlcnRpY2FsOiAgICAgMnB4ICFkZWZhdWx0O1xuJHNlbGVjdC1pdGVtLXBhZGRpbmctaG9yaXpvbnRhbDogICA1cHggIWRlZmF1bHQ7XG4kc2VsZWN0LWl0ZW0tZm9udC1zaXplOiAgICAgICAgICAgIC45ZW0gIWRlZmF1bHQ7XG4kc2VsZWN0LWl0ZW0tY29sb3I6ICAgICAgICAgICAgICAgICMwOGMgIWRlZmF1bHQ7IC8vIHBhbGUgYmx1ZVxuJHNlbGVjdC1pdGVtLWJnOiAgICAgICAgICAgICAgICAgICAjZjJmOWZjICFkZWZhdWx0O1xuJHNlbGVjdC1pdGVtLWJvcmRlci1jb2xvcjogICAgICAgICBkYXJrZW4oJHNlbGVjdC1pdGVtLWJnLCAxMCUpICFkZWZhdWx0O1xuJHNlbGVjdC1pdGVtLWhvdmVyLWNvbG9yOiAgICAgICAgICBkYXJrZW4oJHNlbGVjdC1pdGVtLWNvbG9yLCA1JSkgIWRlZmF1bHQ7IC8vIHBhbGUgYmx1ZVxuJHNlbGVjdC1pdGVtLWhvdmVyLWJnOiAgICAgICAgICAgICBkYXJrZW4oJHNlbGVjdC1pdGVtLWJnLCA1JSkgIWRlZmF1bHQ7XG4kc2VsZWN0LWl0ZW0tZGlzYWJsZWQtY29sb3I6ICAgICAgICMzMzMgIWRlZmF1bHQ7XG4kc2VsZWN0LWl0ZW0tZGlzYWJsZWQtYmc6ICAgICAgICAgICNmY2ZjZmMgIWRlZmF1bHQ7XG4kc2VsZWN0LWl0ZW0tZGlzYWJsZWQtYm9yZGVyLWNvbG9yOiBkYXJrZW4oJHNlbGVjdC1pdGVtLWRpc2FibGVkLWJnLCAxMCUpICFkZWZhdWx0O1xuIiwiLy9cbi8vIENvbnRyb2xcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AaW1wb3J0ICdzcGlubmVyJztcbkBpbXBvcnQgJ21peGlucyc7XG5cbi5TZWxlY3Qge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0Ly8gcHJlZmVycmVkIGJveCBtb2RlbFxuXHQmLFxuXHQmIGRpdixcblx0JiBpbnB1dCxcblx0JiBzcGFuIHtcblx0XHRAaW5jbHVkZSBib3gtc2l6aW5nKGJvcmRlci1ib3gpO1xuXHR9XG5cblx0Ly8gaGFuZGxlIGRpc2FibGVkIHN0YXRlXG5cdCYuaXMtZGlzYWJsZWQgPiAuU2VsZWN0LWNvbnRyb2wge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICRzZWxlY3QtaW5wdXQtYmctZGlzYWJsZWQ7XG5cdFx0Jjpob3ZlciB7XG5cdFx0XHRib3gtc2hhZG93OiBub25lO1xuXHRcdH1cblx0fVxuXHQmLmlzLWRpc2FibGVkIC5TZWxlY3QtYXJyb3ctem9uZSB7XG5cdFx0Y3Vyc29yOiBkZWZhdWx0O1xuXHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHR9XG59XG5cbi8vIGJhc2VcblxuLlNlbGVjdC1jb250cm9sIHtcblx0YmFja2dyb3VuZC1jb2xvcjogJHNlbGVjdC1pbnB1dC1iZztcblx0Ym9yZGVyLWNvbG9yOiBsaWdodGVuKCRzZWxlY3QtaW5wdXQtYm9yZGVyLWNvbG9yLCA1JSkgJHNlbGVjdC1pbnB1dC1ib3JkZXItY29sb3IgZGFya2VuKCRzZWxlY3QtaW5wdXQtYm9yZGVyLWNvbG9yLCAxMCUpO1xuXHRib3JkZXItcmFkaXVzOiAkc2VsZWN0LWlucHV0LWJvcmRlci1yYWRpdXM7XG5cdGJvcmRlcjogJHNlbGVjdC1pbnB1dC1ib3JkZXItd2lkdGggc29saWQgJHNlbGVjdC1pbnB1dC1ib3JkZXItY29sb3I7XG5cdGNvbG9yOiAkc2VsZWN0LXRleHQtY29sb3I7XG5cdGN1cnNvcjogZGVmYXVsdDtcblx0ZGlzcGxheTogdGFibGU7XG5cdGJvcmRlci1zcGFjaW5nOiAwO1xuXHRib3JkZXItY29sbGFwc2U6IHNlcGFyYXRlO1xuXHRoZWlnaHQ6ICRzZWxlY3QtaW5wdXQtaGVpZ2h0O1xuXHRvdXRsaW5lOiBub25lO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHdpZHRoOiAxMDAlO1xuXG5cdCY6aG92ZXIge1xuXHRcdGJveC1zaGFkb3c6IDAgMXB4IDAgcmdiYSgwLCAwLCAwLCAwLjA2KTtcblx0fVxufVxuXG4uaXMtc2VhcmNoYWJsZSB7XG5cdCYuaXMtb3BlbiA+IC5TZWxlY3QtY29udHJvbCB7XG5cdFx0Y3Vyc29yOiB0ZXh0O1xuXHR9XG59XG5cbi5pcy1vcGVuID4gLlNlbGVjdC1jb250cm9sIHtcblx0QGluY2x1ZGUgYm9yZGVyLWJvdHRvbS1yYWRpdXMoIDAgKTtcblx0YmFja2dyb3VuZDogJHNlbGVjdC1pbnB1dC1iZztcblx0Ym9yZGVyLWNvbG9yOiBkYXJrZW4oJHNlbGVjdC1pbnB1dC1ib3JkZXItY29sb3IsIDEwJSkgJHNlbGVjdC1pbnB1dC1ib3JkZXItY29sb3IgbGlnaHRlbigkc2VsZWN0LWlucHV0LWJvcmRlci1jb2xvciwgNSUpO1xuXG5cdC8vIGZsaXAgdGhlIGFycm93IHNvIGl0cyBwb2ludGluZyB1cCB3aGVuIHRoZSBtZW51IGlzIG9wZW5cblx0PiAuU2VsZWN0LWFycm93IHtcblx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICRzZWxlY3QtYXJyb3ctY29sb3I7XG5cdFx0Ym9yZGVyLXdpZHRoOiAwICRzZWxlY3QtYXJyb3ctd2lkdGggJHNlbGVjdC1hcnJvdy13aWR0aDtcblx0fVxufVxuXG4uaXMtc2VhcmNoYWJsZSB7XG5cdCYuaXMtZm9jdXNlZDpub3QoLmlzLW9wZW4pID4gLlNlbGVjdC1jb250cm9sIHtcblx0XHRjdXJzb3I6IHRleHQ7XG5cdH1cbn1cblxuLmlzLWZvY3VzZWQ6bm90KC5pcy1vcGVuKSA+IC5TZWxlY3QtY29udHJvbCB7XG5cdGJvcmRlci1jb2xvcjogJHNlbGVjdC1pbnB1dC1ib3JkZXItZm9jdXMgbGlnaHRlbigkc2VsZWN0LWlucHV0LWJvcmRlci1mb2N1cywgNSUpIGxpZ2h0ZW4oJHNlbGVjdC1pbnB1dC1ib3JkZXItZm9jdXMsIDUlKTtcblx0Ym94LXNoYWRvdzogaW5zZXQgMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xKSwgMCAwIDVweCAtMXB4IGZhZGUoJHNlbGVjdC1pbnB1dC1ib3JkZXItZm9jdXMsNTAlKTtcbn1cblxuLy8gcGxhY2Vob2xkZXJcblxuLlNlbGVjdC1wbGFjZWhvbGRlcixcbjpub3QoLlNlbGVjdC0tbXVsdGkpID4gLlNlbGVjdC1jb250cm9sIC5TZWxlY3QtdmFsdWUge1xuXHRib3R0b206IDA7XG5cdGNvbG9yOiAkc2VsZWN0LWlucHV0LXBsYWNlaG9sZGVyO1xuXHRsZWZ0OiAwO1xuXHRsaW5lLWhlaWdodDogJHNlbGVjdC1pbnB1dC1pbnRlcm5hbC1oZWlnaHQ7XG5cdHBhZGRpbmctbGVmdDogJHNlbGVjdC1wYWRkaW5nLWhvcml6b250YWw7XG5cdHBhZGRpbmctcmlnaHQ6ICRzZWxlY3QtcGFkZGluZy1ob3Jpem9udGFsO1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHJpZ2h0OiAwO1xuXHR0b3A6IDA7XG5cblx0Ly8gY3JvcCB0ZXh0XG5cdG1heC13aWR0aDogMTAwJTtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0dGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5oYXMtdmFsdWU6bm90KC5TZWxlY3QtLW11bHRpKTpub3QoLmlzLWZvY3VzZWQpID4gLlNlbGVjdC1jb250cm9sID4gLlNlbGVjdC12YWx1ZSxcbi5oYXMtdmFsdWUuaXMtcHNldWRvLWZvY3VzZWQ6bm90KC5TZWxlY3QtLW11bHRpKSA+IC5TZWxlY3QtY29udHJvbCA+IC5TZWxlY3QtdmFsdWUge1xuXHQuU2VsZWN0LXZhbHVlLWxhYmVsIHtcblx0XHRjb2xvcjogJHNlbGVjdC10ZXh0LWNvbG9yO1xuXHR9XG5cdGEuU2VsZWN0LXZhbHVlLWxhYmVsIHtcblx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG5cdFx0Jjpob3ZlciB7XG5cdFx0XHRjb2xvcjogJHNlbGVjdC1saW5rLWhvdmVyLWNvbG9yO1xuXHRcdFx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG5cdFx0fVxuXHR9XG59XG5cblxuLy8gdGhlIDxpbnB1dD4gZWxlbWVudCB1c2VycyB0eXBlIGluXG5cbi5TZWxlY3QtaW5wdXQge1xuXHQvLyBpbmhlcml0cyBgZGlzcGxheTogaW5saW5lLWJsb2NrYCBmcm9tIFwicmVhY3QtaW5wdXQtYXV0b3NpemVcIlxuXHRoZWlnaHQ6ICRzZWxlY3QtaW5wdXQtaW50ZXJuYWwtaGVpZ2h0O1xuXHRwYWRkaW5nLWxlZnQ6ICRzZWxlY3QtcGFkZGluZy1ob3Jpem9udGFsO1xuXHRwYWRkaW5nLXJpZ2h0OiAkc2VsZWN0LXBhZGRpbmctaG9yaXpvbnRhbDtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuXHQ+IGlucHV0IHtcblx0XHRiYWNrZ3JvdW5kOiBub25lIHRyYW5zcGFyZW50O1xuXHRcdGJvcmRlcjogMCBub25lO1xuXHRcdGJveC1zaGFkb3c6IG5vbmU7XG5cdFx0Y3Vyc29yOiBkZWZhdWx0O1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRmb250LWZhbWlseTogaW5oZXJpdDtcblx0XHRmb250LXNpemU6IGluaGVyaXQ7XG5cdFx0aGVpZ2h0OiAkc2VsZWN0LWlucHV0LWludGVybmFsLWhlaWdodDtcblx0XHRtYXJnaW46IDA7XG5cdFx0b3V0bGluZTogbm9uZTtcblx0XHRwYWRkaW5nOiAwO1xuXHRcdC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcblxuXHRcdC5pcy1mb2N1c2VkICYge1xuXHRcdFx0Y3Vyc29yOiB0ZXh0O1xuXHRcdH1cblx0fVxuXG59XG5cbi8vIGZha2UtaGlkZSB0aGUgaW5wdXQgd2hlbiB0aGUgY29udHJvbCBpcyBwc2V1ZG8tZm9jdXNlZFxuLmhhcy12YWx1ZS5pcy1wc2V1ZG8tZm9jdXNlZCAuU2VsZWN0LWlucHV0IHtcblx0b3BhY2l0eTogMDtcbn1cblxuLy8gZmFrZSBpbnB1dFxuLlNlbGVjdC1jb250cm9sOm5vdCguaXMtc2VhcmNoYWJsZSkgPiAuU2VsZWN0LWlucHV0IHtcblx0b3V0bGluZTogbm9uZTtcbn1cblxuLy8gbG9hZGluZyBpbmRpY2F0b3Jcbi5TZWxlY3QtbG9hZGluZy16b25lIHtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHRkaXNwbGF5OiB0YWJsZS1jZWxsO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0d2lkdGg6ICRzZWxlY3QtbG9hZGluZy1zaXplO1xufVxuLlNlbGVjdC1sb2FkaW5nIHtcblx0QGluY2x1ZGUgU2VsZWN0LXNwaW5uZXIoJHNlbGVjdC1sb2FkaW5nLXNpemUsICRzZWxlY3QtbG9hZGluZy1jb2xvci1iZywgJHNlbGVjdC1sb2FkaW5nLWNvbG9yKTtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuXG4vLyB0aGUgbGl0dGxlIGNyb3NzIHRoYXQgY2xlYXJzIHRoZSBmaWVsZFxuXG4uU2VsZWN0LWNsZWFyLXpvbmUge1xuXHRAaW5jbHVkZSBhbmltYXRpb24oIFNlbGVjdC1hbmltYXRpb24tZmFkZUluIDIwMG1zICk7XG5cdGNvbG9yOiAkc2VsZWN0LWNsZWFyLWNvbG9yO1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdGRpc3BsYXk6IHRhYmxlLWNlbGw7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHR3aWR0aDogJHNlbGVjdC1jbGVhci13aWR0aDtcblxuXHQmOmhvdmVyIHtcblx0XHRjb2xvcjogJHNlbGVjdC1jbGVhci1ob3Zlci1jb2xvcjtcblx0fVxufVxuLlNlbGVjdC1jbGVhciB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0Zm9udC1zaXplOiAkc2VsZWN0LWNsZWFyLXNpemU7XG5cdGxpbmUtaGVpZ2h0OiAxO1xufVxuLlNlbGVjdC0tbXVsdGkgLlNlbGVjdC1jbGVhci16b25lIHtcblx0d2lkdGg6ICRzZWxlY3QtY2xlYXItd2lkdGg7XG59XG5cblxuLy8gYXJyb3cgaW5kaWNhdG9yXG5cbi5TZWxlY3QtYXJyb3ctem9uZSB7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0ZGlzcGxheTogdGFibGUtY2VsbDtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdHdpZHRoOiAoJHNlbGVjdC1hcnJvdy13aWR0aCAqIDUpO1xuXHRwYWRkaW5nLXJpZ2h0OiAkc2VsZWN0LWFycm93LXdpZHRoO1xufVxuXG4uU2VsZWN0LWFycm93IHtcblx0Ym9yZGVyLWNvbG9yOiAkc2VsZWN0LWFycm93LWNvbG9yIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuXHRib3JkZXItc3R5bGU6IHNvbGlkO1xuXHRib3JkZXItd2lkdGg6ICRzZWxlY3QtYXJyb3ctd2lkdGggJHNlbGVjdC1hcnJvdy13aWR0aCAoJHNlbGVjdC1hcnJvdy13aWR0aCAvIDIpO1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdGhlaWdodDogMDtcblx0d2lkdGg6IDA7XG59XG4uaXMtb3BlbiAuU2VsZWN0LWFycm93LFxuLlNlbGVjdC1hcnJvdy16b25lOmhvdmVyID4gLlNlbGVjdC1hcnJvdyB7XG5cdGJvcmRlci10b3AtY29sb3I6ICRzZWxlY3QtYXJyb3ctY29sb3ItaG92ZXI7XG59XG5cblxuXG5cbi8vIEFuaW1hdGlvblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIGZhZGUgaW5cblxuQC13ZWJraXQta2V5ZnJhbWVzIFNlbGVjdC1hbmltYXRpb24tZmFkZUluIHtcblx0ZnJvbSB7IG9wYWNpdHk6IDA7IH1cblx0dG8geyBvcGFjaXR5OiAxOyB9XG59XG5Aa2V5ZnJhbWVzIFNlbGVjdC1hbmltYXRpb24tZmFkZUluIHtcblx0ZnJvbSB7IG9wYWNpdHk6IDA7IH1cblx0dG8geyBvcGFjaXR5OiAxOyB9XG59XG4iLCIvL1xuLy8gU3Bpbm5lclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AaW1wb3J0ICdtaXhpbnMnO1xuXG5AbWl4aW4gU2VsZWN0LXNwaW5uZXIoJHNpemUsICRvcmJpdCwgJHNhdGVsbGl0ZSlcbntcblx0QGluY2x1ZGUgYW5pbWF0aW9uKCBTZWxlY3QtYW5pbWF0aW9uLXNwaW4gNDAwbXMgaW5maW5pdGUgbGluZWFyICk7XG5cdEBpbmNsdWRlIHNxdWFyZSgkc2l6ZSk7XG5cdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdGJvcmRlci1yYWRpdXM6IDUwJTtcblx0Ym9yZGVyOiBmbG9vcigoJHNpemUgLyA4KSkgc29saWQgJG9yYml0O1xuXHRib3JkZXItcmlnaHQtY29sb3I6ICRzYXRlbGxpdGU7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG59XG5cbkBrZXlmcmFtZXMgU2VsZWN0LWFuaW1hdGlvbi1zcGluIHtcblx0dG8geyB0cmFuc2Zvcm06IHJvdGF0ZSgxdHVybik7IH1cbn1cbkAtd2Via2l0LWtleWZyYW1lcyBTZWxlY3QtYW5pbWF0aW9uLXNwaW4ge1xuXHR0byB7IC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMXR1cm4pOyB9XG59XG4iLCIvL1xuLy8gTWl4aW5zXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4vLyBVdGlsaXRpZXNcblxuQG1peGluIHNpemUoJHdpZHRoLCAkaGVpZ2h0KVxue1xuXHR3aWR0aDogJHdpZHRoO1xuXHRoZWlnaHQ6ICRoZWlnaHQ7XG59XG5AbWl4aW4gc3F1YXJlKCRzaXplKVxue1xuXHRAaW5jbHVkZSBzaXplKCRzaXplLCAkc2l6ZSk7XG59XG5AbWl4aW4gYm9yZGVyLXRvcC1yYWRpdXMoJHJhZGl1cylcbntcblx0Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRyYWRpdXM7XG5cdGJvcmRlci10b3AtbGVmdC1yYWRpdXM6ICRyYWRpdXM7XG59XG5AbWl4aW4gYm9yZGVyLXJpZ2h0LXJhZGl1cygkcmFkaXVzKVxue1xuXHRib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogJHJhZGl1cztcblx0Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRyYWRpdXM7XG59XG5AbWl4aW4gYm9yZGVyLWJvdHRvbS1yYWRpdXMoJHJhZGl1cylcbntcblx0Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6ICRyYWRpdXM7XG5cdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRyYWRpdXM7XG59XG5AbWl4aW4gYm9yZGVyLWxlZnQtcmFkaXVzKCRyYWRpdXMpXG57XG5cdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRyYWRpdXM7XG5cdGJvcmRlci10b3AtbGVmdC1yYWRpdXM6ICRyYWRpdXM7XG59XG5cblxuLy8gVmVuZG9yIFByZWZpeGVzXG5cbkBtaXhpbiBhbmltYXRpb24oJGFuaW1hdGlvbilcbntcblx0LXdlYmtpdC1hbmltYXRpb246ICRhbmltYXRpb247XG5cdC1vLWFuaW1hdGlvbjogJGFuaW1hdGlvbjtcblx0YW5pbWF0aW9uOiAkYW5pbWF0aW9uO1xufVxuQG1peGluIGJveC1zaXppbmcoJGJveG1vZGVsKVxue1xuXHQtd2Via2l0LWJveC1zaXppbmc6ICRib3htb2RlbDtcblx0LW1vei1ib3gtc2l6aW5nOiAkYm94bW9kZWw7XG5cdGJveC1zaXppbmc6ICRib3htb2RlbDtcbn1cbkBtaXhpbiByb3RhdGUoJGRlZ3JlZXMpXG57XG5cdC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoJGRlZ3JlZXMpO1xuXHQtbXMtdHJhbnNmb3JtOiByb3RhdGUoJGRlZ3JlZXMpOyAvLyBJRTkgb25seVxuXHQtby10cmFuc2Zvcm06IHJvdGF0ZSgkZGVncmVlcyk7XG5cdHRyYW5zZm9ybTogcm90YXRlKCRkZWdyZWVzKTtcbn1cbkBtaXhpbiB0cmFuc2Zvcm0oJHRyYW5zZm9ybSlcbntcblx0LXdlYmtpdC10cmFuc2Zvcm06ICR0cmFuc2Zvcm07XG5cdC1tb3otdHJhbnNmb3JtOiAkdHJhbnNmb3JtO1xuXHQtbXMtdHJhbnNmb3JtOiAkdHJhbnNmb3JtO1xuXHR0cmFuc2Zvcm06ICR0cmFuc2Zvcm07XG59XG4iLCIvL1xuLy8gU2VsZWN0IE1lbnVcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbi8vIHdyYXBwZXIgYXJvdW5kIHRoZSBtZW51XG5cbi5TZWxlY3QtbWVudS1vdXRlciB7XG5cdC8vIFVuZm9ydHVuYXRlbHksIGhhdmluZyBib3RoIGJvcmRlci1yYWRpdXMgYW5kIGFsbG93cyBzY3JvbGxpbmcgdXNpbmcgb3ZlcmZsb3cgZGVmaW5lZCBvbiB0aGUgc2FtZVxuXHQvLyBlbGVtZW50IGZvcmNlcyB0aGUgYnJvd3NlciB0byByZXBhaW50IG9uIHNjcm9sbC4gIEhvd2V2ZXIsIGlmIHRoZXNlIGRlZmluaXRpb25zIGFyZSBzcGxpdCBpbnRvIGFuXG5cdC8vIG91dGVyIGFuZCBhbiBpbm5lciBlbGVtZW50LCB0aGUgYnJvd3NlciBpcyBhYmxlIHRvIG9wdGltaXplIHRoZSBzY3JvbGxpbmcgYmVoYXZpb3IgYW5kIGRvZXMgbm90XG5cdC8vIGhhdmUgdG8gcmVwYWludCBvbiBzY3JvbGwuXG5cdEBpbmNsdWRlIGJvcmRlci1ib3R0b20tcmFkaXVzKCAkc2VsZWN0LWlucHV0LWJvcmRlci1yYWRpdXMgKTtcblx0YmFja2dyb3VuZC1jb2xvcjogJHNlbGVjdC1pbnB1dC1iZztcblx0Ym9yZGVyOiAxcHggc29saWQgJHNlbGVjdC1pbnB1dC1ib3JkZXItY29sb3I7XG5cdGJvcmRlci10b3AtY29sb3I6IG1peCgkc2VsZWN0LWlucHV0LWJnLCAkc2VsZWN0LWlucHV0LWJvcmRlci1jb2xvciwgNTAlKTtcblx0Ym94LXNoYWRvdzogMCAxcHggMCByZ2JhKDAsIDAsIDAsIDAuMDYpO1xuXHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRtYXJnaW4tdG9wOiAtMXB4O1xuXHRtYXgtaGVpZ2h0OiAkc2VsZWN0LW1lbnUtbWF4LWhlaWdodDtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDEwMCU7XG5cdHdpZHRoOiAxMDAlO1xuXHR6LWluZGV4OiAkc2VsZWN0LW1lbnUtemluZGV4O1xuXHQtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG59XG5cblxuLy8gd3JhcHBlclxuXG4uU2VsZWN0LW1lbnUge1xuXHRtYXgtaGVpZ2h0OiAoJHNlbGVjdC1tZW51LW1heC1oZWlnaHQgLSAycHgpO1xuXHRvdmVyZmxvdy15OiBhdXRvO1xufVxuXG5cbi8vIG9wdGlvbnNcblxuLlNlbGVjdC1vcHRpb24ge1xuXHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkc2VsZWN0LW9wdGlvbi1iZztcblx0Y29sb3I6ICRzZWxlY3Qtb3B0aW9uLWNvbG9yO1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRwYWRkaW5nOiAkc2VsZWN0LXBhZGRpbmctdmVydGljYWwgJHNlbGVjdC1wYWRkaW5nLWhvcml6b250YWw7XG5cblx0JjpsYXN0LWNoaWxkIHtcblx0XHRAaW5jbHVkZSBib3JkZXItYm90dG9tLXJhZGl1cyggJHNlbGVjdC1pbnB1dC1ib3JkZXItcmFkaXVzICk7XG5cdH1cblxuXHQmLmlzLWZvY3VzZWQge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICRzZWxlY3Qtb3B0aW9uLWZvY3VzZWQtYmc7XG5cdFx0Y29sb3I6ICRzZWxlY3Qtb3B0aW9uLWZvY3VzZWQtY29sb3I7XG5cdH1cblxuXHQmLmlzLXNlbGVjdGVkIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkc2VsZWN0LW9wdGlvbi1zZWxlY3RlZC1iZztcblx0XHRjb2xvcjogJHNlbGVjdC1vcHRpb24tc2VsZWN0ZWQtY29sb3I7XG5cdH1cblxuXHQmLmlzLWRpc2FibGVkIHtcblx0XHRjb2xvcjogJHNlbGVjdC1vcHRpb24tZGlzYWJsZWQtY29sb3I7XG5cdFx0Y3Vyc29yOiBkZWZhdWx0O1xuXHR9XG5cbn1cblxuXG4vLyBubyByZXN1bHRzXG5cbi5TZWxlY3Qtbm9yZXN1bHRzIHtcblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0Y29sb3I6ICRzZWxlY3Qtbm9yZXN1bHRzLWNvbG9yO1xuXHRjdXJzb3I6IGRlZmF1bHQ7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRwYWRkaW5nOiAkc2VsZWN0LXBhZGRpbmctdmVydGljYWwgJHNlbGVjdC1wYWRkaW5nLWhvcml6b250YWw7XG59XG4iLCIvL1xuLy8gTXVsdGktU2VsZWN0XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4vLyBCYXNlXG5cbi5TZWxlY3QtLW11bHRpIHtcblxuXHQvLyBhZGQgbWFyZ2luIHRvIHRoZSBpbnB1dCBlbGVtZW50XG5cdC5TZWxlY3QtaW5wdXQge1xuXHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdFx0Ly8gYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG5cdFx0bWFyZ2luLWxlZnQ6ICRzZWxlY3QtcGFkZGluZy1ob3Jpem9udGFsO1xuXHRcdHBhZGRpbmc6IDA7XG5cdH1cblxuXHQvLyByZWR1Y2UgbWFyZ2luIG9uY2UgdGhlcmUgaXMgdmFsdWVcblx0Ji5oYXMtdmFsdWUgLlNlbGVjdC1pbnB1dCB7XG5cdFx0bWFyZ2luLWxlZnQ6ICRzZWxlY3QtaXRlbS1ndXR0ZXI7XG5cdH1cblxuXHQvLyBJdGVtc1xuXHQuU2VsZWN0LXZhbHVlIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkc2VsZWN0LWl0ZW0tYmc7XG5cdFx0Ym9yZGVyLXJhZGl1czogJHNlbGVjdC1pdGVtLWJvcmRlci1yYWRpdXM7XG5cdFx0Ym9yZGVyOiAxcHggc29saWQgJHNlbGVjdC1pdGVtLWJvcmRlci1jb2xvcjtcblx0XHRjb2xvcjogJHNlbGVjdC1pdGVtLWNvbG9yO1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRmb250LXNpemU6ICRzZWxlY3QtaXRlbS1mb250LXNpemU7XG5cdFx0bWFyZ2luLWxlZnQ6ICRzZWxlY3QtaXRlbS1ndXR0ZXI7XG5cdFx0bWFyZ2luLXRvcDogJHNlbGVjdC1pdGVtLWd1dHRlcjtcblx0XHR2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuXHR9XG5cblx0Ly8gY29tbW9uXG5cdC5TZWxlY3QtdmFsdWUtaWNvbixcblx0LlNlbGVjdC12YWx1ZS1sYWJlbCB7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdH1cblxuXHQvLyBsYWJlbFxuXHQuU2VsZWN0LXZhbHVlLWxhYmVsIHtcblx0XHRAaW5jbHVkZSBib3JkZXItcmlnaHQtcmFkaXVzKCAkc2VsZWN0LWl0ZW0tYm9yZGVyLXJhZGl1cyApO1xuXHRcdGN1cnNvcjogZGVmYXVsdDtcblx0XHRwYWRkaW5nOiAkc2VsZWN0LWl0ZW0tcGFkZGluZy12ZXJ0aWNhbCAkc2VsZWN0LWl0ZW0tcGFkZGluZy1ob3Jpem9udGFsO1xuXHR9XG5cdGEuU2VsZWN0LXZhbHVlLWxhYmVsIHtcblx0XHRjb2xvcjogJHNlbGVjdC1pdGVtLWNvbG9yO1xuXHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cblx0XHQmOmhvdmVyIHtcblx0XHRcdHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXHRcdH1cblx0fVxuXG5cdC8vIGljb25cblx0LlNlbGVjdC12YWx1ZS1pY29uIHtcblx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0QGluY2x1ZGUgYm9yZGVyLWxlZnQtcmFkaXVzKCAkc2VsZWN0LWl0ZW0tYm9yZGVyLXJhZGl1cyApO1xuXHRcdGJvcmRlci1yaWdodDogMXB4IHNvbGlkICRzZWxlY3QtaXRlbS1ib3JkZXItY29sb3I7XG5cblx0XHQvLyBtb3ZlIHRoZSBiYXNlbGluZSB1cCBieSAxcHhcblx0XHRwYWRkaW5nOiAoJHNlbGVjdC1pdGVtLXBhZGRpbmctdmVydGljYWwgLSAxKSAkc2VsZWN0LWl0ZW0tcGFkZGluZy1ob3Jpem9udGFsICgkc2VsZWN0LWl0ZW0tcGFkZGluZy12ZXJ0aWNhbCArIDEpO1xuXG5cdFx0Jjpob3Zlcixcblx0XHQmOmZvY3VzIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRzZWxlY3QtaXRlbS1ob3Zlci1iZztcblx0XHRcdGNvbG9yOiAkc2VsZWN0LWl0ZW0taG92ZXItY29sb3I7XG5cdFx0fVxuXHRcdCY6YWN0aXZlIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRzZWxlY3QtaXRlbS1ib3JkZXItY29sb3I7XG5cdFx0fVxuXHR9XG5cbn1cblxuLlNlbGVjdC0tbXVsdGkuaXMtZGlzYWJsZWQge1xuXHQuU2VsZWN0LXZhbHVlIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkc2VsZWN0LWl0ZW0tZGlzYWJsZWQtYmc7XG5cdFx0Ym9yZGVyOiAxcHggc29saWQgJHNlbGVjdC1pdGVtLWRpc2FibGVkLWJvcmRlci1jb2xvcjtcblx0XHRjb2xvcjogJHNlbGVjdC1pdGVtLWRpc2FibGVkLWNvbG9yO1xuXHR9XG5cdC8vIGljb25cblx0LlNlbGVjdC12YWx1ZS1pY29uIHtcblx0XHRjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXHRcdGJvcmRlci1yaWdodDogMXB4IHNvbGlkICRzZWxlY3QtaXRlbS1kaXNhYmxlZC1ib3JkZXItY29sb3I7XG5cblx0XHQmOmhvdmVyLFxuXHRcdCY6Zm9jdXMsXG5cdFx0JjphY3RpdmUge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJHNlbGVjdC1pdGVtLWRpc2FibGVkLWJnO1xuXHRcdH1cblx0fVxufVxuIiwiLyoqXG4gKiBDb21tZW50cyBzdHlsaW5nLCBjb3VydGVzeSBvZlxuICogaHR0cDovL3JlZmlsbHMuYm91cmJvbi5pby9cbiAqL1xuXG4kY29tbWVudC1ndXR0ZXI6ICAgICAgICAgICAgICAgIDEuNGVtICFkZWZhdWx0O1xuJGNvbW1lbnQtaW1hZ2UtbWFyZ2luOiAgICAgICAgICAuN2VtICFkZWZhdWx0O1xuJGNvbW1lbnQtaW1hZ2Utd2lkdGg6ICAgICAgICAgICAzMHB4ICFkZWZhdWx0O1xuJGNvbW1lbnQtaW1hZ2Utd2lkdGgtbGFyZ2U6ICAgICA2MHB4ICFkZWZhdWx0O1xuJGNvbW1lbnQtaW1hZ2UtYm9yZGVyLXBhZGRpbmc6ICAzcHggIWRlZmF1bHQ7XG4kY29tbWVudC1pbWFnZS1ib3JkZXItd2lkdGg6ICAgIDFweCAhZGVmYXVsdDtcbiRjb21tZW50LWhlYWRlci1mb250LXNpemU6ICAgICAgcmVtLWNhbGMoMjApICFkZWZhdWx0O1xuJGNvbW1lbnQtY29sb3I6ICAgICAgICAgICAgICAgICAkYm9keS1mb250LWNvbG9yICFkZWZhdWx0O1xuJGNvbW1lbnQtYmFja2dyb3VuZDogICAgICAgICAgICAkc2Vjb25kYXJ5LWNvbG9yICFkZWZhdWx0O1xuJGNvbW1lbnQtZGV0YWlsLWNvbG9yOiAgICAgICAgICB0cmFuc3BhcmVudGl6ZSgkY29tbWVudC1jb2xvciwgLjUpICFkZWZhdWx0O1xuJGNvbW1lbnQtaW1hZ2UtdmVydC1hbGlnbm1lbnQ6ICB0b3AgIWRlZmF1bHQ7XG4kY29tbWVudC1zdGFyLWNvbG9yOiAgICAgICAgICAgICRjYWxsLXRvLWFjdGlvbi1jb2xvciAhZGVmYXVsdDtcbiRjb21tZW50LWF2YXRhci1ib3JkZXItY29sb3I6ICAgI2RkZCAhZGVmYXVsdDtcbiRjb21tZW50LWF2YXRhci1ib3gtc2l6ZTogICAgICAgI3skY29tbWVudC1pbWFnZS13aWR0aCArICRjb21tZW50LWltYWdlLWJvcmRlci1wYWRkaW5nICogMiArICRjb21tZW50LWltYWdlLWJvcmRlci13aWR0aCAqIDJ9O1xuJGNvbW1lbnQtYXZhdGFyLWJveC1zaXplLWxhcmdlOiAjeyRjb21tZW50LWltYWdlLXdpZHRoLWxhcmdlICsgJGNvbW1lbnQtaW1hZ2UtYm9yZGVyLXBhZGRpbmcgKiAyICsgJGNvbW1lbnQtaW1hZ2UtYm9yZGVyLXdpZHRoICogMn07XG5cbi5jb21tZW50IHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAjeyRwYXJhZ3JhcGgtbGluZS1oZWlnaHQgKiAxcmVtfTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMWVtO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB0cmFuc3BhcmVudGl6ZSgkY29tbWVudC1jb2xvciwgLjkpO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIC5jb21tZW50LWF2YXRhciB7XG4gICAgICAgICAgICBib3JkZXI6ICRjb21tZW50LWltYWdlLWJvcmRlci13aWR0aCBzb2xpZCBkYXJrZW4oJGNvbW1lbnQtYXZhdGFyLWJvcmRlci1jb2xvciwgMzAlKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmNvbW1lbnQtaW1hZ2UsXG4uY29tbWVudC1jb250ZW50IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIHZlcnRpY2FsLWFsaWduOiAkY29tbWVudC1pbWFnZS12ZXJ0LWFsaWdubWVudDtcbn1cblxuLmNvbW1lbnQtaW1hZ2Uge1xuICAgIGltZyB7XG4gICAgICAgIHdpZHRoOiAkY29tbWVudC1pbWFnZS13aWR0aDtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgIH1cblxuICAgIHBhZGRpbmctcmlnaHQ6ICRjb21tZW50LWltYWdlLW1hcmdpbjtcbn1cblxuLyoqXG4gKiBDaXJjdWxhciBhdmF0YXJzXG4gKiBDb3VydGVzeSBvZiBodHRwOi8vY29kZXBlbi5pby9icmFkZW5oYW1tL3Blbi95RHVrYVxuICovXG5cbi5jb21tZW50LWF2YXRhciB7XG4gICAgbGluZS1oZWlnaHQ6IDA7ICAgICAvKiByZW1vdmUgbGluZS1oZWlnaHQgKi8gXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyAgLyogY2lyY2xlIHdyYXBzIGltYWdlICovXG4gICAgYm9yZGVyLXJhZGl1czogNTAlOyAvKiByZWxhdGl2ZSB2YWx1ZSAqL1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYm9yZGVyIDMwMG1zIGVhc2UpO1xuICAgIGhlaWdodDogJGNvbW1lbnQtYXZhdGFyLWJveC1zaXplO1xuICAgIHdpZHRoOiAkY29tbWVudC1hdmF0YXItYm94LXNpemU7XG4gICAgYm9yZGVyOiAkY29tbWVudC1pbWFnZS1ib3JkZXItd2lkdGggc29saWQgJGNvbW1lbnQtYXZhdGFyLWJvcmRlci1jb2xvcjtcbiAgICBwYWRkaW5nOiAkY29tbWVudC1pbWFnZS1ib3JkZXItcGFkZGluZztcbn1cblxuLmNvbW1lbnQtYXZhdGFyIGltZyB7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlOyAvKiByZWxhdGl2ZSB2YWx1ZSBmb3JcbiAgICAgICAgICAgICAgICAgICBhZGp1c3RhYmxlIGltYWdlIHNpemUgKi9cbn1cblxuLmNvbW1lbnQtY29udGVudCB7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICAuY29tbWVudC1jb250ZW50X190aXRsZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogJGNvbW1lbnQtaGVhZGVyLWZvbnQtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogLjVlbTtcbiAgICB9XG5cbiAgICBwIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogLjVlbTtcbiAgICB9XG5cbiAgICAuY29tbWVudC1kZXRhaWwge1xuICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIGZvbnQtc2l6ZTogLjllbTtcbiAgICAgICAgY29sb3I6ICRjb21tZW50LWRldGFpbC1jb2xvcjtcbiAgICB9XG59XG5cbi5jb21tZW50LXN0YXItcmF0aW5nIGkge1xuICAgIGNvbG9yOiAkY29tbWVudC1zdGFyLWNvbG9yO1xuICAgIG1hcmdpbi1yaWdodDogLTJweDtcbn1cblxuLmNvbW1lbnQtc3Rhci1yYXRpbmcge1xuICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICBtYXJnaW46IDA7XG5cbiAgICBmaWdjYXB0aW9uIHtcbiAgICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICB9XG59XG5cbi5jb21tZW50LXN0YXItcmF0aW5nLWNvdW50IHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4uY29tbWVudC1kZXRhaWwge1xuICAgIC5jb21tZW50LXN0YXItcmF0aW5nIHtcbiAgICAgICAgb3BhY2l0eTogLjU7XG4gICAgICAgIGZpZ2NhcHRpb24ge1xuICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5jb21tZW50cy1mb3JtIHtcbiAgICBwYWRkaW5nLXRvcDogMXJlbTtcbn1cblxuLmNvbW1lbnRzLWZvcm0td3JhcHBlciB7XG4gICAgcGFkZGluZy1ib3R0b206IDFyZW07XG59XG5cbi5jb21tZW50cy1mb3JtLWVycm9yOmVtcHR5LFxuLmNvbW1lbnQtZm9ybS12YWxpZGF0aW9uLWVycm9yczplbXB0eSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLmNvbW1lbnRzLWd1aWRlbGluZXMge1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkYm9yZGVyLWNvbG9yO1xuICAgIHBhZGRpbmctdG9wOiAycmVtO1xuICAgIFxuICAgIHAsIGxpIHtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4gICAgfVxufVxuXG4jcHJvZHVrdF9hbm1lbGRlbHNlcl9mb3JtX3ZhbGlkZXJ0IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG59XG5cbkBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAuY29tbWVudC1pbWFnZSB7XG4gICAgICAgIGltZyB7XG4gICAgICAgICAgICB3aWR0aDogJGNvbW1lbnQtaW1hZ2Utd2lkdGgtbGFyZ2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuY29tbWVudC1hdmF0YXIge1xuICAgICAgICBoZWlnaHQ6ICRjb21tZW50LWF2YXRhci1ib3gtc2l6ZS1sYXJnZTtcbiAgICAgICAgd2lkdGg6ICRjb21tZW50LWF2YXRhci1ib3gtc2l6ZS1sYXJnZTtcbiAgICB9XG59IiwiLmNvb2tpZV9ub3RpY2Uge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDA7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHdpZHRoOiAzOTBweDtcbiAgICB6LWluZGV4OiA5OTk5OTk5O1xuICAgIG1heC1oZWlnaHQ6IDk1JTtcbiAgICByaWdodDogMjBweDtcbiAgICBib3R0b206IDIwcHg7XG59XG5cbi5jb29raWVfbm90aWNlX2FyZWEge1xuXHRtYXJnaW4tbGVmdDogNSU7XG5cdG1hcmdpbi1yaWdodDogNSU7XG4gICAgbWFyZ2luLWJvdHRvbTogNSU7XG59XG5cbiNjb29raWVfbm90aWNlX3RleHQge1xuICAgIHBhZGRpbmc6IDFyZW0gMDtcbiAgICBjb2xvcjp3aGl0ZTtcbn1cblxuI2Nvb2tpZV9idXR0b25zIGEge1xuICAgIHBhZGRpbmc6IDhweDtcblxuICAgICY6dmlzaXRlZCwgXG4gICAgJjphY3RpdmUge1xuICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgfVxufVxuXG4jY29va2llX2J1dHRvbnMgc3BhbiB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbn0iLCIvLyBFcXVhbCBoZWlnaHQgY29sdW1uIGdyaWQsIG1lZGlhIHF1ZXJ5IHNldHRpbmdzXG4kZXF1YWwtY29sLWdyaWQtc21hbGwtcmFuZ2U6ICAgKDBlbSwgMjkuOTM3ZW0pICFkZWZhdWx0O1xuJGVxdWFsLWNvbC1ncmlkLW1lZGl1bS1yYW5nZTogICgzMGVtLCA0Ny45MzdlbSkgIWRlZmF1bHQ7XG4kZXF1YWwtY29sLWdyaWQtbGFyZ2UtcmFuZ2U6ICAgKDQ4ZW0sIDYzLjkzN2VtKSAhZGVmYXVsdDtcbiRlcXVhbC1jb2wtZ3JpZC14bGFyZ2UtcmFuZ2U6ICAoNjRlbSwgOTBlbSkgIWRlZmF1bHQ7XG4kZXF1YWwtY29sLWdyaWQteHhsYXJnZS1yYW5nZTogICg5MC4wNjNlbSwgOTk5OTk5OTllbSkgIWRlZmF1bHQ7XG5cbiRlcXVhbC1jb2wtZ3JpZC1zbWFsbC11cDogICAgICAkc2NyZWVuICFkZWZhdWx0O1xuJGVxdWFsLWNvbC1ncmlkLXNtYWxsLW9ubHk6ICAgIFwiI3skc2NyZWVufSBhbmQgKG1heC13aWR0aDoje3VwcGVyLWJvdW5kKCRlcXVhbC1jb2wtZ3JpZC1zbWFsbC1yYW5nZSl9KVwiICFkZWZhdWx0O1xuJGVxdWFsLWNvbC1ncmlkLW1lZGl1bS11cDogICAgIFwiI3skc2NyZWVufSBhbmQgKG1pbi13aWR0aDoje2xvd2VyLWJvdW5kKCRlcXVhbC1jb2wtZ3JpZC1tZWRpdW0tcmFuZ2UpfSlcIiAhZGVmYXVsdDtcbiRlcXVhbC1jb2wtZ3JpZC1tZWRpdW0tb25seTogICBcIiN7JHNjcmVlbn0gYW5kIChtaW4td2lkdGg6I3tsb3dlci1ib3VuZCgkZXF1YWwtY29sLWdyaWQtbWVkaXVtLXJhbmdlKX0pIGFuZCAobWF4LXdpZHRoOiN7dXBwZXItYm91bmQoJGVxdWFsLWNvbC1ncmlkLW1lZGl1bS1yYW5nZSl9KVwiICFkZWZhdWx0O1xuJGVxdWFsLWNvbC1ncmlkLWxhcmdlLXVwOiAgICAgIFwiI3skc2NyZWVufSBhbmQgKG1pbi13aWR0aDoje2xvd2VyLWJvdW5kKCRlcXVhbC1jb2wtZ3JpZC1sYXJnZS1yYW5nZSl9KVwiICFkZWZhdWx0O1xuJGVxdWFsLWNvbC1ncmlkLWxhcmdlLW9ubHk6ICAgIFwiI3skc2NyZWVufSBhbmQgKG1pbi13aWR0aDoje2xvd2VyLWJvdW5kKCRlcXVhbC1jb2wtZ3JpZC1sYXJnZS1yYW5nZSl9KSBhbmQgKG1heC13aWR0aDoje3VwcGVyLWJvdW5kKCRlcXVhbC1jb2wtZ3JpZC1sYXJnZS1yYW5nZSl9KVwiICFkZWZhdWx0O1xuJGVxdWFsLWNvbC1ncmlkLXhsYXJnZS11cDogICAgIFwiI3skc2NyZWVufSBhbmQgKG1pbi13aWR0aDoje2xvd2VyLWJvdW5kKCRlcXVhbC1jb2wtZ3JpZC14bGFyZ2UtcmFuZ2UpfSlcIiAhZGVmYXVsdDtcbiRlcXVhbC1jb2wtZ3JpZC14bGFyZ2Utb25seTogICBcIiN7JHNjcmVlbn0gYW5kIChtaW4td2lkdGg6I3tsb3dlci1ib3VuZCgkZXF1YWwtY29sLWdyaWQteGxhcmdlLXJhbmdlKX0pIGFuZCAobWF4LXdpZHRoOiN7dXBwZXItYm91bmQoJGVxdWFsLWNvbC1ncmlkLXhsYXJnZS1yYW5nZSl9KVwiICFkZWZhdWx0O1xuJGVxdWFsLWNvbC1ncmlkLXh4bGFyZ2UtdXA6ICAgIFwiI3skc2NyZWVufSBhbmQgKG1pbi13aWR0aDoje2xvd2VyLWJvdW5kKCRlcXVhbC1jb2wtZ3JpZC14eGxhcmdlLXJhbmdlKX0pXCIgIWRlZmF1bHQ7XG4kZXF1YWwtY29sLWdyaWQteHhsYXJnZS1vbmx5OiAgXCIjeyRzY3JlZW59IGFuZCAobWluLXdpZHRoOiN7bG93ZXItYm91bmQoJGVxdWFsLWNvbC1ncmlkLXh4bGFyZ2UtcmFuZ2UpfSkgYW5kIChtYXgtd2lkdGg6I3t1cHBlci1ib3VuZCgkZXF1YWwtY29sLWdyaWQteHhsYXJnZS1yYW5nZSl9KVwiICFkZWZhdWx0O1xuXG4uZXF1YWwtaGVpZ2h0LWNvbHVtbnMge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgLmZsZXhib3ggJiB7XG4gICAgICAgIEBpbmNsdWRlIGRpc3BsYXkoZmxleCk7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtd3JhcCh3cmFwKTtcbiAgICB9XG5cbiAgICBbY2xhc3MqPVwiY29sdW1uXCJdK1tjbGFzcyo9XCJjb2x1bW5cIl06bGFzdC1jaGlsZCB7IC8vIE5lZ2F0ZSB0aGUgZm91bmRhdGlvbiBncmlkIGNzc1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICB9XG59XG5cbi5lcXVhbC1oZWlnaHQtY29sdW1uIHtcbiAgICBkaXNwbGF5OiBibG9jaztcblxuICAgIC5mbGV4Ym94ICYge1xuICAgICAgICBAaW5jbHVkZSBkaXNwbGF5KGZsZXgpO1xuICAgIH1cblxuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6ICRjb2x1bW4tZ3V0dGVyLzI7XG59XG5cbi5lcXVhbC1oZWlnaHQtY29sdW1uLWlubmVyd3JhcCB7XG4gICAgcGFkZGluZzogJGVxdWFsLWNvbC1pbm5lci1wYWRkaW5nO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogMTAwJTtcbn1cblxuLmZsZXhib3gsXG4ubm8tanMge1xuICAgIC5lcXVhbC1oZWlnaHQtY29sdW1uLWlubmVyd3JhcCAge1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgfVxufVxuXG4uZXF1YWwtaGVpZ2h0LWNvbHVtbl9faW1hZ2Uge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMjUwcHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbi1ib3R0b206IC43NXJlbTtcblxuICAgIGltZyB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDI1MHB4O1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxufVxuXG4uZXF1YWwtaGVpZ2h0LWNvbHVtbl9fcmVhZG9uIHtcbiAgICBtYXJnaW4tbGVmdDogLSgkY29sdW1uLWd1dHRlci8yKTtcbn1cblxuLyogMiBjb2x1bW5zICovXG5AbWVkaWEgI3skZXF1YWwtY29sLWdyaWQtbWVkaXVtLXVwfSB7XG4gICAgLmVxdWFsLWhlaWdodC1jb2x1bW4ge1xuICAgICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigkY29sdW1uczo2LCAkY29sbGFwc2U6bnVsbCwgJGZsb2F0OmZhbHNlKTtcbiAgICB9XG5cbiAgICAuZXF1YWwtaGVpZ2h0LWNvbHVtbl9faW1hZ2Uge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAyMDBweDtcbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIwMHB4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKiAzIGNvbHVtbnMgKi9cbkBtZWRpYSAjeyRlcXVhbC1jb2wtZ3JpZC1sYXJnZS11cH0gIHtcbiAgICAuZXF1YWwtaGVpZ2h0LWNvbHVtbiB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKCRjb2x1bW5zOjQsICRjb2xsYXBzZTpudWxsLCAkZmxvYXQ6ZmFsc2UpO1xuICAgIH1cbn1cblxuLyogNCBjb2x1bW5zICovXG5AbWVkaWEgI3skZXF1YWwtY29sLWdyaWQteGxhcmdlLXVwfSAge1xuICAgIC5uby1zcGxpdC1tZW51IC5lcXVhbC1oZWlnaHQtY29sdW1uIHtcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJGNvbHVtbnM6MywgJGNvbGxhcHNlOm51bGwsICRmbG9hdDpmYWxzZSk7XG4gICAgfVxufSIsIi8qISBmYW5jeUJveCB2Mi4xLjUgZmFuY3lhcHBzLmNvbSB8IGZhbmN5YXBwcy5jb20vZmFuY3lib3gvI2xpY2Vuc2UgKi9cbi5mYW5jeWJveC13cmFwLFxuLmZhbmN5Ym94LXNraW4sXG4uZmFuY3lib3gtb3V0ZXIsXG4uZmFuY3lib3gtaW5uZXIsXG4uZmFuY3lib3gtaW1hZ2UsXG4uZmFuY3lib3gtd3JhcCBpZnJhbWUsXG4uZmFuY3lib3gtd3JhcCBvYmplY3QsXG4uZmFuY3lib3gtbmF2LFxuLmZhbmN5Ym94LW5hdiBzcGFuLFxuLmZhbmN5Ym94LXRtcFxue1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIGJvcmRlcjogMDtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG5cbi5mYW5jeWJveC13cmFwIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgei1pbmRleDogODAyMDtcbn1cblxuLmZhbmN5Ym94LXNraW4ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBiYWNrZ3JvdW5kOiAjZjlmOWY5O1xuICAgIGNvbG9yOiAjNDQ0O1xuICAgIHRleHQtc2hhZG93OiBub25lO1xuICAgICAgIC1tb3otYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxuXG4uZmFuY3lib3gtb3BlbmVkIHtcbiAgICB6LWluZGV4OiA4MDMwO1xufVxuXG4uZmFuY3lib3gtb3BlbmVkIC5mYW5jeWJveC1za2luIHtcbiAgIC1tb3otYm94LXNoYWRvdzogMCAxMHB4IDI1cHggcmdiYSgwLCAwLCAwLCAwLjUpO1xuICAgICAgICBib3gtc2hhZG93OiAwIDEwcHggMjVweCByZ2JhKDAsIDAsIDAsIDAuNSk7XG59XG5cbi5mYW5jeWJveC1vdXRlciwgLmZhbmN5Ym94LWlubmVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5mYW5jeWJveC1pbm5lciB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmZhbmN5Ym94LXR5cGUtaWZyYW1lIC5mYW5jeWJveC1pbm5lciB7XG4gICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xufVxuXG4uZmFuY3lib3gtZXJyb3Ige1xuICAgIGNvbG9yOiAjNDQ0O1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAxNXB4O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5mYW5jeWJveC1pbWFnZSwgLmZhbmN5Ym94LWlmcmFtZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuXG4uZmFuY3lib3gtaW1hZ2Uge1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtYXgtaGVpZ2h0OiAxMDAlO1xufVxuXG4jZmFuY3lib3gtbG9hZGluZywgLmZhbmN5Ym94LWNsb3NlLCAuZmFuY3lib3gtcHJldiBzcGFuLCAuZmFuY3lib3gtbmV4dCBzcGFuIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy9hc3NldHMvaW1nL2ZhbmN5Ym94X3Nwcml0ZS5wbmcnKTtcbn1cblxuI2ZhbmN5Ym94LWxvYWRpbmcge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDUwJTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgbWFyZ2luLXRvcDogLTIycHg7XG4gICAgbWFyZ2luLWxlZnQ6IC0yMnB4O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAgLTEwOHB4O1xuICAgIG9wYWNpdHk6IDAuODtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgei1pbmRleDogODA2MDtcbn1cblxuI2ZhbmN5Ym94LWxvYWRpbmcgZGl2IHtcbiAgICB3aWR0aDogNDRweDtcbiAgICBoZWlnaHQ6IDQ0cHg7XG4gICAgYmFja2dyb3VuZDogdXJsKCcvYXNzZXRzL2ltZy9mYW5jeWJveF9sb2FkaW5nLmdpZicpIGNlbnRlciBjZW50ZXIgbm8tcmVwZWF0O1xufVxuXG4uZmFuY3lib3gtY2xvc2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IC0xOHB4O1xuICAgIHJpZ2h0OiAtMThweDtcbiAgICB3aWR0aDogMzZweDtcbiAgICBoZWlnaHQ6IDM2cHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHotaW5kZXg6IDgwNDA7XG59XG5cbi5mYW5jeWJveC1uYXYge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgd2lkdGg6IDQwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwwLDAsMCk7XG4gICAgei1pbmRleDogODA0MDtcbn1cblxuLmZhbmN5Ym94LXByZXYge1xuICAgIGxlZnQ6IDA7XG59XG5cbi5mYW5jeWJveC1uZXh0IHtcbiAgICByaWdodDogMDtcbn1cblxuLmZhbmN5Ym94LW5hdiBzcGFuIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgd2lkdGg6IDM2cHg7XG4gICAgaGVpZ2h0OiAzNHB4O1xuICAgIG1hcmdpbi10b3A6IC0xOHB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB6LWluZGV4OiA4MDQwO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuLmZhbmN5Ym94LXByZXYgc3BhbiB7XG4gICAgbGVmdDogMTBweDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC0zNnB4O1xufVxuXG4uZmFuY3lib3gtbmV4dCBzcGFuIHtcbiAgICByaWdodDogMTBweDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC03MnB4O1xufVxuXG4uZmFuY3lib3gtbmF2OmhvdmVyIHNwYW4ge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG59XG5cbi5mYW5jeWJveC10bXAge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IC05OTk5OXB4O1xuICAgIGxlZnQ6IC05OTk5OXB4O1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICBtYXgtd2lkdGg6IDk5OTk5cHg7XG4gICAgbWF4LWhlaWdodDogOTk5OTlweDtcbiAgICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50O1xufVxuXG4vKiBPdmVybGF5IGhlbHBlciAqL1xuXG4uZmFuY3lib3gtbG9jayB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xuICAgIHdpZHRoOiBhdXRvO1xufVxuXG4uZmFuY3lib3gtbG9jayBib2R5IHtcbiAgICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XG59XG5cbi5mYW5jeWJveC1sb2NrLXRlc3Qge1xuICAgIG92ZXJmbG93LXk6IGhpZGRlbiAhaW1wb3J0YW50O1xufVxuXG4uZmFuY3lib3gtb3ZlcmxheSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICB6LWluZGV4OiA4MDEwO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDAsLjc1KTtcbn1cblxuLmZhbmN5Ym94LW92ZXJsYXktZml4ZWQge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICBib3R0b206IDA7XG4gICAgcmlnaHQ6IDA7XG59XG5cbi5mYW5jeWJveC1sb2NrIC5mYW5jeWJveC1vdmVybGF5IHtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICBvdmVyZmxvdy15OiBzY3JvbGw7XG59XG5cbi8qIFRpdGxlIGhlbHBlciAqL1xuXG4uZmFuY3lib3gtdGl0bGUge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gICAgei1pbmRleDogODA1MDtcbn1cblxuLmZhbmN5Ym94LW9wZW5lZCAuZmFuY3lib3gtdGl0bGUge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG59XG5cbi5mYW5jeWJveC10aXRsZS1mbG9hdC13cmFwIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAwO1xuICAgIHJpZ2h0OiA1MCU7XG4gICAgbWFyZ2luLWJvdHRvbTogLTM1cHg7XG4gICAgei1pbmRleDogODA1MDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5mYW5jeWJveC10aXRsZS1mbG9hdC13cmFwIC5jaGlsZCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbi1yaWdodDogLTEwMCU7XG4gICAgcGFkZGluZzogMnB4IDIwcHg7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IC8qIEZhbGxiYWNrIGZvciB3ZWIgYnJvd3NlcnMgdGhhdCBkb2Vzbid0IHN1cHBvcnQgUkdCYSAqL1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC44KTtcbiAgICAgICAtbW96LWJvcmRlci1yYWRpdXM6IDE1cHg7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxNXB4O1xuICAgIHRleHQtc2hhZG93OiAwIDFweCAycHggIzIyMjtcbiAgICBjb2xvcjogI0ZGRjtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBsaW5lLWhlaWdodDogMjRweDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4uZmFuY3lib3gtdGl0bGUtb3V0c2lkZS13cmFwIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICBjb2xvcjogI2ZmZjtcbn1cblxuLmZhbmN5Ym94LXRpdGxlLWluc2lkZS13cmFwIHtcbiAgICBwYWRkaW5nLXRvcDogMTBweDtcbn1cblxuLmZhbmN5Ym94LXRpdGxlLW92ZXItd3JhcCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgYmFja2dyb3VuZDogIzAwMDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIC44KTtcbn1cblxuLypSZXRpbmEgZ3JhcGhpY3MhKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMS41KSxcbiAgICAgICBvbmx5IHNjcmVlbiBhbmQgKG1pbi0tbW96LWRldmljZS1waXhlbC1yYXRpbzogMS41KSxcbiAgICAgICBvbmx5IHNjcmVlbiBhbmQgKG1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDEuNSl7XG5cbiAgICAjZmFuY3lib3gtbG9hZGluZywgLmZhbmN5Ym94LWNsb3NlLCAuZmFuY3lib3gtcHJldiBzcGFuLCAuZmFuY3lib3gtbmV4dCBzcGFuIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcvYXNzZXRzL2ltZy9mYW5jeWJveF9zcHJpdGVfMngucG5nJyk7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogNDRweCAxNTJweDsgLypUaGUgc2l6ZSBvZiB0aGUgbm9ybWFsIGltYWdlLCBoYWxmIHRoZSBzaXplIG9mIHRoZSBoaS1yZXMgaW1hZ2UqL1xuICAgIH1cblxuICAgICNmYW5jeWJveC1sb2FkaW5nIGRpdiB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnL2Fzc2V0cy9pbWcvZmFuY3lib3hfbG9hZGluZ18yeC5naWYnKTtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiAyNHB4IDI0cHg7IC8qVGhlIHNpemUgb2YgdGhlIG5vcm1hbCBpbWFnZSwgaGFsZiB0aGUgc2l6ZSBvZiB0aGUgaGktcmVzIGltYWdlKi9cbiAgICB9XG59IiwiLy8gQWRkb24gdG8gRm91bmRhdGlvbiBGb3Jtc1xubGFiZWwge1xuICAgIGNvbG9yOiBpbmhlcml0O1xufVxuXG5sYWJlbCA+IGlucHV0W3R5cGU9Y2hlY2tib3hdIHtcbiAgICBtYXJnaW4tcmlnaHQ6ICRmb3JtLXNwYWNpbmcgKiAuNTtcbn1cblxuLmVycm9yLW1zZyB7XG4gICAgY29sb3I6ICRhbGVydC1jb2xvcjtcbiAgICBsaW5lLWhlaWdodDogMS41ZW07XG4gICAgcGFkZGluZy1ib3R0b206IC41ZW07XG59XG5cbmlucHV0W3R5cGU9c2VhcmNoXSB7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIHRleHQtaW5kZW50OiAuNXJlbTtcbn1cblxuLy9AVE9ETyBkZWFsIHdpdGggOnBsYWNlaG9sZGVyIGNvbG9yc1xuLyogV2UgdXNlIHRoaXMgdG8gZ2V0IGJhc2ljIHN0eWxpbmcgb24gYWxsIGJhc2ljIGZvcm0gZWxlbWVudHMgKi9cbmlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxuaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdLFxuaW5wdXRbdHlwZT1cImRhdGVcIl0sXG5pbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl0sXG5pbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl0sXG5pbnB1dFt0eXBlPVwibW9udGhcIl0sXG5pbnB1dFt0eXBlPVwid2Vla1wiXSxcbmlucHV0W3R5cGU9XCJlbWFpbFwiXSxcbmlucHV0W3R5cGU9XCJudW1iZXJcIl0sXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdLFxuaW5wdXRbdHlwZT1cInRlbFwiXSxcbmlucHV0W3R5cGU9XCJ0aW1lXCJdLFxuaW5wdXRbdHlwZT1cInVybFwiXSxcbnRleHRhcmVhLFxuc2VsZWN0IHtcbiAgICBAaW5jbHVkZSByYWRpdXMoJGlucHV0LWJvcmRlci1yYWRpdXMpO1xufVxuXG4vKiBGb3VuZGF0aW9uIGhhcmRjb2RlcyByYWRpdXMgdG8gMCwgdGhpcyBmaXhlcyBpdCAqL1xuaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG5cdEBpbmNsdWRlIHJhZGl1cygkYnV0dG9uLXJhZGl1cyk7XG59XG5cbi5wcmVmaXgtcmFkaXVzLnJvdy5jb2xsYXBzZSB7XG5cdGlucHV0LCB0ZXh0YXJlYSwgc2VsZWN0IHtcblx0XHRAaW5jbHVkZSByYWRpdXMoMCk7IEBpbmNsdWRlIHNpZGUtcmFkaXVzKCRvcHBvc2l0ZS1kaXJlY3Rpb24sICRpbnB1dC1ib3JkZXItcmFkaXVzKTtcblx0fVxufVxuLnBvc3RmaXgtcmFkaXVzLnJvdy5jb2xsYXBzZSB7XG5cdGlucHV0LCB0ZXh0YXJlYSwgc2VsZWN0IHtcblx0XHRAaW5jbHVkZSByYWRpdXMoMCk7IEBpbmNsdWRlIHNpZGUtcmFkaXVzKCRkZWZhdWx0LWZsb2F0LCAkaW5wdXQtYm9yZGVyLXJhZGl1cyk7XG5cdH1cbn1cblxuQC1tb3otZG9jdW1lbnQgdXJsLXByZWZpeCgpIHtcbiAgICBzZWxlY3Qge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICAgIH1cbn0iLCIua2xhcm5hX2Jva3Mge1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgbWF4LWhlaWdodDogMTAwcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmtsYXJuYS1pbmZvIHtcbiAgICAua2xhcm5hLWluZm9fX2JhZGdlIHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0OyBcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC41cmVtO1xuICAgIH1cbn1cblxuLmtsYXJuYS13aWRnZXQge1xuXHRoZWlnaHQ6IDcwcHg7XG59IiwiJGkxOG4tcG9wdXAtcG9zaXRpb246IHJpZ2h0ICFkZWZhdWx0O1xuXG4uc2V0dGluZ19fZm9ybSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDEwMDtcblxuICAgIGkuZmEge1xuICAgICAgICB3aWR0aDogLjlyZW07XG4gICAgfVxufVxuXG4uc2V0dGluZ19fYnV0dG9uOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xufVxuXG4uc2V0dGluZ19fc2VsZWN0IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBvcGFjaXR5OiAuMztcbiAgICB3aWR0aDogMTVyZW07XG4gICAgei1pbmRleDogMjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItY29sb3I7XG4gICAgcGFkZGluZzogMXJlbTtcbiAgICBAaW5jbHVkZSB0cmFuc2xhdGUzZChpZigkaTE4bi1wb3B1cC1wb3NpdGlvbiA9PSByaWdodCwgMCwgLTkyJSksIC0xcmVtLCAwLCBzY2FsZTNkKC45LCAuOSwgLjkpKTtcbiAgICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMTUwbXMsIC13ZWJraXQtdHJhbnNmb3JtIDE1MG1zIGVhc2U7XG4gICAgLXdlYmtpdC10cmFuc2l0aW9uLWRlbGF5OiBlYXNlLCAwcztcbiAgICAtbW96LXRyYW5zaXRpb246IG9wYWNpdHkgMTUwbXMgZWFzZSwgLW1vei10cmFuc2Zvcm0gMTUwbXMgZWFzZTtcbiAgICAtby10cmFuc2l0aW9uOiBvcGFjaXR5IDE1MG1zIGVhc2UsIC1vLXRyYW5zZm9ybSAxNTBtcyBlYXNlO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMTUwbXMgZWFzZSwgdHJhbnNmb3JtIDE1MG1zIGVhc2U7XG5cbiAgICAmID4gKiB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgc2VsZWN0IHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIHdpZHRoOiA2NSU7XG4gICAgfVxuXG4gICAgaW5wdXRbdHlwZT1zdWJtaXRdIHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICB3aWR0aDogMzAlO1xuICAgICAgICBsaW5lLWhlaWdodDogcmVtLWNhbGMoMzcpO1xuICAgICAgICBoZWlnaHQ6IHJlbS1jYWxjKDM3KTtcbiAgICAgICAgcGFkZGluZzogMCAuNXJlbTtcbiAgICB9XG59XG5cbiNsYW5ndWFnZS1zaG93LFxuI2N1cnJlbmN5LXNob3cge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4jbGFuZ3VhZ2UtY2xvc2UsXG4jY3VycmVuY3ktY2xvc2Uge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbiNsYW5ndWFnZS1zaG93OnRhcmdldCxcbiNjdXJyZW5jeS1zaG93OnRhcmdldCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbiNsYW5ndWFnZS1zaG93OnRhcmdldCArICNsYW5ndWFnZS1jbG9zZSxcbiNjdXJyZW5jeS1zaG93OnRhcmdldCArICNjdXJyZW5jeS1jbG9zZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuI2xhbmd1YWdlLWNsb3NlOnRhcmdldCxcbiNjdXJyZW5jeS1jbG9zZTp0YXJnZXQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4jbGFuZ3VhZ2UtY2xvc2U6dGFyZ2V0ICsgI2xhbmd1YWdlLXNob3csXG4jY3VycmVuY3ktY2xvc2U6dGFyZ2V0ICsgI2N1cnJlbmN5LXNob3cge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbiNsYW5ndWFnZS1jbG9zZTp0YXJnZXQgfiAjbGFuZ3VhZ2UsXG4jY3VycmVuY3ktY2xvc2U6dGFyZ2V0IH4gI2N1cnJlbmN5IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBvcGFjaXR5OiAxO1xuICAgIEBpbmNsdWRlIHRyYW5zbGF0ZTNkKGlmKCRpMThuLXBvcHVwLXBvc2l0aW9uID09IHJpZ2h0LCAwLCAtOTAlKSwgMCwgMCwgc2NhbGUzZCgxLCAxLCAxKSk7XG59XG5cbi5qcy1uYXYgI2xhbmd1YWdlLFxuLmpzLW5hdiAjY3VycmVuY3kge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59IiwiLy8gUGFnZS1zcGVjaWZpYyBzdHlsZXMgXG5AaW1wb3J0IFwicGFnZXMvY2FydFwiO1xuQGltcG9ydCBcInBhZ2VzL2Zyb250cGFnZVwiO1xuQGltcG9ydCBcInBhZ2VzL3JlY2VpcHRcIjtcbkBpbXBvcnQgXCJwYWdlcy9yZWdpc3Rlci1hY2NvdW50XCI7XG5AaW1wb3J0IFwicGFnZXMvd2lzaGxpc3RcIjtcbiIsIiNrbmFwcGUtbWVudV9ram9wIHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIG1hcmdpbjogMDtcblxuICAgIGxpIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XG4gICAgfVxufSIsIi5mcm9udHBhZ2VfX2N1c3RvbS1jb250ZW50IHtcbiAgICBtYXJnaW4tYm90dG9tOiAkY29sdW1uLWd1dHRlcjtcbn0iLCIucmVjZWlwdF9faGVhZGVyIHtcbiAgICBmbG9hdDogbGVmdDtcbn1cblxuLmJ1dHRvbi5yZWNlaXB0X19wcmludCB7XG4gICAgQGV4dGVuZCAlY29udGVudF9fcHJpbWFyeS1jb2xvci1iZztcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBtYXJnaW4tdG9wOiAuMTVyZW07XG59XG5cbi5yZWNlaXB0X190aGFua3Mge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4ucmVjZWlwdF9fb3JkZXItb3ZlcnZpZXcsXG4ucmVjZWlwdF9fY3VzdG9tZXItaW5mbyB7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbkBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAucmVjZWlwdF9fcHJpbnQge1xuICAgICAgICBtYXJnaW4tdG9wOiAuNXJlbTtcbiAgICB9XG5cbiAgICAucmVjZWlwdF9fb3JkZXItb3ZlcnZpZXcsXG4gICAgLnJlY2VpcHRfX2N1c3RvbWVyLWluZm8ge1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgbWluLXdpZHRoOiA2MCU7XG4gICAgfVxufVxuXG5AbWVkaWEgI3skbGFyZ2UtdXB9IHtcbiAgICAucmVjZWlwdF9fb3JkZXItb3ZlcnZpZXcsXG4gICAgLnJlY2VpcHRfX2N1c3RvbWVyLWluZm8ge1xuICAgICAgICBtaW4td2lkdGg6IDUwJTtcbiAgICB9XG59IiwiXG5odG1sLnBsYWNlaG9sZGVyIC5oYXMtcGxhY2Vob2xkZXIge1xuICAgIGxhYmVsIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbi5sb2dpbi1jb2x1bW4sIC5yZWdpc3Rlci1jb2x1bW4ge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBcbiAgICA+IGZvcm0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIG1heC13aWR0aDogMzYwcHg7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbn1cblxuLmljb24tbG9nLW91dCBhIHtcbiAgICAmOmFmdGVyIHtcbiAgICAgICAgQGluY2x1ZGUgaWNvbigkaWNvbi12YXItZXhpdC10by1hcHApO1xuICAgIH1cbn1cblxuLmFjY291bnQtdGFicyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbSAhaW1wb3J0YW50O1xuXG4gICAgLnRhYi10aXRsZSBhIHtcbiAgICAgICAgcGFkZGluZzogMCAuNnJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IHJlbS1jYWxjKDQwKTtcblxuICAgICAgICAudG91Y2ggJiB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHRvdWNoLWZyaWVuZGx5LXNpemU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5lZGl0LWFjY291bnQtcGFnZSxcbi5naWZ0LWNlcnRpZmljYXRlLXBhZ2Uge1xuICAgIGZpZWxkc2V0IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICAgICAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cblxuICAgIGZvcm0ge1xuICAgICAgICAucm93IC5yb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgZ3JpZC1yb3coJGJlaGF2aW9yOiBuZXN0KTsgXG5cbiAgICAgICAgICAgIC5jb2x1bW4sIFxuICAgICAgICAgICAgLmNvbHVtbnMge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKCk7IFxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmNvbnRyb2wtZ3JvdXAgLmNvbnRyb2wtZ3JvdXAge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5lZGl0LWFjY291bnRfX2J1dHRvbnMge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgbWFyZ2luOiAwO1xuXG4gICAgLmljb24ge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW4tdG9wOiAycHg7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IC41cmVtO1xuICAgIH1cbn1cblxuLmthc3NlX29uZV9sb2dnaW5uX2Vycm9yIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBjb2xvcjogJGFsZXJ0LWNvbG9yO1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW0gKiAkcGFyYWdyYXBoLWxpbmUtaGVpZ2h0O1xufVxuXG5AbWVkaWEgI3skc21hbGwtcGx1cy1kb3dufSB7XG4gICAgLmxvZ2luLWNvbHVtbiB7XG4gICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICRib3JkZXItY29sb3I7XG4gICAgfVxuXG4gICAgLmljb24tbG9nLW91dCBhIHtcbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnRhYnMgLmljb24tbG9nLW91dCA+IGEge1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIH1cbn1cblxuQG1lZGlhICN7JHNtYWxsLXBsdXMtdXB9IHtcbiAgICAudGFicyB7ICAgICAgXG4gICAgICAgIC50YWItdGl0bGUgPiBhIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDFyZW07XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAuaWNvbi1sb2ctb3V0ID4gYSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcblxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAuNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGFsZXJ0LWNvbG9yO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAuZWRpdC1hY2NvdW50X19idXR0b25zIHtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG5cbiAgICAgICAgLmljb24ge1xuICAgICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuICAgIH1cbn0iLCIjd2lzaGxpc3RfdGFibGUge1xuICAgIG1pbi13aWR0aDogMTAwJTtcbn1cblxuLndpc2hsaXN0X19wcm9kdWN0LW5hbWUge1xuICAgIHA6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxufVxuXG4ud2lzaGxpc3RfX2J1dHRvbi1jZWxsIHtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgaW5wdXRbdHlwZT1zdWJtaXRdIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG59XG5cbi53aXNobGlzdF9fZGVsZXRlLFxuLndpc2hsaXN0X19kZWxldGU6aG92ZXIge1xuICAgIGNvbG9yOiAkYWxlcnQtY29sb3I7XG59XG5cbkBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAjd2lzaGxpc3RfdGFibGUge1xuICAgICAgICBtaW4td2lkdGg6IDgwJTtcbiAgICB9XG59XG5cbkBtZWRpYSAjeyRsYXJnZS11cH0ge1xuICAgICN3aXNobGlzdF90YWJsZSB7XG4gICAgICAgIG1pbi13aWR0aDogNjAlO1xuICAgIH1cbn0iLCIucGFnaW5hdGlvbi13cmFwcGVyIHtcbiAgICBwYWRkaW5nLXRvcDogJGNvbHVtbi1ndXR0ZXI7ICAgIFxufSIsIiRwcm9kdWN0LXRpdGxlLWJvcmRlci1jb2xvcjogICAgICAgJGJvcmRlci1jb2xvciAhZGVmYXVsdDtcbiRwcm9kdWN0LXByaWNlLWZvbnRzaXplOiAgICAgICAgICAgcmVtLWNhbGMoMzYpICFkZWZhdWx0O1xuJHByb2R1Y3QtcHJpY2UtZm9udHNpemUtbGc6ICAgICAgICByZW0tY2FsYygzNikgIWRlZmF1bHQ7XG4kcHJvZHVjdC1zdG9jay1zdGF0dXMtY29sb3I6ICAgICAgICRzbWFsbC1mb250LWNvbG9yICFkZWZhdWx0O1xuJHByb2R1Y3QtaW1hZ2UtY2FwdGlvbi1wYWRkaW5nOiAgICAuNXJlbSAhZGVmYXVsdDtcbiRwcm9kdWN0LWltYWdlLWNhcHRpb24tbGluZWhlaWdodDogJHBhcmFncmFwaC1saW5lLWhlaWdodCAhZGVmYXVsdDtcbiRwcm9kdWN0LWltYWdlLWNhcHRpb24taGVpZ2h0OiAgICAgJHBhcmFncmFwaC1saW5lLWhlaWdodCArIDIgKiAkcHJvZHVjdC1pbWFnZS1jYXB0aW9uLXBhZGRpbmcgIWRlZmF1bHQ7XG4kcHJvZHVjdC1zaG93LXRodW1icy1vbi1tZWRpdW0tdXA6IHRydWUgIWRlZmF1bHQ7XG5cbkBpZiAkcHJvZHVjdC1zaG93LXRodW1icy1vbi1tZWRpdW0tdXAgPT0gdHJ1ZSB7XG4gICAgJHRodW1iLWRvdHMtcmFuZ2U6ICRzbWFsbC1vbmx5O1xufSBAZWxzZSB7XG4gICAgJHRodW1iLWRvdHMtcmFuZ2U6ICRzbWFsbC11cDtcbn1cblxuLnByb2R1Y3RfX2ltYWdlcyB7XG4gICAgJi5pbnZpc2libGUge1xuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG5cbiAgICAgICAgJi5zbGlkZXItbG9hZGVkIHtcbiAgICAgICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5wcm9kdWN0X19tYWluLWltYWdlcyB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgaW1nIHtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICB9XG5cbiAgICB1bCB7XG4gICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgIC5yZWFkb24taWNvbl9fY29udGFpbmVyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAuYngtY2FwdGlvbiB7XG4gICAgICAgIEBleHRlbmQgLnN1YnRsZTtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRwYXJhZ3JhcGgtbGluZS1oZWlnaHQ7XG4gICAgICAgIHBhZGRpbmc6ICRwcm9kdWN0LWltYWdlLWNhcHRpb24tcGFkZGluZyAwO1xuICAgIH1cblxuICAgIC5ieC1wcmV2IHtcbiAgICAgICAgbGVmdDogMDtcbiAgICB9XG5cbiAgICAuYngtbmV4dCB7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgIH1cbn1cblxuLnByb2R1Y3RfX2JyZWFkY3J1bWJzIHtcbiAgICAuY3VycmVudCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLmJyZWFkY3J1bWJzIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgIH1cbn1cblxuLnByb2R1Y3RfX3RpdGxlIHtcbiAgICBAZXh0ZW5kIC5ib3JkZXJlZC0tYm90dG9tO1xuICAgIEBleHRlbmQgJWNvbnRlbnRfX2JvcmRlcmVkLS1oYXJkO1xufVxuXG4ucHJvZHVjdF9fbWV0YS1udW1iZXJzIHtcbiAgICBAZXh0ZW5kIC5zdWJ0bGU7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygxMik7XG4gICAgbWFyZ2luLWJvdHRvbTogJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tIC0gMC41cmVtO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgLmNvbW1lbnQtc3Rhci1yYXRpbmcge1xuICAgICAgICAuaWNvbi1zdGFyLFxuICAgICAgICAuaWNvbi1zdGFyLWhhbGYsXG4gICAgICAgIC5pY29uLXN0YXItb3V0bGluZSB7XG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IC0xcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuY29tbWVudC1zdGFyLXJhdGluZy1hdmcge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jb21tZW50LXN0YXItcmF0aW5nLWNvdW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgID4gKiB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAuNXJlbTtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgfVxufVxuXG4ucHJvZHVjdF9fYXJ0LW5yLWxhYmVsLFxuLnByb2R1Y3RfX2Vhbi1sYWJlbCB7XG4gICAgcGFkZGluZy1yaWdodDogLjI1cmVtO1xufVxuXG4ucHJvZHVjdF9fbWV0YS1udW1iZXJzX192YWx1ZSB7XG4gICAgcGFkZGluZy1yaWdodDogMXJlbTtcbn1cblxuLnByb2R1Y3RfX2FzaWRlLWFkZG9uIHtcbiAgICBtYXJnaW4tYm90dG9tOiAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b207XG59XG5cbi5wcm9kdWN0IHtcbiAgICAucHJpY2Uge1xuICAgICAgICBAZXh0ZW5kICVjb250ZW50X19wcmltYXJ5LWNvbG9yLWJpZztcbiAgICAgICAgZm9udC1zaXplOiAkcHJvZHVjdC1wcmljZS1mb250c2l6ZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkaGVhZGVyLWZvbnQtZmFtaWx5O1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgfVxuXG4gICAgLnByaWNlLS1vcmlnaW5hbCB7XG4gICAgICAgIEBleHRlbmQgLnN1YnRsZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGNsZWFyOiBib3RoO1xuXG4gICAgICAgIC5jdXJyZW5jeSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnZhdC1pbmZvLFxuICAgIC5wcmljZS0tb3JpZ2luYWwge1xuICAgICAgICBsaW5lLWhlaWdodDogJHBhcmFncmFwaC1saW5lLWhlaWdodDtcbiAgICB9XG5cbiAgICAuZGlzY291bnQge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC52YXQtaW5mbyB7XG4gICAgICAgIEBleHRlbmQgLnN1YnRsZTtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4gICAgfVxuXG4gICAgLmN1cnJlbmN5IHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogLjVyZW07XG4gICAgfVxuXG4gICAgLnByaWNlX19zYWxlcHJpY2UtdGV4dCB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IC41cmVtO1xuICAgIH1cblxuICAgIC5vZmZlcnMge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b207XG4gICAgfVxufVxuXG4ucHJvZHVjdF9fYnV5LWJ1dHRvbi5idXR0b24ge1xuICAgIEBleHRlbmQgJWNvbnRlbnRfX3ByaW1hcnktY29sb3ItYmc7XG5cbiAgICBpIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogLjVyZW07XG4gICAgfVxufVxuXG4ucHJvZHVjdCAucHJvZHVjdF9fd2lzaGxpc3QtYnV0dG9uLmJ1dHRvbiB7XG4gICAgQGV4dGVuZCAlY29udGVudF9fc2Vjb25kYXJ5LWNvbG9yLWJnO1xufVxuXG4ucHJvZHVjdF9fc3RvY2tzdGF0dXMge1xuICAgIEBleHRlbmQgLnN1YnRsZTtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiAgICBtYXJnaW4tYm90dG9tOiAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b207XG4gICAgbGluZS1oZWlnaHQ6ICRwcm9kdWN0LXByaWNlLWZvbnRzaXplO1xufVxuXG4ucHJvZHVjdF9fc3RvY2tzdGF0dXNfX251bWJlciB7XG4gICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRzdWNjZXNzLWNvbG9yLCAkY29udGVudC1iZyk7XG59XG4ucHJvZHVjdF9fc3RvY2tzdGF0dXMtLXNvbGQtb3V0IC5wcm9kdWN0X19zdG9ja3N0YXR1c19fbnVtYmVye1xuICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkYWxlcnQtY29sb3IsICRjb250ZW50LWJnKTtcbn1cblxuLnByb2R1Y3RfX3N0b2Nrc3RhdHVzLS1oYXMtZXh0cmFpbmZvIHtcbiAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xufVxuXG4ucHJvZHVjdF9fbWFpbi1pbWFnZXNfX2xpbmsge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvdXRsaW5lOiBub25lO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICB9XG59XG5cbi5wcm9kdWN0X19xdWFudHVtLWRpc2NvdW50cyB7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbi5wcm9kdWN0X19hdHRyaWJ1dGVzLFxuLnByb2R1Y3RfX2V4dHJhZmllbGQge1xuICAgIEBpbmNsdWRlIGdyaWQtcm93KCRiZWhhdmlvcjpuZXN0KTtcbn1cblxuLnByb2R1Y3RfX2V4dHJhZmllbGRfX3dyYXAge1xuICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKCRjb2x1bW5zOiAxMik7XG59XG5cbi5wcm9kdWN0X19hdHRyaWJ1dGUsXG4ucHJvZHVjdF9fcXVhbnRpdHkge1xuICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKCRjb2x1bW5zOiA2KTtcbn1cblxuLnByb2R1Y3RfX2V4dHJhZmllbGRfX3ByaWNlaW5mbyB7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG59XG5cbi5wcm9kdWN0X19yZWxhdGVkLXByb2R1Y3RzIHtcbiAgICBwYWRkaW5nLXRvcDogJGNvbHVtbi1ndXR0ZXI7XG4gICAgcGFkZGluZy1ib3R0b206ICRjb2x1bW4tZ3V0dGVyO1xufVxuXG5AbWVkaWEgI3skc21hbGwtb25seX0ge1xuICAgIC5wcm9kdWN0X19tYWluLWltYWdlcyAuYngtY2FwdGlvbiB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG59XG5cbkBtZWRpYSAjeyR0aHVtYi1kb3RzLXJhbmdlfSB7XG4gICAgLnByb2R1Y3RfX2ltYWdlZ2FsbGVyeSB7XG4gICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgbGkge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgLnRoIHtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgICAgICBoZWlnaHQ6ICR0b3VjaC1mcmllbmRseS1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICR0b3VjaC1mcmllbmRseS1zaXplO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICR0b3VjaC1mcmllbmRseS1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgb3V0bGluZTogbm9uZTtcblxuICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJHByaW1hcnktY29sb3IsICRjb250ZW50LWJnKTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogLjc1O1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICA+ICoge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGljb24oJGljb24tdmFyLWJyaWdodG5lc3MtMSk7IC8vIEEgY2lyY3VsYXIgaWNvblxuICAgICAgICAgICAgICAgIGNvbG9yOiAjMDAwO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IC4yNTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6ICR0b3VjaC1mcmllbmRseS1zaXplO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAkdG91Y2gtZnJpZW5kbHktc2l6ZTtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogJHRvdWNoLWZyaWVuZGx5LXNpemU7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogLjhyZW07XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihmb250LXNpemUgMjAwbXMgZWFzZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYuYWN0aXZlOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAuNzU7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5AbWVkaWEgI3skc21hbGwtcGx1cy1kb3dufSB7XG4gICAgLnByb2R1Y3RfX3RpdGxlIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDFyZW07XG4gICAgfVxufVxuXG5AbWVkaWEgI3skc21hbGwtcGx1cy1vbmx5fSB7XG4gICAgLnByb2R1Y3RfX2luZm8sXG4gICAgLnByb2R1Y3RfX2Fib3V0LFxuICAgIC5wcm9kdWN0X19pbWFnZWdhbGxlcnlfX3dyYXBwZXIsXG4gICAgLnByb2R1Y3RfX3JlbGF0ZWQtcHJvZHVjdHMge1xuICAgICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigxMCk7XG4gICAgfVxuXG4gICAgLnByb2R1Y3Qge1xuICAgICAgICAucHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkcHJvZHVjdC1wcmljZS1mb250c2l6ZS1sZztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wcm9kdWN0X19zdG9ja3N0YXR1czpub3QoLnByb2R1Y3RfX3N0b2Nrc3RhdHVzLS1oYXMtZXh0cmFpbmZvKSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkcHJvZHVjdC1wcmljZS1mb250c2l6ZS1sZztcbiAgICB9XG59XG5cbkBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAucHJvZHVjdF9faW5mbyB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKDYpO1xuICAgIH1cblxuICAgIC5wcm9kdWN0X19hYm91dCxcbiAgICAucHJvZHVjdF9faW1hZ2VnYWxsZXJ5X193cmFwcGVyIHtcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oMTIpO1xuICAgIH1cblxuICAgIC5wcm9kdWN0X19pbWFnZXMsXG4gICAgLnByb2R1Y3RfX2luZm8sXG4gICAgLnByb2R1Y3RfX21haW4taW1hZ2VzIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJGNvbHVtbi1ndXR0ZXI7XG4gICAgfVxuXG4gICAgLnByb2R1Y3RfX2JyZWFkY3J1bWJzIHtcbiAgICAgICAgLmN1cnJlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbGlzdC1pdGVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnByb2R1Y3RfX21haW4taW1hZ2VzIHtcbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgLnJlYWRvbi1pY29uX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucHJvZHVjdF9fbWFpbi1pbWFnZXNfX2xpbmsge1xuICAgICAgICAmOmhvdmVye1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGlmICRwcm9kdWN0LXNob3ctdGh1bWJzLW9uLW1lZGl1bS11cCA9PSB0cnVlIHtcbiAgICAgICAgLnByb2R1Y3RfX2ltYWdlZ2FsbGVyeSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBibG9jay1ncmlkKDQpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGkucHJvZHVjdF9faW1hZ2VnYWxsZXJ5X19pbWFnZXdyYXAge1xuICAgICAgICAgICAgaGVpZ2h0OiA1Ljc1cmVtO1xuXG4gICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC50aCB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBAaWYgJHRodW1iLWJvcmRlci13aWR0aCA+IDAge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGh1bWItYm9yZGVyLWNvbG9yO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIEBpZiAkdGh1bWItYm94LXNoYWRvdyAhPSBub25lIHtcbiAgICAgICAgICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4IHJnYmEoYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGJsYWNrLCAkY29udGVudC1iZywgOSksLjIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIG9wYWNpdHk6IC44O1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgICAgICAgICAgICAgQGlmICR0aHVtYi1ib3gtc2hhZG93LWhvdmVyICE9IG5vbmUge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gTm8gZWFzeSB3YXkgdG8gbWFuaXB1bGF0ZSB0aGUgYm94IHNoYWRvdyBjb2xvclxuICAgICAgICAgICAgICAgICAgICAgICAgLy9ib3gtc2hhZG93OiAkdGh1bWItYm94LXNoYWRvdy1ob3ZlcjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCA2cHggMXB4IHJnYmEoYWNjZXNzaWJsZS1sdW1pbmFuY2UoJHByaW1hcnktY29sb3IsICRjb250ZW50LWJnLCA5KSwgMC41KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wcm9kdWN0X190aXRsZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMzApO1xuICAgIH1cblxuICAgIC5wcm9kdWN0X19pbmdyZXNzIHtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4gICAgfVxuXG4gICAgLnByb2R1Y3RfX3N0b2Nrc3RhdHVzOm5vdCgucHJvZHVjdF9fc3RvY2tzdGF0dXMtLWhhcy1leHRyYWluZm8pIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICN7JHBhcmFncmFwaC1saW5lLWhlaWdodCAqIDFyZW19O1xuICAgIH1cblxuICAgIC5wcm9kdWN0X19idXktYnV0dG9uLmJ1dHRvbixcbiAgICAucHJvZHVjdF9fd2lzaGxpc3QtYnV0dG9uLmJ1dHRvbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTYpO1xuICAgICAgICBAaW5jbHVkZSByYWRpdXMoJGJ1dHRvbi1yYWRpdXMpO1xuICAgIH1cbn1cblxuQG1lZGlhICN7JGxhcmdlLXVwfSB7XG4gICAgLnByb2R1Y3RfX3RpdGxlIHtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYyg0NCk7XG4gICAgfVxuXG4gICAgLnByb2R1Y3RfX2luZ3Jlc3Mge1xuICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgfVxuXG4gICAgLnByb2R1Y3RfX3N0b2Nrc3RhdHVzOm5vdCgucHJvZHVjdF9fc3RvY2tzdGF0dXMtLWhhcy1leHRyYWluZm8pIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRwcm9kdWN0LXByaWNlLWZvbnRzaXplLWxnO1xuICAgIH1cblxuICAgIC5wcm9kdWN0X19hYm91dC5tZWRpdW0tdW5jZW50ZXJlZDpsYXN0LWNoaWxkIHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cblxuICAgIEBpZiAkcHJvZHVjdC1zaG93LXRodW1icy1vbi1tZWRpdW0tdXAgPT0gdHJ1ZSB7XG4gICAgICAgIC5wcm9kdWN0X19pbWFnZWdhbGxlcnkge1xuICAgICAgICAgICAgQGluY2x1ZGUgYmxvY2stZ3JpZCg1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxpLnByb2R1Y3RfX2ltYWdlZ2FsbGVyeV9faW1hZ2V3cmFwIHtcbiAgICAgICAgICAgIGhlaWdodDogNnJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wcm9kdWN0X19hdHRyaWJ1dGUsXG4gICAgLnByb2R1Y3RfX3F1YW50aXR5IHtcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJGNvbHVtbnM6IDQpO1xuICAgIH1cblxuICAgIC5wcm9kdWN0X19leHRyYWZpZWxkX193cmFwIHtcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJGNvbHVtbnM6IDgpO1xuICAgIH1cblxuICAgIC5wcm9kdWN0IHtcbiAgICAgICAgLnByb2R1Y3RfX2J1eS1idXR0b24uYnV0dG9uLFxuICAgICAgICAucHJvZHVjdF9fd2lzaGxpc3QtYnV0dG9uLmJ1dHRvbiB7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDIyKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuIiwiJHByb2R1Y3Qtc2VhcmNoLWhvcml6b250YWwtcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcbiRwcm9kdWN0LXNlYXJjaC12ZXJ0aWNhbC1wYWRkaW5nOiAuMjVyZW0gIWRlZmF1bHQ7XG4kcHJvZHVjdC1zZWFyY2gtbGluay1saW5lLWhlaWdodDogMnJlbSAhZGVmYXVsdDtcbiRwcm9kdWN0LXNlYXJjaC1yZXN1bHRzLWJnOiAjZmZmZmZmICFkZWZhdWx0O1xuJHByb2R1Y3Qtc2VhcmNoLXJlc3VsdHMtY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRwcm9kdWN0LXNlYXJjaC1yZXN1bHRzLWJnLCAkcHJvZHVjdC1zZWFyY2gtcmVzdWx0cy1iZykgIWRlZmF1bHQ7XG5cbi5wcm9kdWN0LXNlYXJjaCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDIwMDtcbn1cblxuLnByb2R1Y3Qtc2VhcmNoLXJlc3VsdHMge1xuICAgIG9wYWNpdHk6IC45NTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHByb2R1Y3Qtc2VhcmNoLXJlc3VsdHMtYmc7XG4gICAgei1pbmRleDogMjAwO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItY29sb3I7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAuMjVzIGVhc2UpO1xuXG4gICAgLnByb2R1Y3Qtc2VhcmNoX19vdXRwdXQge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6ICRwcm9kdWN0LXNlYXJjaC12ZXJ0aWNhbC1wYWRkaW5nIDA7XG4gICAgfVxuXG4gICAgJi5pcy1oaWRkZW4ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHJvdGF0ZVgoLTkwZGVnKSBzY2FsZSguOCkpO1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0tb3JpZ2luKDUwJSAwKTtcbiAgICB9XG59XG5cbi5wcm9kdWN0LXNlYXJjaF9fbm8taGl0czpub3QoLmlzLWhpZGRlbikgKyAucHJvZHVjdC1zZWFyY2hfX2NvbnRhaW5lciB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4ucHJvZHVjdC1zZWFyY2hfX2VsZW1lbnQgYSB7XG4gICAgcGFkZGluZzogJHByb2R1Y3Qtc2VhcmNoLXZlcnRpY2FsLXBhZGRpbmcgJHByb2R1Y3Qtc2VhcmNoLWhvcml6b250YWwtcGFkZGluZztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcblxuICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJHByb2R1Y3Qtc2VhcmNoLXJlc3VsdHMtYmcsICRob3Zlci1jb2xvciwgNykhaW1wb3J0YW50O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaG92ZXItY29sb3IhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIGh0bWwudG91Y2ggJiB7XG4gICAgICAgIHBhZGRpbmc6ICN7KCR0b3VjaC1mcmllbmRseS1zaXplIC0gJGJhc2UtbGluZS1oZWlnaHQgKiAxcmVtKS8yfSAkcHJvZHVjdC1zZWFyY2gtaG9yaXpvbnRhbC1wYWRkaW5nO1xuICAgIH1cbn1cblxuLnByb2R1Y3Qtc2VhcmNoX19leHRyYS1oaXRzIHtcbiAgICBtYXJnaW46IDA7XG5cbiAgICBhIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRwcm9kdWN0LXNlYXJjaC1saW5rLWxpbmUtaGVpZ2h0O1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogJHByb2R1Y3Qtc2VhcmNoLXZlcnRpY2FsLXBhZGRpbmcgJHByb2R1Y3Qtc2VhcmNoLWhvcml6b250YWwtcGFkZGluZztcblxuICAgICAgICBodG1sLnRvdWNoICYge1xuICAgICAgICAgICAgcGFkZGluZzogI3soJHRvdWNoLWZyaWVuZGx5LXNpemUgLSAkcHJvZHVjdC1zZWFyY2gtdmVydGljYWwtcGFkZGluZyAqIDIpLzJ9ICRwcm9kdWN0LXNlYXJjaC1ob3Jpem9udGFsLXBhZGRpbmc7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5wcm9kdWN0LXNlYXJjaF9fbm8taGl0cyB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6ICRwcm9kdWN0LXNlYXJjaC12ZXJ0aWNhbC1wYWRkaW5nICRwcm9kdWN0LXNlYXJjaC1ob3Jpem9udGFsLXBhZGRpbmc7XG4gICAgY29sb3I6ICRwcm9kdWN0LXNlYXJjaC1yZXN1bHRzLWNvbG9yO1xufSIsIiRyYXRpbmctc3Rhci1jb2xvcjogJGNhbGwtdG8tYWN0aW9uLWNvbG9yICFkZWZhdWx0O1xuJHJhdGluZy1zdGFyLXNpemU6IHJlbS1jYWxjKDQ0KSAhZGVmYXVsdDtcbiRyYXRpbmctc3Rhci1mb250c2l6ZTogcmVtLWNhbGMoMjIpICFkZWZhdWx0O1xuXG4ucmF0aW5nIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaGVpZ2h0OiAkcmF0aW5nLXN0YXItc2l6ZTtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgbGFiZWwuc3RhciB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBjb2xvcjogZ29sZDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBmb250LXNpemU6ICRyYXRpbmctc3Rhci1mb250c2l6ZSAhaW1wb3J0YW50O1xuICAgICAgICB3aWR0aDogJHJhdGluZy1zdGFyLXNpemU7XG4gICAgICAgIGhlaWdodDogJHJhdGluZy1zdGFyLXNpemU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkcmF0aW5nLXN0YXItc2l6ZTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHotaW5kZXg6IDQ7XG4gICAgfVxuXG4gICAgaW5wdXQuc3Rhci1jaGVja2JveCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgd2lkdGg6ICRyYXRpbmctc3Rhci1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRyYXRpbmctc3Rhci1zaXplO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICB9XG5cbiAgICAucmF0aW5nLWNoZWNrYm94LWhpZGVyIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb250ZW50LWJnO1xuICAgICAgICB6LWluZGV4OiAyO1xuXG4gICAgICAgIC5yZXNwLXRhYnMtY29udGFpbmVyICYge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYnMtY29udGFpbmVyLWJnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCA1IHtcbiAgICAgICAgbGFiZWwuc3Rhci0jeyRpICsgMX0sXG4gICAgICAgIGlucHV0LnN0YXItY2hlY2tib3gtI3skaSArIDF9IHtcbiAgICAgICAgICAgIGxlZnQ6ICN7JGkgKiAkcmF0aW5nLXN0YXItc2l6ZX07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuc3RhcnMtbGFiZWwge1xuICAgICAgICBAaW5jbHVkZSBhY2Nlc3NpYmxlLWhpZGUoKTtcbiAgICB9XG5cbiAgICBsYWJlbDpiZWZvcmUge1xuICAgICAgICBAaW5jbHVkZSBpY29uKCRpY29uLXZhci1zdGFyKTtcbiAgICAgICAgQGV4dGVuZCAuaWNvbi1tZWRpdW07XG4gICAgfVxuXG4gICAgaW5wdXQ6Y2hlY2tlZCB+IGxhYmVsIHtcbiAgICAgICAgQGV4dGVuZCAuc3VidGxlO1xuICAgIH1cblxuICAgIGxhYmVsOmhvdmVyLFxuICAgIGlucHV0OmNoZWNrZWQgfiBsYWJlbDpob3ZlciB7XG4gICAgICAgIGNvbG9yOiBnb2xkO1xuICAgIH1cblxuICAgIGxhYmVsOmhvdmVyIH4gbGFiZWwge1xuICAgICAgICBAZXh0ZW5kIC5zdWJ0bGU7XG4gICAgfVxufSIsIiRyZWFkb24taWNvbi1iZzogIzAwMCAhZGVmYXVsdDtcbiRyZWFkb24taWNvbi1jb2xvcjogI2ZmZiAhZGVmYXVsdDtcbiRyZWFkb24taWNvbi1mb250LXNpemU6IHJlbS1jYWxjKDI4KSAhZGVmYXVsdDtcbiRyZWFkb24tb3ZlcmxheS1vcGFjaXR5OiAuNSAhZGVmYXVsdDtcbiRyZWFkb24taWNvbi1vcGFjaXR5OiAuNiAhZGVmYXVsdDtcbiRyZWFkb24taWNvbi1ob3Zlci1vcGFjaXR5OiAuOSAhZGVmYXVsdDtcblxuLnJlYWRvbi1pY29uX19jb250YWluZXIge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYmFja2dyb3VuZDogcmdiYSgkY29udGVudC1iZywgJHJlYWRvbi1vdmVybGF5LW9wYWNpdHkpO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKG9wYWNpdHkgMTUwbXMgZWFzZSk7XG5cbiAgICAudG91Y2ggJiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG4ucmVhZG9uLWljb24ge1xuICAgIEBpbmNsdWRlIHRyYW5zbGF0ZTNkKDAsMCwwLHNjYWxlM2QoMC41LCAwLjUsIDAuNSkpO1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAyMDBtcywgLXdlYmtpdC10cmFuc2Zvcm0gMTUwbXMgZWFzZTtcbiAgICAtd2Via2l0LXRyYW5zaXRpb24tZGVsYXk6IGVhc2UsIDBzO1xuICAgIC1tb3otdHJhbnNpdGlvbjogb3BhY2l0eSAyMDBtcyBlYXNlLCAtbW96LXRyYW5zZm9ybSAxNTBtcyBlYXNlO1xuICAgIC1vLXRyYW5zaXRpb246IG9wYWNpdHkgMjAwbXMgZWFzZSwgLW8tdHJhbnNmb3JtIDE1MG1zIGVhc2U7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAyMDBtcyBlYXNlLCB0cmFuc2Zvcm0gMTUwbXMgZWFzZTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBsaW5lLWhlaWdodDogcmVtLWNhbGMoNDQpO1xuICAgIHdpZHRoOiByZW0tY2FsYyg0NCk7XG4gICAgaGVpZ2h0OiByZW0tY2FsYyg0NCk7XG4gICAgZm9udC1zaXplOiAkcmVhZG9uLWljb24tZm9udC1zaXplO1xuICAgIGNvbG9yOiAkcmVhZG9uLWljb24tY29sb3I7XG4gICAgb3BhY2l0eTogLjY7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHJlYWRvbi1pY29uLWJnO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBAaW5jbHVkZSBwcmVmaXhlcihib3JkZXItcmFkaXVzLCByZW0tY2FsYygyMiksIG1zIHNwZWMpO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIG9wYWNpdHk6IC45O1xuICAgIH1cbn1cblxuLnJlYWRvbi1pY29uX193cmFwcGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcblxuICAgICAgICAucmVhZG9uLWljb25fX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgLnJlYWRvbi1pY29uIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zbGF0ZTNkKDAsMCwwLHNjYWxlM2QoMSwgMSwgMSkpO1xuICAgICAgICB9XG4gICAgfVxufSIsIkBpbXBvcnQgXCJib3VyYm9uL2NzczMvcGxhY2Vob2xkZXJcIjtcblxuLyoqXG4gKiBFeHBhbmRpbmcgc2VhcmNoIGlucHV0IGZpZWxkXG4gKlxuICogQ29kZSBjb3VydGVzeSBvZiBodHRwOi8vY29kZXBlbi5pby9zZGFpdHptYW4vcGVuL3JtcWZCXG4gKi9cblxuQGlmIGxpZ2h0bmVzcygkbmF2aWdhdGlvbi1iZykgPCA1MCUge1xuICAgICRzZWFyY2gtYm94LWlucHV0LWJnOiBsaWdodGVuKCRuYXZpZ2F0aW9uLWJnLCAxMCUpICFkZWZhdWx0O1xuICAgICRzZWFyY2gtYm94LWlucHV0LWhvdmVyLWJnOiBsaWdodGVuKCRuYXZpZ2F0aW9uLWJnLCAyMCUpICFkZWZhdWx0O1xuICAgICRzZWFyY2gtYm94LWlucHV0LWFjdGl2ZS1iZzogbGlnaHRlbigkbmF2aWdhdGlvbi1iZywgMzAlKSAhZGVmYXVsdDtcbiAgICAkc2VhcmNoLWJveC1pY29uLWNvbG9yOiAjZmZmICFkZWZhdWx0O1xuICAgICRzZWFyY2gtYm94LXNoYWRvdzogbGlnaHRlbigkc2VhcmNoLWJveC1pbnB1dC1iZywgMjUlKSAhZGVmYXVsdDtcbn0gQGVsc2Uge1xuICAgICRzZWFyY2gtYm94LWlucHV0LWJnOiBkYXJrZW4oJG5hdmlnYXRpb24tYmcsIDUlKSAhZGVmYXVsdDtcbiAgICAkc2VhcmNoLWJveC1pbnB1dC1ob3Zlci1iZzogI2M4YzhjOCAhZGVmYXVsdDtcbiAgICAkc2VhcmNoLWJveC1pbnB1dC1hY3RpdmUtYmc6IGRhcmtlbigkbmF2aWdhdGlvbi1iZywgMzAlKSAhZGVmYXVsdDtcbiAgICAkc2VhcmNoLWJveC1pY29uLWNvbG9yOiAjMDAwICFkZWZhdWx0O1xuICAgICRzZWFyY2gtYm94LXNoYWRvdzogZGFya2VuKCRzZWFyY2gtYm94LWlucHV0LWJnLCAyNSUpICFkZWZhdWx0O1xufVxuXG4kc2VhcmNoLWJveC1pbnB1dC1jb2xvcjphY2Nlc3NpYmxlLWx1bWluYW5jZSgkc2VhcmNoLWJveC1pbnB1dC1iZywgJHNlYXJjaC1ib3gtaW5wdXQtYmcpICFkZWZhdWx0O1xuJHNlYXJjaC1ib3gtaW5wdXQtaG92ZXItY29sb3I6YWNjZXNzaWJsZS1sdW1pbmFuY2UoJHNlYXJjaC1ib3gtaW5wdXQtaG92ZXItYmcsICRzZWFyY2gtYm94LWlucHV0LWhvdmVyLWJnKSAhZGVmYXVsdDtcbiRzZWFyY2gtYm94LWlucHV0LWFjdGl2ZS1jb2xvcjphY2Nlc3NpYmxlLWx1bWluYW5jZSgkc2VhcmNoLWJveC1pbnB1dC1hY3RpdmUtYmcsICRzZWFyY2gtYm94LWlucHV0LWFjdGl2ZS1iZykgIWRlZmF1bHQ7XG5cbiRzZWFyY2gtYm94LXRyYW5zaXRpb246IDAuM3MgIWRlZmF1bHQ7IC8vIHRyYW5zaXRpb24gbGVuZ3RoXG4kc2VhcmNoLWJveC1zaXplOiByZW0tY2FsYyg0MCkgIWRlZmF1bHQ7XG5cbi5zZWFyY2gtYm94X19jb250YWluZXIge1xuICAgIHBhZGRpbmc6ICgkbmF2LWxpbmUtaGVpZ2h0IC0gJHNlYXJjaC1ib3gtc2l6ZSkvMiAwO1xuICAgIGhlaWdodDogJG5hdi1saW5lLWhlaWdodDtcbiAgICBtaW4td2lkdGg6ICRzZWFyY2gtYm94LXNpemU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uc2VhcmNoLWJveF9fc3VibWl0LmhpZGRlbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuaW5wdXQuc2VhcmNoLWJveF9faW5wdXQge1xuICAgIHRyYW5zaXRpb246IHdpZHRoICRzZWFyY2gtYm94LXRyYW5zaXRpb24sIGJvcmRlci1yYWRpdXMgJHNlYXJjaC1ib3gtdHJhbnNpdGlvbiwgYmFja2dyb3VuZCAkc2VhcmNoLWJveC10cmFuc2l0aW9uLCBib3gtc2hhZG93ICRzZWFyY2gtYm94LXRyYW5zaXRpb247XG4gICAgd2lkdGg6ICRzZWFyY2gtYm94LXNpemU7XG4gICAgaGVpZ2h0OiAkc2VhcmNoLWJveC1zaXplO1xuICAgIGJvcmRlci1yYWRpdXM6ICRzZWFyY2gtYm94LXNpemUvMjtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJhY2tncm91bmQ6ICRzZWFyY2gtYm94LWlucHV0LWJnO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHJpZ2h0OiAwO1xuXG4gICAgJjo6LW1zLWNsZWFyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAmIH4gbGFiZWwge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6ICRuYXYtbGluZS1oZWlnaHQ7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkc2VhcmNoLWJveC1zaXplO1xuICAgICAgICBwYWRkaW5nOiAoJG5hdi1saW5lLWhlaWdodCAtICRzZWFyY2gtYm94LXNpemUpLzIgMDtcbiAgICAgICAgd2lkdGg6ICRzZWFyY2gtYm94LXNpemU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgei1pbmRleDogMjtcblxuICAgICAgICAuaWNvbi1zZWFyY2gge1xuICAgICAgICAgICAgY29sb3I6ICRzZWFyY2gtYm94LWljb24tY29sb3I7XG5cbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgJiB+IC5zZWFyY2gtYm94X19zdWJtaXQge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6ICRuYXYtbGluZS1oZWlnaHQ7XG5cbiAgICAgICAgd2lkdGg6ICRzZWFyY2gtYm94LXNpemU7XG4gICAgICAgIG9wYWNpdHk6IDA7XG5cbiAgICAgICAgIH4gbGFiZWw6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcuJztcbiAgICAgICAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAoJG5hdi1saW5lLWhlaWdodCAtICRzZWFyY2gtYm94LXNpemUpLzI7XG4gICAgICAgICAgICBsZWZ0OiAwcHg7XG4gICAgICAgICAgICByaWdodDogMHB4O1xuICAgICAgICAgICAgYm90dG9tOiAoJG5hdi1saW5lLWhlaWdodCAtICRzZWFyY2gtYm94LXNpemUpLzI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2VhcmNoLWJveC1pbnB1dC1ob3Zlci1iZztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgICAgIG1hcmdpbjogMnB4O1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24ob3BhY2l0eSAxNTBtcyBlYXNlKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIgfiBsYWJlbCB7XG4gICAgICAgICAgICAuaWNvbi1zZWFyY2gge1xuICAgICAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNlYXJjaC1ib3gtaW5wdXQtaG92ZXItYmc7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCAkc2VhcmNoLWJveC1zaGFkb3c7XG5cbiAgICAgICAgJiB+IGxhYmVsIC5pY29uLXNlYXJjaCB7XG4gICAgICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmOmZvY3VzLCAmLmFjdGl2ZSB7XG4gICAgICAgIHRyYW5zaXRpb246IHdpZHRoICRzZWFyY2gtYm94LXRyYW5zaXRpb24gY3ViaWMtYmV6aWVyKC42MCwwLC40MCwxKSwgYm9yZGVyLXJhZGl1cyAkc2VhcmNoLWJveC10cmFuc2l0aW9uLCBiYWNrZ3JvdW5kICRzZWFyY2gtYm94LXRyYW5zaXRpb247XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxcmVtO1xuICAgICAgICBjdXJzb3I6IHRleHQ7XG4gICAgICAgIHdpZHRoOiAyMDBweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogYXV0bztcbiAgICAgICAgYmFja2dyb3VuZDogJHNlYXJjaC1ib3gtaW5wdXQtYWN0aXZlLWJnO1xuICAgICAgICBjb2xvcjogJHNlYXJjaC1ib3gtaW5wdXQtYWN0aXZlLWNvbG9yO1xuXG4gICAgICAgIEBpbmNsdWRlIHBsYWNlaG9sZGVye1xuICAgICAgICAgICAgY29sb3I6IHJnYmEoYWNjZXNzaWJsZS1sdW1pbmFuY2UoJHNlYXJjaC1ib3gtaW5wdXQtYWN0aXZlLWJnLCAkc2VhcmNoLWJveC1pbnB1dC1hY3RpdmUtYmcpLCAuNzUpO1xuICAgICAgICB9O1xuXG4gICAgICAgICYgfiBsYWJlbCAuaWNvbi1zZWFyY2gge1xuICAgICAgICAgICAgY29sb3I6ICRzZWFyY2gtYm94LWlucHV0LWFjdGl2ZS1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYgfiAuc2VhcmNoLWJveF9fc3VibWl0IHtcbiAgICAgICAgICAgIHotaW5kZXg6IDM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmOm5vdCg6Zm9jdXMpOm5vdCguYWN0aXZlKSB7XG4gICAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgQGluY2x1ZGUgcGxhY2Vob2xkZXJ7XG4gICAgICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIH07XG4gICAgfVxufVxuXG5AaW5jbHVkZSBrZXlmcmFtZXMoYWN0aXZpdHktcm90YXRlKSB7XG4gICAgMCUgICB7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybShyb3RhdGUoMGRlZykpO1xuICAgIH1cbiAgICAxMDAlIHtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHJvdGF0ZSgzNjBkZWcpKTtcbiAgICB9XG59XG5cbi5zZWFyY2gtYm94X19sYWJlbCAuaWNvbi1zZWFyY2gge1xuICAgICY6OmJlZm9yZSwgJjo6YWZ0ZXIge1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKHRyYW5zZm9ybSAxNTBtcyBlYXNlLCBvcGFjaXR5IDE1MG1zIGVhc2UpO1xuICAgIH1cbiAgICAmOjphZnRlciB7XG4gICAgICAgIC8vY29udGVudDogXCIjeyRpY29uLXZhci1sb2FkaW5nLWluZGljYXRvcn1cIjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAkaWNvbi1zZWFyY2gtb2Zmc2V0OiByZW0tY2FsYygtN3B4KTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6ICRpY29uLXNlYXJjaC1vZmZzZXQ7XG4gICAgICAgIG1hcmdpbi10b3A6ICAkaWNvbi1zZWFyY2gtb2Zmc2V0O1xuXG4gICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybShzY2FsZSgwKSk7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxufVxuLnNlYXJjaC1ib3gtLWxvYWRpbmcgLnNlYXJjaC1ib3hfX2xhYmVsIC5pY29uLXNlYXJjaCB7XG4gICAgJjo6YmVmb3JlIHtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHNjYWxlKDApKTtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG4gICAgJjo6YWZ0ZXIge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0oc2NhbGUoMSkpO1xuICAgICAgICBAaW5jbHVkZSBhbmltYXRpb24oYWN0aXZpdHktcm90YXRlIDFzIDE1MG1zIGxpbmVhciBpbmZpbml0ZSk7XG4gICAgfVxufVxuXG4jc2VhcmNoLXN1Ym1pdCB7XG4gICAgQGluY2x1ZGUgYWNjZXNzaWJsZS1oaWRlO1xufVxuXG4uc2VhcmNoLWJveF9fY29udGFpbmVyIHtcbiAgICAuaWNvbi1zZWFyY2gge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHdpZHRoOiAkc2VhcmNoLWJveC1zaXplO1xuICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG59XG5cbkBtZWRpYSAjeyRzbWFsbC1wbHVzLXVwfSB7XG4gICAgaW5wdXQuc2VhcmNoLWJveF9faW5wdXQge1xuICAgICAgICAmOmZvY3VzLCAmLmFjdGl2ZSB7XG4gICAgICAgICAgICB3aWR0aDogMzAwcHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cblxuQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgIGlucHV0LnNlYXJjaC1ib3hfX2lucHV0IHtcbiAgICAgICAgJjpmb2N1cywgJi5hY3RpdmUge1xuICAgICAgICAgICAgd2lkdGg6IDM1MHB4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG5hLnNlYXJjaC1tb2RhbC1saW5rLm5ldXRyYWwtbGluazpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59IiwiQG1peGluIHBsYWNlaG9sZGVyIHtcbiAgJHBsYWNlaG9sZGVyczogXCI6LXdlYmtpdC1pbnB1dFwiIFwiOi1tb3pcIiBcIi1tb3pcIiBcIi1tcy1pbnB1dFwiO1xuICBAZWFjaCAkcGxhY2Vob2xkZXIgaW4gJHBsYWNlaG9sZGVycyB7XG4gICAgJjojeyRwbGFjZWhvbGRlcn0tcGxhY2Vob2xkZXIge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG4iLCIuc2xpZGVyIHtcbiAgICBtYXJnaW46IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBoZWlnaHQ6IDEwMCU7XG59XG5cbi5zbGlkZXJfX3dyYXBwZXIge1xuICAgIG1hcmdpbi1ib3R0b206ICRjb2x1bW4tZ3V0dGVyO1xuICAgIG1hcmdpbi1yaWdodDogLSN7JGNvbHVtbi1ndXR0ZXIvMn07XG4gICAgbWFyZ2luLWxlZnQ6IC0jeyRjb2x1bW4tZ3V0dGVyLzJ9O1xufVxuXG4uc2xpZGUtLWFsaWduLWNlbnRlciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uc2xpZGUtLWFsaWduLWxlZnQge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi5zbGlkZS0tYWxpZ24tcmlnaHQge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuXG4uc2xpZGUge1xuICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgIC5ieC13cmFwcGVyICYge1xuICAgICAgICAgICAgZGlzcGxheTogaW5oZXJpdDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGltZyB7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxufVxuXG5AbWVkaWEgI3skeGxhcmdlLXVwfSB7XG4gICAgLnNsaWRlcl9fd3JhcHBlciB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgfSAgICBcbn0iLCIvLyBTZXQgdGV4dCBjb2xvclxuQGlmIGx1bWEoJGVuZC1iZykgPCA1MCB7XG4gICAgJHNvY2lhbC1pY29uLWJnOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkbGlnaHQtYm9keS10ZXh0LCAkZW5kLWJnKSAhZGVmYXVsdDtcbn0gQGVsc2Uge1xuICAgICRzb2NpYWwtaWNvbi1iZzogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGRhcmstYm9keS10ZXh0LCAkZW5kLWJnKSAhZGVmYXVsdDtcbn1cblxuQGlmIGx1bWEoJGNvbnRlbnQtYmcpIDwgNTAge1xuICAgICRwcm9kdWN0LXNvY2lhbC1pY29uLWJnOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkbGlnaHQtYm9keS10ZXh0LCAkY29udGVudC1iZyk7XG59IEBlbHNlIHtcbiAgICAkcHJvZHVjdC1zb2NpYWwtaWNvbi1iZzogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJGRhcmstYm9keS10ZXh0LCAkY29udGVudC1iZyk7XG59XG5cbi5zb2NpYWwtYnV0dG9ucy1saXN0IHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIG1hcmdpbjogMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5zb2NpYWwtYnV0dG9ucy1saXN0LS1wcm9kdWN0IHtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xufVxuXG4uc29jaWFsLWJ1dHRvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGxpbmUtaGVpZ2h0OiAkc29jaWFsLWljb24tc2l6ZTtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgLnNvY2lhbC1idXR0b25zLWxpc3QtLXByb2R1Y3QgJiB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgLnNvY2lhbC1idXR0b25fX2xpbmsge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAkc29jaWFsLWljb24tc2l6ZTtcbiAgICAgICAgd2lkdGg6ICRzb2NpYWwtaWNvbi1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc29jaWFsLWljb24tYmc7XG4gICAgICAgIG9wYWNpdHk6IC4zO1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAuMnMgZWFzZSk7XG4gICAgICAgIEBpbmNsdWRlIHJhZGl1cyg1MCUpO1xuICAgICAgICBjb2xvcjogJGVuZC1iZztcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygyMCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkZW5kLWJnO1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5zb2NpYWwtYnV0dG9ucy1saXN0LS1wcm9kdWN0ICYge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbnRlbnQtYmc7XG4gICAgICAgICAgICBjb2xvcjogJHByb2R1Y3Qtc29jaWFsLWljb24tYmc7XG4gICAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAkcHJvZHVjdC1zb2NpYWwtaWNvbi1iZztcbiAgICAgICAgICAgIG9wYWNpdHk6IC42O1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRjb250ZW50LWJnO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5zb2NpYWwtYnV0dG9uc19faGVhZGxpbmUtd3JhcHBlciB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLnNvY2lhbC1idXR0b24tLWJsb2dnZXIgeyAuc29jaWFsLWJ1dHRvbl9fbGluayB7ICY6aG92ZXIsJjpmb2N1cywmOmFjdGl2ZSAgICB7IGNvbG9yOiAjZmZmOyBiYWNrZ3JvdW5kLWNvbG9yOiAkc29jaWFsLWNvbG9yLWJsb2dnZXI7IGJvcmRlci1jb2xvcjogJHNvY2lhbC1jb2xvci1ibG9nZ2VyOyB9fX1cbi5zb2NpYWwtYnV0dG9uLS1lbGxvIHsgLnNvY2lhbC1idXR0b25fX2xpbmsgeyAmOmhvdmVyLCY6Zm9jdXMsJjphY3RpdmUgICAgICAgeyBjb2xvcjogIzAwMDsgYmFja2dyb3VuZC1jb2xvcjogJHNvY2lhbC1jb2xvci1lbGxvOyBib3JkZXItY29sb3I6ICRzb2NpYWwtY29sb3ItZWxsbzsgfX19XG4uc29jaWFsLWJ1dHRvbi0tZmFjZWJvb2sgeyAuc29jaWFsLWJ1dHRvbl9fbGluayB7ICY6aG92ZXIsJjpmb2N1cywmOmFjdGl2ZSAgIHsgY29sb3I6ICNmZmY7IGJhY2tncm91bmQtY29sb3I6ICRzb2NpYWwtY29sb3ItZmFjZWJvb2s7IGJvcmRlci1jb2xvcjogJHNvY2lhbC1jb2xvci1mYWNlYm9vazsgfX19XG4uc29jaWFsLWJ1dHRvbi0tZmxpY2tyIHsgLnNvY2lhbC1idXR0b25fX2xpbmsgeyAmOmhvdmVyLCY6Zm9jdXMsJjphY3RpdmUgICAgIHsgY29sb3I6ICNmZmY7IGJhY2tncm91bmQtY29sb3I6ICRzb2NpYWwtY29sb3ItZmxpY2tyOyBib3JkZXItY29sb3I6ICRzb2NpYWwtY29sb3ItZmxpY2tyOyB9fX1cbi5zb2NpYWwtYnV0dG9uLS1nb29nbGVwbHVzIHsgLnNvY2lhbC1idXR0b25fX2xpbmsgeyAmOmhvdmVyLCY6Zm9jdXMsJjphY3RpdmUgeyBjb2xvcjogI2ZmZjsgYmFja2dyb3VuZC1jb2xvcjogJHNvY2lhbC1jb2xvci1nb29nbGVwbHVzOyBib3JkZXItY29sb3I6ICRzb2NpYWwtY29sb3ItZ29vZ2xlcGx1czsgfX19XG4uc29jaWFsLWJ1dHRvbi0taW5zdGFncmFtIHsgLnNvY2lhbC1idXR0b25fX2xpbmsgeyAmOmhvdmVyLCY6Zm9jdXMsJjphY3RpdmUgIHsgY29sb3I6ICNmZmY7IGJhY2tncm91bmQtY29sb3I6ICRzb2NpYWwtY29sb3ItaW5zdGFncmFtOyBib3JkZXItY29sb3I6ICRzb2NpYWwtY29sb3ItaW5zdGFncmFtOyB9fX1cbi5zb2NpYWwtYnV0dG9uLS1saW5rZWRpbiB7IC5zb2NpYWwtYnV0dG9uX19saW5rIHsgJjpob3ZlciwmOmZvY3VzLCY6YWN0aXZlICAgeyBjb2xvcjogI2ZmZjsgYmFja2dyb3VuZC1jb2xvcjogJHNvY2lhbC1jb2xvci1saW5rZWRpbjsgYm9yZGVyLWNvbG9yOiAkc29jaWFsLWNvbG9yLWxpbmtlZGluOyB9fX1cbi5zb2NpYWwtYnV0dG9uLS1tYWlsIHsgLnNvY2lhbC1idXR0b25fX2xpbmsgeyAmOmhvdmVyLCY6Zm9jdXMsJjphY3RpdmUgICAgICAgeyBjb2xvcjogI2ZmZjsgYmFja2dyb3VuZC1jb2xvcjogJHNvY2lhbC1jb2xvci1tYWlsOyBib3JkZXItY29sb3I6ICRzb2NpYWwtY29sb3ItbWFpbDsgfX19XG4uc29jaWFsLWJ1dHRvbi0tcGludGVyZXN0IHsgLnNvY2lhbC1idXR0b25fX2xpbmsgeyAmOmhvdmVyLCY6Zm9jdXMsJjphY3RpdmUgIHsgY29sb3I6ICNmZmY7IGJhY2tncm91bmQtY29sb3I6ICRzb2NpYWwtY29sb3ItcGludGVyZXN0OyBib3JkZXItY29sb3I6ICRzb2NpYWwtY29sb3ItcGludGVyZXN0OyB9fX1cbi5zb2NpYWwtYnV0dG9uLS10d2l0dGVyIHsgLnNvY2lhbC1idXR0b25fX2xpbmsgeyAmOmhvdmVyLCY6Zm9jdXMsJjphY3RpdmUgICAgeyBjb2xvcjogI2ZmZjsgYmFja2dyb3VuZC1jb2xvcjogJHNvY2lhbC1jb2xvci10d2l0dGVyOyBib3JkZXItY29sb3I6ICRzb2NpYWwtY29sb3ItdHdpdHRlcjsgfX19XG4uc29jaWFsLWJ1dHRvbi0tdmltZW8geyAuc29jaWFsLWJ1dHRvbl9fbGluayB7ICY6aG92ZXIsJjpmb2N1cywmOmFjdGl2ZSAgICAgIHsgY29sb3I6ICNmZmY7IGJhY2tncm91bmQtY29sb3I6ICRzb2NpYWwtY29sb3ItdmltZW87IGJvcmRlci1jb2xvcjogJHNvY2lhbC1jb2xvci12aW1lbzsgfX19XG4uc29jaWFsLWJ1dHRvbi0teW91dHViZSB7IC5zb2NpYWwtYnV0dG9uX19saW5rIHsgJjpob3ZlciwmOmZvY3VzLCY6YWN0aXZlICAgIHsgY29sb3I6ICNmZmY7IGJhY2tncm91bmQtY29sb3I6ICRzb2NpYWwtY29sb3IteW91dHViZTsgYm9yZGVyLWNvbG9yOiAkc29jaWFsLWNvbG9yLXlvdXR1YmU7IH19fVxuXG5AbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgLnNvY2lhbC1idXR0b25zLWxpc3QtLXByb2R1Y3Qge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbn1cblxuQG1lZGlhICN7JHhsYXJnZS11cH0ge1xuICAgIC5zb2NpYWwtYnV0dG9ucy1saXN0LS1wcm9kdWN0IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogLTNyZW07XG4gICAgICAgIHRvcDogMXJlbTtcbiAgICAgICAgd2lkdGg6ICRzb2NpYWwtaWNvbi1zaXplO1xuXG4gICAgICAgIC5zb2NpYWwtYnV0dG9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgI3BhZ2VmcmFtZSAmIHtcbiAgICAgICAgICAgIHJpZ2h0OiAtNC41cmVtO1xuICAgICAgICB9XG4gICAgfVxufSIsIi8qIFNQSU5ORVIsIHVzZWQgaW4gY2hlY2tvdXQgd2hpbGUgY2FydCBpcyBsb2FkaW5nIGZvciBpbnN0YW5jZSAqL1xuXG4jc3Bpbm5lci1jb250YWluZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEyMHB4O1xufVxuXG5odG1sLmx0LWllMTAgI3NwaW5uZXItY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4jc3Bpbm5lciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICBtYXJnaW4tbGVmdDogLTMwcHg7XG4gICAgYm90dG9tOiAwO1xufVxuXG4jZmxvYXRpbmdDaXJjbGVzRyB7XG4gICAgcG9zaXRpb246cmVsYXRpdmU7XG4gICAgd2lkdGg6NjBweDtcbiAgICBoZWlnaHQ6NjBweDtcbiAgICBAaW5jbHVkZSB0cmFuc2Zvcm0oc2NhbGUoMC42KSk7XG59XG5cbi5mX2NpcmNsZUd7XG4gICAgcG9zaXRpb246YWJzb2x1dGU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjojRkZGRkZGO1xuICAgIGhlaWdodDoxMXB4O1xuICAgIHdpZHRoOjExcHg7XG4gICAgYm9yZGVyLXJhZGl1czo1cHg7XG4gICAgQGluY2x1ZGUgYW5pbWF0aW9uLW5hbWUoZl9mYWRlRyk7XG4gICAgQGluY2x1ZGUgYW5pbWF0aW9uLWR1cmF0aW9uKDAuOHMpO1xuICAgIEBpbmNsdWRlIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQoaW5maW5pdGUpO1xuICAgIEBpbmNsdWRlIGFuaW1hdGlvbi1kaXJlY3Rpb24obm9ybWFsKTtcbn1cblxuI2Zyb3RhdGVHXzAxe1xuICAgIGxlZnQ6MDtcbiAgICB0b3A6MjVweDtcbiAgICBAaW5jbHVkZSBhbmltYXRpb24tZGVsYXkoMC4zcyk7XG59XG5cbiNmcm90YXRlR18wMntcbiAgICBsZWZ0OjdweDtcbiAgICB0b3A6N3B4O1xuICAgIEBpbmNsdWRlIGFuaW1hdGlvbi1kZWxheSgwLjRzKTtcbn1cblxuI2Zyb3RhdGVHXzAze1xuICAgIGxlZnQ6MjVweDtcbiAgICB0b3A6MDtcbiAgICBAaW5jbHVkZSBhbmltYXRpb24tZGVsYXkoMC41cyk7XG59XG5cbiNmcm90YXRlR18wNHtcbiAgICByaWdodDo3cHg7XG4gICAgdG9wOjdweDtcbiAgICBAaW5jbHVkZSBhbmltYXRpb24tZGVsYXkoMC42cyk7XG59XG5cbiNmcm90YXRlR18wNXtcbiAgICByaWdodDowO1xuICAgIHRvcDoyNXB4O1xuICAgIEBpbmNsdWRlIGFuaW1hdGlvbi1kZWxheSgwLjdzKTtcbn1cblxuI2Zyb3RhdGVHXzA2e1xuICAgIHJpZ2h0OjdweDtcbiAgICBib3R0b206N3B4O1xuICAgIEBpbmNsdWRlIGFuaW1hdGlvbi1kZWxheSgwLjhzKTtcbn1cblxuI2Zyb3RhdGVHXzA3e1xuICAgIGxlZnQ6MjVweDtcbiAgICBib3R0b206MDtcbiAgICBAaW5jbHVkZSBhbmltYXRpb24tZGVsYXkoMC45cyk7XG59XG5cbiNmcm90YXRlR18wOHtcbiAgICBsZWZ0OjdweDtcbiAgICBib3R0b206N3B4O1xuICAgIEBpbmNsdWRlIGFuaW1hdGlvbi1kZWxheSgxcyk7XG59XG5cbkAtbW96LWtleWZyYW1lcyBmX2ZhZGVHe1xuICAgIDAle1xuICAgIGJhY2tncm91bmQtY29sb3I6IzAwMDAwMH1cblxuICAgIDEwMCV7XG4gICAgYmFja2dyb3VuZC1jb2xvcjojRkZGRkZGfVxufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgZl9mYWRlR3tcbiAgICAwJXtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiMwMDAwMDB9XG5cbiAgICAxMDAle1xuICAgIGJhY2tncm91bmQtY29sb3I6I0ZGRkZGRn1cbn1cblxuQC1tcy1rZXlmcmFtZXMgZl9mYWRlR3tcbiAgICAwJXtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiMwMDAwMDB9XG5cbiAgICAxMDAle1xuICAgIGJhY2tncm91bmQtY29sb3I6I0ZGRkZGRn1cbn1cblxuQC1vLWtleWZyYW1lcyBmX2ZhZGVHe1xuICAgIDAle1xuICAgIGJhY2tncm91bmQtY29sb3I6IzAwMDAwMH1cblxuICAgIDEwMCV7XG4gICAgYmFja2dyb3VuZC1jb2xvcjojRkZGRkZGfVxufVxuXG5Aa2V5ZnJhbWVzIGZfZmFkZUd7XG4gICAgMCV7XG4gICAgYmFja2dyb3VuZC1jb2xvcjojMDAwMDAwfVxuXG4gICAgMTAwJXtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiNGRkZGRkZ9XG59IiwiJG5hdi1zaWRlLWhlYWRlci1mb250c2l6ZTogJGg0LWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRuYXYtc2lkZS10b3AtbWFyZ2luOiAxcmVtICFkZWZhdWx0O1xuJHBhZ2UtaGVhZGVyLXNpemU6ICgkcGFnZS10aXRsZS1wYWRkaW5nICogMiArICRoMS1mb250LXNpemUgKiAkaGVhZGVyLWxpbmUtaGVpZ2h0KSAhZGVmYXVsdDtcbiRuYXYtc2lkZS1oZWFkZXItdG9wLXBhZGRpbmc6ICgkcGFnZS1oZWFkZXItc2l6ZSAtICRwYWdlLXRpdGxlLXBhZGRpbmcgLSAkbmF2LXNpZGUtdG9wLW1hcmdpbiAtICRuYXYtc2lkZS1oZWFkZXItZm9udHNpemUgKiAkaGVhZGVyLWxpbmUtaGVpZ2h0KSAhZGVmYXVsdDtcbiRwYXJhZ3JhcGgtcmVtLWxpbmUtaGVpZ2h0OiAxcmVtICogJHBhcmFncmFwaC1saW5lLWhlaWdodDtcbiRhY3RpdmUtZWxlbS1ib3JkZXItc2l6ZTogcmVtLWNhbGMoNSk7XG5cbi8vIFRoaXMgY29tcG9uZW50IGlzIG9wdGlvbmFsLCB3aGljaCBpcyB3aHkgaXQgaXMgaW4gYSBtaXhpblxuQG1peGluIHNwbGl0bWVudS1zdHlsZXMoKSB7XG5cbiAgICAubmF2LXNpZGUge1xuICAgICAgICBtYXJnaW4tdG9wOiAje21heCgwLCAtJGNvbHVtbi1ndXR0ZXIgKyAkbmF2LXNpZGUtdG9wLW1hcmdpbil9O1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZjZmNmY2O1xuICAgIH1cblxuICAgIC5uYXYtc2lkZV9faGVhZGVyIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAkbmF2LXNpZGUtaGVhZGVyLXRvcC1wYWRkaW5nIDFyZW0gJHBhZ2UtdGl0bGUtcGFkZGluZztcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRib3JkZXItY29sb3I7XG4gICAgICAgIGZvbnQtc2l6ZTogJG5hdi1zaWRlLWhlYWRlci1mb250c2l6ZTtcbiAgICB9XG4gICAgXG4gICAgLnNwbGl0bWVudSB7XG5cbiAgICAgICAgJi5sZXZlbC0wIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5sZXZlbC0wIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgICAgICAgICYuc2VsZWN0ZWQsXG4gICAgICAgICAgICAmLmN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICA+IGEge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubGV2ZWwtMSB7XG4gICAgICAgICAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAubGV2ZWwtMiBhIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAuc3BsaXRtZW51X19pdGVtIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IHJlbS1jYWxjKDIwKTtcblxuICAgICAgICB1bCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBjb2xvcjogIzU0NTQ1NDtcbiAgICAgICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICAgICAgICB9XG5cbiAgICAgICAgYSB7XG4gICAgICAgICAgICBib3JkZXItbGVmdDogJGFjdGl2ZS1lbGVtLWJvcmRlci1zaXplIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmc6IChyZW0tY2FsYygyMCkvMikgKDFyZW0gLSAkYWN0aXZlLWVsZW0tYm9yZGVyLXNpemUpO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAgICAgICAubm8tdG91Y2ggJiB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogKHJlbS1jYWxjKDE1KS8yKSAoMXJlbSAtICRhY3RpdmUtZWxlbS1ib3JkZXItc2l6ZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zm9jdXMsIFxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGhvdmVyLWNvbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5jdXJyZW50ID4gYSB7XG4gICAgICAgICAgICBib3JkZXItbGVmdDogJGFjdGl2ZS1lbGVtLWJvcmRlci1zaXplIHNvbGlkICRwcmltYXJ5LWNvbG9yO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcblxuICAgICAgICAgICAgJjpmb2N1cywgXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBib3JkZXItbGVmdDogJGFjdGl2ZS1lbGVtLWJvcmRlci1zaXplIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRob3Zlci1jb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYuc2VsZWN0ZWQgPiBhIHtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5sZXZlbC0wIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLmxldmVsLTEge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRib3JkZXItY29sb3I7XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5sZXZlbC0yIGEge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLmxldmVsLTMgYSB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICBhIHtcbiAgICAgICAgICAgIGNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxuXG59XG5cbkBpZiAkbWVudS10eXBlID09ICdzcGxpdCcge1xuICAgIEBpbmNsdWRlIHNwbGl0bWVudS1zdHlsZXM7XG59IiwidGFibGUge1xuICAgIHRkLnByaXMsXG4gICAgdGgucHJpcyB7XG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIH1cbn1cblxudHIuc3VtIHtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGJvZHktZm9udC1jb2xvcjtcbiAgICBib3JkZXItYm90dG9tOiAzcHggZG91YmxlICRib2R5LWZvbnQtY29sb3I7XG59XG5cbnRhYmxlIHRyIHtcbiAgICAmLmV2ZW4sXG4gICAgJi5hbHQsXG4gICAgJjpudGgtb2YtdHlwZShldmVuKSB7XG4gICAgICAgIGNvbG9yOiAkdGFibGUtZXZlbi1yb3ctdGV4dC1jb2xvcjtcbiAgICB9XG59IiwiJGluY2x1ZGUtcXVpY2tmaXgtdGFiLWNsYXNzZXM6IHRydWUgIWRlZmF1bHQ7XG5cbiR0YWJzLWhlaWdodDogICR0b3VjaC1mcmllbmRseS1zaXplICFkZWZhdWx0O1xuJHRhYnMtcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcbiR0YWJzLWJvcmRlcmVkOiB0cnVlICFkZWZhdWx0O1xuJHRhYnMtYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yICFkZWZhdWx0O1xuJHRhYnMtYWN0aXZlLWJvcmRlci1jb2xvcjogJHRhYnMtYWN0aXZlLWJnLWNvbG9yICFkZWZhdWx0O1xuJHRhYnMtbmF2aWdhdGlvbi1hY3RpdmUtaG92ZXItYmctY29sb3I6IGxpZ2h0ZW4oJHRhYnMtYWN0aXZlLWJnLWNvbG9yLCAxNSUpICFkZWZhdWx0O1xuXG5AbWl4aW4gdGFicy1zdHlsaW5ne1xuICAgIC50YWJzIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR0YWJzLWFjdGl2ZS1iZy1jb2xvcjtcbiAgICB9XG5cbiAgICAuanMtdGFicyB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAycmVtO1xuICAgIH1cblxuICAgIC5yZXNwLXRhYnMtbGlzdCB7XG4gICAgICAgIG1hcmdpbjogMHB4O1xuICAgICAgICBwYWRkaW5nOiAwcHg7XG4gICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICB9XG5cbiAgICAucmVzcC10YWItaXRlbSB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkaGVhZGVyLWZvbnQtZmFtaWx5O1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMnB4O1xuICAgIH1cblxuICAgIC5yZXNwLXRhYi1pdGVtLFxuICAgIC5yZXNwLWFjY29yZGlvbiB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkdGFicy1mb250LWNvbG9yLCAkdGFicy1iZy1jb2xvcik7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJzLWJnLWNvbG9yO1xuICAgICAgICBwYWRkaW5nOiAwICR0YWJzLXBhZGRpbmc7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkdGFicy1oZWlnaHQ7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIDIwMG1zIGVhc2UpO1xuXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaWNvbigkaWNvbi12YXIta2V5Ym9hcmQtYXJyb3ctZG93bik7XG4gICAgICAgICAgICBAZXh0ZW5kIC5pY29uLWxhcmdlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAuNXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24odHJhbnNmb3JtIDQwMG1zIGVhc2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJHRhYnMtZm9udC1jb2xvciwgJHRhYnMtbmF2aWdhdGlvbi1ob3Zlci1iZy1jb2xvcik7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFicy1uYXZpZ2F0aW9uLWhvdmVyLWJnLWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnJlc3AtdGFicy1jb250YWluZXIge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFicy1jb250YWluZXItYmc7XG4gICAgICAgIGNsZWFyOiBsZWZ0O1xuICAgIH1cblxuICAgIC5yZXNwLWFjY29yZGlvbiB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAucmVzcC10YWItY29udGVudCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6ICR0YWJzLXBhZGRpbmc7XG5cbiAgICAgICAgPiA6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnJlc3AtdGFiLWFjdGl2ZSxcbiAgICAucmVzcC1hY2NvcmRpb24ucmVzcC10YWItYWN0aXZlIHtcbiAgICAgICAgY29sb3I6ICR0YWJzLWFjdGl2ZS1mb250LWNvbG9yO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFicy1hY3RpdmUtYmctY29sb3I7XG5cbiAgICAgICAgLy8gUm90YXRlIGFycm93IHdoZW4gYWN0aXZhdGVkXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHJvdGF0ZXgoMTgwZGVnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkdGFicy1hY3RpdmUtZm9udC1jb2xvciwgJHRhYnMtbmF2aWdhdGlvbi1hY3RpdmUtaG92ZXItYmctY29sb3IpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYnMtbmF2aWdhdGlvbi1hY3RpdmUtaG92ZXItYmctY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucmVzcC1jb250ZW50LWFjdGl2ZSwgXG4gICAgLnJlc3AtYWNjb3JkaW9uLWFjdGl2ZSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIC5yZXNwLWVhc3ktYWNjb3JkaW9uIC5yZXNwLWFjY29yZGlvbiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIC5yZXNwLWpmaXQge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luOiAwcHg7XG4gICAgfVxuXG4gICAgLnJlc3AtdGFiLWNvbnRlbnQtYWN0aXZlIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgLypIZXJlIHlvdXIgY2FuIGNoYW5nZSB0aGUgYnJlYWtwb2ludCB0byBzZXQgdGhlIGFjY29yZGlvbiwgd2hlbiBzY3JlZW4gcmVzb2x1dGlvbiBjaGFuZ2VkKi9cblxuICAgIEBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XG5cbiAgICAgICAgLmpzLXRhYnMge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR0YWJzLWJvcmRlci1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5yZXNwLXRhYnMtbGlzdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLnJlc3AtYWNjb3JkaW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMCAkdGFicy1wYWRkaW5nO1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxNik7XG4gICAgICAgIH1cblxuICAgICAgICAucmVzcC12dGFicyAucmVzcC10YWJzLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogaW5pdGlhbDtcbiAgICAgICAgICAgIGNsZWFyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLnJlc3AtYWNjb3JkaW9uLWNsb3NlZCB7XG4gICAgICAgICAgICBkaXNwbGF5Om5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAgICAgLnJlc3AtdGFiLWNvbnRlbnQtYWN0aXZlIHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkdGFicy1hY3RpdmUtYm9yZGVyLWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQG1lZGlhICN7JGxhcmdlLXVwfSB7XG4gICAgICAgIC5qcy10YWJzIHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkdGFicy1ib3JkZXItY29sb3I7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMnJlbTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBcbiAgICBAY29udGVudDtcbn1cblxuQGlmICRpbmNsdWRlLXF1aWNrZml4LXRhYi1jbGFzc2VzIHtcbiAgQGluY2x1ZGUgdGFicy1zdHlsaW5nO1xufSIsImEudGhlbWVkLW5hdiB7XG4gICAgY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XG5cbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMsXG4gICAgJi5hY3RpdmUge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGhvdmVyLWNvbG9yO1xuICAgIH1cbn0iLCIuc3VidGxlIHtcbiAgICBvcGFjaXR5OiAuNjtcbn0iLCIkc3RpY2t5LWZvb3Rlci1tZW51OiBmYWxzZSAhZGVmYXVsdDtcbiRzZWFyY2gtbW9kYWw6IGZhbHNlICFkZWZhdWx0O1xuXG5AaWYgKCRzdGlja3ktZm9vdGVyLW1lbnUpIHtcbiAgICBAaW1wb3J0IFwicXVpY2tmaXgvY29tcG9uZW50cy9zdGlja3ktZm9vdGVyLW1lbnVcIjtcbiAgICBAaW1wb3J0IFwicXVpY2tmaXgvY29tcG9uZW50cy9zbGlkZS1pbi1tZW51XCI7XG59XG5cbkBpZiAoJHNlYXJjaC1tb2RhbCkge1xuICAgIEBpbXBvcnQgXCJxdWlja2ZpeC9jb21wb25lbnRzL3NlYXJjaC1tb2RhbFwiO1xufVxuIiwiJHN0aWNreS1mb290ZXItbWVudS1iZzogI0VGRUZFRiAhZGVmYXVsdDtcbiRzdGlja3ktZm9vdGVyLW1lbnUtYm9yZGVyLWNvbG9yOiBkYXJrZW4oJHN0aWNreS1mb290ZXItbWVudS1iZywgMTAlKSAhZGVmYXVsdDtcbiRzdGlja3ktZm9vdGVyLW1lbnUtY29sb3I6IGlmKGx1bWEoJHN0aWNreS1mb290ZXItbWVudS1iZykgPCA1MCwgI2ZmZiwgIzAwMCkgIWRlZmF1bHQ7XG4kc3RpY2t5LWZvb3Rlci1pY29uLWNvbG9yOiAkc3RpY2t5LWZvb3Rlci1tZW51LWNvbG9yICFkZWZhdWx0O1xuJHN0aWNreS1mb290ZXItaGVpZ2h0OiByZW0tY2FsYyg2MCkgIWRlZmF1bHQ7XG4kc3RpY2t5LWZvb3Rlci1pY29uLXNpemU6IG1pbihyZW0tY2FsYygyOCksIC40ICogJHN0aWNreS1mb290ZXItaGVpZ2h0KSAhZGVmYXVsdDtcbiRzdGlja3ktZm9vdGVyLWxhYmVsLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpICFkZWZhdWx0O1xuJHN0aWNreS1mb290ZXItaWNvbi10b3AtcG9zaXRpb246ICRzdGlja3ktZm9vdGVyLWhlaWdodCAtICRzdGlja3ktZm9vdGVyLWljb24tc2l6ZSAtICRzdGlja3ktZm9vdGVyLWxhYmVsLWZvbnQtc2l6ZSAtIHJlbS1jYWxjKDEzKSAhZGVmYXVsdDtcbiRzdGlja3ktZm9vdGVyLXNlcGFyYXRvci1jb2xvci1hZGp1c3RtZW50OiA4JSAhZGVmYXVsdDtcbiRzdGlja3ktZm9vdGVyLXNlcGFyYXRvci1jb2xvcjogaWYobHVtYSgkc3RpY2t5LWZvb3Rlci1tZW51LWJnKSA8IDUwLCBsaWdodGVuKCRzdGlja3ktZm9vdGVyLW1lbnUtYmcsICRzdGlja3ktZm9vdGVyLXNlcGFyYXRvci1jb2xvci1hZGp1c3RtZW50KSwgZGFya2VuKCRzdGlja3ktZm9vdGVyLW1lbnUtYmcsICRzdGlja3ktZm9vdGVyLXNlcGFyYXRvci1jb2xvci1hZGp1c3RtZW50KSkgIWRlZmF1bHQ7XG5cbmJvZHkuc3RpY2t5LWZvb3Rlci1tZW51ICNlbmQge1xuICAgIHBhZGRpbmctYm90dG9tOiAkc3RpY2t5LWZvb3Rlci1oZWlnaHQ7XG59XG5cbiNtZW51LXRvZ2dsZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbiNzdGlja3ktZm9vdGVyLW1lbnUge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICBib3R0b206IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAkc3RpY2t5LWZvb3Rlci1oZWlnaHQ7XG4gICAgYmFja2dyb3VuZDogJHN0aWNreS1mb290ZXItbWVudS1iZztcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHN0aWNreS1mb290ZXItbWVudS1ib3JkZXItY29sb3I7XG4gICAgei1pbmRleDogMjAyO1xuXG4gICAgdWwge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG5cbiAgICBsaSB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBsaW5lLWhlaWdodDogcmVtLWNhbGMoMjEpO1xuXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBoZWlnaHQ6IDcwJTtcbiAgICAgICAgICAgIHRvcDogMTUlO1xuICAgICAgICAgICAgd2lkdGg6IDFweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzdGlja3ktZm9vdGVyLXNlcGFyYXRvci1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bGFzdC1jaGlsZDphZnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJiA+IGEsXG4gICAgICAgICYgPiBsYWJlbCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICB3aWR0aDogJHN0aWNreS1mb290ZXItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc3RpY2t5LWZvb3Rlci1pY29uLXNpemU7XG4gICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc3RpY2t5LWZvb3Rlci1pY29uLXNpemU7XG5cbiAgICAgICAgICAgIGxpbmUsXG4gICAgICAgICAgICBjaXJjbGUge1xuICAgICAgICAgICAgICAgIHN0cm9rZTogJHN0aWNreS1mb290ZXItaWNvbi1jb2xvciAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBwYXRoIHtcbiAgICAgICAgICAgICAgICBmaWxsOiAkc3RpY2t5LWZvb3Rlci1pY29uLWNvbG9yICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhIHtcbiAgICAgICAgY29sb3I6ICRzdGlja3ktZm9vdGVyLW1lbnUtY29sb3I7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG5cbiAgICBsYWJlbCB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgICBmb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHk7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB9XG5cbiAgICAuc3RpY2t5LWZvb3Rlcl9faWNvbi1sYWJlbCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmb250LXNpemU6ICRzdGlja3ktZm9vdGVyLWxhYmVsLWZvbnQtc2l6ZTtcbiAgICAgICAgcGFkZGluZy10b3A6IC4zNXJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGNvbG9yOiAkc3RpY2t5LWZvb3Rlci1tZW51LWNvbG9yO1xuICAgIH1cblxuICAgIC8qIE1lbnUgc3R5bGluZyAqL1xuICAgICNuYXYtb3Blbi1idG4ge1xuICAgICAgICBsaW5lLWhlaWdodDogJHN0aWNreS1mb290ZXItaWNvbi1zaXplO1xuICAgIH1cblxuICAgIC8qIENhcnQgc3R5bGluZyAqL1xuICAgIC5jYXJ0LWFuZC1jaGVja291dCB7XG4gICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgcmlnaHQ6IDAgIWltcG9ydGFudDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIH1cbiAgICAuY2FydC1idXR0b24ge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICNzdGlja3ktZm9vdGVyLW1lbnVfX2NhcnQge1xuICAgICAgICBzdmcge1xuICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuY2FydC1idXR0b25fX3F1YW50aXR5IHtcbiAgICAgICAgdG9wOiAkc3RpY2t5LWZvb3Rlci1pY29uLXRvcC1wb3NpdGlvbiAtIHJlbS1jYWxjKDkpO1xuICAgICAgICBsZWZ0OiBjYWxjKDUwJSArIDNweCk7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTMpO1xuICAgICAgICByaWdodDogYXV0bztcbiAgICB9XG59XG4iLCIkbWVudS1iZzogI2ZmZiAhZGVmYXVsdDtcbiRtZW51LWxpbmstY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRib2R5LWZvbnQtY29sb3IsICRtZW51LWJnKTtcbiRtZW51LWxpbmstaG92ZXItY29sb3I6IGlmKFxuICAgIGx1bWEoJHByaW1hcnktY29sb3IpID4gbHVtYSgkbWVudS1iZyksXG4gICAgbGlnaHRlbigkbWVudS1saW5rLWNvbG9yLCAxMCUpLFxuICAgIGRhcmtlbigkbWVudS1saW5rLWNvbG9yLCAxMCUpXG4pO1xuJG1lbnUtaGVhZGVyLXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG4kbWVudS1oZWFkZXItZm9udC1zaXplOiByZW0tY2FsYygyMSkgIWRlZmF1bHQ7XG4kbWVudS1oZWFkZXItbGluZS1oZWlnaHQ6IDEuNSAhZGVmYXVsdDtcbiRtZW51LWhlYWRlci1oZWlnaHQ6ICRtZW51LWhlYWRlci1wYWRkaW5nICogMiArICRtZW51LWhlYWRlci1mb250LXNpemUgKiAkbWVudS1oZWFkZXItbGluZS1oZWlnaHQ7XG4kbWVudS1pdGVtLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTMpICFkZWZhdWx0O1xuJG1lbnUtaXRlbS1saW5lLWhlaWdodDogMS4yNSAhZGVmYXVsdDtcbiRtZW51LWl0ZW0taGVpZ2h0OiByZW0tY2FsYyg0NCkgIWRlZmF1bHQ7XG4kbWVudS1pdGVtLW9wZW5lci1zaXplOiAkbWVudS1pdGVtLWhlaWdodCAhZGVmYXVsdDtcbiRtZW51LWl0ZW0taW5kZW50YXRpb246IDFyZW0gIWRlZmF1bHQ7XG4kbWVudS1pdGVtLWJvcmRlci1jb2xvcjogI2VlZSAhZGVmYXVsdDtcbiRtZW51LWl0ZW0tYm9yZGVyLXN0eWxlOiAxcHggc29saWQgI3skbWVudS1pdGVtLWJvcmRlci1jb2xvcn0gIWRlZmF1bHQ7XG4kbWVudS1pdGVtLWhvdmVyLWVmZmVjdC1jb2xvcjogcmdiYSgjYmJiLCAuMSkgIWRlZmF1bHQ7XG4kbWVudS1pdGVtLXNtYWxsZXItZm9udC1zaXplOiAkbWVudS1pdGVtLWZvbnQtc2l6ZSAtIHJlbS1jYWxjKDEpICFkZWZhdWx0O1xuJG1lbnUtdHJhbnNpdGlvbi1zcGVlZDogMzAwbXMgIWRlZmF1bHQ7XG5cbmJvZHkubWVudS1vcGVuIHtcbiAgICBvdmVyZmxvdy15OiBoaWRkZW47XG59XG5cbiNtZW51LW1hc2sge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB6LWluZGV4OiAxOTk5O1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAtMTAwJTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLDAsMCwuNSk7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAkbWVudS10cmFuc2l0aW9uLXNwZWVkIGVhc2U7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIG1hcmdpbjogMDtcblxuICAgICNtZW51LXRvZ2dsZXI6Y2hlY2tlZCB+ICYge1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbn1cblxuI21lbnUge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgIHRvcDogMDtcbiAgICBwYWRkaW5nOiAwIDFyZW07XG4gICAgei1pbmRleDogMjAwMDtcbiAgICBib3gtc2hhZG93OiAwIDAgMTQwcHggMCByZ2JhKDAsMCwwLC4xNik7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYmFja2dyb3VuZDogJG1lbnUtYmc7XG4gICAgbGVmdDogLTEwMCU7XG4gICAgd2lkdGg6IDQwcmVtO1xuICAgIG1heC13aWR0aDogODUlO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdHJhbnNpdGlvbjogbGVmdCAkbWVudS10cmFuc2l0aW9uLXNwZWVkO1xuICAgIGN1cnNvcjogYXV0bztcblxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMzByZW0pIHtcbiAgICAgICAgcGFkZGluZzogMCAycmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDc1JTtcbiAgICB9XG5cbiAgICAjbWVudS10b2dnbGVyOmNoZWNrZWQgfiAmIHtcbiAgICAgICAgbGVmdDogMDtcbiAgICB9XG5cbiAgICBoZWFkZXIge1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2QzZDNkMztcbiAgICAgICAgcGFkZGluZzogJG1lbnUtaGVhZGVyLXBhZGRpbmcgMDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGJhY2tncm91bmQ6ICRtZW51LWJnO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgaDMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJG1lbnUtaGVhZGVyLWZvbnQtc2l6ZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkbWVudS1oZWFkZXItbGluZS1oZWlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICBsYWJlbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkbWVudS1oZWFkZXItbGluZS1oZWlnaHQ7XG4gICAgICAgICAgICBoZWlnaHQ6ICRtZW51LWhlYWRlci1saW5lLWhlaWdodCAqICRtZW51LWhlYWRlci1mb250LXNpemUgKyAkbWVudS1oZWFkZXItcGFkZGluZyAqIDI7XG4gICAgICAgICAgICB3aWR0aDogJG1lbnUtaXRlbS1vcGVuZXItc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB1bCB7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgdWwge1xuICAgICAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRtZW51LWl0ZW0tYm9yZGVyLXN0eWxlO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogdmlzaWJpbGl0eSAwcyBlYXNlLCBoZWlnaHQgMHMgZWFzZSwgb3BhY2l0eSAkbWVudS10cmFuc2l0aW9uLXNwZWVkIGVhc2U7XG5cbiAgICAgICAgICAgIGxpOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIDQge1xuICAgICAgICAgICAgJi5tZW51LS1sZXZlbC0jeyRpfSB7XG4gICAgICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoJGkgPiAyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6ICRtZW51LWl0ZW0tc21hbGxlci1mb250LXNpemU7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogKCRtZW51LWl0ZW0taGVpZ2h0IC0gKCRtZW51LWl0ZW0tc21hbGxlci1mb250LXNpemUgKiAkbWVudS1pdGVtLWxpbmUtaGVpZ2h0KSkvMjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAoJG1lbnUtaXRlbS1oZWlnaHQgLSAoJG1lbnUtaXRlbS1zbWFsbGVyLWZvbnQtc2l6ZSAqICRtZW51LWl0ZW0tbGluZS1oZWlnaHQpKS8yO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBAbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAkbWVudS1pdGVtLWZvbnQtc2l6ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogKCRtZW51LWl0ZW0taGVpZ2h0IC0gKCRtZW51LWl0ZW0tZm9udC1zaXplICogJG1lbnUtaXRlbS1saW5lLWhlaWdodCkpLzI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206ICgkbWVudS1pdGVtLWhlaWdodCAtICgkbWVudS1pdGVtLWZvbnQtc2l6ZSAqICRtZW51LWl0ZW0tbGluZS1oZWlnaHQpKS8yO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAoJGkgKyAxKSAqICRtZW51LWl0ZW0taW5kZW50YXRpb247XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm1lbnUtaXRlbS13cmFwIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgfVxuXG4gICAgbGkge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgIGJvcmRlci10b3A6ICRtZW51LWl0ZW0tYm9yZGVyLXN0eWxlO1xuICAgICAgICBmb250LXNpemU6ICRtZW51LWl0ZW0tZm9udC1zaXplO1xuXG4gICAgICAgIEBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJG1lbnUtaXRlbS1mb250LXNpemUgKyByZW0tY2FsYygxKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAkbWVudS1pdGVtLWJvcmRlci1zdHlsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxhYmVsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkbWVudS1pdGVtLW9wZW5lci1zaXplO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRtZW51LWl0ZW0taG92ZXItZWZmZWN0LWNvbG9yO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiA5ODtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgJG1lbnUtdHJhbnNpdGlvbi1zcGVlZCBlYXNlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpIHtcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMTUwbXMgZWFzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8qIGN1cnJlbnQgaXRlbSBoaWdobGlnaHRpbmcgKi9cbiAgICAgICAgJi5jdXJyZW50ID4gLm1lbnUtaXRlbS13cmFwIGEge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhIHtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRtZW51LWl0ZW0tbGluZS1oZWlnaHQ7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHBhZGRpbmc6ICgkbWVudS1pdGVtLWhlaWdodCAtICRtZW51LWl0ZW0tbGluZS1oZWlnaHQpLzIgJG1lbnUtaXRlbS1pbmRlbnRhdGlvbjtcbiAgICAgICAgY29sb3I6ICRtZW51LWxpbmstY29sb3I7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBjb2xvcjogJG1lbnUtbGluay1ob3Zlci1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIGhvdmVyIGVmZmVjdCAqL1xuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkbWVudS1pdGVtLWhvdmVyLWVmZmVjdC1jb2xvcjtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICByaWdodDogNTAlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6IDk4O1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlcjpiZWZvcmUge1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAuMnMgZWFzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAubWVudS0tb3BlbmVyIHtcbiAgICAgICAgJiB+IC5tZW51LWl0ZW0td3JhcCBhIHtcbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxcHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiA4MCU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJG1lbnUtaXRlbS1ib3JkZXItY29sb3I7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAxMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgJiB+IC5tZW51LWl0ZW0td3JhcCB7XG4gICAgICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRtZW51LWl0ZW0taG92ZXItZWZmZWN0LWNvbG9yO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGxhYmVsIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJG1lbnUtaXRlbS1ob3Zlci1lZmZlY3QtY29sb3I7XG5cbiAgICAgICAgICAgICAgICAgICAgaSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJiB+IHVsIHtcbiAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufSIsIiNzZWFyY2gtbW9kYWwge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAuODUpO1xuICAgIGhlaWdodDogMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICB0cmFuc2l0aW9uOiBhbGwgLjVzO1xuICAgIHdpZHRoOiAxMDB2dztcbiAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICAgIHotaW5kZXg6IC0xO1xuXG4gICAgJjp0YXJnZXQge1xuICAgICAgICBoZWlnaHQ6IDEwMHZoICFpbXBvcnRhbnQ7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIHdpZHRoOiAxMDB2dyAhaW1wb3J0YW50O1xuICAgICAgICB6LWluZGV4OiAyMDM7XG4gICAgICAgICNzZWFyY2gtbW9kYWxfX2Nsb3NlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgI3NlYXJjaC1tb2RhbF9faW5wdXQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLmZhZGUge1xuICAgICAgICBoZWlnaHQ6IDEwMHZoO1xuICAgICAgICB3aWR0aDogMTAwdnc7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgLjVzO1xuICAgIH1cbn1cblxuI3NlYXJoLW1vZGFsX19mb3JtIHtcbiAgICBmbGV4OiAxIDAgYXV0bztcbn1cblxuI3NlYXJjaC1tb2RhbF9faW5wdXQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyOiBzb2xpZCAjZmZmO1xuICAgIGJvcmRlci13aWR0aDogMCAwIDFweCAwO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgIGhlaWdodDogMnJlbTtcbiAgICBtYXgtd2lkdGg6IDUwJTtcbiAgICBvdXRsaW5lOiAwO1xuICAgIHBhZGRpbmc6IDJyZW0gMXJlbTtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgICAgICBmb250LXNpemU6IDJyZW07XG4gICAgfVxufVxuXG4jc2VhcmNoLW1vZGFsX19jbG9zZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBmb250LXNpemU6IDJyZW07XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMnJlbTtcbiAgICByaWdodDogMnJlbTtcblxuICAgIHN2ZyB7XG4gICAgICAgIHdpZHRoOiA0cmVtO1xuICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgIH1cbn1cbiIsIkBpbXBvcnQgXCJuYXYvaG9yaXpvbnRhbFwiO1xuXG4kcGFnaW5hdGlvbi1pdGVtLWhlaWdodDogICAgICAgIDJyZW0gIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1pdGVtLXNpZGUtcGFkZGluZzogIDFyZW0gIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1pdGVtLXNwYWNpbmc6ICAgICAgIDAgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1pdGVtLWJhY2tncm91bmQ6ICAgICNlZmVmZWYgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1pdGVtLWJvcmRlci1yYWRpdXM6IDAgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1pdGVtLWJvcmRlci1zaXplOiAgIDFweCAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWl0ZW0tYm9yZGVyLWNvbG9yOiAgI2NjYyAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWl0ZW0tY29sb3I6ICAgICAgICAgIzMzMyAhZGVmYXVsdDtcblxuJHBhZ2luYXRpb24tY3VycmVudC1pdGVtLWJhY2tncm91bmQ6ICAgICMwMDAgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1jdXJyZW50LWl0ZW0tYm9yZGVyLWNvbG9yOiAgIzAwMCAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWN1cnJlbnQtaXRlbS1jb2xvcjogICAgICAgICAjZWVlICFkZWZhdWx0O1xuXG4kcGFnaW5hdGlvbi1ob3Zlci1pdGVtLWJhY2tncm91bmQ6ICAgICAgI2NjYyAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWhvdmVyLWl0ZW0tY29sb3I6ICAgICAgICAgICAjMDAwICFkZWZhdWx0O1xuJHBhZ2luYXRpb24taG92ZXItaXRlbS1ib3JkZXItY29sb3I6ICAgICNhYWEgIWRlZmF1bHQ7XG5cbiRwYWdpbmF0aW9uLWluY2x1ZGUtbWVkaWFxdWVyaWVzOiAgICAgICB0cnVlICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tZnVsbC1icmVha3BvaW50OiAgICAgICAgICAgIFwib25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDcwMHB4KVwiICFkZWZhdWx0O1xuXG4kcGFnaW5hdGlvbi1pcy1sb2FkZWQ6IGZhbHNlICFkZWZhdWx0O1xuXG5AaWYgJHBhZ2luYXRpb24taXMtbG9hZGVkID09IGZhbHNlIHtcbiAgICAucGFnaW5hdGlvbi13cmFwcGVyIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgLnBhZ2luYXRpb24ge1xuICAgICAgICBAZXh0ZW5kICVuYXYtLWhvcml6b250YWw7XG4gICAgfVxuXG4gICAgLnBhZ2luYXRpb25fX2l0ZW0ge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6ICRwYWdpbmF0aW9uLWl0ZW0tc3BhY2luZztcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kO1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuICAgICAgICBcbiAgICAgICAgLnBhZ2luYXRpb24gJiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICRwYWdpbmF0aW9uLWl0ZW0tYm9yZGVyLXNpemUgPiAwIHtcbiAgICAgICAgICAgIGJvcmRlcjogJHBhZ2luYXRpb24taXRlbS1ib3JkZXItc2l6ZSBzb2xpZCAkcGFnaW5hdGlvbi1pdGVtLWJvcmRlci1jb2xvcjtcblxuICAgICAgICAgICAgQGlmICRwYWdpbmF0aW9uLWl0ZW0tc3BhY2luZyA9PSAwIHtcbiAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgJHBhZ2luYXRpb24taXRlbS1ib3JkZXItcmFkaXVzID4gMCBhbmQgJHBhZ2luYXRpb24taXRlbS1zcGFjaW5nID4gMCB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAkcGFnaW5hdGlvbi1pdGVtLWJvcmRlci1yYWRpdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgIEBpZiAkcGFnaW5hdGlvbi1pdGVtLXNwYWNpbmcgPT0gMCBhbmQgJHBhZ2luYXRpb24taXRlbS1ib3JkZXItcmFkaXVzID4gMCB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJHBhZ2luYXRpb24taXRlbS1ib3JkZXItcmFkaXVzO1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRwYWdpbmF0aW9uLWl0ZW0tYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG5cbiAgICAgICAgICAgIEBpZiAkcGFnaW5hdGlvbi1pdGVtLWJvcmRlci1zaXplID4gMCB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAkcGFnaW5hdGlvbi1pdGVtLWJvcmRlci1zaXplO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYgJHBhZ2luYXRpb24taXRlbS1zcGFjaW5nID09IDAgYW5kICRwYWdpbmF0aW9uLWl0ZW0tYm9yZGVyLXJhZGl1cyA+IDAge1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkcGFnaW5hdGlvbi1pdGVtLWJvcmRlci1yYWRpdXM7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6ICRwYWdpbmF0aW9uLWl0ZW0tYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRwYWdpbmF0aW9uLWl0ZW0taGVpZ2h0O1xuICAgICAgICAgICAgY29sb3I6ICRwYWdpbmF0aW9uLWl0ZW0tY29sb3I7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRwYWdpbmF0aW9uLWl0ZW0tc2lkZS1wYWRkaW5nO1xuICAgICAgICAgICAgXG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwYWdpbmF0aW9uLWhvdmVyLWl0ZW0tYmFja2dyb3VuZDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHBhZ2luYXRpb24taG92ZXItaXRlbS1ib3JkZXItY29sb3I7XG5cbiAgICAgICAgICAgIGEsXG4gICAgICAgICAgICBhOmhvdmVyLFxuICAgICAgICAgICAgYTpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRwYWdpbmF0aW9uLWhvdmVyLWl0ZW0tY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucGFnaW5hdGlvbiB7XG5cbiAgICAgICAgLnBhZ2luYXRpb25fX2l0ZW0tLW5leHQsXG4gICAgICAgIC5wYWdpbmF0aW9uX19pdGVtLS1wcmV2aW91cyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucGFnaW5hdGlvbl9faXRlbS0tY3VycmVudCB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkcGFnaW5hdGlvbi1pdGVtLWhlaWdodDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHBhZ2luYXRpb24tY3VycmVudC1pdGVtLWJhY2tncm91bmQ7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHBhZ2luYXRpb24tY3VycmVudC1pdGVtLWJvcmRlci1jb2xvcjtcbiAgICAgICAgY29sb3I6ICRwYWdpbmF0aW9uLWN1cnJlbnQtaXRlbS1jb2xvcjtcbiAgICAgICAgcGFkZGluZzogMCAkcGFnaW5hdGlvbi1pdGVtLXNpZGUtcGFkZGluZztcblxuICAgICAgICBAaWYgJHBhZ2luYXRpb24taXRlbS1zcGFjaW5nID4gMCBhbmQgJHBhZ2luYXRpb24taXRlbS1ib3JkZXItcmFkaXVzID4gMCB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAkcGFnaW5hdGlvbi1pdGVtLWJvcmRlci1yYWRpdXM7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgJHBhZ2luYXRpb24taXRlbS1zcGFjaW5nID09IDAge1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcGFnaW5hdGlvbi1jdXJyZW50LWl0ZW0tYmFja2dyb3VuZDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHBhZ2luYXRpb24tY3VycmVudC1pdGVtLWJvcmRlci1jb2xvcjtcbiAgICAgICAgICAgIGNvbG9yOiAkcGFnaW5hdGlvbi1jdXJyZW50LWl0ZW0tY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAkcGFnaW5hdGlvbi1pcy1sb2FkZWQ6IHRydWU7XG5cbiAgICBAaWYgJHBhZ2luYXRpb24taW5jbHVkZS1tZWRpYXF1ZXJpZXMgPT0gdHJ1ZSB7XG4gICAgICAgIEBtZWRpYSAjeyRwYWdpbmF0aW9uLWZ1bGwtYnJlYWtwb2ludH0ge1xuICAgICAgICAgICAgLnBhZ2luYXRpb24gLnBhZ2luYXRpb25fX2l0ZW0ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn0iLCJAaW1wb3J0IFwibmF2XCI7XG5cbiRuYXYtLWhvcml6b250YWwtaXMtbG9hZGVkOiBmYWxzZSAhZGVmYXVsdDtcblxuQGlmICRuYXYtLWhvcml6b250YWwtaXMtbG9hZGVkID09IGZhbHNlIHtcbiAgICAlbmF2LS1ob3Jpem9udGFsIHtcbiAgICAgICAgQGV4dGVuZCAlbmF2O1xuXG4gICAgICAgID4gbGkge1xuXG4gICAgICAgICAgICAmLFxuICAgICAgICAgICAgPiBhIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubmF2LS1ob3Jpem9udGFsIHtcbiAgICAgICAgQGV4dGVuZCAlbmF2LS1ob3Jpem9udGFsO1xuICAgIH1cblxuICAgICRuYXYtLWhvcml6b250YWwtaXMtbG9hZGVkOiB0cnVlO1xufSIsIiRuYXYtaXMtbG9hZGVkOiBmYWxzZSAhZGVmYXVsdDtcblxuQGlmICRuYXYtaXMtbG9hZGVkID09IGZhbHNlIHtcbiAgICAlbmF2IHtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgICRuYXYtaXMtbG9hZGVkOiB0cnVlO1xufSIsIkBpbXBvcnQgXCJib3VyYm9uL2NzczMvZmlsdGVyXCI7XG5AaW1wb3J0IFwiYm91cmJvbi9jc3MzL3RyYW5zaXRpb25cIjtcblxuQGltcG9ydCBcImhvdmVyZngvYmFzZVwiO1xuQGltcG9ydCBcImhvdmVyZngvYmx1clwiO1xuQGltcG9ydCBcImhvdmVyZngvY292ZXJcIjtcbkBpbXBvcnQgXCJob3ZlcmZ4L2ZpZ2NhcHRpb25cIjtcbkBpbXBvcnQgXCJob3ZlcmZ4L2xldml0YXRlXCI7XG5AaW1wb3J0IFwiaG92ZXJmeC9zaG93dGl0bGVcIjtcbkBpbXBvcnQgXCJob3ZlcmZ4L3RpbHRcIjtcblxuYVtjbGFzc149XCJoZngtLVwiXSxcbmFbY2xhc3MqPVwiIGhmeC0tXCJdIHtcblx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xufSIsIkBtaXhpbiBmaWx0ZXIoJGZ1bmN0aW9uOiBub25lKSB7XG4gIC8vIDxmaWx0ZXItZnVuY3Rpb24+IFs8ZmlsdGVyLWZ1bmN0aW9uXSogfCBub25lXG4gIEBpbmNsdWRlIHByZWZpeGVyKGZpbHRlciwgJGZ1bmN0aW9uLCB3ZWJraXQgc3BlYyk7XG59XG5cbiIsIiVoZngtYmFzZSB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0ZGlzcGxheTogYmxvY2s7XG5cdHdpZHRoOiAxMDAlO1xuXHRoZWlnaHQ6IDEwMCU7XG59IiwiJGhmeC1ibHVyLXZhbHVlOiAycHggIWRlZmF1bHQ7XG5cbi5oZngtLWJsdXIge1xuXHQmOmhvdmVyIGltZyB7XG5cdFx0QGluY2x1ZGUgZmlsdGVyKGJsdXIoJGhmeC1ibHVyLXZhbHVlKSk7XG5cdH1cbn0iLCJAaWYgdmFyaWFibGUtZXhpc3RzKFwiaWNvbi12YXItc2VhcmNoXCIpID09IGZhbHNlIHtcblx0QGVycm9yIFwiTWlzc2luZyBpY29uIHZhcmlhYmxlXCI7IFxufVxuXG5AaWYgbWl4aW4tZXhpc3RzKFwiaWNvblwiKSA9PSBmYWxzZSB7XG5cdEBlcnJvciBcIk1pc3NpbmcgaWNvbiBtaXhpblwiOyBcdFxufVxuXG4kaGZ4LWljb24tc2l6ZTogcmVtLWNhbGMoMzApICFkZWZhdWx0O1xuXG4uaGZ4LS1jb3Zlci0tbGlnaHQsXG4uaGZ4LS1jb3Zlci0tZGFyayB7XG5cdEBleHRlbmQgJWhmeC1iYXNlO1xuXG5cdCY6OmJlZm9yZSxcblx0Jjo6YWZ0ZXIge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcdFx0XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdG9wYWNpdHk6IDA7XG5cdFx0ei1pbmRleDogMTtcblx0XHRAaW5jbHVkZSB0cmFuc2l0aW9uKG9wYWNpdHkgMC4zcyBlYXNlKTtcblx0fVxuXG5cdCY6OmJlZm9yZSB7XG5cdFx0Y29udGVudDogXCJcIjtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCNmZmYsIC42NSk7XG5cdH1cblxuXHQmOjphZnRlciB7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdFx0QGluY2x1ZGUgaWNvbigkaWNvbi12YXItc2VhcmNoKTtcblx0XHRmb250LXNpemU6ICRoZngtaWNvbi1zaXplO1xuXHRcdGxpbmUtaGVpZ2h0OiAxO1xuXHRcdGNvbG9yOiByZ2JhKCMwMDAsIDAuNjUpO1xuXHRcdHRvcDogNTAlO1xuXHRcdGxlZnQ6IDA7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdG1hcmdpbi10b3A6ICRoZngtaWNvbi1zaXplLy0yO1xuXHRcdGhlaWdodDogMWVtO1xuXHRcdHotaW5kZXg6IDI7XG5cdH1cblxuXHQmOmhvdmVyIHtcblx0XHQmOjpiZWZvcmUsXG5cdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0b3BhY2l0eTogMTtcblx0XHR9XG5cdH1cbn1cblxuLmhmeC0tY292ZXItLWRhcmsge1xuXHQmOjpiZWZvcmUge1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHJnYmEoIzAwMCwgLjY1KTtcblx0fVxuXG5cdCY6OmFmdGVyIHtcblx0XHRjb2xvcjogcmdiYSgjZmZmLCAwLjc1KTtcblx0fVxufSIsIiRoZngtZmlnY2FwdGlvbi1mb250LXNpemU6IHJlbS1jYWxjKDI1KSAhZGVmYXVsdDtcbiRoZngtZmlnY2FwdGlvbi10ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlICFkZWZhdWx0O1xuJGhmeC1maWdjYXB0aW9uLWZvbnQtd2VpZ2h0OiBib2xkICFkZWZhdWx0O1xuJGhmeC1maWdjYXB0aW9uLXRyYWlsZXItc3ltYm9sOiBmYWxzZSAhZGVmYXVsdDtcbiRoZngtZmlnY2FwdGlvbi1saWdodC1jb2xvcjogcmdiYSgjZmZmLCAuOSkgIWRlZmF1bHQ7XG4kaGZ4LWZpZ2NhcHRpb24tZGFyay1jb2xvcjogcmdiYSgjMDAwLCAuOSkgIWRlZmF1bHQ7XG5cbi5oZngtLWZpZ2NhcHRpb24ge1xuICAgIG1hcmdpbjogMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZm9udC1zaXplOiAkaGZ4LWZpZ2NhcHRpb24tZm9udC1zaXplO1xuICAgIHRleHQtdHJhbnNmb3JtOiAkaGZ4LWZpZ2NhcHRpb24tdGV4dC10cmFuc2Zvcm07XG4gICAgZm9udC13ZWlnaHQ6ICRoZngtZmlnY2FwdGlvbi1mb250LXdlaWdodDtcbiAgICBsaW5lLWhlaWdodDogMTtcblxuICAgIGZpZ2NhcHRpb24ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHBhZGRpbmc6IC41ZW07XG4gICAgICAgIHotaW5kZXg6MjtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbiAob3BhY2l0eSAuM3MgZWFzZS1pbi1vdXQsIGNvbG9yIC4zcyBlYXNlLWluLW91dCk7XG5cbiAgICAgICAgQGlmICRoZngtZmlnY2FwdGlvbi10cmFpbGVyLXN5bWJvbCAhPSBmYWxzZSB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiI3skaGZ4LWZpZ2NhcHRpb24tdHJhaWxlci1zeW1ib2x9XCI7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAuMjVlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5oZngtLWZpZ2NhcHRpb24tLWJvdHRvbS1sZWZ0IHtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgIH1cblxuICAgIC5oZngtLWZpZ2NhcHRpb24tLWJvdHRvbS1yaWdodCB7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgfVxuXG4gICAgLmhmeC0tZmlnY2FwdGlvbi0tdG9wLWxlZnQge1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgfVxuXG4gICAgLmhmeC0tZmlnY2FwdGlvbi0tdG9wLXJpZ2h0IHtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICB9XG5cbiAgICAuYmFja2dyb3VuZC0tbGlnaHQge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICBjb2xvcjogJGhmeC1maWdjYXB0aW9uLWRhcmstY29sb3I7XG5cbiAgICAgICAgLmhmeC0tY292ZXItLWRhcms6aG92ZXIgJixcbiAgICAgICAgLmhmeC0tY292ZXItLWRhcms6Zm9jdXMgJiB7XG4gICAgICAgICAgICBjb2xvcjogJGhmeC1maWdjYXB0aW9uLWxpZ2h0LWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmJhY2tncm91bmQtLWRhcmsge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICBjb2xvcjogJGhmeC1maWdjYXB0aW9uLWxpZ2h0LWNvbG9yO1xuXG4gICAgICAgIC5oZngtLWNvdmVyLS1saWdodDpob3ZlciAmLFxuICAgICAgICAuaGZ4LS1jb3Zlci0tbGlnaHQ6Zm9jdXMgJiB7XG4gICAgICAgICAgICBjb2xvcjogJGhmeC1maWdjYXB0aW9uLWRhcmstY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG59IiwiLmhmeC0tbGV2aXRhdGUge1xuXHRpbWcge1xuXHRcdEBpbmNsdWRlIHRyYW5zaXRpb24odHJhbnNmb3JtIC4zcyBlYXNlLCBib3gtc2hhZG93IC4zcyBlYXNlKTtcblx0fVxuXG5cdCY6aG92ZXIge1xuXHRcdGltZyB7XG5cdFx0XHRAaW5jbHVkZSB0cmFuc2Zvcm0oc2NhbGUoMS4xKSB0cmFuc2xhdGV6KDApKTtcblx0XHRcdGJveC1zaGFkb3c6IDAgM3B4IDEwcHggcmdiYSgjMDAwLCAuMjUpO1xuXHRcdH1cblx0fVxufSIsIkBpZiB2YXJpYWJsZS1leGlzdHMoXCJjb250ZW50LWJnXCIpID09IGZhbHNlIHtcblx0QGVycm9yIFwiTWlzc2luZyBjb250ZW50LWJnIHZhcmlhYmxlXCI7IFxufVxuXG5cbi5oZngtLXNob3ctdGl0bGUge1xuXHRAZXh0ZW5kICVoZngtYmFzZTtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblxuXHRpbWcge1xuXHRcdG9wYWNpdHk6IDE7XG5cdFx0QGluY2x1ZGUgdHJhbnNpdGlvbihvcGFjaXR5IDAuMjVzIGVhc2UpO1xuXHR9XG5cblx0JjphZnRlciB7XG5cdFx0Y29udGVudDogYXR0cih0aXRsZSk7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgjMzMzLCAkY29udGVudC1iZywgNik7XG5cdFx0Ym90dG9tOiAtMTAwJTtcblx0XHRiYWNrZ3JvdW5kOiByZ2JhKCRjb250ZW50LWJnLCAwLjc1KTtcblx0XHRsZWZ0OiAwO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdHBhZGRpbmc6IDFyZW07XG5cdFx0QGluY2x1ZGUgdHJhbnNpdGlvbihib3R0b20gMC4yNXMgZWFzZSk7XG5cdH1cblxuXHQmOmhvdmVyIHtcblx0XHRpbWcge1xuXHRcdFx0b3BhY2l0eTogMC4zO1xuXHRcdH1cblxuXHRcdCY6YWZ0ZXIge1xuXHRcdFx0Ym90dG9tOiAwO1xuXHRcdH1cblx0fVxufSIsIiRoZngtdGlsdC1hbmdsZTogNWRlZyAhZGVmYXVsdDtcblxuLmhmeC0tdGlsdC0tcmlnaHQsXG4uaGZ4LS10aWx0LS1sZWZ0IHtcblx0QGV4dGVuZCAlaGZ4LWJhc2U7XG5cdG92ZXJmbG93OiB2aXNpYmxlO1xuXG5cdGltZyB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdEBpbmNsdWRlIHRyYW5zaXRpb24odHJhbnNmb3JtIDAuMnMgZWFzZSk7XG5cdH1cbn1cblxuLmhmeC0tdGlsdC0tcmlnaHQge1xuXHQmOmhvdmVyIHtcblx0XHRpbWcge1xuXHRcdFx0QGluY2x1ZGUgdHJhbnNmb3JtKHJvdGF0ZSgkaGZ4LXRpbHQtYW5nbGUpIHRyYW5zbGF0ZXooMCkpO1xuXHRcdH1cblx0fVxufVxuXG4uaGZ4LS10aWx0LS1sZWZ0IHtcblx0Jjpob3ZlciB7XG5cdFx0aW1nIHtcblx0XHRcdEBpbmNsdWRlIHRyYW5zZm9ybShyb3RhdGUoLSRoZngtdGlsdC1hbmdsZSkgdHJhbnNsYXRleigwKSk7XG5cdFx0fVxuXHR9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AaW1wb3J0IFwiZ2xvYmFsXCI7XG5cbi8vXG4vLyBAbmFtZSBfc3ViLW5hdi5zY3NzXG4vLyBAZGVwZW5kZW5jaWVzIF9nbG9iYWwuc2Nzc1xuLy9cblxuLy9cbi8vIEB2YXJpYWJsZXNcbi8vXG5cbiRpbmNsdWRlLWh0bWwtbmF2LWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcyAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgbWFyZ2luIGFuZCBwYWRkaW5nXG4kc3ViLW5hdi1saXN0LW1hcmdpbjogcmVtLWNhbGMoLTQgMCAxOCkgIWRlZmF1bHQ7XG4kc3ViLW5hdi1saXN0LXBhZGRpbmctdG9wOiByZW0tY2FsYyg0KSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoaXMgdG8gY29udHJvbCB0aGUgZGVmaW5pdGlvblxuJHN1Yi1uYXYtZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5ICFkZWZhdWx0O1xuJHN1Yi1uYXYtZm9udC1zaXplOiByZW0tY2FsYygxNCkgIWRlZmF1bHQ7XG4kc3ViLW5hdi1mb250LWNvbG9yOiAkYWx1bWludW0gIWRlZmF1bHQ7XG4kc3ViLW5hdi1mb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcbiRzdWItbmF2LXRleHQtZGVjb3JhdGlvbjogbm9uZSAhZGVmYXVsdDtcbiRzdWItbmF2LXBhZGRpbmc6IHJlbS1jYWxjKDMgMTYpICFkZWZhdWx0O1xuJHN1Yi1uYXYtYm9yZGVyLXJhZGl1czogM3B4ICFkZWZhdWx0O1xuJHN1Yi1uYXYtZm9udC1jb2xvci1ob3Zlcjogc2NhbGUtY29sb3IoJHN1Yi1uYXYtZm9udC1jb2xvciwgJGxpZ2h0bmVzczogLTI1JSkgIWRlZmF1bHQ7XG5cblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgdGhlIGFjdGl2ZSBpdGVtIHN0eWxlc1xuXG4kc3ViLW5hdi1hY3RpdmUtZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG4kc3ViLW5hdi1hY3RpdmUtYmc6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuJHN1Yi1uYXYtYWN0aXZlLWJnLWhvdmVyOiBzY2FsZS1jb2xvcigkc3ViLW5hdi1hY3RpdmUtYmcsICRsaWdodG5lc3M6IC0xNCUpICFkZWZhdWx0O1xuJHN1Yi1uYXYtYWN0aXZlLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG4kc3ViLW5hdi1hY3RpdmUtcGFkZGluZzogJHN1Yi1uYXYtcGFkZGluZyAhZGVmYXVsdDtcbiRzdWItbmF2LWFjdGl2ZS1jdXJzb3I6IGRlZmF1bHQgIWRlZmF1bHQ7XG5cbiRzdWItbmF2LWl0ZW0tZGl2aWRlcjogXCJcIiAhZGVmYXVsdDtcbiRzdWItbmF2LWl0ZW0tZGl2aWRlci1tYXJnaW46IHJlbS1jYWxjKDEyKSAhZGVmYXVsdDtcblxuLy9cbi8vIEBtaXhpbnNcbi8vXG5cblxuLy8gQ3JlYXRlIGEgc3ViLW5hdiBpdGVtXG4vL1xuLy8gJGZvbnQtY29sb3IgLSBGb250IGNvbG9yLiBEZWZhdWx0OiAkc3ViLW5hdi1mb250LWNvbG9yLlxuLy8gJGZvbnQtc2l6ZSAtIEZvbnQgc2l6ZS4gRGVmYXVsdDogJHN1Yi1uYXYtZm9udC1zaXplLlxuLy8gJGFjdGl2ZS1iZyAtIEJhY2tncm91bmQgb2YgYWN0aXZlIG5hdiBpdGVtLiBEZWZhdWx0OiAkc3ViLW5hdi1hY3RpdmUtYmcuXG4vLyAkYWN0aXZlLWJnLWhvdmVyIC0gQmFja2dyb3VuZCBvZiBhY3RpdmUgbmF2IGl0ZW0sIHdoZW4gaG92ZXJlZC4gRGVmYXVsdDogJHN1Yi1uYXYtYWN0aXZlLWJnLWhvdmVyLlxuQG1peGluIHN1Yi1uYXYoXG4gICRmb250LWNvbG9yOiAkc3ViLW5hdi1mb250LWNvbG9yLFxuICAkZm9udC1zaXplOiAkc3ViLW5hdi1mb250LXNpemUsXG4gICRhY3RpdmUtYmc6ICRzdWItbmF2LWFjdGl2ZS1iZyxcbiAgJGFjdGl2ZS1iZy1ob3ZlcjogJHN1Yi1uYXYtYWN0aXZlLWJnLWhvdmVyKSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogYXV0bztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgbWFyZ2luLWJvdHRvbTogJHN1Yi1uYXYtbGlzdC1tYXJnaW47XG4gIHBhZGRpbmctdG9wOiAkc3ViLW5hdi1saXN0LXBhZGRpbmctdG9wO1xuXG4gIGR0IHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB9XG5cbiAgZHQsXG4gIGRkLFxuICBsaSB7XG4gICAgZmxvYXQ6ICRkZWZhdWx0LWZsb2F0O1xuICAgIG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogcmVtLWNhbGMoMTYpO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgZm9udC1mYW1pbHk6ICRzdWItbmF2LWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtd2VpZ2h0OiAkc3ViLW5hdi1mb250LXdlaWdodDtcbiAgICBmb250LXNpemU6ICRmb250LXNpemU7XG4gICAgY29sb3I6ICRmb250LWNvbG9yO1xuXG4gICAgYSB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246ICRzdWItbmF2LXRleHQtZGVjb3JhdGlvbjtcbiAgICAgIGNvbG9yOiAkc3ViLW5hdi1mb250LWNvbG9yO1xuICAgICAgcGFkZGluZzogJHN1Yi1uYXYtcGFkZGluZztcbiAgICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogJHN1Yi1uYXYtZm9udC1jb2xvci1ob3ZlcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLmFjdGl2ZSBhIHtcbiAgICAgIEBpbmNsdWRlIHJhZGl1cygkc3ViLW5hdi1ib3JkZXItcmFkaXVzKTtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkc3ViLW5hdi1hY3RpdmUtZm9udC13ZWlnaHQ7XG4gICAgICBiYWNrZ3JvdW5kOiAkYWN0aXZlLWJnO1xuICAgICAgcGFkZGluZzogJHN1Yi1uYXYtYWN0aXZlLXBhZGRpbmc7XG4gICAgICBjdXJzb3I6ICRzdWItbmF2LWFjdGl2ZS1jdXJzb3I7XG4gICAgICBjb2xvcjogJHN1Yi1uYXYtYWN0aXZlLWNvbG9yO1xuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRhY3RpdmUtYmctaG92ZXI7XG4gICAgICB9XG4gICAgfVxuICAgIEBpZiAkc3ViLW5hdi1pdGVtLWRpdmlkZXIgIT0gXCJcIiB7XG4gICAgICBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06IDA7XG5cbiAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogXCIjeyRzdWItbmF2LWl0ZW0tZGl2aWRlcn1cIjtcbiAgICAgICAgbWFyZ2luOiAwICRzdWItbmF2LWl0ZW0tZGl2aWRlci1tYXJnaW47XG4gICAgICB9XG5cbiAgICAgICY6Zmlyc3QtY2hpbGQ6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AaW5jbHVkZSBleHBvcnRzKFwic3ViLW5hdlwiKSB7XG4gIEBpZiAkaW5jbHVkZS1odG1sLW5hdi1jbGFzc2VzIHtcbiAgICAuc3ViLW5hdiB7IEBpbmNsdWRlIHN1Yi1uYXY7IH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQGltcG9ydCBcImdsb2JhbFwiO1xuQGltcG9ydCBcImdyaWRcIjtcbkBpbXBvcnQgXCJidXR0b25zXCI7XG5AaW1wb3J0IFwiZm9ybXNcIjtcblxuLy9cbi8vIFRvcCBCYXIgVmFyaWFibGVzXG4vL1xuJGluY2x1ZGUtaHRtbC10b3AtYmFyLWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcyAhZGVmYXVsdDtcblxuLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgdGhlIHRvcCBiYXJcbiR0b3BiYXItYmctY29sb3I6ICRvaWwgIWRlZmF1bHQ7XG4kdG9wYmFyLWJnOiAkdG9wYmFyLWJnLWNvbG9yICFkZWZhdWx0O1xuXG4vLyBIZWlnaHQgYW5kIG1hcmdpblxuJHRvcGJhci1oZWlnaHQ6IHJlbS1jYWxjKDQ1KSAhZGVmYXVsdDtcbiR0b3BiYXItbWFyZ2luLWJvdHRvbTogMCAhZGVmYXVsdDtcblxuLy8gQ29udHJvbGxpbmcgdGhlIHN0eWxlcyBmb3IgdGhlIHRpdGxlIGluIHRoZSB0b3AgYmFyXG4kdG9wYmFyLXRpdGxlLXdlaWdodDogJGZvbnQtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcbiR0b3BiYXItdGl0bGUtZm9udC1zaXplOiByZW0tY2FsYygxNykgIWRlZmF1bHQ7XG5cbi8vIFNldCB0aGUgbGluayBjb2xvcnMgYW5kIHN0eWxlcyBmb3IgdG9wLWxldmVsIG5hdlxuJHRvcGJhci1saW5rLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG4kdG9wYmFyLWxpbmstY29sb3ItaG92ZXI6ICR3aGl0ZSAhZGVmYXVsdDtcbiR0b3BiYXItbGluay1jb2xvci1hY3RpdmU6ICR3aGl0ZSAhZGVmYXVsdDtcbiR0b3BiYXItbGluay1jb2xvci1hY3RpdmUtaG92ZXI6ICR3aGl0ZSAhZGVmYXVsdDtcbiR0b3BiYXItbGluay13ZWlnaHQ6ICRmb250LXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG4kdG9wYmFyLWxpbmstZm9udC1zaXplOiByZW0tY2FsYygxMykgIWRlZmF1bHQ7XG4kdG9wYmFyLWxpbmstaG92ZXItbGlnaHRuZXNzOiAtMTAlICFkZWZhdWx0OyAvLyBEYXJrZW4gYnkgMTAlXG4kdG9wYmFyLWxpbmstYmc6ICR0b3BiYXItYmcgIWRlZmF1bHQ7XG4kdG9wYmFyLWxpbmstYmctaG92ZXI6ICRvaWwgIWRlZmF1bHQ7XG4kdG9wYmFyLWxpbmstYmctY29sb3ItaG92ZXI6ICRjaGFyY29hbCAhZGVmYXVsdDtcbiR0b3BiYXItbGluay1iZy1hY3RpdmU6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuJHRvcGJhci1saW5rLWJnLWFjdGl2ZS1ob3Zlcjogc2NhbGUtY29sb3IoJHByaW1hcnktY29sb3IsICRsaWdodG5lc3M6IC0xNCUpICFkZWZhdWx0O1xuJHRvcGJhci1saW5rLWZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseSAhZGVmYXVsdDtcbiR0b3BiYXItbGluay10ZXh0LXRyYW5zZm9ybTogbm9uZSAhZGVmYXVsdDtcbiR0b3BiYXItbGluay1wYWRkaW5nOiAoJHRvcGJhci1oZWlnaHQgLyAzKSAhZGVmYXVsdDtcbiR0b3BiYXItYmFjay1saW5rLXNpemU6IHJlbS1jYWxjKDE4KSAhZGVmYXVsdDtcbiR0b3BiYXItbGluay1kcm9wZG93bi1wYWRkaW5nOiByZW0tY2FsYygyMCkgIWRlZmF1bHQ7XG4kdG9wYmFyLWJ1dHRvbi1mb250LXNpemU6IDAuNzVyZW0gIWRlZmF1bHQ7XG4kdG9wYmFyLWJ1dHRvbi10b3A6IDdweCAhZGVmYXVsdDtcblxuLy8gU3R5bGUgdGhlIHRvcCBiYXIgZHJvcGRvd24gZWxlbWVudHNcbiR0b3BiYXItZHJvcGRvd24tYmc6ICRvaWwgIWRlZmF1bHQ7XG4kdG9wYmFyLWRyb3Bkb3duLWxpbmstY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcbiR0b3BiYXItZHJvcGRvd24tbGluay1jb2xvci1ob3ZlcjogJHRvcGJhci1saW5rLWNvbG9yLWhvdmVyICFkZWZhdWx0O1xuJHRvcGJhci1kcm9wZG93bi1saW5rLWJnOiAkb2lsICFkZWZhdWx0O1xuJHRvcGJhci1kcm9wZG93bi1saW5rLWJnLWhvdmVyOiAkb2lsICFkZWZhdWx0O1xuJHRvcGJhci1kcm9wZG93bi1saW5rLXdlaWdodDogJGZvbnQtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcbiR0b3BiYXItZHJvcGRvd24tdG9nZ2xlLXNpemU6IDVweCAhZGVmYXVsdDtcbiR0b3BiYXItZHJvcGRvd24tdG9nZ2xlLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG4kdG9wYmFyLWRyb3Bkb3duLXRvZ2dsZS1hbHBoYTogMC40ICFkZWZhdWx0O1xuXG4kdG9wYmFyLWRyb3Bkb3duLWxhYmVsLWNvbG9yOiAkbW9uc29vbiAhZGVmYXVsdDtcbiR0b3BiYXItZHJvcGRvd24tbGFiZWwtdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZSAhZGVmYXVsdDtcbiR0b3BiYXItZHJvcGRvd24tbGFiZWwtZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ib2xkICFkZWZhdWx0O1xuJHRvcGJhci1kcm9wZG93bi1sYWJlbC1mb250LXNpemU6IHJlbS1jYWxjKDEwKSAhZGVmYXVsdDtcbiR0b3BiYXItZHJvcGRvd24tbGFiZWwtYmc6ICRvaWwgIWRlZmF1bHQ7XG5cbi8vIFRvcCBtZW51IGljb24gc3R5bGVzXG4kdG9wYmFyLW1lbnUtbGluay10cmFuc2Zvcm06IHVwcGVyY2FzZSAhZGVmYXVsdDtcbiR0b3BiYXItbWVudS1saW5rLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTMpICFkZWZhdWx0O1xuJHRvcGJhci1tZW51LWxpbmstd2VpZ2h0OiAkZm9udC13ZWlnaHQtYm9sZCAhZGVmYXVsdDtcbiR0b3BiYXItbWVudS1saW5rLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG4kdG9wYmFyLW1lbnUtaWNvbi1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuJHRvcGJhci1tZW51LWxpbmstY29sb3ItdG9nZ2xlZDogJGp1bWJvICFkZWZhdWx0O1xuJHRvcGJhci1tZW51LWljb24tY29sb3ItdG9nZ2xlZDogJGp1bWJvICFkZWZhdWx0O1xuJHRvcGJhci1tZW51LWljb24tcG9zaXRpb246ICRvcHBvc2l0ZS1kaXJlY3Rpb24gIWRlZmF1bHQ7IC8vIENoYW5nZSB0byAkZGVmYXVsdC1mbG9hdCBmb3IgYSBsZWZ0IG1lbnUgaWNvblxuXG4vLyBUcmFuc2l0aW9ucyBhbmQgYnJlYWtwb2ludCBzdHlsZXNcbiR0b3BiYXItdHJhbnNpdGlvbi1zcGVlZDogMzAwbXMgIWRlZmF1bHQ7XG4vLyBVc2luZyByZW0tY2FsYyBmb3IgdGhlIGJlbG93IGJyZWFrcG9pbnQgY2F1c2VzIGlzc3VlcyB3aXRoIHRvcCBiYXJcbiR0b3BiYXItYnJlYWtwb2ludDogI3tsb3dlci1ib3VuZCgkbWVkaXVtLXJhbmdlKX0gIWRlZmF1bHQ7IC8vIENoYW5nZSB0byA5OTk5cHggZm9yIGFsd2F5cyBtb2JpbGUgbGF5b3V0XG4kdG9wYmFyLW1lZGlhLXF1ZXJ5OiAkbWVkaXVtLXVwICFkZWZhdWx0O1xuXG4vLyBUb3AtYmFyIGlucHV0IHN0eWxlc1xuJHRvcGJhci1pbnB1dC1oZWlnaHQ6IHJlbS1jYWxjKDI4KSAhZGVmYXVsdDtcblxuLy8gRGl2aWRlciBTdHlsZXNcbiR0b3BiYXItZGl2aWRlci1ib3JkZXItYm90dG9tOiBzb2xpZCAxcHggc2NhbGUtY29sb3IoJHRvcGJhci1iZy1jb2xvciwgJGxpZ2h0bmVzczogMTMlKSAhZGVmYXVsdDtcbiR0b3BiYXItZGl2aWRlci1ib3JkZXItdG9wOiBzb2xpZCAxcHggc2NhbGUtY29sb3IoJHRvcGJhci1iZy1jb2xvciwgJGxpZ2h0bmVzczogLTUwJSkgIWRlZmF1bHQ7XG5cbi8vIFN0aWNreSBDbGFzc1xuJHRvcGJhci1zdGlja3ktY2xhc3M6IFwiLnN0aWNreVwiICFkZWZhdWx0O1xuJHRvcGJhci1hcnJvd3M6IHRydWUgIWRlZmF1bHQ7IC8vU2V0IGZhbHNlIHRvIHJlbW92ZSB0aGUgdHJpYW5nbGUgaWNvbiBmcm9tIHRoZSBtZW51IGl0ZW1cbiR0b3BiYXItZHJvcGRvd24tYXJyb3dzOiB0cnVlICFkZWZhdWx0OyAvL1NldCBmYWxzZSB0byByZW1vdmUgdGhlIFxcMDBiYiA+PiB0ZXh0IGZyb20gZHJvcGRvd24gc3VibmF2aWdhdGlvbiBsaVxuXG4vLyBBY2Nlc3NpYmlsaXR5IG1peGlucyBmb3IgaGlkaW5nIGFuZCBzaG93aW5nIHRoZSBtZW51IGRyb3Bkb3duIGl0ZW1zXG5AbWl4aW4gdG9wYmFyLWhpZGUtZHJvcGRvd24ge1xuICAvLyBNYWtlcyBhbiBlbGVtZW50IHZpc3VhbGx5IGhpZGRlbiBieSBkZWZhdWx0LCBidXQgdmlzaWJsZSB3aGVuIGZvY3VzZWQuXG4gIGRpc3BsYXk6IGJsb2NrO1xuICBAaW5jbHVkZSBlbGVtZW50LWludmlzaWJsZSgpO1xufVxuXG5AbWl4aW4gdG9wYmFyLXNob3ctZHJvcGRvd24ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgQGluY2x1ZGUgZWxlbWVudC1pbnZpc2libGUtb2ZmKCk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50OyAvLyBSZXNldCB0aGUgcG9zaXRpb24gZnJvbSBzdGF0aWMgdG8gYWJzb2x1dGVcbn1cblxuQGZ1bmN0aW9uIHRvLXN0cmluZygkdmFsdWUpIHtcbiAgQHJldHVybiBpbnNwZWN0KCR2YWx1ZSk7XG59XG5cbkBpbmNsdWRlIGV4cG9ydHMoXCJ0b3AtYmFyXCIpIHtcblxuICBAaWYgJGluY2x1ZGUtaHRtbC10b3AtYmFyLWNsYXNzZXMge1xuXG4gICAgLy8gVXNlZCB0byBwcm92aWRlIG1lZGlhIHF1ZXJ5IHZhbHVlcyBmb3IgamF2YXNjcmlwdCBjb21wb25lbnRzLlxuICAgIC8vIFRoaXMgY2xhc3MgaXMgZ2VuZXJhdGVkIGRlc3BpdGUgdGhlIHZhbHVlIG9mICRpbmNsdWRlLWh0bWwtdG9wLWJhci1jbGFzc2VzXG4gICAgLy8gdG8gZW5zdXJlIHdpZHRoIGNhbGN1bGF0aW9ucyB3b3JrIGNvcnJlY3RseS5cbiAgICBtZXRhLmZvdW5kYXRpb24tbXEtdG9wYmFyIHtcbiAgICAgIGZvbnQtZmFtaWx5OiBcIi9cIiArIHVucXVvdGUodG9fc3RyaW5nKCR0b3BiYXItbWVkaWEtcXVlcnkpKSArIFwiL1wiO1xuICAgICAgd2lkdGg6ICR0b3BiYXItYnJlYWtwb2ludDtcbiAgICB9XG5cbiAgICAvKiBXcmFwcGVkIGFyb3VuZCAudG9wLWJhciB0byBjb250YWluIHRvIGdyaWQgd2lkdGggKi9cbiAgICAuY29udGFpbi10by1ncmlkIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgYmFja2dyb3VuZDogJHRvcGJhci1iZztcblxuICAgICAgLnRvcC1iYXIgeyBtYXJnaW4tYm90dG9tOiAkdG9wYmFyLW1hcmdpbi1ib3R0b207IH1cbiAgICB9XG5cbiAgICAvLyBXcmFwcGVkIGFyb3VuZCAudG9wLWJhciB0byBtYWtlIGl0IHN0aWNrIHRvIHRoZSB0b3BcbiAgICAuZml4ZWQge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAjeyRkZWZhdWx0LWZsb2F0fTogMDtcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgIHRvcDogMDtcbiAgICAgIHotaW5kZXg6IDk5O1xuXG4gICAgICAmLmV4cGFuZGVkOm5vdCgudG9wLWJhcikge1xuICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgIC50aXRsZS1hcmVhIHtcbiAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgei1pbmRleDogOTk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gRW5zdXJlIHlvdSBjYW4gc2Nyb2xsIHRoZSBtZW51IG9uIHNtYWxsIHNjcmVlbnNcbiAgICAgICAgLnRvcC1iYXItc2VjdGlvbiB7XG4gICAgICAgICAgei1pbmRleDogOTg7XG4gICAgICAgICAgbWFyZ2luLXRvcDogJHRvcGJhci1oZWlnaHQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAudG9wLWJhciB7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgaGVpZ2h0OiAkdG9wYmFyLWhlaWdodDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAkdG9wYmFyLWhlaWdodDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGJhY2tncm91bmQ6ICR0b3BiYXItYmc7XG4gICAgICBtYXJnaW4tYm90dG9tOiAkdG9wYmFyLW1hcmdpbi1ib3R0b207XG5cbiAgICAgIC8vIFRvcGJhciBHbG9iYWwgbGlzdCBTdHlsZXNcbiAgICAgIHVsIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLnJvdyB7IG1heC13aWR0aDogbm9uZTsgfVxuXG4gICAgICBmb3JtLFxuICAgICAgaW5wdXQgeyBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbiAgICAgIGlucHV0IHsgXG4gICAgICAgIGhlaWdodDogJHRvcGJhci1pbnB1dC1oZWlnaHQ7IFxuICAgICAgICBwYWRkaW5nLXRvcDogLjM1cmVtOyBcbiAgICAgICAgcGFkZGluZy1ib3R0b206IC4zNXJlbTsgXG4gICAgICAgIGZvbnQtc2l6ZTogJHRvcGJhci1idXR0b24tZm9udC1zaXplOyBcbiAgICAgIH1cblxuICAgICAgLmJ1dHRvbiwgYnV0dG9uIHtcbiAgICAgICAgcGFkZGluZy10b3A6IC4zNXJlbSArIHJlbS1jYWxjKDEpO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogLjM1cmVtICsgcmVtLWNhbGMoMSk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIGZvbnQtc2l6ZTogJHRvcGJhci1idXR0b24tZm9udC1zaXplO1xuICAgICAgICAvLyBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIC8vIHRvcDogLTFweDtcblxuICAgICAgICAvLyBDb3JyZWN0cyBhIHNsaWdodCBtaXNhbGlnbm1lbnQgd2hlbiBwdXQgbmV4dCB0byBhbiBpbnB1dCBmaWVsZFxuICAgICAgICBAbWVkaWEgI3skc21hbGwtb25seX0ge1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICB0b3A6IC0xcHg7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gVGl0bGUgQXJlYVxuICAgICAgLnRpdGxlLWFyZWEge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgIH1cblxuICAgICAgLm5hbWUge1xuICAgICAgICBoZWlnaHQ6ICR0b3BiYXItaGVpZ2h0O1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGZvbnQtc2l6ZTogJHJlbS1iYXNlO1xuICAgICAgICAvLyBAaWYgJHRvcGJhci1tZW51LWljb24tcG9zaXRpb24gPT0gJGRlZmF1bHQtZmxvYXQge2Zsb2F0OiAkb3Bwb3NpdGUtZGlyZWN0aW9uO31cblxuICAgICAgICBoMSwgaDIsIGgzLCBoNCwgcCwgc3BhbiB7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6ICR0b3BiYXItaGVpZ2h0O1xuICAgICAgICAgIGZvbnQtc2l6ZTogJHRvcGJhci10aXRsZS1mb250LXNpemU7XG4gICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgIGEge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR0b3BiYXItdGl0bGUtd2VpZ2h0O1xuICAgICAgICAgICAgY29sb3I6ICR0b3BiYXItbGluay1jb2xvcjtcbiAgICAgICAgICAgIHdpZHRoOiA3NSU7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHRvcGJhci1saW5rLXBhZGRpbmc7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIE1lbnUgdG9nZ2xlIGJ1dHRvbiBvbiBzbWFsbCBkZXZpY2VzXG4gICAgICAudG9nZ2xlLXRvcGJhciB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgI3skdG9wYmFyLW1lbnUtaWNvbi1wb3NpdGlvbn06IDA7XG4gICAgICAgIHRvcDogMDtcblxuICAgICAgICBhIHtcbiAgICAgICAgICBjb2xvcjogJHRvcGJhci1saW5rLWNvbG9yO1xuICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiAkdG9wYmFyLW1lbnUtbGluay10cmFuc2Zvcm07XG4gICAgICAgICAgZm9udC1zaXplOiAkdG9wYmFyLW1lbnUtbGluay1mb250LXNpemU7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6ICR0b3BiYXItbWVudS1saW5rLXdlaWdodDtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgcGFkZGluZzogMCAkdG9wYmFyLWxpbmstcGFkZGluZztcbiAgICAgICAgICBoZWlnaHQ6ICR0b3BiYXItaGVpZ2h0O1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkdG9wYmFyLWhlaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEFkZGluZyB0aGUgY2xhc3MgXCJtZW51LWljb25cIiB3aWxsIGFkZCB0aGUgMy1saW5lIGljb24gcGVvcGxlIGxvdmUgYW5kIGFkb3JlLlxuICAgICAgICAmLm1lbnUtaWNvbiB7XG4gICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgbWFyZ2luLXRvcDogLTE2cHg7XG5cbiAgICAgICAgICBhIHtcbiAgICAgICAgICAgIEBpZiAkdGV4dC1kaXJlY3Rpb24gPT0gcnRsIHtcbiAgICAgICAgICAgICAgdGV4dC1pbmRlbnQ6IC01OHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaGVpZ2h0OiAzNHB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDMzcHg7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICR0b3BiYXItbGluay1wYWRkaW5nK3JlbS1jYWxjKDI1KSAwICR0b3BiYXItbGluay1wYWRkaW5nO1xuICAgICAgICAgICAgY29sb3I6ICR0b3BiYXItbWVudS1saW5rLWNvbG9yO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAmIHtcbiAgICAgICAgICAgICAgLy8gQGluY2x1ZGUgaGFtYnVyZ2VyIGljb25cbiAgICAgICAgICAgICAgLy9cbiAgICAgICAgICAgICAgLy8gV2UgdXNlIHRoaXMgdG8gY3JlYXRlIHRoZSBpY29uIHdpdGggdGhyZWUgbGluZXMgYWthIHRoZSBoYW1idXJnZXIgaWNvbiwgdGhlIG1lbnUtaWNvbiBvciB0aGUgbmF2aWNvblxuICAgICAgICAgICAgICAvLyAkd2lkdGggLSBXaWR0aCBvZiBoYW1idXJnZXIgaWNvblxuICAgICAgICAgICAgICAvLyAkbGVmdCAtIElmIGZhbHNlLCBpY29uIHdpbGwgYmUgY2VudGVyZWQgaG9yaXpvbnRhbGx5IHx8IGV4cGxpY2l0bHkgc2V0IHZhbHVlIGluIHJlbVxuICAgICAgICAgICAgICAvLyAkdG9wIC0gSWYgZmFsc2UsIGljb24gd2lsbCBiZSBjZW50ZXJlZCB2ZXJ0aWNhbGx5IHx8IGV4cGxpY2l0bHkgc2V0IHZhbHVlIGluIHJlbVxuICAgICAgICAgICAgICAvLyAkdGhpY2tuZXNzIC0gdGhpY2tuZXNzIG9mIGxpbmVzIGluIGhhbWJ1cmdlciBpY29uLCBzZXQgdmFsdWUgaW4gcHhcbiAgICAgICAgICAgICAgLy8gJGdhcCAtIHNwYWNpbmcgYmV0d2VlbiB0aGUgbGluZXMgaW4gaGFtYnVyZ2VyIGljb24sIHNldCB2YWx1ZSBpbiBweFxuICAgICAgICAgICAgICAvLyAkY29sb3IgLSBpY29uIGNvbG9yXG4gICAgICAgICAgICAgIC8vICRob3Zlci1jb2xvciAtIGljb24gY29sb3IgZHVyaW5nIGhvdmVyLCBoZXJlIGl0IGlzbid0IHNldCBiL2MgaXQgd291bGQgb3ZlcnJpZGUgJHRvcGJhci1tZW51LWljb24tY29sb3ItdG9nZ2xlZFxuICAgICAgICAgICAgICAvLyAkb2ZmY2FudmFzIC0gU2V0IHRvIGZhbHNlIG9mIEBpbmNsdWRlIGluIHRvcGJhclxuICAgICAgICAgICAgICBAaW5jbHVkZSBoYW1idXJnZXIoMTZweCwgZmFsc2UsIDAsIDFweCwgNnB4LCAkdG9wYmFyLW1lbnUtaWNvbi1jb2xvciwgXCJcIiwgZmFsc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBDaGFuZ2UgdGhpbmdzIHVwIHdoZW4gdGhlIHRvcC1iYXIgaXMgZXhwYW5kZWRcbiAgICAgICYuZXhwYW5kZWQge1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXG4gICAgICAgIC50aXRsZS1hcmVhIHsgYmFja2dyb3VuZDogJHRvcGJhci1iZzsgfVxuXG4gICAgICAgIC50b2dnbGUtdG9wYmFyIHtcbiAgICAgICAgICBhIHsgY29sb3I6ICR0b3BiYXItbWVudS1saW5rLWNvbG9yLXRvZ2dsZWQ7XG4gICAgICBzcGFuOjphZnRlciB7XG4gICAgICAgICAgICAgIC8vIFNoaCwgZG9uJ3QgdGVsbCwgYnV0IGJveC1zaGFkb3dzIGNyZWF0ZSB0aGUgbWVudSBpY29uIDopXG4gICAgICAgICAgICAgIC8vIENoYW5nZSB0aGUgY29sb3Igb2YgdGhlIGJhcnMgd2hlbiB0aGUgbWVudSBpcyBleHBhbmRlZCwgdXNpbmcgZ2l2ZW4gdGhpY2tuZXNzIGZyb20gaGFtYnVyZ2VyKCkgYWJvdmVcbiAgICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICR0b3BiYXItbWVudS1pY29uLWNvbG9yLXRvZ2dsZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDAgN3B4IDAgMXB4ICR0b3BiYXItbWVudS1pY29uLWNvbG9yLXRvZ2dsZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDAgMTRweCAwIDFweCAkdG9wYmFyLW1lbnUtaWNvbi1jb2xvci10b2dnbGVkO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFJpZ2h0IGFuZCBMZWZ0IE5hdmlnYXRpb24gdGhhdCBzdGFja2VkIGJ5IGRlZmF1bHRcbiAgICAudG9wLWJhci1zZWN0aW9uIHtcbiAgICAgICN7JGRlZmF1bHQtZmxvYXR9OiAwO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICBAaW5jbHVkZSBzaW5nbGUtdHJhbnNpdGlvbigkZGVmYXVsdC1mbG9hdCwgJHRvcGJhci10cmFuc2l0aW9uLXNwZWVkKTtcblxuICAgICAgdWwge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZm9udC1zaXplOiAkcmVtLWJhc2U7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgIH1cblxuICAgICAgLmRpdmlkZXIsXG4gICAgICBbcm9sZT1cInNlcGFyYXRvclwiXSB7XG4gICAgICAgIGJvcmRlci10b3A6ICR0b3BiYXItZGl2aWRlci1ib3JkZXItdG9wO1xuICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgfVxuXG4gICAgICB1bCBsaSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR0b3BiYXItZHJvcGRvd24tYmc7XG4gICAgICAgICYgPiBhIHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICBjb2xvcjogJHRvcGJhci1saW5rLWNvbG9yO1xuICAgICAgICAgIHBhZGRpbmc6IDEycHggMCAxMnB4IDA7XG4gICAgICAgICAgcGFkZGluZy0jeyRkZWZhdWx0LWZsb2F0fTogJHRvcGJhci1saW5rLXBhZGRpbmc7XG4gICAgICAgICAgZm9udC1mYW1pbHk6ICR0b3BiYXItbGluay1mb250LWZhbWlseTtcbiAgICAgICAgICBmb250LXNpemU6ICR0b3BiYXItbGluay1mb250LXNpemU7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6ICR0b3BiYXItbGluay13ZWlnaHQ7XG4gICAgICAgICAgdGV4dC10cmFuc2Zvcm06ICR0b3BiYXItbGluay10ZXh0LXRyYW5zZm9ybTtcblxuICAgICAgICAgICYuYnV0dG9uIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJHRvcGJhci1saW5rLWZvbnQtc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogJHRvcGJhci1saW5rLXBhZGRpbmc7XG4gICAgICAgICAgICBwYWRkaW5nLSN7JGRlZmF1bHQtZmxvYXR9OiAkdG9wYmFyLWxpbmstcGFkZGluZztcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkYmc6JHByaW1hcnktY29sb3IpO1xuICAgICAgICAgIH1cbiAgICAgICAgICAmLmJ1dHRvbi5zZWNvbmRhcnkgeyBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGJnOiRzZWNvbmRhcnktY29sb3IpOyB9XG4gICAgICAgICAgJi5idXR0b24uc3VjY2VzcyB7IEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkYmc6JHN1Y2Nlc3MtY29sb3IpOyB9XG4gICAgICAgICAgJi5idXR0b24uYWxlcnQgeyBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGJnOiRhbGVydC1jb2xvcik7IH1cbiAgICAgICAgICAmLmJ1dHRvbi53YXJuaW5nIHsgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRiZzokd2FybmluZy1jb2xvcik7IH1cbiAgICAgICAgfVxuXG4gICAgICAgID4gYnV0dG9uIHtcbiAgICAgICAgICBmb250LXNpemU6ICR0b3BiYXItbGluay1mb250LXNpemU7XG4gICAgICAgICAgcGFkZGluZy0jeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAkdG9wYmFyLWxpbmstcGFkZGluZztcbiAgICAgICAgICBwYWRkaW5nLSN7JGRlZmF1bHQtZmxvYXR9OiAkdG9wYmFyLWxpbmstcGFkZGluZztcbiAgICAgICAgICBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGJnOiRwcmltYXJ5LWNvbG9yKTtcblxuICAgICAgICAgICYuc2Vjb25kYXJ5IHsgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRiZzokc2Vjb25kYXJ5LWNvbG9yKTsgfVxuICAgICAgICAgICYuc3VjY2VzcyB7IEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkYmc6JHN1Y2Nlc3MtY29sb3IpOyB9XG4gICAgICAgICAgJi5hbGVydCB7IEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkYmc6JGFsZXJ0LWNvbG9yKTsgfVxuICAgICAgICAgICYud2FybmluZyB7IEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkYmc6JHdhcm5pbmctY29sb3IpOyB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBBcHBseSB0aGUgaG92ZXIgbGluayBjb2xvciB3aGVuIGl0IGhhcyB0aGF0IGNsYXNzXG4gICAgICAgICY6aG92ZXI6bm90KC5oYXMtZm9ybSkgPiBhIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdG9wYmFyLWxpbmstYmctY29sb3ItaG92ZXI7XG4gICAgICAgICAgQGlmICgkdG9wYmFyLWxpbmstYmctaG92ZXIpIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR0b3BiYXItbGluay1iZy1ob3ZlcjtcbiAgICAgICAgICB9XG4gICAgICAgICAgY29sb3I6ICR0b3BiYXItbGluay1jb2xvci1ob3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEFwcGx5IHRoZSBhY3RpdmUgbGluayBjb2xvciB3aGVuIGl0IGhhcyB0aGF0IGNsYXNzXG4gICAgICAgICYuYWN0aXZlID4gYSB7XG4gICAgICAgICAgYmFja2dyb3VuZDogJHRvcGJhci1saW5rLWJnLWFjdGl2ZTtcbiAgICAgICAgICBjb2xvcjogJHRvcGJhci1saW5rLWNvbG9yLWFjdGl2ZTtcbiAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR0b3BiYXItbGluay1iZy1hY3RpdmUtaG92ZXI7XG4gICAgICAgICAgICBjb2xvcjogJHRvcGJhci1saW5rLWNvbG9yLWFjdGl2ZS1ob3ZlcjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gQWRkIHNvbWUgZXh0cmEgcGFkZGluZyBmb3IgbGlzdCBpdGVtcyBjb250YWlucyBidXR0b25zXG4gICAgICAuaGFzLWZvcm0geyBwYWRkaW5nOiAkdG9wYmFyLWxpbmstcGFkZGluZzsgfVxuXG4gICAgICAvLyBTdHlsaW5nIGZvciBsaXN0IGl0ZW1zIHRoYXQgaGF2ZSBhIGRyb3Bkb3duIHdpdGhpbiB0aGVtLlxuICAgICAgLmhhcy1kcm9wZG93biB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmID4gYSB7XG4gICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBAaWYgKCR0b3BiYXItYXJyb3dzKXtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCR0b3BiYXItZHJvcGRvd24tdG9nZ2xlLXNpemUsIHJnYmEoJHRvcGJhci1kcm9wZG93bi10b2dnbGUtY29sb3IsICR0b3BiYXItZHJvcGRvd24tdG9nZ2xlLWFscGhhKSwgJGRlZmF1bHQtZmxvYXQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbWFyZ2luLSN7JG9wcG9zaXRlLWRpcmVjdGlvbn06ICR0b3BiYXItbGluay1wYWRkaW5nO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogLSgkdG9wYmFyLWRyb3Bkb3duLXRvZ2dsZS1zaXplIC8gMikgLSAyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAjeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAwO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYubW92ZWQgeyBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICAgICYgPiAuZHJvcGRvd24ge1xuICAgICAgICAgICAgQGluY2x1ZGUgdG9wYmFyLXNob3ctZHJvcGRvd24oKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgIH1cbiAgICAgICAgICAmID4gYTphZnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBTdHlsaW5nIGVsZW1lbnRzIGluc2lkZSBvZiBkcm9wZG93bnNcbiAgICAgIC5kcm9wZG93biB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgI3skZGVmYXVsdC1mbG9hdH06IDEwMCU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgei1pbmRleDogOTk7XG4gICAgICAgIEBpbmNsdWRlIHRvcGJhci1oaWRlLWRyb3Bkb3duKCk7XG5cbiAgICAgICAgbGkge1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgIGhlaWdodDogYXV0bztcblxuICAgICAgICAgIGEge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR0b3BiYXItZHJvcGRvd24tbGluay13ZWlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiA4cHggJHRvcGJhci1saW5rLXBhZGRpbmc7XG4gICAgICAgICAgICAmLnBhcmVudC1saW5rIHtcbiAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR0b3BiYXItbGluay13ZWlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJi50aXRsZSBoNSwgJi5wYXJlbnQtbGluayB7XG4gICAgICAgICAgICAvLyBCYWNrIEJ1dHRvblxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICBmb250LXNpemU6ICR0b3BiYXItYmFjay1saW5rLXNpemU7XG4gICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgY29sb3I6ICR0b3BiYXItbGluay1jb2xvcjtcbiAgICAgICAgICAgICAgLy8gbGluZS1oZWlnaHQ6ICgkdG9wYmFyLWhlaWdodCAvIDIpO1xuICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgJjpob3ZlciB7IGJhY2tncm91bmQ6bm9uZTsgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICAmLmhhcy1mb3JtIHsgcGFkZGluZzogOHB4ICR0b3BiYXItbGluay1wYWRkaW5nOyB9XG4gICAgICAgICAgLmJ1dHRvbiwgYnV0dG9uIHsgdG9wOiBhdXRvOyB9XG4gICAgICAgIH1cblxuICAgICAgICBsYWJlbCB7XG4gICAgICAgICAgcGFkZGluZzogOHB4ICR0b3BiYXItbGluay1wYWRkaW5nIDJweDtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiAkdG9wYmFyLWRyb3Bkb3duLWxhYmVsLXRleHQtdHJhbnNmb3JtO1xuICAgICAgICAgIGNvbG9yOiAkdG9wYmFyLWRyb3Bkb3duLWxhYmVsLWNvbG9yO1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdG9wYmFyLWRyb3Bkb3duLWxhYmVsLWZvbnQtd2VpZ2h0O1xuICAgICAgICAgIGZvbnQtc2l6ZTogJHRvcGJhci1kcm9wZG93bi1sYWJlbC1mb250LXNpemU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAuanMtZ2VuZXJhdGVkIHsgZGlzcGxheTogYmxvY2s7IH1cblxuXG4gICAgLy8gVG9wIEJhciBzdHlsZXMgaW50ZW5kZWQgZm9yIHNjcmVlbiBzaXplcyBhYm92ZSB0aGUgYnJlYWtwb2ludC5cbiAgICBAbWVkaWEgI3skdG9wYmFyLW1lZGlhLXF1ZXJ5fSB7XG4gICAgICAudG9wLWJhciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR0b3BiYXItYmc7XG4gICAgICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcblxuICAgICAgICAudG9nZ2xlLXRvcGJhciB7IGRpc3BsYXk6IG5vbmU7IH1cblxuICAgICAgICAudGl0bGUtYXJlYSB7IGZsb2F0OiAkZGVmYXVsdC1mbG9hdDsgfVxuICAgICAgICAubmFtZSBoMSBhLFxuICAgICAgICAubmFtZSBoMiBhLFxuICAgICAgICAubmFtZSBoMyBhLFxuICAgICAgICAubmFtZSBoNCBhLFxuICAgICAgICAubmFtZSBoNSBhLFxuICAgICAgICAubmFtZSBoNiBhIHsgd2lkdGg6IGF1dG87IH1cblxuICAgICAgICBpbnB1dCxcbiAgICAgICAgLmJ1dHRvbixcbiAgICAgICAgYnV0dG9uIHtcbiAgICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgaGVpZ2h0OiAkdG9wYmFyLWlucHV0LWhlaWdodDtcbiAgICAgICAgICB0b3A6ICgoJHRvcGJhci1oZWlnaHQgLSAkdG9wYmFyLWlucHV0LWhlaWdodCkgLyAyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuZXhwYW5kZWQgeyBiYWNrZ3JvdW5kOiAkdG9wYmFyLWJnOyB9XG4gICAgICB9XG5cbiAgICAgIC5jb250YWluLXRvLWdyaWQgLnRvcC1iYXIge1xuICAgICAgICBtYXgtd2lkdGg6ICRyb3ctd2lkdGg7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkdG9wYmFyLW1hcmdpbi1ib3R0b207XG4gICAgICB9XG5cbiAgICAgIC50b3AtYmFyLXNlY3Rpb24ge1xuICAgICAgICBAaW5jbHVkZSBzaW5nbGUtdHJhbnNpdGlvbihub25lLDAsMCk7XG4gICAgICAgICN7JGRlZmF1bHQtZmxvYXR9OiAwICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgdWwge1xuICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZTtcblxuICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgIGZsb2F0OiAkZGVmYXVsdC1mbG9hdDtcbiAgICAgICAgICAgIC5qcy1nZW5lcmF0ZWQgeyBkaXNwbGF5OiBub25lOyB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgbGkge1xuICAgICAgICAgICYuaG92ZXIge1xuICAgICAgICAgICAgPiBhOm5vdCguYnV0dG9uKSB7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0b3BiYXItbGluay1iZy1jb2xvci1ob3ZlcjtcbiAgICAgICAgICAgICAgQGlmICgkdG9wYmFyLWxpbmstYmctaG92ZXIpIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkdG9wYmFyLWxpbmstYmctaG92ZXI7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgY29sb3I6ICR0b3BiYXItbGluay1jb2xvci1ob3ZlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgJjpub3QoLmhhcy1mb3JtKSB7XG4gICAgICAgICAgICBhOm5vdCguYnV0dG9uKSB7XG4gICAgICAgICAgICAgIHBhZGRpbmc6IDAgJHRvcGJhci1saW5rLXBhZGRpbmc7XG4gICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkdG9wYmFyLWhlaWdodDtcbiAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHRvcGJhci1saW5rLWJnO1xuICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdG9wYmFyLWxpbmstYmctY29sb3ItaG92ZXI7XG4gICAgICAgICAgICAgICAgQGlmICgkdG9wYmFyLWxpbmstYmctaG92ZXIpIHtcbiAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICR0b3BiYXItbGluay1iZy1ob3ZlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgJi5hY3RpdmU6bm90KC5oYXMtZm9ybSkge1xuICAgICAgICAgICAgYTpub3QoLmJ1dHRvbikge1xuICAgICAgICAgICAgICBwYWRkaW5nOiAwICR0b3BiYXItbGluay1wYWRkaW5nO1xuICAgICAgICAgICAgICBsaW5lLWhlaWdodDogJHRvcGJhci1oZWlnaHQ7XG4gICAgICAgICAgICAgIGNvbG9yOiAkdG9wYmFyLWxpbmstY29sb3ItYWN0aXZlO1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkdG9wYmFyLWxpbmstYmctYWN0aXZlO1xuICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkdG9wYmFyLWxpbmstYmctYWN0aXZlLWhvdmVyO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdG9wYmFyLWxpbmstY29sb3ItYWN0aXZlLWhvdmVyO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmhhcy1kcm9wZG93biB7XG4gICAgICAgICAgQGlmKCR0b3BiYXItYXJyb3dzKXtcbiAgICAgICAgICAgICYgPiBhIHtcbiAgICAgICAgICAgICAgcGFkZGluZy0jeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAkdG9wYmFyLWxpbmstcGFkZGluZyArICR0b3BiYXItbGluay1kcm9wZG93bi1wYWRkaW5nICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkdG9wYmFyLWRyb3Bkb3duLXRvZ2dsZS1zaXplLCByZ2JhKCR0b3BiYXItZHJvcGRvd24tdG9nZ2xlLWNvbG9yLCAkdG9wYmFyLWRyb3Bkb3duLXRvZ2dsZS1hbHBoYSksIHRvcCk7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogLSgkdG9wYmFyLWRyb3Bkb3duLXRvZ2dsZS1zaXplIC8gMik7XG4gICAgICAgICAgICAgICAgdG9wOiAoJHRvcGJhci1oZWlnaHQgLyAyKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgICYubW92ZWQgeyBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAmID4gLmRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgdG9wYmFyLWhpZGUtZHJvcGRvd24oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICAmLmhvdmVyLCAmLm5vdC1jbGljazpob3ZlciB7XG4gICAgICAgICAgICAmID4gLmRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgdG9wYmFyLXNob3ctZHJvcGRvd24oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgPiBhOmZvY3VzICsgLmRyb3Bkb3duIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRvcGJhci1zaG93LWRyb3Bkb3duKCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLmRyb3Bkb3duIGxpLmhhcy1kcm9wZG93biB7XG4gICAgICAgICAgICAmID4gYSB7XG4gICAgICAgICAgICAgIEBpZiAoJHRvcGJhci1kcm9wZG93bi1hcnJvd3Mpe1xuICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgICAgY29udGVudDogXCJcXDAwYmJcIjtcbiAgICAgICAgICAgICAgICAgIHRvcDogMXJlbTtcbiAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IC0xcHg7XG4gICAgICAgICAgICAgICAgICAjeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiA1cHg7XG4gICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5kcm9wZG93biB7XG4gICAgICAgICAgI3skZGVmYXVsdC1mbG9hdH06IDA7XG4gICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgIG1pbi13aWR0aDogMTAwJTtcblxuICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICBjb2xvcjogJHRvcGJhci1kcm9wZG93bi1saW5rLWNvbG9yO1xuICAgICAgICAgICAgICBsaW5lLWhlaWdodDogJHRvcGJhci1oZWlnaHQ7XG4gICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgIHBhZGRpbmc6IDEycHggJHRvcGJhci1saW5rLXBhZGRpbmc7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQ6ICR0b3BiYXItZHJvcGRvd24tbGluay1iZztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpub3QoLmhhcy1mb3JtKTpub3QoLmFjdGl2ZSkge1xuICAgICAgICAgICAgICAmID4gYTpub3QoLmJ1dHRvbikge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdG9wYmFyLWRyb3Bkb3duLWxpbmstY29sb3I7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHRvcGJhci1kcm9wZG93bi1saW5rLWJnO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgJjpob3ZlciA+IGE6bm90KC5idXR0b24pIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHRvcGJhci1kcm9wZG93bi1saW5rLWNvbG9yLWhvdmVyO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0b3BiYXItbGluay1iZy1jb2xvci1ob3ZlcjtcbiAgICAgICAgICAgICAgICBAaWYgKCR0b3BiYXItZHJvcGRvd24tbGluay1iZy1ob3Zlcikge1xuICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHRvcGJhci1kcm9wZG93bi1saW5rLWJnLWhvdmVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBsYWJlbCB7XG4gICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQ6ICR0b3BiYXItZHJvcGRvd24tbGFiZWwtYmc7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIFNlY29uZCBMZXZlbCBEcm9wZG93bnNcbiAgICAgICAgICAgIC5kcm9wZG93biB7XG4gICAgICAgICAgICAgICN7JGRlZmF1bHQtZmxvYXR9OiAxMDAlO1xuICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJiA+IHVsID4gLmRpdmlkZXIsXG4gICAgICAgICYgPiB1bCA+IFtyb2xlPVwic2VwYXJhdG9yXCJdIHtcbiAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgICAgICAgYm9yZGVyLSN7JG9wcG9zaXRlLWRpcmVjdGlvbn06ICR0b3BiYXItZGl2aWRlci1ib3JkZXItYm90dG9tO1xuICAgICAgICAgIGNsZWFyOiBub25lO1xuICAgICAgICAgIGhlaWdodDogJHRvcGJhci1oZWlnaHQ7XG4gICAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAuaGFzLWZvcm0ge1xuICAgICAgICAgIGJhY2tncm91bmQ6ICR0b3BiYXItbGluay1iZztcbiAgICAgICAgICBwYWRkaW5nOiAwICR0b3BiYXItbGluay1wYWRkaW5nO1xuICAgICAgICAgIGhlaWdodDogJHRvcGJhci1oZWlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBQb3NpdGlvbiBvdmVycmlkZXMgZm9yIHVsLnJpZ2h0IGFuZCB1bC5sZWZ0XG4gICAgICAgIC4jeyRvcHBvc2l0ZS1kaXJlY3Rpb259IHtcbiAgICAgICAgICBsaSAuZHJvcGRvd24ge1xuICAgICAgICAgICAgI3skZGVmYXVsdC1mbG9hdH06IGF1dG87XG4gICAgICAgICAgICAjeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAwO1xuXG4gICAgICAgICAgICBsaSAuZHJvcGRvd24geyAjeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAxMDAlOyB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC4jeyRkZWZhdWx0LWZsb2F0fSB7XG4gICAgICAgICAgbGkgLmRyb3Bkb3duIHtcbiAgICAgICAgICAgICN7JG9wcG9zaXRlLWRpcmVjdGlvbn06IGF1dG87XG4gICAgICAgICAgICAjeyRkZWZhdWx0LWZsb2F0fTogMDtcblxuICAgICAgICAgICAgbGkgLmRyb3Bkb3duIHsgI3skZGVmYXVsdC1mbG9hdH06IDEwMCU7IH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gRGVncmFkZSBncmFjZWZ1bGx5IHdoZW4gSmF2YXNjcmlwdCBpcyBkaXNhYmxlZC4gRGlzcGxheXMgZHJvcGRvd24gYW5kIGNoYW5nZXNcbiAgICAgIC8vIGJhY2tncm91bmQgJiB0ZXh0IGNvbG9yIG9uIGhvdmVyLlxuICAgICAgLm5vLWpzIC50b3AtYmFyLXNlY3Rpb24ge1xuICAgICAgICB1bCBsaSB7XG4gICAgICAgICAgLy8gQXBwbHkgdGhlIGhvdmVyIGxpbmsgY29sb3Igd2hlbiBpdCBoYXMgdGhhdCBjbGFzc1xuICAgICAgICAgICY6aG92ZXIgPiBhIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0b3BiYXItbGluay1iZy1jb2xvci1ob3ZlcjtcbiAgICAgICAgICAgIEBpZiAoJHRvcGJhci1saW5rLWJnLWhvdmVyKSB7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQ6ICR0b3BiYXItbGluay1iZy1ob3ZlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbG9yOiAkdG9wYmFyLWxpbmstY29sb3ItaG92ZXI7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gQXBwbHkgdGhlIGFjdGl2ZSBsaW5rIGNvbG9yIHdoZW4gaXQgaGFzIHRoYXQgY2xhc3NcbiAgICAgICAgICAmOmFjdGl2ZSA+IGEge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHRvcGJhci1saW5rLWJnLWFjdGl2ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkdG9wYmFyLWxpbmstY29sb3ItYWN0aXZlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5oYXMtZHJvcGRvd24ge1xuICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgJiA+IC5kcm9wZG93biB7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIHRvcGJhci1zaG93LWRyb3Bkb3duKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgID4gYTpmb2N1cyArIC5kcm9wZG93biB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0b3BiYXItc2hvdy1kcm9wZG93bigpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQGltcG9ydCBcImdsb2JhbFwiO1xuQGltcG9ydCBcImJ1dHRvbnNcIjtcblxuLy9cbi8vIEB2YXJpYWJsZXNcbi8vXG4kaW5jbHVkZS1odG1sLWZvcm0tY2xhc3NlczogJGluY2x1ZGUtaHRtbC1jbGFzc2VzICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhpcyB0byBzZXQgdGhlIGJhc2UgZm9yIGxvdHMgb2YgZm9ybSBzcGFjaW5nIGFuZCBwb3NpdGlvbmluZyBzdHlsZXNcbiRmb3JtLXNwYWNpbmc6IHJlbS1jYWxjKDE2KSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHN0eWxlIHRoZSBsYWJlbHMgaW4gZGlmZmVyZW50IHdheXNcbiRmb3JtLWxhYmVsLXBvaW50ZXI6IHBvaW50ZXIgIWRlZmF1bHQ7XG4kZm9ybS1sYWJlbC1mb250LXNpemU6IHJlbS1jYWxjKDE0KSAhZGVmYXVsdDtcbiRmb3JtLWxhYmVsLWZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuJGZvcm0tbGFiZWwtbGluZS1oZWlnaHQ6IDEuNSAhZGVmYXVsdDtcbiRmb3JtLWxhYmVsLWZvbnQtY29sb3I6IHNjYWxlLWNvbG9yKCRibGFjaywgJGxpZ2h0bmVzczogMzAlKSAhZGVmYXVsdDtcbiRmb3JtLWxhYmVsLXNtYWxsLXRyYW5zZm9ybTogY2FwaXRhbGl6ZSAhZGVmYXVsdDtcbiRmb3JtLWxhYmVsLWJvdHRvbS1tYXJnaW46IDAgIWRlZmF1bHQ7XG4kaW5wdXQtZm9udC1mYW1pbHk6IGluaGVyaXQgIWRlZmF1bHQ7XG4kaW5wdXQtZm9udC1jb2xvcjogcmdiYSgwLDAsMCwwLjc1KSAhZGVmYXVsdDtcbiRpbnB1dC1mb250LXNpemU6IHJlbS1jYWxjKDE0KSAhZGVmYXVsdDtcbiRpbnB1dC1iZy1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuJGlucHV0LWZvY3VzLWJnLWNvbG9yOiBzY2FsZS1jb2xvcigkd2hpdGUsICRsaWdodG5lc3M6IC0yJSkgIWRlZmF1bHQ7XG4kaW5wdXQtYm9yZGVyLWNvbG9yOiBzY2FsZS1jb2xvcigkd2hpdGUsICRsaWdodG5lc3M6IC0yMCUpICFkZWZhdWx0O1xuJGlucHV0LWZvY3VzLWJvcmRlci1jb2xvcjogc2NhbGUtY29sb3IoJHdoaXRlLCAkbGlnaHRuZXNzOiAtNDAlKSAhZGVmYXVsdDtcbiRpbnB1dC1ib3JkZXItc3R5bGU6IHNvbGlkICFkZWZhdWx0O1xuJGlucHV0LWJvcmRlci13aWR0aDogMXB4ICFkZWZhdWx0O1xuJGlucHV0LWJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuJGlucHV0LWRpc2FibGVkLWJnOiAkZ2FpbnNib3JvICFkZWZhdWx0O1xuJGlucHV0LWRpc2FibGVkLWN1cnNvcjogJGN1cnNvci1kZWZhdWx0LXZhbHVlICFkZWZhdWx0O1xuJGlucHV0LWJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDJweCByZ2JhKDAsMCwwLDAuMSkgIWRlZmF1bHQ7XG4kaW5wdXQtaW5jbHVkZS1nbG93aW5nLWVmZmVjdDogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBzdHlsZSB0aGUgZmllbGRzZXQgYm9yZGVyIGFuZCBzcGFjaW5nLlxuJGZpZWxkc2V0LWJvcmRlci1zdHlsZTogc29saWQgIWRlZmF1bHQ7XG4kZmllbGRzZXQtYm9yZGVyLXdpZHRoOiAxcHggIWRlZmF1bHQ7XG4kZmllbGRzZXQtYm9yZGVyLWNvbG9yOiAkZ2FpbnNib3JvICFkZWZhdWx0O1xuJGZpZWxkc2V0LXBhZGRpbmc6IHJlbS1jYWxjKDIwKSAhZGVmYXVsdDtcbiRmaWVsZHNldC1tYXJnaW46IHJlbS1jYWxjKDE4IDApICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gc3R5bGUgdGhlIGxlZ2VuZHMgd2hlbiB5b3UgdXNlIHRoZW1cbiRsZWdlbmQtYmc6ICR3aGl0ZSAhZGVmYXVsdDtcbiRsZWdlbmQtZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ib2xkICFkZWZhdWx0O1xuJGxlZ2VuZC1wYWRkaW5nOiByZW0tY2FsYygwIDMpICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gc3R5bGUgdGhlIHByZWZpeCBhbmQgcG9zdGZpeCBpbnB1dCBlbGVtZW50c1xuJGlucHV0LXByZWZpeC1iZzogc2NhbGUtY29sb3IoJHdoaXRlLCAkbGlnaHRuZXNzOiAtNSUpICFkZWZhdWx0O1xuJGlucHV0LXByZWZpeC1ib3JkZXItY29sb3I6IHNjYWxlLWNvbG9yKCR3aGl0ZSwgJGxpZ2h0bmVzczogLTIwJSkgIWRlZmF1bHQ7XG4kaW5wdXQtcHJlZml4LWJvcmRlci1zaXplOiAxcHggIWRlZmF1bHQ7XG4kaW5wdXQtcHJlZml4LWJvcmRlci10eXBlOiBzb2xpZCAhZGVmYXVsdDtcbiRpbnB1dC1wcmVmaXgtb3ZlcmZsb3c6IHZpc2libGUgIWRlZmF1bHQ7XG4kaW5wdXQtcHJlZml4LWZvbnQtY29sb3I6ICRvaWwgIWRlZmF1bHQ7XG4kaW5wdXQtcHJlZml4LWZvbnQtY29sb3ItYWx0OiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGlzIHNldHRpbmcgdG8gdHVybiBvbi9vZmYgSFRNTDUgbnVtYmVyIHNwaW5uZXJzICh0aGUgdXAvZG93biBhcnJvd3MpXG4kaW5wdXQtbnVtYmVyLXNwaW5uZXJzOiB0cnVlICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gc3R5bGUgdGhlIGVycm9yIHN0YXRlcyBmb3IgaW5wdXRzIGFuZCBsYWJlbHNcbiRpbnB1dC1lcnJvci1tZXNzYWdlLXBhZGRpbmc6IHJlbS1jYWxjKDYgOSA5KSAhZGVmYXVsdDtcbiRpbnB1dC1lcnJvci1tZXNzYWdlLXRvcDogLTFweCAhZGVmYXVsdDtcbiRpbnB1dC1lcnJvci1tZXNzYWdlLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpICFkZWZhdWx0O1xuJGlucHV0LWVycm9yLW1lc3NhZ2UtZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG4kaW5wdXQtZXJyb3ItbWVzc2FnZS1mb250LXN0eWxlOiBpdGFsaWMgIWRlZmF1bHQ7XG4kaW5wdXQtZXJyb3ItbWVzc2FnZS1mb250LWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG4kaW5wdXQtZXJyb3ItbWVzc2FnZS1iZy1jb2xvcjogJGFsZXJ0LWNvbG9yICFkZWZhdWx0O1xuJGlucHV0LWVycm9yLW1lc3NhZ2UtZm9udC1jb2xvci1hbHQ6ICRvaWwgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGlzIHRvIHN0eWxlIHRoZSBnbG93aW5nIGVmZmVjdCBvZiBpbnB1dHMgd2hlbiBmb2N1c2VkXG4kZ2xvd2luZy1lZmZlY3QtZmFkZS10aW1lOiAwLjQ1cyAhZGVmYXVsdDtcbiRnbG93aW5nLWVmZmVjdC1jb2xvcjogJGlucHV0LWZvY3VzLWJvcmRlci1jb2xvciAhZGVmYXVsdDtcblxuLy8gU2VsZWN0IHZhcmlhYmxlc1xuJHNlbGVjdC1iZy1jb2xvcjogJGdob3N0ICFkZWZhdWx0O1xuJHNlbGVjdC1ob3Zlci1iZy1jb2xvcjogc2NhbGUtY29sb3IoJHNlbGVjdC1iZy1jb2xvciwgJGxpZ2h0bmVzczogLTMlKSAhZGVmYXVsdDtcblxuLy9cbi8vIEBNSVhJTlNcbi8vXG5cbi8vIFdlIHVzZSB0aGlzIG1peGluIHRvIGdpdmUgdXMgZm9ybSBzdHlsZXMgZm9yIHJvd3MgaW5zaWRlIG9mIGZvcm1zXG5AbWl4aW4gZm9ybS1yb3ctYmFzZSB7XG4gIC5yb3cgeyBtYXJnaW46IDAgKCgtJGZvcm0tc3BhY2luZykgLyAyKTtcblxuICAgIC5jb2x1bW4sXG4gICAgLmNvbHVtbnMgeyBwYWRkaW5nOiAwICgkZm9ybS1zcGFjaW5nIC8gMik7IH1cblxuICAgIC8vIFVzZSB0aGlzIHRvIGNvbGxhcHNlIHRoZSBtYXJnaW5zIG9mIGEgZm9ybSByb3dcbiAgICAmLmNvbGxhcHNlIHsgbWFyZ2luOiAwO1xuXG4gICAgICAuY29sdW1uLFxuICAgICAgLmNvbHVtbnMgeyBwYWRkaW5nOiAwOyB9XG4gICAgICBpbnB1dCB7XG4gICAgICAgIEBpbmNsdWRlIHNpZGUtcmFkaXVzKCRvcHBvc2l0ZS1kaXJlY3Rpb24sIDApO1xuICAgICAgfVxuXG4gICAgfVxuICB9XG4gIGlucHV0LmNvbHVtbixcbiAgaW5wdXQuY29sdW1ucyxcbiAgdGV4dGFyZWEuY29sdW1uLFxuICB0ZXh0YXJlYS5jb2x1bW5zIHsgcGFkZGluZy0jeyRkZWZhdWx0LWZsb2F0fTogKCRmb3JtLXNwYWNpbmcgLyAyKTsgfVxufVxuXG4vLyBATUlYSU5cbi8vXG4vLyBXZSB1c2UgdGhpcyBtaXhpbiB0byBnaXZlIGFsbCBiYXNpYyBmb3JtIGVsZW1lbnRzIHRoZWlyIHN0eWxlXG5AbWl4aW4gZm9ybS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWJnLWNvbG9yO1xuICBmb250LWZhbWlseTogJGlucHV0LWZvbnQtZmFtaWx5O1xuICBib3JkZXI6IHtcbiAgICBzdHlsZTogJGlucHV0LWJvcmRlci1zdHlsZTtcbiAgICB3aWR0aDogJGlucHV0LWJvcmRlci13aWR0aDtcbiAgICBjb2xvcjogJGlucHV0LWJvcmRlci1jb2xvcjtcbiAgfVxuICBib3gtc2hhZG93OiAkaW5wdXQtYm94LXNoYWRvdztcbiAgY29sb3I6ICRpbnB1dC1mb250LWNvbG9yO1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAkaW5wdXQtZm9udC1zaXplO1xuICBtYXJnaW46IDAgMCAkZm9ybS1zcGFjaW5nIDA7XG4gIHBhZGRpbmc6ICRmb3JtLXNwYWNpbmcgLyAyO1xuICBoZWlnaHQ6ICgkaW5wdXQtZm9udC1zaXplICsgKCRmb3JtLXNwYWNpbmcgKiAxLjUpIC0gcmVtLWNhbGMoMSkpO1xuICB3aWR0aDogMTAwJTtcbiAgQGluY2x1ZGUgYm94LXNpemluZyhib3JkZXItYm94KTtcbiAgQGlmICRpbnB1dC1pbmNsdWRlLWdsb3dpbmctZWZmZWN0IHtcbiAgICBAaW5jbHVkZSBibG9jay1nbG93aW5nLWVmZmVjdChmb2N1cywgJGdsb3dpbmctZWZmZWN0LWZhZGUtdGltZSwgJGdsb3dpbmctZWZmZWN0LWNvbG9yKTtcbiAgfVxuICAvLyBCYXNpYyBmb2N1cyBzdHlsZXNcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZDogJGlucHV0LWZvY3VzLWJnLWNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGlucHV0LWZvY3VzLWJvcmRlci1jb2xvcjtcbiAgICBvdXRsaW5lOiBub25lO1xuICB9XG4gIC8vIERpc2JhbGVkIFN0eWxlc1xuICAmOmRpc2FibGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtZGlzYWJsZWQtYmc7XG4gICAgY3Vyc29yOiAkaW5wdXQtZGlzYWJsZWQtY3Vyc29yO1xuICB9XG5cbiAgLy8gRGlzYWJsZWQgYmFja2dyb3VuZCBpbnB1dCBiYWNrZ3JvdW5kIGNvbG9yXG4gICZbZGlzYWJsZWRdLFxuICAmW3JlYWRvbmx5XSxcbiAgZmllbGRzZXRbZGlzYWJsZWRdICYge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1kaXNhYmxlZC1iZztcbiAgICBjdXJzb3I6ICRpbnB1dC1kaXNhYmxlZC1jdXJzb3I7XG4gIH1cbn1cblxuLy8gQE1JWElOXG4vL1xuLy8gV2UgdXNlIHRoaXMgbWl4aW4gdG8gY3JlYXRlIGZvcm0gbGFiZWxzXG4vL1xuLy8gJGFsaWdubWVudCAtIEFsaWdubWVudCBvcHRpb25zLiBEZWZhdWx0OiBmYWxzZS4gT3B0aW9uczogW3JpZ2h0LCBpbmxpbmUsIGZhbHNlXVxuLy8gJGJhc2Utc3R5bGUgLSBDb250cm9sIHdoZXRoZXIgb3Igbm90IHRoZSBiYXNlIHN0eWxlcyBjb21lIHRocm91Z2guIERlZmF1bHQ6IHRydWUuXG5AbWl4aW4gZm9ybS1sYWJlbCgkYWxpZ25tZW50OmZhbHNlLCAkYmFzZS1zdHlsZTp0cnVlKSB7XG5cbiAgLy8gQ29udHJvbCB3aGV0aGVyIG9yIG5vdCB0aGUgYmFzZSBzdHlsZXMgY29tZSB0aHJvdWdoLlxuICBAaWYgJGJhc2Utc3R5bGUge1xuICAgIGZvbnQtc2l6ZTogJGZvcm0tbGFiZWwtZm9udC1zaXplO1xuICAgIGNvbG9yOiAkZm9ybS1sYWJlbC1mb250LWNvbG9yO1xuICAgIGN1cnNvcjogJGZvcm0tbGFiZWwtcG9pbnRlcjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXdlaWdodDogJGZvcm0tbGFiZWwtZm9udC13ZWlnaHQ7XG4gICAgbGluZS1oZWlnaHQ6ICRmb3JtLWxhYmVsLWxpbmUtaGVpZ2h0O1xuICAgIG1hcmdpbi1ib3R0b206ICRmb3JtLWxhYmVsLWJvdHRvbS1tYXJnaW47XG4gIH1cblxuICAvLyBBbGlnbm1lbnQgb3B0aW9uc1xuICBAaWYgJGFsaWdubWVudCA9PSByaWdodCB7XG4gICAgZmxvYXQ6IG5vbmUgIWltcG9ydGFudDtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgfVxuICBAZWxzZSBpZiAkYWxpZ25tZW50ID09IGlubGluZSB7XG4gICAgbWFyZ2luOiAwIDAgJGZvcm0tc3BhY2luZyAwO1xuICAgIHBhZGRpbmc6ICRmb3JtLXNwYWNpbmcgLyAyICsgcmVtLWNhbGMoJGlucHV0LWJvcmRlci13aWR0aCkgMDtcbiAgfVxufVxuXG4vLyBXZSB1c2UgdGhpcyBtaXhpbiB0byBjcmVhdGUgcG9zdGZpeC9wcmVmaXggZm9ybSBMYWJlbHNcbkBtaXhpbiBwcmVmaXgtcG9zdGZpeC1iYXNlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZy10b3A6IDA7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xuICBib3JkZXItc3R5bGU6ICRpbnB1dC1wcmVmaXgtYm9yZGVyLXR5cGU7XG4gIGJvcmRlci13aWR0aDogJGlucHV0LXByZWZpeC1ib3JkZXItc2l6ZTtcbiAgb3ZlcmZsb3c6ICRpbnB1dC1wcmVmaXgtb3ZlcmZsb3c7XG4gIGZvbnQtc2l6ZTogJGZvcm0tbGFiZWwtZm9udC1zaXplO1xuICBoZWlnaHQ6ICgkaW5wdXQtZm9udC1zaXplICsgKCRmb3JtLXNwYWNpbmcgKiAxLjUpIC0gcmVtLWNhbGMoMSkpO1xuICBsaW5lLWhlaWdodDogKCRpbnB1dC1mb250LXNpemUgKyAoJGZvcm0tc3BhY2luZyAqIDEuNSkgLSByZW0tY2FsYygxKSk7XG59XG5cbi8vIEBNSVhJTlxuLy9cbi8vIFdlIHVzZSB0aGlzIG1peGluIHRvIGNyZWF0ZSBwcmVmaXggbGFiZWwgc3R5bGVzXG4vLyAkYmcgLSBEZWZhdWx0OiRpbnB1dC1wcmVmaXgtYmcgfHwgc2NhbGUtY29sb3IoJHdoaXRlLCAkbGlnaHRuZXNzOiAtNSUpICFkZWZhdWx0O1xuLy8gJGlzLWJ1dHRvbiAtIFRvZ2dsZSBwb3NpdGlvbiBzZXR0aW5ncyBpZiBwcmVmaXggaXMgYSBidXR0b24uIERlZmF1bHQ6ZmFsc2Vcbi8vXG5AbWl4aW4gcHJlZml4KCRiZzokaW5wdXQtcHJlZml4LWJnLCAkYm9yZGVyOiRpbnB1dC1wcmVmaXgtYm9yZGVyLWNvbG9yLCAkaXMtYnV0dG9uOmZhbHNlKSB7XG5cbiAgQGlmICRiZyB7XG4gICAgJGJnLWxpZ2h0bmVzczogbGlnaHRuZXNzKCRiZyk7XG4gICAgYmFja2dyb3VuZDogJGJnO1xuICAgIGJvcmRlci0jeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiBub25lO1xuXG4gICAgLy8gQ29udHJvbCB0aGUgZm9udCBjb2xvciBiYXNlZCBvbiBiYWNrZ3JvdW5kIGJyaWdodG5lc3NcbiAgICBAaWYgJGJnLWxpZ2h0bmVzcyA+IDcwJSBvciAkYmcgPT0geWVsbG93IHsgY29sb3I6ICRpbnB1dC1wcmVmaXgtZm9udC1jb2xvcjsgfVxuICAgIEBlbHNlIHsgY29sb3I6ICRpbnB1dC1wcmVmaXgtZm9udC1jb2xvci1hbHQ7IH1cbiAgfVxuXG4gIEBpZiAkYm9yZGVyIHtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXI7XG4gIH1cblxuICBAaWYgJGlzLWJ1dHRvbiB7XG4gICAgcGFkZGluZy0jeyRkZWZhdWx0LWZsb2F0fTogMDtcbiAgICBwYWRkaW5nLSN7JG9wcG9zaXRlLWRpcmVjdGlvbn06IDA7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgfVxuXG59XG5cbi8vIEBNSVhJTlxuLy9cbi8vIFdlIHVzZSB0aGlzIG1peGluIHRvIGNyZWF0ZSBwb3N0Zml4IGxhYmVsIHN0eWxlc1xuLy8gJGJnIC0gRGVmYXVsdDokaW5wdXQtcHJlZml4LWJnIHx8IHNjYWxlLWNvbG9yKCR3aGl0ZSwgJGxpZ2h0bmVzczogLTUlKSAhZGVmYXVsdDtcbi8vICRpcy1idXR0b24gLSBUb2dnbGUgcG9zaXRpb24gc2V0dGluZ3MgaWYgcHJlZml4IGlzIGEgYnV0dG9uLiBEZWZhdWx0OiBmYWxzZVxuQG1peGluIHBvc3RmaXgoJGJnOiRpbnB1dC1wcmVmaXgtYmcsICRib3JkZXI6JGlucHV0LXByZWZpeC1ib3JkZXItY29sb3IsICRpcy1idXR0b246ZmFsc2UpIHtcblxuICBAaWYgJGJnIHtcbiAgICAkYmctbGlnaHRuZXNzOiBsaWdodG5lc3MoJGJnKTtcbiAgICBiYWNrZ3JvdW5kOiAkYmc7XG4gICAgYm9yZGVyLSN7JGRlZmF1bHQtZmxvYXR9OiBub25lO1xuXG4gICAgLy8gQ29udHJvbCB0aGUgZm9udCBjb2xvciBiYXNlZCBvbiBiYWNrZ3JvdW5kIGJyaWdodG5lc3NcbiAgICBAaWYgJGJnLWxpZ2h0bmVzcyA+IDcwJSAgb3IgJGJnID09IHllbGxvdyB7IGNvbG9yOiAkaW5wdXQtcHJlZml4LWZvbnQtY29sb3I7IH1cbiAgICBAZWxzZSB7IGNvbG9yOiAkaW5wdXQtcHJlZml4LWZvbnQtY29sb3ItYWx0OyB9XG4gIH1cblxuICBAaWYgJGJvcmRlciB7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyO1xuICB9XG5cbiAgQGlmICRpcy1idXR0b24ge1xuICAgIHBhZGRpbmctI3skZGVmYXVsdC1mbG9hdH06IDA7XG4gICAgcGFkZGluZy0jeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAwO1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBib3JkZXI6IG5vbmU7XG4gIH1cblxufVxuXG4vLyBXZSB1c2UgdGhpcyBtaXhpbiB0byBzdHlsZSBmaWVsZHNldHNcbkBtaXhpbiBmaWVsZHNldCB7XG4gIGJvcmRlcjogJGZpZWxkc2V0LWJvcmRlci13aWR0aCAkZmllbGRzZXQtYm9yZGVyLXN0eWxlICRmaWVsZHNldC1ib3JkZXItY29sb3I7XG4gIHBhZGRpbmc6ICRmaWVsZHNldC1wYWRkaW5nO1xuICBtYXJnaW46ICRmaWVsZHNldC1tYXJnaW47XG5cbiAgLy8gYW5kIGxlZ2VuZCBzdHlsZXNcbiAgbGVnZW5kIHtcbiAgICBmb250LXdlaWdodDogJGxlZ2VuZC1mb250LXdlaWdodDtcbiAgICBiYWNrZ3JvdW5kOiAkbGVnZW5kLWJnO1xuICAgIHBhZGRpbmc6ICRsZWdlbmQtcGFkZGluZztcbiAgICBtYXJnaW46IDA7XG4gICAgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiByZW0tY2FsYygtMyk7XG4gIH1cbn1cblxuLy8gQE1JWElOXG4vL1xuLy8gV2UgdXNlIHRoaXMgbWl4aW4gdG8gY29udHJvbCBib3JkZXIgYW5kIGJhY2tncm91bmQgY29sb3Igb2YgZXJyb3IgaW5wdXRzXG4vLyAkY29sb3IgLSBEZWZhdWx0OiAkYWxlcnQtY29sb3IgKGZvdW5kIGluIHNldHRpbmdzIGZpbGUpXG5AbWl4aW4gZm9ybS1lcnJvci1jb2xvcigkY29sb3I6JGFsZXJ0LWNvbG9yKSB7XG4gIGJvcmRlci1jb2xvcjogJGNvbG9yO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRjb2xvciwgMC4xKTtcblxuICAvLyBHbyBiYWNrIHRvIG5vcm1hbCBvbiBmb2N1c1xuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kOiAkaW5wdXQtZm9jdXMtYmctY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkaW5wdXQtZm9jdXMtYm9yZGVyLWNvbG9yO1xuICB9XG59XG5cbi8vIEBNSVhJTlxuLy9cbi8vIFdlIHVzZSB0aGlzIHNpbXBsZSBtaXhpbiB0byBzdHlsZSBsYWJlbHMgZm9yIGVycm9yIGlucHV0c1xuLy8gJGNvbG9yIC0gRGVmYXVsdDokYWxlcnQtY29sb3IuIEZvdW5kIGluIHNldHRpbmdzIGZpbGVcbkBtaXhpbiBmb3JtLWxhYmVsLWVycm9yLWNvbG9yKCRjb2xvcjokYWxlcnQtY29sb3IpIHsgY29sb3I6ICRjb2xvcjsgfVxuXG4vLyBATUlYSU5cbi8vXG4vLyBXZSB1c2UgdGhpcyBtaXhpbiB0byBjcmVhdGUgZXJyb3IgbWVzc2FnZSBzdHlsZXNcbi8vICRiZyAtIERlZmF1bHQ6ICRhbGVydC1jb2xvciAoRm91bmQgaW4gc2V0dGluZ3MgZmlsZSlcbkBtaXhpbiBmb3JtLWVycm9yLW1lc3NhZ2UoJGJnOiRpbnB1dC1lcnJvci1tZXNzYWdlLWJnLWNvbG9yKSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAkaW5wdXQtZXJyb3ItbWVzc2FnZS1wYWRkaW5nO1xuICBtYXJnaW4tdG9wOiAkaW5wdXQtZXJyb3ItbWVzc2FnZS10b3A7XG4gIG1hcmdpbi1ib3R0b206ICRmb3JtLXNwYWNpbmc7XG4gIGZvbnQtc2l6ZTogJGlucHV0LWVycm9yLW1lc3NhZ2UtZm9udC1zaXplO1xuICBmb250LXdlaWdodDogJGlucHV0LWVycm9yLW1lc3NhZ2UtZm9udC13ZWlnaHQ7XG4gIGZvbnQtc3R5bGU6ICRpbnB1dC1lcnJvci1tZXNzYWdlLWZvbnQtc3R5bGU7XG5cbiAgLy8gV2UgY2FuIGNvbnRyb2wgdGhlIHRleHQgY29sb3IgYmFzZWQgb24gdGhlIGJyaWdodG5lc3Mgb2YgdGhlIGJhY2tncm91bmQuXG4gICRiZy1saWdodG5lc3M6IGxpZ2h0bmVzcygkYmcpO1xuICBiYWNrZ3JvdW5kOiAkYmc7XG4gIEBpZiAkYmctbGlnaHRuZXNzIDwgNzAlIG9yICRiZyA9PSB5ZWxsb3cgeyBjb2xvcjogJGlucHV0LWVycm9yLW1lc3NhZ2UtZm9udC1jb2xvcjsgfVxuICBAZWxzZSB7IGNvbG9yOiAkaW5wdXQtZXJyb3ItbWVzc2FnZS1mb250LWNvbG9yLWFsdDsgfVxufVxuXG4vLyBXZSB1c2UgdGhpcyBtaXhpbiB0byBzdHlsZSBzZWxlY3QgZWxlbWVudHNcbkBtaXhpbiBmb3JtLXNlbGVjdCAge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmUgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHNlbGVjdC1iZy1jb2xvcjtcblxuICAvLyBIaWRlIHRoZSBkcm9wZG93biBhcnJvdyBzaG93biBpbiBuZXdlciBJRSB2ZXJzaW9uc1xuICAmOjotbXMtZXhwYW5kIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLy8gVGhlIGN1c3RvbSBhcnJvdyBoYXMgc29tZSBmYWtlIGhvcml6b250YWwgcGFkZGluZyBzbyB3ZSBjYW4gYWxpZ24gaXRcbiAgLy8gZnJvbSB0aGUgcmlnaHQgc2lkZSBvZiB0aGUgZWxlbWVudCB3aXRob3V0IHJlbHlpbmcgb24gQ1NTM1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlCNGJXeHVjejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TWpBd01DOXpkbWNpSUhabGNuTnBiMjQ5SWpFdU1TSWdlRDBpTVRKd2VDSWdlVDBpTUhCNElpQjNhV1IwYUQwaU1qUndlQ0lnYUdWcFoyaDBQU0l6Y0hnaUlIWnBaWGRDYjNnOUlqQWdNQ0EySURNaUlHVnVZV0pzWlMxaVlXTnJaM0p2ZFc1a1BTSnVaWGNnTUNBd0lEWWdNeUlnZUcxc09uTndZV05sUFNKd2NtVnpaWEoyWlNJK1BIQnZiSGxuYjI0Z2NHOXBiblJ6UFNJMUxqazVNaXd3SURJdU9Ua3lMRE1nTFRBdU1EQTRMREFnSWk4K1BDOXpkbWMrKTtcblxuICAvLyBXZSBjYW4gc2FmZWx5IHVzZSBsZWZ0bW9zdCBhbmQgcmlnaHRtb3N0IG5vd1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBpZigkdGV4dC1kaXJlY3Rpb24gPT0gJ3J0bCcsIDAlLCAxMDAlKSBjZW50ZXI7XG5cbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYm9yZGVyOiB7XG4gICAgc3R5bGU6ICRpbnB1dC1ib3JkZXItc3R5bGU7XG4gICAgd2lkdGg6ICRpbnB1dC1ib3JkZXItd2lkdGg7XG4gICAgY29sb3I6ICRpbnB1dC1ib3JkZXItY29sb3I7XG4gIH1cbiAgcGFkZGluZzogKCRmb3JtLXNwYWNpbmcgLyAyKTtcbiAgZm9udC1zaXplOiAkaW5wdXQtZm9udC1zaXplO1xuICBmb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHk7XG4gIGNvbG9yOiAkaW5wdXQtZm9udC1jb2xvcjtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgQGluY2x1ZGUgcmFkaXVzKDApO1xuICAmLnJhZGl1cyB7IEBpbmNsdWRlIHJhZGl1cygkZ2xvYmFsLXJhZGl1cyk7IH1cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHNlbGVjdC1ob3Zlci1iZy1jb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRpbnB1dC1mb2N1cy1ib3JkZXItY29sb3I7XG4gIH1cbiAgLy8gRGlzYWJsZWQgU3R5bGVzXG4gICY6ZGlzYWJsZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1kaXNhYmxlZC1iZztcbiAgICBjdXJzb3I6ICRpbnB1dC1kaXNhYmxlZC1jdXJzb3I7XG4gIH1cbn1cblxuLy8gV2UgdXNlIHRoaXMgbWl4aW4gdG8gdHVybiBvbi9vZmYgSFRNTDUgbnVtYmVyIHNwaW5uZXJzXG5AbWl4aW4gaHRtbDVudW1iZXIoJGJyb3dzZXIsICRvbjp0cnVlKSB7XG4gIEBpZiAkb249PWZhbHNlIHtcbiAgICAgIEBpZiAkYnJvd3Nlcj09d2Via2l0IHtcbiAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICB9IEBlbHNlIGlmICRicm93c2VyPT1tb3oge1xuICAgICAgICAtbW96LWFwcGVhcmFuY2U6IHRleHRmaWVsZDtcbiAgICAgIH1cbiAgfVxufVxuXG5AaW5jbHVkZSBleHBvcnRzKFwiZm9ybVwiKSB7XG4gIEBpZiAkaW5jbHVkZS1odG1sLWZvcm0tY2xhc3NlcyB7XG4gICAgLyogU3RhbmRhcmQgRm9ybXMgKi9cbiAgICBmb3JtIHsgbWFyZ2luOiAwIDAgJGZvcm0tc3BhY2luZzsgfVxuXG4gICAgLyogVXNpbmcgZm9ybXMgd2l0aGluIHJvd3MsIHdlIG5lZWQgdG8gc2V0IHNvbWUgZGVmYXVsdHMgKi9cbiAgICBmb3JtIC5yb3cgeyBAaW5jbHVkZSBmb3JtLXJvdy1iYXNlOyB9XG5cbiAgICAvKiBMYWJlbCBTdHlsZXMgKi9cbiAgICBsYWJlbCB7IEBpbmNsdWRlIGZvcm0tbGFiZWw7XG4gICAgICAmLnJpZ2h0IHsgQGluY2x1ZGUgZm9ybS1sYWJlbChyaWdodCxmYWxzZSk7IH1cbiAgICAgICYuaW5saW5lIHsgQGluY2x1ZGUgZm9ybS1sYWJlbChpbmxpbmUsZmFsc2UpOyB9XG4gICAgICAvKiBTdHlsZXMgZm9yIHJlcXVpcmVkIGlucHV0cyAqL1xuICAgICAgc21hbGwge1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogJGZvcm0tbGFiZWwtc21hbGwtdHJhbnNmb3JtO1xuICAgICAgICBjb2xvcjogc2NhbGUtY29sb3IoJGZvcm0tbGFiZWwtZm9udC1jb2xvciwgJGxpZ2h0bmVzczogMTUlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBBdHRhY2ggZWxlbWVudHMgdG8gdGhlIGJlZ2lubmluZyBvciBlbmQgb2YgYW4gaW5wdXQgKi9cbiAgICAucHJlZml4LFxuICAgIC5wb3N0Zml4IHsgQGluY2x1ZGUgcHJlZml4LXBvc3RmaXgtYmFzZTsgfVxuXG4gICAgLyogQWRqdXN0IHBhZGRpbmcsIGFsaWdubWVudCBhbmQgcmFkaXVzIGlmIHByZS9wb3N0IGVsZW1lbnQgaXMgYSBidXR0b24gKi9cbiAgICAucG9zdGZpeC5idXR0b24geyBAaW5jbHVkZSBidXR0b24tc2l6ZShmYWxzZSxmYWxzZSk7IEBpbmNsdWRlIHBvc3RmaXgoZmFsc2UsIGZhbHNlLCB0cnVlKTsgfVxuICAgIC5wcmVmaXguYnV0dG9uIHsgQGluY2x1ZGUgYnV0dG9uLXNpemUoZmFsc2UsZmFsc2UpOyBAaW5jbHVkZSBwcmVmaXgoZmFsc2UsIGZhbHNlLCB0cnVlKTsgfVxuXG4gICAgLnByZWZpeC5idXR0b24ucmFkaXVzIHsgQGluY2x1ZGUgcmFkaXVzKDApOyBAaW5jbHVkZSBzaWRlLXJhZGl1cygkZGVmYXVsdC1mbG9hdCwgJGJ1dHRvbi1yYWRpdXMpOyB9XG4gICAgLnBvc3RmaXguYnV0dG9uLnJhZGl1cyB7IEBpbmNsdWRlIHJhZGl1cygwKTsgQGluY2x1ZGUgc2lkZS1yYWRpdXMoJG9wcG9zaXRlLWRpcmVjdGlvbiwgJGJ1dHRvbi1yYWRpdXMpOyB9XG4gICAgLnByZWZpeC5idXR0b24ucm91bmQgeyBAaW5jbHVkZSByYWRpdXMoMCk7IEBpbmNsdWRlIHNpZGUtcmFkaXVzKCRkZWZhdWx0LWZsb2F0LCAkYnV0dG9uLXJvdW5kKTsgfVxuICAgIC5wb3N0Zml4LmJ1dHRvbi5yb3VuZCB7IEBpbmNsdWRlIHJhZGl1cygwKTsgQGluY2x1ZGUgc2lkZS1yYWRpdXMoJG9wcG9zaXRlLWRpcmVjdGlvbiwgJGJ1dHRvbi1yb3VuZCk7IH1cblxuICAgIC8qIFNlcGFyYXRlIHByZWZpeCBhbmQgcG9zdGZpeCBzdHlsZXMgd2hlbiBvbiBzcGFuIG9yIGxhYmVsIHNvIGJ1dHRvbnMga2VlcCB0aGVpciBvd24gKi9cbiAgICBzcGFuLnByZWZpeCxsYWJlbC5wcmVmaXggeyBAaW5jbHVkZSBwcmVmaXgoKTsgfVxuICAgIHNwYW4ucG9zdGZpeCxsYWJlbC5wb3N0Zml4IHsgQGluY2x1ZGUgcG9zdGZpeCgpOyB9XG5cbiAgICAvKiBXZSB1c2UgdGhpcyB0byBnZXQgYmFzaWMgc3R5bGluZyBvbiBhbGwgYmFzaWMgZm9ybSBlbGVtZW50cyAqL1xuICAgICN7dGV4dC1pbnB1dHMoYWxsLCAnaW5wdXQnKX0ge1xuICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgIEBpbmNsdWRlIGZvcm0tZWxlbWVudDtcbiAgICAgIEBpZiAkaW5wdXQtaW5jbHVkZS1nbG93aW5nLWVmZmVjdCA9PSBmYWxzZSB7XG4gICAgICAgICAgQGluY2x1ZGUgc2luZ2xlLXRyYW5zaXRpb24oYWxsLCAwLjE1cywgbGluZWFyKTtcbiAgICAgIH1cbiAgICAgICYucmFkaXVzIHtcbiAgICAgICAgQGluY2x1ZGUgcmFkaXVzKCRpbnB1dC1ib3JkZXItcmFkaXVzKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmb3JtIHtcbiAgICAgIC5yb3cge1xuICAgICAgICAucHJlZml4LXJhZGl1cy5yb3cuY29sbGFwc2Uge1xuICAgICAgICAgIGlucHV0LFxuICAgICAgICAgIHRleHRhcmVhLFxuICAgICAgICAgIHNlbGVjdCxcbiAgICAgICAgICBidXR0b24geyBAaW5jbHVkZSByYWRpdXMoMCk7IEBpbmNsdWRlIHNpZGUtcmFkaXVzKCRvcHBvc2l0ZS1kaXJlY3Rpb24sICRidXR0b24tcmFkaXVzKTsgfVxuICAgICAgICAgIC5wcmVmaXggeyBAaW5jbHVkZSByYWRpdXMoMCk7IEBpbmNsdWRlIHNpZGUtcmFkaXVzKCRkZWZhdWx0LWZsb2F0LCAkYnV0dG9uLXJhZGl1cyk7IH1cbiAgICAgICAgfVxuICAgICAgICAucG9zdGZpeC1yYWRpdXMucm93LmNvbGxhcHNlIHtcbiAgICAgICAgICBpbnB1dCxcbiAgICAgICAgICB0ZXh0YXJlYSxcbiAgICAgICAgICBzZWxlY3QsXG4gICAgICAgICAgYnV0dG9uIHsgQGluY2x1ZGUgcmFkaXVzKDApOyBAaW5jbHVkZSBzaWRlLXJhZGl1cygkZGVmYXVsdC1mbG9hdCwgJGJ1dHRvbi1yYWRpdXMpOyB9XG4gICAgICAgICAgLnBvc3RmaXggeyBAaW5jbHVkZSByYWRpdXMoMCk7IEBpbmNsdWRlIHNpZGUtcmFkaXVzKCRvcHBvc2l0ZS1kaXJlY3Rpb24sICRidXR0b24tcmFkaXVzKTsgfVxuICAgICAgICB9XG4gICAgICAgIC5wcmVmaXgtcm91bmQucm93LmNvbGxhcHNlIHtcbiAgICAgICAgICBpbnB1dCxcbiAgICAgICAgICB0ZXh0YXJlYSxcbiAgICAgICAgICBzZWxlY3QsXG4gICAgICAgICAgYnV0dG9uIHsgQGluY2x1ZGUgcmFkaXVzKDApOyBAaW5jbHVkZSBzaWRlLXJhZGl1cygkb3Bwb3NpdGUtZGlyZWN0aW9uLCAkYnV0dG9uLXJvdW5kKTsgfVxuICAgICAgICAgIC5wcmVmaXggeyBAaW5jbHVkZSByYWRpdXMoMCk7IEBpbmNsdWRlIHNpZGUtcmFkaXVzKCRkZWZhdWx0LWZsb2F0LCAkYnV0dG9uLXJvdW5kKTsgfVxuICAgICAgICB9XG4gICAgICAgIC5wb3N0Zml4LXJvdW5kLnJvdy5jb2xsYXBzZSB7XG4gICAgICAgICAgaW5wdXQsXG4gICAgICAgICAgdGV4dGFyZWEsXG4gICAgICAgICAgc2VsZWN0LFxuICAgICAgICAgIGJ1dHRvbiB7IEBpbmNsdWRlIHJhZGl1cygwKTsgQGluY2x1ZGUgc2lkZS1yYWRpdXMoJGRlZmF1bHQtZmxvYXQsICRidXR0b24tcm91bmQpOyB9XG4gICAgICAgICAgLnBvc3RmaXggeyBAaW5jbHVkZSByYWRpdXMoMCk7IEBpbmNsdWRlIHNpZGUtcmFkaXVzKCRvcHBvc2l0ZS1kaXJlY3Rpb24sICRidXR0b24tcm91bmQpOyB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgfVxuXG4gICAgLyogUmVzcGVjdCBlbmZvcmNlZCBhbW91bnQgb2Ygcm93cyBmb3IgdGV4dGFyZWEgKi9cbiAgICB0ZXh0YXJlYVtyb3dzXSB7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgfVxuXG5cdC8qIE5vdCBhbGxvdyByZXNpemUgb3V0IG9mIHBhcmVudCAqL1xuXHR0ZXh0YXJlYSB7XG5cdFx0bWF4LXdpZHRoOiAxMDAlO1xuXHR9XG5cbiAgICAvKiBBZGQgaGVpZ2h0IHZhbHVlIGZvciBzZWxlY3QgZWxlbWVudHMgdG8gbWF0Y2ggdGV4dCBpbnB1dCBoZWlnaHQgKi9cbiAgICBzZWxlY3Qge1xuICAgICAgQGluY2x1ZGUgZm9ybS1zZWxlY3Q7XG4gICAgICBoZWlnaHQ6ICgkaW5wdXQtZm9udC1zaXplICsgKCRmb3JtLXNwYWNpbmcgKiAxLjUpIC0gcmVtLWNhbGMoMSkpO1xuICAgICAgJlttdWx0aXBsZV0ge1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyogQWRqdXN0IG1hcmdpbiBmb3IgZm9ybSBlbGVtZW50cyBiZWxvdyAqL1xuICAgIGlucHV0W3R5cGU9XCJmaWxlXCJdLFxuICAgIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSxcbiAgICBpbnB1dFt0eXBlPVwicmFkaW9cIl0sXG4gICAgc2VsZWN0IHtcbiAgICAgIG1hcmdpbjogMCAwICRmb3JtLXNwYWNpbmcgMDtcbiAgICB9XG5cbiAgICBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0gKyBsYWJlbCxcbiAgICBpbnB1dFt0eXBlPVwicmFkaW9cIl0gKyBsYWJlbCB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06ICRmb3JtLXNwYWNpbmcgKiAuNTtcbiAgICAgIG1hcmdpbi0jeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAkZm9ybS1zcGFjaW5nO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgICB9XG5cbiAgICAvKiBOb3JtYWxpemUgZmlsZSBpbnB1dCB3aWR0aCAqL1xuICAgIGlucHV0W3R5cGU9XCJmaWxlXCJdIHtcbiAgICAgIHdpZHRoOjEwMCU7XG4gICAgfVxuXG4gICAgLyogSFRNTDUgTnVtYmVyIHNwaW5uZXJzIHNldHRpbmdzICovXG4gICAgaW5wdXRbdHlwZT1udW1iZXJdIHtcbiAgICAgIEBpbmNsdWRlIGh0bWw1bnVtYmVyKG1veiwgJGlucHV0LW51bWJlci1zcGlubmVycylcbiAgICB9XG4gICAgaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbiAgICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgICAgIEBpbmNsdWRlIGh0bWw1bnVtYmVyKHdlYmtpdCwgJGlucHV0LW51bWJlci1zcGlubmVycyk7XG4gICAgfVxuXG4gICAgLyogV2UgYWRkIGJhc2ljIGZpZWxkc2V0IHN0eWxpbmcgKi9cbiAgICBmaWVsZHNldCB7XG4gICAgICBAaW5jbHVkZSBmaWVsZHNldDtcbiAgICB9XG5cbiAgICAvKiBFcnJvciBIYW5kbGluZyAqL1xuXG4gICAgI3tkYXRhKCdhYmlkZScpfSB7XG4gICAgICAuZXJyb3Igc21hbGwuZXJyb3IsIC5lcnJvciBzcGFuLmVycm9yLCBzcGFuLmVycm9yLCBzbWFsbC5lcnJvciB7XG4gICAgICAgIEBpbmNsdWRlIGZvcm0tZXJyb3ItbWVzc2FnZTtcbiAgICAgIH1cbiAgICAgIHNwYW4uZXJyb3IsIHNtYWxsLmVycm9yIHsgZGlzcGxheTogbm9uZTsgfVxuICAgIH1cblxuICAgIHNwYW4uZXJyb3IsIHNtYWxsLmVycm9yIHtcbiAgICAgIEBpbmNsdWRlIGZvcm0tZXJyb3ItbWVzc2FnZTtcbiAgICB9XG5cbiAgICAuZXJyb3Ige1xuICAgICAgaW5wdXQsXG4gICAgICB0ZXh0YXJlYSxcbiAgICAgIHNlbGVjdCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICB9XG5cbiAgICAgIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSxcbiAgICAgIGlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRmb3JtLXNwYWNpbmdcbiAgICAgIH1cblxuICAgICAgbGFiZWwsXG4gICAgICBsYWJlbC5lcnJvciB7XG4gICAgICAgIEBpbmNsdWRlIGZvcm0tbGFiZWwtZXJyb3ItY29sb3I7XG4gICAgICB9XG5cbiAgICAgIHNtYWxsLmVycm9yIHtcbiAgICAgICAgQGluY2x1ZGUgZm9ybS1lcnJvci1tZXNzYWdlO1xuICAgICAgfVxuXG4gICAgICA+IGxhYmVsIHtcbiAgICAgICAgPiBzbWFsbCB7XG4gICAgICAgICAgY29sb3I6IHNjYWxlLWNvbG9yKCRmb3JtLWxhYmVsLWZvbnQtY29sb3IsICRsaWdodG5lc3M6IDE1JSk7XG4gICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogJGZvcm0tbGFiZWwtc21hbGwtdHJhbnNmb3JtO1xuICAgICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgICAgICBmb250LXNpemU6IDYwJTtcbiAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHNwYW4uZXJyb3ItbWVzc2FnZSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlucHV0LmVycm9yLFxuICAgIHRleHRhcmVhLmVycm9yLFxuICAgIHNlbGVjdC5lcnJvciB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgICBsYWJlbC5lcnJvciB7IEBpbmNsdWRlIGZvcm0tbGFiZWwtZXJyb3ItY29sb3I7IH1cbiAgfVxufVxuIiwiLy8gRG9uJ3Qgb3V0bGluZSBtYWluIGNvbnRlbnQgd2hlbiBza2lwcGluZyBuYXZpZ2F0aW9uXG4jbWFpbi1jb250ZW50OmZvY3VzIHtcblx0b3V0bGluZTogbm9uZTtcbn1cblxuLy8gU2NyZWVuIHJlYWRlciBvbmx5XG4uc3Itb25seSB7XG4gICAgQGluY2x1ZGUgYWNjZXNzaWJsZS1oaWRlKCk7XG59IiwiLnByb2R1Y3RfX21haW4taW1hZ2VzIHtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgYm94LXNoYWRvdzogaHNsYSgwLCAwJSwgMCUsIDAuMjUpIDAgMCAxcHgsIGhzbGEoMCwgMCUsIDAlLCAwLjIpIDAgMCAxMHB4IDBweDtcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICBwYWRkaW5nOiAxMHB4O1xufVxuXG4ucHJvZHVjdF9faW1hZ2VnYWxsZXJ5X193cmFwcGVyIHtcbiAgICBwYWRkaW5nOiAwIDEuNXJlbTtcbn1cblxuLnByb2R1Y3RfX2ltYWdlZ2FsbGVyeSB7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGJveC1zaGFkb3c6IGhzbGEoMCwgMCUsIDAlLCAwLjI1KSAwIDAgMXB4LCBoc2xhKDAsIDAlLCAwJSwgMC4yKSAwIDAgMTBweCAwcHg7XG4gICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgcGFkZGluZzogMTBweDtcbiAgICBcbiAgICAvL1NwZWNpZmljaXR5IHdhciA6KFxuICAgIGxpLnByb2R1Y3RfX2ltYWdlZ2FsbGVyeV9faW1hZ2V3cmFwIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgIFxuICAgICAgICAudGgge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgICAgICAgICAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAuYWN0aXZlLCAudGg6aG92ZXIge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkcHJpbWFyeS1jb2xvciwgd2hpdGUpO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgcmdiYShhY2Nlc3NpYmxlLWx1bWluYW5jZSgkcHJpbWFyeS1jb2xvciwgd2hpdGUpLCAwLjEpIDAgMCAxcHg7XG4gICAgICAgIH1cbiAgICB9XG59IiwiJHBhZ2VyLWNpcmNsZS13aWR0aDogMC43NXJlbTtcbiRwYWdlci1jaXJjbGUtb2Zmc2V0OiAwLjRyZW07XG4uYngtcGFnZXItbGluayB7XG5cdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXHQmOmFmdGVyIHtcblx0XHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblx0XHRjb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0b3BhY2l0eTogMTtcblx0XHRsaW5lLWhlaWdodDogMS4ycmVtO1xuXHRcdGJvcmRlci1yYWRpdXM6IDUwJTtcblx0XHRib3JkZXItd2lkdGg6IDAuMzVyZW07XG5cdFx0Ym9yZGVyOiAwcmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuXHRcdGJvcmRlci1jb2xvcjogaHNsYSgwLCAwJSwgMTAwJSwgMCk7XG5cdFx0QGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgMTUwbXMgZWFzZSk7XG5cdFx0bGVmdDogJHBhZ2VyLWNpcmNsZS13aWR0aCArICRwYWdlci1jaXJjbGUtb2Zmc2V0O1xuXHRcdHJpZ2h0OiAkcGFnZXItY2lyY2xlLXdpZHRoICsgJHBhZ2VyLWNpcmNsZS1vZmZzZXQ7XG5cdFx0dG9wOiAkcGFnZXItY2lyY2xlLXdpZHRoICsgJHBhZ2VyLWNpcmNsZS1vZmZzZXQ7XG5cdFx0Ym90dG9tOiAkcGFnZXItY2lyY2xlLXdpZHRoICsgJHBhZ2VyLWNpcmNsZS1vZmZzZXQ7XG5cdFx0d2lkdGg6IGF1dG87XG5cdFx0aGVpZ2h0OiBhdXRvO1xuXHRcdGNvbG9yOiB0cmFuc3BhcmVudDtcblx0XHRiYWNrZ3JvdW5kOiB3aGl0ZTtcblx0XHRiYWNrZ3JvdW5kLWNsaXA6IGNvbnRlbnQtYm94O1xuXHRcdGJveC1zaGFkb3c6IDAgMCAwIDJweCB3aGl0ZTtcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cdH1cbn1cblxuLmJ4LXBhZ2VyLWxpbmsuYWN0aXZlOmFmdGVyLCAuYngtcGFnZXItbGluazpmb2N1czphZnRlciwuYngtcGFnZXItbGluazpob3ZlcjphZnRlciB7XG4gICAgZm9udC1zaXplOiAwLjhyZW07XG4gICAgY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIG9wYWNpdHk6IDE7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMnB4IHdoaXRlO1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCB3aGl0ZTtcbiAgICBib3JkZXItd2lkdGg6IDAuMzVyZW07XG59XG5cbi5zbGlkZXJfX3dyYXBwZXIge1xuXHRtYXJnaW4tYm90dG9tOiAwO1xuXHRtYXJnaW4tbGVmdDogMDtcblx0bWFyZ2luLXJpZ2h0OiAwO1xuXG5cdC5ieC1wYWdlci5ieC1kZWZhdWx0LXBhZ2VyIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0bGVmdDogMHB4O1xuXHRcdHJpZ2h0OiAwcHg7XG5cdFx0Ym90dG9tOiAwcHg7XG5cdFx0ei1pbmRleDogNjA7XG5cdH1cblxuXHQuYngtY29udHJvbHMtZGlyZWN0aW9uIGEge1xuXHRcdGJvcmRlci1yYWRpdXM6IDA7XG5cdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0XHRvcGFjaXR5OiAxO1xuXHRcdGJvcmRlci1yYWRpdXM6IDUwJTtcblx0XHR0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDIwMG1zIGVhc2UsIHRyYW5zZm9ybSAxNTBtcyBlYXNlLCAtd2Via2l0LWZpbHRlciAxNTBtcyBlYXNlOyAvL0BUT0RPIGtlZXAgdGhpcyB1bnRpbCAtd2Via2l0LWZpbHRlciBpcyBzdXBwb3J0ZWRcblx0XHRAaW5jbHVkZSB0cmFuc2l0aW9uLXByb3BlcnR5KGJhY2tncm91bmQsIHRyYW5zZm9ybSwgZmlsdGVyKTsgLy9AVE9ETyBib3VyYm9uIGRvbid0IHByb3Blcmx5IHByZWZpeCAnZmlsdGVyJ1xuXHRcdEBpbmNsdWRlIHRyYW5zaXRpb24tZHVyYXRpb24oMjAwbXMsIDE1MG1zLCAxNTBtcyk7XG5cdFx0QGluY2x1ZGUgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24oZWFzZSwgZWFzZSwgZWFzZSk7XG5cdFx0YmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI1KTtcblx0XHR0ZXh0LXNoYWRvdzogd2hpdGUgMCAwIDFweDtcblxuXHRcdC8qLm1peC1ibGVuZC1tb2RlICYge1xuXHRcdFx0dGV4dC1zaGFkb3c6IG5vbmU7XG5cdFx0XHRtaXgtYmxlbmQtbW9kZTogZGlmZmVyZW5jZTtcblxuXHRcdFx0dHJhbnNmb3JtOiBzY2FsZSgyKTtcblx0XHR9Ki9cblxuXHRcdCY6aG92ZXIsICY6Zm9jdXMge1xuXHRcdFx0YmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpO1xuXHRcdH1cblxuXHRcdCYuYngtcHJldiB7XG5cdFx0XHRsZWZ0OiAxMHB4O1xuXHRcdH1cblx0XHQmLmJ4LW5leHQge1xuXHRcdFx0cmlnaHQ6IDEwcHg7XG5cdFx0fVxuXG5cdFx0JjphZnRlciB7XG5cdFx0XHRjb2xvcjogYmxhY2s7XG5cdFx0fVxuXHR9XG59IiwiJHRhYnMtaGVpZ2h0OiAgJHRvdWNoLWZyaWVuZGx5LXNpemUgIWRlZmF1bHQ7XG4kdGFicy1wYWRkaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4udGFicyB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR0YWJzLWFjdGl2ZS1iZy1jb2xvcjtcbn1cblxuLnJlc3AtdGFiLWl0ZW0sXG4ucmVzcC1hY2NvcmRpb24ge1xuICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkdGFicy1mb250LWNvbG9yLCAkdGFicy1iZy1jb2xvcik7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYnMtYmctY29sb3I7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgMjAwbXMgZWFzZSk7XG4gICAgYm94LXNoYWRvdzogMCAtMXB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjAxNSkgaW5zZXQsXG4gICAgICAgICAgICAgICAgMCAtMnB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjAxNSkgaW5zZXQsXG4gICAgICAgICAgICAgICAgMCAtM3B4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjAxNSkgaW5zZXQsXG4gICAgICAgICAgICAgICAgMCAtNHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjAxNSkgaW5zZXQ7XG4gICAgYm9yZGVyLXRvcDogNHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIFxuICAgICY6YWZ0ZXIge1xuICAgICAgICBAaW5jbHVkZSBpY29uKCRpY29uLXZhci1rZXlib2FyZC1hcnJvdy1kb3duKTtcbiAgICAgICAgQGV4dGVuZCAuaWNvbi1sYXJnZTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAuNXJlbTtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbih0cmFuc2Zvcm0gNDAwbXMgZWFzZSk7XG4gICAgfVxuICAgIFxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oJHRhYnMtYmctY29sb3IsIDUlKTtcbiAgICB9XG59XG5cbi5yZXNwLXRhYnMtY29udGFpbmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFicy1jb250YWluZXItYmc7XG4gICAgYm94LXNoYWRvdzogMCAxcHggNnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwcHg7XG4gICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCR0YWJzLWZvbnQtY29sb3IsICR0YWJzLWNvbnRhaW5lci1iZyk7XG59XG5cbi5yZXNwLXRhYi1hY3RpdmUsXG4ucmVzcC1hY2NvcmRpb24ucmVzcC10YWItYWN0aXZlIHtcbiAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJHRhYnMtZm9udC1jb2xvciwgJHRhYnMtY29udGFpbmVyLWJnKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFicy1jb250YWluZXItYmc7XG4gICAgYm9yZGVyLXRvcDogNHB4IHNvbGlkIGFjY2Vzc2libGUtbHVtaW5hbmNlKCR0YWJzLWFjdGl2ZS1iZy1jb2xvciwgJGNvbnRlbnQtYmcpO1xuICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDNweDtcbiAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogM3B4O1xuICAgIGJveC1zaGFkb3c6IDAgLTNweCA2cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNSk7XG4gICAgXG4gICAgLy8gUm90YXRlIGFycm93IHdoZW4gYWN0aXZhdGVkXG4gICAgJjphZnRlciB7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybShyb3RhdGV4KDE4MGRlZykpO1xuICAgIH1cbiAgICBcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJHRhYnMtYWN0aXZlLWZvbnQtY29sb3IsICR0YWJzLWNvbnRhaW5lci1iZyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJzLWNvbnRhaW5lci1iZztcbiAgICB9XG59XG5cbkBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XG4gICAgLmpzLXRhYnMge1xuICAgICAgICBib3JkZXItdG9wLXdpZHRoOiAwcHg7XG4gICAgfVxufVxuXG5AbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgLnJlc3AtdGFiLWNvbnRlbnQtYWN0aXZlIHtcbiAgICAgICAgYm9yZGVyLXRvcC13aWR0aDogMHB4O1xuICAgIH1cbn1cblxuQG1lZGlhICN7JGxhcmdlLXVwfSB7XG4gICAgLmpzLXRhYnMge1xuICAgICAgICBib3JkZXItdG9wLXdpZHRoOiAwcHg7XG4gICAgfVxufSIsIiRzZWFyY2gtYm94X19jb250YWluZXItaGVpZ2h0OiByZW0tY2FsYygzMHB4KTtcbiRzZWFyY2gtYm94X19jb250YWluZXItcGFkZGluZzogKCgkdG9wYmFyLWhlaWdodCAtICRzZWFyY2gtYm94X19jb250YWluZXItaGVpZ2h0KSAvIDIpO1xuJHNlYXJjaC1ib3hfX2NvbnRhaW5lci10cmFuc2l0aW9uLWR1cmF0aW9uOiA2MDBtcztcbiRzZWFyY2gtYm94X19jb250YWluZXItdHJhbnNpdGlvbi1lYXNlOiBjdWJpYy1iZXppZXIoMC4xOTAsIDEuMDAwLCAwLjIyMCwgMS4wMDApO1xuJHNlYXJjaC1ib3hfY29udGFpbmVyLXBsYWNlaG9sZGVyLWNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZShpZihsdW1hKCR0b3BiYXItYmctY29sb3IpIDwgNTAsICMwMDAsICNGRkYpLCAkdG9wYmFyLWJnKTtcbiR0b3BiYXItaG92ZXItY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKCRob3Zlci1jb2xvciwgJHRvcGJhci1iZyk7XG5cbkBpbmNsdWRlIGtleWZyYW1lcyhtZW51LXJvdGF0ZS10b3ApIHtcbiAgICAwJSAgIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHJvdGF0ZVgoLTQ1ZGVnKSk7XG4gICAgfVxuICAgIDEwMCUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0ocm90YXRlWCgwZGVnKSk7XG4gICAgfVxufVxuQGluY2x1ZGUga2V5ZnJhbWVzKG1lbnUtcm90YXRlLWxlZnQpIHtcbiAgICAwJSAgIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHJvdGF0ZVkoOTBkZWcpKTtcbiAgICB9XG4gICAgMTAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybShyb3RhdGVZKDBkZWcpKTtcbiAgICB9XG59XG5cbi5oZWFkZXItc2hhZG93IHtcbiAgICBib3gtc2hhZG93OiAwcHggMHB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNSk7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4udG9wLWJhciB7XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgZGlzcGxheTogZmxleDtcbiAgLW1zLWZsZXgtbGluZS1wYWNrOiBzdHJldGNoO1xuICAgICBhbGlnbi1jb250ZW50OiBzdHJldGNoO1xuICAgIHBhZGRpbmctbGVmdDogLjkzNzVyZW07XG4gICAgcGFkZGluZy1yaWdodDogLjkzNzVyZW07XG59XG4jbWFpbi1tZW51IHtcbiAgLXdlYmtpdC1ib3gtZmxleDogMTtcbiAgLW1zLWZsZXg6IDE7XG4gIGZsZXg6IDE7XG4gIC1tcy1mbGV4LXdyYXA6IHdyYXA7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG59XG5cbiNuYXYtb3Blbi1idG4yIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuLm92ZXJmbG93aW5nIHtcbiAgICAjbWFpbi1tZW51IHtcbiAgICAgICAgZGlzcGxheTogbm9uZSFpbXBvcnRhbnQ7XG4gICAgfVxuICAgICNuYXYtb3Blbi1idG4yIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxufVxuXG5AbWVkaWEgI3skc21hbGwtb25seX0ge1xuICAgIC50b3AtYmFyIHtcbiAgICAgICAgLnRpdGxlLWFyZWEge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiA1MCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICBoMSB7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuNmVtIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG4gICAgfVxufVxuXG4udG9wLWJhci1zZWN0aW9uIHtcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICBkaXNwbGF5OiBmbGV4O1xuICAtd2Via2l0LWJveC1hbGlnbjogc3RyZXRjaDtcbiAgICAgIC1tcy1mbGV4LWFsaWduOiBzdHJldGNoO1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAtd2Via2l0LWJveC1wYWNrOiBqdXN0aWZ5O1xuICAgICAgLW1zLWZsZXgtcGFjazoganVzdGlmeTtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICAuc2VhcmNoLWJveF9fY29udGFpbmVyIHtcblxuICAgICAgICBtaW4td2lkdGg6IDBweDtcbiAgICAgICAgaGVpZ2h0OiAkdG9wYmFyLWhlaWdodDtcbiAgICAgICAgcGFkZGluZzogMHB4O1xuICAgICAgICBpbnB1dC5zZWFyY2gtYm94X19pbnB1dCB7XG5cbiAgICAgICAgICAgIC8vT3ZlcmxhcCBmaXhcbiAgICAgICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4IHJnYmEoJHRvcGJhci1ob3Zlci1jb2xvciwgMCk7XG4gICAgICAgICAgICB0b3A6IDBweDtcbiAgICAgICAgICAgIG1hcmdpbjogJHNlYXJjaC1ib3hfX2NvbnRhaW5lci1wYWRkaW5nIHJlbS1jYWxjKDIpO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2VhcmNoLWJveF9fY29udGFpbmVyLWhlaWdodDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICAgICAgICAgIHdpZHRoOiAxLjNyZW07XG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAkc2VhcmNoLWJveF9fY29udGFpbmVyLXRyYW5zaXRpb24tZHVyYXRpb24gJHNlYXJjaC1ib3hfX2NvbnRhaW5lci10cmFuc2l0aW9uLWVhc2UpO1xuXG4gICAgICAgICAgICAmOm5vdCg6Zm9jdXMpOm5vdCguYWN0aXZlKSB7XG4gICAgICAgICAgICAgICAgY29sb3I6IGNoYW5nZS1jb2xvcigkc2VhcmNoLWJveF9jb250YWluZXItcGxhY2Vob2xkZXItY29sb3IsICRhbHBoYTogMCk7XG4gICAgICAgICAgICAgICAgJjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7IGNvbG9yOmNoYW5nZS1jb2xvcigkc2VhcmNoLWJveF9jb250YWluZXItcGxhY2Vob2xkZXItY29sb3IsICRhbHBoYTogMCk7IC13ZWJraXQtdHJhbnNpdGlvbjogY29sb3IgJHNlYXJjaC1ib3hfX2NvbnRhaW5lci10cmFuc2l0aW9uLWR1cmF0aW9uICRzZWFyY2gtYm94X19jb250YWluZXItdHJhbnNpdGlvbi1lYXNlOyB9XG4gICAgICAgICAgICAgICAgJjotbW96LXBsYWNlaG9sZGVyIHsgY29sb3I6Y2hhbmdlLWNvbG9yKCRzZWFyY2gtYm94X2NvbnRhaW5lci1wbGFjZWhvbGRlci1jb2xvciwgJGFscGhhOiAwKTsgLW1vei10cmFuc2l0aW9uOiBjb2xvciAkc2VhcmNoLWJveF9fY29udGFpbmVyLXRyYW5zaXRpb24tZHVyYXRpb24gJHNlYXJjaC1ib3hfX2NvbnRhaW5lci10cmFuc2l0aW9uLWVhc2U7IH0gLyogRkYgNC0xOCAqL1xuICAgICAgICAgICAgICAgICY6Oi1tb3otcGxhY2Vob2xkZXIgeyBjb2xvcjpjaGFuZ2UtY29sb3IoJHNlYXJjaC1ib3hfY29udGFpbmVyLXBsYWNlaG9sZGVyLWNvbG9yLCAkYWxwaGE6IDApOyAtbW96LXRyYW5zaXRpb246IGNvbG9yICRzZWFyY2gtYm94X19jb250YWluZXItdHJhbnNpdGlvbi1kdXJhdGlvbiAkc2VhcmNoLWJveF9fY29udGFpbmVyLXRyYW5zaXRpb24tZWFzZTsgfSAvKiBGRiAxOSsgKi9cbiAgICAgICAgICAgICAgICAmOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7IGNvbG9yOmNoYW5nZS1jb2xvcigkc2VhcmNoLWJveF9jb250YWluZXItcGxhY2Vob2xkZXItY29sb3IsICRhbHBoYTogMCk7IC1tcy10cmFuc2l0aW9uOiBjb2xvciAkc2VhcmNoLWJveF9fY29udGFpbmVyLXRyYW5zaXRpb24tZHVyYXRpb24gJHNlYXJjaC1ib3hfX2NvbnRhaW5lci10cmFuc2l0aW9uLWVhc2U7IH0gLyogSUUgMTArICovXG4gICAgICAgICAgICAgICAgJjppbnB1dC1wbGFjZWhvbGRlciB7IGNvbG9yOmNoYW5nZS1jb2xvcigkc2VhcmNoLWJveF9jb250YWluZXItcGxhY2Vob2xkZXItY29sb3IsICRhbHBoYTogMCk7IHRyYW5zaXRpb246IGNvbG9yICRzZWFyY2gtYm94X19jb250YWluZXItdHJhbnNpdGlvbi1kdXJhdGlvbiAkc2VhcmNoLWJveF9fY29udGFpbmVyLXRyYW5zaXRpb24tZWFzZTsgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZvY3VzLCAmLmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4IHJnYmEoJHRvcGJhci1ob3Zlci1jb2xvciwgMC43NSkhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHdpZHRoOiByZW0tY2FsYygzMDApO1xuXG4gICAgICAgICAgICAgICAgJjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7IGNvbG9yOiBjaGFuZ2UtY29sb3IoJHNlYXJjaC1ib3hfY29udGFpbmVyLXBsYWNlaG9sZGVyLWNvbG9yLCAkYWxwaGE6IDAuNzUpOyAtd2Via2l0LXRyYW5zaXRpb246IGNvbG9yICRzZWFyY2gtYm94X19jb250YWluZXItdHJhbnNpdGlvbi1kdXJhdGlvbiAkc2VhcmNoLWJveF9fY29udGFpbmVyLXRyYW5zaXRpb24tZWFzZTsgfVxuICAgICAgICAgICAgICAgICY6LW1vei1wbGFjZWhvbGRlciB7IGNvbG9yOiBjaGFuZ2UtY29sb3IoJHNlYXJjaC1ib3hfY29udGFpbmVyLXBsYWNlaG9sZGVyLWNvbG9yLCAkYWxwaGE6IDAuNzUpOyAtbW96LXRyYW5zaXRpb246IGNvbG9yICRzZWFyY2gtYm94X19jb250YWluZXItdHJhbnNpdGlvbi1kdXJhdGlvbiAkc2VhcmNoLWJveF9fY29udGFpbmVyLXRyYW5zaXRpb24tZWFzZTsgfSAvKiBGRiA0LTE4ICovXG4gICAgICAgICAgICAgICAgJjo6LW1vei1wbGFjZWhvbGRlciB7IGNvbG9yOiBjaGFuZ2UtY29sb3IoJHNlYXJjaC1ib3hfY29udGFpbmVyLXBsYWNlaG9sZGVyLWNvbG9yLCAkYWxwaGE6IDAuNzUpOyAtbW96LXRyYW5zaXRpb246IGNvbG9yICRzZWFyY2gtYm94X19jb250YWluZXItdHJhbnNpdGlvbi1kdXJhdGlvbiAkc2VhcmNoLWJveF9fY29udGFpbmVyLXRyYW5zaXRpb24tZWFzZTsgfSAvKiBGRiAxOSsgKi9cbiAgICAgICAgICAgICAgICAmOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7IGNvbG9yOiBjaGFuZ2UtY29sb3IoJHNlYXJjaC1ib3hfY29udGFpbmVyLXBsYWNlaG9sZGVyLWNvbG9yLCAkYWxwaGE6IDAuNzUpOyAtbXMtdHJhbnNpdGlvbjogY29sb3IgJHNlYXJjaC1ib3hfX2NvbnRhaW5lci10cmFuc2l0aW9uLWR1cmF0aW9uICRzZWFyY2gtYm94X19jb250YWluZXItdHJhbnNpdGlvbi1lYXNlOyB9IC8qIElFIDEwKyAqL1xuICAgICAgICAgICAgICAgICY6aW5wdXQtcGxhY2Vob2xkZXIgeyBjb2xvcjogY2hhbmdlLWNvbG9yKCRzZWFyY2gtYm94X2NvbnRhaW5lci1wbGFjZWhvbGRlci1jb2xvciwgJGFscGhhOiAwLjc1KTsgdHJhbnNpdGlvbjogY29sb3IgJHNlYXJjaC1ib3hfX2NvbnRhaW5lci10cmFuc2l0aW9uLWR1cmF0aW9uICRzZWFyY2gtYm94X19jb250YWluZXItdHJhbnNpdGlvbi1lYXNlOyB9XG5cbiAgICAgICAgICAgICAgICAmIH4gbGFiZWwge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKHdpZHRoICRzZWFyY2gtYm94X19jb250YWluZXItdHJhbnNpdGlvbi1kdXJhdGlvbiAkc2VhcmNoLWJveF9fY29udGFpbmVyLXRyYW5zaXRpb24tZWFzZSk7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuXG4gICAgICAgICAgICAgICAgICAgIC5pY29uLXNlYXJjaCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGNvbG9yICRzZWFyY2gtYm94X19jb250YWluZXItdHJhbnNpdGlvbi1kdXJhdGlvbiAkc2VhcmNoLWJveF9fY29udGFpbmVyLXRyYW5zaXRpb24tZWFzZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNlYXJjaC1ib3hfY29udGFpbmVyLXBsYWNlaG9sZGVyLWNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICYgfiAuc2VhcmNoLWJveF9fc3VibWl0IHtcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogJHNlYXJjaC1ib3hfX2NvbnRhaW5lci1wYWRkaW5nO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAkc2VhcmNoLWJveF9fY29udGFpbmVyLWhlaWdodDtcblxuICAgICAgICAgICAgICAgICAgICAmIH4gbGFiZWwge1xuICAgICAgICAgICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3A6ICRzZWFyY2gtYm94X19jb250YWluZXItcGFkZGluZztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3R0b206ICRzZWFyY2gtYm94X19jb250YWluZXItcGFkZGluZztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgLmljb24tc2VhcmNoIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHRvcGJhci1ob3Zlci1jb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICY6aG92ZXIgfiBsYWJlbCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAuaWNvbi1zZWFyY2gge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiB3aGl0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmIH4gbGFiZWwge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDBweDtcbiAgICAgICAgICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgICAgICAgICBsZWZ0OiByZW0tY2FsYygxNSk7XG4gICAgICAgICAgICAgICAgbGVmdDogMHB4O1xuICAgICAgICAgICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDJyZW0gKyByZW0tY2FsYygxNSk7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICR0b3BiYXItaGVpZ2h0O1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgM3B4IDAgcmdiYSgkaG92ZXItY29sb3IsIDApO1xuICAgICAgICAgICAgICAgIGhlaWdodDogJHRvcGJhci1oZWlnaHQ7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihib3gtc2hhZG93IDAuM3MsIHdpZHRoICRzZWFyY2gtYm94X19jb250YWluZXItdHJhbnNpdGlvbi1kdXJhdGlvbiAkc2VhcmNoLWJveF9fY29udGFpbmVyLXRyYW5zaXRpb24tZWFzZSk7XG5cbiAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnLic7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkdG9wYmFyLWhvdmVyLWNvbG9yO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAkc2VhcmNoLWJveF9fY29udGFpbmVyLXBhZGRpbmc7XG4gICAgICAgICAgICAgICAgICAgIHJpZ2h0OiA1MCU7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLTFyZW07XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybShzY2FsZSgwKSk7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLmljb24tc2VhcmNoIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihjb2xvciAkc2VhcmNoLWJveF9fY29udGFpbmVyLXRyYW5zaXRpb24tZHVyYXRpb24gJHNlYXJjaC1ib3hfX2NvbnRhaW5lci10cmFuc2l0aW9uLWVhc2UpO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJHRvcGJhci1saW5rLWNvbG9yLCAkdG9wYmFyLWJnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmOm5vdCg6Zm9jdXMpOm5vdCguYWN0aXZlKSB+IGxhYmVsOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAvL2JhY2tncm91bmQ6IGFkanVzdC1jb2xvcigkdG9wYmFyLWJnLWNvbG9yLCAkbGlnaHRuZXNzOiAtNSUpO1xuICAgICAgICAgICAgICAgIC8vYm94LXNoYWRvdzogaW5zZXQgMCAzcHggMCAkaG92ZXItY29sb3I7XG5cbiAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHNjYWxlKDEpKTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAuaWNvbi1zZWFyY2gge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2Uod2hpdGUsIGFjY2Vzc2libGUtbHVtaW5hbmNlKCRob3Zlci1jb2xvciwgJHRvcGJhci1iZykpO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgICAgIHotaW5kZXg6IDEwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICYgfiAuc2VhcmNoLWJveF9fc3VibWl0IHtcbiAgICAgICAgICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogJHNlYXJjaC1ib3hfX2NvbnRhaW5lci1wYWRkaW5nO1xuICAgICAgICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgICAgICAgICB3aWR0aDogJHNlYXJjaC1ib3hfX2NvbnRhaW5lci1oZWlnaHQ7XG5cbiAgICAgICAgICAgICAgICAmIH4gbGFiZWw6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgICAgICAgICB0b3A6ICRzZWFyY2gtYm94X19jb250YWluZXItcGFkZGluZztcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAkc2VhcmNoLWJveF9fY29udGFpbmVyLXBhZGRpbmc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAvL2JhY2tncm91bmQ6IGFkanVzdC1jb2xvcigkdG9wYmFyLWJnLWNvbG9yLCAkbGlnaHRuZXNzOiAtNSUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5qcy1wcm9kdWN0LXNlYXJjaC1yZXN1bHRzIHtcbiAgICAgICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHRvcGJhci1ob3Zlci1jb2xvcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIH1cbiAgICAucHJvZHVjdC1zZWFyY2hfX2VsZW1lbnQge1xuICAgICAgICBmbG9hdDogbm9uZTtcblxuICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAycHg7XG4gICAgICAgIH1cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAycHg7XG4gICAgICAgIH1cblxuXG4gICAgICAgIC50aGVtZWQtbmF2IHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2VhcmNoLWJveF9fY29udGFpbmVyLWhlaWdodCoxLjUgIWltcG9ydGFudDtcblxuICAgICAgICAgICAgJi5hY3RpdmUsICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICR0b3BiYXItaG92ZXItY29sb3IhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiBpZihsdW1hKCR0b3BiYXItaG92ZXItY29sb3IpIDwgNTAsIHdoaXRlLCBibGFjaykgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGxpIHtcbiAgICAgICAgLy9iYWNrZ3JvdW5kOiAkdG9wYmFyLWJnLWNvbG9yIWltcG9ydGFudDtcbiAgICAgICAgLy9jb2xvcjogJHRvcGJhci1saW5rLWNvbG9yIWltcG9ydGFudDtcblxuICAgICAgICBhIHtcbiAgICAgICAgICAgIGNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkdG9wYmFyLWxpbmstY29sb3IsICR0b3BiYXItYmcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1wcm9wZXJ0eShiYWNrZ3JvdW5kLCBjb2xvciwgYm94LXNoYWRvdyk7XG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLWR1cmF0aW9uKDAuM3MpO1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24oY3ViaWMtYmV6aWVyKDAuNywwLDAuMywxKSk7XG4gICAgICAgICAgICAvL2JhY2tncm91bmQ6ICR0b3BiYXItYmctY29sb3IhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxuICAgIC51dGlsLW5hdl9fbGlzdCB7XG4gICAgICAtd2Via2l0LWJveC1mbGV4OiAwO1xuICAgICAgLW1zLWZsZXg6IG5vbmU7XG4gICAgICBmbGV4OiBub25lO1xuICAgICAgLXdlYmtpdC1ib3gtb3JkaW5hbC1ncm91cDogMjtcbiAgICAgIC1tcy1mbGV4LW9yZGVyOiAxO1xuICAgICAgICAgICAgICBvcmRlcjogMTtcblxuICAgICAgICAudXRpbC1uYXZfX2l0ZW0ge1xuICAgICAgICAgICAgPiBhLCA+IGZvcm0gPiBhIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnLic7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkdG9wYmFyLWhvdmVyLWNvbG9yO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAkc2VhcmNoLWJveF9fY29udGFpbmVyLXBhZGRpbmc7XG4gICAgICAgICAgICAgICAgICAgIHJpZ2h0OiA1MCU7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLTFyZW07XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybShzY2FsZSgwKSk7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gICAgICAgICAgICAgICAgICAgIHotaW5kZXg6MDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyICwmLmhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICAgICAgLy9iYWNrZ3JvdW5kOiAkdG9wYmFyLWxpbmstYmctY29sb3ItaG92ZXIhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICAvL2NvbG9yOiAkdG9wYmFyLWxpbmstY29sb3ItaG92ZXIhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICAuaWNvbi1sYW5ndWFnZSwgLmljb24tYXR0YWNoLW1vbmV5LCAuaWNvbi1jbG9zZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiAxMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiB3aGl0ZSFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuXHRcdFx0XHQgICAgLy9ib3gtc2hhZG93OiBpbnNldCAwIDNweCAwICRob3Zlci1jb2xvcjtcblxuICAgICAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybShzY2FsZSgxKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZSFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICNsYW5ndWFnZS1jbG9zZSwgI2N1cnJlbmN5LWNsb3NlIHtcbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLmxhbmd1YWdlLXNlbGVjdCwgLmN1cnJlbmN5LXNlbGVjdCB7XG4gICAgICAgICAgICBzcGFuLCAuY3VycmVuY3ktbmFtZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZSFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAuY3VycmVuY3ktbmFtZSB7XG4gICAgICAgICAgICAgICAgLy9kaXNwbGF5OiBpbmxpbmUhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgbGkuc2VsZWN0ZWQgYSwgbGkgYTpob3ZlciwgbGkgYTpmb2N1cyB7XG4gICAgICAgICAgICAuaWNvbiB7XG4gICAgICAgICAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAxMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybShzY2FsZSgxKSk7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuXG4gICAgbGkub24tY2FudmFzLWNhcnQge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgYSB7XG4gICAgICAgICAgICAvL2JhY2tncm91bmQ6IGNoYW5nZS1jb2xvcigkY2FudmFzLWNhcnQtY29sb3IsICRhbHBoYTogMC4yNSkhaW1wb3J0YW50O1xuICAgICAgICAgICAgLy9iYWNrZ3JvdW5kOiBhZGp1c3QtY29sb3IoJHRvcGJhci1iZy1jb2xvciwgJGxpZ2h0bmVzczogLTUlKSFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBjb2xvcjogYWNjZXNzaWJsZS1sdW1pbmFuY2UoJHRvcGJhci1saW5rLWNvbG9yLCAkdG9wYmFyLWJnKSFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAvL2JveC1zaGFkb3c6IGluc2V0IDAgLTNweCAwICRjYW52YXMtY2FydC1jb2xvcjtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tcHJvcGVydHkoYmFja2dyb3VuZCwgY29sb3IsIGJveC1zaGFkb3cpO1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1kdXJhdGlvbigwLjNzKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKGN1YmljLWJlemllcigwLjcsMCwwLjMsMSkpO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICR0b3BiYXItaGVpZ2h0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkdG9wYmFyLWhlaWdodDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgLy9iYWNrZ3JvdW5kOiBjaGFuZ2UtY29sb3IoJGNhbnZhcy1jYXJ0LWNvbG9yLCAkYWxwaGE6IDAuNzUpIWltcG9ydGFudDtcblx0XHRcdFx0Ly9ib3gtc2hhZG93OiBpbnNldCAwIDNweCAwICRob3Zlci1jb2xvcjtcblxuICAgICAgICAgICAgICAgICYsIC5jYXJ0LWJ1dHRvbl9faWNvbiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvL292ZXJyaWRpbmcgcGFydHMgaW4gcGlvbmVlclxuICAgICAgICAgICAgICAgIC5jYXJ0LWJ1dHRvbl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBpZihsdW1hKCR0b3BiYXItaG92ZXItY29sb3IpIDwgNTAsIGhzbGEoMCwgMCUsIDEwMCUsIDAuOSksIGhzbGEoMCwgMCUsIDAlLCAwLjc1KSkhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHRvcGJhci1ob3Zlci1jb2xvciFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkdG9wYmFyLWhvdmVyLWNvbG9yICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLmNhcnQtYnV0dG9uX19pY29uIHtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC43NTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAuY2FydC1idXR0b25fX3RleHQsIC5jYXJ0LWJ1dHRvbl9fc3VtLCAuY2FydC1idXR0b25fX2N1cnJlbmN5IHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKHdoaXRlLCAkdG9wYmFyLWhvdmVyLWNvbG9yKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHNjYWxlKDEpKTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnLic7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHRvcGJhci1ob3Zlci1jb2xvcjtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAkc2VhcmNoLWJveF9fY29udGFpbmVyLXBhZGRpbmc7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybShzY2FsZSgwKSk7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6MDtcblxuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJyZW07XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDBweDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwcHg7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5jYXJ0LWJ1dHRvbiB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHRvcGJhci1oZWlnaHQgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgICAuY2FydC1idXR0b25fX2ljb24ge1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2U7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAxMDtcblxuICAgICAgICAgICAgJi5pY29uLXNob3BwaW5nLWNhcnQ6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBcIlxcZTYwN1wiO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IC4wNTtcbiAgICAgICAgICAgICAgICByaWdodDogLTk1cHg7XG4gICAgICAgICAgICAgICAgdG9wOiAzcHg7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMyk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAuY2FydC1idXR0b25fX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgICBmb250LXNpemU6IDAuNXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjFyZW07XG4gICAgICAgICAgICBjb2xvcjogIzlFOUU5RTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHRvcDogNXB4O1xuICAgICAgICB9XG4gICAgICAgIC5jYXJ0LWJ1dHRvbl9fc3VtLCAuY2FydC1idXR0b25fX2N1cnJlbmN5IHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogLjc1cmVtO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC4zcyBlYXNlO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDIuODVyZW07XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB0b3A6IDBweDtcbiAgICAgICAgICAgIHotaW5kZXg6IDIwO1xuICAgICAgICB9XG4gICAgICAgIC5jYXJ0LWJ1dHRvbl9fY3VycmVuY3kge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgICAuY2hlY2tvdXQtYnV0dG9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmUhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICAgIC5jYXJ0LWJ1dHRvbl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgZm9udC1zaXplOiAwLjVyZW07XG4gICAgICAgICAgICBtaW4td2lkdGg6IDAuNnJlbTtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgcGFkZGluZzogMC4wNHJlbSAwLjJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNnJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwLjZyZW07XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB6LWluZGV4OiAyMDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIHRvcDogKCR0b3BiYXItaGVpZ2h0LzIpIC0gMXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IHJlbS1jYWxjKCR0b3BiYXItbGluay1wYWRkaW5nKSArIDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkdG9wYmFyLWhvdmVyLWNvbG9yO1xuICAgICAgICAgICAgY29sb3I6IGlmKGx1bWEoJHRvcGJhci1ob3Zlci1jb2xvcikgPCA1MCwgaHNsYSgwLCAwJSwgMTAwJSwgMC45KSwgaHNsYSgwLCAwJSwgMCUsIDAuNzUpKTtcbiAgICAgICAgfVxuICAgICAgICBhLmNhcnQtYnV0dG9uLS1lbXB0eSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lIWltcG9ydGFudDtcblxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcuJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkaG92ZXItY29sb3I7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgICAgICAgICB0b3A6ICRzZWFyY2gtYm94X19jb250YWluZXItcGFkZGluZztcbiAgICAgICAgICAgICAgICByaWdodDogNTAlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtMXJlbTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHNjYWxlKDApKTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gICAgICAgICAgICAgICAgei1pbmRleDowO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuY2FydC1idXR0b25fX2ljb24ge1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAvL2JhY2tncm91bmQ6IGNoYW5nZS1jb2xvcigkY2FudmFzLWNhcnQtY29sb3IsICRhbHBoYTogMC43NSkhaW1wb3J0YW50O1xuXHRcdFx0XHQvL2JveC1zaGFkb3c6IGluc2V0IDAgM3B4IDAgJGhvdmVyLWNvbG9yO1xuXG4gICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybShzY2FsZSgxKSk7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuY2FydC1idXR0b25fX3RleHQsIC5jYXJ0LWJ1dHRvbl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi50b3AtYmFyLXNlY3Rpb24gdWwgbGkubGV2ZWwtMCwgLnRvcC1iYXItc2VjdGlvbiB1bCBsaS5wYXJlbnQsIC50b3AtYmFyLXNlY3Rpb24gdWwgbGkucGFyZW50IHVsLCAudG9wLWJhci1zZWN0aW9uIHVsIGxpLnBhcmVudCB1bCBsaSwgLnRvcC1iYXItc2VjdGlvbiB1bCBsaS5wcm9kdWN0LXNlYXJjaF9fZWxlbWVudCB7XG4gICAgZmxvYXQ6IG5vbmU7XG59XG4udG9wLWJhci1zZWN0aW9uIHVsIGxpLmxldmVsLTAge1xuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDBweCFpbXBvcnRhbnQ7XG59XG4udG9wLWJhci1zZWN0aW9uIHVsIGxpLnBhcmVudCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLnRvcC1iYXItc2VjdGlvbiB1bCBsaS5wYXJlbnQgdWwge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZSFpbXBvcnRhbnQ7XG59XG5cbi5zZXR0aW5nX19zZWxlY3Qge1xuICAgIG9wYWNpdHk6IDA7IC8vV2VpcmQgY2hyb21lIGJ1Z1xuXG4gICAgcmlnaHQ6IDBweDtcblxuICAgIGlucHV0W3R5cGU9c3VibWl0XSwgLmJ1dHRvbiB7XG4gICAgICAgIHRvcDogMHB4O1xuICAgIH1cbn1cblxuLnRvcC1iYXItc2VjdGlvbi5zZWFyY2gtYm94LS1mb2N1cyB7XG4gICAgI21haW4tbWVudSAubWFpbi1uYXZfX2l0ZW0ge1xuICAgICAgICBhIHtcbiAgICAgICAgICAgIC8vcGFkZGluZzogMCAwLjVyZW07XG4gICAgICAgIH1cbiAgICB9XG59XG4udG9wLWJhci1zZWN0aW9uICNtYWluLW1lbnUge1xuICAgIC5tYWluLW5hdl9faXRlbSB7XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IGlmKGx1bWEoJHRvcGJhci1iZy1jb2xvcikgPCA1MCwgaHNsYSgwLCAwJSwgMTAwJSwgMC4xKSwgaHNsYSgwLCAwJSwgMCUsIDAuMSkpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkdG9wYmFyLWJnLWNvbG9yO1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKG1hcmdpbiAkc2VhcmNoLWJveF9fY29udGFpbmVyLXRyYW5zaXRpb24tZHVyYXRpb24gJHNlYXJjaC1ib3hfX2NvbnRhaW5lci10cmFuc2l0aW9uLWVhc2UpO1xuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgLy9AaW5jbHVkZSB0cmFuc2l0aW9uLXByb3BlcnR5KHBhZGRpbmcsIGJhY2tncm91bmQsIGNvbG9yLCBib3gtc2hhZG93KTtcbiAgICAgICAgICAgIC8vQGluY2x1ZGUgdHJhbnNpdGlvbi1kdXJhdGlvbigkc2VhcmNoLWJveF9fY29udGFpbmVyLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuM3MpO1xuICAgICAgICAgICAgLy9AaW5jbHVkZSB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbigkc2VhcmNoLWJveF9fY29udGFpbmVyLXRyYW5zaXRpb24tZWFzZSwgZWFzZSk7XG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKHBhZGRpbmcgJHNlYXJjaC1ib3hfX2NvbnRhaW5lci10cmFuc2l0aW9uLWR1cmF0aW9uICRzZWFyY2gtYm94X19jb250YWluZXItdHJhbnNpdGlvbi1lYXNlLCBiYWNrZ3JvdW5kIDAuM3MgZWFzZSwgY29sb3IgMC4zcyBlYXNlLCBib3gtc2hhZG93IDAuM3MgZWFzZSk7XG4gICAgICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICAgICAgcGFkZGluZzogMCAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHRvcGJhci1saW5rLWNvbG9yO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHRvcGJhci1iZy1jb2xvcjtcbiAgICAgICAgICAgIC8vd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgICAgIC5kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5sZXZlbC0wIHtcbiAgICAgICAgICAgID4gYSB7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAzcHggMCByZ2JhKCRob3Zlci1jb2xvciwgMCk7XG5cbiAgICAgICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAgICAgJi5oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkdG9wYmFyLWxpbmstY29sb3IhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkdG9wYmFyLWJnLWNvbG9yIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAzcHggMCAkaG92ZXItY29sb3I7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLmN1cnJlbnQsICYuc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgID4gYSB7XG4gICAgICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgM3B4IDAgJHByaW1hcnktY29sb3I7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmxldmVsLTEge1xuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgM3B4IDAgMCByZ2JhKCRob3Zlci1jb2xvciwgMCk7XG5cbiAgICAgICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAgICAgJi5oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkdG9wYmFyLWxpbmstY29sb3ItaG92ZXIhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkaG92ZXItY29sb3IhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAzcHggMCAwIHJnYmEoJGhvdmVyLWNvbG9yLCAwKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLmN1cnJlbnQsIC5jdXJyZW50LCAmLnNlbGVjdGVkLCAuc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgID4gYSB7XG4gICAgICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDNweCAwIDAgJHByaW1hcnktY29sb3I7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5wYXJlbnQubGV2ZWwtMCB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0tc3R5bGUocHJlc2VydmUzZCk7XG4gICAgICAgICAgICBwZXJzcGVjdGl2ZTogODAwcHg7XG4gICAgICAgICAgICAtd2Via2l0LXBlcnNwZWN0aXZlOiA4MDBweDtcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICB9XG4gICAgICAgICYucGFyZW50ID4gYSB7XG4gICAgICAgICAgICAvLyBTaG93IGFycm93IGZvciBwYXJlbnQgaXRlbXNcbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGljb24oJGljb24tdmFyLWtleWJvYXJkLWFycm93LWRvd24pO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJG5hdi1pY29uLXNwYWNpbmc7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1wcm9wZXJ0eSh0cmFuc2Zvcm0sIGNvbG9yKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLWR1cmF0aW9uKDQwMG1zLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24oZWFzZSwgZWFzZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYgfiB1bCB7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogcmdiYSgwLCAwLCAwLCAwLjI1KSAwIDJweCA2cHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYuaGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgICYgfiB1bCB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGFjY2Vzc2libGUtc2hvdygkcG9zaXRpb246IHJlbGF0aXZlKTtcbiAgICAgICAgICAgICAgICAgICAgLy93aWR0aDogMTAwJTtcblxuICAgICAgICAgICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgICAgIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgXHRcdFx0XHRAaW5jbHVkZSB0cmFuc2Zvcm0tc3R5bGUocHJlc2VydmUzZCk7XG5cbiAgICAgICAgICAgICAgICAgICAgJi5hbmltYXRlLWluIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybS1vcmlnaW4oNTAlIDAlKTtcbiAgICAgICAgICBcdFx0XHRcdEBpbmNsdWRlIGFuaW1hdGlvbihtZW51LXJvdGF0ZS10b3AgMzAwbXMgZWFzZS1vdXQpO1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyBSb3RhdGUgYXJyb3cgb24gaG92ZXJcbiAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHJvdGF0ZXgoMTgwZGVnKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIE9uIG1lbnUgbGV2ZWwgMSB3ZSB1c2UgcGx1cyBzaWduIGFzIHBhcmVudCBpbmRpY2F0b3IsIHNpbmNlIGxldmVsIDJcbiAgICAgICAgICogc3VibWVudXMgbWF5IHBvcCB1cCBib3RoIHRvIHRoZSBsZWZ0IGFuZCB0byB0aGUgcmlnaHRcbiAgICAgICAgICovXG4gICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggNSB7XG4gICAgICAgICAgICAmLnBhcmVudC5sZXZlbC0jeyRpfSA+IGEuaGlnaGxpZ2h0ZWQsICYubGV2ZWwtI3skaX0gLnBhcmVudCA+IGEuaGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIC8vU21hcnRtZW51cyBibG93IHVwIGlmIHdlIGRvbid0IGRvIHRoaXMsIHNlZSB0aGVtZS5yYW5nZXIuanMgZm9yIGRldGFpbHNcbiAgICBcdCAgICBcdCAmIH4gdWwuYW5pbWF0ZS1pbiB7XG4gICAgXHQgICAgXHQgXHRAaW5jbHVkZSB0cmFuc2Zvcm0tb3JpZ2luKDAlIDAlKTtcbiAgICBcdCAgICBcdCBcdEBpbmNsdWRlIHRyYW5zZm9ybS1zdHlsZShwcmVzZXJ2ZTNkKTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYW5pbWF0aW9uKG1lbnUtcm90YXRlLWxlZnQgMzAwbXMgZWFzZS1vdXQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICBcdCAgICB9XG5cbiAgICBcdCAgICAmLnBhcmVudC5sZXZlbC0jeyRpfSA+IGE6YWZ0ZXIge1xuICAgIFx0ICAgICAgICBAaW5jbHVkZSBpY29uKCRpY29uLXZhci1rZXlib2FyZC1hcnJvdy1kb3duKTtcbiAgICBcdCAgICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQgIWltcG9ydGFudDtcblxuICAgIFx0ICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0ocm90YXRlKDI3MGRlZykgdHJhbnNsYXRlWigwKSk7XG4gICAgXHRcdFx0QGluY2x1ZGUgdHJhbnNmb3JtLW9yaWdpbig3MCUpO1xuXG5cbiAgICBcdCAgICB9XG4gICAgXHQgICAgJi5wYXJlbnQubGV2ZWwtI3skaX0gPiBhLmhpZ2hsaWdodGVkOmFmdGVyIHtcbiAgICBcdFx0XHRAaW5jbHVkZSB0cmFuc2Zvcm0ocm90YXRlKDI3MGRlZykgdHJhbnNsYXRlWigwKSByb3RhdGV4KDE4MGRlZykpO1xuICAgIFx0XHR9XG4gICAgXHQgICAgLmxldmVsLSN7JGl9IGEge1xuICAgIFx0XHRcdGhlaWdodDogYXV0byFpbXBvcnRhbnQ7XG4gICAgXHRcdFx0bGluZS1oZWlnaHQ6ICR1dGlscy1uYXYtbGluZS1oZWlnaHQgIWltcG9ydGFudDtcbiAgICBcdFx0XHRwYWRkaW5nOiAkdXRpbHMtbmF2LWl0ZW0tc3BhY2luZyAxcmVtIWltcG9ydGFudDtcbiAgICBcdCAgICB9XG4gICAgXHQgICAgLmxldmVsLSN7JGkrMX0ge1xuICAgIFx0ICAgIFx0JiA+IGEsICYgdWwgPiBhIHtcbiAgICBcdCAgICBcdFx0YmFja2dyb3VuZC1jbGlwOiBib3JkZXItYm94O1xuICAgIFx0ICAgIFx0XHRib3JkZXItbGVmdDogMXB4IHNvbGlkIGlmKGx1bWEoJHRvcGJhci1iZy1jb2xvcikgPCA1MCwgaHNsYSgwLCAwJSwgMTAwJSwgMC4xKSwgaHNsYSgwLCAwJSwgMCUsIDAuMSkpO1xuICAgIFx0ICAgIFx0fVxuICAgIFx0ICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuXG4jbG9nby1yb3cge1xuICAgIHBhZGRpbmc6IDBweDtcbn1cblxuI2V4dHJhLW5hdiBmb3JtIHtcbiAgICBwYWRkaW5nOiAxMHB4IDA7XG59XG5cbiNleHRyYS1uYXYgZm9ybSBpbnB1dCB7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNHB4O1xuICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDRweDtcbiAgICBib3JkZXItY29sb3I6IGhzbGEoMCwgMCUsIDAlLCAwLjMpO1xuICAgIGJvcmRlci1yaWdodC13aWR0aDogMHB4O1xuICAgIGJhY2tncm91bmQ6IGhzbGEoMCwgMCUsIDUwJSwgMC4yNSk7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcblxuICAgICY6Zm9jdXMge1xuICAgICAgICBib3JkZXItY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICAgIH1cbn1cbiNleHRyYS1uYXYgZm9ybSBidXR0b24ge1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA0cHg7XG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDRweDtcbiAgICBiYWNrZ3JvdW5kOiBoc2xhKDAsIDAlLCA1MCUsIDAuMjUpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIGhzbGEoMCwgMCUsIDAlLCAwLjMpO1xuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAwcHg7XG59XG4jbG9nbyB7XG4gICAgaGVpZ2h0OiAkdG9wYmFyLWhlaWdodDtcbiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG5cbiAgICBoMSB7XG4gICAgICAgIGZvbnQtc2l6ZTogNDZweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkdG9wYmFyLWhlaWdodDtcbiAgICAgICAgY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKGlmKGx1bWEoJHRvcGJhci1iZy1jb2xvcikgPCA1MCwgI0ZGRiwgIzAwMCksICR0b3BiYXItYmctY29sb3IpO1xuICAgIH1cblxuICAgIGltZyB7XG4gICAgICAgIG1heC1oZWlnaHQ6ICR0b3BiYXItaGVpZ2h0O1xuICAgICAgICAvL21peC1ibGVuZC1tb2RlOiBkaWZmZXJlbmNlO1xuICAgIH1cbn1cbiIsIi5wcm9kdWN0bGlzdF9fcHJvZHVjdF9fZGVzY3JpcHRpb24ge1xuICAgIHBhZGRpbmc6IDIwcHg7XG59XG5cbi8qIFBpb25lZXIgb3ZlcnJpZGUgKi9cbi5wcm9kdWN0bGlzdF9fcHJvZHVjdF9fYnV0dG9uLXdyYXAuYnV0dG9uLXJlYWRvbiB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jayFpbXBvcnRhbnQ7XG59XG5cbi5lcXVhbC1oZWlnaHQtY29sdW1uIHtcblx0cGFkZGluZzogMS45Mzc1cmVtO1xufVxuXG4ucHJvZHVjdGxpc3RfX3Byb2R1Y3QgIHtcblx0Ly9wb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgJjpsYXN0LWNoaWxkIHtcbiAgICAucHJvZHVjdGxpc3RfX3Byb2R1Y3Qtd3JhcDpiZWZvcmUge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbn1cblxuXG4vL0JhZGdlcyBhcmUgaW50ZW5kZWQgdG8gYWx3YXlzIGhhdmUgd2hpdGUgdGV4dFxuJF9zdmctYmc6IGFjY2Vzc2libGUtbHVtaW5hbmNlKGFjY2Vzc2libGUtbHVtaW5hbmNlKCRwcmltYXJ5LWNvbG9yLCB3aGl0ZSwgMiksICRjb250ZW50LWJnLCAxLjI1KTtcbi8vIFNpbmNlIC5kaXNjb3VudF9iYWRnZSBpcyBhIHN2ZyA8dXNlPiBlbGVtZW50LCB3ZSBoYXZlIHRvIHN0eWxlIHRoZSBzdmcgdGhhdCBpcyBoaWRkZW5cbnBhdGgjZGlzY291bnRfX2Jhbm5lciB7XG4gICAgZmlsbDogZGFya2VuKCRfc3ZnLWJnLCAzNSUpICFpbXBvcnRhbnQ7XG59XG5wYXRoI2Rpc2NvdW50X19vdmVyIHtcbiAgICBmaWxsOiAkX3N2Zy1iZyAhaW1wb3J0YW50O1xufVxuXG4uYnJlYWRjcnVtYnMgPiAqOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXDI3RTlcIjtcbn1cblxuLnBhZ2VfX3RpdGxlIHtcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiByZ2JhKDAsMCwwLDAuMSk7XG59XG5cbi5wcm9kdWN0bGlzdF9fcHJvZHVjdC13cmFwIHtcblx0Ly9AaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWigwKSk7XG5cdG92ZXJmbG93OiB2aXNpYmxlO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdGJvcmRlci13aWR0aDogMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcblx0QGluY2x1ZGUgdHJhbnNpdGlvbihib3gtc2hhZG93IDE1MG1zIGVhc2UpO1xuXHRib3gtc2hhZG93OiBoc2xhKDAsIDAlLCAwJSwgMC4yNSkgMCAwIDFweCwgaHNsYSgwLCAwJSwgMCUsIDAuMikgMCAwIDEwcHggMHB4O1xuXG5cdC5lcXVhbC1oZWlnaHQtY29sdW1uX19pbWFnZSB7XG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHRiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICAgICAgcGFkZGluZzogOHB4O1xuXHRcdGJvcmRlci1yYWRpdXM6IDJweDtcblx0XHRib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwcHg7XG5cdFx0Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDBweDtcblx0fVxuXG5cdC5wcm9kdWN0bGlzdF9fcHJvZHVjdF9fYnV0dG9uLXdyYXAge1xuXHRcdEBpbmNsdWRlIHRyYW5zaXRpb24tcHJvcGVydHkodHJhbnNmb3JtLCBvcGFjaXR5KTtcblx0XHRAaW5jbHVkZSB0cmFuc2l0aW9uLWR1cmF0aW9uKDE1MG1zKTtcblx0XHRAaW5jbHVkZSB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbihlYXNlKTtcblx0XHRAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlKDAsLTMuNzVyZW0pKTtcblx0XHRvcGFjaXR5OiAwO1xuXHRcdG1hcmdpbi1sZWZ0OiAwO1xuXHRcdC8vLXdlYmtpdC1maWx0ZXI6IGJsdXIoNXB4KTtcblxuXHRcdC5wcm9kdWN0bGlzdF9fcHJvZHVjdF9fYnV0dG9uIHtcblx0XHRcdGJveC1zaGFkb3c6IGluc2V0IHJnYmEoMCwgMCUsIDEwMCUsIDAuMykgMCAwIDAgMXB4O1xuXHRcdFx0Ly9iYWNrZ3JvdW5kOiBoc2xhKDAsIDAlLCAwJSwgMC4yNSk7XG5cdFx0fVxuXHR9XG5cblx0Lm9mZmVycyB7XG5cdFx0cGFkZGluZzogMCAuOTM3NXJlbSAuOTM3NXJlbTtcblx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXG5cdFx0LnByaWNlIHtcblx0XHRcdHRyYW5zaXRpb246IHRyYW5zZm9ybSAxNTBtcyBlYXNlLCBvcGFjaXR5IDE1MG1zIGVhc2U7XG5cdFx0XHRvcGFjaXR5OiAxO1xuXHRcdFx0QGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZSgwcHgsIDBweCkpO1xuXHRcdFx0Ly8td2Via2l0LWZpbHRlcjogYmx1cigwcHgpO1xuXHRcdH1cblx0XHQucHJpY2UtLW9yaWdpbmFsIHtcblx0XHRcdCRzZWN0aW9uLWJnOiBsaWdodGVuKCRjb250ZW50LWJnLCAxMCUpO1xuXHRcdFx0QGlmIGx1bWEoJGNvbnRlbnQtYmcpIDwgNTAge1xuXHRcdFx0XHQkc2VjdGlvbi10ZXh0LWNvbG9yOiB3aGl0ZTtcblx0XHRcdH0gQGVsc2Uge1xuXHRcdFx0XHQkc2VjdGlvbi10ZXh0LWNvbG9yOiBhY2Nlc3NpYmxlLWx1bWluYW5jZSgkZGFyay1ib2R5LXRleHQsICRzZWN0aW9uLWJnKTtcblx0XHRcdH1cblx0XHRcdC8vZGlzcGxheTogbm9uZSFpbXBvcnRhbnQ7XG5cdFx0XHRmb250LXNpemU6IDEycHg7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjbGVhcjogYm90aDtcblx0XHRcdGNvbG9yOiAkc2VjdGlvbi10ZXh0LWNvbG9yO1xuXHRcdFx0dGV4dC1zaGFkb3c6IGhzbGEoMCwgMCUsIDAlLCAwLjMpIDAgLTFweCAwO1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQhaW1wb3J0YW50O1xuXHRcdFx0Ly9AVE9ETyBtYWtlIHRoaXMgZ3JhZGllbnQgdXNlIHRoZSBwcm9kdWN0IGJveCBiZyBjb2xvciBpbnN0ZWFkIHRvIGNyZWF0ZSBhbiBpbWFnZSAnZmFkZS1vdXQnIGVmZmVjdFxuXHRcdFx0QGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZSgwcHgsIDEwcHgpKTtcblx0XHRcdEBpbmNsdWRlIHRyYW5zaXRpb24tcHJvcGVydHkodHJhbnNmb3JtLCBvcGFjaXR5KTtcblx0XHRcdEBpbmNsdWRlIHRyYW5zaXRpb24tZHVyYXRpb24oMC4zcywgMC4zcyk7XG5cdFx0XHR6LWluZGV4OiAyO1xuXHRcdH1cblx0XHQuZGlzY291bnQge1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG5cdFx0XHR0ZXh0LWFsaWduOiByaWdodDtcblx0XHRcdGxpbmUtaGVpZ2h0OiAzLjlyZW07XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMTVyZW07XG5cblx0XHRcdEBpbmNsdWRlIHRyYW5zZm9ybShub25lKTtcblxuXHRcdFx0LmRpc2NvdW50LWJhZGdlIHtcblx0XHRcdFx0Ly90cmFuc2l0aW9uOiBjb2xvciAxNTBtcyBlYXNlO1xuXHRcdFx0XHR3aWR0aDogOTRweDtcblx0XHRcdFx0aGVpZ2h0OiA5NHB4O1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG5cdFx0XHRcdEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIDMwMG1zIGVhc2UpO1xuXHRcdFx0XHRjb2xvcjogJHByaW1hcnktY29sb3I7XG5cdFx0XHRcdC8vQGluY2x1ZGUgY29sb3JlZC1iZy1lbGVtZW50KCRwcmltYXJ5LWNvbG9yLCAjZmZmLCAkbmF2aWdhdGlvbi1iZyk7XG5cdFx0XHRcdC8vY29sb3I6IGFjY2Vzc2libGUtbHVtaW5hbmNlKGlmKGx1bWEoJHByaW1hcnktY29sb3IpIDwgNTAsICRsaWdodC1ib2R5LXRleHQsICRkYXJrLWJvZHktdGV4dCksICRwcmltYXJ5LWNvbG9yKTtcblx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHRyaWdodDogN3B4O1xuXHRcdFx0XHR0b3A6IDExcHg7XG4gICAgICAgICAgICAgICAgdG9wOiAtNnB4O1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAtMTBweDtcblx0XHRcdH1cblxuXHRcdFx0LmRpc2NvdW50LWNvdW50IHtcblx0XHRcdFx0QGluY2x1ZGUgdHJhbnNpdGlvbihjb2xvciAzMDBtcyBlYXNlKTtcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdFx0ei1pbmRleDogMTAwO1xuXHRcdFx0XHRjb2xvcjogd2hpdGU7XG4gICAgICAgICAgICAgICAgdG9wOiByZW0tY2FsYygtMTRweCk7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IHJlbS1jYWxjKC03cHgpO1xuXHRcdFx0XHRwYWRkaW5nLXJpZ2h0OiAwO1xuXHRcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHRcdEBpbmNsdWRlIHRyYW5zZm9ybShyb3RhdGUoNDVkZWcpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0tb3JpZ2luKGJvdHRvbSk7XG4gICAgICAgICAgICAgICAgdGV4dC1zaGFkb3c6IHJnYmEoMCwgMCwgMCwgMC4yKSAxcHggMXB4IDBweDtcbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICBAbWVkaWEgI3skc21hbGwtb25seX0ge1xuICAgICAgICAgICAgICAgICAgICAmIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogcmVtLWNhbGMoLTE0cHgpKjAuNjI1O1xuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IHJlbS1jYWxjKC03cHgpKjAuNjI1O1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxMTIuNSU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0LnJlYWRvbi1pY29uX19jb250YWluZXIge1xuXHRcdGRpc3BsYXk6IG5vbmUhaW1wb3J0YW50O1xuXG5cdFx0Lmljb24tc2VhcmNoLnJlYWRvbi1pY29uIHtcblx0XHRcdGRpc3BsYXk6IG5vbmUhaW1wb3J0YW50O1xuXHRcdH1cblx0fVxuXG5cdCY6aG92ZXIge1xuICAgICAgICAvL0hvdmVyIGNsaXAgZml4XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogMjtcbiAgICAgICAgXG4gICAgICAgIGJveC1zaGFkb3c6IGhzbGEoMCwgMCUsIDAlLCAwLjI1KSAwIDAgMXB4LCBoc2xhKDAsIDAlLCAwJSwgMC4yNSkgMCAyMHB4IDYwcHggMHB4O1xuXG5cdFx0Lm9mZmVycyB7XG5cdFx0XHQucHJpY2Uge1xuXHRcdFx0XHQvL0BpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGUoMHB4LCAtMTBweCkpO1xuXHRcdFx0XHQvL29wYWNpdHk6IDA7XG5cdFx0XHRcdC8vLXdlYmtpdC1maWx0ZXI6IGJsdXIoNXB4KTtcblx0XHRcdH1cblx0XHRcdC5wcmljZS0tb3JpZ2luYWwge1xuXHRcdFx0XHQvL29wYWNpdHk6IDE7XG5cdFx0XHRcdC8vQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZSgwcHgsIDBweCkpO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC5wcm9kdWN0bGlzdF9fcHJvZHVjdF9fYnV0dG9uLXdyYXAge1xuXHRcdFx0YmFja2dyb3VuZDogbGlnaHRlbigkY29udGVudC1iZywgMTAlKTtcbiAgICAgICAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDBweDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwcHg7XG4gICAgICAgICAgICAvL2JveC1zaGFkb3c6IGhzbGEoMCwgMCUsIDAlLCAwLjEpIDAgLTFweCAwO1xuXHRcdFx0b3BhY2l0eTogMTtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGUoMHB4LCAtNXB4KSFpbXBvcnRhbnQpO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaHNsYSgwLCAwJSwgMCUsIDAuMjUpIDAgMCAxcHgsIGhzbGEoMCwgMCUsIDAlLCAwLjI1KSAwIDIwcHggNjBweCAwcHg7XG4gICAgICAgICAgICB6LWluZGV4OiAxMDAwMDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdC8vLXdlYmtpdC1maWx0ZXI6IGJsdXIoMHB4KTtcblx0XHR9XG5cblx0XHQucmVhZG9uLWljb25fX2NvbnRhaW5lciB7XG5cdFx0XHRkaXNwbGF5OiBub25lIWltcG9ydGFudDtcblx0XHRcdC8vYWNrZ3JvdW5kOiBjaGFuZ2UtY29sb3IoJHByaW1hcnktY29sb3IsICRhbHBoYTogMC41KTtcblx0XHRcdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXG5cdFx0XHQuaWNvbi1zZWFyY2gucmVhZG9uLWljb24ge1xuXHRcdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHQmLm9uLXNhbGUge1xuXHRcdC8vYm94LXNoYWRvdzogY2hhbmdlLWNvbG9yKCRwcmltYXJ5LWNvbG9yLCAkYWxwaGE6IDApIDAgMCAwIDBweDtcblx0fVxuXHQub24tc2FsZSAmOmhvdmVyIHtcblx0XHQvL2JveC1zaGFkb3c6ICRwcmltYXJ5LWNvbG9yIDAgMCAwIDNweDtcblx0fVxufVxuLmVxdWFsLWhlaWdodC1jb2x1bW4taW5uZXJ3cmFwIHtcblx0cGFkZGluZzogMHB4O1xufVxuLmVxdWFsLWhlaWdodC1jb2x1bW5fX3JlYWRvbiB7XG5cdG1hcmdpbi1sZWZ0OiAwcHg7XG59XG4ucHJvZHVjdGxpc3RfX3Byb2R1Y3RfX2hlYWRsaW5lIHtcblx0dGV4dC10cmFuc2Zvcm06IG5vbmU7XG5cdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHRwYWRkaW5nOiAwcHg7XG5cdHBhZGRpbmctdG9wOiAwLjVyZW07XG5cdG1hcmdpbjogMCAuOTM3NXJlbSAwO1xuXHR0ZXh0LWFsaWduOiBsZWZ0O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIEBpbmNsdWRlIHRyYW5zaXRpb24obWFyZ2luIDMwMG1zIGVhc2UpO1xufVxuLm9uLXNhbGUgLnByb2R1Y3RsaXN0X19wcm9kdWN0LXdyYXA6OmFmdGVyIHtcblx0ZGlzcGxheTogbm9uZTtcbn1cbi5wcm9kdWN0bGlzdF9fcHJvZHVjdC13cmFwIC5wcmljZSB7XG5cdGZvbnQtc2l6ZTogMS4yNXJlbTtcbn1cbiIsIi8vIFJldGluYSAxcHggdGhpbiBoYWlybGluZVxuaHRtbC5zdmcge1xuXHQjZm9vdGVyIHtcblx0XHRib3JkZXItd2lkdGg6IDBweDtcblx0XHRAaW5jbHVkZSBzZWN0aW9uLWJvcmRlci1jb2xvcigkZm9vdGVyLWJnLCAkY29udGVudC1iZywgJHJldGluYTogdHJ1ZSk7XG5cdH1cbn1cblxuLyojZW5kIHtcblx0YmFja2dyb3VuZDogJGVuZC1iZy1pbWc7XG59Ki8iXSwibWFwcGluZ3MiOiI7QUlBQTs7R0FFRztBYW9DSDs7Ozs7Ozs7OztHQVVHO0FiUEg7O0dBRUc7QUFLSDs7R0FFRztBQUtIOzs7Ozs7R0FNRztBYXZCSDs7Ozs7Ozs7OztHQVVHO0FLbENLLE9BQU8sQ0FBQyxrREFBSTtBWU5wQjs7Ozs7Ozs7R0FRRztBQWdPQyxPQUFPLENBMUpQO0VBQ0ksZ0JBQWdCLEVIeEVPLE9BQU87RUd5RTlCLEtBQUssRUhqRWtCLE9BQU8sR0dtTGpDO0VBc0NELE9BQU8sQ0F0SkgsRUFBRSxFQXNKTixPQUFPLENBdEpDLEVBQUUsRUFzSlYsT0FBTyxDQXRKSyxFQUFFLEVBc0pkLE9BQU8sQ0F0SlMsRUFBRSxFQXNKbEIsT0FBTyxDQXRKYSxFQUFFLEVBc0p0QixPQUFPLENBdEppQixFQUFFLENBQUM7SUFDbkIsS0FBSyxFQTdCVCxPQUFNLEdBOEJMO0VBb0pMLE9BQU8sQ0FqSkgsQ0FBQyxDQUFDO0lBQ0UsS0FBSyxFOUJxQjBELE9BQU0sRzhCZnhFO0lBMElMLE9BQU8sQ0FqSkgsQ0FBQyxBQUdJLE1BQU0sRUE4SWYsT0FBTyxDQWpKSCxDQUFDLEFBSUksTUFBTSxDQUFDO01BQ0osS0FBSyxFQS9CYixPQUFNLEdBZ0NEO0VBMklULE9BQU8sQ0F4SUgsT0FBTyxFQXdJWCxPQUFPLEMwQ2hQ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YSxDQUFiO0lBdkRBLFFBQVEsRUFBRSxRQUFTO0lBMEJULEtBQXNCLEVBckcxQixRQUFVO0lBcUdvRCxJQUFpQixFQUFFLElBQUssR0ErQjNGO0VBTEQsYUFBYSxDQUFiO0lBcERBLFFBQVEsRUFBRSxRQUFTO0lBeUJULElBQWlCLEVBcEdyQixTQUFVO0lBb0crQyxLQUFzQixFQUFFLElBQUssR0E2QjNGO0VBQ0QsYUFBYSxDQUFiO0lBdkRBLFFBQVEsRUFBRSxRQUFTO0lBMEJULEtBQXNCLEVBckcxQixTQUFVO0lBcUdvRCxJQUFpQixFQUFFLElBQUssR0ErQjNGO0VBTEQsYUFBYSxDQUFiO0lBcERBLFFBQVEsRUFBRSxRQUFTO0lBeUJULElBQWlCLEVBcEdyQixHQUFVO0lBb0crQyxLQUFzQixFQUFFLElBQUssR0E2QjNGO0VBQ0QsYUFBYSxDQUFiO0lBdkRBLFFBQVEsRUFBRSxRQUFTO0lBMEJULEtBQXNCLEVBckcxQixHQUFVO0lBcUdvRCxJQUFpQixFQUFFLElBQUssR0ErQjNGO0VBTEQsYUFBYSxDQUFiO0lBcERBLFFBQVEsRUFBRSxRQUFTO0lBeUJULElBQWlCLEVBcEdyQixTQUFVO0lBb0crQyxLQUFzQixFQUFFLElBQUssR0E2QjNGO0VBQ0QsYUFBYSxDQUFiO0lBdkRBLFFBQVEsRUFBRSxRQUFTO0lBMEJULEtBQXNCLEVBckcxQixTQUFVO0lBcUdvRCxJQUFpQixFQUFFLElBQUssR0ErQjNGO0VBTEQsYUFBYSxDQUFiO0lBcERBLFFBQVEsRUFBRSxRQUFTO0lBeUJULElBQWlCLEVBcEdyQixTQUFVO0lBb0crQyxLQUFzQixFQUFFLElBQUssR0E2QjNGO0VBQ0QsYUFBYSxDQUFiO0lBdkRBLFFBQVEsRUFBRSxRQUFTO0lBMEJULEtBQXNCLEVBckcxQixTQUFVO0lBcUdvRCxJQUFpQixFQUFFLElBQUssR0ErQjNGO0VBTEQsYUFBYSxDQUFiO0lBcERBLFFBQVEsRUFBRSxRQUFTO0lBeUJULElBQWlCLEVBcEdyQixHQUFVO0lBb0crQyxLQUFzQixFQUFFLElBQUssR0E2QjNGO0VBQ0QsYUFBYSxDQUFiO0lBdkRBLFFBQVEsRUFBRSxRQUFTO0lBMEJULEtBQXNCLEVBckcxQixHQUFVO0lBcUdvRCxJQUFpQixFQUFFLElBQUssR0ErQjNGO0VBTEQsYUFBYSxDQUFiO0lBcERBLFFBQVEsRUFBRSxRQUFTO0lBeUJULElBQWlCLEVBcEdyQixTQUFVO0lBb0crQyxLQUFzQixFQUFFLElBQUssR0E2QjNGO0VBQ0QsYUFBYSxDQUFiO0lBdkRBLFFBQVEsRUFBRSxRQUFTO0lBMEJULEtBQXNCLEVBckcxQixTQUFVO0lBcUdvRCxJQUFpQixFQUFFLElBQUssR0ErQjNGO0VBTEQsYUFBYSxDQUFiO0lBcERBLFFBQVEsRUFBRSxRQUFTO0lBeUJULElBQWlCLEVBcEdyQixTQUFVO0lBb0crQyxLQUFzQixFQUFFLElBQUssR0E2QjNGO0VBQ0QsYUFBYSxDQUFiO0lBdkRBLFFBQVEsRUFBRSxRQUFTO0lBMEJULEtBQXNCLEVBckcxQixTQUFVO0lBcUdvRCxJQUFpQixFQUFFLElBQUssR0ErQjNGO0VBTEQsYUFBYSxDQUFiO0lBcERBLFFBQVEsRUFBRSxRQUFTO0lBeUJULElBQWlCLEVBcEdyQixHQUFVO0lBb0crQyxLQUFzQixFQUFFLElBQUssR0E2QjNGO0VBQ0QsYUFBYSxDQUFiO0lBdkRBLFFBQVEsRUFBRSxRQUFTO0lBMEJULEtBQXNCLEVBckcxQixHQUFVO0lBcUdvRCxJQUFpQixFQUFFLElBQUssR0ErQjNGO0VBTEQsY0FBYyxDQUFkO0lBcERBLFFBQVEsRUFBRSxRQUFTO0lBeUJULElBQWlCLEVBcEdyQixTQUFVO0lBb0crQyxLQUFzQixFQUFFLElBQUssR0E2QjNGO0VBQ0QsY0FBYyxDQUFkO0lBdkRBLFFBQVEsRUFBRSxRQUFTO0lBMEJULEtBQXNCLEVBckcxQixTQUFVO0lBcUdvRCxJQUFpQixFQUFFLElBQUssR0ErQjNGO0VBTEQsY0FBYyxDQUFkO0lBcERBLFFBQVEsRUFBRSxRQUFTO0lBeUJULElBQWlCLEVBcEdyQixTQUFVO0lBb0crQyxLQUFzQixFQUFFLElBQUssR0E2QjNGO0VBQ0QsY0FB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UUFBUSxFQUFFLFFBQVM7SUF5QlQsSUFBaUIsRUFwR3JCLFFBQVU7SUFvRytDLEtBQXNCLEVBQUUsSUFBSyxHQTZCM0Y7RUFDRCxjQUFjLENBQWQ7SUF2REEsUUFBUSxFQUFFLFFBQVM7SUEwQlQsS0FBc0IsRUFyRzFCLFFBQVU7SUFxR29ELElBQWlCLEVBQUUsSUFBSyxHQStCM0Y7RUFMRCxjQUFjLENBQWQ7SUFwREEsUUFBUSxFQUFFLFFBQVM7SUF5QlQsSUFBaUIsRUFwR3JCLFNBQVU7SUFvRytDLEtBQXNCLEVBQUUsSUFBSyxHQTZCM0Y7RUFDRCxjQUFjLENBQWQ7SUF2REEsUUFBUSxFQUFFLFFBQVM7SUEwQlQsS0FBc0IsRUFyRzFCLFNBQVU7SUFxR29ELElBQWlCLEVBQUUsSUFBSyxHQStCM0Y7RUFMRCxjQUFjLENBQWQ7SUFwREEsUUFBUSxFQUFFLFFBQVM7SUF5QlQsSUFBaUIsRUFwR3JCLEdBQVU7SUFvRytDLEtBQXNCLEVBQUUsSUFBSyxHQTZCM0Y7RUFDRCxjQUFjLENBQWQ7SUF2REEsUUFBUSxFQUFFLFFBQVM7SUEwQlQsS0FBc0IsRUFyRzFCLEdBQVU7SUFxR29ELElBQWlCLEVBQUUsSUFBSyxHQStCM0Y7RUFMRCxjQUFjLENBQWQ7SUFwREEsUUFBUSxFQUFFLFFBQVM7SUF5QlQsSUFBaUIsRUFwR3JCLFNBQVU7SUFvRytDLEtBQXNCLEVBQUUsSUFBSyxHQTZCM0Y7RUFDRCxjQUFjLENBQWQ7SUF2REEsUUFBUSxFQUFFLFFBQVM7SUEwQlQsS0FBc0IsRUFyRzFCLFNBQVU7SUFxR29ELElBQWlCLEVBQUUsSUFBSyxHQStCM0Y7RUFMRCxjQUFjLENBQWQ7SUFwREEsUUFBUSxFQUFFLFFBQVM7SUF5QlQsSUFBaUIsRUFwR3JCLFNBQVU7SUFvRytDLEtBQXNCLEVBQUUsSUFBSyxHQTZCM0Y7RUFDRCxjQUFjLENBQWQ7SUF2REEsUUFBUSxFQUFFLFFBQVM7SUEwQlQsS0FBc0IsRUFyRzFCLFNBQVU7SUFxR29ELElBQWlCLEVBQUUsSUFBSyxHQStCM0Y7RUFMRCxjQUFjLENBQWQ7SUFwREEsUUFBUSxFQUFFLFFBQVM7SUF5QlQsSUFBaUIsRUFwR3JCLEdBQVU7SUFvRytDLEtBQXNCLEVBQUUsSUFBSyxHQTZCM0Y7RUFDRCxjQUFjLENBQWQ7SUF2REEsUUFBUSxFQUFFLFFBQVM7SUEwQlQsS0FBc0IsRUFyRzFCLEdBQVU7SUFxR29ELElBQWlCLEVBQUUsSUFBSyxHQStCM0Y7RUFMRCxjQUFjLENBQWQ7SUFwREEsUUFBUSxFQUFFLFFBQVM7SUF5QlQsSUFBaUIsRUFwR3JCLFNBQVU7SUFvRytDLEtBQXNCLEVBQUUsSUFBSyxHQTZCM0Y7RUFDRCxjQUFjLENBQWQ7SUF2REEsUUFBUSxFQUFFLFFBQVM7SUEwQlQsS0FBc0IsRUFyRzFCLFNBQVU7SUFxR29ELElBQWlCLEVBQUUsSUFBSyxHQStCM0Y7RUFMRCxjQUFjLENBQWQ7SUFwREEsUUFBUSxFQUFFLFFBQVM7SUF5QlQsSUFBaUIsRUFwR3JCLFNBQVU7SUFvRytDLEtBQXNCLEVBQUUsSUFBSyxHQTZCM0Y7RUFDRCxjQUFjLENBQWQ7SUF2REEsUUFBUSxFQUFFLFFBQVM7SUEwQlQsS0FBc0IsRUFyRzFCLFNBQVU7SUFxR29ELElBQWlCLEVBQUUsSUFBSyxHQStCM0Y7RUFMRCxjQUFjLENBQWQ7SUFwREEsUUFBUSxFQUFFLFFBQVM7SUF5QlQsSUFBaUIsRUFwR3JCLEdBQVU7SUFvRytDLEtBQXNCLEVBQUUsSUFBSyxHQTZCM0Y7RUFDRCxjQUFjLENBQWQ7SUF2REEsUUFBUSxFQUFFLFFBQVM7SUEwQlQsS0FBc0IsRUFyRzFCLEdBQVU7SUFxR29ELElBQWlCLEVBQUUsSUFBSyxHQStCM0Y7RUFMRCxlQUFlLENBQWY7SUFwREEsUUFBUSxFQUFFLFFBQVM7SUF5QlQsSUFBaUIsRUFwR3JCLFNBQVU7SUFvRytDLEtBQXNCLEVBQUUsSUFBSyxHQTZCM0Y7RUFDRCxlQUFlLENBQWY7SUF2REEsUUFBUSxFQUFFLFFBQVM7SUEwQlQsS0FBc0IsRUFyRzFCLFNBQVU7SUFxR29ELElBQWlCLEVBQUUsSUFBSyxHQStCM0Y7RUFMRCxlQUFlLENBQWY7SUFwREEs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LElBQUssR0E2QjNGO0VBQ0QsYUFBYSxDQUFiO0lBdkRBLFFBQVEsRUFBRSxRQUFTO0lBMEJULEtBQXNCLEVBckcxQixHQUFVO0lBcUdvRCxJQUFpQixFQUFFLElBQUssR0ErQjNGO0VBTEQsYUFBYSxDQUFiO0lBcERBLFFBQVEsRUFBRSxRQUFTO0lBeUJULElBQWlCLEVBcEdyQixTQUFVO0lBb0crQyxLQUFzQixFQUFFLElBQUssR0E2QjNGO0VBQ0QsYUFBYSxDQUFiO0lBdkRBLFFBQVEsRUFBRSxRQUFTO0lBMEJULEtBQXNCLEVBckcxQixTQUFVO0lBcUdvRCxJQUFpQixFQUFFLElBQUssR0ErQjNGO0VBTEQsYUFBYSxDQUFiO0lBcERBLFFBQVEsRUFBRSxRQUFTO0lBeUJULElBQWlCLEVBcEdyQixTQUFVO0lBb0crQyxLQUFzQixFQUFFLElBQUssR0E2QjNGO0VBQ0QsYUFBYSxDQUFiO0lBdkRBLFFBQVEsRUFBRSxRQUFTO0lBMEJULEtBQXNCLEVBckcxQixTQUFVO0lBcUdvRCxJQUFpQixFQUFFLElBQUssR0ErQjNGO0VBTEQsYUFBYSxDQUFiO0lBcERBLFFBQVEsRUFBRSxRQUFTO0lBeUJULElBQWlCLEVBcEdyQixHQUFVO0lBb0crQyxLQUFzQixFQUFFLElBQUssR0E2QjNGO0VBQ0QsYUFBYSxDQUFiO0lBdkRBLFFBQVEsRUFBRSxRQUFTO0lBMEJULEtBQXNCLEVBckcxQixHQUFVO0lBcUdvRCxJQUFpQixFQUFFLElBQUssR0ErQjNGO0VBTEQsYUFBYSxDQUFiO0lBcERBLFFBQVEsRUFBRSxRQUFTO0lBeUJULElBQWlCLEVBcEdyQixTQUFVO0lBb0crQyxLQUFzQixFQUFFLElBQUssR0E2QjNGO0VBQ0QsYUFBYSxDQUFiO0lBdkRBLFFBQVEsRUFBRSxRQUFTO0lBMEJULEtBQXNCLEVBckcxQixTQUFVO0lBcUdvRCxJQUFpQixFQUFFLElBQUssR0ErQjNGO0VBTEQsYUFBYSxDQUFiO0lBcERBLFFBQVEsRUFBRSxRQUFTO0lBeUJULElBQWlCLEVBcEdyQixTQUFVO0lBb0crQyxLQUFzQixFQUFF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LEdBQUk7TUFFdEMsT0FBTyxFQUFFLENBQUU7TXZEOUhiLGlCQUFpQixFdUQrSGEsb0JBQVMsQ0FBVyxVQUFVO012RDlINUQsY0FBYyxFdUQ4SGdCLG9CQUFTLENBQVcsVUFBVTtNdkQ3SDVELGFBQWEsRXVENkhpQixvQkFBUyxDQUFXLFVBQVU7TXZENUg1RCxTQUFTLEV1RDRIcUIsb0JBQVMsQ0FBVyxVQUFVO01BQ2pELFVBQVUsRUFBRSxtQkFBSSxDQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxtQkFBSSxDQUFrQixDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHO01BQ2hGLE9BQU8sRUFBRSxLQUFNO01BQ2YsUUFBUSxFQUFFLFFBQVMsR0FFNUI7SUF2SkgsMEJBQTBCLEFBeUh4QixNQUFNLENBZ0NOLHVCQUF1QixDQUFDO01BQ3ZCLE9BQU8sRUFBRSxJQUFJLENBQUEsVUFBVTtNQUV2QixVQUFVLEVBQUUsV0FBWSxHQUt4QjtNQWpLSCwwQkFBMEIsQUF5SHhCLE1BQU0sQ0FnQ04sdUJBQXVCLENBS3RCLFlBQVksQUFBQSxZQUFZLENBQUM7UUFDeEIsT0FBTyxFQUFFLElBQUssR0FDZDs7QUFVSiw4QkFBOEIsQ0FBQztFQUM5QixPQUFPLEVBQUUsR0FBSSxHQUNiOztBQUNELDRCQUE0QixDQUFDO0VBQzVCLFdBQVcsRUFBRSxHQUFJLEdBQ2pCOztBQUNELCtCQUErQixDQUFDO0VBQy9CLGNBQWMsRUFBRSxJQUFLO0VBQ3JCLGFBQWEsRUFBRSxRQUFTO0VBQ3hCLFFBQVEsRUFBRSxNQUFPO0VBQ2pCLFdBQVcsRUFBRSxNQUFPO0VBQ3BCLE9BQU8sRUFBRSxHQUFJO0VBQ2IsV0FBVyxFQUFFLE1BQU87RUFDcEIsTUFBTSxFQUFFLFlBQWE7RUFDckIsVUFBVSxFQUFFLElBQUs7RUFDaEIsUUFBUSxFQUFFLFFBQVM7RXZIMU5iLGtCQUFvQixFdUgyTk4sTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJO0V2SHROL0IsZUFBaUIsRXVIc05ILE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSTtFdkh2TS9CLFVBQVksRXVIdU1FLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUN0Qzs7QUFDRCxRQUFRLENBQUMsMEJBQTBCLEFBQUEsT0FBTyxDQUFDO0VBQzFDLE9BQU8sRUFBRSxJQUFLLEdBQ2Q7O0FBQ0QsMEJBQTBCLENBQUMsTUFBTSxDQUFDO0VBQ2pDLFNBQVMsRUFBRSxPQUFRLEdBQ25COztBQzFPRCxJQUFJLEFBQUEsSUFBSSxDQUNQLE9BQU8sQ0FBQztFQUNQLFlBQVksRUFBRSxHQUFJO0VsSUFoQixtQkFBbUIsRUFGNEIsR0FBRyxDQUFDLElBQUk7RUFPbkQsaUJBQWlCLEVBQUUsUUFBUztFQUM1QixnQkFBZ0IsRUFBRSwrSkFBRyxHa0lKM0I7O0FBR0Y7O0dBRUciLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9 */
