/*
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
```
*/
/*
    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
*/
/* doc
---
title: visually hidden
name: visually hidden
category: mixins
---

Hidden from browsers but accessible to screen readers
## Parameters
---

*/
.collage__container {
  margin-block: 30px;
  margin-inline: 0;
  display: grid;
}
@media (min-width: 768px) {
  .collage__container {
    grid-template-columns: 50% 50%;
  }
}
@media (min-width: 960px) {
  .collage__container {
    grid-template-columns: 35% 35% 30%;
  }
}
.collage__box {
  position: relative;
  margin-block-end: 4px;
  height: 300px;
}
@media (min-width: 768px) {
  .collage__box {
    overflow: hidden;
  }
}
.collage__box .teaser {
  height: 100%;
  max-width: 100%;
}
.collage__box .teaser .cmp-teaser::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.9) 10%, transparent 65%);
}
.collage__box .teaser .cmp-teaser--no-background::after {
  background: none;
}
.collage__box .teaser .s7videoplayer {
  position: absolute;
}
@media (max-width: 767px) {
  .collage__box .teaser {
    max-width: calc(100vw - 15px * 2);
  }
}
.collage__box .cmp-teaser {
  position: relative;
  margin: 0;
  height: 100%;
}
.collage__box .cmp-teaser:hover .cmp-teaser__description p::after {
  transform: var(--button-icon-transform-hover);
}
.collage__box .cmp-teaser__content {
  position: absolute;
  inset-block: auto 0;
  padding-block: 1em 7px;
  padding-inline: 1em;
  color: #fff;
  transform: none;
  z-index: 1;
  pointer-events: none;
}
.collage__box .cmp-teaser__title {
  font-family: var(--ff-medium) !important;
  font-size: 21px !important;
  font-weight: 400 !important;
  line-height: 1.2 !important;
  letter-spacing: var(--ls-default) !important;
  margin-block-end: 10px !important;
  font-family: var(--ff-regular) !important;
  color: #fff;
}
@media (min-width: 768px) {
  .collage__box .cmp-teaser__title {
    font-size: 24px !important;
  }
}
.collage__box .cmp-teaser__title:last-child {
  margin-block-end: 24px;
}
.collage__box .cmp-teaser__description {
  font-family: var(--ff-medium);
  font-size: 12px;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: var(--ls-default);
  color: #fff;
  margin-block-start: 0;
}
.collage__box .cmp-teaser__description p {
  display: inline;
}
.collage__box .cmp-teaser__description p:last-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: var(--v-icon-size);
  height: var(--v-icon-size);
}
@media (min-width: 1200px) {
  .collage__box .cmp-teaser__description p:last-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");
  }
}
.collage__box .cmp-teaser__description p:last-child::after {
  position: relative;
  vertical-align: bottom;
  transform: var(--button-icon-transform);
}
@media (min-width: 768px) {
  .collage__box .cmp-teaser__description p:last-child::after {
    inset-block-start: -0.15em;
    vertical-align: middle;
  }
}
.collage__box .cmp-teaser__description p::after {
  margin-inline-start: 3px;
  transition: transform 0.3s ease-out;
}
.collage__box .cmp-teaser__action-container {
  margin-block-start: 10px !important;
}
.collage__box .cmp-teaser__action-link {
  pointer-events: all;
}
.collage__box .cmp-teaser .cmp-image {
  height: 300px;
}
.collage__box .cmp-teaser .cmp-image__link {
  display: inline-block;
  height: 100%;
}
.collage__box .cmp-teaser .embed__youtube {
  height: 300px;
  margin: 0;
  padding-block-end: 0;
}
.collage__box .cmp-teaser__image {
  height: 100%;
}
.collage__box .cmp-teaser__image .img__asset,
.collage__box .cmp-teaser__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.collage__box .teaser {
  margin: 0;
}
.collage__box .cmp-container {
  height: 100%;
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
}
.collage__box .cmp-container > * {
  flex: 1 0 100%;
}
@media (min-width: 768px) {
  .collage__box--one {
    grid-column: 1/span 1;
    grid-row: 1/span 2;
    margin-inline-end: 4px;
  }
}
@media (min-width: 768px) {
  .collage__box--two {
    grid-column: 2/span 1;
    grid-row: 1/span 2;
  }
}
@media (min-width: 960px) {
  .collage__box--two {
    margin-block: 0;
    margin-inline: 0 4px;
  }
}
.collage__box--three .cmp-teaser, .collage__box--four .cmp-teaser {
  --teaser-height: 148px;
}
.collage__box--three {
  height: 148px;
  grid-column: 1;
  grid-row: 4;
}
.collage__box--three .cmp-teaser .cmp-image,
.collage__box--three .cmp-teaser .embed__youtube {
  height: 148px;
}
.collage__box--three .eventlist__imageImg,
.collage__box--three .eventlistupcoming__imageImg {
  height: 148px;
}
@media (min-width: 768px) {
  .collage__box--three {
    grid-column: 1/span 1;
    grid-row: 5/span 1;
    margin-inline-end: 4px;
  }
}
@media (min-width: 960px) {
  .collage__box--three {
    grid-column: 3/span 1;
    grid-row: 1/span 1;
    margin-inline-end: 0;
  }
}
.collage__box--four {
  height: 148px;
  grid-column: 1;
  grid-row: 5;
}
.collage__box--four .cmp-teaser .cmp-image,
.collage__box--four .cmp-teaser .embed__youtube {
  height: 148px;
}
.collage__box--four .eventlist__imageImg,
.collage__box--four .eventlistupcoming__imageImg {
  height: 148px;
}
@media (min-width: 768px) {
  .collage__box--four {
    grid-column: 1/span 1;
    grid-row: 6/span 1;
    margin-inline-end: 4px;
  }
}
@media (min-width: 960px) {
  .collage__box--four {
    grid-column: 3/span 1;
    grid-row: 2/span 1;
    margin-inline-end: 0;
  }
}
.collage__box--five {
  grid-row: 3;
}
@media (min-width: 768px) {
  .collage__box--five {
    grid-column: 1/span 2;
    grid-row: 3/span 2;
    margin-block: 0 4px;
    margin-inline: 0;
  }
}
@media (min-width: 960px) {
  .collage__box--five {
    margin-block: 0;
    margin-inline: 0 4px;
  }
}
@media (min-width: 768px) {
  .collage__box--six {
    grid-column: 2/span 1;
    grid-row: 5/span 2;
  }
}
@media (min-width: 960px) {
  .collage__box--six {
    grid-column: 3/span 1;
    grid-row: 3/span 2;
  }
}
.collage__box--seven {
  display: none;
}
@supports (-webkit-touch-callout: none) {
  @media (max-width: 959px) {
    .collage .img__asset [mode=fullscreen] .s7smartcropvideoplayer {
      width: 100vw !important;
      height: 100vh !important;
    }
    .collage .img__asset [mode=fullscreen] .s7iconeffect {
      inset-block-start: 50% !important;
      inset-inline-start: 50% !important;
      transform: translate(-50%, -50%) !important;
    }
    .collage .img__asset [mode=fullscreen] .s7videoplayer {
      width: 100vw !important;
      height: 100vh !important;
    }
    .collage .img__asset [mode=fullscreen] .s7controlbar {
      width: 100% !important;
      max-width: 100vw;
    }
  }
  @media (max-width: 959px) and (orientation: landscape) {
    .collage .img__asset__smart-crop-video [mode=fullscreen] video.s7videoelement {
      inset-block-start: 50% !important;
      transform: translateY(-50%) !important;
      max-width: 100vw;
    }
    .collage .img__asset [mode=fullscreen] {
      width: 100vw !important;
      position: fixed !important;
      height: 100vh !important;
      inset-block-start: 0 !important;
      inset-inline-start: 0 !important;
    }
  }
}

.collage__fiveElements .collage__box--one {
  height: 604px;
}
.collage__fiveElements .collage__box--one .cmp-teaser .cmp-image,
.collage__fiveElements .collage__box--one .cmp-teaser .embed__youtube {
  height: 604px;
}
@media (min-width: 768px) {
  .collage__fiveElements .collage__box--one {
    grid-column: 1/span 1;
    grid-row: 1/span 4;
  }
}
@media (min-width: 960px) {
  .collage__fiveElements .collage__box--one {
    margin-block-end: 0;
  }
}
.collage__fiveElements .collage__box--two {
  height: 604px;
}
.collage__fiveElements .collage__box--two .cmp-teaser .cmp-image,
.collage__fiveElements .collage__box--two .cmp-teaser .embed__youtube {
  height: 604px;
}
@media (min-width: 768px) {
  .collage__fiveElements .collage__box--two {
    grid-column: 2/span 1;
    grid-row: 1/span 4;
  }
}
.collage__fiveElements .collage__box--five {
  display: none;
}

@media (min-width: 768px) {
  .collage__sevenElements .collage__container {
    display: grid;
    grid-template-columns: 50% 50%;
  }
}
@media (min-width: 960px) {
  .collage__sevenElements .collage__container {
    grid-template-columns: 24% 24% 18% 17% 17%;
  }
}
.collage__sevenElements .collage__box {
  overflow: hidden;
}
.collage__sevenElements .collage__box--one, .collage__sevenElements .collage__box--two, .collage__sevenElements .collage__box--three, .collage__sevenElements .collage__box--four, .collage__sevenElements .collage__box--five, .collage__sevenElements .collage__box--six, .collage__sevenElements .collage__box--seven {
  height: 210px;
}
.collage__sevenElements .collage__box--one .cmp-teaser .cmp-image,
.collage__sevenElements .collage__box--one .cmp-teaser .embed__youtube, .collage__sevenElements .collage__box--two .cmp-teaser .cmp-image,
.collage__sevenElements .collage__box--two .cmp-teaser .embed__youtube, .collage__sevenElements .collage__box--three .cmp-teaser .cmp-image,
.collage__sevenElements .collage__box--three .cmp-teaser .embed__youtube, .collage__sevenElements .collage__box--four .cmp-teaser .cmp-image,
.collage__sevenElements .collage__box--four .cmp-teaser .embed__youtube, .collage__sevenElements .collage__box--five .cmp-teaser .cmp-image,
.collage__sevenElements .collage__box--five .cmp-teaser .embed__youtube, .collage__sevenElements .collage__box--six .cmp-teaser .cmp-image,
.collage__sevenElements .collage__box--six .cmp-teaser .embed__youtube, .collage__sevenElements .collage__box--seven .cmp-teaser .cmp-image,
.collage__sevenElements .collage__box--seven .cmp-teaser .embed__youtube {
  height: 210px;
}
.collage__sevenElements .collage__box--one .eventlist__imageImg,
.collage__sevenElements .collage__box--one .eventlistupcoming__imageImg, .collage__sevenElements .collage__box--two .eventlist__imageImg,
.collage__sevenElements .collage__box--two .eventlistupcoming__imageImg, .collage__sevenElements .collage__box--three .eventlist__imageImg,
.collage__sevenElements .collage__box--three .eventlistupcoming__imageImg, .collage__sevenElements .collage__box--four .eventlist__imageImg,
.collage__sevenElements .collage__box--four .eventlistupcoming__imageImg, .collage__sevenElements .collage__box--five .eventlist__imageImg,
.collage__sevenElements .collage__box--five .eventlistupcoming__imageImg, .collage__sevenElements .collage__box--six .eventlist__imageImg,
.collage__sevenElements .collage__box--six .eventlistupcoming__imageImg, .collage__sevenElements .collage__box--seven .eventlist__imageImg,
.collage__sevenElements .collage__box--seven .eventlistupcoming__imageImg {
  height: 210px;
}
@media (min-width: 768px) {
  .collage__sevenElements .collage__box--two, .collage__sevenElements .collage__box--three, .collage__sevenElements .collage__box--four, .collage__sevenElements .collage__box--five, .collage__sevenElements .collage__box--six, .collage__sevenElements .collage__box--seven {
    height: 240px;
  }
  .collage__sevenElements .collage__box--two .cmp-teaser .cmp-image,
  .collage__sevenElements .collage__box--two .cmp-teaser .embed__youtube, .collage__sevenElements .collage__box--three .cmp-teaser .cmp-image,
  .collage__sevenElements .collage__box--three .cmp-teaser .embed__youtube, .collage__sevenElements .collage__box--four .cmp-teaser .cmp-image,
  .collage__sevenElements .collage__box--four .cmp-teaser .embed__youtube, .collage__sevenElements .collage__box--five .cmp-teaser .cmp-image,
  .collage__sevenElements .collage__box--five .cmp-teaser .embed__youtube, .collage__sevenElements .collage__box--six .cmp-teaser .cmp-image,
  .collage__sevenElements .collage__box--six .cmp-teaser .embed__youtube, .collage__sevenElements .collage__box--seven .cmp-teaser .cmp-image,
  .collage__sevenElements .collage__box--seven .cmp-teaser .embed__youtube {
    height: 240px;
  }
  .collage__sevenElements .collage__box--two .eventlist__imageImg,
  .collage__sevenElements .collage__box--two .eventlistupcoming__imageImg, .collage__sevenElements .collage__box--three .eventlist__imageImg,
  .collage__sevenElements .collage__box--three .eventlistupcoming__imageImg, .collage__sevenElements .collage__box--four .eventlist__imageImg,
  .collage__sevenElements .collage__box--four .eventlistupcoming__imageImg, .collage__sevenElements .collage__box--five .eventlist__imageImg,
  .collage__sevenElements .collage__box--five .eventlistupcoming__imageImg, .collage__sevenElements .collage__box--six .eventlist__imageImg,
  .collage__sevenElements .collage__box--six .eventlistupcoming__imageImg, .collage__sevenElements .collage__box--seven .eventlist__imageImg,
  .collage__sevenElements .collage__box--seven .eventlistupcoming__imageImg {
    height: 240px;
  }
}
@media (min-width: 768px) {
  .collage__sevenElements .collage__box--one {
    height: 360px;
  }
  .collage__sevenElements .collage__box--one .cmp-teaser .cmp-image,
  .collage__sevenElements .collage__box--one .cmp-teaser .embed__youtube {
    height: 360px;
  }
  .collage__sevenElements .collage__box--one .eventlist__imageImg,
  .collage__sevenElements .collage__box--one .eventlistupcoming__imageImg {
    height: 360px;
  }
}
@media (min-width: 960px) {
  .collage__sevenElements .collage__box--one, .collage__sevenElements .collage__box--two, .collage__sevenElements .collage__box--seven {
    height: 400px;
  }
  .collage__sevenElements .collage__box--one .cmp-teaser .cmp-image,
  .collage__sevenElements .collage__box--one .cmp-teaser .embed__youtube, .collage__sevenElements .collage__box--two .cmp-teaser .cmp-image,
  .collage__sevenElements .collage__box--two .cmp-teaser .embed__youtube, .collage__sevenElements .collage__box--seven .cmp-teaser .cmp-image,
  .collage__sevenElements .collage__box--seven .cmp-teaser .embed__youtube {
    height: 400px;
  }
  .collage__sevenElements .collage__box--one .eventlist__imageImg,
  .collage__sevenElements .collage__box--one .eventlistupcoming__imageImg, .collage__sevenElements .collage__box--two .eventlist__imageImg,
  .collage__sevenElements .collage__box--two .eventlistupcoming__imageImg, .collage__sevenElements .collage__box--seven .eventlist__imageImg,
  .collage__sevenElements .collage__box--seven .eventlistupcoming__imageImg {
    height: 400px;
  }
}
@media (min-width: 960px) {
  .collage__sevenElements .collage__box--three, .collage__sevenElements .collage__box--four, .collage__sevenElements .collage__box--five, .collage__sevenElements .collage__box--six {
    height: 197.5px;
  }
  .collage__sevenElements .collage__box--three .cmp-teaser .cmp-image,
  .collage__sevenElements .collage__box--three .cmp-teaser .embed__youtube, .collage__sevenElements .collage__box--four .cmp-teaser .cmp-image,
  .collage__sevenElements .collage__box--four .cmp-teaser .embed__youtube, .collage__sevenElements .collage__box--five .cmp-teaser .cmp-image,
  .collage__sevenElements .collage__box--five .cmp-teaser .embed__youtube, .collage__sevenElements .collage__box--six .cmp-teaser .cmp-image,
  .collage__sevenElements .collage__box--six .cmp-teaser .embed__youtube {
    height: 197.5px;
  }
  .collage__sevenElements .collage__box--three .eventlist__imageImg,
  .collage__sevenElements .collage__box--three .eventlistupcoming__imageImg, .collage__sevenElements .collage__box--four .eventlist__imageImg,
  .collage__sevenElements .collage__box--four .eventlistupcoming__imageImg, .collage__sevenElements .collage__box--five .eventlist__imageImg,
  .collage__sevenElements .collage__box--five .eventlistupcoming__imageImg, .collage__sevenElements .collage__box--six .eventlist__imageImg,
  .collage__sevenElements .collage__box--six .eventlistupcoming__imageImg {
    height: 197.5px;
  }
}
@media (min-width: 768px) {
  .collage__sevenElements .collage__box--one {
    grid-column: 1/span 2;
    grid-row: 1/span 1;
    margin: 0;
  }
}
@media (min-width: 960px) {
  .collage__sevenElements .collage__box--one {
    grid-column: 1/span 3;
    grid-row: 1/span 2;
    margin-block: 0;
    margin-inline: 0 5px;
  }
}
@media (min-width: 768px) {
  .collage__sevenElements .collage__box--two {
    grid-column: 1/span 1;
    grid-row: 2/span 1;
    margin-block: 5px 0;
    margin-inline: 0 5px;
  }
}
@media (min-width: 960px) {
  .collage__sevenElements .collage__box--two {
    grid-column: 4/span 2;
    grid-row: 1/span 2;
    margin: 0;
  }
}
@media (min-width: 768px) {
  .collage__sevenElements .collage__box--three {
    grid-column: 1/span 1;
    grid-row: 3/span 1;
    margin-block: 5px 0;
    margin-inline: 0 5px;
  }
}
@media (min-width: 960px) {
  .collage__sevenElements .collage__box--three {
    margin-inline-end: 5px;
  }
}
@media (min-width: 768px) {
  .collage__sevenElements .collage__box--four {
    grid-column: 2/span 1;
    grid-row: 3/span 1;
    margin-block: 5px 0;
    margin-inline: 0;
  }
}
@media (min-width: 960px) {
  .collage__sevenElements .collage__box--four {
    margin-inline-end: 5px;
  }
}
@media (min-width: 768px) {
  .collage__sevenElements .collage__box--five {
    grid-column: 1/span 1;
    grid-row: 4/span 1;
    margin-block: 5px 0;
    margin-inline: 0 5px;
  }
}
@media (min-width: 768px) {
  .collage__sevenElements .collage__box--six {
    grid-column: 2/span 1;
    grid-row: 4/span 1;
    margin-block: 5px 0;
    margin-inline: 0;
  }
}
@media (min-width: 960px) {
  .collage__sevenElements .collage__box--six {
    margin-block: 5px 0;
    margin-inline: 0 5px;
  }
}
.collage__sevenElements .collage__box--seven {
  display: block;
}
@media (min-width: 768px) {
  .collage__sevenElements .collage__box--seven {
    grid-column: 2/span 1;
    grid-row: 2/span 1;
    margin-block: 5px 0;
    margin-inline: 0;
  }
}
@media (min-width: 960px) {
  .collage__sevenElements .collage__box--seven {
    grid-column: 3/span 3;
    grid-row: 3/span 2;
  }
}
/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZpbGU6Ly8vYnVpbGRfcm9vdC9idWlsZC9nbG9iYWwtcDExMDQ5OC11azQzMDExL3ZvbHZvLWNsaWVudGxpYnMtYXBwcy9zcmMvbWFpbi9mcm9udGVuZC92b2x2by9jb21tb24vc3R5bGVzL3ZhcmlhYmxlcy9faW1wb3J0X3ZhcmlhYmxlcy5zY3NzIiwiZmlsZTovLy9idWlsZF9yb290L2J1aWxkL2dsb2JhbC1wMTEwNDk4LXVrNDMwMTEvdm9sdm8tY2xpZW50bGlicy1hcHBzL3NyYy9tYWluL2Zyb250ZW5kL3ZvbHZvL2NvbW1vbi9zdHlsZXMvdmFyaWFibGVzL190eXBvZ3JhcGhpZXMuc2NzcyIsImZpbGU6Ly8vYnVpbGRfcm9vdC9idWlsZC9nbG9iYWwtcDExMDQ5OC11azQzMDExL3ZvbHZvLWNsaWVudGxpYnMtYXBwcy9zcmMvbWFpbi9mcm9udGVuZC92b2x2by9jb21tb24vc3R5bGVzL3ZhcmlhYmxlcy9fel9pbmRleC5zY3NzIiwiZmlsZTovLy9idWlsZF9yb290L2J1aWxkL2dsb2JhbC1wMTEwNDk4LXVrNDMwMTEvdm9sdm8tY2xpZW50bGlicy1hcHBzL3NyYy9tYWluL2Zyb250ZW5kL3ZvbHZvL2NvbW1vbi9zdHlsZXMvYWJzdHJhY3QvZnVuY3Rpb25zL19ubi1weC10by1lbS5zY3NzIiwiZmlsZTovLy9idWlsZF9yb290L2J1aWxkL2dsb2JhbC1wMTEwNDk4LXVrNDMwMTEvdm9sdm8tY2xpZW50bGlicy1hcHBzL3NyYy9tYWluL2Zyb250ZW5kL3ZvbHZvL2NvbW1vbi9zdHlsZXMvYWJzdHJhY3QvZnVuY3Rpb25zL19ubi1weC10by1yZW0uc2NzcyIsImZpbGU6Ly8vYnVpbGRfcm9vdC9idWlsZC9nbG9iYWwtcDExMDQ5OC11azQzMDExL3ZvbHZvLWNsaWVudGxpYnMtYXBwcy9zcmMvbWFpbi9mcm9udGVuZC92b2x2by9jb21tb24vc3R5bGVzL2Fic3RyYWN0L2Z1bmN0aW9ucy9fbm4tcHgtdG8tdW5pdC5zY3NzIiwiZmlsZTovLy9idWlsZF9yb290L2J1aWxkL2dsb2JhbC1wMTEwNDk4LXVrNDMwMTEvdm9sdm8tY2xpZW50bGlicy1hcHBzL3NyYy9tYWluL2Zyb250ZW5kL3ZvbHZvL2NvbW1vbi9zdHlsZXMvYWJzdHJhY3QvZnVuY3Rpb25zL19ubi1weC10by11bml0bGVzcy5zY3NzIiwiZmlsZTovLy9idWlsZF9yb290L2J1aWxkL2dsb2JhbC1wMTEwNDk4LXVrNDMwMTEvdm9sdm8tY2xpZW50bGlicy1hcHBzL3NyYy9tYWluL2Zyb250ZW5kL3ZvbHZvL2NvbW1vbi9zdHlsZXMvYWJzdHJhY3QvZnVuY3Rpb25zL19ubi1zdHJpcC11bml0LnNjc3MiLCJmaWxlOi8vL2J1aWxkX3Jvb3QvYnVpbGQvZ2xvYmFsLXAxMTA0OTgtdWs0MzAxMS92b2x2by1jbGllbnRsaWJzLWFwcHMvc3JjL21haW4vZnJvbnRlbmQvdm9sdm8vY29tbW9uL3N0eWxlcy9hYnN0cmFjdC9mdW5jdGlvbnMvX25uLXotaW5kZXguc2NzcyIsImZpbGU6Ly8vYnVpbGRfcm9vdC9idWlsZC9nbG9iYWwtcDExMDQ5OC11azQzMDExL3ZvbHZvLWNsaWVudGxpYnMtYXBwcy9zcmMvbWFpbi9mcm9udGVuZC92b2x2by9jb21tb24vc3R5bGVzL2Fic3RyYWN0L2Z1bmN0aW9ucy9fc3RyaXAtdW5pdC5zY3NzIiwiZmlsZTovLy9idWlsZF9yb290L2J1aWxkL2dsb2JhbC1wMTEwNDk4LXVrNDMwMTEvdm9sdm8tY2xpZW50bGlicy1hcHBzL3NyYy9tYWluL2Zyb250ZW5kL3ZvbHZvL2NvbW1vbi9zdHlsZXMvYWJzdHJhY3QvZnVuY3Rpb25zL19weC10by1heGlzLXVuaXQuc2NzcyIsImZpbGU6Ly8vYnVpbGRfcm9vdC9idWlsZC9nbG9iYWwtcDExMDQ5OC11azQzMDExL3ZvbHZvLWNsaWVudGxpYnMtYXBwcy9zcmMvbWFpbi9mcm9udGVuZC92b2x2by9jb21tb24vc3R5bGVzL2Fic3RyYWN0L2Z1bmN0aW9ucy9fc3dhcC1sZWZ0LXJpZ2h0LXZhbHVlcy5zY3NzIiwiZmlsZTovLy9idWlsZF9yb290L2J1aWxkL2dsb2JhbC1wMTEwNDk4LXVrNDMwMTEvdm9sdm8tY2xpZW50bGlicy1hcHBzL3NyYy9tYWluL2Zyb250ZW5kL3ZvbHZvL2NvbW1vbi9zdHlsZXMvYWJzdHJhY3QvZnVuY3Rpb25zL19zd2FwLWxlZnQtcmlnaHQtbmFtZXMuc2NzcyIsImZpbGU6Ly8vYnVpbGRfcm9vdC9idWlsZC9nbG9iYWwtcDExMDQ5OC11azQzMDExL3ZvbHZvLWNsaWVudGxpYnMtYXBwcy9zcmMvbWFpbi9mcm9udGVuZC92b2x2by9jb21tb24vc3R5bGVzL2Fic3RyYWN0L2Z1bmN0aW9ucy9fc3BhY2luZy5zY3NzIiwiZmlsZTovLy9idWlsZF9yb290L2J1aWxkL2dsb2JhbC1wMTEwNDk4LXVrNDMwMTEvdm9sdm8tY2xpZW50bGlicy1hcHBzL3NyYy9tYWluL2Zyb250ZW5kL3ZvbHZvL2NvbW1vbi9zdHlsZXMvYWJzdHJhY3QvbWl4aW5zL19jbGVhcmZpeC5zY3NzIiwiZmlsZTovLy9idWlsZF9yb290L2J1aWxkL2dsb2JhbC1wMTEwNDk4LXVrNDMwMTEvdm9sdm8tY2xpZW50bGlicy1hcHBzL3NyYy9tYWluL2Zyb250ZW5kL3ZvbHZvL2NvbW1vbi9zdHlsZXMvYWJzdHJhY3QvbWl4aW5zL19mb250LWljb24uc2NzcyIsImZpbGU6Ly8vYnVpbGRfcm9vdC9idWlsZC9nbG9iYWwtcDExMDQ5OC11azQzMDExL3ZvbHZvLWNsaWVudGxpYnMtYXBwcy9zcmMvbWFpbi9mcm9udGVuZC92b2x2by9jb21tb24vc3R5bGVzL2Fic3RyYWN0L21peGlucy9fZm9jdXMtY29sb3Iuc2NzcyIsImZpbGU6Ly8vYnVpbGRfcm9vdC9idWlsZC9nbG9iYWwtcDExMDQ5OC11azQzMDExL3ZvbHZvLWNsaWVudGxpYnMtYXBwcy9zcmMvbWFpbi9mcm9udGVuZC92b2x2by9jb21tb24vc3R5bGVzL2Fic3RyYWN0L21peGlucy9faWdub3JlLWNvbnRhaW5lci5zY3NzIiwiZmlsZTovLy9idWlsZF9yb290L2J1aWxkL2dsb2JhbC1wMTEwNDk4LXVrNDMwMTEvdm9sdm8tY2xpZW50bGlicy1hcHBzL3NyYy9tYWluL2Zyb250ZW5kL3ZvbHZvL2NvbW1vbi9zdHlsZXMvYWJzdHJhY3QvbWl4aW5zL19nZW5lcmF0ZS1hZW0tZ3JpZC5zY3NzIiwiZmlsZTovLy9idWlsZF9yb290L2J1aWxkL2dsb2JhbC1wMTEwNDk4LXVrNDMwMTEvdm9sdm8tY2xpZW50bGlicy1hcHBzL3NyYy9tYWluL2Zyb250ZW5kL3ZvbHZvL2NvbW1vbi9zdHlsZXMvYWJzdHJhY3QvbWl4aW5zL19idXR0b24uc2NzcyIsImZpbGU6Ly8vYnVpbGRfcm9vdC9idWlsZC9nbG9iYWwtcDExMDQ5OC11azQzMDExL3ZvbHZvLWNsaWVudGxpYnMtYXBwcy9zcmMvbWFpbi9mcm9udGVuZC92b2x2by9jb21tb24vc3R5bGVzL2Fic3RyYWN0L21peGlucy9fbGluZS1jbGFtcC5zY3NzIiwiZmlsZTovLy9idWlsZF9yb290L2J1aWxkL2dsb2JhbC1wMTEwNDk4LXVrNDMwMTEvdm9sdm8tY2xpZW50bGlicy1hcHBzL3NyYy9tYWluL2Zyb250ZW5kL3ZvbHZvL2NvbW1vbi9zdHlsZXMvYWJzdHJhY3QvbWl4aW5zL190eXBvZ3JhcGh5LnNjc3MiLCJmaWxlOi8vL2J1aWxkX3Jvb3QvYnVpbGQvZ2xvYmFsLXAxMTA0OTgtdWs0MzAxMS92b2x2by1jbGllbnRsaWJzLWFwcHMvc3JjL21haW4vZnJvbnRlbmQvdm9sdm8vY29tbW9uL3N0eWxlcy9hYnN0cmFjdC9taXhpbnMvX2hpZGRlbi5zY3NzIiwiZmlsZTovLy9idWlsZF9yb290L2J1aWxkL2dsb2JhbC1wMTEwNDk4LXVrNDMwMTEvdm9sdm8tY2xpZW50bGlicy1hcHBzL3NyYy9tYWluL2Zyb250ZW5kL3ZvbHZvL2NvbW1vbi9zdHlsZXMvYWJzdHJhY3QvbWl4aW5zL19vdmVybGF5LnNjc3MiLCJmaWxlOi8vL2J1aWxkX3Jvb3QvYnVpbGQvZ2xvYmFsLXAxMTA0OTgtdWs0MzAxMS92b2x2by1jbGllbnRsaWJzLWFwcHMvc3JjL21haW4vZnJvbnRlbmQvdm9sdm8vY29tbW9uL3N0eWxlcy9hYnN0cmFjdC9taXhpbnMvX3RvcC1ib3R0b20tYm9yZGVyLnNjc3MiLCJmaWxlOi8vL2J1aWxkX3Jvb3QvYnVpbGQvZ2xvYmFsLXAxMTA0OTgtdWs0MzAxMS92b2x2by1jbGllbnRsaWJzLWFwcHMvc3JjL21haW4vZnJvbnRlbmQvdm9sdm8vY29tbW9uL3N0eWxlcy9hYnN0cmFjdC9taXhpbnMvX3Jlc2V0LWZ1bGx3aWR0aC1tYXJnaW5zLnNjc3MiLCJmaWxlOi8vL2J1aWxkX3Jvb3QvYnVpbGQvZ2xvYmFsLXAxMTA0OTgtdWs0MzAxMS92b2x2by1jbGllbnRsaWJzLWFwcHMvc3JjL21haW4vZnJvbnRlbmQvdm9sdm8vY29tbW9uL3N0eWxlcy9hYnN0cmFjdC9taXhpbnMvX3Zpc3VhbGx5LWhpZGRlbi5zY3NzIiwiZmlsZTovLy9idWlsZF9yb290L2J1aWxkL2dsb2JhbC1wMTEwNDk4LXVrNDMwMTEvdm9sdm8tY2xpZW50bGlicy1hcHBzL3NyYy9tYWluL2Zyb250ZW5kL3ZvbHZvL3NoYXJlZC9jb21wb25lbnRzL2NvbnRlbnQvY29sbGFnZS9jb2xsYWdlLmNsaWVudGxpYnMuc2NzcyIsImZpbGU6Ly8vYnVpbGRfcm9vdC9idWlsZC9nbG9iYWwtcDExMDQ5OC11azQzMDExL3ZvbHZvLWNsaWVudGxpYnMtYXBwcy9zcmMvbWFpbi9mcm9udGVuZC92b2x2by9jb21tb24vc3R5bGVzL3ZhcmlhYmxlcy9fZ3JpZC5zY3NzIiwiLi4vdGFyZ2V0L3ZhdWx0LXdvcmsvamNyX3Jvb3QvYXBwcy92b2x2by9jbGllbnRsaWJzL3NoYXJlZC9jb21wb25lbnRzL2NvbnRlbnQvY29sbGFnZS9jb2xsYWdlLmJ1bmRsZS5jc3MiLCJmaWxlOi8vL2J1aWxkX3Jvb3QvYnVpbGQvZ2xvYmFsLXAxMTA0OTgtdWs0MzAxMS92b2x2by1jbGllbnRsaWJzLWFwcHMvYnVpbGQvbm9kZV9tb2R1bGVzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9fYnJlYWtwb2ludC5zY3NzIiwiZmlsZTovLy9idWlsZF9yb290L2J1aWxkL2dsb2JhbC1wMTEwNDk4LXVrNDMwMTEvdm9sdm8tY2xpZW50bGlicy1hcHBzL3NyYy9tYWluL2Zyb250ZW5kL3ZvbHZvL2NvbW1vbi9zdHlsZXMvdmFyaWFibGVzL19jb2xvcnMuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7Ozs7Q0FBQTtBQ0ZBOzs7Q0FBQTtBQ0VBOztFQUFBO0FDRkE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQUFBO0FDQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQUFBO0FDQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBQUE7QUNBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FBQTtBQ0FBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBQUE7QUNBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBQUE7QUNBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FBQTtBQ1dBOzs7Ozs7Ozs7O0NBQUE7QUFtQkE7OztDQUFBO0FBUUE7OztDQUFBO0FDdENBLHNCQUFBO0FBRUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBQUE7QUNGQSxzQkFBQTtBQUVBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQUFBO0FDRkE7c0VBQUE7QUFJQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQUFBO0FDSkE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FBQTtBQ0NBLHdDQUFBO0FDREE7Ozs7Ozs7Ozs7OztDQUFBO0FDQUE7Ozs7Ozs7Ozs7Ozs7O0NBQUE7QUNFQSxrRkFBQTtBQWFBLHdGQUFBO0FBV0Esb0dBQUE7QUFVQSx3REFBQTtBQ3BDQTs7Ozs7Ozs7Ozs7Ozs7OztDQUFBO0FDQUE7Ozs7Ozs7Ozs7Ozs7OztDQUFBO0FDQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBQUE7QUNBQTs7Ozs7Ozs7Ozs7Q0FBQTtBQ0FBOzs7Ozs7Ozs7Ozs7Q0FBQTtBQ0FBOzs7Ozs7Ozs7Ozs7O0VBQUE7QUNBQTs7Ozs7Ozs7Q0FBQTtBQ0FBOzs7Ozs7Ozs7OztDQUFBO0FDcUJJO0VBQ0ksa0JDZlc7RURnQlgsZ0JBQUE7RUFDQSxhQUFBO0FFMGhCUjtBQ2xmSTtFSDNDQTtJQU1RLDhCQUFBO0VFMmhCVjtBQUNGO0FDdmZJO0VIM0NBO0lBVVEsa0NBQUE7RUU0aEJWO0FBQ0Y7QUZ6aEJJO0VBQ0ksa0JBQUE7RUFDQSxxQkFqQ0k7RUFrQ0osYUFoQ0k7QUUyakJaO0FDamdCSTtFSDdCQTtJQU1RLGdCQUFBO0VFNGhCVjtBQUNGO0FGMWhCUTtFQUNJLFlBQUE7RUFDQSxlQUFBO0FFNGhCWjtBRnpoQmdCO0VBQ0ksV0FBQTtFQUNBLGtCQUFBO0VBQ0EsUUFBQTtFQUNBLG9CQUFBO0VBQ0EsNEVBQUE7QUUyaEJwQjtBRnZoQm9CO0VBQ0ksZ0JBQUE7QUV5aEJ4QjtBRnBoQlk7RUFDSSxrQkFBQTtBRXNoQmhCO0FDdmhCSTtFSHBCSTtJQXlCUSxpQ0FBQTtFRXNoQmQ7QUFDRjtBRm5oQlE7RUFDSSxrQkFBQTtFQUNBLFNBQUE7RUFDQSxZQUFBO0FFcWhCWjtBRmpoQm9CO0VBQ0ksNkNBQUE7QUVtaEJ4QjtBRjlnQlk7RUFDSSxrQkFBQTtFQUNBLG1CQUFBO0VBQ0Esc0JBQUE7RUFDQSxtQkFBQTtFQUNBLFdJOURHO0VKK0RILGVBQUE7RUFDQSxVQUFBO0VBQ0Esb0JBQUE7QUVnaEJoQjtBRjdnQlk7RU5yRUksd0NBQUE7RUFBQSwwQkFBQTtFQUFBLDJCQUFBO0VBQUEsMkJBQUE7RUFBQSw0Q0FBQTtFTXVFQSxpQ0FBQTtFQUNBLHlDQUFBO0VBQ0EsV0l4RUc7QUYybEJuQjtBUnpsQlk7RU1rRUE7SU5oRVEsMEJBQUE7RVEybEJsQjtBQUNGO0FGdGhCZ0I7RUFDSSxzQkFBQTtBRXdoQnBCO0FGcGhCWTtFTmhGSSw2QkFBQTtFQUFBLGVBQUE7RUFBQSxnQkFBQTtFQUFBLGdCQUFBO0VBQUEsaUNBQUE7RU1rRkEsV0lqRkc7RUprRkgscUJBQUE7QUUwaEJoQjtBRnhoQmdCO0VBQ0ksZUFBQTtBRTBoQnBCO0FkMWlCSTtFQUNJLHNCZ0J0RVc7RWhCdUVYLFdBQUE7RUFDQSxxQkFBQTtFQUNBLDRHQUFBO1VBQUEsb0dBQUE7RUFDQSw4QkFBQTtVQUFBLHNCQUFBO0VBQ0Esd0JBQUE7VUFBQSxnQkFBQTtFQUNBLG9CQUFBO0VBVUkseUJBQUE7RUFDQSwwQkFBQTtBY21pQlo7QWQ1aUJRO0VBVEo7SUFVUSw0R0FBQTtZQUFBLG9HQUFBO0VjK2lCVjtBQUNGO0FGaGlCd0I7RUFDSSxrQkFBQTtFQUNBLHNCQUFBO0VBQ0EsdUNBQUE7QUVraUI1QjtBQ2ptQkk7RUg0RG9CO0lBTVEsMEJBQUE7SUFDQSxzQkFBQTtFRW1pQjlCO0FBQ0Y7QUYvaEJvQjtFQUNJLHdCQUFBO0VBQ0EsbUNBQUE7QUVpaUJ4QjtBRjVoQlk7RUFDSSxtQ0FBQTtBRThoQmhCO0FGM2hCWTtFQUNJLG1CQUFBO0FFNmhCaEI7QUYxaEJZO0VBQ0ksYUFsSko7QUU4cUJaO0FGMWhCZ0I7RUFDSSxxQkFBQTtFQUNBLFlBQUE7QUU0aEJwQjtBRnhoQlk7RUFDSSxhQTNKSjtFQTRKSSxTQUFBO0VBQ0Esb0JBQUE7QUUwaEJoQjtBRnZoQlk7RUFDSSxZQUFBO0FFeWhCaEI7QUZ2aEJnQjs7RUFFSSxXQUFBO0VBQ0EsWUFBQTtFQUNBLGlCQUFBO0FFeWhCcEI7QUZwaEJRO0VBQ0ksU0FBQTtBRXNoQlo7QUZuaEJRO0VBQ0ksWUFBQTtFQUNBLFNBQUE7RUFDQSxVQUFBO0VBQ0EsYUFBQTtFQUNBLG1CQUFBO0VBQ0EsZUFBQTtBRXFoQlo7QUZuaEJZO0VBQ0ksY0FBQTtBRXFoQmhCO0FDcHBCSTtFSG1JSTtJQUVRLHFCQUFBO0lBQ0Esa0JBQUE7SUFDQSxzQkFuTUo7RUVzdEJWO0FBQ0Y7QUMzcEJJO0VIMklJO0lBRVEscUJBQUE7SUFDQSxrQkFBQTtFRWtoQmQ7QUFDRjtBQ2pxQkk7RUgySUk7SUFPUSxlQUFBO0lBQ0Esb0JBQUE7RUVtaEJkO0FBQ0Y7QUY5Z0JZO0VBQ0ksc0JBQUE7QUVnaEJoQjtBRjVnQlE7RUFDSSxhQXZOVTtFQXdOVixjQUFBO0VBQ0EsV0FBQTtBRThnQlo7QUYzZ0JnQjs7RUFFSSxhQTlORTtBRTJ1QnRCO0FGdGdCb0I7O0VBQ0ksYUF0T0Y7QUUrdUJ0QjtBQ3ZyQkk7RUg4Skk7SUFzQlEscUJBQUE7SUFDQSxrQkFBQTtJQUNBLHNCQWxQSjtFRXl2QlY7QUFDRjtBQzlyQkk7RUg4Skk7SUE0QlEscUJBQUE7SUFDQSxrQkFBQTtJQUNBLG9CQUFBO0VFd2dCZDtBQUNGO0FGcmdCUTtFQUNJLGFBelBVO0VBMFBWLGNBQUE7RUFDQSxXQUFBO0FFdWdCWjtBRnBnQmdCOztFQUVJLGFBaFFFO0FFc3dCdEI7QUYvZm9COztFQUNJLGFBeFFGO0FFMHdCdEI7QUNsdEJJO0VIZ01JO0lBc0JRLHFCQUFBO0lBQ0Esa0JBQUE7SUFDQSxzQkFwUko7RUVveEJWO0FBQ0Y7QUN6dEJJO0VIZ01JO0lBNEJRLHFCQUFBO0lBQ0Esa0JBQUE7SUFDQSxvQkFBQTtFRWlnQmQ7QUFDRjtBRjlmUTtFQUNJLFdBQUE7QUVnZ0JaO0FDbnVCSTtFSGtPSTtJQUlRLHFCQUFBO0lBQ0Esa0JBQUE7SUFDQSxtQkFBQTtJQUNBLGdCQUFBO0VFaWdCZDtBQUNGO0FDM3VCSTtFSGtPSTtJQVdRLGVBQUE7SUFDQSxvQkFBQTtFRWtnQmQ7QUFDRjtBQ2p2Qkk7RUhrUEk7SUFFUSxxQkFBQTtJQUNBLGtCQUFBO0VFaWdCZDtBQUNGO0FDdnZCSTtFSGtQSTtJQU9RLHFCQUFBO0lBQ0Esa0JBQUE7RUVrZ0JkO0FBQ0Y7QUYvZlE7RUFDSSxhQUFBO0FFaWdCWjtBRjVmSTtFR3BRQTtJSHlRWTtNQUNJLHVCQUFBO01BQ0Esd0JBQUE7SUUyZmhCO0lGeGZZO01BQ0ksaUNBQUE7TUFDQSxrQ0FBQTtNQUNBLDJDQUFBO0lFMGZoQjtJRnZmWTtNQUNJLHVCQUFBO01BQ0Esd0JBQUE7SUV5ZmhCO0lGdGZZO01BQ0ksc0JBQUE7TUFDQSxnQkFBQTtJRXdmaEI7RUFDRjtFRnJmVTtJQUVRO01BQ0ksaUNBQUE7TUFDQSxzQ0FBQTtNQUNBLGdCQUFBO0lFc2ZwQjtJRm5mZ0I7TUFDSSx1QkFBQTtNQUNBLDBCQUFBO01BQ0Esd0JBQUE7TUFDQSwrQkFBQTtNQUNBLGdDQUFBO0lFcWZwQjtFQUNGO0FBQ0Y7O0FGNWVRO0VBQ0ksYUEvV007QUU4MUJsQjtBRjVlZ0I7O0VBRUksYUFwWEY7QUVrMkJsQjtBQzN5Qkk7RUh1VEk7SUFXUSxxQkFBQTtJQUNBLGtCQUFBO0VFNmVkO0FBQ0Y7QUNqekJJO0VIdVRJO0lBZ0JRLG1CQUFBO0VFOGVkO0FBQ0Y7QUYzZVE7RUFDSSxhQW5ZTTtBRWczQmxCO0FGMWVnQjs7RUFFSSxhQXhZRjtBRW8zQmxCO0FDN3pCSTtFSDJVSTtJQVdRLHFCQUFBO0lBQ0Esa0JBQUE7RUUyZWQ7QUFDRjtBRnhlUTtFQUNJLGFBQUE7QUUwZVo7O0FDdDBCSTtFSGtXQTtJQUVRLGFBQUE7SUFDQSw4QkFBQTtFRXVlVjtBQUNGO0FDNzBCSTtFSGtXQTtJQU9RLDBDQUFBO0VFd2VWO0FBQ0Y7QUZyZUk7RUFDSSxnQkFBQTtBRXVlUjtBRnJlUTtFQU9JLGFBM2FXO0FFNDRCdkI7QUY5ZGdCOzs7Ozs7OztFQUVJLGFBaGJHO0FFczVCdkI7QUYvZG9COzs7Ozs7OztFQUNJLGFBeGJEO0FFZzZCdkI7QUM1MkJJO0VIMFlJO0lBT1EsYUF0Y087RUVxNkJyQjtFRjVka0I7Ozs7Ozs7SUFFSSxhQTNjRDtFRTg2QnJCO0VGNWRzQjs7Ozs7OztJQUNJLGFBbmRMO0VFdTdCckI7QUFDRjtBQ240Qkk7RUhxYUk7SUFFUSxhQUFBO0VFZ2VkO0VGN2RrQjs7SUFFSSxhQUFBO0VFK2R0QjtFRnhkc0I7O0lBQ0ksYUFBQTtFRTJkMUI7QUFDRjtBQ2g1Qkk7RUgyYkk7SUFJUSxhQXJmQztFRTA4QmY7RUZsZGtCOzs7O0lBRUksYUExZlA7RUVnOUJmO0VGL2NzQjs7OztJQUNJLGFBbGdCWDtFRXM5QmY7QUFDRjtBQ2o2Qkk7RUhtZEk7SUFLUSxlQUFBO0VFNmNkO0VGMWNrQjs7Ozs7SUFFSSxlQUFBO0VFK2N0QjtFRnhjc0I7Ozs7O0lBQ0ksZUFBQTtFRThjMUI7QUFDRjtBQ3A3Qkk7RUg0ZUk7SUFFUSxxQkFBQTtJQUNBLGtCQUFBO0lBQ0EsU0FBQTtFRTBjZDtBQUNGO0FDMzdCSTtFSDRlSTtJQVFRLHFCQUFBO0lBQ0Esa0JBQUE7SUFDQSxlQUFBO0lBQ0Esb0JBQUE7RUUyY2Q7QUFDRjtBQ244Qkk7RUgyZkk7SUFFUSxxQkFBQTtJQUNBLGtCQUFBO0lBQ0EsbUJBQUE7SUFDQSxvQkFBQTtFRTBjZDtBQUNGO0FDMzhCSTtFSDJmSTtJQVNRLHFCQUFBO0lBQ0Esa0JBQUE7SUFDQSxTQUFBO0VFMmNkO0FBQ0Y7QUNsOUJJO0VIMGdCSTtJQUVRLHFCQUFBO0lBQ0Esa0JBQUE7SUFDQSxtQkFBQTtJQUNBLG9CQUFBO0VFMGNkO0FBQ0Y7QUMxOUJJO0VIMGdCSTtJQVNRLHNCQXJrQkM7RUVnaENmO0FBQ0Y7QUMvOUJJO0VIdWhCSTtJQUVRLHFCQUFBO0lBQ0Esa0JBQUE7SUFDQSxtQkFBQTtJQUNBLGdCQUFBO0VFMGNkO0FBQ0Y7QUN2K0JJO0VIdWhCSTtJQVNRLHNCQWxsQkM7RUU2aENmO0FBQ0Y7QUM1K0JJO0VIb2lCSTtJQUVRLHFCQUFBO0lBQ0Esa0JBQUE7SUFDQSxtQkFBQTtJQUNBLG9CQUFBO0VFMGNkO0FBQ0Y7QUNwL0JJO0VINmlCSTtJQUVRLHFCQUFBO0lBQ0Esa0JBQUE7SUFDQSxtQkFBQTtJQUNBLGdCQUFBO0VFeWNkO0FBQ0Y7QUM1L0JJO0VINmlCSTtJQVNRLG1CQUFBO0lBQ0Esb0JBQUE7RUUwY2Q7QUFDRjtBRnZjUTtFQUNJLGNBQUE7QUV5Y1o7QUNyZ0NJO0VIMmpCSTtJQUlRLHFCQUFBO0lBQ0Esa0JBQUE7SUFDQSxtQkFBQTtJQUNBLGdCQUFBO0VFMGNkO0FBQ0Y7QUM3Z0NJO0VIMmpCSTtJQVdRLHFCQUFBO0lBQ0Esa0JBQUE7RUUyY2Q7QUFDRiIsImZpbGUiOiIuLi90YXJnZXQvdmF1bHQtd29yay9qY3Jfcm9vdC9hcHBzL3ZvbHZvL2NsaWVudGxpYnMvc2hhcmVkL2NvbXBvbmVudHMvY29udGVudC9jb2xsYWdlL2NvbGxhZ2UuYnVuZGxlLmNzcyIsInNvdXJjZXNDb250ZW50IjpbbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLCIvKlxuQWxzbyBwbGVhc2UgZm9sbG93IHRoaXNcbkRvIHlvdXIgcHJvamVjdCBoYXZlIGRpZmVyZW50IGNoYXJzZXQgbGFuZ3VhZ2VzIHRvIGFjY291bnQgd2l0aD9cbiAgICAgIC0gWWVzIC0+IGZvbGxvdyBodHRwczovL3Byb2plY3RzLm5ldGNlbnRyaWMuYml6L3dpa2kvZGlzcGxheS9GUk9OVEVORC9DU1MrLStGb250K05vcm1hbGl6YXRpb25cbiAgICAgIC0gTm8gLT4gWW91IGNhbiBzdGlsbCB1c2UgaXQsIHRoZXJlIGFyZSB0b25zIG9mIGFkdmFudGFnZXMsIGJ1dCBpdHMgY3JlYXRlIHNvbWUgZXh0cmEgY3NzIGFuZCBsYXlvdXQgcmVuZGVyaW5nXG4qL1xuLypcbiAgKiBEZXNpZ24gc3BlYzpcbiAgKiBodHRwczovL3d3dy5maWdtYS5jb20vZmlsZS9TUjRydlFsTm5DbVBNclE5V1lhSXF2L2JyYW5jaC9USnFrRnltcTA5d2Y4S3dtWTFXTmNqL1ZvbHZvLUFFTS1EZXNpZ24tc3lzdGVtP3R5cGU9ZGVzaWduJm5vZGUtaWQ9Ny0yNiZ0PXBBbTkxNlZSaXFDT0QySTEtMFxuKi9cbi8qKlxuICogei1pbmRleGVzIGZyb20gbG93ZXIgdG8gLT4gaGlnaGVyXG4gKi9cbi8qIGRvY1xuLS0tXG50aXRsZTogUGl4ZWwgdG8gZW1cbm5hbWU6IG5uLXB4LXRvLWVtXG5jYXRlZ29yeTogZnVuY3Rpb25zXG4tLS1cblxuQ2FsY3VsYXRlIHRoZSBlbSB3aXRoIGEgZ2l2ZW4gcGl4ZWwgd2l0aCB0aGUgZ2l2ZW4gYmFzZSBmb250IHNpemVcbklmIHlvdSBkb24ndCBzZXQgYSAkYmFzZSB0aGUgJGJhc2UtZm9udC1zaXplIGlzIHVzZWQgYXMgdGhlIGNvbnRleHRcblxuIyMgTGl2ZSBUZW1wbGF0ZSBhYmJyZXZpYXRpb25zXG4tLS1cbi1wdHVcblxuIyMgUGFyYW1ldGVyc1xuLS0tXG5AcGFyYW1ldGVyICR2YWx1ZSA9IHBpeGVsIGJhc2VkIG51bWJlciAod2l0aG91dCB1bml0KVxuQHBhcmFtZXRlciAkYmFzZSA9IHBpeGVsIGJhc2VkIG51bWJlciAod2l0aG91dCB1bml0KVxuXG4jIyBEZXBlbmRlbmNpZXNcbi0tLVxubm4tc3RyaXAtdW5pdFxuXG4jIyBFeGFtcGxlXG4tLS1cbmBgYGh0bWxfZXhhbXBsZVxubm4tcHgtdG8tZW0oNSkgLy8gT3V0cHV0OiAwLjMxMjVlbVxubm4tcHgtdG8tZW0oNSwgMTApIC8vIE91dHB1dDogMC41ZW1cbm5uLXB4LXRvLWVtKDUsIDIwKSAvLyBPdXRwdXQ6IDAuMjVlbVxuYGBgXG4qL1xuLyogZG9jXG4tLS1cbnRpdGxlOiBQaXhlbCB0byByZW1cbm5hbWU6IG5uLXB4LXRvLXJlbVxuY2F0ZWdvcnk6IGZ1bmN0aW9uc1xuLS0tXG5cbkNhbGN1bGF0ZSB0aGUgcmVtIHdpdGggYSBnaXZlbiBwaXhlbCB3aXRoIHRoZSBnaXZlbiBiYXNlIGZvbnQgc2l6ZVxuXG5JbjogIDVweFxuT3V0OiAwLjMxMjVyZW1cblxuIyMgTGl2ZSBUZW1wbGF0ZSBhYmJyZXZpYXRpb25zXG4tLS1cbi1yZW1cblxuIyMgUGFyYW1ldGVyc1xuLS0tXG5AcGFyYW1ldGVyICR2YWx1ZSA9IHBpeGVsIGJhc2VkIG51bWJlciAod2l0aG91dCB1bml0KVxuXG4jIyBEZXBlbmRlbmNpZXNcbi0tLVxubm4tc3RyaXAtdW5pdFxuXG4jIyBFeGFtcGxlXG4tLS1cbmBgYGh0bWxfZXhhbXBsZVxubm4tcHgtdG8tcmVtKDUpIC8vIE91dHB1dCAwLjMxMjVyZW1cbmBgYFxuXG4qL1xuLyogZG9jXG4tLS1cbnRpdGxlOiBQaXhlbCB0byB1bml0XG5uYW1lOiBweC10by11bml0XG5jYXRlZ29yeTogbWl4aW5zXG4tLS1cblxuU2V0IGEgcHJvcGVydHkgYW5kIHZhbHVlIChwaXhlbCBiYXNlZCB3aXRob3V0IHVuaXQpXG5cbkNhbGN1bGF0ZXMgcmVtIC8gZW0gLyAlIGZyb20gZ2l2ZW4gcGl4ZWwgYW5kIGJhc2UgKGRlZmF1bHQgYmFzZSBpcyB0aGVcbmJhc2UtZm9udC1zaXplLCAxNnB4KVxuSWYgcnRsIGlzIHRydWUsIHRoaXMgbWl4aW4gaGFuZGxlcyBhbGwgdGhlIGRpcmVjdGlvbiBzdHVmZjpcbi0gU3dpdGNoaW5nIHRoZSB2YWx1ZXMsIHdoZW4gd2UgaGF2ZSBleGFjdGx5IDQgdmFsdWVzXG4tIFN3aXRjaGluZyBsZWZ0IGFuZCByaWdodCBpbiBwcm9wZXJ0aWVzIChwYWRkaW5nIGFuZCBtYXJnaW4pXG5cbiMjIExpdmUgVGVtcGxhdGUgYWJicmV2aWF0aW9uc1xuLS0tXG4tcHR1IChmb3IgZW0gb3IgJSB0byBwaXhlbCAtIHdpdGggYmFzZSBwYXJhbWV0ZXIpXG4tcmVtIChmb3IgcmVtIHRvIHBpeGVsIC0gd2l0aG91dCBiYXNlIHBhcmFtZXRlcilcblxuIyMgUGFyYW1ldGVyc1xuLS0tXG5AcGFyYW1ldGVyICRwcm9wZXJ0eSA9IHBhZGRpbmcgfCBtYXJnaW4gfCBmb250LXNpemUgfCB3aWR0aCB8IGhlaWdodFxuQHBhcmFtZXRlciAkdmFsdWUgPSBQaXhlbCBiYXNlZCBudW1iZXIgLSBhZGQgcHggdG8ga2VlcCB0aGUgcHggZm9yIGEgdmFsdWVcbkBwYXJhbWV0ZXIgJGJhc2UgPSBweCBiYXNlZCBudW1iZXIsIERlZmF1bHQ6IDE2cHhcbkBwYXJhbWV0ZXIgJHVuaXQgPSBTZXQgdW5pdDogcHggfCBlbSB8IHJlbSB8IHBlcmNlbnRcblxuIyMgRGVwZW5kZW5jaWVzXG4tLS1cbmFic3RyYWN0L2Z1bmN0aW9ucy9zd2FwLWxlZnQtcmlnaHRcbmFic3RyYWN0L2Z1bmN0aW9ucy9zdHJpcC11bml0XG5cbiMjIEV4YW1wbGVcbi0tLVxuXG5gYGBodG1sX2V4YW1wbGVcbkBpbmNsdWRlIG5uLXB4LXRvLXVuaXQocGFkZGluZywgMCAxMHB4IDIwIDApOyA9PiBwYWRkaW5nOiAwIDEwcHggMS4yNXJlbSAwO1xuQGluY2x1ZGUgbm4tcHgtdG8tdW5pdChwYWRkaW5nLCAwIDEwIDIwIDApOyA9PiBwYWRkaW5nOiAwIDAuNjI1cmVtIDEuMjVyZW0gMDtcbkBpbmNsdWRlIG5uLXB4LXRvLXVuaXQocGFkZGluZy1sZWZ0LCAxMCk7XG5AaW5jbHVkZSBubi1weC10by11bml0KHBhZGRpbmctcmlnaHQsIDEwKTtcbkBpbmNsdWRlIG5uLXB4LXRvLXVuaXQobWFyZ2luLCAwIDEwIDIwIDApO1xuQGluY2x1ZGUgbm4tcHgtdG8tdW5pdChtYXJnaW4tbGVmdCwgMTApO1xuQGluY2x1ZGUgbm4tcHgtdG8tdW5pdChtYXJnaW4tcmlnaHQsIDEwKTtcbkBpbmNsdWRlIG5uLXB4LXRvLXVuaXQoZm9udC1zaXplLCAyMCk7XG5AaW5jbHVkZSBubi1weC10by11bml0KHdpZHRoLCAxMDApO1xuQGluY2x1ZGUgbm4tcHgtdG8tdW5pdChtaW4td2lkdGgsIDEwMCk7XG5AaW5jbHVkZSBubi1weC10by11bml0KG1hbm4td2lkdGgsIDEwMCk7XG5AaW5jbHVkZSBubi1weC10by11bml0KGhlaWdodCwgMTAwKTtcbkBpbmNsdWRlIG5uLXB4LXRvLXVuaXQobWluLWhlaWdodCwgMTAwKTtcbkBpbmNsdWRlIG5uLXB4LXRvLXVuaXQobWFubi1oZWlnaHQsIDEwMCk7XG5gYGBcblxuIyMgU291cmNlXG4tLS1cbmh0dHA6Ly9jc3MtdHJpY2tzLmNvbS9zbmlwcGV0cy9jc3MvbGVzcy1taXhpbi1mb3ItcmVtLWZvbnQtc2l6aW5nL1xuXG4qL1xuLyogZG9jXG4tLS1cbnRpdGxlOiBQaXhlbCB0byB1bml0bGVzc1xubmFtZTogbm4tcHgtdG8tdW5pdGxlc3NcbmNhdGVnb3J5OiBmdW5jdGlvbnNcbi0tLVxuXG5UaGlzIG1ha2VzIHRoZSBzYW1lIGNhbGN1bGF0aW9uIGFzIHB4IHRvIGVtLiBCdXQgaXQgZG9uJ3QgcHJpbnQgb3V0IHRoZSB1bml0LlxuXG5Vc2UgdGhpcyBmb3IgbGluZS1oZWlnaHRzLlxuXG4jIyBMaXZlIFRlbXBsYXRlIGFiYnJldmlhdGlvbnNcbi0tLVxuXG4jIyBQYXJhbWV0ZXJzXG4tLS1cbkBwYXJhbWV0ZXIgJHZhbHVlID0gcGl4ZWwgYmFzZWQgbnVtYmVyICh3aXRob3V0IHVuaXQpXG5AcGFyYW1ldGVyICRiYXNlID0gcGl4ZWwgYmFzZWQgbnVtYmVyICh3aXRob3V0IHVuaXQpXG5cbiMjIERlcGVuZGVuY2llc1xuLS0tXG5cbiMjIEV4YW1wbGVcbi0tLVxuXG5gYGBodG1sX2V4YW1wbGVcbmxpbmUtaGVpZ2h0OiBubi1weC10by11bml0bGVzcyg1KSAvLyBPdXRwdXQ6IDAuMzEyNVxuYGBgXG5cbiMjIFNvdXJjZVxuLS0tXG5cbiovXG4vKiBkb2Ncbi0tLVxudGl0bGU6IFN0cmlwIHVuaXRcbm5hbWU6IG5uLXN0cmlwLXVuaXRcbmNhdGVnb3J5OiBmdW5jdGlvbnNcbi0tLVxuXG5TdHJpcHMgb2YgdGhlIHVuaXQgb2YgYSBudW1iZXJcblxuIyMgUGFyYW1ldGVyc1xuLS0tXG5AcGFyYW1ldGVyICRudW0gPSBudW1iZXIgd2l0aCB1bml0ICg1cHgsIDVlbSwgNXJlbSlcblxuIyMgRXhhbXBsZVxuLS0tXG5cbmBgYGh0bWxfZXhhbXBsZVxubm4tc3RyaXAtdW5pdCg1cHgpIC8vT3V0cHV0OiA1XG5ubi1zdHJpcC11bml0KDEwZW0pIC8vIE91dHB1dDogMTBcbm5uLXN0cmlwLXVuaXQoMTVyZW0pIC8vIE91dHB1dDogMTVcbmBgYFxuXG4qL1xuLyogZG9jXG4tLS1cbnRpdGxlOiB6LWluZGV4XG5uYW1lOiBubi16LWluZGV4XG5jYXRlZ29yeTogZnVuY3Rpb25zXG4tLS1cblxuQmVjYXVzZSB6LWluZGljZXMgY2FuIGdldCB0cmlja3kgd2UgbWFuYWdlIHRoZW0gaW4gdGhlIHRoZW1lLnNjc3MgZ2xvYmFsbHkuXG5cbkFsd2F5cyB1c2UgdGhpcyBtaXhpbiB0byBzZXQgc2V0IGEgei1pbmRleC5cblxuUmVhZCB0aGUgQmVzdCBQcmFjdGljZSB0byBnZXQgYW4gZnVsbCBkb2N1bWVudGF0aW9uOlxuaHR0cHM6Ly9wcm9qZWN0cy5uZXRjZW50cmljLmJpei93aWtpL2Rpc3BsYXkvRlJPTlRFTkQvSG93K3RvK3NldCthK3otaW5kZXhcblxuIyMgTGl2ZSBUZW1wbGF0ZSBhYmJyZXZpYXRpb25zXG4tLS1cbi16XG5cbiMjIFBhcmFtZXRlcnNcbi0tLVxuQHBhcmFtZXRlciAkZWxlbWVudCA9IE5hbWUgb2YgdGhlIGVsZW1lbnQgKG5vcm1hbGx5IHRoaXMgd2lsbCBiZSB0aGUgbW9kdWxlIG5hbWUgZm9yIHRoZSBtYWluIHN0YWNrKVxuQHBhcmFtZXRlciAkbGlzdCA9IE5hbWUgb2YgdGhlIGxpc3QgKGRlZmF1bHQgJHotaW5kaWNlcykuIE11c3QgYmUgb25seSBzZXQgZm9yIHN0YWNrIGNvbnRleHRcbkBwYXJhbWV0ZXIgJG1pbiA9IFNldCBhIG1pbmltdW0gei1pbmRleCB3aGljaCB3aWxsIGJlIGFkZGVkIHRvIHRoZSBsaXN0LlxuXG4jIyBEZXBlbmRlbmNpZXNcbi0tLVxuJHotaW5kaWNlcyB2YXJpYWJsZSBpbiB0aGUgdGhlbWUuc2Nzc1xuXG4jIyBFeGFtcGxlXG4tLS1cblxuYGBgaHRtbF9leGFtcGxlXG5cbi8vIEluIHRoZSBTQVNTIHRoZW1lIGZpbGVcblxuJHotaW5kaWNlczogc2xpZGVyLCBtb2RhbCwgZGlhbG9nLCBuYXZpZ2F0aW9uO1xuXG4vLyBJbiB0aGUgU0FTUyBtb2R1bGUgZmlsZVxuXG4ubW9kYWwge1xuICAgICZfX2Jhc2Uge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHotaW5kZXg6IG5uLXotaW5kZXgobW9kYWwpO1xuICAgIH1cbn1cbmBgYFxuXG4jIyBTb3VyY2Vcbi0tLVxuaHR0cDovL3d3dy5zbWFzaGluZ21hZ2F6aW5lLmNvbS8yMDE0LzA2LzEyL3Nhc3N5LXotaW5kZXgtbWFuYWdlbWVudC1mb3ItY29tcGxleC1sYXlvdXRzL1xuXG4qL1xuLyogZG9jXG4tLS1cbnRpdGxlOiByZW1vdmUgZXZlcnkgdW5pdFxubmFtZTogc3RyaXAtdW5pdFxuY2F0ZWdvcnk6IGZ1bmN0aW9uc1xuLS0tXG5yZW1vdmUgYWxsIHVuaXRzXG5cbiMjIFBhcmFtZXRlcnNcbi0tLVxuQHBhcmFtZXRlciAkbnVtYmVyID0gbnVtYmVyIHdpdGggdW5pdFxuXG4jIyBFeGFtcGxlXG4tLS1cbmBgYGh0bWxfZXhhbXBsZVxuc3RyaXAtdW5pdCg1cHgpIC8vIE91dHB1dDogNVxuYGBgXG4qL1xuLypcbiAgICBUaGlzIG1peGluIGNvbnZlcnRzIGFueSB1bml0bGVzcyBudW1iZXIgKGZvciBleGFtcGxlIDQwKSB0byB0aGUgY29ycmVjdCB1bml0LCBhY2NvcmRpbmcgdG8gdGhlIGdpdmVuIGF4aXMuXG5cbiAgICBQYXJhbWV0ZXJzOlxuICAgIC0gJHZhbHVlOiB1bml0bGVzcyBudW1iZXIgdG8gYmUgY29udmVydGVkLiBBIHVuaXQgaW4gJHZhbHVlIHdpbGwgY29ycmVzcG9uZCB0byBhIHB4IGluIHRoZSBicm93c2VyLFxuICAgICAgICBubyBtYXR0ZXIgaWYgaXQncyBvdXRwdXQgYXMgcHggb3IgcmVtXG5cbiAgICBSZXR1cm5zXG4gICAgLSBIb3Jpem9udGFsOiB3aWxsIGNvbnZlcnQgdGhlIG51bWJlciB0byBwaXhlbHMgKDQwcHgpXG4gICAgLSBWZXJ0aWNhbDogd2lsbCBjb252ZXJ0IHRoZSBudW1iZXIgdG8gcmVtIChpZiByZW0gPT09IDE2cHgsIHRoZW4gNDAgd2lsbCBiZSBjb252ZXJ0ZWQgdG8gMi41IHJlbSlcbiovXG4vKlxuICAgIENvbnZlcnRzIGEgdW5pdGxlc3MgbnVtYmVyIHRvIHRoZSBjb3JyZXNwb25kaW5nIHVuaXQgb24gdGhlIGhvcml6b250YWwgYXhpcy5cbiAgICBCeSBkZWZhdWx0IHdpbGwgY29udmVydCB0aGUgdmFsdWUgdG8gcHguXG4qL1xuLypcbiAgICBDb252ZXJ0cyBhIHVuaXRsZXNzIG51bWJlciB0byB0aGUgY29ycmVzcG9uZGluZyB1bml0IG9uIHRoZSB2ZXJ0aWNhbCBheGlzLlxuICAgIEJ5IGRlZmF1bHQgd2lsbCBjb252ZXJ0IHRoZSB2YWx1ZSB0byByZW0uXG4qL1xuLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbi8qIGRvY1xuLS0tXG50aXRsZTogU3dhcCBsZWZ0IHJpZ2h0IHZhbHVlc1xubmFtZTogc3dhcC1sZWZ0LXJpZ2h0LXZhbHVlc1xuY2F0ZWdvcnk6IGZ1bmN0aW9uc1xuLS0tXG5cblN3YXAgdGhlIHZhbHVlcyBmb3IgcmlnaHQgYW5kIGxlZnQgd2hlbiAkcnRsIGlzIHNldCB0byB0cnVlOlxuXG5JbjogIDAgNXB4IDhweCAxMnB4XG5PdXQ6IDAgMTJweCA4cHggNXB4IChpbiBydGwpXG5cbiMjIFBhcmFtZXRlcnNcbi0tLVxuQHBhcmFtZXRlciAkdmFsdWVzID0gNCBudW1iZXJzICh3b3JrcyB3aXRoIGFsbCB1bml0cylcblxuIyMgRXhhbXBsZVxuLS0tXG5cbmBgYGh0bWxfZXhhbXBsZVxuc3dhcC1sZWZ0LXJpZ2h0LXZhbHVlcygwIDFweCA4cHggMTJweCkgLy8gMCAxMnB4IDhweCAxcHhcbnN3YXAtbGVmdC1yaWdodC12YWx1ZXMoMCAxZW0gOGVtIDEyZW0pIC8vIDAgMTJlbSA4ZW0gMWVtXG53YXAtbGVmdC1yaWdodC12YWx1ZXMoMCAxcmVtIDhyZW0gMTJyZW0pIC8vIDAgMTJyZW0gOHJlbSAxcmVtXG5gYGBcblxuIyMgU291cmNlXG4tLS1cbmh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMTQxOTkzMjMvcmlnaHQtdG8tbGVmdC1ydGwtc3VwcG9ydC1pbi1zYXNzLXByb2plY3RcblxuKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlICovXG4vKiBkb2Ncbi0tLVxudGl0bGU6IFN3YXAgbGVmdCByaWdodCBuYW1lc1xubmFtZTogc3dhcC1sZWZ0LXJpZ2h0LW5hbWVzXG5jYXRlZ29yeTogZnVuY3Rpb25zXG4tLS1cblxuU3dhcCB0aGUgbmFtZXMgcmlnaHQgYW5kIGxlZnQgd2hlbiAkcnRsIGlzIHNldCB0byB0cnVlLlxuSWYgdGhlIHZhbHVlIGlzIG5vdCByaWdodCBvciBsZWZ0IGl0IHJldHVybnMgdGhlIG9yaWdpbmFsIHZhbHVlLlxuXG5JbjogIHJpZ2h0XG5PdXQ6IGxlZnQgKGluIHJ0bCksIHJpZ2h0IChpbiBsdHIpXG5cbiMjIExpdmUgVGVtcGxhdGUgYWJicmV2aWF0aW9uc1xuLS0tXG5cbiMjIFBhcmFtZXRlcnNcbi0tLVxuQHBhcmFtZXRlciAkb3JpZ2luID0gcmlnaHQgfCBsZWZ0XG5cbiMjIEV4YW1wbGVcbi0tLVxuXG5gYGBodG1sX2V4YW1wbGVcbnN3YXAtbGVmdC1yaWdodC1uYW1lKGxlZnQpXG5zd2FwLWxlZnQtcmlnaHQtbmFtZShyaWdodClcbmBgYFxuXG4jIyBTb3VyY2Vcbi0tLVxuaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8xNDE5OTMyMy9yaWdodC10by1sZWZ0LXJ0bC1zdXBwb3J0LWluLXNhc3MtcHJvamVjdFxuXG4qL1xuLyogIExpc3Qgb2YgQ1NTIHByb3BlcnRpZXMgdGhhdCB3aWxsIGFsd2F5cyBiZSBvdXRwdXQgYXQgbGVhc3QgYXMgMiBkaWZmZXJlbnQgdmFsdWVzXG4gICAgaW4gb3JkZXIgdG8gYmUgYWJsZSB0byBjb252ZXJ0IGVhY2ggb25lIHRvIHRoZSBjb3JyZWN0IGF4aXMgdW5pdCAqL1xuLypcbiAgICBNaXhpbiBmb3IgYXV0b21hdGljYWxseSBoYW5kbGluZyBzcGFjaW5ncyBhcm91bmQvYmV0d2VlbiBlbGVtZW50cy5cblxuICAgIFRoaXMgbWl4aW4gd2lsbCBhdXRvbWF0aWNhbGx5IGludmVydCB0aGUgbGVmL3JpZ2h0IGRpcmVjdGlvbnMgaW4gUlRMIGxhbmd1YWdlcy5cbiAgICBBbHNvLCB0aGUgdW5pdGxlc3MgdmFsdWVzIHdpbGwgYmUgY29udmVydGVkIHRvIHRoZSBwcm9wZXIgdW5pdCBhY2NvcmRpbmcgdG8gdGhlIGF4aXNcblxuICAgIFBhcmFtZXRlcnM6XG4gICAgLSAkcHJvcGVydHktbmFtZTogbmFtZSBvZiB0aGUgQ1NTIHByb3BlcnR5IHRoYXQgc2hvdWxkIGJlIG91dHB1dC4gU3VwcG9ydGVkIHByb3BlcnRpZXMgYXJlOlxuICAgICAgICBtYXJnaW4sIG1hcmdpbi10b3AsIG1hcmdpbi1yaWdodCwgbWFyZ2luLWJvdHRvbSwgbWFyZ2luLWxlZnRcbiAgICAgICAgcGFkZGluZywgcGFkZGluZy10b3AsIHBhZGRpbmctcmlnaHQsIHBhZGRpbmctYm90dG9tLCBwYWRkaW5nLWxlZnRcbiAgICAgICAgd2lkdGgsIGhlaWdodCwgbWluLXdpZHRoLCBtYXgtd2lkdGgsIG1pbi1oZWlnaHQsIG1pbi1oZWlnaHRcbiAgICAtICR2YWx1ZTogdmFsdWUgdGhhdCB3aWxsIGJlIG91dHB1dCBhcyBwYXJ0IG9mIHRoZSBnaXZlbiBwcm9wZXJ0eS4gU3VwcG9ydGVkIHZhbHVlcyBhcmU6XG4gICAgICAgIFVuaXRsZXNzIG51bWJlciAoNDApOiB0aGlzIHNob3VsZCBiZSB1c2VkIG1vc3Qgb2YgdGhlIHRpbWVzLiBJdCB3aWxsIGF1dG9tYXRpY2FsbHkgYmUgY29udmVydGVkXG4gICAgICAgICAgICB0byB0aGUgY29ycmVjdCB1bml0IGRlcGVuZGluZyBvbiB0aGUgYXhpcyB3aGVyZSBpdCdzIHVzZWQgKGhvcml6b250YWwgYXhpcyA9PiBweCwgdmVydGljYWwgYXhpcyA9PiByZW0pLlxuICAgICAgICAgICAgRWFjaCB1bml0IGluICR2YWx1ZSB3aWxsIGNvcnJlc3BvbmQgdG8gYSBweCBpbiB0aGUgYnJvd3Nlciwgbm8gbWF0dGVyIHRvIHdoaWNoIHVuaXQgaXQgd2lsbCBiZSBjb252ZXJ0ZWQuXG4gICAgICAgIE51bWJlciB3aXRoIHVuaXQgKDQwcHgsIDQwJS4uLik6IHRoZSBudW1iZXIgYW5kIHRoZSB1bml0IHdpbGwgYmUgcHJlc2VydmVkIGFuZCBvbmx5IHRoZSBsZWZ0L3JpZ2h0IGludmVyc2lvblxuICAgICAgICAgICAgd2lsbCBiZSBkb25lIGZvciBSVEwgbGFuZ3VhZ2VzXG4gICAgICAgIExpc3Qgb2YgdmFsdWVzICg0MCAzMCUgMjAgMTApOiBtYXJnaW4gYW5kIHBhZGRpbmcgc2hvcnRoYW5kcyB3aGl0aCBtdWx0aXBsZSB2YWx1ZXMgYXJlIHN1cHBvcnRlZC5cbiAgICAgICAgICAgIFRoZSBsZWZ0L3JpZ2h0IHZhbHVlcyB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgc3dhcHBlZCBpbiBSVEwgYW5kIHRoZSB1bml0bGVzcyBudW1iZXJzIHdpbGwgYmUgY29udmVydGVkXG4gICAgICAgICAgICB0byB0aGUgY29ycmVzcG9uZGluZyB1bml0LiBVbml0bGVzcyBhbmQgbnVtYmVycyB3aXRoIHVuaXRzIGNhbiBiZSBtaXhlZCBpbiB0aGUgc2FtZSBjYWxsLlxuICAgICAgICBVc2luZyBjYWxjKCkgaW4gYW55IG9mIHRoZSBwcmV2aW91cyBleGFtcGxlcyBpcyBzdXBwb3J0ZWQsIGFsdGhvdWdoIG5vIHVuaXQgY29udmVyc2lvbiB3aWxsIGJlIGRvbmVcblxuICMjIEV4YW1wbGVcbi0tLVxuXG5gYGBodG1sX2V4YW1wbGVcbkBpbmNsdWRlIHNwYWNpbmcocGFkZGluZywgMCAxMHB4IDIwIDApOyA9PiBwYWRkaW5nOiAwIDEwcHggMnJlbSAwO1xuQGluY2x1ZGUgc3BhY2luZyhwYWRkaW5nLCAwIDEwIDIwIDApOyA9PiBwYWRkaW5nOiAwIDEwcHggMnJlbSAwO1xuQGluY2x1ZGUgc3BhY2luZyhwYWRkaW5nLWxlZnQsIDEwKTtcbkBpbmNsdWRlIHNwYWNpbmcocGFkZGluZy1yaWdodCwgMTApO1xuQGluY2x1ZGUgc3BhY2luZyhtYXJnaW4sIDAgMTAgMjAgMCk7XG5AaW5jbHVkZSBzcGFjaW5nKG1hcmdpbi1sZWZ0LCAxMCk7XG5AaW5jbHVkZSBzcGFjaW5nKG1hcmdpbi1yaWdodCwgMTApO1xuQGluY2x1ZGUgc3BhY2luZyh3aWR0aCwgMTAwKTtcbkBpbmNsdWRlIHNwYWNpbmcobWluLXdpZHRoLCAxMDApO1xuQGluY2x1ZGUgc3BhY2luZyhtYXgtd2lkdGgsIDEwMCk7XG5AaW5jbHVkZSBzcGFjaW5nKGhlaWdodCwgMTAwKTtcbkBpbmNsdWRlIHNwYWNpbmcobWluLWhlaWdodCwgMTAwKTtcbkBpbmNsdWRlIHNwYWNpbmcobWF4LWhlaWdodCwgMTAwKTtcbmBgYFxuKi9cbi8qIGRvY1xuLS0tXG50aXRsZTogQ2xlYXJmaXhcbm5hbWU6IGNsZWFyZml4XG5jYXRlZ29yeTogbWl4aW5zXG4tLS1cblxuQ2xlYXJzIGFmdGVyIGZsb2F0aW5nIGVsZW1lbnRcblxuVXNlIHRoaXMgbWl4aW4gb25seSBpbnNpZGUgbWVkaWEgcXVlcmllcyB3aGVyZSB5b3UgY2FuJ3QgdXNlIHRoZVxuYWJzdHJhY3QvZXh0ZW5kcy91dGlscy9fY2xlYXJmaXggdmVyc2lvbiwgd2hpY2ggYWRkcyBsZXNzIGNvZGUgdG8gY3NzXG5cbiMjIExpdmUgVGVtcGxhdGUgYWJicmV2aWF0aW9uc1xuLS0tXG5cbiMjIEV4YW1wbGVcbi0tLVxuXG5gYGBodG1sX2V4YW1wbGVcbkBpbmNsdWRlIGNsZWFyZml4O1xuYGBgXG5cbiMjIFNvdXJjZVxuLS0tXG5odHRwczovL2Nzcy10cmlja3MuY29tL3NuaXBwZXRzL2Nzcy9jbGVhci1maXgvXG4qL1xuLyogc3R5bGVsaW50LWRpc2FibGUgc3RyaW5nLW5vLW5ld2xpbmUgKi9cbi8qIGRvY1xuLS0tXG50aXRsZTogZm9jdXMgY29sb3Jcbm5hbWU6IGZvY3VzIGNvbG9yXG5jYXRlZ29yeTogbWl4aW5zXG4tLS1cblxuQWRkIGEgZm9jdXMgY29sb3Igd2hlbiBrZXlib2FyZC1mb2N1cyBpcyBhY3RpdmF0ZWRcbiMjIFBhcmFtZXRlcnNcbi0tLVxuQHBhcmFtICRudW1iZXJcblxuKi9cbi8qIGRvY1xuLS0tXG50aXRsZTogaWdub3JlLWNvbnRhaW5lclxubmFtZTogaWdub3JlLWNvbnRhaW5lclxuY2F0ZWdvcnk6IG1peGluc1xuLS0tXG5cblNldCBmdWxsIHBhZ2Ugd2lkdGggZm9yIHNvbWV0aGluZyBpbnNpZGUgYSBjb250YWluZXJcblxuIyMgUGFyYW1ldGVyc1xuLS0tXG5AcGFyYW0gJGNvbnRhaW5lci1zaXplXG5AcGFyYW0gJGd1dHRlclxuXG4qL1xuLyogR2VuZXJhdGVzIGFsbCB0aGUgcnVsZXMgZm9yIHRoZSBncmlkIGNvbHVtbnMgdXAgdG8gdGhlIGdpdmVuIGFtb3VudCBvZiBjb2x1bW4gKi9cbi8qIEdlbmVyYXRlcyBhbGwgdGhlIHJ1bGVzIGZvciB0aGUgZ3JpZCBjb2x1bW4gb2Zmc2V0IHVwIHRvIHRoZSBnaXZlbiBhbW91bnQgb2YgY29sdW1uICovXG4vKiBHZW5lcmF0ZXMgYWxsIHRoZSBydWxlcyBmb3IgdGhlIGdyaWQgYW5kIGNvbHVtbnMgZm9yIHRoZSBnaXZlbiBicmVhayBwb2ludCBhbmQgdG90YWwgb2YgY29sdW1ucyAqL1xuLyogQVBJIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB0byBnZW5lcmF0ZSBhIGdyaWQgY29uZmlnICovXG4vKiBkb2Ncbi0tLVxudHlwZTogYnV0dG9uIHR5cGVcbnN0YXRlOiBzdGF0ZSBidXR0b25cbi0tLVxuXG5CdXR0b24gc3R5bGVzXG5cblVzZSB0aGlzIG1peGluIGZvciBidXR0b24gc3R5bGVzOiBjb2xvciB0ZXh0LCBiYWNrZ3JvdW5kLCBib3JkZXJcblxuIyMgRXhhbXBsZVxuLS0tXG5cbmBgYGh0bWxfZXhhbXBsZVxuQGluY2x1ZGUgYnV0dG9uKHByaW1hcnkpO1xuYGBgXG4qL1xuLyogZG9jXG4tLS1cbmxpbmVMaW1pdDogVGhpcyB2YWx1ZSBzcGVjaWZpZXMgdGhlIG51bWJlciBvZiBsaW5lcyBhZnRlciB3aGljaCB0aGUgY29udGVudCB3aWxsIGJlIGNsYW1wZWQuIEl0IG11c3QgYmUgZ3JlYXRlciB0aGFuIDAuXG4tLS1cblxuVHJ1bmNhdGVzIHRleHQgYXQgYSBzcGVjaWZpYyBudW1iZXIgb2YgbGluZXMuXG5cblVzZSB0aGlzIG1peGluIHRvIGhpZGUgbG9uZyB0ZXh0LlxuXG4jIyBFeGFtcGxlXG4tLS1cblxuYGBgaHRtbF9leGFtcGxlXG5AaW5jbHVkZSBsaW5lLWNsYW1wKCRsaW5lTGltaXQ6IDQpO1xuYGBgXG4qL1xuLyogdHlwb2dyYXBoeVxuLS0tXG50aXRsZTogdHlwb2dyYXBoeVxubmFtZTogVHlwb2dyYXBoeVxuY2F0ZWdvcnk6IG1peGluc1xuLS0tXG5cbkFkZHMgZm9udCBDU1MgcHJvcGVydGllcyBieSBhIG1hcCBwcm92aWRlZFxuXG4jIyBQYXJhbWV0ZXJzXG4tLS1cbkBwYXJhbSAkdC1zdHlsZVxuQHBhcmFtICRpcy1pbXBvcnRhbnQ6IGZhbHNlXG5cbiogJHQtc3R5bGUgaXMgZXhwZWN0ZWQgdG8gYmUgYSBtYXAgd2l0aCAnZGVmYXVsdCcgYW5kICdicmVha3BvaW50W3NdJyBzdWJtYXBzIHdpdGggYSBwcm9wZXJ0eVxuZm9yIGV2ZXJ5IGNzcyBwcm9wZXJ0eSB0byBiZSBzZXQuXG4qICRpcy1pbXBvcnRhbnQgcGFyYW1ldGVyIGFsbG93cyB0byBmb3JjZSB0eXBvZ3JhcGh5IHByb3BlcnRpZXMgdG8gYmUgc2V0IGFzICFpbXBvcnRhbnRcblRyeSB0byBhdm9pZCBpdHMgdXNlLCBidXQgaXQgbWlnaHQgYmUgbmVlZGVkIGZvciBzaXR1YXRpb25zIHdoZXJlIHN0eWxlcyBmb3IgYSBjb21wb25lbnRcbmFyZSB2ZXJ5IHNwZWNpZmljIGFuZCB0byBvdmVyd3JpdGUgdGhlIGdlbmVyaWMgb25lcyBpcyB0b28gY29tcGxleCAoaWYgdGhleSBoYXZlIGEgbG90IG9mIHNwZWNpZmljaXR5KVxuXG4qL1xuLyogZG9jXG4tLS1cbnRpdGxlOiBoaWRkZW5cbm5hbWU6IGhpZGRlblxuY2F0ZWdvcnk6IG1peGluc1xuLS0tXG5cbkhpZGUgZnJvbSBib3RoIHNjcmVlbnJlYWRlcnMgYW5kIGJyb3dzZXJzOiBoNWJwLmNvbS91XG4jIyBQYXJhbWV0ZXJzXG4tLS1cblxuKi9cbi8qIGRvY1xuLS0tXG50aXRsZTogb3ZlcmxheVxubmFtZTogb3ZlcmxheVxuY2F0ZWdvcnk6IG1peGluc1xuLS0tXG5cbkNyZWF0ZXMgYW4gb3ZlcmxheSB3aXRoIHRoZSBwcm92aWRlZCBiYWNrZ3JvdW5kIGNvbG9yXG4jIyBQYXJhbWV0ZXJzXG4tLS1cbkBwYXJhbSAkYmdDb2xvclxuXG4qL1xuLyoqXG4gKiBAbWl4aW4gdG9wLWJvdHRvbS1ib3JkZXJcbiAqIEBkZXNjIENyZWF0ZXMgYSBkeW5hbWljIGFuZCBjdXN0b21pemFibGUgYm9yZGVyIGF0IHRoZSBzcGVjaWZpZWQgcG9zaXRpb24gb24gYW4gZWxlbWVudC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gJHBvc2l0aW9uIC0gT3B0aW9uYWwsIERlZmF1bHQ6ICdib3R0b20nLiBEZWZpbmVzIHRoZSBwb3NpdGlvbiBvZiB0aGUgYm9yZGVyLiBBY2NlcHRzIHZhbHVlcyAndG9wJyBvciAnYm90dG9tJy5cbiAqIEBwYXJhbSB7Y29sb3J9ICRjb2xvciAtIE9wdGlvbmFsLCBEZWZhdWx0OiAnJGMtYmxhY2snLiBTcGVjaWZpZXMgdGhlIGNvbG9yIG9mIHRoZSBib3JkZXIuIEFjY2VwdHMgYW55IHZhbGlkIENTUyBjb2xvciB2YWx1ZS5cbiAqIEBwYXJhbSB7bGVuZ3RofSAkd2lkdGggLSBPcHRpb25hbCwgRGVmYXVsdDogJzJweCcuIFNldHMgdGhlIHdpZHRoIG9mIHRoZSBib3JkZXIuIEFjY2VwdHMgYW55IHZhbGlkIENTUyBsZW5ndGggdmFsdWUuXG4gKiBAcGFyYW0ge2xlbmd0aH0gJG1hcmdpbiAtIE9wdGlvbmFsLCBEZWZhdWx0OiAnMCcuIEFkZHMgbWFyZ2luIHRvIHRoZSBib3JkZXIuIEFjY2VwdHMgYW55IHZhbGlkIENTUyBsZW5ndGggdmFsdWUuXG4gKlxuICogQGV4YW1wbGVcbiAqICAgLmV4YW1wbGUtZWxlbWVudCB7XG4gKiAgICAgICBAaW5jbHVkZSB0b3AtYm90dG9tLWJvcmRlcigkcG9zaXRpb246IHRvcCwgJGNvbG9yOiAkYy1ncmV5LXR3bywgJHdpZHRoOiAzcHgsICRtYXJnaW46IDEwcHgpO1xuICogICB9XG4gKi9cbi8qIGRvY1xuLS0tXG50aXRsZTogcmVzZXQtZnVsbHdpZHRoLW1hcmdpbnNcbm5hbWU6IHJlc2V0LWZ1bGx3aWR0aC1tYXJnaW5zXG5jYXRlZ29yeTogbWl4aW5zXG4tLS1cblxuUmVzZXQgbWFyZ2lucyBmb3IgZnVsbCB3aWR0aCBjb21wb25lbnRzIGluc2lkZSBhIENvbnRhaW5lciBvciBhIENvbHVtbiBDb250cm9sXG4qL1xuLyogZG9jXG4tLS1cbnRpdGxlOiB2aXN1YWxseSBoaWRkZW5cbm5hbWU6IHZpc3VhbGx5IGhpZGRlblxuY2F0ZWdvcnk6IG1peGluc1xuLS0tXG5cbkhpZGRlbiBmcm9tIGJyb3dzZXJzIGJ1dCBhY2Nlc3NpYmxlIHRvIHNjcmVlbiByZWFkZXJzXG4jIyBQYXJhbWV0ZXJzXG4tLS1cblxuKi9cbi5jb2xsYWdlX19jb250YWluZXIge1xuICBtYXJnaW4tYmxvY2s6IDMwcHg7XG4gIG1hcmdpbi1pbmxpbmU6IDA7XG4gIGRpc3BsYXk6IGdyaWQ7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmNvbGxhZ2VfX2NvbnRhaW5lciB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiA1MCUgNTAlO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgLmNvbGxhZ2VfX2NvbnRhaW5lciB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAzNSUgMzUlIDMwJTtcbiAgfVxufVxuLmNvbGxhZ2VfX2JveCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLWJsb2NrLWVuZDogNHB4O1xuICBoZWlnaHQ6IDMwMHB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5jb2xsYWdlX19ib3gge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cbn1cbi5jb2xsYWdlX19ib3ggLnRlYXNlciB7XG4gIGhlaWdodDogMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuLmNvbGxhZ2VfX2JveCAudGVhc2VyIC5jbXAtdGVhc2VyOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gdG9wLCByZ2JhKDAsIDAsIDAsIDAuOSkgMTAlLCB0cmFuc3BhcmVudCA2NSUpO1xufVxuLmNvbGxhZ2VfX2JveCAudGVhc2VyIC5jbXAtdGVhc2VyLS1uby1iYWNrZ3JvdW5kOjphZnRlciB7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG59XG4uY29sbGFnZV9fYm94IC50ZWFzZXIgLnM3dmlkZW9wbGF5ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLmNvbGxhZ2VfX2JveCAudGVhc2VyIHtcbiAgICBtYXgtd2lkdGg6IGNhbGMoMTAwdncgLSAxNXB4ICogMik7XG4gIH1cbn1cbi5jb2xsYWdlX19ib3ggLmNtcC10ZWFzZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbjogMDtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuLmNvbGxhZ2VfX2JveCAuY21wLXRlYXNlcjpob3ZlciAuY21wLXRlYXNlcl9fZGVzY3JpcHRpb24gcDo6YWZ0ZXIge1xuICB0cmFuc2Zvcm06IHZhcigtLWJ1dHRvbi1pY29uLXRyYW5zZm9ybS1ob3Zlcik7XG59XG4uY29sbGFnZV9fYm94IC5jbXAtdGVhc2VyX19jb250ZW50IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldC1ibG9jazogYXV0byAwO1xuICBwYWRkaW5nLWJsb2NrOiAxZW0gN3B4O1xuICBwYWRkaW5nLWlubGluZTogMWVtO1xuICBjb2xvcjogI2ZmZjtcbiAgdHJhbnNmb3JtOiBub25lO1xuICB6LWluZGV4OiAxO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5jb2xsYWdlX19ib3ggLmNtcC10ZWFzZXJfX3RpdGxlIHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZmLW1lZGl1bSkgIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAyMXB4ICFpbXBvcnRhbnQ7XG4gIGZvbnQtd2VpZ2h0OiA0MDAgIWltcG9ydGFudDtcbiAgbGluZS1oZWlnaHQ6IDEuMiAhaW1wb3J0YW50O1xuICBsZXR0ZXItc3BhY2luZzogdmFyKC0tbHMtZGVmYXVsdCkgIWltcG9ydGFudDtcbiAgbWFyZ2luLWJsb2NrLWVuZDogMTBweCAhaW1wb3J0YW50O1xuICBmb250LWZhbWlseTogdmFyKC0tZmYtcmVndWxhcikgIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZmY7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmNvbGxhZ2VfX2JveCAuY21wLXRlYXNlcl9fdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMjRweCAhaW1wb3J0YW50O1xuICB9XG59XG4uY29sbGFnZV9fYm94IC5jbXAtdGVhc2VyX190aXRsZTpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJsb2NrLWVuZDogMjRweDtcbn1cbi5jb2xsYWdlX19ib3ggLmNtcC10ZWFzZXJfX2Rlc2NyaXB0aW9uIHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZmLW1lZGl1bSk7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgbGV0dGVyLXNwYWNpbmc6IHZhcigtLWxzLWRlZmF1bHQpO1xuICBjb2xvcjogI2ZmZjtcbiAgbWFyZ2luLWJsb2NrLXN0YXJ0OiAwO1xufVxuLmNvbGxhZ2VfX2JveCAuY21wLXRlYXNlcl9fZGVzY3JpcHRpb24gcCB7XG4gIGRpc3BsYXk6IGlubGluZTtcbn1cbi5jb2xsYWdlX19ib3ggLmNtcC10ZWFzZXJfX2Rlc2NyaXB0aW9uIHA6bGFzdC1jaGlsZDphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFzay1pbWFnZTogdXJsKFwiL2NvbnRlbnQvZGFtL3ZvbHZvLW1lZGlhL2xpc3QtaWNvbnMvY2hldnJvbi1yaWdodC5zdmcjY2hldnJvbi1yaWdodC1pY29uLXcyNC12aWV3XCIpO1xuICBtYXNrLXJlcGVhdDogbm8tcmVwZWF0O1xuICBtYXNrLXNpemU6IGNvdmVyO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgd2lkdGg6IHZhcigtLXYtaWNvbi1zaXplKTtcbiAgaGVpZ2h0OiB2YXIoLS12LWljb24tc2l6ZSk7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC5jb2xsYWdlX19ib3ggLmNtcC10ZWFzZXJfX2Rlc2NyaXB0aW9uIHA6bGFzdC1jaGlsZDphZnRlciB7XG4gICAgbWFzay1pbWFnZTogdXJsKFwiL2NvbnRlbnQvZGFtL3ZvbHZvLW1lZGlhL2xpc3QtaWNvbnMvY2hldnJvbi1yaWdodC5zdmcjY2hldnJvbi1yaWdodC1pY29uLXcxNi12aWV3XCIpO1xuICB9XG59XG4uY29sbGFnZV9fYm94IC5jbXAtdGVhc2VyX19kZXNjcmlwdGlvbiBwOmxhc3QtY2hpbGQ6OmFmdGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuICB0cmFuc2Zvcm06IHZhcigtLWJ1dHRvbi1pY29uLXRyYW5zZm9ybSk7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmNvbGxhZ2VfX2JveCAuY21wLXRlYXNlcl9fZGVzY3JpcHRpb24gcDpsYXN0LWNoaWxkOjphZnRlciB7XG4gICAgaW5zZXQtYmxvY2stc3RhcnQ6IC0wLjE1ZW07XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxufVxuLmNvbGxhZ2VfX2JveCAuY21wLXRlYXNlcl9fZGVzY3JpcHRpb24gcDo6YWZ0ZXIge1xuICBtYXJnaW4taW5saW5lLXN0YXJ0OiAzcHg7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGVhc2Utb3V0O1xufVxuLmNvbGxhZ2VfX2JveCAuY21wLXRlYXNlcl9fYWN0aW9uLWNvbnRhaW5lciB7XG4gIG1hcmdpbi1ibG9jay1zdGFydDogMTBweCAhaW1wb3J0YW50O1xufVxuLmNvbGxhZ2VfX2JveCAuY21wLXRlYXNlcl9fYWN0aW9uLWxpbmsge1xuICBwb2ludGVyLWV2ZW50czogYWxsO1xufVxuLmNvbGxhZ2VfX2JveCAuY21wLXRlYXNlciAuY21wLWltYWdlIHtcbiAgaGVpZ2h0OiAzMDBweDtcbn1cbi5jb2xsYWdlX19ib3ggLmNtcC10ZWFzZXIgLmNtcC1pbWFnZV9fbGluayB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgaGVpZ2h0OiAxMDAlO1xufVxuLmNvbGxhZ2VfX2JveCAuY21wLXRlYXNlciAuZW1iZWRfX3lvdXR1YmUge1xuICBoZWlnaHQ6IDMwMHB4O1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmctYmxvY2stZW5kOiAwO1xufVxuLmNvbGxhZ2VfX2JveCAuY21wLXRlYXNlcl9faW1hZ2Uge1xuICBoZWlnaHQ6IDEwMCU7XG59XG4uY29sbGFnZV9fYm94IC5jbXAtdGVhc2VyX19pbWFnZSAuaW1nX19hc3NldCxcbi5jb2xsYWdlX19ib3ggLmNtcC10ZWFzZXJfX2ltYWdlIGltZyB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xufVxuLmNvbGxhZ2VfX2JveCAudGVhc2VyIHtcbiAgbWFyZ2luOiAwO1xufVxuLmNvbGxhZ2VfX2JveCAuY21wLWNvbnRhaW5lciB7XG4gIGhlaWdodDogMTAwJTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBmbGV4LXdyYXA6IHdyYXA7XG59XG4uY29sbGFnZV9fYm94IC5jbXAtY29udGFpbmVyID4gKiB7XG4gIGZsZXg6IDEgMCAxMDAlO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5jb2xsYWdlX19ib3gtLW9uZSB7XG4gICAgZ3JpZC1jb2x1bW46IDEvc3BhbiAxO1xuICAgIGdyaWQtcm93OiAxL3NwYW4gMjtcbiAgICBtYXJnaW4taW5saW5lLWVuZDogNHB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmNvbGxhZ2VfX2JveC0tdHdvIHtcbiAgICBncmlkLWNvbHVtbjogMi9zcGFuIDE7XG4gICAgZ3JpZC1yb3c6IDEvc3BhbiAyO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgLmNvbGxhZ2VfX2JveC0tdHdvIHtcbiAgICBtYXJnaW4tYmxvY2s6IDA7XG4gICAgbWFyZ2luLWlubGluZTogMCA0cHg7XG4gIH1cbn1cbi5jb2xsYWdlX19ib3gtLXRocmVlIC5jbXAtdGVhc2VyLCAuY29sbGFnZV9fYm94LS1mb3VyIC5jbXAtdGVhc2VyIHtcbiAgLS10ZWFzZXItaGVpZ2h0OiAxNDhweDtcbn1cbi5jb2xsYWdlX19ib3gtLXRocmVlIHtcbiAgaGVpZ2h0OiAxNDhweDtcbiAgZ3JpZC1jb2x1bW46IDE7XG4gIGdyaWQtcm93OiA0O1xufVxuLmNvbGxhZ2VfX2JveC0tdGhyZWUgLmNtcC10ZWFzZXIgLmNtcC1pbWFnZSxcbi5jb2xsYWdlX19ib3gtLXRocmVlIC5jbXAtdGVhc2VyIC5lbWJlZF9feW91dHViZSB7XG4gIGhlaWdodDogMTQ4cHg7XG59XG4uY29sbGFnZV9fYm94LS10aHJlZSAuZXZlbnRsaXN0X19pbWFnZUltZyxcbi5jb2xsYWdlX19ib3gtLXRocmVlIC5ldmVudGxpc3R1cGNvbWluZ19faW1hZ2VJbWcge1xuICBoZWlnaHQ6IDE0OHB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5jb2xsYWdlX19ib3gtLXRocmVlIHtcbiAgICBncmlkLWNvbHVtbjogMS9zcGFuIDE7XG4gICAgZ3JpZC1yb3c6IDUvc3BhbiAxO1xuICAgIG1hcmdpbi1pbmxpbmUtZW5kOiA0cHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAuY29sbGFnZV9fYm94LS10aHJlZSB7XG4gICAgZ3JpZC1jb2x1bW46IDMvc3BhbiAxO1xuICAgIGdyaWQtcm93OiAxL3NwYW4gMTtcbiAgICBtYXJnaW4taW5saW5lLWVuZDogMDtcbiAgfVxufVxuLmNvbGxhZ2VfX2JveC0tZm91ciB7XG4gIGhlaWdodDogMTQ4cHg7XG4gIGdyaWQtY29sdW1uOiAxO1xuICBncmlkLXJvdzogNTtcbn1cbi5jb2xsYWdlX19ib3gtLWZvdXIgLmNtcC10ZWFzZXIgLmNtcC1pbWFnZSxcbi5jb2xsYWdlX19ib3gtLWZvdXIgLmNtcC10ZWFzZXIgLmVtYmVkX195b3V0dWJlIHtcbiAgaGVpZ2h0OiAxNDhweDtcbn1cbi5jb2xsYWdlX19ib3gtLWZvdXIgLmV2ZW50bGlzdF9faW1hZ2VJbWcsXG4uY29sbGFnZV9fYm94LS1mb3VyIC5ldmVudGxpc3R1cGNvbWluZ19faW1hZ2VJbWcge1xuICBoZWlnaHQ6IDE0OHB4O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5jb2xsYWdlX19ib3gtLWZvdXIge1xuICAgIGdyaWQtY29sdW1uOiAxL3NwYW4gMTtcbiAgICBncmlkLXJvdzogNi9zcGFuIDE7XG4gICAgbWFyZ2luLWlubGluZS1lbmQ6IDRweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gIC5jb2xsYWdlX19ib3gtLWZvdXIge1xuICAgIGdyaWQtY29sdW1uOiAzL3NwYW4gMTtcbiAgICBncmlkLXJvdzogMi9zcGFuIDE7XG4gICAgbWFyZ2luLWlubGluZS1lbmQ6IDA7XG4gIH1cbn1cbi5jb2xsYWdlX19ib3gtLWZpdmUge1xuICBncmlkLXJvdzogMztcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuY29sbGFnZV9fYm94LS1maXZlIHtcbiAgICBncmlkLWNvbHVtbjogMS9zcGFuIDI7XG4gICAgZ3JpZC1yb3c6IDMvc3BhbiAyO1xuICAgIG1hcmdpbi1ibG9jazogMCA0cHg7XG4gICAgbWFyZ2luLWlubGluZTogMDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gIC5jb2xsYWdlX19ib3gtLWZpdmUge1xuICAgIG1hcmdpbi1ibG9jazogMDtcbiAgICBtYXJnaW4taW5saW5lOiAwIDRweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5jb2xsYWdlX19ib3gtLXNpeCB7XG4gICAgZ3JpZC1jb2x1bW46IDIvc3BhbiAxO1xuICAgIGdyaWQtcm93OiA1L3NwYW4gMjtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gIC5jb2xsYWdlX19ib3gtLXNpeCB7XG4gICAgZ3JpZC1jb2x1bW46IDMvc3BhbiAxO1xuICAgIGdyaWQtcm93OiAzL3NwYW4gMjtcbiAgfVxufVxuLmNvbGxhZ2VfX2JveC0tc2V2ZW4ge1xuICBkaXNwbGF5OiBub25lO1xufVxuQHN1cHBvcnRzICgtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IG5vbmUpIHtcbiAgQG1lZGlhIChtYXgtd2lkdGg6IDk1OXB4KSB7XG4gICAgLmNvbGxhZ2UgLmltZ19fYXNzZXQgW21vZGU9ZnVsbHNjcmVlbl0gLnM3c21hcnRjcm9wdmlkZW9wbGF5ZXIge1xuICAgICAgd2lkdGg6IDEwMHZ3ICFpbXBvcnRhbnQ7XG4gICAgICBoZWlnaHQ6IDEwMHZoICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIC5jb2xsYWdlIC5pbWdfX2Fzc2V0IFttb2RlPWZ1bGxzY3JlZW5dIC5zN2ljb25lZmZlY3Qge1xuICAgICAgaW5zZXQtYmxvY2stc3RhcnQ6IDUwJSAhaW1wb3J0YW50O1xuICAgICAgaW5zZXQtaW5saW5lLXN0YXJ0OiA1MCUgIWltcG9ydGFudDtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIC5jb2xsYWdlIC5pbWdfX2Fzc2V0IFttb2RlPWZ1bGxzY3JlZW5dIC5zN3ZpZGVvcGxheWVyIHtcbiAgICAgIHdpZHRoOiAxMDB2dyAhaW1wb3J0YW50O1xuICAgICAgaGVpZ2h0OiAxMDB2aCAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAuY29sbGFnZSAuaW1nX19hc3NldCBbbW9kZT1mdWxsc2NyZWVuXSAuczdjb250cm9sYmFyIHtcbiAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICBtYXgtd2lkdGg6IDEwMHZ3O1xuICAgIH1cbiAgfVxuICBAbWVkaWEgKG1heC13aWR0aDogOTU5cHgpIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSkge1xuICAgIC5jb2xsYWdlIC5pbWdfX2Fzc2V0X19zbWFydC1jcm9wLXZpZGVvIFttb2RlPWZ1bGxzY3JlZW5dIHZpZGVvLnM3dmlkZW9lbGVtZW50IHtcbiAgICAgIGluc2V0LWJsb2NrLXN0YXJ0OiA1MCUgIWltcG9ydGFudDtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSAhaW1wb3J0YW50O1xuICAgICAgbWF4LXdpZHRoOiAxMDB2dztcbiAgICB9XG4gICAgLmNvbGxhZ2UgLmltZ19fYXNzZXQgW21vZGU9ZnVsbHNjcmVlbl0ge1xuICAgICAgd2lkdGg6IDEwMHZ3ICFpbXBvcnRhbnQ7XG4gICAgICBwb3NpdGlvbjogZml4ZWQgIWltcG9ydGFudDtcbiAgICAgIGhlaWdodDogMTAwdmggIWltcG9ydGFudDtcbiAgICAgIGluc2V0LWJsb2NrLXN0YXJ0OiAwICFpbXBvcnRhbnQ7XG4gICAgICBpbnNldC1pbmxpbmUtc3RhcnQ6IDAgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cblxuLmNvbGxhZ2VfX2ZpdmVFbGVtZW50cyAuY29sbGFnZV9fYm94LS1vbmUge1xuICBoZWlnaHQ6IDYwNHB4O1xufVxuLmNvbGxhZ2VfX2ZpdmVFbGVtZW50cyAuY29sbGFnZV9fYm94LS1vbmUgLmNtcC10ZWFzZXIgLmNtcC1pbWFnZSxcbi5jb2xsYWdlX19maXZlRWxlbWVudHMgLmNvbGxhZ2VfX2JveC0tb25lIC5jbXAtdGVhc2VyIC5lbWJlZF9feW91dHViZSB7XG4gIGhlaWdodDogNjA0cHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmNvbGxhZ2VfX2ZpdmVFbGVtZW50cyAuY29sbGFnZV9fYm94LS1vbmUge1xuICAgIGdyaWQtY29sdW1uOiAxL3NwYW4gMTtcbiAgICBncmlkLXJvdzogMS9zcGFuIDQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAuY29sbGFnZV9fZml2ZUVsZW1lbnRzIC5jb2xsYWdlX19ib3gtLW9uZSB7XG4gICAgbWFyZ2luLWJsb2NrLWVuZDogMDtcbiAgfVxufVxuLmNvbGxhZ2VfX2ZpdmVFbGVtZW50cyAuY29sbGFnZV9fYm94LS10d28ge1xuICBoZWlnaHQ6IDYwNHB4O1xufVxuLmNvbGxhZ2VfX2ZpdmVFbGVtZW50cyAuY29sbGFnZV9fYm94LS10d28gLmNtcC10ZWFzZXIgLmNtcC1pbWFnZSxcbi5jb2xsYWdlX19maXZlRWxlbWVudHMgLmNvbGxhZ2VfX2JveC0tdHdvIC5jbXAtdGVhc2VyIC5lbWJlZF9feW91dHViZSB7XG4gIGhlaWdodDogNjA0cHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmNvbGxhZ2VfX2ZpdmVFbGVtZW50cyAuY29sbGFnZV9fYm94LS10d28ge1xuICAgIGdyaWQtY29sdW1uOiAyL3NwYW4gMTtcbiAgICBncmlkLXJvdzogMS9zcGFuIDQ7XG4gIH1cbn1cbi5jb2xsYWdlX19maXZlRWxlbWVudHMgLmNvbGxhZ2VfX2JveC0tZml2ZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuY29sbGFnZV9fc2V2ZW5FbGVtZW50cyAuY29sbGFnZV9fY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogNTAlIDUwJTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gIC5jb2xsYWdlX19zZXZlbkVsZW1lbnRzIC5jb2xsYWdlX19jb250YWluZXIge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMjQlIDI0JSAxOCUgMTclIDE3JTtcbiAgfVxufVxuLmNvbGxhZ2VfX3NldmVuRWxlbWVudHMgLmNvbGxhZ2VfX2JveCB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4uY29sbGFnZV9fc2V2ZW5FbGVtZW50cyAuY29sbGFnZV9fYm94LS1vbmUsIC5jb2xsYWdlX19zZXZlbkVsZW1lbnRzIC5jb2xsYWdlX19ib3gtLXR3bywgLmNvbGxhZ2VfX3NldmVuRWxlbWVudHMgLmNvbGxhZ2VfX2JveC0tdGhyZWUsIC5jb2xsYWdlX19zZXZlbkVsZW1lbnRzIC5jb2xsYWdlX19ib3gtLWZvdXIsIC5jb2xsYWdlX19zZXZlbkVsZW1lbnRzIC5jb2xsYWdlX19ib3gtLWZpdmUsIC5jb2xsYWdlX19zZXZlbkVsZW1lbnRzIC5jb2xsYWdlX19ib3gtLXNpeCwgLmNvbGxhZ2VfX3NldmVuRWxlbWVudHMgLmNvbGxhZ2VfX2JveC0tc2V2ZW4ge1xuICBoZWlnaHQ6IDIxMHB4O1xufVxuLmNvbGxhZ2VfX3NldmVuRWxlbWVudHMgLmNvbGxhZ2VfX2JveC0tb25lIC5jbXAtdGVhc2VyIC5jbXAtaW1hZ2UsXG4uY29sbGFnZV9fc2V2ZW5FbGVtZW50cyAuY29sbGFnZV9fYm94LS1vbmUgLmNtcC10ZWFzZXIgLmVtYmVkX195b3V0dWJlLCAuY29sbGFnZV9fc2V2ZW5FbGVtZW50cyAuY29sbGFnZV9fYm94LS10d28gLmNtcC10ZWFzZXIgLmNtcC1pbWFnZSxcbi5jb2xsYWdlX19zZXZlbkVsZW1lbnRzIC5jb2xsYWdlX19ib3gtLXR3byAuY21wLXRlYXNlciAuZW1iZWRfX3lvdXR1YmUsIC5jb2xsYWdlX19zZXZlbkVsZW1lbnRzIC5jb2xsYWdlX19ib3gtLXRocmVlIC5jbXAtdGVhc2VyIC5jbXAtaW1hZ2UsXG4uY29sbGFnZV9fc2V2ZW5FbGVtZW50cyAuY29sbGFnZV9fYm94LS10aHJlZSAuY21wLXRlYXNlciAuZW1iZWRfX3lvdXR1YmUsIC5jb2xsYWdlX19zZXZlbkVsZW1lbnRzIC5jb2xsYWdlX19ib3gtLWZvdXIgLmNtcC10ZWFzZXIgLmNtcC1pbWFnZSxcbi5jb2xsYWdlX19zZXZlbkVsZW1lbnRzIC5jb2xsYWdlX19ib3gtLWZvdXIgLmNtcC10ZWFzZXIgLmVtYmVkX195b3V0dWJlLCAuY29sbGFnZV9fc2V2ZW5FbGVtZW50cyAuY29sbGFnZV9fYm94LS1maXZlIC5jbXAtdGVhc2VyIC5jbXAtaW1hZ2UsXG4uY29sbGFnZV9fc2V2ZW5FbGVtZW50cyAuY29sbGFnZV9fYm94LS1maXZlIC5jbXAtdGVhc2VyIC5lbWJlZF9feW91dHViZSwgLmNvbGxhZ2VfX3NldmVuRWxlbWVudHMgLmNvbGxhZ2VfX2JveC0tc2l4IC5jbXAtdGVhc2VyIC5jbXAtaW1hZ2UsXG4uY29sbGFnZV9fc2V2ZW5FbGVtZW50cyAuY29sbGFnZV9fYm94LS1zaXggLmNtcC10ZWFzZXIgLmVtYmVkX195b3V0dWJlLCAuY29sbGFnZV9fc2V2ZW5FbGVtZW50cyAuY29sbGFnZV9fYm94LS1zZXZlbiAuY21wLXRlYXNlciAuY21wLWltYWdlLFxuLmNvbGxhZ2VfX3NldmVuRWxlbWVudHMgLmNvbGxhZ2VfX2JveC0tc2V2ZW4gLmNtcC10ZWFzZXIgLmVtYmVkX195b3V0dWJlIHtcbiAgaGVpZ2h0OiAyMTBweDtcbn1cbi5jb2xsYWdlX19zZXZlbkVsZW1lbnRzIC5jb2xsYWdlX19ib3gtLW9uZSAuZXZlbnRsaXN0X19pbWFnZUltZyxcbi5jb2xsYWdlX19zZXZlbkVsZW1lbnRzIC5jb2xsYWdlX19ib3gtLW9uZSAuZXZlbnRsaXN0dXBjb21pbmdfX2ltYWdlSW1nLCAuY29sbGFnZV9fc2V2ZW5FbGVtZW50cyAuY29sbGFnZV9fYm94LS10d28gLmV2ZW50bGlzdF9faW1hZ2VJbWcsXG4uY29sbGFnZV9fc2V2ZW5FbGVtZW50cyAuY29sbGFnZV9fYm94LS10d28gLmV2ZW50bGlzdHVwY29taW5nX19pbWFnZUltZywgLmNvbGxhZ2VfX3NldmVuRWxlbWVudHMgLmNvbGxhZ2VfX2JveC0tdGhyZWUgLmV2ZW50bGlzdF9faW1hZ2VJbWcsXG4uY29sbGFnZV9fc2V2ZW5FbGVtZW50cyAuY29sbGFnZV9fYm94LS10aHJlZSAuZXZlbnRsaXN0dXBjb21pbmdfX2ltYWdlSW1nLCAuY29sbGFnZV9fc2V2ZW5FbGVtZW50cyAuY29sbGFnZV9fYm94LS1mb3VyIC5ldmVudGxpc3RfX2ltYWdlSW1nLFxuLmNvbGxhZ2VfX3NldmVuRWxlbWVudHMgLmNvbGxhZ2VfX2JveC0tZm91ciAuZXZlbnRsaXN0dXBjb21pbmdfX2ltYWdlSW1nLCAuY29sbGFnZV9fc2V2ZW5FbGVtZW50cyAuY29sbGFnZV9fYm94LS1maXZlIC5ldmVudGxpc3RfX2ltYWdlSW1nLFxuLmNvbGxhZ2VfX3NldmVuRWxlbWVudHMgLmNvbGxhZ2VfX2JveC0tZml2ZSAuZXZlbnRsaXN0dXBjb21pbmdfX2ltYWdlSW1nLCAuY29sbGFnZV9fc2V2ZW5FbGVtZW50cyAuY29sbGFnZV9fYm94LS1zaXggLmV2ZW50bGlzdF9faW1hZ2VJbWcsXG4uY29sbGFnZV9fc2V2ZW5FbGVtZW50cyAuY29sbGFnZV9fYm94LS1zaXggLmV2ZW50bGlzdHVwY29taW5nX19pbWFnZUltZywgLmNvbGxhZ2VfX3NldmVuRWxlbWVudHMgLmNvbGxhZ2VfX2JveC0tc2V2ZW4gLmV2ZW50bGlzdF9faW1hZ2VJbWcsXG4uY29sbGFnZV9fc2V2ZW5FbGVtZW50cyAuY29sbGFnZV9fYm94LS1zZXZlbiAuZXZlbnRsaXN0dXBjb21pbmdfX2ltYWdlSW1nIHtcbiAgaGVpZ2h0OiAyMTBweDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuY29sbGFnZV9fc2V2ZW5FbGVtZW50cyAuY29sbGFnZV9fYm94LS10d28sIC5jb2xsYWdlX19zZXZlbkVsZW1lbnRzIC5jb2xsYWdlX19ib3gtLXRocmVlLCAuY29sbGFnZV9fc2V2ZW5FbGVtZW50cyAuY29sbGFnZV9fYm94LS1mb3VyLCAuY29sbGFnZV9fc2V2ZW5FbGVtZW50cyAuY29sbGFnZV9fYm94LS1maXZlLCAuY29sbGFnZV9fc2V2ZW5FbGVtZW50cyAuY29sbGFnZV9fYm94LS1zaXgsIC5jb2xsYWdlX19zZXZlbkVsZW1lbnRzIC5jb2xsYWdlX19ib3gtLXNldmVuIHtcbiAgICBoZWlnaHQ6IDI0MHB4O1xuICB9XG4gIC5jb2xsYWdlX19zZXZlbkVsZW1lbnRzIC5jb2xsYWdlX19ib3gtLXR3byAuY21wLXRlYXNlciAuY21wLWltYWdlLFxuICAuY29sbGFnZV9fc2V2ZW5FbGVtZW50cyAuY29sbGFnZV9fYm94LS10d28gLmNtcC10ZWFzZXIgLmVtYmVkX195b3V0dWJlLCAuY29sbGFnZV9fc2V2ZW5FbGVtZW50cyAuY29sbGFnZV9fYm94LS10aHJlZSAuY21wLXRlYXNlciAuY21wLWltYWdlLFxuICAuY29sbGFnZV9fc2V2ZW5FbGVtZW50cyAuY29sbGFnZV9fYm94LS10aHJlZSAuY21wLXRlYXNlciAuZW1iZWRfX3lvdXR1YmUsIC5jb2xsYWdlX19zZXZlbkVsZW1lbnRzIC5jb2xsYWdlX19ib3gtLWZvdXIgLmNtcC10ZWFzZXIgLmNtcC1pbWFnZSxcbiAgLmNvbGxhZ2VfX3NldmVuRWxlbWVudHMgLmNvbGxhZ2VfX2JveC0tZm91ciAuY21wLXRlYXNlciAuZW1iZWRfX3lvdXR1YmUsIC5jb2xsYWdlX19zZXZlbkVsZW1lbnRzIC5jb2xsYWdlX19ib3gtLWZpdmUgLmNtcC10ZWFzZXIgLmNtcC1pbWFnZSxcbiAgLmNvbGxhZ2VfX3NldmVuRWxlbWVudHMgLmNvbGxhZ2VfX2JveC0tZml2ZSAuY21wLXRlYXNlciAuZW1iZWRfX3lvdXR1YmUsIC5jb2xsYWdlX19zZXZlbkVsZW1lbnRzIC5jb2xsYWdlX19ib3gtLXNpeCAuY21wLXRlYXNlciAuY21wLWltYWdlLFxuICAuY29sbGFnZV9fc2V2ZW5FbGVtZW50cyAuY29sbGFnZV9fYm94LS1zaXggLmNtcC10ZWFzZXIgLmVtYmVkX195b3V0dWJlLCAuY29sbGFnZV9fc2V2ZW5FbGVtZW50cyAuY29sbGFnZV9fYm94LS1zZXZlbiAuY21wLXRlYXNlciAuY21wLWltYWdlLFxuICAuY29sbGFnZV9fc2V2ZW5FbGVtZW50cyAuY29sbGFnZV9fYm94LS1zZXZlbiAuY21wLXRlYXNlciAuZW1iZWRfX3lvdXR1YmUge1xuICAgIGhlaWdodDogMjQwcHg7XG4gIH1cbiAgLmNvbGxhZ2VfX3NldmVuRWxlbWVudHMgLmNvbGxhZ2VfX2JveC0tdHdvIC5ldmVudGxpc3RfX2ltYWdlSW1nLFxuICAuY29sbGFnZV9fc2V2ZW5FbGVtZW50cyAuY29sbGFnZV9fYm94LS10d28gLmV2ZW50bGlzdHVwY29taW5nX19pbWFnZUltZywgLmNvbGxhZ2VfX3NldmVuRWxlbWVudHMgLmNvbGxhZ2VfX2JveC0tdGhyZWUgLmV2ZW50bGlzdF9faW1hZ2VJbWcsXG4gIC5jb2xsYWdlX19zZXZlbkVsZW1lbnRzIC5jb2xsYWdlX19ib3gtLXRocmVlIC5ldmVudGxpc3R1cGNvbWluZ19faW1hZ2VJbWcsIC5jb2xsYWdlX19zZXZlbkVsZW1lbnRzIC5jb2xsYWdlX19ib3gtLWZvdXIgLmV2ZW50bGlzdF9faW1hZ2VJbWcsXG4gIC5jb2xsYWdlX19zZXZlbkVsZW1lbnRzIC5jb2xsYWdlX19ib3gtLWZvdXIgLmV2ZW50bGlzdHVwY29taW5nX19pbWFnZUltZywgLmNvbGxhZ2VfX3NldmVuRWxlbWVudHMgLmNvbGxhZ2VfX2JveC0tZml2ZSAuZXZlbnRsaXN0X19pbWFnZUltZyxcbiAgLmNvbGxhZ2VfX3NldmVuRWxlbWVudHMgLmNvbGxhZ2VfX2JveC0tZml2ZSAuZXZlbnRsaXN0dXBjb21pbmdfX2ltYWdlSW1nLCAuY29sbGFnZV9fc2V2ZW5FbGVtZW50cyAuY29sbGFnZV9fYm94LS1zaXggLmV2ZW50bGlzdF9faW1hZ2VJbWcsXG4gIC5jb2xsYWdlX19zZXZlbkVsZW1lbnRzIC5jb2xsYWdlX19ib3gtLXNpeCAuZXZlbnRsaXN0dXBjb21pbmdfX2ltYWdlSW1nLCAuY29sbGFnZV9fc2V2ZW5FbGVtZW50cyAuY29sbGFnZV9fYm94LS1zZXZlbiAuZXZlbnRsaXN0X19pbWFnZUltZyxcbiAgLmNvbGxhZ2VfX3NldmVuRWxlbWVudHMgLmNvbGxhZ2VfX2JveC0tc2V2ZW4gLmV2ZW50bGlzdHVwY29taW5nX19pbWFnZUltZyB7XG4gICAgaGVpZ2h0OiAyNDBweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5jb2xsYWdlX19zZXZlbkVsZW1lbnRzIC5jb2xsYWdlX19ib3gtLW9uZSB7XG4gICAgaGVpZ2h0OiAzNjBweDtcbiAgfVxuICAuY29sbGFnZV9fc2V2ZW5FbGVtZW50cyAuY29sbGFnZV9fYm94LS1vbmUgLmNtcC10ZWFzZXIgLmNtcC1pbWFnZSxcbiAgLmNvbGxhZ2VfX3NldmVuRWxlbWVudHMgLmNvbGxhZ2VfX2JveC0tb25lIC5jbXAtdGVhc2VyIC5lbWJlZF9feW91dHViZSB7XG4gICAgaGVpZ2h0OiAzNjBweDtcbiAgfVxuICAuY29sbGFnZV9fc2V2ZW5FbGVtZW50cyAuY29sbGFnZV9fYm94LS1vbmUgLmV2ZW50bGlzdF9faW1hZ2VJbWcsXG4gIC5jb2xsYWdlX19zZXZlbkVsZW1lbnRzIC5jb2xsYWdlX19ib3gtLW9uZSAuZXZlbnRsaXN0dXBjb21pbmdfX2ltYWdlSW1nIHtcbiAgICBoZWlnaHQ6IDM2MHB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgLmNvbGxhZ2VfX3NldmVuRWxlbWVudHMgLmNvbGxhZ2VfX2JveC0tb25lLCAuY29sbGFnZV9fc2V2ZW5FbGVtZW50cyAuY29sbGFnZV9fYm94LS10d28sIC5jb2xsYWdlX19zZXZlbkVsZW1lbnRzIC5jb2xsYWdlX19ib3gtLXNldmVuIHtcbiAgICBoZWlnaHQ6IDQwMHB4O1xuICB9XG4gIC5jb2xsYWdlX19zZXZlbkVsZW1lbnRzIC5jb2xsYWdlX19ib3gtLW9uZSAuY21wLXRlYXNlciAuY21wLWltYWdlLFxuICAuY29sbGFnZV9fc2V2ZW5FbGVtZW50cyAuY29sbGFnZV9fYm94LS1vbmUgLmNtcC10ZWFzZXIgLmVtYmVkX195b3V0dWJlLCAuY29sbGFnZV9fc2V2ZW5FbGVtZW50cyAuY29sbGFnZV9fYm94LS10d28gLmNtcC10ZWFzZXIgLmNtcC1pbWFnZSxcbiAgLmNvbGxhZ2VfX3NldmVuRWxlbWVudHMgLmNvbGxhZ2VfX2JveC0tdHdvIC5jbXAtdGVhc2VyIC5lbWJlZF9feW91dHViZSwgLmNvbGxhZ2VfX3NldmVuRWxlbWVudHMgLmNvbGxhZ2VfX2JveC0tc2V2ZW4gLmNtcC10ZWFzZXIgLmNtcC1pbWFnZSxcbiAgLmNvbGxhZ2VfX3NldmVuRWxlbWVudHMgLmNvbGxhZ2VfX2JveC0tc2V2ZW4gLmNtcC10ZWFzZXIgLmVtYmVkX195b3V0dWJlIHtcbiAgICBoZWlnaHQ6IDQwMHB4O1xuICB9XG4gIC5jb2xsYWdlX19zZXZlbkVsZW1lbnRzIC5jb2xsYWdlX19ib3gtLW9uZSAuZXZlbnRsaXN0X19pbWFnZUltZyxcbiAgLmNvbGxhZ2VfX3NldmVuRWxlbWVudHMgLmNvbGxhZ2VfX2JveC0tb25lIC5ldmVudGxpc3R1cGNvbWluZ19faW1hZ2VJbWcsIC5jb2xsYWdlX19zZXZlbkVsZW1lbnRzIC5jb2xsYWdlX19ib3gtLXR3byAuZXZlbnRsaXN0X19pbWFnZUltZyxcbiAgLmNvbGxhZ2VfX3NldmVuRWxlbWVudHMgLmNvbGxhZ2VfX2JveC0tdHdvIC5ldmVudGxpc3R1cGNvbWluZ19faW1hZ2VJbWcsIC5jb2xsYWdlX19zZXZlbkVsZW1lbnRzIC5jb2xsYWdlX19ib3gtLXNldmVuIC5ldmVudGxpc3RfX2ltYWdlSW1nLFxuICAuY29sbGFnZV9fc2V2ZW5FbGVtZW50cyAuY29sbGFnZV9fYm94LS1zZXZlbiAuZXZlbnRsaXN0dXBjb21pbmdfX2ltYWdlSW1nIHtcbiAgICBoZWlnaHQ6IDQwMHB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgLmNvbGxhZ2VfX3NldmVuRWxlbWVudHMgLmNvbGxhZ2VfX2JveC0tdGhyZWUsIC5jb2xsYWdlX19zZXZlbkVsZW1lbnRzIC5jb2xsYWdlX19ib3gtLWZvdXIsIC5jb2xsYWdlX19zZXZlbkVsZW1lbnRzIC5jb2xsYWdlX19ib3gtLWZpdmUsIC5jb2xsYWdlX19zZXZlbkVsZW1lbnRzIC5jb2xsYWdlX19ib3gtLXNpeCB7XG4gICAgaGVpZ2h0OiAxOTcuNXB4O1xuICB9XG4gIC5jb2xsYWdlX19zZXZlbkVsZW1lbnRzIC5jb2xsYWdlX19ib3gtLXRocmVlIC5jbXAtdGVhc2VyIC5jbXAtaW1hZ2UsXG4gIC5jb2xsYWdlX19zZXZlbkVsZW1lbnRzIC5jb2xsYWdlX19ib3gtLXRocmVlIC5jbXAtdGVhc2VyIC5lbWJlZF9feW91dHViZSwgLmNvbGxhZ2VfX3NldmVuRWxlbWVudHMgLmNvbGxhZ2VfX2JveC0tZm91ciAuY21wLXRlYXNlciAuY21wLWltYWdlLFxuICAuY29sbGFnZV9fc2V2ZW5FbGVtZW50cyAuY29sbGFnZV9fYm94LS1mb3VyIC5jbXAtdGVhc2VyIC5lbWJlZF9feW91dHViZSwgLmNvbGxhZ2VfX3NldmVuRWxlbWVudHMgLmNvbGxhZ2VfX2JveC0tZml2ZSAuY21wLXRlYXNlciAuY21wLWltYWdlLFxuICAuY29sbGFnZV9fc2V2ZW5FbGVtZW50cyAuY29sbGFnZV9fYm94LS1maXZlIC5jbXAtdGVhc2VyIC5lbWJlZF9feW91dHViZSwgLmNvbGxhZ2VfX3NldmVuRWxlbWVudHMgLmNvbGxhZ2VfX2JveC0tc2l4IC5jbXAtdGVhc2VyIC5jbXAtaW1hZ2UsXG4gIC5jb2xsYWdlX19zZXZlbkVsZW1lbnRzIC5jb2xsYWdlX19ib3gtLXNpeCAuY21wLXRlYXNlciAuZW1iZWRfX3lvdXR1YmUge1xuICAgIGhlaWdodDogMTk3LjVweDtcbiAgfVxuICAuY29sbGFnZV9fc2V2ZW5FbGVtZW50cyAuY29sbGFnZV9fYm94LS10aHJlZSAuZXZlbnRsaXN0X19pbWFnZUltZyxcbiAgLmNvbGxhZ2VfX3NldmVuRWxlbWVudHMgLmNvbGxhZ2VfX2JveC0tdGhyZWUgLmV2ZW50bGlzdHVwY29taW5nX19pbWFnZUltZywgLmNvbGxhZ2VfX3NldmVuRWxlbWVudHMgLmNvbGxhZ2VfX2JveC0tZm91ciAuZXZlbnRsaXN0X19pbWFnZUltZyxcbiAgLmNvbGxhZ2VfX3NldmVuRWxlbWVudHMgLmNvbGxhZ2VfX2JveC0tZm91ciAuZXZlbnRsaXN0dXBjb21pbmdfX2ltYWdlSW1nLCAuY29sbGFnZV9fc2V2ZW5FbGVtZW50cyAuY29sbGFnZV9fYm94LS1maXZlIC5ldmVudGxpc3RfX2ltYWdlSW1nLFxuICAuY29sbGFnZV9fc2V2ZW5FbGVtZW50cyAuY29sbGFnZV9fYm94LS1maXZlIC5ldmVudGxpc3R1cGNvbWluZ19faW1hZ2VJbWcsIC5jb2xsYWdlX19zZXZlbkVsZW1lbnRzIC5jb2xsYWdlX19ib3gtLXNpeCAuZXZlbnRsaXN0X19pbWFnZUltZyxcbiAgLmNvbGxhZ2VfX3NldmVuRWxlbWVudHMgLmNvbGxhZ2VfX2JveC0tc2l4IC5ldmVudGxpc3R1cGNvbWluZ19faW1hZ2VJbWcge1xuICAgIGhlaWdodDogMTk3LjVweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5jb2xsYWdlX19zZXZlbkVsZW1lbnRzIC5jb2xsYWdlX19ib3gtLW9uZSB7XG4gICAgZ3JpZC1jb2x1bW46IDEvc3BhbiAyO1xuICAgIGdyaWQtcm93OiAxL3NwYW4gMTtcbiAgICBtYXJnaW46IDA7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAuY29sbGFnZV9fc2V2ZW5FbGVtZW50cyAuY29sbGFnZV9fYm94LS1vbmUge1xuICAgIGdyaWQtY29sdW1uOiAxL3NwYW4gMztcbiAgICBncmlkLXJvdzogMS9zcGFuIDI7XG4gICAgbWFyZ2luLWJsb2NrOiAwO1xuICAgIG1hcmdpbi1pbmxpbmU6IDAgNXB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmNvbGxhZ2VfX3NldmVuRWxlbWVudHMgLmNvbGxhZ2VfX2JveC0tdHdvIHtcbiAgICBncmlkLWNvbHVtbjogMS9zcGFuIDE7XG4gICAgZ3JpZC1yb3c6IDIvc3BhbiAxO1xuICAgIG1hcmdpbi1ibG9jazogNXB4IDA7XG4gICAgbWFyZ2luLWlubGluZTogMCA1cHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAuY29sbGFnZV9fc2V2ZW5FbGVtZW50cyAuY29sbGFnZV9fYm94LS10d28ge1xuICAgIGdyaWQtY29sdW1uOiA0L3NwYW4gMjtcbiAgICBncmlkLXJvdzogMS9zcGFuIDI7XG4gICAgbWFyZ2luOiAwO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmNvbGxhZ2VfX3NldmVuRWxlbWVudHMgLmNvbGxhZ2VfX2JveC0tdGhyZWUge1xuICAgIGdyaWQtY29sdW1uOiAxL3NwYW4gMTtcbiAgICBncmlkLXJvdzogMy9zcGFuIDE7XG4gICAgbWFyZ2luLWJsb2NrOiA1cHggMDtcbiAgICBtYXJnaW4taW5saW5lOiAwIDVweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gIC5jb2xsYWdlX19zZXZlbkVsZW1lbnRzIC5jb2xsYWdlX19ib3gtLXRocmVlIHtcbiAgICBtYXJnaW4taW5saW5lLWVuZDogNXB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmNvbGxhZ2VfX3NldmVuRWxlbWVudHMgLmNvbGxhZ2VfX2JveC0tZm91ciB7XG4gICAgZ3JpZC1jb2x1bW46IDIvc3BhbiAxO1xuICAgIGdyaWQtcm93OiAzL3NwYW4gMTtcbiAgICBtYXJnaW4tYmxvY2s6IDVweCAwO1xuICAgIG1hcmdpbi1pbmxpbmU6IDA7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAuY29sbGFnZV9fc2V2ZW5FbGVtZW50cyAuY29sbGFnZV9fYm94LS1mb3VyIHtcbiAgICBtYXJnaW4taW5saW5lLWVuZDogNXB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmNvbGxhZ2VfX3NldmVuRWxlbWVudHMgLmNvbGxhZ2VfX2JveC0tZml2ZSB7XG4gICAgZ3JpZC1jb2x1bW46IDEvc3BhbiAxO1xuICAgIGdyaWQtcm93OiA0L3NwYW4gMTtcbiAgICBtYXJnaW4tYmxvY2s6IDVweCAwO1xuICAgIG1hcmdpbi1pbmxpbmU6IDAgNXB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmNvbGxhZ2VfX3NldmVuRWxlbWVudHMgLmNvbGxhZ2VfX2JveC0tc2l4IHtcbiAgICBncmlkLWNvbHVtbjogMi9zcGFuIDE7XG4gICAgZ3JpZC1yb3c6IDQvc3BhbiAxO1xuICAgIG1hcmdpbi1ibG9jazogNXB4IDA7XG4gICAgbWFyZ2luLWlubGluZTogMDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gIC5jb2xsYWdlX19zZXZlbkVsZW1lbnRzIC5jb2xsYWdlX19ib3gtLXNpeCB7XG4gICAgbWFyZ2luLWJsb2NrOiA1cHggMDtcbiAgICBtYXJnaW4taW5saW5lOiAwIDVweDtcbiAgfVxufVxuLmNvbGxhZ2VfX3NldmVuRWxlbWVudHMgLmNvbGxhZ2VfX2JveC0tc2V2ZW4ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuY29sbGFnZV9fc2V2ZW5FbGVtZW50cyAuY29sbGFnZV9fYm94LS1zZXZlbiB7XG4gICAgZ3JpZC1jb2x1bW46IDIvc3BhbiAxO1xuICAgIGdyaWQtcm93OiAyL3NwYW4gMTtcbiAgICBtYXJnaW4tYmxvY2s6IDVweCAwO1xuICAgIG1hcmdpbi1pbmxpbmU6IDA7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAuY29sbGFnZV9fc2V2ZW5FbGVtZW50cyAuY29sbGFnZV9fYm94LS1zZXZlbiB7XG4gICAgZ3JpZC1jb2x1bW46IDMvc3BhbiAzO1xuICAgIGdyaWQtcm93OiAzL3NwYW4gMjtcbiAgfVxufSIsbnVsbCxudWxsXX0= */