/*
Also please follow this
Do your project have diferent charset languages to account with?
      - Yes -> follow https://projects.netcentric.biz/wiki/display/FRONTEND/CSS+-+Font+Normalization
      - No -> You can still use it, there are tons of advantages, but its create some extra css and layout rendering
*/
/*
  * Design spec:
  * https://www.figma.com/file/SR4rvQlNnCmPMrQ9WYaIqv/branch/TJqkFymq09wf8KwmY1WNcj/Volvo-AEM-Design-system?type=design&node-id=7-26&t=pAm916VRiqCOD2I1-0
*/
/**
 * z-indexes from lower to -> higher
 */
/* doc
---
title: Pixel to em
name: nn-px-to-em
category: functions
---

Calculate the em with a given pixel with the given base font size
If you don't set a $base the $base-font-size is used as the context

## Live Template abbreviations
---
-ptu

## Parameters
---
@parameter $value = pixel based number (without unit)
@parameter $base = pixel based number (without unit)

## Dependencies
---
nn-strip-unit

## Example
---
```html_example
nn-px-to-em(5) // Output: 0.3125em
nn-px-to-em(5, 10) // Output: 0.5em
nn-px-to-em(5, 20) // Output: 0.25em
```
*/
/* doc
---
title: Pixel to rem
name: nn-px-to-rem
category: functions
---

Calculate the rem with a given pixel with the given base font size

In:  5px
Out: 0.3125rem

## Live Template abbreviations
---
-rem

## Parameters
---
@parameter $value = pixel based number (without unit)

## Dependencies
---
nn-strip-unit

## Example
---
```html_example
nn-px-to-rem(5) // Output 0.3125rem
```

*/
/* doc
---
title: Pixel to unit
name: px-to-unit
category: mixins
---

Set a property and value (pixel based without unit)

Calculates rem / em / % from given pixel and base (default base is the
base-font-size, 16px)
If rtl is true, this mixin handles all the direction stuff:
- Switching the values, when we have exactly 4 values
- Switching left and right in properties (padding and margin)

## Live Template abbreviations
---
-ptu (for em or % to pixel - with base parameter)
-rem (for rem to pixel - without base parameter)

## Parameters
---
@parameter $property = padding | margin | font-size | width | height
@parameter $value = Pixel based number - add px to keep the px for a value
@parameter $base = px based number, Default: 16px
@parameter $unit = Set unit: px | em | rem | percent

## Dependencies
---
abstract/functions/swap-left-right
abstract/functions/strip-unit

## Example
---

```html_example
@include nn-px-to-unit(padding, 0 10px 20 0); => padding: 0 10px 1.25rem 0;
@include nn-px-to-unit(padding, 0 10 20 0); => padding: 0 0.625rem 1.25rem 0;
@include nn-px-to-unit(padding-left, 10);
@include nn-px-to-unit(padding-right, 10);
@include nn-px-to-unit(margin, 0 10 20 0);
@include nn-px-to-unit(margin-left, 10);
@include nn-px-to-unit(margin-right, 10);
@include nn-px-to-unit(font-size, 20);
@include nn-px-to-unit(width, 100);
@include nn-px-to-unit(min-width, 100);
@include nn-px-to-unit(mann-width, 100);
@include nn-px-to-unit(height, 100);
@include nn-px-to-unit(min-height, 100);
@include nn-px-to-unit(mann-height, 100);
```

## Source
---
http://css-tricks.com/snippets/css/less-mixin-for-rem-font-sizing/

*/
/* doc
---
title: Pixel to unitless
name: nn-px-to-unitless
category: functions
---

This makes the same calculation as px to em. But it don't print out the unit.

Use this for line-heights.

## Live Template abbreviations
---

## Parameters
---
@parameter $value = pixel based number (without unit)
@parameter $base = pixel based number (without unit)

## Dependencies
---

## Example
---

```html_example
line-height: nn-px-to-unitless(5) // Output: 0.3125
```

## Source
---

*/
/* doc
---
title: Strip unit
name: nn-strip-unit
category: functions
---

Strips of the unit of a number

## Parameters
---
@parameter $num = number with unit (5px, 5em, 5rem)

## Example
---

```html_example
nn-strip-unit(5px) //Output: 5
nn-strip-unit(10em) // Output: 10
nn-strip-unit(15rem) // Output: 15
```

*/
/* doc
---
title: z-index
name: nn-z-index
category: functions
---

Because z-indices can get tricky we manage them in the theme.scss globally.

Always use this mixin to set set a z-index.

Read the Best Practice to get an full documentation:
https://projects.netcentric.biz/wiki/display/FRONTEND/How+to+set+a+z-index

## Live Template abbreviations
---
-z

## Parameters
---
@parameter $element = Name of the element (normally this will be the module name for the main stack)
@parameter $list = Name of the list (default $z-indices). Must be only set for stack context
@parameter $min = Set a minimum z-index which will be added to the list.

## Dependencies
---
$z-indices variable in the theme.scss

## Example
---

```html_example

// In the SASS theme file

$z-indices: slider, modal, dialog, navigation;

// In the SASS module file

.modal {
    &__base {
        position: absolute;
        z-index: nn-z-index(modal);
    }
}
```

## Source
---
http://www.smashingmagazine.com/2014/06/12/sassy-z-index-management-for-complex-layouts/

*/
/* doc
---
title: remove every unit
name: strip-unit
category: functions
---
remove all units

## Parameters
---
@parameter $number = number with unit

## Example
---
```html_example
strip-unit(5px) // Output: 5
```
*/
/* doc
---
title: Swap left right values
name: nn-rtl
category: functions
---

Swap the names right and left when $rtl is set to true.
If the value is not right or left it returns the original value.

In:  right
Out: left (in rtl), right (in ltr)

## Live Template abbreviations
---

## Parameters
---
@parameter $origin = right | left

## Example
---

```html_example
nn-rtl(left): 10px;
nn-rtl(padding-right): 30px;
nn-rtl(0 1px 8px 12px) // 0 12px 8px 1px
```

*/
/*
    This mixin converts any unitless number (for example 40) to the correct unit, according to the given axis.

    Parameters:
    - $value: unitless number to be converted. A unit in $value will correspond to a px in the browser,
        no matter if it's output as px or rem

    Returns
    - Horizontal: will convert the number to pixels (40px)
    - Vertical: will convert the number to rem (if rem === 16px, then 40 will be converted to 2.5 rem)
*/
/*
    Converts a unitless number to the corresponding unit on the horizontal axis.
    By default will convert the value to px.
*/
/*
    Converts a unitless number to the corresponding unit on the vertical axis.
    By default will convert the value to rem.
*/
/* stylelint-disable */
/* doc
---
title: Swap left right values
name: swap-left-right-values
category: functions
---

Swap the values for right and left when $rtl is set to true:

In:  0 5px 8px 12px
Out: 0 12px 8px 5px (in rtl)

## Parameters
---
@parameter $values = 4 numbers (works with all units)

## Example
---

```html_example
swap-left-right-values(0 1px 8px 12px) // 0 12px 8px 1px
swap-left-right-values(0 1em 8em 12em) // 0 12em 8em 1em
wap-left-right-values(0 1rem 8rem 12rem) // 0 12rem 8rem 1rem
```

## Source
---
http://stackoverflow.com/questions/14199323/right-to-left-rtl-support-in-sass-project

*/
/* stylelint-disable */
/* doc
---
title: Swap left right names
name: swap-left-right-names
category: functions
---

Swap the names right and left when $rtl is set to true.
If the value is not right or left it returns the original value.

In:  right
Out: left (in rtl), right (in ltr)

## Live Template abbreviations
---

## Parameters
---
@parameter $origin = right | left

## Example
---

```html_example
swap-left-right-name(left)
swap-left-right-name(right)
```

## Source
---
http://stackoverflow.com/questions/14199323/right-to-left-rtl-support-in-sass-project

*/
/*  List of CSS properties that will always be output at least as 2 different values
    in order to be able to convert each one to the correct axis unit */
/*
    Mixin for automatically handling spacings around/between elements.

    This mixin will automatically invert the lef/right directions in RTL languages.
    Also, the unitless values will be converted to the proper unit according to the axis

    Parameters:
    - $property-name: name of the CSS property that should be output. Supported properties are:
        margin, margin-top, margin-right, margin-bottom, margin-left
        padding, padding-top, padding-right, padding-bottom, padding-left
        width, height, min-width, max-width, min-height, min-height
    - $value: value that will be output as part of the given property. Supported values are:
        Unitless number (40): this should be used most of the times. It will automatically be converted
            to the correct unit depending on the axis where it's used (horizontal axis => px, vertical axis => rem).
            Each unit in $value will correspond to a px in the browser, no matter to which unit it will be converted.
        Number with unit (40px, 40%...): the number and the unit will be preserved and only the left/right inversion
            will be done for RTL languages
        List of values (40 30% 20 10): margin and padding shorthands whith multiple values are supported.
            The left/right values will be automatically swapped in RTL and the unitless numbers will be converted
            to the corresponding unit. Unitless and numbers with units can be mixed in the same call.
        Using calc() in any of the previous examples is supported, although no unit conversion will be done

 ## Example
---

```html_example
@include spacing(padding, 0 10px 20 0); => padding: 0 10px 2rem 0;
@include spacing(padding, 0 10 20 0); => padding: 0 10px 2rem 0;
@include spacing(padding-left, 10);
@include spacing(padding-right, 10);
@include spacing(margin, 0 10 20 0);
@include spacing(margin-left, 10);
@include spacing(margin-right, 10);
@include spacing(width, 100);
@include spacing(min-width, 100);
@include spacing(max-width, 100);
@include spacing(height, 100);
@include spacing(min-height, 100);
@include spacing(max-height, 100);
```
*/
/* doc
---
title: Clearfix
name: clearfix
category: mixins
---

Clears after floating element

Use this mixin only inside media queries where you can't use the
abstract/extends/utils/_clearfix version, which adds less code to css

## Live Template abbreviations
---

## Example
---

```html_example
@include clearfix;
```

## Source
---
https://css-tricks.com/snippets/css/clear-fix/
*/
/* stylelint-disable string-no-newline */
/* doc
---
title: focus color
name: focus color
category: mixins
---

Add a focus color when keyboard-focus is activated
## Parameters
---
@param $number

*/
/* doc
---
title: ignore-container
name: ignore-container
category: mixins
---

Set full page width for something inside a container

## Parameters
---
@param $container-size
@param $gutter

*/
/* Generates all the rules for the grid columns up to the given amount of column */
/* Generates all the rules for the grid column offset up to the given amount of column */
/* Generates all the rules for the grid and columns for the given break point and total of columns */
/* API function to be called to generate a grid config */
/* doc
---
type: button type
state: state button
---

Button styles

Use this mixin for button styles: color text, background, border

## Example
---

```html_example
@include button(primary);
```
*/
/* doc
---
lineLimit: This value specifies the number of lines after which the content will be clamped. It must be greater than 0.
---

Truncates text at a specific number of lines.

Use this mixin to hide long text.

## Example
---

```html_example
@include line-clamp($lineLimit: 4);
```
*/
/* typography
---
title: typography
name: Typography
category: mixins
---

Adds font CSS properties by a map provided

## Parameters
---
@param $t-style
@param $is-important: false

* $t-style is expected to be a map with 'default' and 'breakpoint[s]' submaps with a property
for every css property to be set.
* $is-important parameter allows to force typography properties to be set as !important
Try to avoid its use, but it might be needed for situations where styles for a component
are very specific and to overwrite the generic ones is too complex (if they have a lot of specificity)

*/
/* doc
---
title: hidden
name: hidden
category: mixins
---

Hide from both screenreaders and browsers: h5bp.com/u
## Parameters
---

*/
/* doc
---
title: overlay
name: overlay
category: mixins
---

Creates an overlay with the provided background color
## Parameters
---
@param $bgColor

*/
/**
 * @mixin top-bottom-border
 * @desc Creates a dynamic and customizable border at the specified position on an element.
 *
 * @param {string} $position - Optional, Default: 'bottom'. Defines the position of the border. Accepts values 'top' or 'bottom'.
 * @param {color} $color - Optional, Default: '$c-black'. Specifies the color of the border. Accepts any valid CSS color value.
 * @param {length} $width - Optional, Default: '2px'. Sets the width of the border. Accepts any valid CSS length value.
 * @param {length} $margin - Optional, Default: '0'. Adds margin to the border. Accepts any valid CSS length value.
 *
 * @example
 *   .example-element {
 *       @include top-bottom-border($position: top, $color: $c-grey-two, $width: 3px, $margin: 10px);
 *   }
 */
/* doc
---
title: reset-fullwidth-margins
name: reset-fullwidth-margins
category: mixins
---

Reset margins for full width components inside a Container or a Column Control
*/
.teaser:not(.teaser--hero):not(.teaser--layout-top) {
  --teaser-height: 300px;
}
@media (min-width: 960px) {
  .teaser:not(.teaser--hero):not(.teaser--layout-top) {
    --teaser-height: 440px;
  }
}

.cmp-teaser {
  position: relative;
  display: flex;
  align-items: center;
  min-height: var(--teaser-height);
}
@media (min-width: 960px) {
  .cmp-teaser {
    margin: 0;
  }
}
.cmp-teaser__content {
  padding: 3.75rem 30px;
  pointer-events: none;
  z-index: 2;
  position: relative;
}
.cmp-teaser__content.is-hidden {
  display: none;
}
@media (max-width: 767px) {
  .cmp-carousel__item .cmp-teaser__content {
    padding: 0 56px;
  }
}
.cmp-teaser__title {
  margin-bottom: 25px;
}
[data-dealer-private] .cmp-teaser__title {
  letter-spacing: -0.1px;
}
.cmp-teaser__description {
  font-family: var(--ff-regular);
  font-size: 16px;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: var(--ls-default);
  color: #53565a;
  margin-top: 1em;
}
.cmp-teaser__description a {
  color: #004fbc;
}
.cmp-teaser__description a:hover, .cmp-teaser__description a:focus {
  color: #0056d6;
}
.cmp-teaser__description ul,
.cmp-teaser__description ol {
  padding-left: 32px;
}
.cmp-teaser__description ul {
  list-style: disc;
}
.cmp-teaser__description ol {
  list-style: decimal;
}
.cmp-teaser__description h1,
.cmp-teaser__description h2,
.cmp-teaser__description h3,
.cmp-teaser__description h4,
.cmp-teaser__description h5,
.cmp-teaser__description h6 {
  color: #53565a;
}
.cmp-teaser__action-container {
  margin-top: 1em;
  padding-inline-end: 1.5rem;
}
.teaser__cta--link .cmp-teaser__action-container {
  display: flex;
  flex-direction: column;
}
.cmp-teaser__action-link {
  pointer-events: all;
  margin: 0 10px 10px 0;
  border-radius: 4px;
}
.cmp-teaser__action-link::after {
  margin-inline-start: 10px;
  display: inline-block;
  position: relative;
  top: -2px;
  width: 24px !important;
  height: 24px !important;
  vertical-align: middle;
  pointer-events: all !important;
}
.teaser__cta--link .cmp-teaser__action-link::after {
  margin-inline-end: -34px;
}
.teaser:not(.teaser__cta--secondary):not(.teaser__cta--link):not(.teaser__cta--video) .cmp-teaser__action-link:first-child {
  display: inline-block;
  align-items: center;
  text-decoration: none;
  font-family: var(--ff-medium);
  box-sizing: border-box;
  padding: 12px 32px;
  background: #004fbc;
  border: 1px solid #004fbc;
  color: #fff;
  transition: background 1s;
}
.teaser:not(.teaser__cta--secondary):not(.teaser__cta--link):not(.teaser__cta--video) .cmp-teaser__action-link:first-child:hover, .teaser:not(.teaser__cta--secondary):not(.teaser__cta--link):not(.teaser__cta--video) .cmp-teaser__action-link:first-child:focus {
  color: #fff;
  background: #0056d6;
  border: 1px solid #0056d6;
  text-decoration: none;
}
.teaser:not(.teaser__cta--secondary):not(.teaser__cta--link):not(.teaser__cta--video) .cmp-teaser__action-link:first-child:hover::after, .teaser:not(.teaser__cta--secondary):not(.teaser__cta--link):not(.teaser__cta--video) .cmp-teaser__action-link:first-child:focus::after {
  transform: var(--button-icon-transform-hover);
}
.teaser:not(.teaser__cta--secondary):not(.teaser__cta--link):not(.teaser__cta--video) .cmp-teaser__action-link:first-child::after {
  transform: var(--button-icon-transform);
  transition: transform 0.3s ease-out;
}
.teaser:not(.teaser__cta--secondary):not(.teaser__cta--link):not(.teaser__cta--video) .cmp-teaser__action-link:first-child:active {
  background: #0041a3;
}
.teaser:not(.teaser__cta--secondary):not(.teaser__cta--link):not(.teaser__cta--video) .cmp-teaser__action-link:first-child:active, .teaser:not(.teaser__cta--secondary):not(.teaser__cta--link):not(.teaser__cta--video) .cmp-teaser__action-link:first-child:focus, .teaser:not(.teaser__cta--secondary):not(.teaser__cta--link):not(.teaser__cta--video) .cmp-teaser__action-link:first-child:focus-visible {
  outline: 2px solid #0041a3;
  outline-offset: 3px;
}
.teaser:not(.teaser__cta--secondary):not(.teaser__cta--link):not(.teaser__cta--video) .cmp-teaser__action-link:first-child:disabled, .teaser:not(.teaser__cta--secondary):not(.teaser__cta--link):not(.teaser__cta--video) .cmp-teaser__action-link:first-child.disabled {
  background: #8dc9bf;
  border: 1px solid #8dc9bf;
  cursor: not-allowed;
}
.teaser:not(.teaser__cta--secondary):not(.teaser__cta--link):not(.teaser__cta--video) .cmp-teaser__action-link:first-child:after {
  background-color: #fff;
  content: "";
  display: inline-block;
  -webkit-mask-image: url("../../../../../../content/dam/volvo-media/list-icons/chevron-right.svg#chevron-right-icon-w24-view");
          mask-image: url("../../../../../../content/dam/volvo-media/list-icons/chevron-right.svg#chevron-right-icon-w24-view");
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-size: cover;
          mask-size: cover;
  pointer-events: none;
  width: 24px;
  height: 24px;
}
@media (min-width: 1200px) {
  .teaser:not(.teaser__cta--secondary):not(.teaser__cta--link):not(.teaser__cta--video) .cmp-teaser__action-link:first-child:after {
    -webkit-mask-image: url("../../../../../../content/dam/volvo-media/list-icons/chevron-right.svg#chevron-right-icon-w16-view");
            mask-image: url("../../../../../../content/dam/volvo-media/list-icons/chevron-right.svg#chevron-right-icon-w16-view");
  }
}
.teaser:not(.teaser__cta--secondary):not(.teaser__cta--link):not(.teaser__cta--video) .cmp-teaser__action-link:first-child[target=_blank]:after {
  background-color: #fff;
  content: "";
  display: inline-block;
  -webkit-mask-image: url("../../../../../../content/dam/volvo-media/list-icons/link-external.svg#link-external-icon-w24-view");
          mask-image: url("../../../../../../content/dam/volvo-media/list-icons/link-external.svg#link-external-icon-w24-view");
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-size: cover;
          mask-size: cover;
  pointer-events: none;
  width: 24px;
  height: 24px;
}
@media (min-width: 1200px) {
  .teaser:not(.teaser__cta--secondary):not(.teaser__cta--link):not(.teaser__cta--video) .cmp-teaser__action-link:first-child[target=_blank]:after {
    -webkit-mask-image: url("../../../../../../content/dam/volvo-media/list-icons/link-external.svg#link-external-icon-w16-view");
            mask-image: url("../../../../../../content/dam/volvo-media/list-icons/link-external.svg#link-external-icon-w16-view");
  }
}
.teaser:not(.teaser__cta--secondary):not(.teaser__cta--link):not(.teaser__cta--video) .cmp-teaser__action-link:first-child[target=_blank]::after {
  background-color: #fff;
}
.teaser:not(.teaser__cta--secondary):not(.teaser__cta--link):not(.teaser__cta--video) .cmp-teaser__action-link:first-child::after {
  background-color: #fff;
}
.cmp-teaser__action-link:not(:first-child) {
  display: inline-block;
  align-items: center;
  text-decoration: none;
  font-family: var(--ff-medium);
  box-sizing: border-box;
  padding: 12px 32px;
  background: #fff;
  border: 1px solid #53565a;
  color: #53565a;
  transition: background 1s;
  padding-inline-end: 1.3125rem;
}
.cmp-teaser__action-link:not(:first-child):hover, .cmp-teaser__action-link:not(:first-child):focus {
  background: #f7f7f7;
  text-decoration: none;
  color: #53565a;
}
.cmp-teaser__action-link:not(:first-child):hover::after, .cmp-teaser__action-link:not(:first-child):focus::after {
  transform: var(--button-icon-transform-hover);
}
.cmp-teaser__action-link:not(:first-child):active {
  background: #e1dfdd;
}
.cmp-teaser__action-link:not(:first-child):active, .cmp-teaser__action-link:not(:first-child):focus, .cmp-teaser__action-link:not(:first-child):focus-visible {
  outline: 2px solid #0041a3;
  outline-offset: 3px;
}
.cmp-teaser__action-link:not(:first-child)::after {
  transform: var(--button-icon-transform);
  transition: transform 0.3s ease-out;
}
.cmp-teaser__action-link:not(:first-child):disabled, .cmp-teaser__action-link:not(:first-child).disabled {
  border: 1px solid #888b8d;
  color: #888b8d;
}
.cmp-teaser__action-link:not(:first-child):after {
  background-color: #53565a;
  content: "";
  display: inline-block;
  -webkit-mask-image: url("../../../../../../content/dam/volvo-media/list-icons/chevron-right.svg#chevron-right-icon-w24-view");
          mask-image: url("../../../../../../content/dam/volvo-media/list-icons/chevron-right.svg#chevron-right-icon-w24-view");
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-size: cover;
          mask-size: cover;
  pointer-events: none;
  width: 24px;
  height: 24px;
}
@media (min-width: 1200px) {
  .cmp-teaser__action-link:not(:first-child):after {
    -webkit-mask-image: url("../../../../../../content/dam/volvo-media/list-icons/chevron-right.svg#chevron-right-icon-w16-view");
            mask-image: url("../../../../../../content/dam/volvo-media/list-icons/chevron-right.svg#chevron-right-icon-w16-view");
  }
}
.cmp-teaser__action-link:not(:first-child)[target=_blank]:after {
  background-color: #53565a;
  content: "";
  display: inline-block;
  -webkit-mask-image: url("../../../../../../content/dam/volvo-media/list-icons/link-external.svg#link-external-icon-w24-view");
          mask-image: url("../../../../../../content/dam/volvo-media/list-icons/link-external.svg#link-external-icon-w24-view");
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-size: cover;
          mask-size: cover;
  pointer-events: none;
  width: 24px;
  height: 24px;
}
@media (min-width: 1200px) {
  .cmp-teaser__action-link:not(:first-child)[target=_blank]:after {
    -webkit-mask-image: url("../../../../../../content/dam/volvo-media/list-icons/link-external.svg#link-external-icon-w16-view");
            mask-image: url("../../../../../../content/dam/volvo-media/list-icons/link-external.svg#link-external-icon-w16-view");
  }
}
.teaser:not(.teaser__cta--secondary):not(.teaser__cta--link):not(.teaser--layout-top) .cmp-teaser__action-link:not(:first-child) {
  color: #53565a;
}
.teaser:not(.teaser__cta--secondary):not(.teaser__cta--link):not(.teaser--layout-top) .cmp-teaser__action-link:not(:first-child)::after, .teaser:not(.teaser__cta--secondary):not(.teaser__cta--link):not(.teaser--layout-top) .cmp-teaser__action-link:not(:first-child)[target=_blank]::after {
  background-color: #53565a;
}
.cmp-teaser__embed, .cmp-teaser__image {
  position: absolute;
  inset: 0;
}
.cmp-teaser__embed .embed__youtube:not(.embed__youtube--withThumbnail) {
  aspect-ratio: auto;
}
.cmp-teaser__embed .embed__youtube__thumbnail {
  min-height: var(--teaser-height);
  max-height: var(--teaser-height);
}
.cmp-teaser__embed .embed__youtube iframe,
.cmp-teaser__embed iframe {
  max-width: 100%;
  height: var(--teaser-height);
}
.cmp-teaser__embed + .cmp-teaser__content {
  pointer-events: none;
}
.cmp-teaser__embed .cmp-embed > * {
  margin: 0;
}
.cmp-teaser__image img,
.cmp-teaser__image .cmp-image,
.cmp-teaser__image .cmp-image__image {
  object-fit: cover;
  object-position: center;
  width: 100%;
  height: 100%;
}
.cmp-teaser__image .cmp-image video, .cmp-teaser__image .cmp-image__image video {
  height: 100%;
}
.cmp-teaser__image .cmp-image .s7dm-dynamic-media video, .cmp-teaser__image .cmp-image__image .s7dm-dynamic-media video {
  top: 0 !important;
  left: 0 !important;
  min-width: 100% !important;
  min-height: 100% !important;
}
.cmp-teaser__image .cmp-image .img__link {
  width: 100%;
}

.teaser:not(.teaser--layout-top):not(.stage).teaser__text--center .cmp-teaser__content {
  max-width: 820px;
}
.teaser:not(.teaser--layout-top):not(.stage) .cmp-teaser__content {
  max-width: 620px;
}
@media (min-width: 960px) {
  .carousel .teaser:not(.teaser--layout-top):not(.stage) .cmp-teaser__content {
    width: 50%;
    max-width: none;
  }
}
.collage .teaser:not(.teaser--layout-top):not(.stage) .cmp-teaser__content {
  width: 100%;
  max-width: none;
}

.teaser:not(.teaser__cta--link) .cmp-teaser__action-container {
  margin-top: 25px;
}

.teaser--hero {
  --teaser-height: 440px;
}
@media (min-width: 960px) {
  .teaser--hero {
    --teaser-height: 600px;
  }
}

.teaser--layout-top .cmp-teaser {
  display: block;
}
.teaser--layout-top .cmp-teaser__content {
  position: static;
  transform: none;
  pointer-events: all;
  padding: 1em 0;
}
.teaser--layout-top .cmp-teaser__image, .teaser--layout-top .cmp-teaser__embed {
  position: relative;
  aspect-ratio: 16/9;
}
.teaser--layout-top .cmp-teaser__embed iframe {
  aspect-ratio: 16/9;
  height: auto;
}
.teaser--layout-top.teaser__cta--video .cmp-teaser__action-container {
  position: absolute;
  top: 0;
  left: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  margin-top: 0;
  height: 0;
  padding-top: 57%;
}
.teaser--layout-top.teaser__cta--video .cmp-teaser__action-container .cmp-teaser__action-link {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 75px;
  height: 75px;
  margin: -25px 0 0 -40px;
}
.teaser--layout-top.teaser__cta--video .cmp-teaser__action-container .cmp-teaser__action-link::before {
  font-size: 34px;
}

.teaser__cta--secondary .cmp-teaser__action-link {
  display: inline-block;
  align-items: center;
  text-decoration: none;
  font-family: var(--ff-medium);
  box-sizing: border-box;
  padding: 12px 32px;
  background: #fff;
  border: 1px solid #53565a;
  color: #53565a;
  transition: background 1s;
  padding-inline-end: 1.3125rem;
}
.teaser__cta--secondary .cmp-teaser__action-link:hover, .teaser__cta--secondary .cmp-teaser__action-link:focus {
  background: #f7f7f7;
  text-decoration: none;
  color: #53565a;
}
.teaser__cta--secondary .cmp-teaser__action-link:hover::after, .teaser__cta--secondary .cmp-teaser__action-link:focus::after {
  transform: var(--button-icon-transform-hover);
}
.teaser__cta--secondary .cmp-teaser__action-link:active {
  background: #e1dfdd;
}
.teaser__cta--secondary .cmp-teaser__action-link:active, .teaser__cta--secondary .cmp-teaser__action-link:focus, .teaser__cta--secondary .cmp-teaser__action-link:focus-visible {
  outline: 2px solid #0041a3;
  outline-offset: 3px;
}
.teaser__cta--secondary .cmp-teaser__action-link::after {
  transform: var(--button-icon-transform);
  transition: transform 0.3s ease-out;
}
.teaser__cta--secondary .cmp-teaser__action-link:disabled, .teaser__cta--secondary .cmp-teaser__action-link.disabled {
  border: 1px solid #888b8d;
  color: #888b8d;
}
.teaser__cta--secondary .cmp-teaser__action-link:after {
  background-color: #53565a;
  content: "";
  display: inline-block;
  -webkit-mask-image: url("../../../../../../content/dam/volvo-media/list-icons/chevron-right.svg#chevron-right-icon-w24-view");
          mask-image: url("../../../../../../content/dam/volvo-media/list-icons/chevron-right.svg#chevron-right-icon-w24-view");
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-size: cover;
          mask-size: cover;
  pointer-events: none;
  width: 24px;
  height: 24px;
}
@media (min-width: 1200px) {
  .teaser__cta--secondary .cmp-teaser__action-link:after {
    -webkit-mask-image: url("../../../../../../content/dam/volvo-media/list-icons/chevron-right.svg#chevron-right-icon-w16-view");
            mask-image: url("../../../../../../content/dam/volvo-media/list-icons/chevron-right.svg#chevron-right-icon-w16-view");
  }
}
.teaser__cta--secondary .cmp-teaser__action-link[target=_blank]:after {
  background-color: #53565a;
  content: "";
  display: inline-block;
  -webkit-mask-image: url("../../../../../../content/dam/volvo-media/list-icons/link-external.svg#link-external-icon-w24-view");
          mask-image: url("../../../../../../content/dam/volvo-media/list-icons/link-external.svg#link-external-icon-w24-view");
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-size: cover;
          mask-size: cover;
  pointer-events: none;
  width: 24px;
  height: 24px;
}
@media (min-width: 1200px) {
  .teaser__cta--secondary .cmp-teaser__action-link[target=_blank]:after {
    -webkit-mask-image: url("../../../../../../content/dam/volvo-media/list-icons/link-external.svg#link-external-icon-w16-view");
            mask-image: url("../../../../../../content/dam/volvo-media/list-icons/link-external.svg#link-external-icon-w16-view");
  }
}
.teaser__cta--video .cmp-teaser {
  position: relative;
}
.teaser__cta--video .cmp-teaser__action-link {
  display: inline-block;
  align-items: center;
  text-decoration: none;
  font-family: var(--ff-medium);
  box-sizing: border-box;
  width: 75px;
  height: 75px;
  font-size: 0;
  text-align: center;
  color: #53565a;
  background-color: #e1dfdd;
  border-radius: 50%;
  box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.3);
  transition: background-color 0.3s;
  padding: 0;
  border: 0;
  width: 50px;
  height: 50px;
  color: #fff;
}
.teaser__cta--video .cmp-teaser__action-link:before {
  font-family: "VolvoIcons";
  content: "\e911";
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  vertical-align: baseline;
  display: inline-block;
  line-height: 0;
  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media (min-width: 960px) {
  .teaser__cta--video .cmp-teaser__action-link {
    width: 50px;
    height: 50px;
  }
}
.teaser__cta--video .cmp-teaser__action-link:hover, .teaser__cta--video .cmp-teaser__action-link:focus {
  color: #53565a;
  background-color: #e1dfdd;
  border: 0;
}
.teaser__cta--video .cmp-teaser__action-link:hover::before, .teaser__cta--video .cmp-teaser__action-link:focus::before {
  transform: scale(1.1);
}
.teaser__cta--video .cmp-teaser__action-link::before {
  margin-left: 7px;
  font-size: 34px;
  line-height: 2.2;
  transition: transform 0.3s ease-in-out;
}
@media (min-width: 960px) {
  .teaser__cta--video .cmp-teaser__action-link::before {
    font-size: 23px;
  }
}
.teaser__cta--video .cmp-teaser__action-link::before {
  font-size: 23px;
  margin-left: 4px;
}
.teaser__cta--video .cmp-teaser__action-link::after {
  content: none;
  opacity: 0;
}
.teaser__cta--video .cmp-teaser__action-container {
  text-align: center;
}
.teaser__cta--video:not(.teaser--layout-top) .cmp-teaser__action-container {
  margin-top: 25px;
  display: flex;
  align-items: center;
  justify-content: flex-start;
}
.teaser__cta--link:not(.teaser__cta--secondary) .cmp-teaser__action-link {
  font-family: var(--ff-regular);
  font-size: 16px;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: var(--ls-default);
  padding: 0;
  color: #004fbc;
  background: transparent;
  border: 0;
}
.teaser__cta--link:not(.teaser__cta--secondary) .cmp-teaser__action-link:after {
  background-color: #004fbc;
  content: "";
  display: inline-block;
  -webkit-mask-image: url("../../../../../../content/dam/volvo-media/list-icons/chevron-right.svg#chevron-right-icon-w24-view");
          mask-image: url("../../../../../../content/dam/volvo-media/list-icons/chevron-right.svg#chevron-right-icon-w24-view");
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-size: cover;
          mask-size: cover;
  pointer-events: none;
  width: var(--v-icon-size);
  height: var(--v-icon-size);
}
@media (min-width: 1200px) {
  .teaser__cta--link:not(.teaser__cta--secondary) .cmp-teaser__action-link:after {
    -webkit-mask-image: url("../../../../../../content/dam/volvo-media/list-icons/chevron-right.svg#chevron-right-icon-w16-view");
            mask-image: url("../../../../../../content/dam/volvo-media/list-icons/chevron-right.svg#chevron-right-icon-w16-view");
  }
}
.teaser__cta--link:not(.teaser__cta--secondary) .cmp-teaser__action-link::after {
  font-size: 16px;
  transition: transform 0.3s ease-out;
  display: inline-block;
  content: "";
  transform: var(--button-icon-transform);
}
.teaser__cta--link:not(.teaser__cta--secondary) .cmp-teaser__action-link:hover::after {
  transform: var(--button-icon-transform-hover);
}
.teaser__cta--link:not(.teaser__cta--secondary) .cmp-teaser__action-link[target=_blank]:after {
  background-color: #004fbc;
  content: "";
  display: inline-block;
  -webkit-mask-image: url("../../../../../../content/dam/volvo-media/list-icons/link-external.svg#link-external-icon-w24-view");
          mask-image: url("../../../../../../content/dam/volvo-media/list-icons/link-external.svg#link-external-icon-w24-view");
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-size: cover;
          mask-size: cover;
  pointer-events: none;
  width: var(--v-icon-size);
  height: var(--v-icon-size);
}
@media (min-width: 1200px) {
  .teaser__cta--link:not(.teaser__cta--secondary) .cmp-teaser__action-link[target=_blank]:after {
    -webkit-mask-image: url("../../../../../../content/dam/volvo-media/list-icons/link-external.svg#link-external-icon-w16-view");
            mask-image: url("../../../../../../content/dam/volvo-media/list-icons/link-external.svg#link-external-icon-w16-view");
  }
}

.teaser {
  margin: 30px 0;
}
.teaser.margin-top--none {
  margin-top: 0;
}
.teaser.margin-top--single {
  margin-top: 30px;
}
.teaser.margin-top--double {
  margin-top: 30px;
}
@media (min-width: 768px) {
  .teaser.margin-top--double {
    margin-top: calc(30px * 2);
  }
}
.teaser.margin-bottom--none {
  margin-bottom: 0;
}
.teaser.margin-bottom--single {
  margin-bottom: 30px;
}
.teaser.margin-bottom--double {
  margin-bottom: 30px;
}
@media (min-width: 768px) {
  .teaser.margin-bottom--double {
    margin-bottom: calc(30px * 2);
  }
}
.aem-Grid > .teaser:first-child:not(.margin-top--single):not(.margin-top--double) {
  margin-top: 0;
}

.teaser__img--full .cmp-teaser__image {
  margin: 0 -15px;
}
@media (min-width: 960px) {
  .teaser__img--full .cmp-teaser__image {
    margin: 0 -15px;
  }
}
@media (min-width: 1200px) {
  .teaser__img--full .cmp-teaser__image {
    width: auto;
    margin: 0 calc((100vw - 1200px) / -2);
  }
}
@media (min-width: 2048px) {
  .teaser__img--full .cmp-teaser__image {
    width: auto;
    margin: 0 calc((2048px - 1200px) / -2);
  }
  .container--fullWidth .teaser__img--full .cmp-teaser__image {
    margin: 0;
  }
  .columncontrol__column:first-child .teaser__img--full .cmp-teaser__image {
    margin-right: 0;
  }
  .columncontrol__column:last-child .teaser__img--full .cmp-teaser__image {
    margin-left: 0;
  }
}

.teaser__overlay--dark.teaser .cmp-image img, .teaser__overlay--dark.teaser--hero .cmp-image img {
  filter: brightness(50%);
}
.teaser__overlay--lighter-dark.teaser .cmp-image img, .teaser__overlay--lighter-dark.teaser--hero .cmp-image img {
  filter: brightness(80%);
}

.teaser__text--right:not(.teaser--layout-top) .cmp-teaser {
  justify-content: flex-end;
}
.teaser__text--center .cmp-teaser {
  justify-content: center;
}
.teaser__text--center .cmp-teaser__content {
  text-align: center;
}
@media (min-width: 768px) {
  .teaser__text--center .cmp-teaser__content .cmp-teaser__description {
    max-width: 500px;
    margin: 0 auto;
  }
}
@media (min-width: 960px) {
  .teaser__text--center .cmp-teaser__content .cmp-teaser__description {
    max-width: 820px;
    margin: 0 auto;
  }
}
.teaser__text--center .cmp-teaser__content .cmp-teaser__action-container {
  justify-content: center;
}
.teaser__text--center.teaser:not(.teaser__cta--link) .cmp-teaser__action-link {
  transform: translateX(17px);
}
.teaser__text--white .cmp-teaser__description {
  color: #fff;
}
.teaser__text--white .cmp-teaser__description h1,
.teaser__text--white .cmp-teaser__description h2,
.teaser__text--white .cmp-teaser__description h3,
.teaser__text--white .cmp-teaser__description h4,
.teaser__text--white .cmp-teaser__description h5,
.teaser__text--white .cmp-teaser__description h6 {
  color: #fff;
}
.teaser__text--white .cmp-teaser__title {
  color: #fff;
}
.teaser__text--white:not(.teaser__cta--secondary):not(.teaser--layout-top) .cmp-teaser a:not(.img__link) {
  color: #fff;
}
.teaser__text--white:not(.teaser__cta--secondary):not(.teaser--layout-top) .cmp-teaser a:not(.img__link):after {
  background-color: #fff;
  content: "";
  display: inline-block;
  -webkit-mask-image: url("../../../../../../content/dam/volvo-media/list-icons/chevron-right.svg#chevron-right-icon-w24-view");
          mask-image: url("../../../../../../content/dam/volvo-media/list-icons/chevron-right.svg#chevron-right-icon-w24-view");
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-size: cover;
          mask-size: cover;
  pointer-events: none;
  width: var(--v-icon-size);
  height: var(--v-icon-size);
}
@media (min-width: 1200px) {
  .teaser__text--white:not(.teaser__cta--secondary):not(.teaser--layout-top) .cmp-teaser a:not(.img__link):after {
    -webkit-mask-image: url("../../../../../../content/dam/volvo-media/list-icons/chevron-right.svg#chevron-right-icon-w16-view");
            mask-image: url("../../../../../../content/dam/volvo-media/list-icons/chevron-right.svg#chevron-right-icon-w16-view");
  }
}
.teaser__text--white:not(.teaser__cta--secondary):not(.teaser--layout-top) .cmp-teaser a:not(.img__link)[target=_blank]:after {
  background-color: #fff;
  content: "";
  display: inline-block;
  -webkit-mask-image: url("../../../../../../content/dam/volvo-media/list-icons/link-external.svg#link-external-icon-w24-view");
          mask-image: url("../../../../../../content/dam/volvo-media/list-icons/link-external.svg#link-external-icon-w24-view");
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-size: cover;
          mask-size: cover;
  pointer-events: none;
  width: var(--v-icon-size);
  height: var(--v-icon-size);
}
@media (min-width: 1200px) {
  .teaser__text--white:not(.teaser__cta--secondary):not(.teaser--layout-top) .cmp-teaser a:not(.img__link)[target=_blank]:after {
    -webkit-mask-image: url("../../../../../../content/dam/volvo-media/list-icons/link-external.svg#link-external-icon-w16-view");
            mask-image: url("../../../../../../content/dam/volvo-media/list-icons/link-external.svg#link-external-icon-w16-view");
  }
}
.teaser__text--white:not(.teaser__cta--secondary):not(.teaser--layout-top) .cmp-teaser .video__link {
  position: absolute;
}
.teaser__text--white.teaser--layout-top .cmp-teaser__description {
  color: #53565a;
}
.teaser__text--white.teaser--layout-top .cmp-teaser__description h1,
.teaser__text--white.teaser--layout-top .cmp-teaser__description h2,
.teaser__text--white.teaser--layout-top .cmp-teaser__description h3,
.teaser__text--white.teaser--layout-top .cmp-teaser__description h4,
.teaser__text--white.teaser--layout-top .cmp-teaser__description h5,
.teaser__text--white.teaser--layout-top .cmp-teaser__description h6 {
  color: #141414;
}
.teaser__text--white.teaser--layout-top .cmp-teaser__title {
  color: #141414;
}
.teaser .cmp-teaser__title {
  font-family: var(--ff-broad);
  font-size: 48px;
  font-weight: 500;
  line-height: 0.95;
  letter-spacing: var(--ls-volvo);
  margin-bottom: 25px;
}
.teaser__title--volvonovum .cmp-teaser__title, .teaser--layout-top:not(.teaserlist) .cmp-teaser__title {
  font-family: var(--ff-medium);
  font-size: 27px;
  font-weight: 400;
  line-height: 1.2;
  letter-spacing: var(--ls-default);
}
@media (min-width: 768px) {
  .teaser__title--volvonovum .cmp-teaser__title, .teaser--layout-top:not(.teaserlist) .cmp-teaser__title {
    font-size: 32px;
  }
}
/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZpbGU6Ly8vYnVpbGRfcm9vdC9idWlsZC9nbG9iYWwtcDExMDQ5OC11azQzMDExL3ZvbHZvLWNsaWVudGxpYnMtYXBwcy9zcmMvbWFpbi9mcm9udGVuZC92b2x2by9jb21tb24vc3R5bGVzL3ZhcmlhYmxlcy9faW1wb3J0X3ZhcmlhYmxlcy5zY3NzIiwiZmlsZTovLy9idWlsZF9yb290L2J1aWxkL2dsb2JhbC1wMTEwNDk4LXVrNDMwMTEvdm9sdm8tY2xpZW50bGlicy1hcHBzL3NyYy9tYWluL2Zyb250ZW5kL3ZvbHZvL2NvbW1vbi9zdHlsZXMvdmFyaWFibGVzL190eXBvZ3JhcGhpZXMuc2NzcyIsImZpbGU6Ly8vYnVpbGRfcm9vdC9idWlsZC9nbG9iYWwtcDExMDQ5OC11azQzMDExL3ZvbHZvLWNsaWVudGxpYnMtYXBwcy9zcmMvbWFpbi9mcm9udGVuZC92b2x2by9jb21tb24vc3R5bGVzL3ZhcmlhYmxlcy9fel9pbmRleC5zY3NzIiwiZmlsZTovLy9idWlsZF9yb290L2J1aWxkL2dsb2JhbC1wMTEwNDk4LXVrNDMwMTEvdm9sdm8tY2xpZW50bGlicy1hcHBzL3NyYy9tYWluL2Zyb250ZW5kL3ZvbHZvL2NvbW1vbi9zdHlsZXMvYWJzdHJhY3QvZnVuY3Rpb25zL19ubi1weC10by1lbS5zY3NzIiwiZmlsZTovLy9idWlsZF9yb290L2J1aWxkL2dsb2JhbC1wMTEwNDk4LXVrNDMwMTEvdm9sdm8tY2xpZW50bGlicy1hcHBzL3NyYy9tYWluL2Zyb250ZW5kL3ZvbHZvL2NvbW1vbi9zdHlsZXMvYWJzdHJhY3QvZnVuY3Rpb25zL19ubi1weC10by1yZW0uc2NzcyIsImZpbGU6Ly8vYnVpbGRfcm9vdC9idWlsZC9nbG9iYWwtcDExMDQ5OC11azQzMDExL3ZvbHZvLWNsaWVudGxpYnMtYXBwcy9zcmMvbWFpbi9mcm9udGVuZC92b2x2by9jb21tb24vc3R5bGVzL2Fic3RyYWN0L2Z1bmN0aW9ucy9fbm4tcHgtdG8tdW5pdC5zY3NzIiwiZmlsZTovLy9idWlsZF9yb290L2J1aWxkL2dsb2JhbC1wMTEwNDk4LXVrNDMwMTEvdm9sdm8tY2xpZW50bGlicy1hcHBzL3NyYy9tYWluL2Zyb250ZW5kL3ZvbHZvL2NvbW1vbi9zdHlsZXMvYWJzdHJhY3QvZnVuY3Rpb25zL19ubi1weC10by11bml0bGVzcy5zY3NzIiwiZmlsZTovLy9idWlsZF9yb290L2J1aWxkL2dsb2JhbC1wMTEwNDk4LXVrNDMwMTEvdm9sdm8tY2xpZW50bGlicy1hcHBzL3NyYy9tYWluL2Zyb250ZW5kL3ZvbHZvL2NvbW1vbi9zdHlsZXMvYWJzdHJhY3QvZnVuY3Rpb25zL19ubi1zdHJpcC11bml0LnNjc3MiLCJmaWxlOi8vL2J1aWxkX3Jvb3QvYnVpbGQvZ2xvYmFsLXAxMTA0OTgtdWs0MzAxMS92b2x2by1jbGllbnRsaWJzLWFwcHMvc3JjL21haW4vZnJvbnRlbmQvdm9sdm8vY29tbW9uL3N0eWxlcy9hYnN0cmFjdC9mdW5jdGlvbnMvX25uLXotaW5kZXguc2NzcyIsImZpbGU6Ly8vYnVpbGRfcm9vdC9idWlsZC9nbG9iYWwtcDExMDQ5OC11azQzMDExL3ZvbHZvLWNsaWVudGxpYnMtYXBwcy9zcmMvbWFpbi9mcm9udGVuZC92b2x2by9jb21tb24vc3R5bGVzL2Fic3RyYWN0L2Z1bmN0aW9ucy9fc3RyaXAtdW5pdC5zY3NzIiwiZmlsZTovLy9idWlsZF9yb290L2J1aWxkL2dsb2JhbC1wMTEwNDk4LXVrNDMwMTEvdm9sdm8tY2xpZW50bGlicy1hcHBzL3NyYy9tYWluL2Zyb250ZW5kL3ZvbHZvL2NvbW1vbi9zdHlsZXMvYWJzdHJhY3QvZnVuY3Rpb25zL19ubi1ydGwuc2NzcyIsImZpbGU6Ly8vYnVpbGRfcm9vdC9idWlsZC9nbG9iYWwtcDExMDQ5OC11azQzMDExL3ZvbHZvLWNsaWVudGxpYnMtYXBwcy9zcmMvbWFpbi9mcm9udGVuZC92b2x2by9jb21tb24vc3R5bGVzL2Fic3RyYWN0L2Z1bmN0aW9ucy9fcHgtdG8tYXhpcy11bml0LnNjc3MiLCJmaWxlOi8vL2J1aWxkX3Jvb3QvYnVpbGQvZ2xvYmFsLXAxMTA0OTgtdWs0MzAxMS92b2x2by1jbGllbnRsaWJzLWFwcHMvc3JjL21haW4vZnJvbnRlbmQvdm9sdm8vY29tbW9uL3N0eWxlcy9hYnN0cmFjdC9mdW5jdGlvbnMvX3N3YXAtbGVmdC1yaWdodC12YWx1ZXMuc2NzcyIsImZpbGU6Ly8vYnVpbGRfcm9vdC9idWlsZC9nbG9iYWwtcDExMDQ5OC11azQzMDExL3ZvbHZvLWNsaWVudGxpYnMtYXBwcy9zcmMvbWFpbi9mcm9udGVuZC92b2x2by9jb21tb24vc3R5bGVzL2Fic3RyYWN0L2Z1bmN0aW9ucy9fc3dhcC1sZWZ0LXJpZ2h0LW5hbWVzLnNjc3MiLCJmaWxlOi8vL2J1aWxkX3Jvb3QvYnVpbGQvZ2xvYmFsLXAxMTA0OTgtdWs0MzAxMS92b2x2by1jbGllbnRsaWJzLWFwcHMvc3JjL21haW4vZnJvbnRlbmQvdm9sdm8vY29tbW9uL3N0eWxlcy9hYnN0cmFjdC9mdW5jdGlvbnMvX3NwYWNpbmcuc2NzcyIsImZpbGU6Ly8vYnVpbGRfcm9vdC9idWlsZC9nbG9iYWwtcDExMDQ5OC11azQzMDExL3ZvbHZvLWNsaWVudGxpYnMtYXBwcy9zcmMvbWFpbi9mcm9udGVuZC92b2x2by9jb21tb24vc3R5bGVzL2Fic3RyYWN0L21peGlucy9fY2xlYXJmaXguc2NzcyIsImZpbGU6Ly8vYnVpbGRfcm9vdC9idWlsZC9nbG9iYWwtcDExMDQ5OC11azQzMDExL3ZvbHZvLWNsaWVudGxpYnMtYXBwcy9zcmMvbWFpbi9mcm9udGVuZC92b2x2by9jb21tb24vc3R5bGVzL2Fic3RyYWN0L21peGlucy9fZm9udC1pY29uLnNjc3MiLCJmaWxlOi8vL2J1aWxkX3Jvb3QvYnVpbGQvZ2xvYmFsLXAxMTA0OTgtdWs0MzAxMS92b2x2by1jbGllbnRsaWJzLWFwcHMvc3JjL21haW4vZnJvbnRlbmQvdm9sdm8vY29tbW9uL3N0eWxlcy9hYnN0cmFjdC9taXhpbnMvX2ZvY3VzLWNvbG9yLnNjc3MiLCJmaWxlOi8vL2J1aWxkX3Jvb3QvYnVpbGQvZ2xvYmFsLXAxMTA0OTgtdWs0MzAxMS92b2x2by1jbGllbnRsaWJzLWFwcHMvc3JjL21haW4vZnJvbnRlbmQvdm9sdm8vY29tbW9uL3N0eWxlcy9hYnN0cmFjdC9taXhpbnMvX2lnbm9yZS1jb250YWluZXIuc2NzcyIsImZpbGU6Ly8vYnVpbGRfcm9vdC9idWlsZC9nbG9iYWwtcDExMDQ5OC11azQzMDExL3ZvbHZvLWNsaWVudGxpYnMtYXBwcy9zcmMvbWFpbi9mcm9udGVuZC92b2x2by9jb21tb24vc3R5bGVzL2Fic3RyYWN0L21peGlucy9fZ2VuZXJhdGUtYWVtLWdyaWQuc2NzcyIsImZpbGU6Ly8vYnVpbGRfcm9vdC9idWlsZC9nbG9iYWwtcDExMDQ5OC11azQzMDExL3ZvbHZvLWNsaWVudGxpYnMtYXBwcy9zcmMvbWFpbi9mcm9udGVuZC92b2x2by9jb21tb24vc3R5bGVzL2Fic3RyYWN0L21peGlucy9fYnV0dG9uLnNjc3MiLCJmaWxlOi8vL2J1aWxkX3Jvb3QvYnVpbGQvZ2xvYmFsLXAxMTA0OTgtdWs0MzAxMS92b2x2by1jbGllbnRsaWJzLWFwcHMvc3JjL21haW4vZnJvbnRlbmQvdm9sdm8vY29tbW9uL3N0eWxlcy9hYnN0cmFjdC9taXhpbnMvX2xpbmUtY2xhbXAuc2NzcyIsImZpbGU6Ly8vYnVpbGRfcm9vdC9idWlsZC9nbG9iYWwtcDExMDQ5OC11azQzMDExL3ZvbHZvLWNsaWVudGxpYnMtYXBwcy9zcmMvbWFpbi9mcm9udGVuZC92b2x2by9jb21tb24vc3R5bGVzL2Fic3RyYWN0L21peGlucy9fdHlwb2dyYXBoeS5zY3NzIiwiZmlsZTovLy9idWlsZF9yb290L2J1aWxkL2dsb2JhbC1wMTEwNDk4LXVrNDMwMTEvdm9sdm8tY2xpZW50bGlicy1hcHBzL3NyYy9tYWluL2Zyb250ZW5kL3ZvbHZvL2NvbW1vbi9zdHlsZXMvYWJzdHJhY3QvbWl4aW5zL19oaWRkZW4uc2NzcyIsImZpbGU6Ly8vYnVpbGRfcm9vdC9idWlsZC9nbG9iYWwtcDExMDQ5OC11azQzMDExL3ZvbHZvLWNsaWVudGxpYnMtYXBwcy9zcmMvbWFpbi9mcm9udGVuZC92b2x2by9jb21tb24vc3R5bGVzL2Fic3RyYWN0L21peGlucy9fb3ZlcmxheS5zY3NzIiwiZmlsZTovLy9idWlsZF9yb290L2J1aWxkL2dsb2JhbC1wMTEwNDk4LXVrNDMwMTEvdm9sdm8tY2xpZW50bGlicy1hcHBzL3NyYy9tYWluL2Zyb250ZW5kL3ZvbHZvL2NvbW1vbi9zdHlsZXMvYWJzdHJhY3QvbWl4aW5zL190b3AtYm90dG9tLWJvcmRlci5zY3NzIiwiZmlsZTovLy9idWlsZF9yb290L2J1aWxkL2dsb2JhbC1wMTEwNDk4LXVrNDMwMTEvdm9sdm8tY2xpZW50bGlicy1hcHBzL3NyYy9tYWluL2Zyb250ZW5kL3ZvbHZvL2NvbW1vbi9zdHlsZXMvYWJzdHJhY3QvbWl4aW5zL19yZXNldC1mdWxsd2lkdGgtbWFyZ2lucy5zY3NzIiwiZmlsZTovLy9idWlsZF9yb290L2J1aWxkL2dsb2JhbC1wMTEwNDk4LXVrNDMwMTEvdm9sdm8tY2xpZW50bGlicy1hcHBzL3NyYy9tYWluL2Zyb250ZW5kL3ZvbHZvL3NoYXJlZC9jb21wb25lbnRzL2NvbnRlbnQvdGVhc2VyL3N0eWxlcy9fbGF5b3V0LWRlZmF1bHQuc2NzcyIsIi4uL3RhcmdldC92YXVsdC13b3JrL2pjcl9yb290L2FwcHMvdm9sdm8vY2xpZW50bGlicy9zaGFyZWQvY29tcG9uZW50cy9jb250ZW50L3RlYXNlci90ZWFzZXIuYnVuZGxlLmNzcyIsImZpbGU6Ly8vYnVpbGRfcm9vdC9idWlsZC9nbG9iYWwtcDExMDQ5OC11azQzMDExL3ZvbHZvLWNsaWVudGxpYnMtYXBwcy9idWlsZC9ub2RlX21vZHVsZXMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL19icmVha3BvaW50LnNjc3MiLCJmaWxlOi8vL2J1aWxkX3Jvb3QvYnVpbGQvZ2xvYmFsLXAxMTA0OTgtdWs0MzAxMS92b2x2by1jbGllbnRsaWJzLWFwcHMvc3JjL21haW4vZnJvbnRlbmQvdm9sdm8vY29tbW9uL3N0eWxlcy92YXJpYWJsZXMvX3R5cG9ncmFwaHktc2V0dGluZ3Muc2NzcyIsImZpbGU6Ly8vYnVpbGRfcm9vdC9idWlsZC9nbG9iYWwtcDExMDQ5OC11azQzMDExL3ZvbHZvLWNsaWVudGxpYnMtYXBwcy9zcmMvbWFpbi9mcm9udGVuZC92b2x2by9jb21tb24vc3R5bGVzL3ZhcmlhYmxlcy9fY29sb3JzLnNjc3MiLCJmaWxlOi8vL2J1aWxkX3Jvb3QvYnVpbGQvZ2xvYmFsLXAxMTA0OTgtdWs0MzAxMS92b2x2by1jbGllbnRsaWJzLWFwcHMvc3JjL21haW4vZnJvbnRlbmQvdm9sdm8vY29tbW9uL3N0eWxlcy92YXJpYWJsZXMvX21pc2Muc2NzcyIsImZpbGU6Ly8vYnVpbGRfcm9vdC9idWlsZC9nbG9iYWwtcDExMDQ5OC11azQzMDExL3ZvbHZvLWNsaWVudGxpYnMtYXBwcy9zcmMvbWFpbi9mcm9udGVuZC92b2x2by9jb21tb24vc3R5bGVzL2xpYi92b2x2b2ljb25zL192YXJpYWJsZXMuc2NzcyIsImZpbGU6Ly8vYnVpbGRfcm9vdC9idWlsZC9nbG9iYWwtcDExMDQ5OC11azQzMDExL3ZvbHZvLWNsaWVudGxpYnMtYXBwcy9zcmMvbWFpbi9mcm9udGVuZC92b2x2by9zaGFyZWQvY29tcG9uZW50cy9jb250ZW50L3RlYXNlci9zdHlsZXMvX21peGlucy5zY3NzIiwiZmlsZTovLy9idWlsZF9yb290L2J1aWxkL2dsb2JhbC1wMTEwNDk4LXVrNDMwMTEvdm9sdm8tY2xpZW50bGlicy1hcHBzL3NyYy9tYWluL2Zyb250ZW5kL3ZvbHZvL3NoYXJlZC9jb21wb25lbnRzL2NvbnRlbnQvdGVhc2VyL3N0eWxlcy9fbGF5b3V0LWhlcm9zdGFuZGFyZC5zY3NzIiwiZmlsZTovLy9idWlsZF9yb290L2J1aWxkL2dsb2JhbC1wMTEwNDk4LXVrNDMwMTEvdm9sdm8tY2xpZW50bGlicy1hcHBzL3NyYy9tYWluL2Zyb250ZW5kL3ZvbHZvL3NoYXJlZC9jb21wb25lbnRzL2NvbnRlbnQvdGVhc2VyL3N0eWxlcy9fbGF5b3V0LXRvcC5zY3NzIiwiZmlsZTovLy9idWlsZF9yb290L2J1aWxkL2dsb2JhbC1wMTEwNDk4LXVrNDMwMTEvdm9sdm8tY2xpZW50bGlicy1hcHBzL3NyYy9tYWluL2Zyb250ZW5kL3ZvbHZvL3NoYXJlZC9jb21wb25lbnRzL2NvbnRlbnQvdGVhc2VyL3N0eWxlcy9fY3Rhc3R5bGUuc2NzcyIsImZpbGU6Ly8vYnVpbGRfcm9vdC9idWlsZC9nbG9iYWwtcDExMDQ5OC11azQzMDExL3ZvbHZvLWNsaWVudGxpYnMtYXBwcy9zcmMvbWFpbi9mcm9udGVuZC92b2x2by9jb21tb24vc3R5bGVzL2Fic3RyYWN0L21peGlucy9fY29tcG9uZW50LXRvcC1ib3R0b20tbWFyZ2luLnNjc3MiLCJmaWxlOi8vL2J1aWxkX3Jvb3QvYnVpbGQvZ2xvYmFsLXAxMTA0OTgtdWs0MzAxMS92b2x2by1jbGllbnRsaWJzLWFwcHMvc3JjL21haW4vZnJvbnRlbmQvdm9sdm8vY29tbW9uL3N0eWxlcy92YXJpYWJsZXMvX2dyaWQuc2NzcyIsImZpbGU6Ly8vYnVpbGRfcm9vdC9idWlsZC9nbG9iYWwtcDExMDQ5OC11azQzMDExL3ZvbHZvLWNsaWVudGxpYnMtYXBwcy9zcmMvbWFpbi9mcm9udGVuZC92b2x2by9zaGFyZWQvY29tcG9uZW50cy9jb250ZW50L3RlYXNlci9zdHlsZXMvX21lZGlhc2l6ZS5zY3NzIiwiZmlsZTovLy9idWlsZF9yb290L2J1aWxkL2dsb2JhbC1wMTEwNDk4LXVrNDMwMTEvdm9sdm8tY2xpZW50bGlicy1hcHBzL3NyYy9tYWluL2Zyb250ZW5kL3ZvbHZvL3NoYXJlZC9jb21wb25lbnRzL2NvbnRlbnQvdGVhc2VyL3N0eWxlcy9fb3ZlcmxheS5zY3NzIiwiZmlsZTovLy9idWlsZF9yb290L2J1aWxkL2dsb2JhbC1wMTEwNDk4LXVrNDMwMTEvdm9sdm8tY2xpZW50bGlicy1hcHBzL3NyYy9tYWluL2Zyb250ZW5kL3ZvbHZvL3NoYXJlZC9jb21wb25lbnRzL2NvbnRlbnQvdGVhc2VyL3N0eWxlcy9fdGV4dC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBOzs7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Ozs7OztFQU1JLFdYbkJEO0FIcXNDbkI7QWM5cUNZO0VBQ0ksV1h4Qkc7QUh3c0NuQjtBYzVxQ1E7RUFDSSxXWDdCTztBSDJzQ25CO0FadG9DSTtFQUNJLHNCZXRFVztFZnVFWCxXQUFBO0VBQ0EscUJBQUE7RUFDQSw0R0FBQTtVQUFBLG9HQUFBO0VBQ0EsOEJBQUE7VUFBQSxzQkFBQTtFQUNBLHdCQUFBO1VBQUEsZ0JBQUE7RUFDQSxvQkFBQTtFQVVJLHlCQUFBO0VBQ0EsMEJBQUE7QVkrbkNaO0FaeG9DUTtFQVRKO0lBVVEsNEdBQUE7WUFBQSxvR0FBQTtFWTJvQ1Y7QUFDRjtBWnRwQ0k7RUFDSSxzQmV0RVc7RWZ1RVgsV0FBQTtFQUNBLHFCQUFBO0VBQ0EsNEdBQUE7VUFBQSxvR0FBQTtFQUNBLDhCQUFBO1VBQUEsc0JBQUE7RUFDQSx3QkFBQTtVQUFBLGdCQUFBO0VBQ0Esb0JBQUE7RUFVSSx5QkFBQTtFQUNBLDBCQUFBO0FZK29DWjtBWnhwQ1E7RUFUSjtJQVVRLDRHQUFBO1lBQUEsb0dBQUE7RVkycENWO0FBQ0Y7QWMzckNRO0VBQ0ksa0JBQUE7QWQ2ckNaO0FjenJDWTtFQUNJLGNYOUNHO0FIeXVDbkI7QWN6ckNnQjs7Ozs7O0VBTUksY1gvREQ7QUgwdkNuQjtBY3ZyQ1k7RUFDSSxjWHBFRztBSDZ2Q25CO0FjcHJDSTtFcEJ6RVksNEJBQUE7RUFBQSxlQUFBO0VBQUEsZ0JBQUE7RUFBQSxpQkFBQTtFQUFBLCtCQUFBO0VvQjJFUixtQnpDL0ZpQjtBMkJ5eEN6QjtBY3JyQ1E7RXBCaEZRLDZCQUFBO0VBQUEsZUFBQTtFQUFBLGdCQUFBO0VBQUEsZ0JBQUE7RUFBQSxpQ0FBQTtBTTR3Q2hCO0FOendDWTtFb0I2RUo7SXBCM0VZLGVBQUE7RU0yd0NsQjtBQUNGIiwiZmlsZSI6Ii4uL3RhcmdldC92YXVsdC13b3JrL2pjcl9yb290L2FwcHMvdm9sdm8vY2xpZW50bGlicy9zaGFyZWQvY29tcG9uZW50cy9jb250ZW50L3RlYXNlci90ZWFzZXIuYnVuZGxlLmNzcyIsInNvdXJjZXNDb250ZW50IjpbbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwiLypcbkFsc28gcGxlYXNlIGZvbGxvdyB0aGlzXG5EbyB5b3VyIHByb2plY3QgaGF2ZSBkaWZlcmVudCBjaGFyc2V0IGxhbmd1YWdlcyB0byBhY2NvdW50IHdpdGg/XG4gICAgICAtIFllcyAtPiBmb2xsb3cgaHR0cHM6Ly9wcm9qZWN0cy5uZXRjZW50cmljLmJpei93aWtpL2Rpc3BsYXkvRlJPTlRFTkQvQ1NTKy0rRm9udCtOb3JtYWxpemF0aW9uXG4gICAgICAtIE5vIC0+IFlvdSBjYW4gc3RpbGwgdXNlIGl0LCB0aGVyZSBhcmUgdG9ucyBvZiBhZHZhbnRhZ2VzLCBidXQgaXRzIGNyZWF0ZSBzb21lIGV4dHJhIGNzcyBhbmQgbGF5b3V0IHJlbmRlcmluZ1xuKi9cbi8qXG4gICogRGVzaWduIHNwZWM6XG4gICogaHR0cHM6Ly93d3cuZmlnbWEuY29tL2ZpbGUvU1I0cnZRbE5uQ21QTXJROVdZYUlxdi9icmFuY2gvVEpxa0Z5bXEwOXdmOEt3bVkxV05jai9Wb2x2by1BRU0tRGVzaWduLXN5c3RlbT90eXBlPWRlc2lnbiZub2RlLWlkPTctMjYmdD1wQW05MTZWUmlxQ09EMkkxLTBcbiovXG4vKipcbiAqIHotaW5kZXhlcyBmcm9tIGxvd2VyIHRvIC0+IGhpZ2hlclxuICovXG4vKiBkb2Ncbi0tLVxudGl0bGU6IFBpeGVsIHRvIGVtXG5uYW1lOiBubi1weC10by1lbVxuY2F0ZWdvcnk6IGZ1bmN0aW9uc1xuLS0tXG5cbkNhbGN1bGF0ZSB0aGUgZW0gd2l0aCBhIGdpdmVuIHBpeGVsIHdpdGggdGhlIGdpdmVuIGJhc2UgZm9udCBzaXplXG5JZiB5b3UgZG9uJ3Qgc2V0IGEgJGJhc2UgdGhlICRiYXNlLWZvbnQtc2l6ZSBpcyB1c2VkIGFzIHRoZSBjb250ZXh0XG5cbiMjIExpdmUgVGVtcGxhdGUgYWJicmV2aWF0aW9uc1xuLS0tXG4tcHR1XG5cbiMjIFBhcmFtZXRlcnNcbi0tLVxuQHBhcmFtZXRlciAkdmFsdWUgPSBwaXhlbCBiYXNlZCBudW1iZXIgKHdpdGhvdXQgdW5pdClcbkBwYXJhbWV0ZXIgJGJhc2UgPSBwaXhlbCBiYXNlZCBudW1iZXIgKHdpdGhvdXQgdW5pdClcblxuIyMgRGVwZW5kZW5jaWVzXG4tLS1cbm5uLXN0cmlwLXVuaXRcblxuIyMgRXhhbXBsZVxuLS0tXG5gYGBodG1sX2V4YW1wbGVcbm5uLXB4LXRvLWVtKDUpIC8vIE91dHB1dDogMC4zMTI1ZW1cbm5uLXB4LXRvLWVtKDUsIDEwKSAvLyBPdXRwdXQ6IDAuNWVtXG5ubi1weC10by1lbSg1LCAyMCkgLy8gT3V0cHV0OiAwLjI1ZW1cbmBgYFxuKi9cbi8qIGRvY1xuLS0tXG50aXRsZTogUGl4ZWwgdG8gcmVtXG5uYW1lOiBubi1weC10by1yZW1cbmNhdGVnb3J5OiBmdW5jdGlvbnNcbi0tLVxuXG5DYWxjdWxhdGUgdGhlIHJlbSB3aXRoIGEgZ2l2ZW4gcGl4ZWwgd2l0aCB0aGUgZ2l2ZW4gYmFzZSBmb250IHNpemVcblxuSW46ICA1cHhcbk91dDogMC4zMTI1cmVtXG5cbiMjIExpdmUgVGVtcGxhdGUgYWJicmV2aWF0aW9uc1xuLS0tXG4tcmVtXG5cbiMjIFBhcmFtZXRlcnNcbi0tLVxuQHBhcmFtZXRlciAkdmFsdWUgPSBwaXhlbCBiYXNlZCBudW1iZXIgKHdpdGhvdXQgdW5pdClcblxuIyMgRGVwZW5kZW5jaWVzXG4tLS1cbm5uLXN0cmlwLXVuaXRcblxuIyMgRXhhbXBsZVxuLS0tXG5gYGBodG1sX2V4YW1wbGVcbm5uLXB4LXRvLXJlbSg1KSAvLyBPdXRwdXQgMC4zMTI1cmVtXG5gYGBcblxuKi9cbi8qIGRvY1xuLS0tXG50aXRsZTogUGl4ZWwgdG8gdW5pdFxubmFtZTogcHgtdG8tdW5pdFxuY2F0ZWdvcnk6IG1peGluc1xuLS0tXG5cblNldCBhIHByb3BlcnR5IGFuZCB2YWx1ZSAocGl4ZWwgYmFzZWQgd2l0aG91dCB1bml0KVxuXG5DYWxjdWxhdGVzIHJlbSAvIGVtIC8gJSBmcm9tIGdpdmVuIHBpeGVsIGFuZCBiYXNlIChkZWZhdWx0IGJhc2UgaXMgdGhlXG5iYXNlLWZvbnQtc2l6ZSwgMTZweClcbklmIHJ0bCBpcyB0cnVlLCB0aGlzIG1peGluIGhhbmRsZXMgYWxsIHRoZSBkaXJlY3Rpb24gc3R1ZmY6XG4tIFN3aXRjaGluZyB0aGUgdmFsdWVzLCB3aGVuIHdlIGhhdmUgZXhhY3RseSA0IHZhbHVlc1xuLSBTd2l0Y2hpbmcgbGVmdCBhbmQgcmlnaHQgaW4gcHJvcGVydGllcyAocGFkZGluZyBhbmQgbWFyZ2luKVxuXG4jIyBMaXZlIFRlbXBsYXRlIGFiYnJldmlhdGlvbnNcbi0tLVxuLXB0dSAoZm9yIGVtIG9yICUgdG8gcGl4ZWwgLSB3aXRoIGJhc2UgcGFyYW1ldGVyKVxuLXJlbSAoZm9yIHJlbSB0byBwaXhlbCAtIHdpdGhvdXQgYmFzZSBwYXJhbWV0ZXIpXG5cbiMjIFBhcmFtZXRlcnNcbi0tLVxuQHBhcmFtZXRlciAkcHJvcGVydHkgPSBwYWRkaW5nIHwgbWFyZ2luIHwgZm9udC1zaXplIHwgd2lkdGggfCBoZWlnaHRcbkBwYXJhbWV0ZXIgJHZhbHVlID0gUGl4ZWwgYmFzZWQgbnVtYmVyIC0gYWRkIHB4IHRvIGtlZXAgdGhlIHB4IGZvciBhIHZhbHVlXG5AcGFyYW1ldGVyICRiYXNlID0gcHggYmFzZWQgbnVtYmVyLCBEZWZhdWx0OiAxNnB4XG5AcGFyYW1ldGVyICR1bml0ID0gU2V0IHVuaXQ6IHB4IHwgZW0gfCByZW0gfCBwZXJjZW50XG5cbiMjIERlcGVuZGVuY2llc1xuLS0tXG5hYnN0cmFjdC9mdW5jdGlvbnMvc3dhcC1sZWZ0LXJpZ2h0XG5hYnN0cmFjdC9mdW5jdGlvbnMvc3RyaXAtdW5pdFxuXG4jIyBFeGFtcGxlXG4tLS1cblxuYGBgaHRtbF9leGFtcGxlXG5AaW5jbHVkZSBubi1weC10by11bml0KHBhZGRpbmcsIDAgMTBweCAyMCAwKTsgPT4gcGFkZGluZzogMCAxMHB4IDEuMjVyZW0gMDtcbkBpbmNsdWRlIG5uLXB4LXRvLXVuaXQocGFkZGluZywgMCAxMCAyMCAwKTsgPT4gcGFkZGluZzogMCAwLjYyNXJlbSAxLjI1cmVtIDA7XG5AaW5jbHVkZSBubi1weC10by11bml0KHBhZGRpbmctbGVmdCwgMTApO1xuQGluY2x1ZGUgbm4tcHgtdG8tdW5pdChwYWRkaW5nLXJpZ2h0LCAxMCk7XG5AaW5jbHVkZSBubi1weC10by11bml0KG1hcmdpbiwgMCAxMCAyMCAwKTtcbkBpbmNsdWRlIG5uLXB4LXRvLXVuaXQobWFyZ2luLWxlZnQsIDEwKTtcbkBpbmNsdWRlIG5uLXB4LXRvLXVuaXQobWFyZ2luLXJpZ2h0LCAxMCk7XG5AaW5jbHVkZSBubi1weC10by11bml0KGZvbnQtc2l6ZSwgMjApO1xuQGluY2x1ZGUgbm4tcHgtdG8tdW5pdCh3aWR0aCwgMTAwKTtcbkBpbmNsdWRlIG5uLXB4LXRvLXVuaXQobWluLXdpZHRoLCAxMDApO1xuQGluY2x1ZGUgbm4tcHgtdG8tdW5pdChtYW5uLXdpZHRoLCAxMDApO1xuQGluY2x1ZGUgbm4tcHgtdG8tdW5pdChoZWlnaHQsIDEwMCk7XG5AaW5jbHVkZSBubi1weC10by11bml0KG1pbi1oZWlnaHQsIDEwMCk7XG5AaW5jbHVkZSBubi1weC10by11bml0KG1hbm4taGVpZ2h0LCAxMDApO1xuYGBgXG5cbiMjIFNvdXJjZVxuLS0tXG5odHRwOi8vY3NzLXRyaWNrcy5jb20vc25pcHBldHMvY3NzL2xlc3MtbWl4aW4tZm9yLXJlbS1mb250LXNpemluZy9cblxuKi9cbi8qIGRvY1xuLS0tXG50aXRsZTogUGl4ZWwgdG8gdW5pdGxlc3Ncbm5hbWU6IG5uLXB4LXRvLXVuaXRsZXNzXG5jYXRlZ29yeTogZnVuY3Rpb25zXG4tLS1cblxuVGhpcyBtYWtlcyB0aGUgc2FtZSBjYWxjdWxhdGlvbiBhcyBweCB0byBlbS4gQnV0IGl0IGRvbid0IHByaW50IG91dCB0aGUgdW5pdC5cblxuVXNlIHRoaXMgZm9yIGxpbmUtaGVpZ2h0cy5cblxuIyMgTGl2ZSBUZW1wbGF0ZSBhYmJyZXZpYXRpb25zXG4tLS1cblxuIyMgUGFyYW1ldGVyc1xuLS0tXG5AcGFyYW1ldGVyICR2YWx1ZSA9IHBpeGVsIGJhc2VkIG51bWJlciAod2l0aG91dCB1bml0KVxuQHBhcmFtZXRlciAkYmFzZSA9IHBpeGVsIGJhc2VkIG51bWJlciAod2l0aG91dCB1bml0KVxuXG4jIyBEZXBlbmRlbmNpZXNcbi0tLVxuXG4jIyBFeGFtcGxlXG4tLS1cblxuYGBgaHRtbF9leGFtcGxlXG5saW5lLWhlaWdodDogbm4tcHgtdG8tdW5pdGxlc3MoNSkgLy8gT3V0cHV0OiAwLjMxMjVcbmBgYFxuXG4jIyBTb3VyY2Vcbi0tLVxuXG4qL1xuLyogZG9jXG4tLS1cbnRpdGxlOiBTdHJpcCB1bml0XG5uYW1lOiBubi1zdHJpcC11bml0XG5jYXRlZ29yeTogZnVuY3Rpb25zXG4tLS1cblxuU3RyaXBzIG9mIHRoZSB1bml0IG9mIGEgbnVtYmVyXG5cbiMjIFBhcmFtZXRlcnNcbi0tLVxuQHBhcmFtZXRlciAkbnVtID0gbnVtYmVyIHdpdGggdW5pdCAoNXB4LCA1ZW0sIDVyZW0pXG5cbiMjIEV4YW1wbGVcbi0tLVxuXG5gYGBodG1sX2V4YW1wbGVcbm5uLXN0cmlwLXVuaXQoNXB4KSAvL091dHB1dDogNVxubm4tc3RyaXAtdW5pdCgxMGVtKSAvLyBPdXRwdXQ6IDEwXG5ubi1zdHJpcC11bml0KDE1cmVtKSAvLyBPdXRwdXQ6IDE1XG5gYGBcblxuKi9cbi8qIGRvY1xuLS0tXG50aXRsZTogei1pbmRleFxubmFtZTogbm4tei1pbmRleFxuY2F0ZWdvcnk6IGZ1bmN0aW9uc1xuLS0tXG5cbkJlY2F1c2Ugei1pbmRpY2VzIGNhbiBnZXQgdHJpY2t5IHdlIG1hbmFnZSB0aGVtIGluIHRoZSB0aGVtZS5zY3NzIGdsb2JhbGx5LlxuXG5BbHdheXMgdXNlIHRoaXMgbWl4aW4gdG8gc2V0IHNldCBhIHotaW5kZXguXG5cblJlYWQgdGhlIEJlc3QgUHJhY3RpY2UgdG8gZ2V0IGFuIGZ1bGwgZG9jdW1lbnRhdGlvbjpcbmh0dHBzOi8vcHJvamVjdHMubmV0Y2VudHJpYy5iaXovd2lraS9kaXNwbGF5L0ZST05URU5EL0hvdyt0bytzZXQrYSt6LWluZGV4XG5cbiMjIExpdmUgVGVtcGxhdGUgYWJicmV2aWF0aW9uc1xuLS0tXG4telxuXG4jIyBQYXJhbWV0ZXJzXG4tLS1cbkBwYXJhbWV0ZXIgJGVsZW1lbnQgPSBOYW1lIG9mIHRoZSBlbGVtZW50IChub3JtYWxseSB0aGlzIHdpbGwgYmUgdGhlIG1vZHVsZSBuYW1lIGZvciB0aGUgbWFpbiBzdGFjaylcbkBwYXJhbWV0ZXIgJGxpc3QgPSBOYW1lIG9mIHRoZSBsaXN0IChkZWZhdWx0ICR6LWluZGljZXMpLiBNdXN0IGJlIG9ubHkgc2V0IGZvciBzdGFjayBjb250ZXh0XG5AcGFyYW1ldGVyICRtaW4gPSBTZXQgYSBtaW5pbXVtIHotaW5kZXggd2hpY2ggd2lsbCBiZSBhZGRlZCB0byB0aGUgbGlzdC5cblxuIyMgRGVwZW5kZW5jaWVzXG4tLS1cbiR6LWluZGljZXMgdmFyaWFibGUgaW4gdGhlIHRoZW1lLnNjc3NcblxuIyMgRXhhbXBsZVxuLS0tXG5cbmBgYGh0bWxfZXhhbXBsZVxuXG4vLyBJbiB0aGUgU0FTUyB0aGVtZSBmaWxlXG5cbiR6LWluZGljZXM6IHNsaWRlciwgbW9kYWwsIGRpYWxvZywgbmF2aWdhdGlvbjtcblxuLy8gSW4gdGhlIFNBU1MgbW9kdWxlIGZpbGVcblxuLm1vZGFsIHtcbiAgICAmX19iYXNlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB6LWluZGV4OiBubi16LWluZGV4KG1vZGFsKTtcbiAgICB9XG59XG5gYGBcblxuIyMgU291cmNlXG4tLS1cbmh0dHA6Ly93d3cuc21hc2hpbmdtYWdhemluZS5jb20vMjAxNC8wNi8xMi9zYXNzeS16LWluZGV4LW1hbmFnZW1lbnQtZm9yLWNvbXBsZXgtbGF5b3V0cy9cblxuKi9cbi8qIGRvY1xuLS0tXG50aXRsZTogcmVtb3ZlIGV2ZXJ5IHVuaXRcbm5hbWU6IHN0cmlwLXVuaXRcbmNhdGVnb3J5OiBmdW5jdGlvbnNcbi0tLVxucmVtb3ZlIGFsbCB1bml0c1xuXG4jIyBQYXJhbWV0ZXJzXG4tLS1cbkBwYXJhbWV0ZXIgJG51bWJlciA9IG51bWJlciB3aXRoIHVuaXRcblxuIyMgRXhhbXBsZVxuLS0tXG5gYGBodG1sX2V4YW1wbGVcbnN0cmlwLXVuaXQoNXB4KSAvLyBPdXRwdXQ6IDVcbmBgYFxuKi9cbi8qIGRvY1xuLS0tXG50aXRsZTogU3dhcCBsZWZ0IHJpZ2h0IHZhbHVlc1xubmFtZTogbm4tcnRsXG5jYXRlZ29yeTogZnVuY3Rpb25zXG4tLS1cblxuU3dhcCB0aGUgbmFtZXMgcmlnaHQgYW5kIGxlZnQgd2hlbiAkcnRsIGlzIHNldCB0byB0cnVlLlxuSWYgdGhlIHZhbHVlIGlzIG5vdCByaWdodCBvciBsZWZ0IGl0IHJldHVybnMgdGhlIG9yaWdpbmFsIHZhbHVlLlxuXG5JbjogIHJpZ2h0XG5PdXQ6IGxlZnQgKGluIHJ0bCksIHJpZ2h0IChpbiBsdHIpXG5cbiMjIExpdmUgVGVtcGxhdGUgYWJicmV2aWF0aW9uc1xuLS0tXG5cbiMjIFBhcmFtZXRlcnNcbi0tLVxuQHBhcmFtZXRlciAkb3JpZ2luID0gcmlnaHQgfCBsZWZ0XG5cbiMjIEV4YW1wbGVcbi0tLVxuXG5gYGBodG1sX2V4YW1wbGVcbm5uLXJ0bChsZWZ0KTogMTBweDtcbm5uLXJ0bChwYWRkaW5nLXJpZ2h0KTogMzBweDtcbm5uLXJ0bCgwIDFweCA4cHggMTJweCkgLy8gMCAxMnB4IDhweCAxcHhcbmBgYFxuXG4qL1xuLypcbiAgICBUaGlzIG1peGluIGNvbnZlcnRzIGFueSB1bml0bGVzcyBudW1iZXIgKGZvciBleGFtcGxlIDQwKSB0byB0aGUgY29ycmVjdCB1bml0LCBhY2NvcmRpbmcgdG8gdGhlIGdpdmVuIGF4aXMuXG5cbiAgICBQYXJhbWV0ZXJzOlxuICAgIC0gJHZhbHVlOiB1bml0bGVzcyBudW1iZXIgdG8gYmUgY29udmVydGVkLiBBIHVuaXQgaW4gJHZhbHVlIHdpbGwgY29ycmVzcG9uZCB0byBhIHB4IGluIHRoZSBicm93c2VyLFxuICAgICAgICBubyBtYXR0ZXIgaWYgaXQncyBvdXRwdXQgYXMgcHggb3IgcmVtXG5cbiAgICBSZXR1cm5zXG4gICAgLSBIb3Jpem9udGFsOiB3aWxsIGNvbnZlcnQgdGhlIG51bWJlciB0byBwaXhlbHMgKDQwcHgpXG4gICAgLSBWZXJ0aWNhbDogd2lsbCBjb252ZXJ0IHRoZSBudW1iZXIgdG8gcmVtIChpZiByZW0gPT09IDE2cHgsIHRoZW4gNDAgd2lsbCBiZSBjb252ZXJ0ZWQgdG8gMi41IHJlbSlcbiovXG4vKlxuICAgIENvbnZlcnRzIGEgdW5pdGxlc3MgbnVtYmVyIHRvIHRoZSBjb3JyZXNwb25kaW5nIHVuaXQgb24gdGhlIGhvcml6b250YWwgYXhpcy5cbiAgICBCeSBkZWZhdWx0IHdpbGwgY29udmVydCB0aGUgdmFsdWUgdG8gcHguXG4qL1xuLypcbiAgICBDb252ZXJ0cyBhIHVuaXRsZXNzIG51bWJlciB0byB0aGUgY29ycmVzcG9uZGluZyB1bml0IG9uIHRoZSB2ZXJ0aWNhbCBheGlzLlxuICAgIEJ5IGRlZmF1bHQgd2lsbCBjb252ZXJ0IHRoZSB2YWx1ZSB0byByZW0uXG4qL1xuLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbi8qIGRvY1xuLS0tXG50aXRsZTogU3dhcCBsZWZ0IHJpZ2h0IHZhbHVlc1xubmFtZTogc3dhcC1sZWZ0LXJpZ2h0LXZhbHVlc1xuY2F0ZWdvcnk6IGZ1bmN0aW9uc1xuLS0tXG5cblN3YXAgdGhlIHZhbHVlcyBmb3IgcmlnaHQgYW5kIGxlZnQgd2hlbiAkcnRsIGlzIHNldCB0byB0cnVlOlxuXG5JbjogIDAgNXB4IDhweCAxMnB4XG5PdXQ6IDAgMTJweCA4cHggNXB4IChpbiBydGwpXG5cbiMjIFBhcmFtZXRlcnNcbi0tLVxuQHBhcmFtZXRlciAkdmFsdWVzID0gNCBudW1iZXJzICh3b3JrcyB3aXRoIGFsbCB1bml0cylcblxuIyMgRXhhbXBsZVxuLS0tXG5cbmBgYGh0bWxfZXhhbXBsZVxuc3dhcC1sZWZ0LXJpZ2h0LXZhbHVlcygwIDFweCA4cHggMTJweCkgLy8gMCAxMnB4IDhweCAxcHhcbnN3YXAtbGVmdC1yaWdodC12YWx1ZXMoMCAxZW0gOGVtIDEyZW0pIC8vIDAgMTJlbSA4ZW0gMWVtXG53YXAtbGVmdC1yaWdodC12YWx1ZXMoMCAxcmVtIDhyZW0gMTJyZW0pIC8vIDAgMTJyZW0gOHJlbSAxcmVtXG5gYGBcblxuIyMgU291cmNlXG4tLS1cbmh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMTQxOTkzMjMvcmlnaHQtdG8tbGVmdC1ydGwtc3VwcG9ydC1pbi1zYXNzLXByb2plY3RcblxuKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlICovXG4vKiBkb2Ncbi0tLVxudGl0bGU6IFN3YXAgbGVmdCByaWdodCBuYW1lc1xubmFtZTogc3dhcC1sZWZ0LXJpZ2h0LW5hbWVzXG5jYXRlZ29yeTogZnVuY3Rpb25zXG4tLS1cblxuU3dhcCB0aGUgbmFtZXMgcmlnaHQgYW5kIGxlZnQgd2hlbiAkcnRsIGlzIHNldCB0byB0cnVlLlxuSWYgdGhlIHZhbHVlIGlzIG5vdCByaWdodCBvciBsZWZ0IGl0IHJldHVybnMgdGhlIG9yaWdpbmFsIHZhbHVlLlxuXG5JbjogIHJpZ2h0XG5PdXQ6IGxlZnQgKGluIHJ0bCksIHJpZ2h0IChpbiBsdHIpXG5cbiMjIExpdmUgVGVtcGxhdGUgYWJicmV2aWF0aW9uc1xuLS0tXG5cbiMjIFBhcmFtZXRlcnNcbi0tLVxuQHBhcmFtZXRlciAkb3JpZ2luID0gcmlnaHQgfCBsZWZ0XG5cbiMjIEV4YW1wbGVcbi0tLVxuXG5gYGBodG1sX2V4YW1wbGVcbnN3YXAtbGVmdC1yaWdodC1uYW1lKGxlZnQpXG5zd2FwLWxlZnQtcmlnaHQtbmFtZShyaWdodClcbmBgYFxuXG4jIyBTb3VyY2Vcbi0tLVxuaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8xNDE5OTMyMy9yaWdodC10by1sZWZ0LXJ0bC1zdXBwb3J0LWluLXNhc3MtcHJvamVjdFxuXG4qL1xuLyogIExpc3Qgb2YgQ1NTIHByb3BlcnRpZXMgdGhhdCB3aWxsIGFsd2F5cyBiZSBvdXRwdXQgYXQgbGVhc3QgYXMgMiBkaWZmZXJlbnQgdmFsdWVzXG4gICAgaW4gb3JkZXIgdG8gYmUgYWJsZSB0byBjb252ZXJ0IGVhY2ggb25lIHRvIHRoZSBjb3JyZWN0IGF4aXMgdW5pdCAqL1xuLypcbiAgICBNaXhpbiBmb3IgYXV0b21hdGljYWxseSBoYW5kbGluZyBzcGFjaW5ncyBhcm91bmQvYmV0d2VlbiBlbGVtZW50cy5cblxuICAgIFRoaXMgbWl4aW4gd2lsbCBhdXRvbWF0aWNhbGx5IGludmVydCB0aGUgbGVmL3JpZ2h0IGRpcmVjdGlvbnMgaW4gUlRMIGxhbmd1YWdlcy5cbiAgICBBbHNvLCB0aGUgdW5pdGxlc3MgdmFsdWVzIHdpbGwgYmUgY29udmVydGVkIHRvIHRoZSBwcm9wZXIgdW5pdCBhY2NvcmRpbmcgdG8gdGhlIGF4aXNcblxuICAgIFBhcmFtZXRlcnM6XG4gICAgLSAkcHJvcGVydHktbmFtZTogbmFtZSBvZiB0aGUgQ1NTIHByb3BlcnR5IHRoYXQgc2hvdWxkIGJlIG91dHB1dC4gU3VwcG9ydGVkIHByb3BlcnRpZXMgYXJlOlxuICAgICAgICBtYXJnaW4sIG1hcmdpbi10b3AsIG1hcmdpbi1yaWdodCwgbWFyZ2luLWJvdHRvbSwgbWFyZ2luLWxlZnRcbiAgICAgICAgcGFkZGluZywgcGFkZGluZy10b3AsIHBhZGRpbmctcmlnaHQsIHBhZGRpbmctYm90dG9tLCBwYWRkaW5nLWxlZnRcbiAgICAgICAgd2lkdGgsIGhlaWdodCwgbWluLXdpZHRoLCBtYXgtd2lkdGgsIG1pbi1oZWlnaHQsIG1pbi1oZWlnaHRcbiAgICAtICR2YWx1ZTogdmFsdWUgdGhhdCB3aWxsIGJlIG91dHB1dCBhcyBwYXJ0IG9mIHRoZSBnaXZlbiBwcm9wZXJ0eS4gU3VwcG9ydGVkIHZhbHVlcyBhcmU6XG4gICAgICAgIFVuaXRsZXNzIG51bWJlciAoNDApOiB0aGlzIHNob3VsZCBiZSB1c2VkIG1vc3Qgb2YgdGhlIHRpbWVzLiBJdCB3aWxsIGF1dG9tYXRpY2FsbHkgYmUgY29udmVydGVkXG4gICAgICAgICAgICB0byB0aGUgY29ycmVjdCB1bml0IGRlcGVuZGluZyBvbiB0aGUgYXhpcyB3aGVyZSBpdCdzIHVzZWQgKGhvcml6b250YWwgYXhpcyA9PiBweCwgdmVydGljYWwgYXhpcyA9PiByZW0pLlxuICAgICAgICAgICAgRWFjaCB1bml0IGluICR2YWx1ZSB3aWxsIGNvcnJlc3BvbmQgdG8gYSBweCBpbiB0aGUgYnJvd3Nlciwgbm8gbWF0dGVyIHRvIHdoaWNoIHVuaXQgaXQgd2lsbCBiZSBjb252ZXJ0ZWQuXG4gICAgICAgIE51bWJlciB3aXRoIHVuaXQgKDQwcHgsIDQwJS4uLik6IHRoZSBudW1iZXIgYW5kIHRoZSB1bml0IHdpbGwgYmUgcHJlc2VydmVkIGFuZCBvbmx5IHRoZSBsZWZ0L3JpZ2h0IGludmVyc2lvblxuICAgICAgICAgICAgd2lsbCBiZSBkb25lIGZvciBSVEwgbGFuZ3VhZ2VzXG4gICAgICAgIExpc3Qgb2YgdmFsdWVzICg0MCAzMCUgMjAgMTApOiBtYXJnaW4gYW5kIHBhZGRpbmcgc2hvcnRoYW5kcyB3aGl0aCBtdWx0aXBsZSB2YWx1ZXMgYXJlIHN1cHBvcnRlZC5cbiAgICAgICAgICAgIFRoZSBsZWZ0L3JpZ2h0IHZhbHVlcyB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgc3dhcHBlZCBpbiBSVEwgYW5kIHRoZSB1bml0bGVzcyBudW1iZXJzIHdpbGwgYmUgY29udmVydGVkXG4gICAgICAgICAgICB0byB0aGUgY29ycmVzcG9uZGluZyB1bml0LiBVbml0bGVzcyBhbmQgbnVtYmVycyB3aXRoIHVuaXRzIGNhbiBiZSBtaXhlZCBpbiB0aGUgc2FtZSBjYWxsLlxuICAgICAgICBVc2luZyBjYWxjKCkgaW4gYW55IG9mIHRoZSBwcmV2aW91cyBleGFtcGxlcyBpcyBzdXBwb3J0ZWQsIGFsdGhvdWdoIG5vIHVuaXQgY29udmVyc2lvbiB3aWxsIGJlIGRvbmVcblxuICMjIEV4YW1wbGVcbi0tLVxuXG5gYGBodG1sX2V4YW1wbGVcbkBpbmNsdWRlIHNwYWNpbmcocGFkZGluZywgMCAxMHB4IDIwIDApOyA9PiBwYWRkaW5nOiAwIDEwcHggMnJlbSAwO1xuQGluY2x1ZGUgc3BhY2luZyhwYWRkaW5nLCAwIDEwIDIwIDApOyA9PiBwYWRkaW5nOiAwIDEwcHggMnJlbSAwO1xuQGluY2x1ZGUgc3BhY2luZyhwYWRkaW5nLWxlZnQsIDEwKTtcbkBpbmNsdWRlIHNwYWNpbmcocGFkZGluZy1yaWdodCwgMTApO1xuQGluY2x1ZGUgc3BhY2luZyhtYXJnaW4sIDAgMTAgMjAgMCk7XG5AaW5jbHVkZSBzcGFjaW5nKG1hcmdpbi1sZWZ0LCAxMCk7XG5AaW5jbHVkZSBzcGFjaW5nKG1hcmdpbi1yaWdodCwgMTApO1xuQGluY2x1ZGUgc3BhY2luZyh3aWR0aCwgMTAwKTtcbkBpbmNsdWRlIHNwYWNpbmcobWluLXdpZHRoLCAxMDApO1xuQGluY2x1ZGUgc3BhY2luZyhtYXgtd2lkdGgsIDEwMCk7XG5AaW5jbHVkZSBzcGFjaW5nKGhlaWdodCwgMTAwKTtcbkBpbmNsdWRlIHNwYWNpbmcobWluLWhlaWdodCwgMTAwKTtcbkBpbmNsdWRlIHNwYWNpbmcobWF4LWhlaWdodCwgMTAwKTtcbmBgYFxuKi9cbi8qIGRvY1xuLS0tXG50aXRsZTogQ2xlYXJmaXhcbm5hbWU6IGNsZWFyZml4XG5jYXRlZ29yeTogbWl4aW5zXG4tLS1cblxuQ2xlYXJzIGFmdGVyIGZsb2F0aW5nIGVsZW1lbnRcblxuVXNlIHRoaXMgbWl4aW4gb25seSBpbnNpZGUgbWVkaWEgcXVlcmllcyB3aGVyZSB5b3UgY2FuJ3QgdXNlIHRoZVxuYWJzdHJhY3QvZXh0ZW5kcy91dGlscy9fY2xlYXJmaXggdmVyc2lvbiwgd2hpY2ggYWRkcyBsZXNzIGNvZGUgdG8gY3NzXG5cbiMjIExpdmUgVGVtcGxhdGUgYWJicmV2aWF0aW9uc1xuLS0tXG5cbiMjIEV4YW1wbGVcbi0tLVxuXG5gYGBodG1sX2V4YW1wbGVcbkBpbmNsdWRlIGNsZWFyZml4O1xuYGBgXG5cbiMjIFNvdXJjZVxuLS0tXG5odHRwczovL2Nzcy10cmlja3MuY29tL3NuaXBwZXRzL2Nzcy9jbGVhci1maXgvXG4qL1xuLyogc3R5bGVsaW50LWRpc2FibGUgc3RyaW5nLW5vLW5ld2xpbmUgKi9cbi8qIGRvY1xuLS0tXG50aXRsZTogZm9jdXMgY29sb3Jcbm5hbWU6IGZvY3VzIGNvbG9yXG5jYXRlZ29yeTogbWl4aW5zXG4tLS1cblxuQWRkIGEgZm9jdXMgY29sb3Igd2hlbiBrZXlib2FyZC1mb2N1cyBpcyBhY3RpdmF0ZWRcbiMjIFBhcmFtZXRlcnNcbi0tLVxuQHBhcmFtICRudW1iZXJcblxuKi9cbi8qIGRvY1xuLS0tXG50aXRsZTogaWdub3JlLWNvbnRhaW5lclxubmFtZTogaWdub3JlLWNvbnRhaW5lclxuY2F0ZWdvcnk6IG1peGluc1xuLS0tXG5cblNldCBmdWxsIHBhZ2Ugd2lkdGggZm9yIHNvbWV0aGluZyBpbnNpZGUgYSBjb250YWluZXJcblxuIyMgUGFyYW1ldGVyc1xuLS0tXG5AcGFyYW0gJGNvbnRhaW5lci1zaXplXG5AcGFyYW0gJGd1dHRlclxuXG4qL1xuLyogR2VuZXJhdGVzIGFsbCB0aGUgcnVsZXMgZm9yIHRoZSBncmlkIGNvbHVtbnMgdXAgdG8gdGhlIGdpdmVuIGFtb3VudCBvZiBjb2x1bW4gKi9cbi8qIEdlbmVyYXRlcyBhbGwgdGhlIHJ1bGVzIGZvciB0aGUgZ3JpZCBjb2x1bW4gb2Zmc2V0IHVwIHRvIHRoZSBnaXZlbiBhbW91bnQgb2YgY29sdW1uICovXG4vKiBHZW5lcmF0ZXMgYWxsIHRoZSBydWxlcyBmb3IgdGhlIGdyaWQgYW5kIGNvbHVtbnMgZm9yIHRoZSBnaXZlbiBicmVhayBwb2ludCBhbmQgdG90YWwgb2YgY29sdW1ucyAqL1xuLyogQVBJIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB0byBnZW5lcmF0ZSBhIGdyaWQgY29uZmlnICovXG4vKiBkb2Ncbi0tLVxudHlwZTogYnV0dG9uIHR5cGVcbnN0YXRlOiBzdGF0ZSBidXR0b25cbi0tLVxuXG5CdXR0b24gc3R5bGVzXG5cblVzZSB0aGlzIG1peGluIGZvciBidXR0b24gc3R5bGVzOiBjb2xvciB0ZXh0LCBiYWNrZ3JvdW5kLCBib3JkZXJcblxuIyMgRXhhbXBsZVxuLS0tXG5cbmBgYGh0bWxfZXhhbXBsZVxuQGluY2x1ZGUgYnV0dG9uKHByaW1hcnkpO1xuYGBgXG4qL1xuLyogZG9jXG4tLS1cbmxpbmVMaW1pdDogVGhpcyB2YWx1ZSBzcGVjaWZpZXMgdGhlIG51bWJlciBvZiBsaW5lcyBhZnRlciB3aGljaCB0aGUgY29udGVudCB3aWxsIGJlIGNsYW1wZWQuIEl0IG11c3QgYmUgZ3JlYXRlciB0aGFuIDAuXG4tLS1cblxuVHJ1bmNhdGVzIHRleHQgYXQgYSBzcGVjaWZpYyBudW1iZXIgb2YgbGluZXMuXG5cblVzZSB0aGlzIG1peGluIHRvIGhpZGUgbG9uZyB0ZXh0LlxuXG4jIyBFeGFtcGxlXG4tLS1cblxuYGBgaHRtbF9leGFtcGxlXG5AaW5jbHVkZSBsaW5lLWNsYW1wKCRsaW5lTGltaXQ6IDQpO1xuYGBgXG4qL1xuLyogdHlwb2dyYXBoeVxuLS0tXG50aXRsZTogdHlwb2dyYXBoeVxubmFtZTogVHlwb2dyYXBoeVxuY2F0ZWdvcnk6IG1peGluc1xuLS0tXG5cbkFkZHMgZm9udCBDU1MgcHJvcGVydGllcyBieSBhIG1hcCBwcm92aWRlZFxuXG4jIyBQYXJhbWV0ZXJzXG4tLS1cbkBwYXJhbSAkdC1zdHlsZVxuQHBhcmFtICRpcy1pbXBvcnRhbnQ6IGZhbHNlXG5cbiogJHQtc3R5bGUgaXMgZXhwZWN0ZWQgdG8gYmUgYSBtYXAgd2l0aCAnZGVmYXVsdCcgYW5kICdicmVha3BvaW50W3NdJyBzdWJtYXBzIHdpdGggYSBwcm9wZXJ0eVxuZm9yIGV2ZXJ5IGNzcyBwcm9wZXJ0eSB0byBiZSBzZXQuXG4qICRpcy1pbXBvcnRhbnQgcGFyYW1ldGVyIGFsbG93cyB0byBmb3JjZSB0eXBvZ3JhcGh5IHByb3BlcnRpZXMgdG8gYmUgc2V0IGFzICFpbXBvcnRhbnRcblRyeSB0byBhdm9pZCBpdHMgdXNlLCBidXQgaXQgbWlnaHQgYmUgbmVlZGVkIGZvciBzaXR1YXRpb25zIHdoZXJlIHN0eWxlcyBmb3IgYSBjb21wb25lbnRcbmFyZSB2ZXJ5IHNwZWNpZmljIGFuZCB0byBvdmVyd3JpdGUgdGhlIGdlbmVyaWMgb25lcyBpcyB0b28gY29tcGxleCAoaWYgdGhleSBoYXZlIGEgbG90IG9mIHNwZWNpZmljaXR5KVxuXG4qL1xuLyogZG9jXG4tLS1cbnRpdGxlOiBoaWRkZW5cbm5hbWU6IGhpZGRlblxuY2F0ZWdvcnk6IG1peGluc1xuLS0tXG5cbkhpZGUgZnJvbSBib3RoIHNjcmVlbnJlYWRlcnMgYW5kIGJyb3dzZXJzOiBoNWJwLmNvbS91XG4jIyBQYXJhbWV0ZXJzXG4tLS1cblxuKi9cbi8qIGRvY1xuLS0tXG50aXRsZTogb3ZlcmxheVxubmFtZTogb3ZlcmxheVxuY2F0ZWdvcnk6IG1peGluc1xuLS0tXG5cbkNyZWF0ZXMgYW4gb3ZlcmxheSB3aXRoIHRoZSBwcm92aWRlZCBiYWNrZ3JvdW5kIGNvbG9yXG4jIyBQYXJhbWV0ZXJzXG4tLS1cbkBwYXJhbSAkYmdDb2xvclxuXG4qL1xuLyoqXG4gKiBAbWl4aW4gdG9wLWJvdHRvbS1ib3JkZXJcbiAqIEBkZXNjIENyZWF0ZXMgYSBkeW5hbWljIGFuZCBjdXN0b21pemFibGUgYm9yZGVyIGF0IHRoZSBzcGVjaWZpZWQgcG9zaXRpb24gb24gYW4gZWxlbWVudC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gJHBvc2l0aW9uIC0gT3B0aW9uYWwsIERlZmF1bHQ6ICdib3R0b20nLiBEZWZpbmVzIHRoZSBwb3NpdGlvbiBvZiB0aGUgYm9yZGVyLiBBY2NlcHRzIHZhbHVlcyAndG9wJyBvciAnYm90dG9tJy5cbiAqIEBwYXJhbSB7Y29sb3J9ICRjb2xvciAtIE9wdGlvbmFsLCBEZWZhdWx0OiAnJGMtYmxhY2snLiBTcGVjaWZpZXMgdGhlIGNvbG9yIG9mIHRoZSBib3JkZXIuIEFjY2VwdHMgYW55IHZhbGlkIENTUyBjb2xvciB2YWx1ZS5cbiAqIEBwYXJhbSB7bGVuZ3RofSAkd2lkdGggLSBPcHRpb25hbCwgRGVmYXVsdDogJzJweCcuIFNldHMgdGhlIHdpZHRoIG9mIHRoZSBib3JkZXIuIEFjY2VwdHMgYW55IHZhbGlkIENTUyBsZW5ndGggdmFsdWUuXG4gKiBAcGFyYW0ge2xlbmd0aH0gJG1hcmdpbiAtIE9wdGlvbmFsLCBEZWZhdWx0OiAnMCcuIEFkZHMgbWFyZ2luIHRvIHRoZSBib3JkZXIuIEFjY2VwdHMgYW55IHZhbGlkIENTUyBsZW5ndGggdmFsdWUuXG4gKlxuICogQGV4YW1wbGVcbiAqICAgLmV4YW1wbGUtZWxlbWVudCB7XG4gKiAgICAgICBAaW5jbHVkZSB0b3AtYm90dG9tLWJvcmRlcigkcG9zaXRpb246IHRvcCwgJGNvbG9yOiAkYy1ncmV5LXR3bywgJHdpZHRoOiAzcHgsICRtYXJnaW46IDEwcHgpO1xuICogICB9XG4gKi9cbi8qIGRvY1xuLS0tXG50aXRsZTogcmVzZXQtZnVsbHdpZHRoLW1hcmdpbnNcbm5hbWU6IHJlc2V0LWZ1bGx3aWR0aC1tYXJnaW5zXG5jYXRlZ29yeTogbWl4aW5zXG4tLS1cblxuUmVzZXQgbWFyZ2lucyBmb3IgZnVsbCB3aWR0aCBjb21wb25lbnRzIGluc2lkZSBhIENvbnRhaW5lciBvciBhIENvbHVtbiBDb250cm9sXG4qL1xuLnRlYXNlcjpub3QoLnRlYXNlci0taGVybyk6bm90KC50ZWFzZXItLWxheW91dC10b3ApIHtcbiAgLS10ZWFzZXItaGVpZ2h0OiAzMDBweDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAudGVhc2VyOm5vdCgudGVhc2VyLS1oZXJvKTpub3QoLnRlYXNlci0tbGF5b3V0LXRvcCkge1xuICAgIC0tdGVhc2VyLWhlaWdodDogNDQwcHg7XG4gIH1cbn1cblxuLmNtcC10ZWFzZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1pbi1oZWlnaHQ6IHZhcigtLXRlYXNlci1oZWlnaHQpO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gIC5jbXAtdGVhc2VyIHtcbiAgICBtYXJnaW46IDA7XG4gIH1cbn1cbi5jbXAtdGVhc2VyX19jb250ZW50IHtcbiAgcGFkZGluZzogMy43NXJlbSAzMHB4O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgei1pbmRleDogMjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLmNtcC10ZWFzZXJfX2NvbnRlbnQuaXMtaGlkZGVuIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAuY21wLWNhcm91c2VsX19pdGVtIC5jbXAtdGVhc2VyX19jb250ZW50IHtcbiAgICBwYWRkaW5nOiAwIDU2cHg7XG4gIH1cbn1cbi5jbXAtdGVhc2VyX190aXRsZSB7XG4gIG1hcmdpbi1ib3R0b206IDI1cHg7XG59XG5bZGF0YS1kZWFsZXItcHJpdmF0ZV0gLmNtcC10ZWFzZXJfX3RpdGxlIHtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjFweDtcbn1cbi5jbXAtdGVhc2VyX19kZXNjcmlwdGlvbiB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mZi1yZWd1bGFyKTtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMS41O1xuICBsZXR0ZXItc3BhY2luZzogdmFyKC0tbHMtZGVmYXVsdCk7XG4gIGNvbG9yOiAjNTM1NjVhO1xuICBtYXJnaW4tdG9wOiAxZW07XG59XG4uY21wLXRlYXNlcl9fZGVzY3JpcHRpb24gYSB7XG4gIGNvbG9yOiAjMDA0ZmJjO1xufVxuLmNtcC10ZWFzZXJfX2Rlc2NyaXB0aW9uIGE6aG92ZXIsIC5jbXAtdGVhc2VyX19kZXNjcmlwdGlvbiBhOmZvY3VzIHtcbiAgY29sb3I6ICMwMDU2ZDY7XG59XG4uY21wLXRlYXNlcl9fZGVzY3JpcHRpb24gdWwsXG4uY21wLXRlYXNlcl9fZGVzY3JpcHRpb24gb2wge1xuICBwYWRkaW5nLWxlZnQ6IDMycHg7XG59XG4uY21wLXRlYXNlcl9fZGVzY3JpcHRpb24gdWwge1xuICBsaXN0LXN0eWxlOiBkaXNjO1xufVxuLmNtcC10ZWFzZXJfX2Rlc2NyaXB0aW9uIG9sIHtcbiAgbGlzdC1zdHlsZTogZGVjaW1hbDtcbn1cbi5jbXAtdGVhc2VyX19kZXNjcmlwdGlvbiBoMSxcbi5jbXAtdGVhc2VyX19kZXNjcmlwdGlvbiBoMixcbi5jbXAtdGVhc2VyX19kZXNjcmlwdGlvbiBoMyxcbi5jbXAtdGVhc2VyX19kZXNjcmlwdGlvbiBoNCxcbi5jbXAtdGVhc2VyX19kZXNjcmlwdGlvbiBoNSxcbi5jbXAtdGVhc2VyX19kZXNjcmlwdGlvbiBoNiB7XG4gIGNvbG9yOiAjNTM1NjVhO1xufVxuLmNtcC10ZWFzZXJfX2FjdGlvbi1jb250YWluZXIge1xuICBtYXJnaW4tdG9wOiAxZW07XG4gIHBhZGRpbmctaW5saW5lLWVuZDogMS41cmVtO1xufVxuLnRlYXNlcl9fY3RhLS1saW5rIC5jbXAtdGVhc2VyX19hY3Rpb24tY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cbi5jbXAtdGVhc2VyX19hY3Rpb24tbGluayB7XG4gIHBvaW50ZXItZXZlbnRzOiBhbGw7XG4gIG1hcmdpbjogMCAxMHB4IDEwcHggMDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxuLmNtcC10ZWFzZXJfX2FjdGlvbi1saW5rOjphZnRlciB7XG4gIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IDEwcHg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IC0ycHg7XG4gIHdpZHRoOiAyNHB4ICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMjRweCAhaW1wb3J0YW50O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBwb2ludGVyLWV2ZW50czogYWxsICFpbXBvcnRhbnQ7XG59XG4udGVhc2VyX19jdGEtLWxpbmsgLmNtcC10ZWFzZXJfX2FjdGlvbi1saW5rOjphZnRlciB7XG4gIG1hcmdpbi1pbmxpbmUtZW5kOiAtMzRweDtcbn1cbi50ZWFzZXI6bm90KC50ZWFzZXJfX2N0YS0tc2Vjb25kYXJ5KTpub3QoLnRlYXNlcl9fY3RhLS1saW5rKTpub3QoLnRlYXNlcl9fY3RhLS12aWRlbykgLmNtcC10ZWFzZXJfX2FjdGlvbi1saW5rOmZpcnN0LWNoaWxkIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mZi1tZWRpdW0pO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBwYWRkaW5nOiAxMnB4IDMycHg7XG4gIGJhY2tncm91bmQ6ICMwMDRmYmM7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMwMDRmYmM7XG4gIGNvbG9yOiAjZmZmO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDFzO1xufVxuLnRlYXNlcjpub3QoLnRlYXNlcl9fY3RhLS1zZWNvbmRhcnkpOm5vdCgudGVhc2VyX19jdGEtLWxpbmspOm5vdCgudGVhc2VyX19jdGEtLXZpZGVvKSAuY21wLXRlYXNlcl9fYWN0aW9uLWxpbms6Zmlyc3QtY2hpbGQ6aG92ZXIsIC50ZWFzZXI6bm90KC50ZWFzZXJfX2N0YS0tc2Vjb25kYXJ5KTpub3QoLnRlYXNlcl9fY3RhLS1saW5rKTpub3QoLnRlYXNlcl9fY3RhLS12aWRlbykgLmNtcC10ZWFzZXJfX2FjdGlvbi1saW5rOmZpcnN0LWNoaWxkOmZvY3VzIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQ6ICMwMDU2ZDY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMwMDU2ZDY7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbi50ZWFzZXI6bm90KC50ZWFzZXJfX2N0YS0tc2Vjb25kYXJ5KTpub3QoLnRlYXNlcl9fY3RhLS1saW5rKTpub3QoLnRlYXNlcl9fY3RhLS12aWRlbykgLmNtcC10ZWFzZXJfX2FjdGlvbi1saW5rOmZpcnN0LWNoaWxkOmhvdmVyOjphZnRlciwgLnRlYXNlcjpub3QoLnRlYXNlcl9fY3RhLS1zZWNvbmRhcnkpOm5vdCgudGVhc2VyX19jdGEtLWxpbmspOm5vdCgudGVhc2VyX19jdGEtLXZpZGVvKSAuY21wLXRlYXNlcl9fYWN0aW9uLWxpbms6Zmlyc3QtY2hpbGQ6Zm9jdXM6OmFmdGVyIHtcbiAgdHJhbnNmb3JtOiB2YXIoLS1idXR0b24taWNvbi10cmFuc2Zvcm0taG92ZXIpO1xufVxuLnRlYXNlcjpub3QoLnRlYXNlcl9fY3RhLS1zZWNvbmRhcnkpOm5vdCgudGVhc2VyX19jdGEtLWxpbmspOm5vdCgudGVhc2VyX19jdGEtLXZpZGVvKSAuY21wLXRlYXNlcl9fYWN0aW9uLWxpbms6Zmlyc3QtY2hpbGQ6OmFmdGVyIHtcbiAgdHJhbnNmb3JtOiB2YXIoLS1idXR0b24taWNvbi10cmFuc2Zvcm0pO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBlYXNlLW91dDtcbn1cbi50ZWFzZXI6bm90KC50ZWFzZXJfX2N0YS0tc2Vjb25kYXJ5KTpub3QoLnRlYXNlcl9fY3RhLS1saW5rKTpub3QoLnRlYXNlcl9fY3RhLS12aWRlbykgLmNtcC10ZWFzZXJfX2FjdGlvbi1saW5rOmZpcnN0LWNoaWxkOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6ICMwMDQxYTM7XG59XG4udGVhc2VyOm5vdCgudGVhc2VyX19jdGEtLXNlY29uZGFyeSk6bm90KC50ZWFzZXJfX2N0YS0tbGluayk6bm90KC50ZWFzZXJfX2N0YS0tdmlkZW8pIC5jbXAtdGVhc2VyX19hY3Rpb24tbGluazpmaXJzdC1jaGlsZDphY3RpdmUsIC50ZWFzZXI6bm90KC50ZWFzZXJfX2N0YS0tc2Vjb25kYXJ5KTpub3QoLnRlYXNlcl9fY3RhLS1saW5rKTpub3QoLnRlYXNlcl9fY3RhLS12aWRlbykgLmNtcC10ZWFzZXJfX2FjdGlvbi1saW5rOmZpcnN0LWNoaWxkOmZvY3VzLCAudGVhc2VyOm5vdCgudGVhc2VyX19jdGEtLXNlY29uZGFyeSk6bm90KC50ZWFzZXJfX2N0YS0tbGluayk6bm90KC50ZWFzZXJfX2N0YS0tdmlkZW8pIC5jbXAtdGVhc2VyX19hY3Rpb24tbGluazpmaXJzdC1jaGlsZDpmb2N1cy12aXNpYmxlIHtcbiAgb3V0bGluZTogMnB4IHNvbGlkICMwMDQxYTM7XG4gIG91dGxpbmUtb2Zmc2V0OiAzcHg7XG59XG4udGVhc2VyOm5vdCgudGVhc2VyX19jdGEtLXNlY29uZGFyeSk6bm90KC50ZWFzZXJfX2N0YS0tbGluayk6bm90KC50ZWFzZXJfX2N0YS0tdmlkZW8pIC5jbXAtdGVhc2VyX19hY3Rpb24tbGluazpmaXJzdC1jaGlsZDpkaXNhYmxlZCwgLnRlYXNlcjpub3QoLnRlYXNlcl9fY3RhLS1zZWNvbmRhcnkpOm5vdCgudGVhc2VyX19jdGEtLWxpbmspOm5vdCgudGVhc2VyX19jdGEtLXZpZGVvKSAuY21wLXRlYXNlcl9fYWN0aW9uLWxpbms6Zmlyc3QtY2hpbGQuZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kOiAjOGRjOWJmO1xuICBib3JkZXI6IDFweCBzb2xpZCAjOGRjOWJmO1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuLnRlYXNlcjpub3QoLnRlYXNlcl9fY3RhLS1zZWNvbmRhcnkpOm5vdCgudGVhc2VyX19jdGEtLWxpbmspOm5vdCgudGVhc2VyX19jdGEtLXZpZGVvKSAuY21wLXRlYXNlcl9fYWN0aW9uLWxpbms6Zmlyc3QtY2hpbGQ6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBjb250ZW50OiBcIlwiO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hc2staW1hZ2U6IHVybChcIi9jb250ZW50L2RhbS92b2x2by1tZWRpYS9saXN0LWljb25zL2NoZXZyb24tcmlnaHQuc3ZnI2NoZXZyb24tcmlnaHQtaWNvbi13MjQtdmlld1wiKTtcbiAgbWFzay1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgbWFzay1zaXplOiBjb3ZlcjtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHdpZHRoOiAyNHB4O1xuICBoZWlnaHQ6IDI0cHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC50ZWFzZXI6bm90KC50ZWFzZXJfX2N0YS0tc2Vjb25kYXJ5KTpub3QoLnRlYXNlcl9fY3RhLS1saW5rKTpub3QoLnRlYXNlcl9fY3RhLS12aWRlbykgLmNtcC10ZWFzZXJfX2FjdGlvbi1saW5rOmZpcnN0LWNoaWxkOmFmdGVyIHtcbiAgICBtYXNrLWltYWdlOiB1cmwoXCIvY29udGVudC9kYW0vdm9sdm8tbWVkaWEvbGlzdC1pY29ucy9jaGV2cm9uLXJpZ2h0LnN2ZyNjaGV2cm9uLXJpZ2h0LWljb24tdzE2LXZpZXdcIik7XG4gIH1cbn1cbi50ZWFzZXI6bm90KC50ZWFzZXJfX2N0YS0tc2Vjb25kYXJ5KTpub3QoLnRlYXNlcl9fY3RhLS1saW5rKTpub3QoLnRlYXNlcl9fY3RhLS12aWRlbykgLmNtcC10ZWFzZXJfX2FjdGlvbi1saW5rOmZpcnN0LWNoaWxkW3RhcmdldD1fYmxhbmtdOmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgY29udGVudDogXCJcIjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXNrLWltYWdlOiB1cmwoXCIvY29udGVudC9kYW0vdm9sdm8tbWVkaWEvbGlzdC1pY29ucy9saW5rLWV4dGVybmFsLnN2ZyNsaW5rLWV4dGVybmFsLWljb24tdzI0LXZpZXdcIik7XG4gIG1hc2stcmVwZWF0OiBuby1yZXBlYXQ7XG4gIG1hc2stc2l6ZTogY292ZXI7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB3aWR0aDogMjRweDtcbiAgaGVpZ2h0OiAyNHB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAudGVhc2VyOm5vdCgudGVhc2VyX19jdGEtLXNlY29uZGFyeSk6bm90KC50ZWFzZXJfX2N0YS0tbGluayk6bm90KC50ZWFzZXJfX2N0YS0tdmlkZW8pIC5jbXAtdGVhc2VyX19hY3Rpb24tbGluazpmaXJzdC1jaGlsZFt0YXJnZXQ9X2JsYW5rXTphZnRlciB7XG4gICAgbWFzay1pbWFnZTogdXJsKFwiL2NvbnRlbnQvZGFtL3ZvbHZvLW1lZGlhL2xpc3QtaWNvbnMvbGluay1leHRlcm5hbC5zdmcjbGluay1leHRlcm5hbC1pY29uLXcxNi12aWV3XCIpO1xuICB9XG59XG4udGVhc2VyOm5vdCgudGVhc2VyX19jdGEtLXNlY29uZGFyeSk6bm90KC50ZWFzZXJfX2N0YS0tbGluayk6bm90KC50ZWFzZXJfX2N0YS0tdmlkZW8pIC5jbXAtdGVhc2VyX19hY3Rpb24tbGluazpmaXJzdC1jaGlsZFt0YXJnZXQ9X2JsYW5rXTo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuLnRlYXNlcjpub3QoLnRlYXNlcl9fY3RhLS1zZWNvbmRhcnkpOm5vdCgudGVhc2VyX19jdGEtLWxpbmspOm5vdCgudGVhc2VyX19jdGEtLXZpZGVvKSAuY21wLXRlYXNlcl9fYWN0aW9uLWxpbms6Zmlyc3QtY2hpbGQ6OmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbn1cbi5jbXAtdGVhc2VyX19hY3Rpb24tbGluazpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBmb250LWZhbWlseTogdmFyKC0tZmYtbWVkaXVtKTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgcGFkZGluZzogMTJweCAzMnB4O1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCAjNTM1NjVhO1xuICBjb2xvcjogIzUzNTY1YTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAxcztcbiAgcGFkZGluZy1pbmxpbmUtZW5kOiAxLjMxMjVyZW07XG59XG4uY21wLXRlYXNlcl9fYWN0aW9uLWxpbms6bm90KDpmaXJzdC1jaGlsZCk6aG92ZXIsIC5jbXAtdGVhc2VyX19hY3Rpb24tbGluazpub3QoOmZpcnN0LWNoaWxkKTpmb2N1cyB7XG4gIGJhY2tncm91bmQ6ICNmN2Y3Zjc7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY29sb3I6ICM1MzU2NWE7XG59XG4uY21wLXRlYXNlcl9fYWN0aW9uLWxpbms6bm90KDpmaXJzdC1jaGlsZCk6aG92ZXI6OmFmdGVyLCAuY21wLXRlYXNlcl9fYWN0aW9uLWxpbms6bm90KDpmaXJzdC1jaGlsZCk6Zm9jdXM6OmFmdGVyIHtcbiAgdHJhbnNmb3JtOiB2YXIoLS1idXR0b24taWNvbi10cmFuc2Zvcm0taG92ZXIpO1xufVxuLmNtcC10ZWFzZXJfX2FjdGlvbi1saW5rOm5vdCg6Zmlyc3QtY2hpbGQpOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6ICNlMWRmZGQ7XG59XG4uY21wLXRlYXNlcl9fYWN0aW9uLWxpbms6bm90KDpmaXJzdC1jaGlsZCk6YWN0aXZlLCAuY21wLXRlYXNlcl9fYWN0aW9uLWxpbms6bm90KDpmaXJzdC1jaGlsZCk6Zm9jdXMsIC5jbXAtdGVhc2VyX19hY3Rpb24tbGluazpub3QoOmZpcnN0LWNoaWxkKTpmb2N1cy12aXNpYmxlIHtcbiAgb3V0bGluZTogMnB4IHNvbGlkICMwMDQxYTM7XG4gIG91dGxpbmUtb2Zmc2V0OiAzcHg7XG59XG4uY21wLXRlYXNlcl9fYWN0aW9uLWxpbms6bm90KDpmaXJzdC1jaGlsZCk6OmFmdGVyIHtcbiAgdHJhbnNmb3JtOiB2YXIoLS1idXR0b24taWNvbi10cmFuc2Zvcm0pO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBlYXNlLW91dDtcbn1cbi5jbXAtdGVhc2VyX19hY3Rpb24tbGluazpub3QoOmZpcnN0LWNoaWxkKTpkaXNhYmxlZCwgLmNtcC10ZWFzZXJfX2FjdGlvbi1saW5rOm5vdCg6Zmlyc3QtY2hpbGQpLmRpc2FibGVkIHtcbiAgYm9yZGVyOiAxcHggc29saWQgIzg4OGI4ZDtcbiAgY29sb3I6ICM4ODhiOGQ7XG59XG4uY21wLXRlYXNlcl9fYWN0aW9uLWxpbms6bm90KDpmaXJzdC1jaGlsZCk6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTM1NjVhO1xuICBjb250ZW50OiBcIlwiO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hc2staW1hZ2U6IHVybChcIi9jb250ZW50L2RhbS92b2x2by1tZWRpYS9saXN0LWljb25zL2NoZXZyb24tcmlnaHQuc3ZnI2NoZXZyb24tcmlnaHQtaWNvbi13MjQtdmlld1wiKTtcbiAgbWFzay1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgbWFzay1zaXplOiBjb3ZlcjtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHdpZHRoOiAyNHB4O1xuICBoZWlnaHQ6IDI0cHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC5jbXAtdGVhc2VyX19hY3Rpb24tbGluazpub3QoOmZpcnN0LWNoaWxkKTphZnRlciB7XG4gICAgbWFzay1pbWFnZTogdXJsKFwiL2NvbnRlbnQvZGFtL3ZvbHZvLW1lZGlhL2xpc3QtaWNvbnMvY2hldnJvbi1yaWdodC5zdmcjY2hldnJvbi1yaWdodC1pY29uLXcxNi12aWV3XCIpO1xuICB9XG59XG4uY21wLXRlYXNlcl9fYWN0aW9uLWxpbms6bm90KDpmaXJzdC1jaGlsZClbdGFyZ2V0PV9ibGFua106YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTM1NjVhO1xuICBjb250ZW50OiBcIlwiO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hc2staW1hZ2U6IHVybChcIi9jb250ZW50L2RhbS92b2x2by1tZWRpYS9saXN0LWljb25zL2xpbmstZXh0ZXJuYWwuc3ZnI2xpbmstZXh0ZXJuYWwtaWNvbi13MjQtdmlld1wiKTtcbiAgbWFzay1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgbWFzay1zaXplOiBjb3ZlcjtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHdpZHRoOiAyNHB4O1xuICBoZWlnaHQ6IDI0cHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC5jbXAtdGVhc2VyX19hY3Rpb24tbGluazpub3QoOmZpcnN0LWNoaWxkKVt0YXJnZXQ9X2JsYW5rXTphZnRlciB7XG4gICAgbWFzay1pbWFnZTogdXJsKFwiL2NvbnRlbnQvZGFtL3ZvbHZvLW1lZGlhL2xpc3QtaWNvbnMvbGluay1leHRlcm5hbC5zdmcjbGluay1leHRlcm5hbC1pY29uLXcxNi12aWV3XCIpO1xuICB9XG59XG4udGVhc2VyOm5vdCgudGVhc2VyX19jdGEtLXNlY29uZGFyeSk6bm90KC50ZWFzZXJfX2N0YS0tbGluayk6bm90KC50ZWFzZXItLWxheW91dC10b3ApIC5jbXAtdGVhc2VyX19hY3Rpb24tbGluazpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIGNvbG9yOiAjNTM1NjVhO1xufVxuLnRlYXNlcjpub3QoLnRlYXNlcl9fY3RhLS1zZWNvbmRhcnkpOm5vdCgudGVhc2VyX19jdGEtLWxpbmspOm5vdCgudGVhc2VyLS1sYXlvdXQtdG9wKSAuY21wLXRlYXNlcl9fYWN0aW9uLWxpbms6bm90KDpmaXJzdC1jaGlsZCk6OmFmdGVyLCAudGVhc2VyOm5vdCgudGVhc2VyX19jdGEtLXNlY29uZGFyeSk6bm90KC50ZWFzZXJfX2N0YS0tbGluayk6bm90KC50ZWFzZXItLWxheW91dC10b3ApIC5jbXAtdGVhc2VyX19hY3Rpb24tbGluazpub3QoOmZpcnN0LWNoaWxkKVt0YXJnZXQ9X2JsYW5rXTo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTM1NjVhO1xufVxuLmNtcC10ZWFzZXJfX2VtYmVkLCAuY21wLXRlYXNlcl9faW1hZ2Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xufVxuLmNtcC10ZWFzZXJfX2VtYmVkIC5lbWJlZF9feW91dHViZTpub3QoLmVtYmVkX195b3V0dWJlLS13aXRoVGh1bWJuYWlsKSB7XG4gIGFzcGVjdC1yYXRpbzogYXV0bztcbn1cbi5jbXAtdGVhc2VyX19lbWJlZCAuZW1iZWRfX3lvdXR1YmVfX3RodW1ibmFpbCB7XG4gIG1pbi1oZWlnaHQ6IHZhcigtLXRlYXNlci1oZWlnaHQpO1xuICBtYXgtaGVpZ2h0OiB2YXIoLS10ZWFzZXItaGVpZ2h0KTtcbn1cbi5jbXAtdGVhc2VyX19lbWJlZCAuZW1iZWRfX3lvdXR1YmUgaWZyYW1lLFxuLmNtcC10ZWFzZXJfX2VtYmVkIGlmcmFtZSB7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiB2YXIoLS10ZWFzZXItaGVpZ2h0KTtcbn1cbi5jbXAtdGVhc2VyX19lbWJlZCArIC5jbXAtdGVhc2VyX19jb250ZW50IHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4uY21wLXRlYXNlcl9fZW1iZWQgLmNtcC1lbWJlZCA+ICoge1xuICBtYXJnaW46IDA7XG59XG4uY21wLXRlYXNlcl9faW1hZ2UgaW1nLFxuLmNtcC10ZWFzZXJfX2ltYWdlIC5jbXAtaW1hZ2UsXG4uY21wLXRlYXNlcl9faW1hZ2UgLmNtcC1pbWFnZV9faW1hZ2Uge1xuICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgb2JqZWN0LXBvc2l0aW9uOiBjZW50ZXI7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG4uY21wLXRlYXNlcl9faW1hZ2UgLmNtcC1pbWFnZSB2aWRlbywgLmNtcC10ZWFzZXJfX2ltYWdlIC5jbXAtaW1hZ2VfX2ltYWdlIHZpZGVvIHtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuLmNtcC10ZWFzZXJfX2ltYWdlIC5jbXAtaW1hZ2UgLnM3ZG0tZHluYW1pYy1tZWRpYSB2aWRlbywgLmNtcC10ZWFzZXJfX2ltYWdlIC5jbXAtaW1hZ2VfX2ltYWdlIC5zN2RtLWR5bmFtaWMtbWVkaWEgdmlkZW8ge1xuICB0b3A6IDAgIWltcG9ydGFudDtcbiAgbGVmdDogMCAhaW1wb3J0YW50O1xuICBtaW4td2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgbWluLWhlaWdodDogMTAwJSAhaW1wb3J0YW50O1xufVxuLmNtcC10ZWFzZXJfX2ltYWdlIC5jbXAtaW1hZ2UgLmltZ19fbGluayB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4udGVhc2VyOm5vdCgudGVhc2VyLS1sYXlvdXQtdG9wKTpub3QoLnN0YWdlKS50ZWFzZXJfX3RleHQtLWNlbnRlciAuY21wLXRlYXNlcl9fY29udGVudCB7XG4gIG1heC13aWR0aDogODIwcHg7XG59XG4udGVhc2VyOm5vdCgudGVhc2VyLS1sYXlvdXQtdG9wKTpub3QoLnN0YWdlKSAuY21wLXRlYXNlcl9fY29udGVudCB7XG4gIG1heC13aWR0aDogNjIwcHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgLmNhcm91c2VsIC50ZWFzZXI6bm90KC50ZWFzZXItLWxheW91dC10b3ApOm5vdCguc3RhZ2UpIC5jbXAtdGVhc2VyX19jb250ZW50IHtcbiAgICB3aWR0aDogNTAlO1xuICAgIG1heC13aWR0aDogbm9uZTtcbiAgfVxufVxuLmNvbGxhZ2UgLnRlYXNlcjpub3QoLnRlYXNlci0tbGF5b3V0LXRvcCk6bm90KC5zdGFnZSkgLmNtcC10ZWFzZXJfX2NvbnRlbnQge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiBub25lO1xufVxuXG4udGVhc2VyOm5vdCgudGVhc2VyX19jdGEtLWxpbmspIC5jbXAtdGVhc2VyX19hY3Rpb24tY29udGFpbmVyIHtcbiAgbWFyZ2luLXRvcDogMjVweDtcbn1cblxuLnRlYXNlci0taGVybyB7XG4gIC0tdGVhc2VyLWhlaWdodDogNDQwcHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgLnRlYXNlci0taGVybyB7XG4gICAgLS10ZWFzZXItaGVpZ2h0OiA2MDBweDtcbiAgfVxufVxuXG4udGVhc2VyLS1sYXlvdXQtdG9wIC5jbXAtdGVhc2VyIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4udGVhc2VyLS1sYXlvdXQtdG9wIC5jbXAtdGVhc2VyX19jb250ZW50IHtcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgdHJhbnNmb3JtOiBub25lO1xuICBwb2ludGVyLWV2ZW50czogYWxsO1xuICBwYWRkaW5nOiAxZW0gMDtcbn1cbi50ZWFzZXItLWxheW91dC10b3AgLmNtcC10ZWFzZXJfX2ltYWdlLCAudGVhc2VyLS1sYXlvdXQtdG9wIC5jbXAtdGVhc2VyX19lbWJlZCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYXNwZWN0LXJhdGlvOiAxNi85O1xufVxuLnRlYXNlci0tbGF5b3V0LXRvcCAuY21wLXRlYXNlcl9fZW1iZWQgaWZyYW1lIHtcbiAgYXNwZWN0LXJhdGlvOiAxNi85O1xuICBoZWlnaHQ6IGF1dG87XG59XG4udGVhc2VyLS1sYXlvdXQtdG9wLnRlYXNlcl9fY3RhLS12aWRlbyAuY21wLXRlYXNlcl9fYWN0aW9uLWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi10b3A6IDA7XG4gIGhlaWdodDogMDtcbiAgcGFkZGluZy10b3A6IDU3JTtcbn1cbi50ZWFzZXItLWxheW91dC10b3AudGVhc2VyX19jdGEtLXZpZGVvIC5jbXAtdGVhc2VyX19hY3Rpb24tY29udGFpbmVyIC5jbXAtdGVhc2VyX19hY3Rpb24tbGluayB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgd2lkdGg6IDc1cHg7XG4gIGhlaWdodDogNzVweDtcbiAgbWFyZ2luOiAtMjVweCAwIDAgLTQwcHg7XG59XG4udGVhc2VyLS1sYXlvdXQtdG9wLnRlYXNlcl9fY3RhLS12aWRlbyAuY21wLXRlYXNlcl9fYWN0aW9uLWNvbnRhaW5lciAuY21wLXRlYXNlcl9fYWN0aW9uLWxpbms6OmJlZm9yZSB7XG4gIGZvbnQtc2l6ZTogMzRweDtcbn1cblxuLnRlYXNlcl9fY3RhLS1zZWNvbmRhcnkgLmNtcC10ZWFzZXJfX2FjdGlvbi1saW5rIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mZi1tZWRpdW0pO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBwYWRkaW5nOiAxMnB4IDMycHg7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICM1MzU2NWE7XG4gIGNvbG9yOiAjNTM1NjVhO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDFzO1xuICBwYWRkaW5nLWlubGluZS1lbmQ6IDEuMzEyNXJlbTtcbn1cbi50ZWFzZXJfX2N0YS0tc2Vjb25kYXJ5IC5jbXAtdGVhc2VyX19hY3Rpb24tbGluazpob3ZlciwgLnRlYXNlcl9fY3RhLS1zZWNvbmRhcnkgLmNtcC10ZWFzZXJfX2FjdGlvbi1saW5rOmZvY3VzIHtcbiAgYmFja2dyb3VuZDogI2Y3ZjdmNztcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjb2xvcjogIzUzNTY1YTtcbn1cbi50ZWFzZXJfX2N0YS0tc2Vjb25kYXJ5IC5jbXAtdGVhc2VyX19hY3Rpb24tbGluazpob3Zlcjo6YWZ0ZXIsIC50ZWFzZXJfX2N0YS0tc2Vjb25kYXJ5IC5jbXAtdGVhc2VyX19hY3Rpb24tbGluazpmb2N1czo6YWZ0ZXIge1xuICB0cmFuc2Zvcm06IHZhcigtLWJ1dHRvbi1pY29uLXRyYW5zZm9ybS1ob3Zlcik7XG59XG4udGVhc2VyX19jdGEtLXNlY29uZGFyeSAuY21wLXRlYXNlcl9fYWN0aW9uLWxpbms6YWN0aXZlIHtcbiAgYmFja2dyb3VuZDogI2UxZGZkZDtcbn1cbi50ZWFzZXJfX2N0YS0tc2Vjb25kYXJ5IC5jbXAtdGVhc2VyX19hY3Rpb24tbGluazphY3RpdmUsIC50ZWFzZXJfX2N0YS0tc2Vjb25kYXJ5IC5jbXAtdGVhc2VyX19hY3Rpb24tbGluazpmb2N1cywgLnRlYXNlcl9fY3RhLS1zZWNvbmRhcnkgLmNtcC10ZWFzZXJfX2FjdGlvbi1saW5rOmZvY3VzLXZpc2libGUge1xuICBvdXRsaW5lOiAycHggc29saWQgIzAwNDFhMztcbiAgb3V0bGluZS1vZmZzZXQ6IDNweDtcbn1cbi50ZWFzZXJfX2N0YS0tc2Vjb25kYXJ5IC5jbXAtdGVhc2VyX19hY3Rpb24tbGluazo6YWZ0ZXIge1xuICB0cmFuc2Zvcm06IHZhcigtLWJ1dHRvbi1pY29uLXRyYW5zZm9ybSk7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGVhc2Utb3V0O1xufVxuLnRlYXNlcl9fY3RhLS1zZWNvbmRhcnkgLmNtcC10ZWFzZXJfX2FjdGlvbi1saW5rOmRpc2FibGVkLCAudGVhc2VyX19jdGEtLXNlY29uZGFyeSAuY21wLXRlYXNlcl9fYWN0aW9uLWxpbmsuZGlzYWJsZWQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjODg4YjhkO1xuICBjb2xvcjogIzg4OGI4ZDtcbn1cbi50ZWFzZXJfX2N0YS0tc2Vjb25kYXJ5IC5jbXAtdGVhc2VyX19hY3Rpb24tbGluazphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1MzU2NWE7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFzay1pbWFnZTogdXJsKFwiL2NvbnRlbnQvZGFtL3ZvbHZvLW1lZGlhL2xpc3QtaWNvbnMvY2hldnJvbi1yaWdodC5zdmcjY2hldnJvbi1yaWdodC1pY29uLXcyNC12aWV3XCIpO1xuICBtYXNrLXJlcGVhdDogbm8tcmVwZWF0O1xuICBtYXNrLXNpemU6IGNvdmVyO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgd2lkdGg6IDI0cHg7XG4gIGhlaWdodDogMjRweDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLnRlYXNlcl9fY3RhLS1zZWNvbmRhcnkgLmNtcC10ZWFzZXJfX2FjdGlvbi1saW5rOmFmdGVyIHtcbiAgICBtYXNrLWltYWdlOiB1cmwoXCIvY29udGVudC9kYW0vdm9sdm8tbWVkaWEvbGlzdC1pY29ucy9jaGV2cm9uLXJpZ2h0LnN2ZyNjaGV2cm9uLXJpZ2h0LWljb24tdzE2LXZpZXdcIik7XG4gIH1cbn1cbi50ZWFzZXJfX2N0YS0tc2Vjb25kYXJ5IC5jbXAtdGVhc2VyX19hY3Rpb24tbGlua1t0YXJnZXQ9X2JsYW5rXTphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1MzU2NWE7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFzay1pbWFnZTogdXJsKFwiL2NvbnRlbnQvZGFtL3ZvbHZvLW1lZGlhL2xpc3QtaWNvbnMvbGluay1leHRlcm5hbC5zdmcjbGluay1leHRlcm5hbC1pY29uLXcyNC12aWV3XCIpO1xuICBtYXNrLXJlcGVhdDogbm8tcmVwZWF0O1xuICBtYXNrLXNpemU6IGNvdmVyO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgd2lkdGg6IDI0cHg7XG4gIGhlaWdodDogMjRweDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLnRlYXNlcl9fY3RhLS1zZWNvbmRhcnkgLmNtcC10ZWFzZXJfX2FjdGlvbi1saW5rW3RhcmdldD1fYmxhbmtdOmFmdGVyIHtcbiAgICBtYXNrLWltYWdlOiB1cmwoXCIvY29udGVudC9kYW0vdm9sdm8tbWVkaWEvbGlzdC1pY29ucy9saW5rLWV4dGVybmFsLnN2ZyNsaW5rLWV4dGVybmFsLWljb24tdzE2LXZpZXdcIik7XG4gIH1cbn1cbi50ZWFzZXJfX2N0YS0tdmlkZW8gLmNtcC10ZWFzZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4udGVhc2VyX19jdGEtLXZpZGVvIC5jbXAtdGVhc2VyX19hY3Rpb24tbGluayB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBmb250LWZhbWlseTogdmFyKC0tZmYtbWVkaXVtKTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDc1cHg7XG4gIGhlaWdodDogNzVweDtcbiAgZm9udC1zaXplOiAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiAjNTM1NjVhO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTFkZmRkO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJveC1zaGFkb3c6IDAgMCAyMHB4IDAgcmdiYSgwLCAwLCAwLCAwLjMpO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuM3M7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogMDtcbiAgd2lkdGg6IDUwcHg7XG4gIGhlaWdodDogNTBweDtcbiAgY29sb3I6ICNmZmY7XG59XG4udGVhc2VyX19jdGEtLXZpZGVvIC5jbXAtdGVhc2VyX19hY3Rpb24tbGluazpiZWZvcmUge1xuICBmb250LWZhbWlseTogXCJWb2x2b0ljb25zXCI7XG4gIGNvbnRlbnQ6IFwiXFxlOTExXCI7XG4gIHNwZWFrOiBub25lO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICAvKiBCZXR0ZXIgRm9udCBSZW5kZXJpbmcgPT09PT09PT09PT0gKi9cbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgLnRlYXNlcl9fY3RhLS12aWRlbyAuY21wLXRlYXNlcl9fYWN0aW9uLWxpbmsge1xuICAgIHdpZHRoOiA1MHB4O1xuICAgIGhlaWdodDogNTBweDtcbiAgfVxufVxuLnRlYXNlcl9fY3RhLS12aWRlbyAuY21wLXRlYXNlcl9fYWN0aW9uLWxpbms6aG92ZXIsIC50ZWFzZXJfX2N0YS0tdmlkZW8gLmNtcC10ZWFzZXJfX2FjdGlvbi1saW5rOmZvY3VzIHtcbiAgY29sb3I6ICM1MzU2NWE7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlMWRmZGQ7XG4gIGJvcmRlcjogMDtcbn1cbi50ZWFzZXJfX2N0YS0tdmlkZW8gLmNtcC10ZWFzZXJfX2FjdGlvbi1saW5rOmhvdmVyOjpiZWZvcmUsIC50ZWFzZXJfX2N0YS0tdmlkZW8gLmNtcC10ZWFzZXJfX2FjdGlvbi1saW5rOmZvY3VzOjpiZWZvcmUge1xuICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG59XG4udGVhc2VyX19jdGEtLXZpZGVvIC5jbXAtdGVhc2VyX19hY3Rpb24tbGluazo6YmVmb3JlIHtcbiAgbWFyZ2luLWxlZnQ6IDdweDtcbiAgZm9udC1zaXplOiAzNHB4O1xuICBsaW5lLWhlaWdodDogMi4yO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBlYXNlLWluLW91dDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAudGVhc2VyX19jdGEtLXZpZGVvIC5jbXAtdGVhc2VyX19hY3Rpb24tbGluazo6YmVmb3JlIHtcbiAgICBmb250LXNpemU6IDIzcHg7XG4gIH1cbn1cbi50ZWFzZXJfX2N0YS0tdmlkZW8gLmNtcC10ZWFzZXJfX2FjdGlvbi1saW5rOjpiZWZvcmUge1xuICBmb250LXNpemU6IDIzcHg7XG4gIG1hcmdpbi1sZWZ0OiA0cHg7XG59XG4udGVhc2VyX19jdGEtLXZpZGVvIC5jbXAtdGVhc2VyX19hY3Rpb24tbGluazo6YWZ0ZXIge1xuICBjb250ZW50OiBub25lO1xuICBvcGFjaXR5OiAwO1xufVxuLnRlYXNlcl9fY3RhLS12aWRlbyAuY21wLXRlYXNlcl9fYWN0aW9uLWNvbnRhaW5lciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi50ZWFzZXJfX2N0YS0tdmlkZW86bm90KC50ZWFzZXItLWxheW91dC10b3ApIC5jbXAtdGVhc2VyX19hY3Rpb24tY29udGFpbmVyIHtcbiAgbWFyZ2luLXRvcDogMjVweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xufVxuLnRlYXNlcl9fY3RhLS1saW5rOm5vdCgudGVhc2VyX19jdGEtLXNlY29uZGFyeSkgLmNtcC10ZWFzZXJfX2FjdGlvbi1saW5rIHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZmLXJlZ3VsYXIpO1xuICBmb250LXNpemU6IDE2cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIGxldHRlci1zcGFjaW5nOiB2YXIoLS1scy1kZWZhdWx0KTtcbiAgcGFkZGluZzogMDtcbiAgY29sb3I6ICMwMDRmYmM7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDA7XG59XG4udGVhc2VyX19jdGEtLWxpbms6bm90KC50ZWFzZXJfX2N0YS0tc2Vjb25kYXJ5KSAuY21wLXRlYXNlcl9fYWN0aW9uLWxpbms6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA0ZmJjO1xuICBjb250ZW50OiBcIlwiO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hc2staW1hZ2U6IHVybChcIi9jb250ZW50L2RhbS92b2x2by1tZWRpYS9saXN0LWljb25zL2NoZXZyb24tcmlnaHQuc3ZnI2NoZXZyb24tcmlnaHQtaWNvbi13MjQtdmlld1wiKTtcbiAgbWFzay1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgbWFzay1zaXplOiBjb3ZlcjtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHdpZHRoOiB2YXIoLS12LWljb24tc2l6ZSk7XG4gIGhlaWdodDogdmFyKC0tdi1pY29uLXNpemUpO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAudGVhc2VyX19jdGEtLWxpbms6bm90KC50ZWFzZXJfX2N0YS0tc2Vjb25kYXJ5KSAuY21wLXRlYXNlcl9fYWN0aW9uLWxpbms6YWZ0ZXIge1xuICAgIG1hc2staW1hZ2U6IHVybChcIi9jb250ZW50L2RhbS92b2x2by1tZWRpYS9saXN0LWljb25zL2NoZXZyb24tcmlnaHQuc3ZnI2NoZXZyb24tcmlnaHQtaWNvbi13MTYtdmlld1wiKTtcbiAgfVxufVxuLnRlYXNlcl9fY3RhLS1saW5rOm5vdCgudGVhc2VyX19jdGEtLXNlY29uZGFyeSkgLmNtcC10ZWFzZXJfX2FjdGlvbi1saW5rOjphZnRlciB7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgZWFzZS1vdXQ7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgY29udGVudDogXCJcIjtcbiAgdHJhbnNmb3JtOiB2YXIoLS1idXR0b24taWNvbi10cmFuc2Zvcm0pO1xufVxuLnRlYXNlcl9fY3RhLS1saW5rOm5vdCgudGVhc2VyX19jdGEtLXNlY29uZGFyeSkgLmNtcC10ZWFzZXJfX2FjdGlvbi1saW5rOmhvdmVyOjphZnRlciB7XG4gIHRyYW5zZm9ybTogdmFyKC0tYnV0dG9uLWljb24tdHJhbnNmb3JtLWhvdmVyKTtcbn1cbi50ZWFzZXJfX2N0YS0tbGluazpub3QoLnRlYXNlcl9fY3RhLS1zZWNvbmRhcnkpIC5jbXAtdGVhc2VyX19hY3Rpb24tbGlua1t0YXJnZXQ9X2JsYW5rXTphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDRmYmM7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFzay1pbWFnZTogdXJsKFwiL2NvbnRlbnQvZGFtL3ZvbHZvLW1lZGlhL2xpc3QtaWNvbnMvbGluay1leHRlcm5hbC5zdmcjbGluay1leHRlcm5hbC1pY29uLXcyNC12aWV3XCIpO1xuICBtYXNrLXJlcGVhdDogbm8tcmVwZWF0O1xuICBtYXNrLXNpemU6IGNvdmVyO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgd2lkdGg6IHZhcigtLXYtaWNvbi1zaXplKTtcbiAgaGVpZ2h0OiB2YXIoLS12LWljb24tc2l6ZSk7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC50ZWFzZXJfX2N0YS0tbGluazpub3QoLnRlYXNlcl9fY3RhLS1zZWNvbmRhcnkpIC5jbXAtdGVhc2VyX19hY3Rpb24tbGlua1t0YXJnZXQ9X2JsYW5rXTphZnRlciB7XG4gICAgbWFzay1pbWFnZTogdXJsKFwiL2NvbnRlbnQvZGFtL3ZvbHZvLW1lZGlhL2xpc3QtaWNvbnMvbGluay1leHRlcm5hbC5zdmcjbGluay1leHRlcm5hbC1pY29uLXcxNi12aWV3XCIpO1xuICB9XG59XG5cbi50ZWFzZXIge1xuICBtYXJnaW46IDMwcHggMDtcbn1cbi50ZWFzZXIubWFyZ2luLXRvcC0tbm9uZSB7XG4gIG1hcmdpbi10b3A6IDA7XG59XG4udGVhc2VyLm1hcmdpbi10b3AtLXNpbmdsZSB7XG4gIG1hcmdpbi10b3A6IDMwcHg7XG59XG4udGVhc2VyLm1hcmdpbi10b3AtLWRvdWJsZSB7XG4gIG1hcmdpbi10b3A6IDMwcHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLnRlYXNlci5tYXJnaW4tdG9wLS1kb3VibGUge1xuICAgIG1hcmdpbi10b3A6IGNhbGMoMzBweCAqIDIpO1xuICB9XG59XG4udGVhc2VyLm1hcmdpbi1ib3R0b20tLW5vbmUge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuLnRlYXNlci5tYXJnaW4tYm90dG9tLS1zaW5nbGUge1xuICBtYXJnaW4tYm90dG9tOiAzMHB4O1xufVxuLnRlYXNlci5tYXJnaW4tYm90dG9tLS1kb3VibGUge1xuICBtYXJnaW4tYm90dG9tOiAzMHB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC50ZWFzZXIubWFyZ2luLWJvdHRvbS0tZG91YmxlIHtcbiAgICBtYXJnaW4tYm90dG9tOiBjYWxjKDMwcHggKiAyKTtcbiAgfVxufVxuLmFlbS1HcmlkID4gLnRlYXNlcjpmaXJzdC1jaGlsZDpub3QoLm1hcmdpbi10b3AtLXNpbmdsZSk6bm90KC5tYXJnaW4tdG9wLS1kb3VibGUpIHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cblxuLnRlYXNlcl9faW1nLS1mdWxsIC5jbXAtdGVhc2VyX19pbWFnZSB7XG4gIG1hcmdpbjogMCAtMTVweDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAudGVhc2VyX19pbWctLWZ1bGwgLmNtcC10ZWFzZXJfX2ltYWdlIHtcbiAgICBtYXJnaW46IDAgLTE1cHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLnRlYXNlcl9faW1nLS1mdWxsIC5jbXAtdGVhc2VyX19pbWFnZSB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWFyZ2luOiAwIGNhbGMoKDEwMHZ3IC0gMTIwMHB4KSAvIC0yKTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDIwNDhweCkge1xuICAudGVhc2VyX19pbWctLWZ1bGwgLmNtcC10ZWFzZXJfX2ltYWdlIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBtYXJnaW46IDAgY2FsYygoMjA0OHB4IC0gMTIwMHB4KSAvIC0yKTtcbiAgfVxuICAuY29udGFpbmVyLS1mdWxsV2lkdGggLnRlYXNlcl9faW1nLS1mdWxsIC5jbXAtdGVhc2VyX19pbWFnZSB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG4gIC5jb2x1bW5jb250cm9sX19jb2x1bW46Zmlyc3QtY2hpbGQgLnRlYXNlcl9faW1nLS1mdWxsIC5jbXAtdGVhc2VyX19pbWFnZSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICB9XG4gIC5jb2x1bW5jb250cm9sX19jb2x1bW46bGFzdC1jaGlsZCAudGVhc2VyX19pbWctLWZ1bGwgLmNtcC10ZWFzZXJfX2ltYWdlIHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxufVxuXG4udGVhc2VyX19vdmVybGF5LS1kYXJrLnRlYXNlciAuY21wLWltYWdlIGltZywgLnRlYXNlcl9fb3ZlcmxheS0tZGFyay50ZWFzZXItLWhlcm8gLmNtcC1pbWFnZSBpbWcge1xuICBmaWx0ZXI6IGJyaWdodG5lc3MoNTAlKTtcbn1cbi50ZWFzZXJfX292ZXJsYXktLWxpZ2h0ZXItZGFyay50ZWFzZXIgLmNtcC1pbWFnZSBpbWcsIC50ZWFzZXJfX292ZXJsYXktLWxpZ2h0ZXItZGFyay50ZWFzZXItLWhlcm8gLmNtcC1pbWFnZSBpbWcge1xuICBmaWx0ZXI6IGJyaWdodG5lc3MoODAlKTtcbn1cblxuLnRlYXNlcl9fdGV4dC0tcmlnaHQ6bm90KC50ZWFzZXItLWxheW91dC10b3ApIC5jbXAtdGVhc2VyIHtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbn1cbi50ZWFzZXJfX3RleHQtLWNlbnRlciAuY21wLXRlYXNlciB7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuLnRlYXNlcl9fdGV4dC0tY2VudGVyIC5jbXAtdGVhc2VyX19jb250ZW50IHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC50ZWFzZXJfX3RleHQtLWNlbnRlciAuY21wLXRlYXNlcl9fY29udGVudCAuY21wLXRlYXNlcl9fZGVzY3JpcHRpb24ge1xuICAgIG1heC13aWR0aDogNTAwcHg7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAudGVhc2VyX190ZXh0LS1jZW50ZXIgLmNtcC10ZWFzZXJfX2NvbnRlbnQgLmNtcC10ZWFzZXJfX2Rlc2NyaXB0aW9uIHtcbiAgICBtYXgtd2lkdGg6IDgyMHB4O1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICB9XG59XG4udGVhc2VyX190ZXh0LS1jZW50ZXIgLmNtcC10ZWFzZXJfX2NvbnRlbnQgLmNtcC10ZWFzZXJfX2FjdGlvbi1jb250YWluZXIge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cbi50ZWFzZXJfX3RleHQtLWNlbnRlci50ZWFzZXI6bm90KC50ZWFzZXJfX2N0YS0tbGluaykgLmNtcC10ZWFzZXJfX2FjdGlvbi1saW5rIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDE3cHgpO1xufVxuLnRlYXNlcl9fdGV4dC0td2hpdGUgLmNtcC10ZWFzZXJfX2Rlc2NyaXB0aW9uIHtcbiAgY29sb3I6ICNmZmY7XG59XG4udGVhc2VyX190ZXh0LS13aGl0ZSAuY21wLXRlYXNlcl9fZGVzY3JpcHRpb24gaDEsXG4udGVhc2VyX190ZXh0LS13aGl0ZSAuY21wLXRlYXNlcl9fZGVzY3JpcHRpb24gaDIsXG4udGVhc2VyX190ZXh0LS13aGl0ZSAuY21wLXRlYXNlcl9fZGVzY3JpcHRpb24gaDMsXG4udGVhc2VyX190ZXh0LS13aGl0ZSAuY21wLXRlYXNlcl9fZGVzY3JpcHRpb24gaDQsXG4udGVhc2VyX190ZXh0LS13aGl0ZSAuY21wLXRlYXNlcl9fZGVzY3JpcHRpb24gaDUsXG4udGVhc2VyX190ZXh0LS13aGl0ZSAuY21wLXRlYXNlcl9fZGVzY3JpcHRpb24gaDYge1xuICBjb2xvcjogI2ZmZjtcbn1cbi50ZWFzZXJfX3RleHQtLXdoaXRlIC5jbXAtdGVhc2VyX190aXRsZSB7XG4gIGNvbG9yOiAjZmZmO1xufVxuLnRlYXNlcl9fdGV4dC0td2hpdGU6bm90KC50ZWFzZXJfX2N0YS0tc2Vjb25kYXJ5KTpub3QoLnRlYXNlci0tbGF5b3V0LXRvcCkgLmNtcC10ZWFzZXIgYTpub3QoLmltZ19fbGluaykge1xuICBjb2xvcjogI2ZmZjtcbn1cbi50ZWFzZXJfX3RleHQtLXdoaXRlOm5vdCgudGVhc2VyX19jdGEtLXNlY29uZGFyeSk6bm90KC50ZWFzZXItLWxheW91dC10b3ApIC5jbXAtdGVhc2VyIGE6bm90KC5pbWdfX2xpbmspOmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgY29udGVudDogXCJcIjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXNrLWltYWdlOiB1cmwoXCIvY29udGVudC9kYW0vdm9sdm8tbWVkaWEvbGlzdC1pY29ucy9jaGV2cm9uLXJpZ2h0LnN2ZyNjaGV2cm9uLXJpZ2h0LWljb24tdzI0LXZpZXdcIik7XG4gIG1hc2stcmVwZWF0OiBuby1yZXBlYXQ7XG4gIG1hc2stc2l6ZTogY292ZXI7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB3aWR0aDogdmFyKC0tdi1pY29uLXNpemUpO1xuICBoZWlnaHQ6IHZhcigtLXYtaWNvbi1zaXplKTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLnRlYXNlcl9fdGV4dC0td2hpdGU6bm90KC50ZWFzZXJfX2N0YS0tc2Vjb25kYXJ5KTpub3QoLnRlYXNlci0tbGF5b3V0LXRvcCkgLmNtcC10ZWFzZXIgYTpub3QoLmltZ19fbGluayk6YWZ0ZXIge1xuICAgIG1hc2staW1hZ2U6IHVybChcIi9jb250ZW50L2RhbS92b2x2by1tZWRpYS9saXN0LWljb25zL2NoZXZyb24tcmlnaHQuc3ZnI2NoZXZyb24tcmlnaHQtaWNvbi13MTYtdmlld1wiKTtcbiAgfVxufVxuLnRlYXNlcl9fdGV4dC0td2hpdGU6bm90KC50ZWFzZXJfX2N0YS0tc2Vjb25kYXJ5KTpub3QoLnRlYXNlci0tbGF5b3V0LXRvcCkgLmNtcC10ZWFzZXIgYTpub3QoLmltZ19fbGluaylbdGFyZ2V0PV9ibGFua106YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBjb250ZW50OiBcIlwiO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hc2staW1hZ2U6IHVybChcIi9jb250ZW50L2RhbS92b2x2by1tZWRpYS9saXN0LWljb25zL2xpbmstZXh0ZXJuYWwuc3ZnI2xpbmstZXh0ZXJuYWwtaWNvbi13MjQtdmlld1wiKTtcbiAgbWFzay1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgbWFzay1zaXplOiBjb3ZlcjtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHdpZHRoOiB2YXIoLS12LWljb24tc2l6ZSk7XG4gIGhlaWdodDogdmFyKC0tdi1pY29uLXNpemUpO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAudGVhc2VyX190ZXh0LS13aGl0ZTpub3QoLnRlYXNlcl9fY3RhLS1zZWNvbmRhcnkpOm5vdCgudGVhc2VyLS1sYXlvdXQtdG9wKSAuY21wLXRlYXNlciBhOm5vdCguaW1nX19saW5rKVt0YXJnZXQ9X2JsYW5rXTphZnRlciB7XG4gICAgbWFzay1pbWFnZTogdXJsKFwiL2NvbnRlbnQvZGFtL3ZvbHZvLW1lZGlhL2xpc3QtaWNvbnMvbGluay1leHRlcm5hbC5zdmcjbGluay1leHRlcm5hbC1pY29uLXcxNi12aWV3XCIpO1xuICB9XG59XG4udGVhc2VyX190ZXh0LS13aGl0ZTpub3QoLnRlYXNlcl9fY3RhLS1zZWNvbmRhcnkpOm5vdCgudGVhc2VyLS1sYXlvdXQtdG9wKSAuY21wLXRlYXNlciAudmlkZW9fX2xpbmsge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG59XG4udGVhc2VyX190ZXh0LS13aGl0ZS50ZWFzZXItLWxheW91dC10b3AgLmNtcC10ZWFzZXJfX2Rlc2NyaXB0aW9uIHtcbiAgY29sb3I6ICM1MzU2NWE7XG59XG4udGVhc2VyX190ZXh0LS13aGl0ZS50ZWFzZXItLWxheW91dC10b3AgLmNtcC10ZWFzZXJfX2Rlc2NyaXB0aW9uIGgxLFxuLnRlYXNlcl9fdGV4dC0td2hpdGUudGVhc2VyLS1sYXlvdXQtdG9wIC5jbXAtdGVhc2VyX19kZXNjcmlwdGlvbiBoMixcbi50ZWFzZXJfX3RleHQtLXdoaXRlLnRlYXNlci0tbGF5b3V0LXRvcCAuY21wLXRlYXNlcl9fZGVzY3JpcHRpb24gaDMsXG4udGVhc2VyX190ZXh0LS13aGl0ZS50ZWFzZXItLWxheW91dC10b3AgLmNtcC10ZWFzZXJfX2Rlc2NyaXB0aW9uIGg0LFxuLnRlYXNlcl9fdGV4dC0td2hpdGUudGVhc2VyLS1sYXlvdXQtdG9wIC5jbXAtdGVhc2VyX19kZXNjcmlwdGlvbiBoNSxcbi50ZWFzZXJfX3RleHQtLXdoaXRlLnRlYXNlci0tbGF5b3V0LXRvcCAuY21wLXRlYXNlcl9fZGVzY3JpcHRpb24gaDYge1xuICBjb2xvcjogIzE0MTQxNDtcbn1cbi50ZWFzZXJfX3RleHQtLXdoaXRlLnRlYXNlci0tbGF5b3V0LXRvcCAuY21wLXRlYXNlcl9fdGl0bGUge1xuICBjb2xvcjogIzE0MTQxNDtcbn1cbi50ZWFzZXIgLmNtcC10ZWFzZXJfX3RpdGxlIHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZmLWJyb2FkKTtcbiAgZm9udC1zaXplOiA0OHB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBsaW5lLWhlaWdodDogMC45NTtcbiAgbGV0dGVyLXNwYWNpbmc6IHZhcigtLWxzLXZvbHZvKTtcbiAgbWFyZ2luLWJvdHRvbTogMjVweDtcbn1cbi50ZWFzZXJfX3RpdGxlLS12b2x2b25vdnVtIC5jbXAtdGVhc2VyX190aXRsZSwgLnRlYXNlci0tbGF5b3V0LXRvcDpub3QoLnRlYXNlcmxpc3QpIC5jbXAtdGVhc2VyX190aXRsZSB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mZi1tZWRpdW0pO1xuICBmb250LXNpemU6IDI3cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIGxldHRlci1zcGFjaW5nOiB2YXIoLS1scy1kZWZhdWx0KTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAudGVhc2VyX190aXRsZS0tdm9sdm9ub3Z1bSAuY21wLXRlYXNlcl9fdGl0bGUsIC50ZWFzZXItLWxheW91dC10b3A6bm90KC50ZWFzZXJsaXN0KSAuY21wLXRlYXNlcl9fdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMzJweDtcbiAgfVxufSIsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsXX0= */