/*
Base mixins and Functions ONLY in here
No CSS output!
Remember these tools/utilities will be made availabe to all your components,
any CSS you output in here will add massive bloat to your project.
If you need common css, add to main.scss
========================================================================== */
/* ============================================================================================
	Vertical Spacing
============================================================================================= */
/* ============================================================================================
	Breakpoints
============================================================================================= */
/* ============================================================================================
	Colours
============================================================================================= */
/* ============================================================================================
	Z-Index
============================================================================================= */
/* =========================================================================
  cubic-bezier curve variables
========================================================================== */
/* =========================================================================
  Font variables
========================================================================== */
/* =========================================================================
  Grid Variables (size vars must match the breakpoint vars)
========================================================================== */
@media (min-width: 320px) {
  body::after {
    content: '{"xsmall":{"value": "320px", "active": true}, "small":{"value": "768px", "active": false}, "medium":{"value": "1024px", "active": false}, "xmedium":{"value": "1200px", "active": false}, "large":{"value": "1440px", "active": false}, "xlarge":{"value": "1920px", "active": false}, "xxlarge":{"value": "2000px", "active": false}}';
    display: block;
    height: 0;
    overflow: hidden;
    width: 0; } }

@media (min-width: 768px) {
  body::after {
    content: '{"xsmall":{"value": "320px", "active": true}, "small":{"value": "768px", "active": true}, "medium":{"value": "1024px", "active": false}, "xmedium":{"value": "1200px", "active": false}, "large":{"value": "1440px", "active": false}, "xlarge":{"value": "1920px", "active": false}, "xxlarge":{"value": "2000px", "active": false}}';
    display: block;
    height: 0;
    overflow: hidden;
    width: 0; } }

@media (min-width: 1024px) {
  body::after {
    content: '{"xsmall":{"value": "320px", "active": true}, "small":{"value": "768px", "active": true}, "medium":{"value": "1024px", "active": true}, "xmedium":{"value": "1200px", "active": false}, "large":{"value": "1440px", "active": false}, "xlarge":{"value": "1920px", "active": false}, "xxlarge":{"value": "2000px", "active": false}}';
    display: block;
    height: 0;
    overflow: hidden;
    width: 0; } }

@media (min-width: 1200px) {
  body::after {
    content: '{"xsmall":{"value": "320px", "active": true}, "small":{"value": "768px", "active": true}, "medium":{"value": "1024px", "active": true}, "xmedium":{"value": "1200px", "active": true}, "large":{"value": "1440px", "active": false}, "xlarge":{"value": "1920px", "active": false}, "xxlarge":{"value": "2000px", "active": false}}';
    display: block;
    height: 0;
    overflow: hidden;
    width: 0; } }

@media (min-width: 1440px) {
  body::after {
    content: '{"xsmall":{"value": "320px", "active": true}, "small":{"value": "768px", "active": true}, "medium":{"value": "1024px", "active": true}, "xmedium":{"value": "1200px", "active": true}, "large":{"value": "1440px", "active": true}, "xlarge":{"value": "1920px", "active": false}, "xxlarge":{"value": "2000px", "active": false}}';
    display: block;
    height: 0;
    overflow: hidden;
    width: 0; } }

@media (min-width: 1920px) {
  body::after {
    content: '{"xsmall":{"value": "320px", "active": true}, "small":{"value": "768px", "active": true}, "medium":{"value": "1024px", "active": true}, "xmedium":{"value": "1200px", "active": true}, "large":{"value": "1440px", "active": true}, "xlarge":{"value": "1920px", "active": true}, "xxlarge":{"value": "2000px", "active": false}}';
    display: block;
    height: 0;
    overflow: hidden;
    width: 0; } }

@media (min-width: 2000px) {
  body::after {
    content: '{"xsmall":{"value": "320px", "active": true}, "small":{"value": "768px", "active": true}, "medium":{"value": "1024px", "active": true}, "xmedium":{"value": "1200px", "active": true}, "large":{"value": "1440px", "active": true}, "xlarge":{"value": "1920px", "active": true}, "xxlarge":{"value": "2000px", "active": true}}';
    display: block;
    height: 0;
    overflow: hidden;
    width: 0; } }

/* ==========================================================================
	Site Transition
	Apply transitions consistently across the project
========================================================================== */
/* ==========================================================================
	Variable Spacing (v-spacing)
	Use with values set in _config.scss
========================================================================== */
/* ==========================================================================
	Tracking
	Convert XD, illustrator, indesign and
	photoshop tracking into letter spacing.
========================================================================== */
/* ============================================================================================================
	Line Height Crop (lhCrop)
	Removes the additional line height from top of text - https://codyhouse.co/blog/post/line-height-crop
	Use to make sure the top of your text lines up with other elements along side it.
	Enter a unitless line height (same as the type line hight)
============================================================================================================= */
/* ===========================================================================================
	Unitless Line Height
	Converts a pixel, percentage, rem or em value to a unitless value based on a given font size.
	Ideal for working out unitless line heights.
	Stolen from Foundation https://get.foundation/sites/docs/sass-functions.html#unitless-calc

	@param {Number} $value - Value to convert to a unitless line height
	@param {Number} $base - The font size to use to work out the line height - defaults to $global-font-size
	@return {Number} - Unitless number
=========================================================================================== */
/* ==================================================================================
	Removes the unit (e.g. px, em, rem) from a value, returning the number only.

	@param {Number} $num - Number to strip unit from.
	@returns {Number} The same number, sans unit.
=================================================================================== */
/* ==================================================================================
	used to create resonsive type

	@param {Number} $min-font-size - Number of the miniumum font size with units.
	@param {Number} $max-font-size - Number of the maximum font size with units.
	@param {Number} $line-height - Number of the lineheight with units.
	@returns font size using the v-space mixin and a unitless lineheight.
=================================================================================== */
/* ==================================================================================
	used to retreive varbailes from the $six-ccs-variables array

	$type = type is the name you set for your nested varaible array
	$size = is the nested variable you wish to get.
	@returns the value of teh specified variable
=================================================================================== */
/* ==================================================================================
	loops through varbailes from the $six-ccs-variables array & out put css var

	$value = used to get the correct value
=================================================================================== */
/* ==================================================================================
	used to retreive css var based on the breakpoint passed

	$breakpoint = used to specify media query
=================================================================================== */
/* ==================================================================================
	sibling fade: fade out siblings around a hovered item
=================================================================================== */
/*
Fix for 100vh elements being covered by iOS Safari toolbar
This is a bit hacky. More info: https://allthingssmitty.com/2020/05/11/css-fix-for-100vh-in-mobile-webkit/
The height doesn't adjust when the address bar is hidden.
*/
/* ==========================================================================================================
	Character Style Mixins
=========================================================================================================== */
.u-uppercase {
  text-transform: uppercase; }

/* ==============================================================================================
	WYSIWYG Mixin and class
	Apply to content that is using a WYSIWYG editor field.
	Redefines all the typographic HTML elements that TinyMce outputs. (h1,img,p,ul etc.)
=============================================================================================== */
/*
Form Mixins
Create mixins first so they can be reused on Woo forms or other places where you can't add your own classes
========================================================================== */
/* ==========================================================================================================
	Grid Mixins
=========================================================================================================== */
/* ==========================================================================
	Media Item Caption Component
========================================================================== */
.c-OneUpImage {
  width: 100%;
  position: relative;
  padding-bottom: calc(0.04464 * 100vw + 50.71429px); }
  @supports not (display: grid) {
    .c-OneUpImage {
      display: block;
      width: 100%;
      padding-left: var(--six-margin);
      padding-right: var(--six-margin); } }
  @supports (display: grid) {
    .c-OneUpImage {
      display: -ms-grid;
      display: grid;
      grid-template-columns: repeat(var(--six-cols), 1fr);
      column-gap: var(--six-gutter);
      box-sizing: border-box;
      padding-left: var(--six-margin);
      padding-right: var(--six-margin); } }
  @media (min-width: 1921px) {
    .c-OneUpImage {
      padding-bottom: 140px; } }
  @media (max-width: 499px) {
    .c-OneUpImage {
      padding-bottom: 65px; } }
  @media (max-width: 1023px) {
    .c-OneUpImage {
      padding-bottom: 65px; } }
  .c-OneUpImage .c-Video,
  .c-OneUpImage .c-Video video {
    width: 100%; }

.c-OneUpImage__inner {
  width: 100%; }

.c-OneUpImage--fullscreen .c-OneUpImage__inner {
  position: relative;
  width: calc(100% + var(--six-margin));
  width: calc(100% + (var(--six-margin) * 2));
  left: calc(var(--six-margin) * -1);
  -ms-grid-column: 1;
  -ms-grid-column-span: -2;
  grid-column: 1 / -1; }

.c-OneUpImage--fullscreen .c-MediaItem__caption,
.c-OneUpImage--fullscreen .c-ArtworkItem__caption {
  width: 100%; }
  @media (min-width: 768px) {
    .c-OneUpImage--fullscreen .c-MediaItem__caption,
    .c-OneUpImage--fullscreen .c-ArtworkItem__caption {
      width: 50%; } }
  @media (min-width: 1200px) {
    .c-OneUpImage--fullscreen .c-MediaItem__caption,
    .c-OneUpImage--fullscreen .c-ArtworkItem__caption {
      width: 30%;
      padding-left: var(--six-margin);
      padding-right: var(--six-margin); } }

.c-OneUpImage--centered .c-OneUpImage__inner {
  -ms-grid-column: 1;
  -ms-grid-column-span: -2;
  grid-column: 1 / -1; }
  @media (min-width: 1024px) {
    .c-OneUpImage--centered .c-OneUpImage__inner {
      -ms-grid-column: 3;
      -ms-grid-column-span: 16;
      grid-column: 3 / 19; } }

.c-OneUpImage--centered .c-ArtworkItem__caption {
  width: 100%; }
  @media (min-width: 768px) {
    .c-OneUpImage--centered .c-ArtworkItem__caption {
      width: 80%; } }
  @media (min-width: 1024px) {
    .c-OneUpImage--centered .c-ArtworkItem__caption {
      width: 50%; } }
  @media (min-width: 1200px) {
    .c-OneUpImage--centered .c-ArtworkItem__caption {
      width: 30%; } }

.c-OneUpImage--left .c-OneUpImage__inner {
  -ms-grid-column: 1;
  -ms-grid-column-span: -2;
  grid-column: 1 / -1; }

@supports not (display: grid) {
  .c-OneUpImage--left .c-MediaItem,
  .c-OneUpImage--left .c-ArtworkItem {
    display: block;
    width: 100%; } }

@supports (display: grid) {
  .c-OneUpImage--left .c-MediaItem,
  .c-OneUpImage--left .c-ArtworkItem {
    display: -ms-grid;
    display: grid;
    grid-template-columns: repeat(var(--six-cols), 1fr);
    column-gap: var(--six-gutter);
    box-sizing: border-box; } }

.c-OneUpImage--left .c-MediaItem__wrap,
.c-OneUpImage--left .c-ArtworkItem__wrap {
  -ms-grid-column: 1;
  -ms-grid-column-span: -2;
  grid-column: 1 / -1;
  position: relative;
  width: calc(100% + var(--six-margin));
  left: calc(var(--six-margin) * -1); }
  @media (min-width: 1024px) {
    .c-OneUpImage--left .c-MediaItem__wrap,
    .c-OneUpImage--left .c-ArtworkItem__wrap {
      -ms-grid-column: 1;
      -ms-grid-column-span: 16;
      grid-column: 1 / 17; } }

.c-OneUpImage--left .c-MediaItem__caption,
.c-OneUpImage--left .c-ArtworkItem__caption {
  width: 100%;
  -ms-grid-column: 1;
  -ms-grid-column-span: -2;
  grid-column: 1 / -1; }

@media (min-width: 768px) and (max-width: 1199px) {
  .c-OneUpImage--left .c-MediaItem__caption,
  .c-OneUpImage--left .c-ArtworkItem__caption {
    width: 50%; } }
  @media (min-width: 1200px) {
    .c-OneUpImage--left .c-MediaItem__caption,
    .c-OneUpImage--left .c-ArtworkItem__caption {
      width: 100%;
      -ms-grid-column: 17;
      -ms-grid-column-span: -18;
      grid-column: 17 / -1; } }

@media (min-width: 1024px) {
  .c-OneUpImage--left .c-MediaItemCaption,
  .c-OneUpImage--left .c-ArtworkCaption {
    padding-top: 0; } }

.c-OneUpImage--right .c-OneUpImage__inner {
  -ms-grid-column: 1;
  -ms-grid-column-span: -2;
  grid-column: 1 / -1; }

@supports not (display: grid) {
  .c-OneUpImage--right .c-MediaItem,
  .c-OneUpImage--right .c-ArtworkItem {
    display: block;
    width: 100%; } }

@supports (display: grid) {
  .c-OneUpImage--right .c-MediaItem,
  .c-OneUpImage--right .c-ArtworkItem {
    display: -ms-grid;
    display: grid;
    grid-template-columns: repeat(var(--six-cols), 1fr);
    column-gap: var(--six-gutter);
    box-sizing: border-box; } }

.c-OneUpImage--right .c-MediaItem__wrap,
.c-OneUpImage--right .c-ArtworkItem__wrap {
  -ms-grid-column: 1;
  -ms-grid-column-span: -2;
  grid-column: 1 / -1;
  position: relative;
  width: calc(100% + var(--six-margin));
  right: 0; }
  @media (min-width: 1024px) {
    .c-OneUpImage--right .c-MediaItem__wrap,
    .c-OneUpImage--right .c-ArtworkItem__wrap {
      -ms-grid-column: 6;
      -ms-grid-column-span: -7;
      grid-column: 6 / -1; } }

.c-OneUpImage--right .c-MediaItem__caption,
.c-OneUpImage--right .c-ArtworkItem__caption {
  width: 100%;
  -ms-grid-column: 1;
  -ms-grid-column-span: -2;
  grid-column: 1 / -1; }

@media (min-width: 768px) and (max-width: 1199px) {
  .c-OneUpImage--right .c-MediaItem__caption,
  .c-OneUpImage--right .c-ArtworkItem__caption {
    width: 50%; } }
  @media (min-width: 1200px) {
    .c-OneUpImage--right .c-MediaItem__caption,
    .c-OneUpImage--right .c-ArtworkItem__caption {
      grid-row: 1;
      -ms-grid-column: 1;
      -ms-grid-column-span: 4;
      grid-column: 1 / 5; } }

@media (min-width: 1200px) {
  .c-OneUpImage--right .c-MediaItemCaption,
  .c-OneUpImage--right .c-ArtworkCaption {
    padding-top: 0; } }


/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvc2Fzcy9jb21wb25lbnRzL2MtT25lVXBJbWFnZS5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsVUFBVSxpQ0FBaUMsV0FBVyxrQ0FBa0MsWUFBWSxtQ0FBbUMsYUFBYSxtQ0FBbUMsV0FBVyxtQ0FBbUMsWUFBWSxtQ0FBbUMsYUFBYSxvQ0FBb0M7QUFDcFY7QUFDQTtBQUNBO0FBQ0EsYUFBYSxFQUFFOztBQUVmO0FBQ0E7QUFDQSxlQUFlLFVBQVUsaUNBQWlDLFdBQVcsaUNBQWlDLFlBQVksbUNBQW1DLGFBQWEsbUNBQW1DLFdBQVcsbUNBQW1DLFlBQVksbUNBQW1DLGFBQWEsb0NBQW9DO0FBQ25WO0FBQ0E7QUFDQTtBQUNBLGFBQWEsRUFBRTs7QUFFZjtBQUNBO0FBQ0EsZUFBZSxVQUFVLGlDQUFpQyxXQUFXLGlDQUFpQyxZQUFZLGtDQUFrQyxhQUFhLG1DQUFtQyxXQUFXLG1DQUFtQyxZQUFZLG1DQUFtQyxhQUFhLG9DQUFvQztBQUNsVjtBQUNBO0FBQ0E7QUFDQSxhQUFhLEVBQUU7O0FBRWY7QUFDQTtBQUNBLGVBQWUsVUFBVSxpQ0FBaUMsV0FBVyxpQ0FBaUMsWUFBWSxrQ0FBa0MsYUFBYSxrQ0FBa0MsV0FBVyxtQ0FBbUMsWUFBWSxtQ0FBbUMsYUFBYSxvQ0FBb0M7QUFDalY7QUFDQTtBQUNBO0FBQ0EsYUFBYSxFQUFFOztBQUVmO0FBQ0E7QUFDQSxlQUFlLFVBQVUsaUNBQWlDLFdBQVcsaUNBQWlDLFlBQVksa0NBQWtDLGFBQWEsa0NBQWtDLFdBQVcsa0NBQWtDLFlBQVksbUNBQW1DLGFBQWEsb0NBQW9DO0FBQ2hWO0FBQ0E7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RUFBRTs7QUFFbEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyQkFBMkIsRUFBRTs7QUFFN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBCQUEwQixFQUFFOztBQUU1QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCOztBQUV0QjtBQUNBO0FBQ0E7QUFDQSxlQUFlLEVBQUU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUJBQXlCLEVBQUU7O0FBRTNCO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQixFQUFFIiwiZmlsZSI6ImMtT25lVXBJbWFnZS5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuQmFzZSBtaXhpbnMgYW5kIEZ1bmN0aW9ucyBPTkxZIGluIGhlcmVcbk5vIENTUyBvdXRwdXQhXG5SZW1lbWJlciB0aGVzZSB0b29scy91dGlsaXRpZXMgd2lsbCBiZSBtYWRlIGF2YWlsYWJlIHRvIGFsbCB5b3VyIGNvbXBvbmVudHMsXG5hbnkgQ1NTIHlvdSBvdXRwdXQgaW4gaGVyZSB3aWxsIGFkZCBtYXNzaXZlIGJsb2F0IHRvIHlvdXIgcHJvamVjdC5cbklmIHlvdSBuZWVkIGNvbW1vbiBjc3MsIGFkZCB0byBtYWluLnNjc3Ncbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXHRWZXJ0aWNhbCBTcGFjaW5nXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cdEJyZWFrcG9pbnRzXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cdENvbG91cnNcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblx0Wi1JbmRleFxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIGN1YmljLWJlemllciBjdXJ2ZSB2YXJpYWJsZXNcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIEZvbnQgdmFyaWFibGVzXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICBHcmlkIFZhcmlhYmxlcyAoc2l6ZSB2YXJzIG11c3QgbWF0Y2ggdGhlIGJyZWFrcG9pbnQgdmFycylcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5AbWVkaWEgKG1pbi13aWR0aDogMzIwcHgpIHtcbiAgYm9keTo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICd7XCJ4c21hbGxcIjp7XCJ2YWx1ZVwiOiBcIjMyMHB4XCIsIFwiYWN0aXZlXCI6IHRydWV9LCBcInNtYWxsXCI6e1widmFsdWVcIjogXCI3NjhweFwiLCBcImFjdGl2ZVwiOiBmYWxzZX0sIFwibWVkaXVtXCI6e1widmFsdWVcIjogXCIxMDI0cHhcIiwgXCJhY3RpdmVcIjogZmFsc2V9LCBcInhtZWRpdW1cIjp7XCJ2YWx1ZVwiOiBcIjEyMDBweFwiLCBcImFjdGl2ZVwiOiBmYWxzZX0sIFwibGFyZ2VcIjp7XCJ2YWx1ZVwiOiBcIjE0NDBweFwiLCBcImFjdGl2ZVwiOiBmYWxzZX0sIFwieGxhcmdlXCI6e1widmFsdWVcIjogXCIxOTIwcHhcIiwgXCJhY3RpdmVcIjogZmFsc2V9LCBcInh4bGFyZ2VcIjp7XCJ2YWx1ZVwiOiBcIjIwMDBweFwiLCBcImFjdGl2ZVwiOiBmYWxzZX19JztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aWR0aDogMDsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICBib2R5OjphZnRlciB7XG4gICAgY29udGVudDogJ3tcInhzbWFsbFwiOntcInZhbHVlXCI6IFwiMzIwcHhcIiwgXCJhY3RpdmVcIjogdHJ1ZX0sIFwic21hbGxcIjp7XCJ2YWx1ZVwiOiBcIjc2OHB4XCIsIFwiYWN0aXZlXCI6IHRydWV9LCBcIm1lZGl1bVwiOntcInZhbHVlXCI6IFwiMTAyNHB4XCIsIFwiYWN0aXZlXCI6IGZhbHNlfSwgXCJ4bWVkaXVtXCI6e1widmFsdWVcIjogXCIxMjAwcHhcIiwgXCJhY3RpdmVcIjogZmFsc2V9LCBcImxhcmdlXCI6e1widmFsdWVcIjogXCIxNDQwcHhcIiwgXCJhY3RpdmVcIjogZmFsc2V9LCBcInhsYXJnZVwiOntcInZhbHVlXCI6IFwiMTkyMHB4XCIsIFwiYWN0aXZlXCI6IGZhbHNlfSwgXCJ4eGxhcmdlXCI6e1widmFsdWVcIjogXCIyMDAwcHhcIiwgXCJhY3RpdmVcIjogZmFsc2V9fSc7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2lkdGg6IDA7IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gIGJvZHk6OmFmdGVyIHtcbiAgICBjb250ZW50OiAne1wieHNtYWxsXCI6e1widmFsdWVcIjogXCIzMjBweFwiLCBcImFjdGl2ZVwiOiB0cnVlfSwgXCJzbWFsbFwiOntcInZhbHVlXCI6IFwiNzY4cHhcIiwgXCJhY3RpdmVcIjogdHJ1ZX0sIFwibWVkaXVtXCI6e1widmFsdWVcIjogXCIxMDI0cHhcIiwgXCJhY3RpdmVcIjogdHJ1ZX0sIFwieG1lZGl1bVwiOntcInZhbHVlXCI6IFwiMTIwMHB4XCIsIFwiYWN0aXZlXCI6IGZhbHNlfSwgXCJsYXJnZVwiOntcInZhbHVlXCI6IFwiMTQ0MHB4XCIsIFwiYWN0aXZlXCI6IGZhbHNlfSwgXCJ4bGFyZ2VcIjp7XCJ2YWx1ZVwiOiBcIjE5MjBweFwiLCBcImFjdGl2ZVwiOiBmYWxzZX0sIFwieHhsYXJnZVwiOntcInZhbHVlXCI6IFwiMjAwMHB4XCIsIFwiYWN0aXZlXCI6IGZhbHNlfX0nO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHdpZHRoOiAwOyB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICBib2R5OjphZnRlciB7XG4gICAgY29udGVudDogJ3tcInhzbWFsbFwiOntcInZhbHVlXCI6IFwiMzIwcHhcIiwgXCJhY3RpdmVcIjogdHJ1ZX0sIFwic21hbGxcIjp7XCJ2YWx1ZVwiOiBcIjc2OHB4XCIsIFwiYWN0aXZlXCI6IHRydWV9LCBcIm1lZGl1bVwiOntcInZhbHVlXCI6IFwiMTAyNHB4XCIsIFwiYWN0aXZlXCI6IHRydWV9LCBcInhtZWRpdW1cIjp7XCJ2YWx1ZVwiOiBcIjEyMDBweFwiLCBcImFjdGl2ZVwiOiB0cnVlfSwgXCJsYXJnZVwiOntcInZhbHVlXCI6IFwiMTQ0MHB4XCIsIFwiYWN0aXZlXCI6IGZhbHNlfSwgXCJ4bGFyZ2VcIjp7XCJ2YWx1ZVwiOiBcIjE5MjBweFwiLCBcImFjdGl2ZVwiOiBmYWxzZX0sIFwieHhsYXJnZVwiOntcInZhbHVlXCI6IFwiMjAwMHB4XCIsIFwiYWN0aXZlXCI6IGZhbHNlfX0nO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHdpZHRoOiAwOyB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDE0NDBweCkge1xuICBib2R5OjphZnRlciB7XG4gICAgY29udGVudDogJ3tcInhzbWFsbFwiOntcInZhbHVlXCI6IFwiMzIwcHhcIiwgXCJhY3RpdmVcIjogdHJ1ZX0sIFwic21hbGxcIjp7XCJ2YWx1ZVwiOiBcIjc2OHB4XCIsIFwiYWN0aXZlXCI6IHRydWV9LCBcIm1lZGl1bVwiOntcInZhbHVlXCI6IFwiMTAyNHB4XCIsIFwiYWN0aXZlXCI6IHRydWV9LCBcInhtZWRpdW1cIjp7XCJ2YWx1ZVwiOiBcIjEyMDBweFwiLCBcImFjdGl2ZVwiOiB0cnVlfSwgXCJsYXJnZVwiOntcInZhbHVlXCI6IFwiMTQ0MHB4XCIsIFwiYWN0aXZlXCI6IHRydWV9LCBcInhsYXJnZVwiOntcInZhbHVlXCI6IFwiMTkyMHB4XCIsIFwiYWN0aXZlXCI6IGZhbHNlfSwgXCJ4eGxhcmdlXCI6e1widmFsdWVcIjogXCIyMDAwcHhcIiwgXCJhY3RpdmVcIjogZmFsc2V9fSc7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2lkdGg6IDA7IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTkyMHB4KSB7XG4gIGJvZHk6OmFmdGVyIHtcbiAgICBjb250ZW50OiAne1wieHNtYWxsXCI6e1widmFsdWVcIjogXCIzMjBweFwiLCBcImFjdGl2ZVwiOiB0cnVlfSwgXCJzbWFsbFwiOntcInZhbHVlXCI6IFwiNzY4cHhcIiwgXCJhY3RpdmVcIjogdHJ1ZX0sIFwibWVkaXVtXCI6e1widmFsdWVcIjogXCIxMDI0cHhcIiwgXCJhY3RpdmVcIjogdHJ1ZX0sIFwieG1lZGl1bVwiOntcInZhbHVlXCI6IFwiMTIwMHB4XCIsIFwiYWN0aXZlXCI6IHRydWV9LCBcImxhcmdlXCI6e1widmFsdWVcIjogXCIxNDQwcHhcIiwgXCJhY3RpdmVcIjogdHJ1ZX0sIFwieGxhcmdlXCI6e1widmFsdWVcIjogXCIxOTIwcHhcIiwgXCJhY3RpdmVcIjogdHJ1ZX0sIFwieHhsYXJnZVwiOntcInZhbHVlXCI6IFwiMjAwMHB4XCIsIFwiYWN0aXZlXCI6IGZhbHNlfX0nO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHdpZHRoOiAwOyB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDIwMDBweCkge1xuICBib2R5OjphZnRlciB7XG4gICAgY29udGVudDogJ3tcInhzbWFsbFwiOntcInZhbHVlXCI6IFwiMzIwcHhcIiwgXCJhY3RpdmVcIjogdHJ1ZX0sIFwic21hbGxcIjp7XCJ2YWx1ZVwiOiBcIjc2OHB4XCIsIFwiYWN0aXZlXCI6IHRydWV9LCBcIm1lZGl1bVwiOntcInZhbHVlXCI6IFwiMTAyNHB4XCIsIFwiYWN0aXZlXCI6IHRydWV9LCBcInhtZWRpdW1cIjp7XCJ2YWx1ZVwiOiBcIjEyMDBweFwiLCBcImFjdGl2ZVwiOiB0cnVlfSwgXCJsYXJnZVwiOntcInZhbHVlXCI6IFwiMTQ0MHB4XCIsIFwiYWN0aXZlXCI6IHRydWV9LCBcInhsYXJnZVwiOntcInZhbHVlXCI6IFwiMTkyMHB4XCIsIFwiYWN0aXZlXCI6IHRydWV9LCBcInh4bGFyZ2VcIjp7XCJ2YWx1ZVwiOiBcIjIwMDBweFwiLCBcImFjdGl2ZVwiOiB0cnVlfX0nO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHdpZHRoOiAwOyB9IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblx0U2l0ZSBUcmFuc2l0aW9uXG5cdEFwcGx5IHRyYW5zaXRpb25zIGNvbnNpc3RlbnRseSBhY3Jvc3MgdGhlIHByb2plY3Rcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXHRWYXJpYWJsZSBTcGFjaW5nICh2LXNwYWNpbmcpXG5cdFVzZSB3aXRoIHZhbHVlcyBzZXQgaW4gX2NvbmZpZy5zY3NzXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblx0VHJhY2tpbmdcblx0Q29udmVydCBYRCwgaWxsdXN0cmF0b3IsIGluZGVzaWduIGFuZFxuXHRwaG90b3Nob3AgdHJhY2tpbmcgaW50byBsZXR0ZXIgc3BhY2luZy5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblx0TGluZSBIZWlnaHQgQ3JvcCAobGhDcm9wKVxuXHRSZW1vdmVzIHRoZSBhZGRpdGlvbmFsIGxpbmUgaGVpZ2h0IGZyb20gdG9wIG9mIHRleHQgLSBodHRwczovL2NvZHlob3VzZS5jby9ibG9nL3Bvc3QvbGluZS1oZWlnaHQtY3JvcFxuXHRVc2UgdG8gbWFrZSBzdXJlIHRoZSB0b3Agb2YgeW91ciB0ZXh0IGxpbmVzIHVwIHdpdGggb3RoZXIgZWxlbWVudHMgYWxvbmcgc2lkZSBpdC5cblx0RW50ZXIgYSB1bml0bGVzcyBsaW5lIGhlaWdodCAoc2FtZSBhcyB0aGUgdHlwZSBsaW5lIGhpZ2h0KVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXHRVbml0bGVzcyBMaW5lIEhlaWdodFxuXHRDb252ZXJ0cyBhIHBpeGVsLCBwZXJjZW50YWdlLCByZW0gb3IgZW0gdmFsdWUgdG8gYSB1bml0bGVzcyB2YWx1ZSBiYXNlZCBvbiBhIGdpdmVuIGZvbnQgc2l6ZS5cblx0SWRlYWwgZm9yIHdvcmtpbmcgb3V0IHVuaXRsZXNzIGxpbmUgaGVpZ2h0cy5cblx0U3RvbGVuIGZyb20gRm91bmRhdGlvbiBodHRwczovL2dldC5mb3VuZGF0aW9uL3NpdGVzL2RvY3Mvc2Fzcy1mdW5jdGlvbnMuaHRtbCN1bml0bGVzcy1jYWxjXG5cblx0QHBhcmFtIHtOdW1iZXJ9ICR2YWx1ZSAtIFZhbHVlIHRvIGNvbnZlcnQgdG8gYSB1bml0bGVzcyBsaW5lIGhlaWdodFxuXHRAcGFyYW0ge051bWJlcn0gJGJhc2UgLSBUaGUgZm9udCBzaXplIHRvIHVzZSB0byB3b3JrIG91dCB0aGUgbGluZSBoZWlnaHQgLSBkZWZhdWx0cyB0byAkZ2xvYmFsLWZvbnQtc2l6ZVxuXHRAcmV0dXJuIHtOdW1iZXJ9IC0gVW5pdGxlc3MgbnVtYmVyXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cdFJlbW92ZXMgdGhlIHVuaXQgKGUuZy4gcHgsIGVtLCByZW0pIGZyb20gYSB2YWx1ZSwgcmV0dXJuaW5nIHRoZSBudW1iZXIgb25seS5cblxuXHRAcGFyYW0ge051bWJlcn0gJG51bSAtIE51bWJlciB0byBzdHJpcCB1bml0IGZyb20uXG5cdEByZXR1cm5zIHtOdW1iZXJ9IFRoZSBzYW1lIG51bWJlciwgc2FucyB1bml0LlxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblx0dXNlZCB0byBjcmVhdGUgcmVzb25zaXZlIHR5cGVcblxuXHRAcGFyYW0ge051bWJlcn0gJG1pbi1mb250LXNpemUgLSBOdW1iZXIgb2YgdGhlIG1pbml1bXVtIGZvbnQgc2l6ZSB3aXRoIHVuaXRzLlxuXHRAcGFyYW0ge051bWJlcn0gJG1heC1mb250LXNpemUgLSBOdW1iZXIgb2YgdGhlIG1heGltdW0gZm9udCBzaXplIHdpdGggdW5pdHMuXG5cdEBwYXJhbSB7TnVtYmVyfSAkbGluZS1oZWlnaHQgLSBOdW1iZXIgb2YgdGhlIGxpbmVoZWlnaHQgd2l0aCB1bml0cy5cblx0QHJldHVybnMgZm9udCBzaXplIHVzaW5nIHRoZSB2LXNwYWNlIG1peGluIGFuZCBhIHVuaXRsZXNzIGxpbmVoZWlnaHQuXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXHR1c2VkIHRvIHJldHJlaXZlIHZhcmJhaWxlcyBmcm9tIHRoZSAkc2l4LWNjcy12YXJpYWJsZXMgYXJyYXlcblxuXHQkdHlwZSA9IHR5cGUgaXMgdGhlIG5hbWUgeW91IHNldCBmb3IgeW91ciBuZXN0ZWQgdmFyYWlibGUgYXJyYXlcblx0JHNpemUgPSBpcyB0aGUgbmVzdGVkIHZhcmlhYmxlIHlvdSB3aXNoIHRvIGdldC5cblx0QHJldHVybnMgdGhlIHZhbHVlIG9mIHRlaCBzcGVjaWZpZWQgdmFyaWFibGVcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cdGxvb3BzIHRocm91Z2ggdmFyYmFpbGVzIGZyb20gdGhlICRzaXgtY2NzLXZhcmlhYmxlcyBhcnJheSAmIG91dCBwdXQgY3NzIHZhclxuXG5cdCR2YWx1ZSA9IHVzZWQgdG8gZ2V0IHRoZSBjb3JyZWN0IHZhbHVlXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXHR1c2VkIHRvIHJldHJlaXZlIGNzcyB2YXIgYmFzZWQgb24gdGhlIGJyZWFrcG9pbnQgcGFzc2VkXG5cblx0JGJyZWFrcG9pbnQgPSB1c2VkIHRvIHNwZWNpZnkgbWVkaWEgcXVlcnlcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cdHNpYmxpbmcgZmFkZTogZmFkZSBvdXQgc2libGluZ3MgYXJvdW5kIGEgaG92ZXJlZCBpdGVtXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbkZpeCBmb3IgMTAwdmggZWxlbWVudHMgYmVpbmcgY292ZXJlZCBieSBpT1MgU2FmYXJpIHRvb2xiYXJcblRoaXMgaXMgYSBiaXQgaGFja3kuIE1vcmUgaW5mbzogaHR0cHM6Ly9hbGx0aGluZ3NzbWl0dHkuY29tLzIwMjAvMDUvMTEvY3NzLWZpeC1mb3ItMTAwdmgtaW4tbW9iaWxlLXdlYmtpdC9cblRoZSBoZWlnaHQgZG9lc24ndCBhZGp1c3Qgd2hlbiB0aGUgYWRkcmVzcyBiYXIgaXMgaGlkZGVuLlxuKi9cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblx0Q2hhcmFjdGVyIFN0eWxlIE1peGluc1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51LXVwcGVyY2FzZSB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXHRXWVNJV1lHIE1peGluIGFuZCBjbGFzc1xuXHRBcHBseSB0byBjb250ZW50IHRoYXQgaXMgdXNpbmcgYSBXWVNJV1lHIGVkaXRvciBmaWVsZC5cblx0UmVkZWZpbmVzIGFsbCB0aGUgdHlwb2dyYXBoaWMgSFRNTCBlbGVtZW50cyB0aGF0IFRpbnlNY2Ugb3V0cHV0cy4gKGgxLGltZyxwLHVsIGV0Yy4pXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbkZvcm0gTWl4aW5zXG5DcmVhdGUgbWl4aW5zIGZpcnN0IHNvIHRoZXkgY2FuIGJlIHJldXNlZCBvbiBXb28gZm9ybXMgb3Igb3RoZXIgcGxhY2VzIHdoZXJlIHlvdSBjYW4ndCBhZGQgeW91ciBvd24gY2xhc3Nlc1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblx0R3JpZCBNaXhpbnNcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXHRNZWRpYSBJdGVtIENhcHRpb24gQ29tcG9uZW50XG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLmMtT25lVXBJbWFnZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmctYm90dG9tOiBjYWxjKDAuMDQ0NjQgKiAxMDB2dyArIDUwLjcxNDI5cHgpOyB9XG4gIEBzdXBwb3J0cyBub3QgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAuYy1PbmVVcEltYWdlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBwYWRkaW5nLWxlZnQ6IHZhcigtLXNpeC1tYXJnaW4pO1xuICAgICAgcGFkZGluZy1yaWdodDogdmFyKC0tc2l4LW1hcmdpbik7IH0gfVxuICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIHtcbiAgICAuYy1PbmVVcEltYWdlIHtcbiAgICAgIGRpc3BsYXk6IC1tcy1ncmlkO1xuICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KHZhcigtLXNpeC1jb2xzKSwgMWZyKTtcbiAgICAgIGNvbHVtbi1nYXA6IHZhcigtLXNpeC1ndXR0ZXIpO1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIHBhZGRpbmctbGVmdDogdmFyKC0tc2l4LW1hcmdpbik7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS1zaXgtbWFyZ2luKTsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiAxOTIxcHgpIHtcbiAgICAuYy1PbmVVcEltYWdlIHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAxNDBweDsgfSB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA0OTlweCkge1xuICAgIC5jLU9uZVVwSW1hZ2Uge1xuICAgICAgcGFkZGluZy1ib3R0b206IDY1cHg7IH0gfVxuICBAbWVkaWEgKG1heC13aWR0aDogMTAyM3B4KSB7XG4gICAgLmMtT25lVXBJbWFnZSB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogNjVweDsgfSB9XG4gIC5jLU9uZVVwSW1hZ2UgLmMtVmlkZW8sXG4gIC5jLU9uZVVwSW1hZ2UgLmMtVmlkZW8gdmlkZW8ge1xuICAgIHdpZHRoOiAxMDAlOyB9XG5cbi5jLU9uZVVwSW1hZ2VfX2lubmVyIHtcbiAgd2lkdGg6IDEwMCU7IH1cblxuLmMtT25lVXBJbWFnZS0tZnVsbHNjcmVlbiAuYy1PbmVVcEltYWdlX19pbm5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IGNhbGMoMTAwJSArIHZhcigtLXNpeC1tYXJnaW4pKTtcbiAgd2lkdGg6IGNhbGMoMTAwJSArICh2YXIoLS1zaXgtbWFyZ2luKSAqIDIpKTtcbiAgbGVmdDogY2FsYyh2YXIoLS1zaXgtbWFyZ2luKSAqIC0xKTtcbiAgLW1zLWdyaWQtY29sdW1uOiAxO1xuICAtbXMtZ3JpZC1jb2x1bW4tc3BhbjogLTI7XG4gIGdyaWQtY29sdW1uOiAxIC8gLTE7IH1cblxuLmMtT25lVXBJbWFnZS0tZnVsbHNjcmVlbiAuYy1NZWRpYUl0ZW1fX2NhcHRpb24sXG4uYy1PbmVVcEltYWdlLS1mdWxsc2NyZWVuIC5jLUFydHdvcmtJdGVtX19jYXB0aW9uIHtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgLmMtT25lVXBJbWFnZS0tZnVsbHNjcmVlbiAuYy1NZWRpYUl0ZW1fX2NhcHRpb24sXG4gICAgLmMtT25lVXBJbWFnZS0tZnVsbHNjcmVlbiAuYy1BcnR3b3JrSXRlbV9fY2FwdGlvbiB7XG4gICAgICB3aWR0aDogNTAlOyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAgIC5jLU9uZVVwSW1hZ2UtLWZ1bGxzY3JlZW4gLmMtTWVkaWFJdGVtX19jYXB0aW9uLFxuICAgIC5jLU9uZVVwSW1hZ2UtLWZ1bGxzY3JlZW4gLmMtQXJ0d29ya0l0ZW1fX2NhcHRpb24ge1xuICAgICAgd2lkdGg6IDMwJTtcbiAgICAgIHBhZGRpbmctbGVmdDogdmFyKC0tc2l4LW1hcmdpbik7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS1zaXgtbWFyZ2luKTsgfSB9XG5cbi5jLU9uZVVwSW1hZ2UtLWNlbnRlcmVkIC5jLU9uZVVwSW1hZ2VfX2lubmVyIHtcbiAgLW1zLWdyaWQtY29sdW1uOiAxO1xuICAtbXMtZ3JpZC1jb2x1bW4tc3BhbjogLTI7XG4gIGdyaWQtY29sdW1uOiAxIC8gLTE7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAgIC5jLU9uZVVwSW1hZ2UtLWNlbnRlcmVkIC5jLU9uZVVwSW1hZ2VfX2lubmVyIHtcbiAgICAgIC1tcy1ncmlkLWNvbHVtbjogMztcbiAgICAgIC1tcy1ncmlkLWNvbHVtbi1zcGFuOiAxNjtcbiAgICAgIGdyaWQtY29sdW1uOiAzIC8gMTk7IH0gfVxuXG4uYy1PbmVVcEltYWdlLS1jZW50ZXJlZCAuYy1BcnR3b3JrSXRlbV9fY2FwdGlvbiB7XG4gIHdpZHRoOiAxMDAlOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAgIC5jLU9uZVVwSW1hZ2UtLWNlbnRlcmVkIC5jLUFydHdvcmtJdGVtX19jYXB0aW9uIHtcbiAgICAgIHdpZHRoOiA4MCU7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gICAgLmMtT25lVXBJbWFnZS0tY2VudGVyZWQgLmMtQXJ0d29ya0l0ZW1fX2NhcHRpb24ge1xuICAgICAgd2lkdGg6IDUwJTsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgICAuYy1PbmVVcEltYWdlLS1jZW50ZXJlZCAuYy1BcnR3b3JrSXRlbV9fY2FwdGlvbiB7XG4gICAgICB3aWR0aDogMzAlOyB9IH1cblxuLmMtT25lVXBJbWFnZS0tbGVmdCAuYy1PbmVVcEltYWdlX19pbm5lciB7XG4gIC1tcy1ncmlkLWNvbHVtbjogMTtcbiAgLW1zLWdyaWQtY29sdW1uLXNwYW46IC0yO1xuICBncmlkLWNvbHVtbjogMSAvIC0xOyB9XG5cbkBzdXBwb3J0cyBub3QgKGRpc3BsYXk6IGdyaWQpIHtcbiAgLmMtT25lVXBJbWFnZS0tbGVmdCAuYy1NZWRpYUl0ZW0sXG4gIC5jLU9uZVVwSW1hZ2UtLWxlZnQgLmMtQXJ0d29ya0l0ZW0ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlOyB9IH1cblxuQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gIC5jLU9uZVVwSW1hZ2UtLWxlZnQgLmMtTWVkaWFJdGVtLFxuICAuYy1PbmVVcEltYWdlLS1sZWZ0IC5jLUFydHdvcmtJdGVtIHtcbiAgICBkaXNwbGF5OiAtbXMtZ3JpZDtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KHZhcigtLXNpeC1jb2xzKSwgMWZyKTtcbiAgICBjb2x1bW4tZ2FwOiB2YXIoLS1zaXgtZ3V0dGVyKTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9IH1cblxuLmMtT25lVXBJbWFnZS0tbGVmdCAuYy1NZWRpYUl0ZW1fX3dyYXAsXG4uYy1PbmVVcEltYWdlLS1sZWZ0IC5jLUFydHdvcmtJdGVtX193cmFwIHtcbiAgLW1zLWdyaWQtY29sdW1uOiAxO1xuICAtbXMtZ3JpZC1jb2x1bW4tc3BhbjogLTI7XG4gIGdyaWQtY29sdW1uOiAxIC8gLTE7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IGNhbGMoMTAwJSArIHZhcigtLXNpeC1tYXJnaW4pKTtcbiAgbGVmdDogY2FsYyh2YXIoLS1zaXgtbWFyZ2luKSAqIC0xKTsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gICAgLmMtT25lVXBJbWFnZS0tbGVmdCAuYy1NZWRpYUl0ZW1fX3dyYXAsXG4gICAgLmMtT25lVXBJbWFnZS0tbGVmdCAuYy1BcnR3b3JrSXRlbV9fd3JhcCB7XG4gICAgICAtbXMtZ3JpZC1jb2x1bW46IDE7XG4gICAgICAtbXMtZ3JpZC1jb2x1bW4tc3BhbjogMTY7XG4gICAgICBncmlkLWNvbHVtbjogMSAvIDE3OyB9IH1cblxuLmMtT25lVXBJbWFnZS0tbGVmdCAuYy1NZWRpYUl0ZW1fX2NhcHRpb24sXG4uYy1PbmVVcEltYWdlLS1sZWZ0IC5jLUFydHdvcmtJdGVtX19jYXB0aW9uIHtcbiAgd2lkdGg6IDEwMCU7XG4gIC1tcy1ncmlkLWNvbHVtbjogMTtcbiAgLW1zLWdyaWQtY29sdW1uLXNwYW46IC0yO1xuICBncmlkLWNvbHVtbjogMSAvIC0xOyB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6IDExOTlweCkge1xuICAuYy1PbmVVcEltYWdlLS1sZWZ0IC5jLU1lZGlhSXRlbV9fY2FwdGlvbixcbiAgLmMtT25lVXBJbWFnZS0tbGVmdCAuYy1BcnR3b3JrSXRlbV9fY2FwdGlvbiB7XG4gICAgd2lkdGg6IDUwJTsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgICAuYy1PbmVVcEltYWdlLS1sZWZ0IC5jLU1lZGlhSXRlbV9fY2FwdGlvbixcbiAgICAuYy1PbmVVcEltYWdlLS1sZWZ0IC5jLUFydHdvcmtJdGVtX19jYXB0aW9uIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgLW1zLWdyaWQtY29sdW1uOiAxNztcbiAgICAgIC1tcy1ncmlkLWNvbHVtbi1zcGFuOiAtMTg7XG4gICAgICBncmlkLWNvbHVtbjogMTcgLyAtMTsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgLmMtT25lVXBJbWFnZS0tbGVmdCAuYy1NZWRpYUl0ZW1DYXB0aW9uLFxuICAuYy1PbmVVcEltYWdlLS1sZWZ0IC5jLUFydHdvcmtDYXB0aW9uIHtcbiAgICBwYWRkaW5nLXRvcDogMDsgfSB9XG5cbi5jLU9uZVVwSW1hZ2UtLXJpZ2h0IC5jLU9uZVVwSW1hZ2VfX2lubmVyIHtcbiAgLW1zLWdyaWQtY29sdW1uOiAxO1xuICAtbXMtZ3JpZC1jb2x1bW4tc3BhbjogLTI7XG4gIGdyaWQtY29sdW1uOiAxIC8gLTE7IH1cblxuQHN1cHBvcnRzIG5vdCAoZGlzcGxheTogZ3JpZCkge1xuICAuYy1PbmVVcEltYWdlLS1yaWdodCAuYy1NZWRpYUl0ZW0sXG4gIC5jLU9uZVVwSW1hZ2UtLXJpZ2h0IC5jLUFydHdvcmtJdGVtIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTsgfSB9XG5cbkBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAuYy1PbmVVcEltYWdlLS1yaWdodCAuYy1NZWRpYUl0ZW0sXG4gIC5jLU9uZVVwSW1hZ2UtLXJpZ2h0IC5jLUFydHdvcmtJdGVtIHtcbiAgICBkaXNwbGF5OiAtbXMtZ3JpZDtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KHZhcigtLXNpeC1jb2xzKSwgMWZyKTtcbiAgICBjb2x1bW4tZ2FwOiB2YXIoLS1zaXgtZ3V0dGVyKTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9IH1cblxuLmMtT25lVXBJbWFnZS0tcmlnaHQgLmMtTWVkaWFJdGVtX193cmFwLFxuLmMtT25lVXBJbWFnZS0tcmlnaHQgLmMtQXJ0d29ya0l0ZW1fX3dyYXAge1xuICAtbXMtZ3JpZC1jb2x1bW46IDE7XG4gIC1tcy1ncmlkLWNvbHVtbi1zcGFuOiAtMjtcbiAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogY2FsYygxMDAlICsgdmFyKC0tc2l4LW1hcmdpbikpO1xuICByaWdodDogMDsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gICAgLmMtT25lVXBJbWFnZS0tcmlnaHQgLmMtTWVkaWFJdGVtX193cmFwLFxuICAgIC5jLU9uZVVwSW1hZ2UtLXJpZ2h0IC5jLUFydHdvcmtJdGVtX193cmFwIHtcbiAgICAgIC1tcy1ncmlkLWNvbHVtbjogNjtcbiAgICAgIC1tcy1ncmlkLWNvbHVtbi1zcGFuOiAtNztcbiAgICAgIGdyaWQtY29sdW1uOiA2IC8gLTE7IH0gfVxuXG4uYy1PbmVVcEltYWdlLS1yaWdodCAuYy1NZWRpYUl0ZW1fX2NhcHRpb24sXG4uYy1PbmVVcEltYWdlLS1yaWdodCAuYy1BcnR3b3JrSXRlbV9fY2FwdGlvbiB7XG4gIHdpZHRoOiAxMDAlO1xuICAtbXMtZ3JpZC1jb2x1bW46IDE7XG4gIC1tcy1ncmlkLWNvbHVtbi1zcGFuOiAtMjtcbiAgZ3JpZC1jb2x1bW46IDEgLyAtMTsgfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpIHtcbiAgLmMtT25lVXBJbWFnZS0tcmlnaHQgLmMtTWVkaWFJdGVtX19jYXB0aW9uLFxuICAuYy1PbmVVcEltYWdlLS1yaWdodCAuYy1BcnR3b3JrSXRlbV9fY2FwdGlvbiB7XG4gICAgd2lkdGg6IDUwJTsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgICAuYy1PbmVVcEltYWdlLS1yaWdodCAuYy1NZWRpYUl0ZW1fX2NhcHRpb24sXG4gICAgLmMtT25lVXBJbWFnZS0tcmlnaHQgLmMtQXJ0d29ya0l0ZW1fX2NhcHRpb24ge1xuICAgICAgZ3JpZC1yb3c6IDE7XG4gICAgICAtbXMtZ3JpZC1jb2x1bW46IDE7XG4gICAgICAtbXMtZ3JpZC1jb2x1bW4tc3BhbjogNDtcbiAgICAgIGdyaWQtY29sdW1uOiAxIC8gNTsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLmMtT25lVXBJbWFnZS0tcmlnaHQgLmMtTWVkaWFJdGVtQ2FwdGlvbixcbiAgLmMtT25lVXBJbWFnZS0tcmlnaHQgLmMtQXJ0d29ya0NhcHRpb24ge1xuICAgIHBhZGRpbmctdG9wOiAwOyB9IH1cbiJdLCJzb3VyY2VSb290IjoiIn0=*/